Rust_IBM_DB 0.1.0

A tool for DB2 connectivity using CLI Driver
Documentation
/* automatically generated by rust-bindgen 0.55.1 */

#[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 fn as_ptr(&self) -> *const T {
        self as *const _ as *const T
    }
    #[inline]
    pub fn as_mut_ptr(&mut self) -> *mut T {
        self as *mut _ as *mut T
    }
    #[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")
    }
}
#[repr(C)]
pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>);
impl<T> __BindgenUnionField<T> {
    #[inline]
    pub const fn new() -> Self {
        __BindgenUnionField(::std::marker::PhantomData)
    }
    #[inline]
    pub unsafe fn as_ref(&self) -> &T {
        ::std::mem::transmute(self)
    }
    #[inline]
    pub unsafe fn as_mut(&mut self) -> &mut T {
        ::std::mem::transmute(self)
    }
}
impl<T> ::std::default::Default for __BindgenUnionField<T> {
    #[inline]
    fn default() -> Self {
        Self::new()
    }
}
impl<T> ::std::clone::Clone for __BindgenUnionField<T> {
    #[inline]
    fn clone(&self) -> Self {
        Self::new()
    }
}
impl<T> ::std::marker::Copy for __BindgenUnionField<T> {}
impl<T> ::std::fmt::Debug for __BindgenUnionField<T> {
    fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        fmt.write_str("__BindgenUnionField")
    }
}
impl<T> ::std::hash::Hash for __BindgenUnionField<T> {
    fn hash<H: ::std::hash::Hasher>(&self, _state: &mut H) {}
}
impl<T> ::std::cmp::PartialEq for __BindgenUnionField<T> {
    fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
        true
    }
}
impl<T> ::std::cmp::Eq for __BindgenUnionField<T> {}
pub const DB2NT: u32 = 1;
pub const WINAPI_FAMILY_PC_APP: u32 = 2;
pub const WINAPI_FAMILY_PHONE_APP: u32 = 3;
pub const WINAPI_FAMILY_SYSTEM: u32 = 4;
pub const WINAPI_FAMILY_SERVER: u32 = 5;
pub const WINAPI_FAMILY_GAMES: u32 = 6;
pub const WINAPI_FAMILY_DESKTOP_APP: u32 = 100;
pub const WINAPI_FAMILY_APP: u32 = 2;
pub const WINAPI_FAMILY: u32 = 100;
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 WDK_NTDDI_VERSION: u32 = 167772167;
pub const OSVERSION_MASK: u32 = 4294901760;
pub const SPVERSION_MASK: u32 = 65280;
pub const SUBVERSION_MASK: u32 = 255;
pub const _WIN32_WINNT: u32 = 2560;
pub const NTDDI_VERSION: u32 = 167772167;
pub const WINVER: u32 = 2560;
pub const _WIN32_IE: u32 = 2560;
pub const _VCRT_COMPILER_PREPROCESSOR: u32 = 1;
pub const _SAL_VERSION: u32 = 20;
pub const __SAL_H_VERSION: u32 = 180000000;
pub const _USE_DECLSPECS_FOR_SAL: u32 = 0;
pub const _USE_ATTRIBUTES_FOR_SAL: u32 = 0;
pub const _CRT_PACKING: u32 = 8;
pub const _HAS_EXCEPTIONS: u32 = 1;
pub const _STL_LANG: u32 = 0;
pub const _HAS_CXX17: u32 = 0;
pub const _HAS_CXX20: u32 = 0;
pub const _HAS_NODISCARD: u32 = 0;
pub const EXCEPTION_EXECUTE_HANDLER: u32 = 1;
pub const EXCEPTION_CONTINUE_SEARCH: u32 = 0;
pub const EXCEPTION_CONTINUE_EXECUTION: i32 = -1;
pub const __GNUC_VA_LIST: u32 = 1;
pub const __SAL_H_FULL_VER: u32 = 140050727;
pub const __SPECSTRINGS_STRICT_LEVEL: u32 = 1;
pub const __drv_typeConst: u32 = 0;
pub const __drv_typeCond: u32 = 1;
pub const __drv_typeBitset: u32 = 2;
pub const __drv_typeExpr: u32 = 3;
pub const STRICT: u32 = 1;
pub const MAX_PATH: u32 = 260;
pub const FALSE: u32 = 0;
pub const TRUE: u32 = 1;
pub const _ARGMAX: u32 = 100;
pub const _CRT_INT_MAX: u32 = 2147483647;
pub const _CRT_FUNCTIONS_REQUIRED: u32 = 1;
pub const _CRT_HAS_CXX17: u32 = 0;
pub const _ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE: u32 = 1;
pub const _CRT_BUILD_DESKTOP_APP: u32 = 1;
pub const _CRT_INTERNAL_NONSTDC_NAMES: u32 = 1;
pub const __STDC_SECURE_LIB__: u32 = 200411;
pub const __GOT_SECURE_LIB__: u32 = 200411;
pub const __STDC_WANT_SECURE_LIB__: u32 = 1;
pub const _SECURECRT_FILL_BUFFER_PATTERN: u32 = 254;
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_SECURE_NAMES: u32 = 1;
pub const _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY: u32 = 0;
pub const _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY: u32 = 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 ANYSIZE_ARRAY: u32 = 1;
pub const DISPATCH_LEVEL: u32 = 2;
pub const APC_LEVEL: u32 = 1;
pub const PASSIVE_LEVEL: u32 = 0;
pub const HIGH_LEVEL: u32 = 15;
pub const MEMORY_ALLOCATION_ALIGNMENT: u32 = 16;
pub const SYSTEM_CACHE_ALIGNMENT_SIZE: u32 = 64;
pub const PRAGMA_DEPRECATED_DDK: u32 = 0;
pub const UCSCHAR_INVALID_CHARACTER: u32 = 4294967295;
pub const MIN_UCSCHAR: u32 = 0;
pub const MAX_UCSCHAR: u32 = 1114111;
pub const ALL_PROCESSOR_GROUPS: u32 = 65535;
pub const MAXIMUM_PROC_PER_GROUP: u32 = 64;
pub const MAXIMUM_PROCESSORS: u32 = 64;
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 EPERM: u32 = 1;
pub const ENOENT: u32 = 2;
pub const ESRCH: u32 = 3;
pub const EINTR: u32 = 4;
pub const EIO: u32 = 5;
pub const ENXIO: u32 = 6;
pub const E2BIG: u32 = 7;
pub const ENOEXEC: u32 = 8;
pub const EBADF: u32 = 9;
pub const ECHILD: u32 = 10;
pub const EAGAIN: u32 = 11;
pub const ENOMEM: u32 = 12;
pub const EACCES: u32 = 13;
pub const EFAULT: u32 = 14;
pub const EBUSY: u32 = 16;
pub const EEXIST: u32 = 17;
pub const EXDEV: u32 = 18;
pub const ENODEV: u32 = 19;
pub const ENOTDIR: u32 = 20;
pub const EISDIR: u32 = 21;
pub const ENFILE: u32 = 23;
pub const EMFILE: u32 = 24;
pub const ENOTTY: u32 = 25;
pub const EFBIG: u32 = 27;
pub const ENOSPC: u32 = 28;
pub const ESPIPE: u32 = 29;
pub const EROFS: u32 = 30;
pub const EMLINK: u32 = 31;
pub const EPIPE: u32 = 32;
pub const EDOM: u32 = 33;
pub const EDEADLK: u32 = 36;
pub const ENAMETOOLONG: u32 = 38;
pub const ENOLCK: u32 = 39;
pub const ENOSYS: u32 = 40;
pub const ENOTEMPTY: u32 = 41;
pub const EINVAL: u32 = 22;
pub const ERANGE: u32 = 34;
pub const EILSEQ: u32 = 42;
pub const STRUNCATE: u32 = 80;
pub const EDEADLOCK: u32 = 36;
pub const EADDRINUSE: u32 = 100;
pub const EADDRNOTAVAIL: u32 = 101;
pub const EAFNOSUPPORT: u32 = 102;
pub const EALREADY: u32 = 103;
pub const EBADMSG: u32 = 104;
pub const ECANCELED: u32 = 105;
pub const ECONNABORTED: u32 = 106;
pub const ECONNREFUSED: u32 = 107;
pub const ECONNRESET: u32 = 108;
pub const EDESTADDRREQ: u32 = 109;
pub const EHOSTUNREACH: u32 = 110;
pub const EIDRM: u32 = 111;
pub const EINPROGRESS: u32 = 112;
pub const EISCONN: u32 = 113;
pub const ELOOP: u32 = 114;
pub const EMSGSIZE: u32 = 115;
pub const ENETDOWN: u32 = 116;
pub const ENETRESET: u32 = 117;
pub const ENETUNREACH: u32 = 118;
pub const ENOBUFS: u32 = 119;
pub const ENODATA: u32 = 120;
pub const ENOLINK: u32 = 121;
pub const ENOMSG: u32 = 122;
pub const ENOPROTOOPT: u32 = 123;
pub const ENOSR: u32 = 124;
pub const ENOSTR: u32 = 125;
pub const ENOTCONN: u32 = 126;
pub const ENOTRECOVERABLE: u32 = 127;
pub const ENOTSOCK: u32 = 128;
pub const ENOTSUP: u32 = 129;
pub const EOPNOTSUPP: u32 = 130;
pub const EOTHER: u32 = 131;
pub const EOVERFLOW: u32 = 132;
pub const EOWNERDEAD: u32 = 133;
pub const EPROTO: u32 = 134;
pub const EPROTONOSUPPORT: u32 = 135;
pub const EPROTOTYPE: u32 = 136;
pub const ETIME: u32 = 137;
pub const ETIMEDOUT: u32 = 138;
pub const ETXTBSY: u32 = 139;
pub const EWOULDBLOCK: u32 = 140;
pub const _NLSCMPERROR: u32 = 2147483647;
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 ENCLAVE_SHORT_ID_LENGTH: u32 = 16;
pub const ENCLAVE_LONG_ID_LENGTH: u32 = 32;
pub const VER_SERVER_NT: u32 = 2147483648;
pub const VER_WORKSTATION_NT: u32 = 1073741824;
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 VER_SUITE_MULTIUSERTS: u32 = 131072;
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_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: u32 = 101;
pub const PRODUCT_PROFESSIONAL_WMC: u32 = 103;
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_HOLOGRAPHIC: u32 = 135;
pub const PRODUCT_HOLOGRAPHIC_BUSINESS: u32 = 136;
pub const PRODUCT_PRO_SINGLE_LANGUAGE: u32 = 138;
pub const PRODUCT_PRO_CHINA: u32 = 139;
pub const PRODUCT_ENTERPRISE_SUBSCRIPTION: u32 = 140;
pub const PRODUCT_ENTERPRISE_SUBSCRIPTION_N: u32 = 141;
pub const PRODUCT_DATACENTER_NANO_SERVER: u32 = 143;
pub const PRODUCT_STANDARD_NANO_SERVER: u32 = 144;
pub const PRODUCT_DATACENTER_A_SERVER_CORE: u32 = 145;
pub const PRODUCT_STANDARD_A_SERVER_CORE: u32 = 146;
pub const PRODUCT_DATACENTER_WS_SERVER_CORE: u32 = 147;
pub const PRODUCT_STANDARD_WS_SERVER_CORE: u32 = 148;
pub const PRODUCT_UTILITY_VM: u32 = 149;
pub const PRODUCT_DATACENTER_EVALUATION_SERVER_CORE: u32 = 159;
pub const PRODUCT_STANDARD_EVALUATION_SERVER_CORE: u32 = 160;
pub const PRODUCT_PRO_WORKSTATION: u32 = 161;
pub const PRODUCT_PRO_WORKSTATION_N: u32 = 162;
pub const PRODUCT_PRO_FOR_EDUCATION: u32 = 164;
pub const PRODUCT_PRO_FOR_EDUCATION_N: u32 = 165;
pub const PRODUCT_AZURE_SERVER_CORE: u32 = 168;
pub const PRODUCT_AZURE_NANO_SERVER: u32 = 169;
pub const PRODUCT_ENTERPRISEG: u32 = 171;
pub const PRODUCT_ENTERPRISEGN: u32 = 172;
pub const PRODUCT_SERVERRDSH: u32 = 175;
pub const PRODUCT_CLOUD: u32 = 178;
pub const PRODUCT_CLOUDN: u32 = 179;
pub const PRODUCT_HUBOS: u32 = 180;
pub const PRODUCT_ONECOREUPDATEOS: u32 = 182;
pub const PRODUCT_CLOUDE: u32 = 183;
pub const PRODUCT_ANDROMEDA: u32 = 184;
pub const PRODUCT_IOTOS: u32 = 185;
pub const PRODUCT_CLOUDEN: u32 = 186;
pub const PRODUCT_IOTEDGEOS: u32 = 187;
pub const PRODUCT_IOTENTERPRISE: u32 = 188;
pub const PRODUCT_LITE: u32 = 189;
pub const PRODUCT_IOTENTERPRISES: u32 = 191;
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_HAWAIIAN: u32 = 117;
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_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_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_SASIA: u32 = 2;
pub const SUBLANG_KASHMIRI_INDIA: 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_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_INDIA: u32 = 2;
pub const SUBLANG_NEPALI_NEPAL: u32 = 1;
pub const SUBLANG_NORWEGIAN_BOKMAL: u32 = 1;
pub const SUBLANG_NORWEGIAN_NYNORSK: u32 = 2;
pub const SUBLANG_OCCITAN_FRANCE: u32 = 1;
pub const SUBLANG_ODIA_INDIA: 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: u32 = 2;
pub const SUBLANG_PORTUGUESE_BRAZILIAN: u32 = 1;
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_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_SERBIAN_CROATIA: u32 = 1;
pub const SUBLANG_SERBIAN_LATIN: u32 = 2;
pub const SUBLANG_SERBIAN_CYRILLIC: u32 = 3;
pub const SUBLANG_SINDHI_INDIA: u32 = 1;
pub const SUBLANG_SINDHI_PAKISTAN: u32 = 2;
pub const SUBLANG_SINDHI_AFGHANISTAN: 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_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_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_XHOSA_SOUTH_AFRICA: u32 = 1;
pub const SUBLANG_YAKUT_RUSSIA: u32 = 1;
pub const SUBLANG_YI_PRC: u32 = 1;
pub const SUBLANG_YORUBA_NIGERIA: 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 LOCALE_TRANSIENT_KEYBOARD1: u32 = 8192;
pub const LOCALE_TRANSIENT_KEYBOARD2: u32 = 9216;
pub const LOCALE_TRANSIENT_KEYBOARD3: u32 = 10240;
pub const LOCALE_TRANSIENT_KEYBOARD4: u32 = 11264;
pub const MAXIMUM_WAIT_OBJECTS: u32 = 64;
pub const MAXIMUM_SUSPEND_COUNT: u32 = 127;
pub const _MM_HINT_T0: u32 = 1;
pub const _MM_HINT_T1: u32 = 2;
pub const _MM_HINT_T2: u32 = 3;
pub const _MM_HINT_NTA: u32 = 0;
pub const PF_TEMPORAL_LEVEL_1: u32 = 1;
pub const PF_TEMPORAL_LEVEL_2: u32 = 2;
pub const PF_TEMPORAL_LEVEL_3: u32 = 3;
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_CONTROL: u32 = 1048577;
pub const CONTEXT_INTEGER: u32 = 1048578;
pub const CONTEXT_SEGMENTS: u32 = 1048580;
pub const CONTEXT_FLOATING_POINT: u32 = 1048584;
pub const CONTEXT_DEBUG_REGISTERS: u32 = 1048592;
pub const CONTEXT_FULL: u32 = 1048587;
pub const CONTEXT_ALL: u32 = 1048607;
pub const CONTEXT_XSTATE: u32 = 1048640;
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 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 UNW_FLAG_NO_EPILOGUE: u32 = 2147483648;
pub const UNWIND_HISTORY_TABLE_SIZE: u32 = 12;
pub const OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK_EXPORT_NAME: &'static [u8; 34usize] =
    b"OutOfProcessFunctionTableCallback\0";
pub const WOW64_CONTEXT_i386: u32 = 65536;
pub const WOW64_CONTEXT_i486: u32 = 65536;
pub const WOW64_CONTEXT_CONTROL: u32 = 65537;
pub const WOW64_CONTEXT_INTEGER: u32 = 65538;
pub const WOW64_CONTEXT_SEGMENTS: u32 = 65540;
pub const WOW64_CONTEXT_FLOATING_POINT: u32 = 65544;
pub const WOW64_CONTEXT_DEBUG_REGISTERS: u32 = 65552;
pub const WOW64_CONTEXT_EXTENDED_REGISTERS: u32 = 65568;
pub const WOW64_CONTEXT_FULL: u32 = 65543;
pub const WOW64_CONTEXT_ALL: u32 = 65599;
pub const WOW64_CONTEXT_XSTATE: u32 = 65600;
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 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 DELETE: u32 = 65536;
pub const READ_CONTROL: u32 = 131072;
pub const WRITE_DAC: u32 = 262144;
pub const WRITE_OWNER: u32 = 524288;
pub const SYNCHRONIZE: u32 = 1048576;
pub const STANDARD_RIGHTS_REQUIRED: u32 = 983040;
pub const STANDARD_RIGHTS_READ: u32 = 131072;
pub const STANDARD_RIGHTS_WRITE: u32 = 131072;
pub const STANDARD_RIGHTS_EXECUTE: u32 = 131072;
pub const STANDARD_RIGHTS_ALL: u32 = 2031616;
pub const SPECIFIC_RIGHTS_ALL: u32 = 65535;
pub const ACCESS_SYSTEM_SECURITY: u32 = 16777216;
pub const MAXIMUM_ALLOWED: u32 = 33554432;
pub const GENERIC_READ: u32 = 2147483648;
pub const GENERIC_WRITE: u32 = 1073741824;
pub const GENERIC_EXECUTE: u32 = 536870912;
pub const GENERIC_ALL: u32 = 268435456;
pub const SID_REVISION: u32 = 1;
pub const SID_MAX_SUB_AUTHORITIES: u32 = 15;
pub const SID_RECOMMENDED_SUB_AUTHORITIES: u32 = 1;
pub const SECURITY_MAX_SID_STRING_CHARACTERS: u32 = 187;
pub const SID_HASH_SIZE: u32 = 32;
pub const SECURITY_NULL_RID: u32 = 0;
pub const SECURITY_WORLD_RID: u32 = 0;
pub const SECURITY_LOCAL_RID: u32 = 0;
pub const SECURITY_LOCAL_LOGON_RID: u32 = 1;
pub const SECURITY_CREATOR_OWNER_RID: u32 = 0;
pub const SECURITY_CREATOR_GROUP_RID: u32 = 1;
pub const SECURITY_CREATOR_OWNER_SERVER_RID: u32 = 2;
pub const SECURITY_CREATOR_GROUP_SERVER_RID: u32 = 3;
pub const SECURITY_CREATOR_OWNER_RIGHTS_RID: u32 = 4;
pub const SECURITY_DIALUP_RID: u32 = 1;
pub const SECURITY_NETWORK_RID: u32 = 2;
pub const SECURITY_BATCH_RID: u32 = 3;
pub const SECURITY_INTERACTIVE_RID: u32 = 4;
pub const SECURITY_LOGON_IDS_RID: u32 = 5;
pub const SECURITY_LOGON_IDS_RID_COUNT: u32 = 3;
pub const SECURITY_SERVICE_RID: u32 = 6;
pub const SECURITY_ANONYMOUS_LOGON_RID: u32 = 7;
pub const SECURITY_PROXY_RID: u32 = 8;
pub const SECURITY_ENTERPRISE_CONTROLLERS_RID: u32 = 9;
pub const SECURITY_SERVER_LOGON_RID: u32 = 9;
pub const SECURITY_PRINCIPAL_SELF_RID: u32 = 10;
pub const SECURITY_AUTHENTICATED_USER_RID: u32 = 11;
pub const SECURITY_RESTRICTED_CODE_RID: u32 = 12;
pub const SECURITY_TERMINAL_SERVER_RID: u32 = 13;
pub const SECURITY_REMOTE_LOGON_RID: u32 = 14;
pub const SECURITY_THIS_ORGANIZATION_RID: u32 = 15;
pub const SECURITY_IUSER_RID: u32 = 17;
pub const SECURITY_LOCAL_SYSTEM_RID: u32 = 18;
pub const SECURITY_LOCAL_SERVICE_RID: u32 = 19;
pub const SECURITY_NETWORK_SERVICE_RID: u32 = 20;
pub const SECURITY_NT_NON_UNIQUE: u32 = 21;
pub const SECURITY_NT_NON_UNIQUE_SUB_AUTH_COUNT: u32 = 3;
pub const SECURITY_ENTERPRISE_READONLY_CONTROLLERS_RID: u32 = 22;
pub const SECURITY_BUILTIN_DOMAIN_RID: u32 = 32;
pub const SECURITY_WRITE_RESTRICTED_CODE_RID: u32 = 33;
pub const SECURITY_PACKAGE_BASE_RID: u32 = 64;
pub const SECURITY_PACKAGE_RID_COUNT: u32 = 2;
pub const SECURITY_PACKAGE_NTLM_RID: u32 = 10;
pub const SECURITY_PACKAGE_SCHANNEL_RID: u32 = 14;
pub const SECURITY_PACKAGE_DIGEST_RID: u32 = 21;
pub const SECURITY_CRED_TYPE_BASE_RID: u32 = 65;
pub const SECURITY_CRED_TYPE_RID_COUNT: u32 = 2;
pub const SECURITY_CRED_TYPE_THIS_ORG_CERT_RID: u32 = 1;
pub const SECURITY_MIN_BASE_RID: u32 = 80;
pub const SECURITY_SERVICE_ID_BASE_RID: u32 = 80;
pub const SECURITY_SERVICE_ID_RID_COUNT: u32 = 6;
pub const SECURITY_RESERVED_ID_BASE_RID: u32 = 81;
pub const SECURITY_APPPOOL_ID_BASE_RID: u32 = 82;
pub const SECURITY_APPPOOL_ID_RID_COUNT: u32 = 6;
pub const SECURITY_VIRTUALSERVER_ID_BASE_RID: u32 = 83;
pub const SECURITY_VIRTUALSERVER_ID_RID_COUNT: u32 = 6;
pub const SECURITY_USERMODEDRIVERHOST_ID_BASE_RID: u32 = 84;
pub const SECURITY_USERMODEDRIVERHOST_ID_RID_COUNT: u32 = 6;
pub const SECURITY_CLOUD_INFRASTRUCTURE_SERVICES_ID_BASE_RID: u32 = 85;
pub const SECURITY_CLOUD_INFRASTRUCTURE_SERVICES_ID_RID_COUNT: u32 = 6;
pub const SECURITY_WMIHOST_ID_BASE_RID: u32 = 86;
pub const SECURITY_WMIHOST_ID_RID_COUNT: u32 = 6;
pub const SECURITY_TASK_ID_BASE_RID: u32 = 87;
pub const SECURITY_NFS_ID_BASE_RID: u32 = 88;
pub const SECURITY_COM_ID_BASE_RID: u32 = 89;
pub const SECURITY_WINDOW_MANAGER_BASE_RID: u32 = 90;
pub const SECURITY_RDV_GFX_BASE_RID: u32 = 91;
pub const SECURITY_DASHOST_ID_BASE_RID: u32 = 92;
pub const SECURITY_DASHOST_ID_RID_COUNT: u32 = 6;
pub const SECURITY_USERMANAGER_ID_BASE_RID: u32 = 93;
pub const SECURITY_USERMANAGER_ID_RID_COUNT: u32 = 6;
pub const SECURITY_WINRM_ID_BASE_RID: u32 = 94;
pub const SECURITY_WINRM_ID_RID_COUNT: u32 = 6;
pub const SECURITY_CCG_ID_BASE_RID: u32 = 95;
pub const SECURITY_UMFD_BASE_RID: u32 = 96;
pub const SECURITY_VIRTUALACCOUNT_ID_RID_COUNT: u32 = 6;
pub const SECURITY_MAX_BASE_RID: u32 = 111;
pub const SECURITY_MAX_ALWAYS_FILTERED: u32 = 999;
pub const SECURITY_MIN_NEVER_FILTERED: u32 = 1000;
pub const SECURITY_OTHER_ORGANIZATION_RID: u32 = 1000;
pub const SECURITY_WINDOWSMOBILE_ID_BASE_RID: u32 = 112;
pub const SECURITY_INSTALLER_GROUP_CAPABILITY_BASE: u32 = 32;
pub const SECURITY_INSTALLER_GROUP_CAPABILITY_RID_COUNT: u32 = 9;
pub const SECURITY_INSTALLER_CAPABILITY_RID_COUNT: u32 = 10;
pub const SECURITY_LOCAL_ACCOUNT_RID: u32 = 113;
pub const SECURITY_LOCAL_ACCOUNT_AND_ADMIN_RID: u32 = 114;
pub const DOMAIN_GROUP_RID_AUTHORIZATION_DATA_IS_COMPOUNDED: u32 = 496;
pub const DOMAIN_GROUP_RID_AUTHORIZATION_DATA_CONTAINS_CLAIMS: u32 = 497;
pub const DOMAIN_GROUP_RID_ENTERPRISE_READONLY_DOMAIN_CONTROLLERS: u32 = 498;
pub const FOREST_USER_RID_MAX: u32 = 499;
pub const DOMAIN_USER_RID_ADMIN: u32 = 500;
pub const DOMAIN_USER_RID_GUEST: u32 = 501;
pub const DOMAIN_USER_RID_KRBTGT: u32 = 502;
pub const DOMAIN_USER_RID_DEFAULT_ACCOUNT: u32 = 503;
pub const DOMAIN_USER_RID_WDAG_ACCOUNT: u32 = 504;
pub const DOMAIN_USER_RID_MAX: u32 = 999;
pub const DOMAIN_GROUP_RID_ADMINS: u32 = 512;
pub const DOMAIN_GROUP_RID_USERS: u32 = 513;
pub const DOMAIN_GROUP_RID_GUESTS: u32 = 514;
pub const DOMAIN_GROUP_RID_COMPUTERS: u32 = 515;
pub const DOMAIN_GROUP_RID_CONTROLLERS: u32 = 516;
pub const DOMAIN_GROUP_RID_CERT_ADMINS: u32 = 517;
pub const DOMAIN_GROUP_RID_SCHEMA_ADMINS: u32 = 518;
pub const DOMAIN_GROUP_RID_ENTERPRISE_ADMINS: u32 = 519;
pub const DOMAIN_GROUP_RID_POLICY_ADMINS: u32 = 520;
pub const DOMAIN_GROUP_RID_READONLY_CONTROLLERS: u32 = 521;
pub const DOMAIN_GROUP_RID_CLONEABLE_CONTROLLERS: u32 = 522;
pub const DOMAIN_GROUP_RID_CDC_RESERVED: u32 = 524;
pub const DOMAIN_GROUP_RID_PROTECTED_USERS: u32 = 525;
pub const DOMAIN_GROUP_RID_KEY_ADMINS: u32 = 526;
pub const DOMAIN_GROUP_RID_ENTERPRISE_KEY_ADMINS: u32 = 527;
pub const DOMAIN_ALIAS_RID_ADMINS: u32 = 544;
pub const DOMAIN_ALIAS_RID_USERS: u32 = 545;
pub const DOMAIN_ALIAS_RID_GUESTS: u32 = 546;
pub const DOMAIN_ALIAS_RID_POWER_USERS: u32 = 547;
pub const DOMAIN_ALIAS_RID_ACCOUNT_OPS: u32 = 548;
pub const DOMAIN_ALIAS_RID_SYSTEM_OPS: u32 = 549;
pub const DOMAIN_ALIAS_RID_PRINT_OPS: u32 = 550;
pub const DOMAIN_ALIAS_RID_BACKUP_OPS: u32 = 551;
pub const DOMAIN_ALIAS_RID_REPLICATOR: u32 = 552;
pub const DOMAIN_ALIAS_RID_RAS_SERVERS: u32 = 553;
pub const DOMAIN_ALIAS_RID_PREW2KCOMPACCESS: u32 = 554;
pub const DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS: u32 = 555;
pub const DOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS: u32 = 556;
pub const DOMAIN_ALIAS_RID_INCOMING_FOREST_TRUST_BUILDERS: u32 = 557;
pub const DOMAIN_ALIAS_RID_MONITORING_USERS: u32 = 558;
pub const DOMAIN_ALIAS_RID_LOGGING_USERS: u32 = 559;
pub const DOMAIN_ALIAS_RID_AUTHORIZATIONACCESS: u32 = 560;
pub const DOMAIN_ALIAS_RID_TS_LICENSE_SERVERS: u32 = 561;
pub const DOMAIN_ALIAS_RID_DCOM_USERS: u32 = 562;
pub const DOMAIN_ALIAS_RID_IUSERS: u32 = 568;
pub const DOMAIN_ALIAS_RID_CRYPTO_OPERATORS: u32 = 569;
pub const DOMAIN_ALIAS_RID_CACHEABLE_PRINCIPALS_GROUP: u32 = 571;
pub const DOMAIN_ALIAS_RID_NON_CACHEABLE_PRINCIPALS_GROUP: u32 = 572;
pub const DOMAIN_ALIAS_RID_EVENT_LOG_READERS_GROUP: u32 = 573;
pub const DOMAIN_ALIAS_RID_CERTSVC_DCOM_ACCESS_GROUP: u32 = 574;
pub const DOMAIN_ALIAS_RID_RDS_REMOTE_ACCESS_SERVERS: u32 = 575;
pub const DOMAIN_ALIAS_RID_RDS_ENDPOINT_SERVERS: u32 = 576;
pub const DOMAIN_ALIAS_RID_RDS_MANAGEMENT_SERVERS: u32 = 577;
pub const DOMAIN_ALIAS_RID_HYPER_V_ADMINS: u32 = 578;
pub const DOMAIN_ALIAS_RID_ACCESS_CONTROL_ASSISTANCE_OPS: u32 = 579;
pub const DOMAIN_ALIAS_RID_REMOTE_MANAGEMENT_USERS: u32 = 580;
pub const DOMAIN_ALIAS_RID_DEFAULT_ACCOUNT: u32 = 581;
pub const DOMAIN_ALIAS_RID_STORAGE_REPLICA_ADMINS: u32 = 582;
pub const DOMAIN_ALIAS_RID_DEVICE_OWNERS: u32 = 583;
pub const SECURITY_APP_PACKAGE_BASE_RID: u32 = 2;
pub const SECURITY_BUILTIN_APP_PACKAGE_RID_COUNT: u32 = 2;
pub const SECURITY_APP_PACKAGE_RID_COUNT: u32 = 8;
pub const SECURITY_CAPABILITY_BASE_RID: u32 = 3;
pub const SECURITY_CAPABILITY_APP_RID: u32 = 1024;
pub const SECURITY_BUILTIN_CAPABILITY_RID_COUNT: u32 = 2;
pub const SECURITY_CAPABILITY_RID_COUNT: u32 = 5;
pub const SECURITY_PARENT_PACKAGE_RID_COUNT: u32 = 8;
pub const SECURITY_CHILD_PACKAGE_RID_COUNT: u32 = 12;
pub const SECURITY_BUILTIN_PACKAGE_ANY_PACKAGE: u32 = 1;
pub const SECURITY_BUILTIN_PACKAGE_ANY_RESTRICTED_PACKAGE: u32 = 2;
pub const SECURITY_CAPABILITY_INTERNET_CLIENT: u32 = 1;
pub const SECURITY_CAPABILITY_INTERNET_CLIENT_SERVER: u32 = 2;
pub const SECURITY_CAPABILITY_PRIVATE_NETWORK_CLIENT_SERVER: u32 = 3;
pub const SECURITY_CAPABILITY_PICTURES_LIBRARY: u32 = 4;
pub const SECURITY_CAPABILITY_VIDEOS_LIBRARY: u32 = 5;
pub const SECURITY_CAPABILITY_MUSIC_LIBRARY: u32 = 6;
pub const SECURITY_CAPABILITY_DOCUMENTS_LIBRARY: u32 = 7;
pub const SECURITY_CAPABILITY_ENTERPRISE_AUTHENTICATION: u32 = 8;
pub const SECURITY_CAPABILITY_SHARED_USER_CERTIFICATES: u32 = 9;
pub const SECURITY_CAPABILITY_REMOVABLE_STORAGE: u32 = 10;
pub const SECURITY_CAPABILITY_APPOINTMENTS: u32 = 11;
pub const SECURITY_CAPABILITY_CONTACTS: u32 = 12;
pub const SECURITY_CAPABILITY_INTERNET_EXPLORER: u32 = 4096;
pub const SECURITY_MANDATORY_UNTRUSTED_RID: u32 = 0;
pub const SECURITY_MANDATORY_LOW_RID: u32 = 4096;
pub const SECURITY_MANDATORY_MEDIUM_RID: u32 = 8192;
pub const SECURITY_MANDATORY_MEDIUM_PLUS_RID: u32 = 8448;
pub const SECURITY_MANDATORY_HIGH_RID: u32 = 12288;
pub const SECURITY_MANDATORY_SYSTEM_RID: u32 = 16384;
pub const SECURITY_MANDATORY_PROTECTED_PROCESS_RID: u32 = 20480;
pub const SECURITY_MANDATORY_MAXIMUM_USER_RID: u32 = 16384;
pub const SECURITY_AUTHENTICATION_AUTHORITY_RID_COUNT: u32 = 1;
pub const SECURITY_AUTHENTICATION_AUTHORITY_ASSERTED_RID: u32 = 1;
pub const SECURITY_AUTHENTICATION_SERVICE_ASSERTED_RID: u32 = 2;
pub const SECURITY_AUTHENTICATION_FRESH_KEY_AUTH_RID: u32 = 3;
pub const SECURITY_AUTHENTICATION_KEY_TRUST_RID: u32 = 4;
pub const SECURITY_AUTHENTICATION_KEY_PROPERTY_MFA_RID: u32 = 5;
pub const SECURITY_AUTHENTICATION_KEY_PROPERTY_ATTESTATION_RID: u32 = 6;
pub const SECURITY_PROCESS_TRUST_AUTHORITY_RID_COUNT: u32 = 2;
pub const SECURITY_PROCESS_PROTECTION_TYPE_FULL_RID: u32 = 1024;
pub const SECURITY_PROCESS_PROTECTION_TYPE_LITE_RID: u32 = 512;
pub const SECURITY_PROCESS_PROTECTION_TYPE_NONE_RID: u32 = 0;
pub const SECURITY_PROCESS_PROTECTION_LEVEL_WINTCB_RID: u32 = 8192;
pub const SECURITY_PROCESS_PROTECTION_LEVEL_WINDOWS_RID: u32 = 4096;
pub const SECURITY_PROCESS_PROTECTION_LEVEL_APP_RID: u32 = 2048;
pub const SECURITY_PROCESS_PROTECTION_LEVEL_ANTIMALWARE_RID: u32 = 1536;
pub const SECURITY_PROCESS_PROTECTION_LEVEL_AUTHENTICODE_RID: u32 = 1024;
pub const SECURITY_PROCESS_PROTECTION_LEVEL_NONE_RID: u32 = 0;
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 SE_GROUP_MANDATORY: u32 = 1;
pub const SE_GROUP_ENABLED_BY_DEFAULT: u32 = 2;
pub const SE_GROUP_ENABLED: u32 = 4;
pub const SE_GROUP_OWNER: u32 = 8;
pub const SE_GROUP_USE_FOR_DENY_ONLY: u32 = 16;
pub const SE_GROUP_INTEGRITY: u32 = 32;
pub const SE_GROUP_INTEGRITY_ENABLED: u32 = 64;
pub const SE_GROUP_LOGON_ID: u32 = 3221225472;
pub const SE_GROUP_RESOURCE: u32 = 536870912;
pub const SE_GROUP_VALID_ATTRIBUTES: u32 = 3758096511;
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 SYSTEM_PROCESS_TRUST_LABEL_ACE_TYPE: u32 = 20;
pub const SYSTEM_ACCESS_FILTER_ACE_TYPE: u32 = 21;
pub const ACCESS_MAX_MS_V5_ACE_TYPE: u32 = 21;
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 CRITICAL_ACE_FLAG: u32 = 32;
pub const SUCCESSFUL_ACCESS_ACE_FLAG: u32 = 64;
pub const FAILED_ACCESS_ACE_FLAG: u32 = 128;
pub const TRUST_PROTECTED_FILTER_ACE_FLAG: u32 = 64;
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 SYSTEM_PROCESS_TRUST_LABEL_VALID_MASK: u32 = 16777215;
pub const SYSTEM_PROCESS_TRUST_NOCONSTRAINT_MASK: u32 = 4294967295;
pub const SYSTEM_ACCESS_FILTER_VALID_MASK: u32 = 16777215;
pub const SYSTEM_ACCESS_FILTER_NOCONSTRAINT_MASK: u32 = 4294967295;
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_ENABLED_BY_DEFAULT: u32 = 1;
pub const SE_PRIVILEGE_ENABLED: u32 = 2;
pub const SE_PRIVILEGE_REMOVED: u32 = 4;
pub const SE_PRIVILEGE_USED_FOR_ACCESS: u32 = 2147483648;
pub const SE_PRIVILEGE_VALID_ATTRIBUTES: u32 = 2147483655;
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_FLAG_NO_ACCESS_FILTER_ACE: u32 = 4;
pub const SE_SECURITY_DESCRIPTOR_VALID_FLAGS: u32 = 7;
pub const SE_ACCESS_CHECK_FLAG_NO_LEARNING_MODE_LOGGING: u32 = 8;
pub const SE_ACCESS_CHECK_VALID_FLAGS: u32 = 8;
pub const SE_ACTIVATE_AS_USER_CAPABILITY: &'static [u8; 15usize] = b"activateAsUser\0";
pub const SE_CONSTRAINED_IMPERSONATION_CAPABILITY: &'static [u8; 25usize] =
    b"constrainedImpersonation\0";
pub const SE_SESSION_IMPERSONATION_CAPABILITY: &'static [u8; 21usize] = b"sessionImpersonation\0";
pub const SE_MUMA_CAPABILITY: &'static [u8; 5usize] = b"muma\0";
pub const SE_DEVELOPMENT_MODE_NETWORK_CAPABILITY: &'static [u8; 23usize] =
    b"developmentModeNetwork\0";
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_ALL_ACCESS_P: u32 = 983295;
pub const TOKEN_ALL_ACCESS: u32 = 983551;
pub const TOKEN_READ: u32 = 131080;
pub const TOKEN_WRITE: u32 = 131296;
pub const TOKEN_EXECUTE: u32 = 131072;
pub const TOKEN_TRUST_CONSTRAINT_MASK: u32 = 131096;
pub const TOKEN_ACCESS_PSEUDO_HANDLE_WIN8: u32 = 24;
pub const TOKEN_ACCESS_PSEUDO_HANDLE: u32 = 24;
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 = 59;
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 OWNER_SECURITY_INFORMATION: u32 = 1;
pub const GROUP_SECURITY_INFORMATION: u32 = 2;
pub const DACL_SECURITY_INFORMATION: u32 = 4;
pub const SACL_SECURITY_INFORMATION: u32 = 8;
pub const LABEL_SECURITY_INFORMATION: u32 = 16;
pub const ATTRIBUTE_SECURITY_INFORMATION: u32 = 32;
pub const SCOPE_SECURITY_INFORMATION: u32 = 64;
pub const PROCESS_TRUST_LABEL_SECURITY_INFORMATION: u32 = 128;
pub const ACCESS_FILTER_SECURITY_INFORMATION: u32 = 256;
pub const BACKUP_SECURITY_INFORMATION: u32 = 65536;
pub const PROTECTED_DACL_SECURITY_INFORMATION: u32 = 2147483648;
pub const PROTECTED_SACL_SECURITY_INFORMATION: u32 = 1073741824;
pub const UNPROTECTED_DACL_SECURITY_INFORMATION: u32 = 536870912;
pub const UNPROTECTED_SACL_SECURITY_INFORMATION: u32 = 268435456;
pub const SE_SIGNING_LEVEL_UNCHECKED: u32 = 0;
pub const SE_SIGNING_LEVEL_UNSIGNED: u32 = 1;
pub const SE_SIGNING_LEVEL_ENTERPRISE: u32 = 2;
pub const SE_SIGNING_LEVEL_CUSTOM_1: u32 = 3;
pub const SE_SIGNING_LEVEL_DEVELOPER: u32 = 3;
pub const SE_SIGNING_LEVEL_AUTHENTICODE: u32 = 4;
pub const SE_SIGNING_LEVEL_CUSTOM_2: u32 = 5;
pub const SE_SIGNING_LEVEL_STORE: u32 = 6;
pub const SE_SIGNING_LEVEL_CUSTOM_3: u32 = 7;
pub const SE_SIGNING_LEVEL_ANTIMALWARE: u32 = 7;
pub const SE_SIGNING_LEVEL_MICROSOFT: u32 = 8;
pub const SE_SIGNING_LEVEL_CUSTOM_4: u32 = 9;
pub const SE_SIGNING_LEVEL_CUSTOM_5: u32 = 10;
pub const SE_SIGNING_LEVEL_DYNAMIC_CODEGEN: u32 = 11;
pub const SE_SIGNING_LEVEL_WINDOWS: u32 = 12;
pub const SE_SIGNING_LEVEL_CUSTOM_7: u32 = 13;
pub const SE_SIGNING_LEVEL_WINDOWS_TCB: u32 = 14;
pub const SE_SIGNING_LEVEL_CUSTOM_6: u32 = 15;
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 PROCESS_SET_LIMITED_INFORMATION: u32 = 8192;
pub const PROCESS_ALL_ACCESS: u32 = 2097151;
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_QUERY_INFORMATION: u32 = 64;
pub const THREAD_SET_INFORMATION: u32 = 32;
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 THREAD_RESUME: u32 = 4096;
pub const THREAD_ALL_ACCESS: u32 = 2097151;
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 JOB_OBJECT_IMPERSONATE: u32 = 32;
pub const JOB_OBJECT_ALL_ACCESS: u32 = 2031679;
pub const FLS_MAXIMUM_AVAILABLE: u32 = 4080;
pub const TLS_MINIMUM_AVAILABLE: u32 = 64;
pub const THREAD_DYNAMIC_CODE_ALLOW: u32 = 1;
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 MEMORY_PRIORITY_LOWEST: u32 = 0;
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 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_NET_RATE_CONTROL_MAX_DSCP_TAG: u32 = 64;
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_SILO_TERMINATED: u32 = 13;
pub const JOB_OBJECT_MSG_MINIMUM: u32 = 1;
pub const JOB_OBJECT_MSG_MAXIMUM: u32 = 13;
pub const JOB_OBJECT_VALID_COMPLETION_FILTER: u32 = 16382;
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_JOB_MEMORY_HIGH: 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_JOB_MEMORY_LOW: 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_CPU_RATE_CONTROL: u32 = 262144;
pub const JOB_OBJECT_LIMIT_IO_RATE_CONTROL: u32 = 524288;
pub const JOB_OBJECT_LIMIT_NET_RATE_CONTROL: u32 = 1048576;
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_NOTIFICATION_LIMIT_VALID_FLAGS: u32 = 2064900;
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_MIN_MAX_RATE: u32 = 16;
pub const JOB_OBJECT_CPU_RATE_CONTROL_VALID_FLAGS: u32 = 31;
pub const EVENT_MODIFY_STATE: u32 = 2;
pub const EVENT_ALL_ACCESS: u32 = 2031619;
pub const MUTANT_QUERY_STATE: u32 = 1;
pub const MUTANT_ALL_ACCESS: u32 = 2031617;
pub const SEMAPHORE_MODIFY_STATE: u32 = 2;
pub const SEMAPHORE_ALL_ACCESS: u32 = 2031619;
pub const TIMER_QUERY_STATE: u32 = 1;
pub const TIMER_MODIFY_STATE: u32 = 2;
pub const TIMER_ALL_ACCESS: u32 = 2031619;
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 SYSTEM_CPU_SET_INFORMATION_PARKED: u32 = 1;
pub const SYSTEM_CPU_SET_INFORMATION_ALLOCATED: u32 = 2;
pub const SYSTEM_CPU_SET_INFORMATION_ALLOCATED_TO_TARGET_PROCESS: u32 = 4;
pub const SYSTEM_CPU_SET_INFORMATION_REALTIME: u32 = 8;
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 PF_ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE: u32 = 34;
pub const PF_MONITORX_INSTRUCTION_AVAILABLE: u32 = 35;
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_MPX_BNDREGS: u32 = 3;
pub const XSTATE_MPX_BNDCSR: u32 = 4;
pub const XSTATE_AVX512_KMASK: u32 = 5;
pub const XSTATE_AVX512_ZMM_H: u32 = 6;
pub const XSTATE_AVX512_ZMM: u32 = 7;
pub const XSTATE_IPT: u32 = 8;
pub const XSTATE_CET_U: u32 = 11;
pub const XSTATE_LWP: u32 = 62;
pub const MAXIMUM_XSTATE_FEATURES: u32 = 64;
pub const XSTATE_COMPACTION_ENABLE: u32 = 63;
pub const XSTATE_ALIGN_BIT: u32 = 1;
pub const XSTATE_CONTROLFLAG_XSAVEOPT_MASK: u32 = 1;
pub const XSTATE_CONTROLFLAG_XSAVEC_MASK: u32 = 2;
pub const XSTATE_CONTROLFLAG_VALID_MASK: u32 = 3;
pub const CFG_CALL_TARGET_VALID: u32 = 1;
pub const CFG_CALL_TARGET_PROCESSED: u32 = 2;
pub const CFG_CALL_TARGET_CONVERT_EXPORT_SUPPRESSED_TO_VALID: u32 = 4;
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 SECTION_ALL_ACCESS: u32 = 983071;
pub const SESSION_QUERY_ACCESS: u32 = 1;
pub const SESSION_MODIFY_ACCESS: u32 = 2;
pub const SESSION_ALL_ACCESS: u32 = 983043;
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 PAGE_GRAPHICS_NOACCESS: u32 = 2048;
pub const PAGE_GRAPHICS_READONLY: u32 = 4096;
pub const PAGE_GRAPHICS_READWRITE: u32 = 8192;
pub const PAGE_GRAPHICS_EXECUTE: u32 = 16384;
pub const PAGE_GRAPHICS_EXECUTE_READ: u32 = 32768;
pub const PAGE_GRAPHICS_EXECUTE_READWRITE: u32 = 65536;
pub const PAGE_GRAPHICS_COHERENT: u32 = 131072;
pub const PAGE_ENCLAVE_THREAD_CONTROL: u32 = 2147483648;
pub const PAGE_REVERT_TO_FILE_MAP: u32 = 2147483648;
pub const PAGE_TARGETS_NO_UPDATE: u32 = 1073741824;
pub const PAGE_TARGETS_INVALID: u32 = 1073741824;
pub const PAGE_ENCLAVE_UNVALIDATED: u32 = 536870912;
pub const PAGE_ENCLAVE_DECOMMIT: u32 = 268435456;
pub const MEM_COMMIT: u32 = 4096;
pub const MEM_RESERVE: u32 = 8192;
pub const MEM_REPLACE_PLACEHOLDER: u32 = 16384;
pub const MEM_RESERVE_PLACEHOLDER: 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_DIFFERENT_IMAGE_BASE_OK: u32 = 8388608;
pub const MEM_RESET_UNDO: u32 = 16777216;
pub const MEM_LARGE_PAGES: u32 = 536870912;
pub const MEM_4MB_PAGES: u32 = 2147483648;
pub const MEM_64K_PAGES: u32 = 541065216;
pub const MEM_UNMAP_WITH_TRANSIENT_BOOST: u32 = 1;
pub const MEM_COALESCE_PLACEHOLDERS: u32 = 1;
pub const MEM_PRESERVE_PLACEHOLDER: u32 = 2;
pub const MEM_DECOMMIT: u32 = 16384;
pub const MEM_RELEASE: u32 = 32768;
pub const MEM_FREE: u32 = 65536;
pub const MEM_EXTENDED_PARAMETER_GRAPHICS: u32 = 1;
pub const MEM_EXTENDED_PARAMETER_NONPAGED: u32 = 2;
pub const MEM_EXTENDED_PARAMETER_ZERO_PAGES_OPTIONAL: u32 = 4;
pub const MEM_EXTENDED_PARAMETER_NONPAGED_LARGE: u32 = 8;
pub const MEM_EXTENDED_PARAMETER_NONPAGED_HUGE: u32 = 16;
pub const MEM_EXTENDED_PARAMETER_TYPE_BITS: u32 = 8;
pub const SEC_PARTITION_OWNER_HANDLE: u32 = 262144;
pub const SEC_64K_PAGES: u32 = 524288;
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_PRIVATE: u32 = 131072;
pub const MEM_MAPPED: u32 = 262144;
pub const MEM_IMAGE: u32 = 16777216;
pub const WRITE_WATCH_FLAG_RESET: u32 = 1;
pub const ENCLAVE_TYPE_SGX: u32 = 1;
pub const ENCLAVE_TYPE_SGX2: u32 = 2;
pub const ENCLAVE_TYPE_VBS: u32 = 16;
pub const ENCLAVE_VBS_FLAG_DEBUG: u32 = 1;
pub const ENCLAVE_TYPE_VBS_BASIC: u32 = 17;
pub const VBS_BASIC_PAGE_MEASURED_DATA: u32 = 1;
pub const VBS_BASIC_PAGE_UNMEASURED_DATA: u32 = 2;
pub const VBS_BASIC_PAGE_ZERO_FILL: u32 = 3;
pub const VBS_BASIC_PAGE_THREAD_DESCRIPTOR: u32 = 4;
pub const VBS_BASIC_PAGE_SYSTEM_CALL: u32 = 5;
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_ALL_ACCESS: u32 = 2032127;
pub const FILE_GENERIC_READ: u32 = 1179785;
pub const FILE_GENERIC_WRITE: u32 = 1179926;
pub const FILE_GENERIC_EXECUTE: u32 = 1179808;
pub const FILE_SHARE_READ: u32 = 1;
pub const FILE_SHARE_WRITE: u32 = 2;
pub const FILE_SHARE_DELETE: u32 = 4;
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_INTEGRITY_STREAM: u32 = 32768;
pub const FILE_ATTRIBUTE_VIRTUAL: u32 = 65536;
pub const FILE_ATTRIBUTE_NO_SCRUB_DATA: u32 = 131072;
pub const FILE_ATTRIBUTE_EA: u32 = 262144;
pub const FILE_ATTRIBUTE_PINNED: u32 = 524288;
pub const FILE_ATTRIBUTE_UNPINNED: u32 = 1048576;
pub const FILE_ATTRIBUTE_RECALL_ON_OPEN: u32 = 262144;
pub const FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS: u32 = 4194304;
pub const TREE_CONNECT_ATTRIBUTE_PRIVACY: u32 = 16384;
pub const TREE_CONNECT_ATTRIBUTE_INTEGRITY: u32 = 32768;
pub const TREE_CONNECT_ATTRIBUTE_GLOBAL: u32 = 4;
pub const TREE_CONNECT_ATTRIBUTE_PINNED: u32 = 2;
pub const FILE_ATTRIBUTE_STRICTLY_SEQUENTIAL: u32 = 536870912;
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_RETURNS_CLEANUP_RESULT_INFO: u32 = 512;
pub const FILE_SUPPORTS_POSIX_UNLINK_RENAME: u32 = 1024;
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 FILE_SUPPORTS_BLOCK_REFCOUNTING: u32 = 134217728;
pub const FILE_SUPPORTS_SPARSE_VDL: u32 = 268435456;
pub const FILE_DAX_VOLUME: u32 = 536870912;
pub const FILE_SUPPORTS_GHOSTING: u32 = 1073741824;
pub const FILE_CS_FLAG_CASE_SENSITIVE_DIR: u32 = 1;
pub const FLUSH_FLAGS_FILE_DATA_ONLY: u32 = 1;
pub const FLUSH_FLAGS_NO_SYNC: u32 = 2;
pub const FLUSH_FLAGS_FILE_DATA_SYNC_ONLY: u32 = 4;
pub const MAXIMUM_REPARSE_DATA_BUFFER_SIZE: u32 = 16384;
pub const IO_REPARSE_TAG_RESERVED_ZERO: u32 = 0;
pub const IO_REPARSE_TAG_RESERVED_ONE: u32 = 1;
pub const IO_REPARSE_TAG_RESERVED_TWO: u32 = 2;
pub const IO_REPARSE_TAG_RESERVED_RANGE: u32 = 2;
pub const IO_REPARSE_TAG_MOUNT_POINT: u32 = 2684354563;
pub const IO_REPARSE_TAG_HSM: u32 = 3221225476;
pub const IO_REPARSE_TAG_HSM2: u32 = 2147483654;
pub const IO_REPARSE_TAG_SIS: u32 = 2147483655;
pub const IO_REPARSE_TAG_WIM: u32 = 2147483656;
pub const IO_REPARSE_TAG_CSV: u32 = 2147483657;
pub const IO_REPARSE_TAG_DFS: u32 = 2147483658;
pub const IO_REPARSE_TAG_SYMLINK: u32 = 2684354572;
pub const IO_REPARSE_TAG_DFSR: u32 = 2147483666;
pub const IO_REPARSE_TAG_DEDUP: u32 = 2147483667;
pub const IO_REPARSE_TAG_NFS: u32 = 2147483668;
pub const IO_REPARSE_TAG_FILE_PLACEHOLDER: u32 = 2147483669;
pub const IO_REPARSE_TAG_WOF: u32 = 2147483671;
pub const IO_REPARSE_TAG_WCI: u32 = 2147483672;
pub const IO_REPARSE_TAG_WCI_1: u32 = 2415923224;
pub const IO_REPARSE_TAG_GLOBAL_REPARSE: u32 = 2684354585;
pub const IO_REPARSE_TAG_CLOUD: u32 = 2415919130;
pub const IO_REPARSE_TAG_CLOUD_1: u32 = 2415923226;
pub const IO_REPARSE_TAG_CLOUD_2: u32 = 2415927322;
pub const IO_REPARSE_TAG_CLOUD_3: u32 = 2415931418;
pub const IO_REPARSE_TAG_CLOUD_4: u32 = 2415935514;
pub const IO_REPARSE_TAG_CLOUD_5: u32 = 2415939610;
pub const IO_REPARSE_TAG_CLOUD_6: u32 = 2415943706;
pub const IO_REPARSE_TAG_CLOUD_7: u32 = 2415947802;
pub const IO_REPARSE_TAG_CLOUD_8: u32 = 2415951898;
pub const IO_REPARSE_TAG_CLOUD_9: u32 = 2415955994;
pub const IO_REPARSE_TAG_CLOUD_A: u32 = 2415960090;
pub const IO_REPARSE_TAG_CLOUD_B: u32 = 2415964186;
pub const IO_REPARSE_TAG_CLOUD_C: u32 = 2415968282;
pub const IO_REPARSE_TAG_CLOUD_D: u32 = 2415972378;
pub const IO_REPARSE_TAG_CLOUD_E: u32 = 2415976474;
pub const IO_REPARSE_TAG_CLOUD_F: u32 = 2415980570;
pub const IO_REPARSE_TAG_CLOUD_MASK: u32 = 61440;
pub const IO_REPARSE_TAG_APPEXECLINK: u32 = 2147483675;
pub const IO_REPARSE_TAG_PROJFS: u32 = 2415919132;
pub const IO_REPARSE_TAG_STORAGE_SYNC: u32 = 2147483678;
pub const IO_REPARSE_TAG_WCI_TOMBSTONE: u32 = 2684354591;
pub const IO_REPARSE_TAG_UNHANDLED: u32 = 2147483680;
pub const IO_REPARSE_TAG_ONEDRIVE: u32 = 2147483681;
pub const IO_REPARSE_TAG_PROJFS_TOMBSTONE: u32 = 2684354594;
pub const IO_REPARSE_TAG_AF_UNIX: u32 = 2147483683;
pub const SCRUB_DATA_INPUT_FLAG_RESUME: u32 = 1;
pub const SCRUB_DATA_INPUT_FLAG_SKIP_IN_SYNC: u32 = 2;
pub const SCRUB_DATA_INPUT_FLAG_SKIP_NON_INTEGRITY_DATA: u32 = 4;
pub const SCRUB_DATA_INPUT_FLAG_IGNORE_REDUNDANCY: u32 = 8;
pub const SCRUB_DATA_INPUT_FLAG_SKIP_DATA: u32 = 16;
pub const SCRUB_DATA_INPUT_FLAG_SCRUB_BY_OBJECT_ID: u32 = 32;
pub const SCRUB_DATA_OUTPUT_FLAG_INCOMPLETE: u32 = 1;
pub const SCRUB_DATA_OUTPUT_FLAG_NON_USER_DATA_RANGE: u32 = 65536;
pub const SCRUB_DATA_OUTPUT_FLAG_PARITY_EXTENT_DATA_RETURNED: u32 = 131072;
pub const SCRUB_DATA_OUTPUT_FLAG_RESUME_CONTEXT_LENGTH_SPECIFIED: u32 = 262144;
pub const SHUFFLE_FILE_FLAG_SKIP_INITIALIZING_NEW_CLUSTERS: u32 = 1;
pub const IO_COMPLETION_MODIFY_STATE: u32 = 2;
pub const IO_COMPLETION_ALL_ACCESS: u32 = 2031619;
pub const IO_QOS_MAX_RESERVATION: u32 = 1000000000;
pub const SMB_CCF_APP_INSTANCE_EA_NAME: &'static [u8; 29usize] = b"ClusteredApplicationInstance\0";
pub const NETWORK_APP_INSTANCE_CSV_FLAGS_VALID_ONLY_IF_CSV_COORDINATOR: u32 = 1;
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_INDEX_TURN_OFF_THE_DISPLAY: u32 = 4;
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 POWERBUTTON_ACTION_VALUE_TURN_OFF_THE_DISPLAY: u32 = 8;
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_IDEAL_AGGRESSIVE: u32 = 3;
pub const PERFSTATE_POLICY_CHANGE_DECREASE_MAX: u32 = 2;
pub const PERFSTATE_POLICY_CHANGE_INCREASE_MAX: u32 = 3;
pub const PROCESSOR_THROTTLE_DISABLED: u32 = 0;
pub const PROCESSOR_THROTTLE_ENABLED: u32 = 1;
pub const PROCESSOR_THROTTLE_AUTOMATIC: 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_AGGRESSIVE_AT_GUARANTEED: u32 = 5;
pub const PROCESSOR_PERF_BOOST_MODE_EFFICIENT_AGGRESSIVE_AT_GUARANTEED: u32 = 6;
pub const PROCESSOR_PERF_BOOST_MODE_MAX: u32 = 6;
pub const PROCESSOR_PERF_AUTONOMOUS_MODE_DISABLED: u32 = 0;
pub const PROCESSOR_PERF_AUTONOMOUS_MODE_ENABLED: u32 = 1;
pub const PROCESSOR_PERF_PERFORMANCE_PREFERENCE: u32 = 255;
pub const PROCESSOR_PERF_ENERGY_PREFERENCE: u32 = 0;
pub const PROCESSOR_PERF_MINIMUM_ACTIVITY_WINDOW: u32 = 0;
pub const PROCESSOR_PERF_MAXIMUM_ACTIVITY_WINDOW: u32 = 1270000000;
pub const PROCESSOR_DUTY_CYCLING_DISABLED: u32 = 0;
pub const PROCESSOR_DUTY_CYCLING_ENABLED: u32 = 1;
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_CONNECTIVITY_IN_STANDBY_DISABLED: u32 = 0;
pub const POWER_CONNECTIVITY_IN_STANDBY_ENABLED: u32 = 1;
pub const POWER_CONNECTIVITY_IN_STANDBY_SYSTEM_MANAGED: u32 = 2;
pub const POWER_DISCONNECTED_STANDBY_MODE_NORMAL: u32 = 0;
pub const POWER_DISCONNECTED_STANDBY_MODE_AGGRESSIVE: u32 = 1;
pub const POWER_SYSTEM_MAXIMUM: u32 = 7;
pub const DIAGNOSTIC_REASON_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 = -2147483656;
pub const POWER_REQUEST_CONTEXT_VERSION: u32 = 0;
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 = 2;
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_FIRMWARE_LPI: u32 = 524288;
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 PPM_IDLE_IMPLEMENTATION_MICROPEP: u32 = 3;
pub const PPM_IDLE_IMPLEMENTATION_LPISTATES: u32 = 4;
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_USER_NOTIFY: u32 = 16;
pub const POWER_ACTION_DOZE_TO_HIBERNATE: u32 = 32;
pub const POWER_ACTION_ACPI_CRITICAL: u32 = 16777216;
pub const POWER_ACTION_ACPI_USER_NOTIFY: u32 = 33554432;
pub const POWER_ACTION_DIRECTED_DRIPS: u32 = 67108864;
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 NUM_DISCHARGE_POLICIES: u32 = 4;
pub const DISCHARGE_POLICY_CRITICAL: u32 = 0;
pub const DISCHARGE_POLICY_LOW: u32 = 1;
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 HIBERFILE_TYPE_NONE: u32 = 0;
pub const HIBERFILE_TYPE_REDUCED: u32 = 1;
pub const HIBERFILE_TYPE_FULL: u32 = 2;
pub const HIBERFILE_TYPE_MAX: u32 = 3;
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_TARGET_HOST: u32 = 1;
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_THUMB: u32 = 450;
pub const IMAGE_FILE_MACHINE_ARMNT: u32 = 452;
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_ARM64: u32 = 43620;
pub const IMAGE_FILE_MACHINE_CEE: u32 = 49390;
pub const IMAGE_NUMBEROF_DIRECTORY_ENTRIES: u32 = 16;
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_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_SUBSYSTEM_XBOX_CODE_CATALOG: u32 = 17;
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_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_WEAK_EXTERN_ANTI_DEPENDENCY: u32 = 4;
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_ARM64_ABSOLUTE: u32 = 0;
pub const IMAGE_REL_ARM64_ADDR32: u32 = 1;
pub const IMAGE_REL_ARM64_ADDR32NB: u32 = 2;
pub const IMAGE_REL_ARM64_BRANCH26: u32 = 3;
pub const IMAGE_REL_ARM64_PAGEBASE_REL21: u32 = 4;
pub const IMAGE_REL_ARM64_REL21: u32 = 5;
pub const IMAGE_REL_ARM64_PAGEOFFSET_12A: u32 = 6;
pub const IMAGE_REL_ARM64_PAGEOFFSET_12L: u32 = 7;
pub const IMAGE_REL_ARM64_SECREL: u32 = 8;
pub const IMAGE_REL_ARM64_SECREL_LOW12A: u32 = 9;
pub const IMAGE_REL_ARM64_SECREL_HIGH12A: u32 = 10;
pub const IMAGE_REL_ARM64_SECREL_LOW12L: u32 = 11;
pub const IMAGE_REL_ARM64_TOKEN: u32 = 12;
pub const IMAGE_REL_ARM64_SECTION: u32 = 13;
pub const IMAGE_REL_ARM64_ADDR64: u32 = 14;
pub const IMAGE_REL_ARM64_BRANCH19: u32 = 15;
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_AMD64_EHANDLER: u32 = 17;
pub const IMAGE_REL_AMD64_IMPORT_BR: u32 = 18;
pub const IMAGE_REL_AMD64_IMPORT_CALL: u32 = 19;
pub const IMAGE_REL_AMD64_CFG_BR: u32 = 20;
pub const IMAGE_REL_AMD64_CFG_BR_REX: u32 = 21;
pub const IMAGE_REL_AMD64_CFG_CALL: u32 = 22;
pub const IMAGE_REL_AMD64_INDIR_BR: u32 = 23;
pub const IMAGE_REL_AMD64_INDIR_BR_REX: u32 = 24;
pub const IMAGE_REL_AMD64_INDIR_CALL: u32 = 25;
pub const IMAGE_REL_AMD64_INDIR_BR_SWITCHTABLE_FIRST: u32 = 32;
pub const IMAGE_REL_AMD64_INDIR_BR_SWITCHTABLE_LAST: u32 = 47;
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_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_MACHINE_SPECIFIC_5: u32 = 5;
pub const IMAGE_REL_BASED_RESERVED: u32 = 6;
pub const IMAGE_REL_BASED_MACHINE_SPECIFIC_7: u32 = 7;
pub const IMAGE_REL_BASED_MACHINE_SPECIFIC_8: u32 = 8;
pub const IMAGE_REL_BASED_MACHINE_SPECIFIC_9: u32 = 9;
pub const IMAGE_REL_BASED_DIR64: u32 = 10;
pub const IMAGE_REL_BASED_IA64_IMM64: u32 = 9;
pub const IMAGE_REL_BASED_MIPS_JMPADDR: u32 = 5;
pub const IMAGE_REL_BASED_MIPS_JMPADDR16: u32 = 9;
pub const IMAGE_REL_BASED_ARM_MOV32: u32 = 5;
pub const IMAGE_REL_BASED_THUMB_MOV32: u32 = 7;
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_ARCHIVE_HYBRIDMAP_MEMBER: &'static [u8; 17usize] = b"/<HYBRIDMAP>/   \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_DYNAMIC_RELOCATION_GUARD_RF_PROLOGUE: u32 = 1;
pub const IMAGE_DYNAMIC_RELOCATION_GUARD_RF_EPILOGUE: u32 = 2;
pub const IMAGE_DYNAMIC_RELOCATION_GUARD_IMPORT_CONTROL_TRANSFER: u32 = 3;
pub const IMAGE_DYNAMIC_RELOCATION_GUARD_INDIR_CONTROL_TRANSFER: u32 = 4;
pub const IMAGE_DYNAMIC_RELOCATION_GUARD_SWITCHTABLE_BRANCH: u32 = 5;
pub const IMAGE_HOT_PATCH_BASE_OBLIGATORY: u32 = 1;
pub const IMAGE_HOT_PATCH_BASE_CAN_ROLL_BACK: u32 = 2;
pub const IMAGE_HOT_PATCH_CHUNK_INVERSE: u32 = 2147483648;
pub const IMAGE_HOT_PATCH_CHUNK_OBLIGATORY: u32 = 1073741824;
pub const IMAGE_HOT_PATCH_CHUNK_RESERVED: u32 = 1072705536;
pub const IMAGE_HOT_PATCH_CHUNK_TYPE: u32 = 1032192;
pub const IMAGE_HOT_PATCH_CHUNK_SOURCE_RVA: u32 = 32768;
pub const IMAGE_HOT_PATCH_CHUNK_TARGET_RVA: u32 = 16384;
pub const IMAGE_HOT_PATCH_CHUNK_SIZE: u32 = 4095;
pub const IMAGE_HOT_PATCH_NONE: u32 = 0;
pub const IMAGE_HOT_PATCH_FUNCTION: u32 = 114688;
pub const IMAGE_HOT_PATCH_ABSOLUTE: u32 = 180224;
pub const IMAGE_HOT_PATCH_REL32: u32 = 245760;
pub const IMAGE_HOT_PATCH_CALL_TARGET: u32 = 278528;
pub const IMAGE_HOT_PATCH_INDIRECT: u32 = 376832;
pub const IMAGE_HOT_PATCH_NO_CALL_TARGET: u32 = 409600;
pub const IMAGE_HOT_PATCH_DYNAMIC_VALUE: u32 = 491520;
pub const IMAGE_GUARD_CF_INSTRUMENTED: u32 = 256;
pub const IMAGE_GUARD_CFW_INSTRUMENTED: u32 = 512;
pub const IMAGE_GUARD_CF_FUNCTION_TABLE_PRESENT: u32 = 1024;
pub const IMAGE_GUARD_SECURITY_COOKIE_UNUSED: u32 = 2048;
pub const IMAGE_GUARD_PROTECT_DELAYLOAD_IAT: u32 = 4096;
pub const IMAGE_GUARD_DELAYLOAD_IAT_IN_ITS_OWN_SECTION: u32 = 8192;
pub const IMAGE_GUARD_CF_EXPORT_SUPPRESSION_INFO_PRESENT: u32 = 16384;
pub const IMAGE_GUARD_CF_ENABLE_EXPORT_SUPPRESSION: u32 = 32768;
pub const IMAGE_GUARD_CF_LONGJUMP_TABLE_PRESENT: u32 = 65536;
pub const IMAGE_GUARD_RF_INSTRUMENTED: u32 = 131072;
pub const IMAGE_GUARD_RF_ENABLE: u32 = 262144;
pub const IMAGE_GUARD_RF_STRICT: u32 = 524288;
pub const IMAGE_GUARD_RETPOLINE_PRESENT: u32 = 1048576;
pub const IMAGE_GUARD_CF_FUNCTION_TABLE_SIZE_MASK: u32 = 4026531840;
pub const IMAGE_GUARD_CF_FUNCTION_TABLE_SIZE_SHIFT: u32 = 28;
pub const IMAGE_GUARD_FLAG_FID_SUPPRESSED: u32 = 1;
pub const IMAGE_GUARD_FLAG_EXPORT_SUPPRESSED: u32 = 2;
pub const IMAGE_ENCLAVE_LONG_ID_LENGTH: u32 = 32;
pub const IMAGE_ENCLAVE_SHORT_ID_LENGTH: u32 = 16;
pub const IMAGE_ENCLAVE_POLICY_DEBUGGABLE: u32 = 1;
pub const IMAGE_ENCLAVE_FLAG_PRIMARY_IMAGE: u32 = 1;
pub const IMAGE_ENCLAVE_IMPORT_MATCH_NONE: u32 = 0;
pub const IMAGE_ENCLAVE_IMPORT_MATCH_UNIQUE_ID: u32 = 1;
pub const IMAGE_ENCLAVE_IMPORT_MATCH_AUTHOR_ID: u32 = 2;
pub const IMAGE_ENCLAVE_IMPORT_MATCH_FAMILY_ID: u32 = 3;
pub const IMAGE_ENCLAVE_IMPORT_MATCH_IMAGE_ID: u32 = 4;
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 IMAGE_DEBUG_TYPE_VC_FEATURE: u32 = 12;
pub const IMAGE_DEBUG_TYPE_POGO: u32 = 13;
pub const IMAGE_DEBUG_TYPE_ILTCG: u32 = 14;
pub const IMAGE_DEBUG_TYPE_MPX: u32 = 15;
pub const IMAGE_DEBUG_TYPE_REPRO: u32 = 16;
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_CHECK_ONLY: u32 = 1;
pub const RTL_RUN_ONCE_ASYNC: u32 = 2;
pub const RTL_RUN_ONCE_INIT_FAILED: u32 = 4;
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_GUARD_ICALL_CHECK_FAILURE: u32 = 10;
pub const FAST_FAIL_GUARD_WRITE_CHECK_FAILURE: u32 = 11;
pub const FAST_FAIL_INVALID_FIBER_SWITCH: u32 = 12;
pub const FAST_FAIL_INVALID_SET_OF_CONTEXT: u32 = 13;
pub const FAST_FAIL_INVALID_REFERENCE_COUNT: u32 = 14;
pub const FAST_FAIL_INVALID_JUMP_BUFFER: u32 = 18;
pub const FAST_FAIL_MRDATA_MODIFIED: u32 = 19;
pub const FAST_FAIL_CERTIFICATION_FAILURE: u32 = 20;
pub const FAST_FAIL_INVALID_EXCEPTION_CHAIN: u32 = 21;
pub const FAST_FAIL_CRYPTO_LIBRARY: u32 = 22;
pub const FAST_FAIL_INVALID_CALL_IN_DLL_CALLOUT: u32 = 23;
pub const FAST_FAIL_INVALID_IMAGE_BASE: u32 = 24;
pub const FAST_FAIL_DLOAD_PROTECTION_FAILURE: u32 = 25;
pub const FAST_FAIL_UNSAFE_EXTENSION_CALL: u32 = 26;
pub const FAST_FAIL_DEPRECATED_SERVICE_INVOKED: u32 = 27;
pub const FAST_FAIL_INVALID_BUFFER_ACCESS: u32 = 28;
pub const FAST_FAIL_INVALID_BALANCED_TREE: u32 = 29;
pub const FAST_FAIL_INVALID_NEXT_THREAD: u32 = 30;
pub const FAST_FAIL_GUARD_ICALL_CHECK_SUPPRESSED: u32 = 31;
pub const FAST_FAIL_APCS_DISABLED: u32 = 32;
pub const FAST_FAIL_INVALID_IDLE_STATE: u32 = 33;
pub const FAST_FAIL_MRDATA_PROTECTION_FAILURE: u32 = 34;
pub const FAST_FAIL_UNEXPECTED_HEAP_EXCEPTION: u32 = 35;
pub const FAST_FAIL_INVALID_LOCK_STATE: u32 = 36;
pub const FAST_FAIL_GUARD_JUMPTABLE: u32 = 37;
pub const FAST_FAIL_INVALID_LONGJUMP_TARGET: u32 = 38;
pub const FAST_FAIL_INVALID_DISPATCH_CONTEXT: u32 = 39;
pub const FAST_FAIL_INVALID_THREAD: u32 = 40;
pub const FAST_FAIL_INVALID_SYSCALL_NUMBER: u32 = 41;
pub const FAST_FAIL_INVALID_FILE_OPERATION: u32 = 42;
pub const FAST_FAIL_LPAC_ACCESS_DENIED: u32 = 43;
pub const FAST_FAIL_GUARD_SS_FAILURE: u32 = 44;
pub const FAST_FAIL_LOADER_CONTINUITY_FAILURE: u32 = 45;
pub const FAST_FAIL_GUARD_EXPORT_SUPPRESSION_FAILURE: u32 = 46;
pub const FAST_FAIL_INVALID_CONTROL_STACK: u32 = 47;
pub const FAST_FAIL_SET_CONTEXT_DENIED: u32 = 48;
pub const FAST_FAIL_INVALID_IAT: u32 = 49;
pub const FAST_FAIL_HEAP_METADATA_CORRUPTION: u32 = 50;
pub const FAST_FAIL_PAYLOAD_RESTRICTION_VIOLATION: u32 = 51;
pub const FAST_FAIL_LOW_LABEL_ACCESS_DENIED: u32 = 52;
pub const FAST_FAIL_ENCLAVE_CALL_FAILURE: u32 = 53;
pub const FAST_FAIL_UNHANDLED_LSS_EXCEPTON: u32 = 54;
pub const FAST_FAIL_ADMINLESS_ACCESS_DENIED: u32 = 55;
pub const FAST_FAIL_UNEXPECTED_CALL: u32 = 56;
pub const FAST_FAIL_CONTROL_INVALID_RETURN_ADDRESS: u32 = 57;
pub const FAST_FAIL_UNEXPECTED_HOST_BEHAVIOR: u32 = 58;
pub const FAST_FAIL_FLAGS_CORRUPTION: u32 = 59;
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 HEAP_CREATE_SEGMENT_HEAP: u32 = 256;
pub const HEAP_CREATE_HARDENED: u32 = 512;
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_AI_USE_EXTRA_PARAMS: u32 = 2048;
pub const SEF_AVOID_OWNER_RESTRICTION: u32 = 4096;
pub const SEF_FORCE_USER_MODE: u32 = 8192;
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 VRL_PREDEFINED_CLASS_BEGIN: u32 = 1;
pub const VRL_CUSTOM_CLASS_BEGIN: u32 = 256;
pub const VRL_CLASS_CONSISTENCY: u32 = 1;
pub const VRL_ENABLE_KERNEL_BREAKS: u32 = 2147483648;
pub const CTMF_INCLUDE_APPCONTAINER: u32 = 1;
pub const CTMF_INCLUDE_LPAC: u32 = 2;
pub const CTMF_VALID_FLAGS: u32 = 3;
pub const FLUSH_NV_MEMORY_IN_FLAG_NO_DRAIN: u32 = 1;
pub const WRITE_NV_MEMORY_FLAG_FLUSH: u32 = 1;
pub const WRITE_NV_MEMORY_FLAG_NON_TEMPORAL: u32 = 2;
pub const WRITE_NV_MEMORY_FLAG_PERSIST: u32 = 3;
pub const WRITE_NV_MEMORY_FLAG_NO_DRAIN: u32 = 256;
pub const FILL_NV_MEMORY_FLAG_FLUSH: u32 = 1;
pub const FILL_NV_MEMORY_FLAG_NON_TEMPORAL: u32 = 2;
pub const FILL_NV_MEMORY_FLAG_PERSIST: u32 = 3;
pub const FILL_NV_MEMORY_FLAG_NO_DRAIN: u32 = 256;
pub const RTL_CORRELATION_VECTOR_STRING_LENGTH: u32 = 129;
pub const RTL_CORRELATION_VECTOR_V1_PREFIX_LENGTH: u32 = 16;
pub const RTL_CORRELATION_VECTOR_V1_LENGTH: u32 = 64;
pub const RTL_CORRELATION_VECTOR_V2_PREFIX_LENGTH: u32 = 22;
pub const RTL_CORRELATION_VECTOR_V2_LENGTH: u32 = 128;
pub const IMAGE_POLICY_METADATA_VERSION: u32 = 1;
pub const IMAGE_POLICY_SECTION_NAME: &'static [u8; 9usize] = b".tPolicy\0";
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 HEAP_OPTIMIZE_RESOURCES_CURRENT_VERSION: 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_EXECUTEINLONGTHREAD: u32 = 16;
pub const WT_EXECUTEDELETEWAIT: u32 = 8;
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 CREATE_BOUNDARY_DESCRIPTOR_ADD_APPCONTAINER_SID: u32 = 1;
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 UNIFIEDBUILDREVISION_KEY: &'static [u8; 63usize] =
    b"\\Registry\\Machine\\Software\\Microsoft\\Windows NT\\CurrentVersion\0";
pub const UNIFIEDBUILDREVISION_VALUE: &'static [u8; 4usize] = b"UBR\0";
pub const UNIFIEDBUILDREVISION_MIN: u32 = 0;
pub const DEVICEFAMILYDEVICEFORM_KEY: &'static [u8; 67usize] =
    b"\\Registry\\Machine\\Software\\Microsoft\\Windows NT\\CurrentVersion\\OEM\0";
pub const DEVICEFAMILYDEVICEFORM_VALUE: &'static [u8; 11usize] = b"DeviceForm\0";
pub const DEVICEFAMILYINFOENUM_UAP: u32 = 0;
pub const DEVICEFAMILYINFOENUM_WINDOWS_8X: u32 = 1;
pub const DEVICEFAMILYINFOENUM_WINDOWS_PHONE_8X: u32 = 2;
pub const DEVICEFAMILYINFOENUM_DESKTOP: u32 = 3;
pub const DEVICEFAMILYINFOENUM_MOBILE: u32 = 4;
pub const DEVICEFAMILYINFOENUM_XBOX: u32 = 5;
pub const DEVICEFAMILYINFOENUM_TEAM: u32 = 6;
pub const DEVICEFAMILYINFOENUM_IOT: u32 = 7;
pub const DEVICEFAMILYINFOENUM_IOT_HEADLESS: u32 = 8;
pub const DEVICEFAMILYINFOENUM_SERVER: u32 = 9;
pub const DEVICEFAMILYINFOENUM_HOLOGRAPHIC: u32 = 10;
pub const DEVICEFAMILYINFOENUM_XBOXSRA: u32 = 11;
pub const DEVICEFAMILYINFOENUM_XBOXERA: u32 = 12;
pub const DEVICEFAMILYINFOENUM_SERVER_NANO: u32 = 13;
pub const DEVICEFAMILYINFOENUM_8828080: u32 = 14;
pub const DEVICEFAMILYINFOENUM_7067329: u32 = 15;
pub const DEVICEFAMILYINFOENUM_WINDOWS_CORE: u32 = 16;
pub const DEVICEFAMILYINFOENUM_WINDOWS_CORE_HEADLESS: u32 = 17;
pub const DEVICEFAMILYINFOENUM_MAX: u32 = 17;
pub const DEVICEFAMILYDEVICEFORM_UNKNOWN: u32 = 0;
pub const DEVICEFAMILYDEVICEFORM_PHONE: u32 = 1;
pub const DEVICEFAMILYDEVICEFORM_TABLET: u32 = 2;
pub const DEVICEFAMILYDEVICEFORM_DESKTOP: u32 = 3;
pub const DEVICEFAMILYDEVICEFORM_NOTEBOOK: u32 = 4;
pub const DEVICEFAMILYDEVICEFORM_CONVERTIBLE: u32 = 5;
pub const DEVICEFAMILYDEVICEFORM_DETACHABLE: u32 = 6;
pub const DEVICEFAMILYDEVICEFORM_ALLINONE: u32 = 7;
pub const DEVICEFAMILYDEVICEFORM_STICKPC: u32 = 8;
pub const DEVICEFAMILYDEVICEFORM_PUCK: u32 = 9;
pub const DEVICEFAMILYDEVICEFORM_LARGESCREEN: u32 = 10;
pub const DEVICEFAMILYDEVICEFORM_HMD: u32 = 11;
pub const DEVICEFAMILYDEVICEFORM_INDUSTRY_HANDHELD: u32 = 12;
pub const DEVICEFAMILYDEVICEFORM_INDUSTRY_TABLET: u32 = 13;
pub const DEVICEFAMILYDEVICEFORM_BANKING: u32 = 14;
pub const DEVICEFAMILYDEVICEFORM_BUILDING_AUTOMATION: u32 = 15;
pub const DEVICEFAMILYDEVICEFORM_DIGITAL_SIGNAGE: u32 = 16;
pub const DEVICEFAMILYDEVICEFORM_GAMING: u32 = 17;
pub const DEVICEFAMILYDEVICEFORM_HOME_AUTOMATION: u32 = 18;
pub const DEVICEFAMILYDEVICEFORM_INDUSTRIAL_AUTOMATION: u32 = 19;
pub const DEVICEFAMILYDEVICEFORM_KIOSK: u32 = 20;
pub const DEVICEFAMILYDEVICEFORM_MAKER_BOARD: u32 = 21;
pub const DEVICEFAMILYDEVICEFORM_MEDICAL: u32 = 22;
pub const DEVICEFAMILYDEVICEFORM_NETWORKING: u32 = 23;
pub const DEVICEFAMILYDEVICEFORM_POINT_OF_SERVICE: u32 = 24;
pub const DEVICEFAMILYDEVICEFORM_PRINTING: u32 = 25;
pub const DEVICEFAMILYDEVICEFORM_THIN_CLIENT: u32 = 26;
pub const DEVICEFAMILYDEVICEFORM_TOY: u32 = 27;
pub const DEVICEFAMILYDEVICEFORM_VENDING: u32 = 28;
pub const DEVICEFAMILYDEVICEFORM_INDUSTRY_OTHER: u32 = 29;
pub const DEVICEFAMILYDEVICEFORM_XBOX_ONE: u32 = 30;
pub const DEVICEFAMILYDEVICEFORM_XBOX_ONE_S: u32 = 31;
pub const DEVICEFAMILYDEVICEFORM_XBOX_ONE_X: u32 = 32;
pub const DEVICEFAMILYDEVICEFORM_XBOX_ONE_X_DEVKIT: u32 = 33;
pub const DEVICEFAMILYDEVICEFORM_MAX: u32 = 33;
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 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_32KEY: u32 = 512;
pub const KEY_WOW64_64KEY: u32 = 256;
pub const KEY_WOW64_RES: u32 = 768;
pub const KEY_READ: u32 = 131097;
pub const KEY_WRITE: u32 = 131078;
pub const KEY_EXECUTE: u32 = 131097;
pub const KEY_ALL_ACCESS: u32 = 983103;
pub const REG_OPTION_RESERVED: u32 = 0;
pub const REG_OPTION_NON_VOLATILE: u32 = 0;
pub const REG_OPTION_VOLATILE: u32 = 1;
pub const REG_OPTION_CREATE_LINK: u32 = 2;
pub const REG_OPTION_BACKUP_RESTORE: u32 = 4;
pub const REG_OPTION_OPEN_LINK: u32 = 8;
pub const REG_OPTION_DONT_VIRTUALIZE: u32 = 16;
pub const REG_LEGAL_OPTION: u32 = 31;
pub const REG_OPEN_LEGAL_OPTION: u32 = 28;
pub const REG_CREATED_NEW_KEY: u32 = 1;
pub const REG_OPENED_EXISTING_KEY: u32 = 2;
pub const REG_STANDARD_FORMAT: u32 = 1;
pub const REG_LATEST_FORMAT: u32 = 2;
pub const REG_NO_COMPRESSION: u32 = 4;
pub const REG_WHOLE_HIVE_VOLATILE: u32 = 1;
pub const REG_REFRESH_HIVE: u32 = 2;
pub const REG_NO_LAZY_FLUSH: u32 = 4;
pub const REG_FORCE_RESTORE: u32 = 8;
pub const REG_APP_HIVE: u32 = 16;
pub const REG_PROCESS_PRIVATE: u32 = 32;
pub const REG_START_JOURNAL: u32 = 64;
pub const REG_HIVE_EXACT_FILE_GROWTH: u32 = 128;
pub const REG_HIVE_NO_RM: u32 = 256;
pub const REG_HIVE_SINGLE_LOG: u32 = 512;
pub const REG_BOOT_HIVE: u32 = 1024;
pub const REG_LOAD_HIVE_OPEN_HANDLE: u32 = 2048;
pub const REG_FLUSH_HIVE_FILE_GROWTH: u32 = 4096;
pub const REG_OPEN_READ_ONLY: u32 = 8192;
pub const REG_IMMUTABLE: u32 = 16384;
pub const REG_APP_HIVE_OPEN_READ_ONLY: u32 = 8192;
pub const REG_FORCE_UNLOAD: u32 = 1;
pub const REG_UNLOAD_LEGAL_FLAGS: u32 = 1;
pub const REG_NOTIFY_CHANGE_NAME: u32 = 1;
pub const REG_NOTIFY_CHANGE_ATTRIBUTES: u32 = 2;
pub const REG_NOTIFY_CHANGE_LAST_SET: u32 = 4;
pub const REG_NOTIFY_CHANGE_SECURITY: u32 = 8;
pub const REG_NOTIFY_THREAD_AGNOSTIC: u32 = 268435456;
pub const REG_LEGAL_CHANGE_FILTER: u32 = 268435471;
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_USER_SERVICE: u32 = 64;
pub const SERVICE_USERSERVICE_INSTANCE: u32 = 128;
pub const SERVICE_USER_SHARE_PROCESS: u32 = 96;
pub const SERVICE_USER_OWN_PROCESS: u32 = 80;
pub const SERVICE_INTERACTIVE_PROCESS: u32 = 256;
pub const SERVICE_PKG_SERVICE: u32 = 512;
pub const SERVICE_TYPE_ALL: u32 = 1023;
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_RAM_DISK_BOOT_LOAD: u32 = 256;
pub const CM_SERVICE_VALID_PROMOTION_MASK: u32 = 511;
pub const TAPE_ERASE_SHORT: u32 = 0;
pub const TAPE_ERASE_LONG: u32 = 1;
pub const TAPE_LOAD: u32 = 0;
pub const TAPE_UNLOAD: u32 = 1;
pub const TAPE_TENSION: u32 = 2;
pub const TAPE_LOCK: u32 = 3;
pub const TAPE_UNLOCK: u32 = 4;
pub const TAPE_FORMAT: u32 = 5;
pub const TAPE_SETMARKS: u32 = 0;
pub const TAPE_FILEMARKS: u32 = 1;
pub const TAPE_SHORT_FILEMARKS: u32 = 2;
pub const TAPE_LONG_FILEMARKS: u32 = 3;
pub const TAPE_ABSOLUTE_POSITION: u32 = 0;
pub const TAPE_LOGICAL_POSITION: u32 = 1;
pub const TAPE_PSEUDO_LOGICAL_POSITION: u32 = 2;
pub const TAPE_REWIND: u32 = 0;
pub const TAPE_ABSOLUTE_BLOCK: u32 = 1;
pub const TAPE_LOGICAL_BLOCK: u32 = 2;
pub const TAPE_PSEUDO_LOGICAL_BLOCK: u32 = 3;
pub const TAPE_SPACE_END_OF_DATA: u32 = 4;
pub const TAPE_SPACE_RELATIVE_BLOCKS: u32 = 5;
pub const TAPE_SPACE_FILEMARKS: u32 = 6;
pub const TAPE_SPACE_SEQUENTIAL_FMKS: u32 = 7;
pub const TAPE_SPACE_SETMARKS: u32 = 8;
pub const TAPE_SPACE_SEQUENTIAL_SMKS: u32 = 9;
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 TAPE_FIXED_PARTITIONS: u32 = 0;
pub const TAPE_SELECT_PARTITIONS: u32 = 1;
pub const TAPE_INITIATOR_PARTITIONS: u32 = 2;
pub const TAPE_QUERY_DRIVE_PARAMETERS: u32 = 0;
pub const TAPE_QUERY_MEDIA_CAPACITY: u32 = 1;
pub const TAPE_CHECK_FOR_DRIVE_PROBLEM: u32 = 2;
pub const TAPE_QUERY_IO_ERROR_DATA: u32 = 3;
pub const TAPE_QUERY_DEVICE_ERROR_DATA: u32 = 4;
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 TRANSACTIONMANAGER_GENERIC_READ: u32 = 131073;
pub const TRANSACTIONMANAGER_GENERIC_WRITE: u32 = 131102;
pub const TRANSACTIONMANAGER_GENERIC_EXECUTE: u32 = 131072;
pub const TRANSACTIONMANAGER_ALL_ACCESS: u32 = 983103;
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 TRANSACTION_GENERIC_READ: u32 = 1179649;
pub const TRANSACTION_GENERIC_WRITE: u32 = 1179710;
pub const TRANSACTION_GENERIC_EXECUTE: u32 = 1179672;
pub const TRANSACTION_ALL_ACCESS: u32 = 2031679;
pub const TRANSACTION_RESOURCE_MANAGER_RIGHTS: u32 = 1179703;
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 RESOURCEMANAGER_GENERIC_READ: u32 = 1179649;
pub const RESOURCEMANAGER_GENERIC_WRITE: u32 = 1179774;
pub const RESOURCEMANAGER_GENERIC_EXECUTE: u32 = 1179740;
pub const RESOURCEMANAGER_ALL_ACCESS: u32 = 2031743;
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 ENLISTMENT_GENERIC_READ: u32 = 131073;
pub const ENLISTMENT_GENERIC_WRITE: u32 = 131102;
pub const ENLISTMENT_GENERIC_EXECUTE: u32 = 131100;
pub const ENLISTMENT_ALL_ACCESS: u32 = 983071;
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 ACTIVATION_CONTEXT_SECTION_WINRT_ACTIVATABLE_CLASSES: u32 = 12;
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 FIND_FIRST_EX_ON_DISK_ENTRIES_ONLY: u32 = 4;
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 INIT_ONCE_CHECK_ONLY: u32 = 1;
pub const INIT_ONCE_ASYNC: u32 = 2;
pub const INIT_ONCE_INIT_FAILED: u32 = 4;
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 MUTEX_ALL_ACCESS: u32 = 2031617;
pub const CREATE_MUTEX_INITIAL_OWNER: u32 = 1;
pub const CREATE_EVENT_MANUAL_RESET: u32 = 1;
pub const CREATE_EVENT_INITIAL_SET: u32 = 2;
pub const CREATE_WAITABLE_TIMER_MANUAL_RESET: u32 = 1;
pub const CREATE_WAITABLE_TIMER_HIGH_RESOLUTION: u32 = 2;
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 PROCESS_AFFINITY_ENABLE_AUTO_UPDATE: u32 = 1;
pub const PROC_THREAD_ATTRIBUTE_REPLACE_VALUE: u32 = 1;
pub const THREAD_POWER_THROTTLING_CURRENT_VERSION: u32 = 1;
pub const THREAD_POWER_THROTTLING_EXECUTION_SPEED: u32 = 1;
pub const THREAD_POWER_THROTTLING_VALID_FLAGS: u32 = 1;
pub const PME_CURRENT_VERSION: u32 = 1;
pub const PME_FAILFAST_ON_COMMIT_FAIL_DISABLE: u32 = 0;
pub const PME_FAILFAST_ON_COMMIT_FAIL_ENABLE: u32 = 1;
pub const PROCESS_POWER_THROTTLING_CURRENT_VERSION: u32 = 1;
pub const PROCESS_POWER_THROTTLING_EXECUTION_SPEED: u32 = 1;
pub const PROCESS_POWER_THROTTLING_VALID_FLAGS: u32 = 1;
pub const PROCESS_LEAP_SECOND_INFO_FLAG_ENABLE_SIXTY_SECOND: u32 = 1;
pub const PROCESS_LEAP_SECOND_INFO_VALID_FLAGS: u32 = 1;
pub const SCEX2_ALT_NETBIOS_NAME: u32 = 1;
pub const FILE_MAP_WRITE: u32 = 2;
pub const FILE_MAP_READ: u32 = 4;
pub const FILE_MAP_ALL_ACCESS: u32 = 983071;
pub const FILE_MAP_EXECUTE: u32 = 32;
pub const FILE_MAP_COPY: u32 = 1;
pub const FILE_MAP_RESERVE: u32 = 2147483648;
pub const FILE_MAP_TARGETS_INVALID: u32 = 1073741824;
pub const FILE_MAP_LARGE_PAGES: u32 = 536870912;
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 MEHC_PATROL_SCRUBBER_PRESENT: u32 = 1;
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 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 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_SAFE_CURRENT_DIRS: u32 = 8192;
pub const LOAD_LIBRARY_SEARCH_SYSTEM32_NO_FORWARDER: u32 = 16384;
pub const LOAD_LIBRARY_OS_INTEGRITY_CONTINUITY: u32 = 32768;
pub const PRIVATE_NAMESPACE_FLAG_DESTROY: u32 = 1;
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 FILE_FLAG_OPEN_REQUIRING_OPLOCK: u32 = 262144;
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 COPY_FILE_COPY_SYMLINK: u32 = 2048;
pub const COPY_FILE_NO_BUFFERING: u32 = 4096;
pub const COPY_FILE_REQUEST_SECURITY_PRIVILEGES: u32 = 8192;
pub const COPY_FILE_RESUME_FROM_PAUSE: u32 = 16384;
pub const COPY_FILE_NO_OFFLOAD: u32 = 262144;
pub const COPY_FILE_IGNORE_EDP_BLOCK: u32 = 4194304;
pub const COPY_FILE_IGNORE_SOURCE_ENCRYPTION: u32 = 8388608;
pub const COPY_FILE_REQUEST_COMPRESSED_TRAFFIC: u32 = 16777216;
pub const COPY_FILE_DONT_REQUEST_DEST_WRITE_DAC: u32 = 33554432;
pub const REPLACEFILE_WRITE_THROUGH: u32 = 1;
pub const REPLACEFILE_IGNORE_MERGE_ERRORS: u32 = 2;
pub const REPLACEFILE_IGNORE_ACL_ERRORS: u32 = 4;
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_SECURE_PROCESS: u32 = 4194304;
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 UMS_VERSION: u32 = 256;
pub const PROCESS_DEP_ENABLE: u32 = 1;
pub const PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION: u32 = 2;
pub const FILE_SKIP_COMPLETION_PORT_ON_SUCCESS: u32 = 1;
pub const FILE_SKIP_SET_EVENT_ON_HANDLE: u32 = 2;
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_ALLOCATE_BUFFER: u32 = 256;
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 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 EFS_DROP_ALTERNATE_STREAMS: u32 = 16;
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 BACKUP_GHOSTED_FILE_EXTENTS: u32 = 11;
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 STREAM_CONTAINS_GHOSTED_FILE_EXTENTS: u32 = 16;
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 STARTF_UNTRUSTEDSOURCE: u32 = 32768;
pub const SHUTDOWN_NORETRY: u32 = 1;
pub const PROTECTION_LEVEL_WINTCB_LIGHT: u32 = 0;
pub const PROTECTION_LEVEL_WINDOWS: u32 = 1;
pub const PROTECTION_LEVEL_WINDOWS_LIGHT: u32 = 2;
pub const PROTECTION_LEVEL_ANTIMALWARE_LIGHT: u32 = 3;
pub const PROTECTION_LEVEL_LSA_LIGHT: u32 = 4;
pub const PROTECTION_LEVEL_WINTCB: u32 = 5;
pub const PROTECTION_LEVEL_CODEGEN_LIGHT: u32 = 6;
pub const PROTECTION_LEVEL_AUTHENTICODE: u32 = 7;
pub const PROTECTION_LEVEL_PPL_APP: u32 = 8;
pub const PROTECTION_LEVEL_SAME: u32 = 4294967295;
pub const PROTECTION_LEVEL_NONE: u32 = 4294967294;
pub const PROCESS_NAME_NATIVE: u32 = 1;
pub const PROC_THREAD_ATTRIBUTE_NUMBER: u32 = 65535;
pub const PROC_THREAD_ATTRIBUTE_THREAD: u32 = 65536;
pub const PROC_THREAD_ATTRIBUTE_INPUT: u32 = 131072;
pub const PROC_THREAD_ATTRIBUTE_ADDITIVE: u32 = 262144;
pub const PROCESS_CREATION_MITIGATION_POLICY_DEP_ENABLE: u32 = 1;
pub const PROCESS_CREATION_MITIGATION_POLICY_DEP_ATL_THUNK_ENABLE: u32 = 2;
pub const PROCESS_CREATION_MITIGATION_POLICY_SEHOP_ENABLE: u32 = 4;
pub const PROCESS_CREATION_MITIGATION_POLICY_FORCE_RELOCATE_IMAGES_MASK: u32 = 768;
pub const PROCESS_CREATION_MITIGATION_POLICY_FORCE_RELOCATE_IMAGES_DEFER: u32 = 0;
pub const PROCESS_CREATION_MITIGATION_POLICY_FORCE_RELOCATE_IMAGES_ALWAYS_ON: u32 = 256;
pub const PROCESS_CREATION_MITIGATION_POLICY_FORCE_RELOCATE_IMAGES_ALWAYS_OFF: u32 = 512;
pub const PROCESS_CREATION_MITIGATION_POLICY_FORCE_RELOCATE_IMAGES_ALWAYS_ON_REQ_RELOCS: u32 = 768;
pub const PROCESS_CREATION_MITIGATION_POLICY_HEAP_TERMINATE_MASK: u32 = 12288;
pub const PROCESS_CREATION_MITIGATION_POLICY_HEAP_TERMINATE_DEFER: u32 = 0;
pub const PROCESS_CREATION_MITIGATION_POLICY_HEAP_TERMINATE_ALWAYS_ON: u32 = 4096;
pub const PROCESS_CREATION_MITIGATION_POLICY_HEAP_TERMINATE_ALWAYS_OFF: u32 = 8192;
pub const PROCESS_CREATION_MITIGATION_POLICY_HEAP_TERMINATE_RESERVED: u32 = 12288;
pub const PROCESS_CREATION_MITIGATION_POLICY_BOTTOM_UP_ASLR_MASK: u32 = 196608;
pub const PROCESS_CREATION_MITIGATION_POLICY_BOTTOM_UP_ASLR_DEFER: u32 = 0;
pub const PROCESS_CREATION_MITIGATION_POLICY_BOTTOM_UP_ASLR_ALWAYS_ON: u32 = 65536;
pub const PROCESS_CREATION_MITIGATION_POLICY_BOTTOM_UP_ASLR_ALWAYS_OFF: u32 = 131072;
pub const PROCESS_CREATION_MITIGATION_POLICY_BOTTOM_UP_ASLR_RESERVED: u32 = 196608;
pub const PROCESS_CREATION_MITIGATION_POLICY_HIGH_ENTROPY_ASLR_MASK: u32 = 3145728;
pub const PROCESS_CREATION_MITIGATION_POLICY_HIGH_ENTROPY_ASLR_DEFER: u32 = 0;
pub const PROCESS_CREATION_MITIGATION_POLICY_HIGH_ENTROPY_ASLR_ALWAYS_ON: u32 = 1048576;
pub const PROCESS_CREATION_MITIGATION_POLICY_HIGH_ENTROPY_ASLR_ALWAYS_OFF: u32 = 2097152;
pub const PROCESS_CREATION_MITIGATION_POLICY_HIGH_ENTROPY_ASLR_RESERVED: u32 = 3145728;
pub const PROCESS_CREATION_MITIGATION_POLICY_STRICT_HANDLE_CHECKS_MASK: u32 = 50331648;
pub const PROCESS_CREATION_MITIGATION_POLICY_STRICT_HANDLE_CHECKS_DEFER: u32 = 0;
pub const PROCESS_CREATION_MITIGATION_POLICY_STRICT_HANDLE_CHECKS_ALWAYS_ON: u32 = 16777216;
pub const PROCESS_CREATION_MITIGATION_POLICY_STRICT_HANDLE_CHECKS_ALWAYS_OFF: u32 = 33554432;
pub const PROCESS_CREATION_MITIGATION_POLICY_STRICT_HANDLE_CHECKS_RESERVED: u32 = 50331648;
pub const PROCESS_CREATION_MITIGATION_POLICY_WIN32K_SYSTEM_CALL_DISABLE_MASK: u32 = 805306368;
pub const PROCESS_CREATION_MITIGATION_POLICY_WIN32K_SYSTEM_CALL_DISABLE_DEFER: u32 = 0;
pub const PROCESS_CREATION_MITIGATION_POLICY_WIN32K_SYSTEM_CALL_DISABLE_ALWAYS_ON: u32 = 268435456;
pub const PROCESS_CREATION_MITIGATION_POLICY_WIN32K_SYSTEM_CALL_DISABLE_ALWAYS_OFF: u32 = 536870912;
pub const PROCESS_CREATION_MITIGATION_POLICY_WIN32K_SYSTEM_CALL_DISABLE_RESERVED: u32 = 805306368;
pub const PROCESS_CREATION_CHILD_PROCESS_RESTRICTED: u32 = 1;
pub const PROCESS_CREATION_CHILD_PROCESS_OVERRIDE: u32 = 2;
pub const PROCESS_CREATION_CHILD_PROCESS_RESTRICTED_UNLESS_SECURE: u32 = 4;
pub const PROCESS_CREATION_ALL_APPLICATION_PACKAGES_OPT_OUT: u32 = 1;
pub const PROCESS_CREATION_DESKTOP_APP_BREAKAWAY_ENABLE_PROCESS_TREE: u32 = 1;
pub const PROCESS_CREATION_DESKTOP_APP_BREAKAWAY_DISABLE_PROCESS_TREE: u32 = 2;
pub const PROCESS_CREATION_DESKTOP_APP_BREAKAWAY_OVERRIDE: u32 = 4;
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 GET_SYSTEM_WOW64_DIRECTORY_NAME_T_A: &'static [u8; 25usize] =
    b"GetSystemWow64DirectoryA\0";
pub const GET_SYSTEM_WOW64_DIRECTORY_NAME_T_W: &'static [u8; 25usize] =
    b"GetSystemWow64DirectoryA\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 COPYFILE2_MESSAGE_COPY_OFFLOAD: u32 = 1;
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 OPERATION_API_VERSION: u32 = 1;
pub const OPERATION_START_TRACE_CURRENT_THREAD: u32 = 1;
pub const OPERATION_END_DISCARD: u32 = 1;
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 LOGON32_PROVIDER_VIRTUAL: u32 = 4;
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 FACILITY_NULL: u32 = 0;
pub const FACILITY_RPC: u32 = 1;
pub const FACILITY_DISPATCH: u32 = 2;
pub const FACILITY_STORAGE: u32 = 3;
pub const FACILITY_ITF: u32 = 4;
pub const FACILITY_WIN32: u32 = 7;
pub const FACILITY_WINDOWS: u32 = 8;
pub const FACILITY_SSPI: u32 = 9;
pub const FACILITY_SECURITY: u32 = 9;
pub const FACILITY_CONTROL: u32 = 10;
pub const FACILITY_CERT: u32 = 11;
pub const FACILITY_INTERNET: u32 = 12;
pub const FACILITY_MEDIASERVER: u32 = 13;
pub const FACILITY_MSMQ: u32 = 14;
pub const FACILITY_SETUPAPI: u32 = 15;
pub const FACILITY_SCARD: u32 = 16;
pub const FACILITY_COMPLUS: u32 = 17;
pub const FACILITY_AAF: u32 = 18;
pub const FACILITY_URT: u32 = 19;
pub const FACILITY_ACS: u32 = 20;
pub const FACILITY_DPLAY: u32 = 21;
pub const FACILITY_UMI: u32 = 22;
pub const FACILITY_SXS: u32 = 23;
pub const FACILITY_WINDOWS_CE: u32 = 24;
pub const FACILITY_HTTP: u32 = 25;
pub const FACILITY_USERMODE_COMMONLOG: u32 = 26;
pub const FACILITY_WER: u32 = 27;
pub const FACILITY_USERMODE_FILTER_MANAGER: u32 = 31;
pub const FACILITY_BACKGROUNDCOPY: u32 = 32;
pub const FACILITY_CONFIGURATION: u32 = 33;
pub const FACILITY_WIA: u32 = 33;
pub const FACILITY_STATE_MANAGEMENT: u32 = 34;
pub const FACILITY_METADIRECTORY: u32 = 35;
pub const FACILITY_WINDOWSUPDATE: u32 = 36;
pub const FACILITY_DIRECTORYSERVICE: u32 = 37;
pub const FACILITY_GRAPHICS: u32 = 38;
pub const FACILITY_SHELL: u32 = 39;
pub const FACILITY_NAP: u32 = 39;
pub const FACILITY_TPM_SERVICES: u32 = 40;
pub const FACILITY_TPM_SOFTWARE: u32 = 41;
pub const FACILITY_UI: u32 = 42;
pub const FACILITY_XAML: u32 = 43;
pub const FACILITY_ACTION_QUEUE: u32 = 44;
pub const FACILITY_PLA: u32 = 48;
pub const FACILITY_WINDOWS_SETUP: u32 = 48;
pub const FACILITY_FVE: u32 = 49;
pub const FACILITY_FWP: u32 = 50;
pub const FACILITY_WINRM: u32 = 51;
pub const FACILITY_NDIS: u32 = 52;
pub const FACILITY_USERMODE_HYPERVISOR: u32 = 53;
pub const FACILITY_CMI: u32 = 54;
pub const FACILITY_USERMODE_VIRTUALIZATION: u32 = 55;
pub const FACILITY_USERMODE_VOLMGR: u32 = 56;
pub const FACILITY_BCD: u32 = 57;
pub const FACILITY_USERMODE_VHD: u32 = 58;
pub const FACILITY_USERMODE_HNS: u32 = 59;
pub const FACILITY_SDIAG: u32 = 60;
pub const FACILITY_WEBSERVICES: u32 = 61;
pub const FACILITY_WINPE: u32 = 61;
pub const FACILITY_WPN: u32 = 62;
pub const FACILITY_WINDOWS_STORE: u32 = 63;
pub const FACILITY_INPUT: u32 = 64;
pub const FACILITY_EAP: u32 = 66;
pub const FACILITY_WINDOWS_DEFENDER: u32 = 80;
pub const FACILITY_OPC: u32 = 81;
pub const FACILITY_XPS: u32 = 82;
pub const FACILITY_MBN: u32 = 84;
pub const FACILITY_POWERSHELL: u32 = 84;
pub const FACILITY_RAS: u32 = 83;
pub const FACILITY_P2P_INT: u32 = 98;
pub const FACILITY_P2P: u32 = 99;
pub const FACILITY_DAF: u32 = 100;
pub const FACILITY_BLUETOOTH_ATT: u32 = 101;
pub const FACILITY_AUDIO: u32 = 102;
pub const FACILITY_STATEREPOSITORY: u32 = 103;
pub const FACILITY_VISUALCPP: u32 = 109;
pub const FACILITY_SCRIPT: u32 = 112;
pub const FACILITY_PARSE: u32 = 113;
pub const FACILITY_BLB: u32 = 120;
pub const FACILITY_BLB_CLI: u32 = 121;
pub const FACILITY_WSBAPP: u32 = 122;
pub const FACILITY_BLBUI: u32 = 128;
pub const FACILITY_USN: u32 = 129;
pub const FACILITY_USERMODE_VOLSNAP: u32 = 130;
pub const FACILITY_TIERING: u32 = 131;
pub const FACILITY_WSB_ONLINE: u32 = 133;
pub const FACILITY_ONLINE_ID: u32 = 134;
pub const FACILITY_DEVICE_UPDATE_AGENT: u32 = 135;
pub const FACILITY_DRVSERVICING: u32 = 136;
pub const FACILITY_DLS: u32 = 153;
pub const FACILITY_DELIVERY_OPTIMIZATION: u32 = 208;
pub const FACILITY_USERMODE_SPACES: u32 = 231;
pub const FACILITY_USER_MODE_SECURITY_CORE: u32 = 232;
pub const FACILITY_USERMODE_LICENSING: u32 = 234;
pub const FACILITY_SOS: u32 = 160;
pub const FACILITY_DEBUGGERS: u32 = 176;
pub const FACILITY_SPP: u32 = 256;
pub const FACILITY_RESTORE: u32 = 256;
pub const FACILITY_DMSERVER: u32 = 256;
pub const FACILITY_DEPLOYMENT_SERVICES_SERVER: u32 = 257;
pub const FACILITY_DEPLOYMENT_SERVICES_IMAGING: u32 = 258;
pub const FACILITY_DEPLOYMENT_SERVICES_MANAGEMENT: u32 = 259;
pub const FACILITY_DEPLOYMENT_SERVICES_UTIL: u32 = 260;
pub const FACILITY_DEPLOYMENT_SERVICES_BINLSVC: u32 = 261;
pub const FACILITY_DEPLOYMENT_SERVICES_PXE: u32 = 263;
pub const FACILITY_DEPLOYMENT_SERVICES_TFTP: u32 = 264;
pub const FACILITY_DEPLOYMENT_SERVICES_TRANSPORT_MANAGEMENT: u32 = 272;
pub const FACILITY_DEPLOYMENT_SERVICES_DRIVER_PROVISIONING: u32 = 278;
pub const FACILITY_DEPLOYMENT_SERVICES_MULTICAST_SERVER: u32 = 289;
pub const FACILITY_DEPLOYMENT_SERVICES_MULTICAST_CLIENT: u32 = 290;
pub const FACILITY_DEPLOYMENT_SERVICES_CONTENT_PROVIDER: u32 = 293;
pub const FACILITY_LINGUISTIC_SERVICES: u32 = 305;
pub const FACILITY_AUDIOSTREAMING: u32 = 1094;
pub const FACILITY_ACCELERATOR: u32 = 1536;
pub const FACILITY_WMAAECMA: u32 = 1996;
pub const FACILITY_DIRECTMUSIC: u32 = 2168;
pub const FACILITY_DIRECT3D10: u32 = 2169;
pub const FACILITY_DXGI: u32 = 2170;
pub const FACILITY_DXGI_DDI: u32 = 2171;
pub const FACILITY_DIRECT3D11: u32 = 2172;
pub const FACILITY_DIRECT3D11_DEBUG: u32 = 2173;
pub const FACILITY_DIRECT3D12: u32 = 2174;
pub const FACILITY_DIRECT3D12_DEBUG: u32 = 2175;
pub const FACILITY_LEAP: u32 = 2184;
pub const FACILITY_AUDCLNT: u32 = 2185;
pub const FACILITY_WINCODEC_DWRITE_DWM: u32 = 2200;
pub const FACILITY_WINML: u32 = 2192;
pub const FACILITY_DIRECT2D: u32 = 2201;
pub const FACILITY_DEFRAG: u32 = 2304;
pub const FACILITY_USERMODE_SDBUS: u32 = 2305;
pub const FACILITY_JSCRIPT: u32 = 2306;
pub const FACILITY_PIDGENX: u32 = 2561;
pub const FACILITY_EAS: u32 = 85;
pub const FACILITY_WEB: u32 = 885;
pub const FACILITY_WEB_SOCKET: u32 = 886;
pub const FACILITY_MOBILE: u32 = 1793;
pub const FACILITY_SQLITE: u32 = 1967;
pub const FACILITY_UTC: u32 = 1989;
pub const FACILITY_WEP: u32 = 2049;
pub const FACILITY_SYNCENGINE: u32 = 2050;
pub const FACILITY_XBOX: u32 = 2339;
pub const FACILITY_GAME: u32 = 2340;
pub const FACILITY_PIX: u32 = 2748;
pub const ERROR_SUCCESS: u32 = 0;
pub const NO_ERROR: u32 = 0;
pub const ERROR_INVALID_FUNCTION: u32 = 1;
pub const ERROR_FILE_NOT_FOUND: u32 = 2;
pub const ERROR_PATH_NOT_FOUND: u32 = 3;
pub const ERROR_TOO_MANY_OPEN_FILES: u32 = 4;
pub const ERROR_ACCESS_DENIED: u32 = 5;
pub const ERROR_INVALID_HANDLE: u32 = 6;
pub const ERROR_ARENA_TRASHED: u32 = 7;
pub const ERROR_NOT_ENOUGH_MEMORY: u32 = 8;
pub const ERROR_INVALID_BLOCK: u32 = 9;
pub const ERROR_BAD_ENVIRONMENT: u32 = 10;
pub const ERROR_BAD_FORMAT: u32 = 11;
pub const ERROR_INVALID_ACCESS: u32 = 12;
pub const ERROR_INVALID_DATA: u32 = 13;
pub const ERROR_OUTOFMEMORY: u32 = 14;
pub const ERROR_INVALID_DRIVE: u32 = 15;
pub const ERROR_CURRENT_DIRECTORY: u32 = 16;
pub const ERROR_NOT_SAME_DEVICE: u32 = 17;
pub const ERROR_NO_MORE_FILES: u32 = 18;
pub const ERROR_WRITE_PROTECT: u32 = 19;
pub const ERROR_BAD_UNIT: u32 = 20;
pub const ERROR_NOT_READY: u32 = 21;
pub const ERROR_BAD_COMMAND: u32 = 22;
pub const ERROR_CRC: u32 = 23;
pub const ERROR_BAD_LENGTH: u32 = 24;
pub const ERROR_SEEK: u32 = 25;
pub const ERROR_NOT_DOS_DISK: u32 = 26;
pub const ERROR_SECTOR_NOT_FOUND: u32 = 27;
pub const ERROR_OUT_OF_PAPER: u32 = 28;
pub const ERROR_WRITE_FAULT: u32 = 29;
pub const ERROR_READ_FAULT: u32 = 30;
pub const ERROR_GEN_FAILURE: u32 = 31;
pub const ERROR_SHARING_VIOLATION: u32 = 32;
pub const ERROR_LOCK_VIOLATION: u32 = 33;
pub const ERROR_WRONG_DISK: u32 = 34;
pub const ERROR_SHARING_BUFFER_EXCEEDED: u32 = 36;
pub const ERROR_HANDLE_EOF: u32 = 38;
pub const ERROR_HANDLE_DISK_FULL: u32 = 39;
pub const ERROR_NOT_SUPPORTED: u32 = 50;
pub const ERROR_REM_NOT_LIST: u32 = 51;
pub const ERROR_DUP_NAME: u32 = 52;
pub const ERROR_BAD_NETPATH: u32 = 53;
pub const ERROR_NETWORK_BUSY: u32 = 54;
pub const ERROR_DEV_NOT_EXIST: u32 = 55;
pub const ERROR_TOO_MANY_CMDS: u32 = 56;
pub const ERROR_ADAP_HDW_ERR: u32 = 57;
pub const ERROR_BAD_NET_RESP: u32 = 58;
pub const ERROR_UNEXP_NET_ERR: u32 = 59;
pub const ERROR_BAD_REM_ADAP: u32 = 60;
pub const ERROR_PRINTQ_FULL: u32 = 61;
pub const ERROR_NO_SPOOL_SPACE: u32 = 62;
pub const ERROR_PRINT_CANCELLED: u32 = 63;
pub const ERROR_NETNAME_DELETED: u32 = 64;
pub const ERROR_NETWORK_ACCESS_DENIED: u32 = 65;
pub const ERROR_BAD_DEV_TYPE: u32 = 66;
pub const ERROR_BAD_NET_NAME: u32 = 67;
pub const ERROR_TOO_MANY_NAMES: u32 = 68;
pub const ERROR_TOO_MANY_SESS: u32 = 69;
pub const ERROR_SHARING_PAUSED: u32 = 70;
pub const ERROR_REQ_NOT_ACCEP: u32 = 71;
pub const ERROR_REDIR_PAUSED: u32 = 72;
pub const ERROR_FILE_EXISTS: u32 = 80;
pub const ERROR_CANNOT_MAKE: u32 = 82;
pub const ERROR_FAIL_I24: u32 = 83;
pub const ERROR_OUT_OF_STRUCTURES: u32 = 84;
pub const ERROR_ALREADY_ASSIGNED: u32 = 85;
pub const ERROR_INVALID_PASSWORD: u32 = 86;
pub const ERROR_INVALID_PARAMETER: u32 = 87;
pub const ERROR_NET_WRITE_FAULT: u32 = 88;
pub const ERROR_NO_PROC_SLOTS: u32 = 89;
pub const ERROR_TOO_MANY_SEMAPHORES: u32 = 100;
pub const ERROR_EXCL_SEM_ALREADY_OWNED: u32 = 101;
pub const ERROR_SEM_IS_SET: u32 = 102;
pub const ERROR_TOO_MANY_SEM_REQUESTS: u32 = 103;
pub const ERROR_INVALID_AT_INTERRUPT_TIME: u32 = 104;
pub const ERROR_SEM_OWNER_DIED: u32 = 105;
pub const ERROR_SEM_USER_LIMIT: u32 = 106;
pub const ERROR_DISK_CHANGE: u32 = 107;
pub const ERROR_DRIVE_LOCKED: u32 = 108;
pub const ERROR_BROKEN_PIPE: u32 = 109;
pub const ERROR_OPEN_FAILED: u32 = 110;
pub const ERROR_BUFFER_OVERFLOW: u32 = 111;
pub const ERROR_DISK_FULL: u32 = 112;
pub const ERROR_NO_MORE_SEARCH_HANDLES: u32 = 113;
pub const ERROR_INVALID_TARGET_HANDLE: u32 = 114;
pub const ERROR_INVALID_CATEGORY: u32 = 117;
pub const ERROR_INVALID_VERIFY_SWITCH: u32 = 118;
pub const ERROR_BAD_DRIVER_LEVEL: u32 = 119;
pub const ERROR_CALL_NOT_IMPLEMENTED: u32 = 120;
pub const ERROR_SEM_TIMEOUT: u32 = 121;
pub const ERROR_INSUFFICIENT_BUFFER: u32 = 122;
pub const ERROR_INVALID_NAME: u32 = 123;
pub const ERROR_INVALID_LEVEL: u32 = 124;
pub const ERROR_NO_VOLUME_LABEL: u32 = 125;
pub const ERROR_MOD_NOT_FOUND: u32 = 126;
pub const ERROR_PROC_NOT_FOUND: u32 = 127;
pub const ERROR_WAIT_NO_CHILDREN: u32 = 128;
pub const ERROR_CHILD_NOT_COMPLETE: u32 = 129;
pub const ERROR_DIRECT_ACCESS_HANDLE: u32 = 130;
pub const ERROR_NEGATIVE_SEEK: u32 = 131;
pub const ERROR_SEEK_ON_DEVICE: u32 = 132;
pub const ERROR_IS_JOIN_TARGET: u32 = 133;
pub const ERROR_IS_JOINED: u32 = 134;
pub const ERROR_IS_SUBSTED: u32 = 135;
pub const ERROR_NOT_JOINED: u32 = 136;
pub const ERROR_NOT_SUBSTED: u32 = 137;
pub const ERROR_JOIN_TO_JOIN: u32 = 138;
pub const ERROR_SUBST_TO_SUBST: u32 = 139;
pub const ERROR_JOIN_TO_SUBST: u32 = 140;
pub const ERROR_SUBST_TO_JOIN: u32 = 141;
pub const ERROR_BUSY_DRIVE: u32 = 142;
pub const ERROR_SAME_DRIVE: u32 = 143;
pub const ERROR_DIR_NOT_ROOT: u32 = 144;
pub const ERROR_DIR_NOT_EMPTY: u32 = 145;
pub const ERROR_IS_SUBST_PATH: u32 = 146;
pub const ERROR_IS_JOIN_PATH: u32 = 147;
pub const ERROR_PATH_BUSY: u32 = 148;
pub const ERROR_IS_SUBST_TARGET: u32 = 149;
pub const ERROR_SYSTEM_TRACE: u32 = 150;
pub const ERROR_INVALID_EVENT_COUNT: u32 = 151;
pub const ERROR_TOO_MANY_MUXWAITERS: u32 = 152;
pub const ERROR_INVALID_LIST_FORMAT: u32 = 153;
pub const ERROR_LABEL_TOO_LONG: u32 = 154;
pub const ERROR_TOO_MANY_TCBS: u32 = 155;
pub const ERROR_SIGNAL_REFUSED: u32 = 156;
pub const ERROR_DISCARDED: u32 = 157;
pub const ERROR_NOT_LOCKED: u32 = 158;
pub const ERROR_BAD_THREADID_ADDR: u32 = 159;
pub const ERROR_BAD_ARGUMENTS: u32 = 160;
pub const ERROR_BAD_PATHNAME: u32 = 161;
pub const ERROR_SIGNAL_PENDING: u32 = 162;
pub const ERROR_MAX_THRDS_REACHED: u32 = 164;
pub const ERROR_LOCK_FAILED: u32 = 167;
pub const ERROR_BUSY: u32 = 170;
pub const ERROR_DEVICE_SUPPORT_IN_PROGRESS: u32 = 171;
pub const ERROR_CANCEL_VIOLATION: u32 = 173;
pub const ERROR_ATOMIC_LOCKS_NOT_SUPPORTED: u32 = 174;
pub const ERROR_INVALID_SEGMENT_NUMBER: u32 = 180;
pub const ERROR_INVALID_ORDINAL: u32 = 182;
pub const ERROR_ALREADY_EXISTS: u32 = 183;
pub const ERROR_INVALID_FLAG_NUMBER: u32 = 186;
pub const ERROR_SEM_NOT_FOUND: u32 = 187;
pub const ERROR_INVALID_STARTING_CODESEG: u32 = 188;
pub const ERROR_INVALID_STACKSEG: u32 = 189;
pub const ERROR_INVALID_MODULETYPE: u32 = 190;
pub const ERROR_INVALID_EXE_SIGNATURE: u32 = 191;
pub const ERROR_EXE_MARKED_INVALID: u32 = 192;
pub const ERROR_BAD_EXE_FORMAT: u32 = 193;
pub const ERROR_ITERATED_DATA_EXCEEDS_64k: u32 = 194;
pub const ERROR_INVALID_MINALLOCSIZE: u32 = 195;
pub const ERROR_DYNLINK_FROM_INVALID_RING: u32 = 196;
pub const ERROR_IOPL_NOT_ENABLED: u32 = 197;
pub const ERROR_INVALID_SEGDPL: u32 = 198;
pub const ERROR_AUTODATASEG_EXCEEDS_64k: u32 = 199;
pub const ERROR_RING2SEG_MUST_BE_MOVABLE: u32 = 200;
pub const ERROR_RELOC_CHAIN_XEEDS_SEGLIM: u32 = 201;
pub const ERROR_INFLOOP_IN_RELOC_CHAIN: u32 = 202;
pub const ERROR_ENVVAR_NOT_FOUND: u32 = 203;
pub const ERROR_NO_SIGNAL_SENT: u32 = 205;
pub const ERROR_FILENAME_EXCED_RANGE: u32 = 206;
pub const ERROR_RING2_STACK_IN_USE: u32 = 207;
pub const ERROR_META_EXPANSION_TOO_LONG: u32 = 208;
pub const ERROR_INVALID_SIGNAL_NUMBER: u32 = 209;
pub const ERROR_THREAD_1_INACTIVE: u32 = 210;
pub const ERROR_LOCKED: u32 = 212;
pub const ERROR_TOO_MANY_MODULES: u32 = 214;
pub const ERROR_NESTING_NOT_ALLOWED: u32 = 215;
pub const ERROR_EXE_MACHINE_TYPE_MISMATCH: u32 = 216;
pub const ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY: u32 = 217;
pub const ERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY: u32 = 218;
pub const ERROR_FILE_CHECKED_OUT: u32 = 220;
pub const ERROR_CHECKOUT_REQUIRED: u32 = 221;
pub const ERROR_BAD_FILE_TYPE: u32 = 222;
pub const ERROR_FILE_TOO_LARGE: u32 = 223;
pub const ERROR_FORMS_AUTH_REQUIRED: u32 = 224;
pub const ERROR_VIRUS_INFECTED: u32 = 225;
pub const ERROR_VIRUS_DELETED: u32 = 226;
pub const ERROR_PIPE_LOCAL: u32 = 229;
pub const ERROR_BAD_PIPE: u32 = 230;
pub const ERROR_PIPE_BUSY: u32 = 231;
pub const ERROR_NO_DATA: u32 = 232;
pub const ERROR_PIPE_NOT_CONNECTED: u32 = 233;
pub const ERROR_MORE_DATA: u32 = 234;
pub const ERROR_NO_WORK_DONE: u32 = 235;
pub const ERROR_VC_DISCONNECTED: u32 = 240;
pub const ERROR_INVALID_EA_NAME: u32 = 254;
pub const ERROR_EA_LIST_INCONSISTENT: u32 = 255;
pub const WAIT_TIMEOUT: u32 = 258;
pub const ERROR_NO_MORE_ITEMS: u32 = 259;
pub const ERROR_CANNOT_COPY: u32 = 266;
pub const ERROR_DIRECTORY: u32 = 267;
pub const ERROR_EAS_DIDNT_FIT: u32 = 275;
pub const ERROR_EA_FILE_CORRUPT: u32 = 276;
pub const ERROR_EA_TABLE_FULL: u32 = 277;
pub const ERROR_INVALID_EA_HANDLE: u32 = 278;
pub const ERROR_EAS_NOT_SUPPORTED: u32 = 282;
pub const ERROR_NOT_OWNER: u32 = 288;
pub const ERROR_TOO_MANY_POSTS: u32 = 298;
pub const ERROR_PARTIAL_COPY: u32 = 299;
pub const ERROR_OPLOCK_NOT_GRANTED: u32 = 300;
pub const ERROR_INVALID_OPLOCK_PROTOCOL: u32 = 301;
pub const ERROR_DISK_TOO_FRAGMENTED: u32 = 302;
pub const ERROR_DELETE_PENDING: u32 = 303;
pub const ERROR_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING: u32 = 304;
pub const ERROR_SHORT_NAMES_NOT_ENABLED_ON_VOLUME: u32 = 305;
pub const ERROR_SECURITY_STREAM_IS_INCONSISTENT: u32 = 306;
pub const ERROR_INVALID_LOCK_RANGE: u32 = 307;
pub const ERROR_IMAGE_SUBSYSTEM_NOT_PRESENT: u32 = 308;
pub const ERROR_NOTIFICATION_GUID_ALREADY_DEFINED: u32 = 309;
pub const ERROR_INVALID_EXCEPTION_HANDLER: u32 = 310;
pub const ERROR_DUPLICATE_PRIVILEGES: u32 = 311;
pub const ERROR_NO_RANGES_PROCESSED: u32 = 312;
pub const ERROR_NOT_ALLOWED_ON_SYSTEM_FILE: u32 = 313;
pub const ERROR_DISK_RESOURCES_EXHAUSTED: u32 = 314;
pub const ERROR_INVALID_TOKEN: u32 = 315;
pub const ERROR_DEVICE_FEATURE_NOT_SUPPORTED: u32 = 316;
pub const ERROR_MR_MID_NOT_FOUND: u32 = 317;
pub const ERROR_SCOPE_NOT_FOUND: u32 = 318;
pub const ERROR_UNDEFINED_SCOPE: u32 = 319;
pub const ERROR_INVALID_CAP: u32 = 320;
pub const ERROR_DEVICE_UNREACHABLE: u32 = 321;
pub const ERROR_DEVICE_NO_RESOURCES: u32 = 322;
pub const ERROR_DATA_CHECKSUM_ERROR: u32 = 323;
pub const ERROR_INTERMIXED_KERNEL_EA_OPERATION: u32 = 324;
pub const ERROR_FILE_LEVEL_TRIM_NOT_SUPPORTED: u32 = 326;
pub const ERROR_OFFSET_ALIGNMENT_VIOLATION: u32 = 327;
pub const ERROR_INVALID_FIELD_IN_PARAMETER_LIST: u32 = 328;
pub const ERROR_OPERATION_IN_PROGRESS: u32 = 329;
pub const ERROR_BAD_DEVICE_PATH: u32 = 330;
pub const ERROR_TOO_MANY_DESCRIPTORS: u32 = 331;
pub const ERROR_SCRUB_DATA_DISABLED: u32 = 332;
pub const ERROR_NOT_REDUNDANT_STORAGE: u32 = 333;
pub const ERROR_RESIDENT_FILE_NOT_SUPPORTED: u32 = 334;
pub const ERROR_COMPRESSED_FILE_NOT_SUPPORTED: u32 = 335;
pub const ERROR_DIRECTORY_NOT_SUPPORTED: u32 = 336;
pub const ERROR_NOT_READ_FROM_COPY: u32 = 337;
pub const ERROR_FT_WRITE_FAILURE: u32 = 338;
pub const ERROR_FT_DI_SCAN_REQUIRED: u32 = 339;
pub const ERROR_INVALID_KERNEL_INFO_VERSION: u32 = 340;
pub const ERROR_INVALID_PEP_INFO_VERSION: u32 = 341;
pub const ERROR_OBJECT_NOT_EXTERNALLY_BACKED: u32 = 342;
pub const ERROR_EXTERNAL_BACKING_PROVIDER_UNKNOWN: u32 = 343;
pub const ERROR_COMPRESSION_NOT_BENEFICIAL: u32 = 344;
pub const ERROR_STORAGE_TOPOLOGY_ID_MISMATCH: u32 = 345;
pub const ERROR_BLOCKED_BY_PARENTAL_CONTROLS: u32 = 346;
pub const ERROR_BLOCK_TOO_MANY_REFERENCES: u32 = 347;
pub const ERROR_MARKED_TO_DISALLOW_WRITES: u32 = 348;
pub const ERROR_ENCLAVE_FAILURE: u32 = 349;
pub const ERROR_FAIL_NOACTION_REBOOT: u32 = 350;
pub const ERROR_FAIL_SHUTDOWN: u32 = 351;
pub const ERROR_FAIL_RESTART: u32 = 352;
pub const ERROR_MAX_SESSIONS_REACHED: u32 = 353;
pub const ERROR_NETWORK_ACCESS_DENIED_EDP: u32 = 354;
pub const ERROR_DEVICE_HINT_NAME_BUFFER_TOO_SMALL: u32 = 355;
pub const ERROR_EDP_POLICY_DENIES_OPERATION: u32 = 356;
pub const ERROR_EDP_DPL_POLICY_CANT_BE_SATISFIED: u32 = 357;
pub const ERROR_CLOUD_FILE_SYNC_ROOT_METADATA_CORRUPT: u32 = 358;
pub const ERROR_DEVICE_IN_MAINTENANCE: u32 = 359;
pub const ERROR_NOT_SUPPORTED_ON_DAX: u32 = 360;
pub const ERROR_DAX_MAPPING_EXISTS: u32 = 361;
pub const ERROR_CLOUD_FILE_PROVIDER_NOT_RUNNING: u32 = 362;
pub const ERROR_CLOUD_FILE_METADATA_CORRUPT: u32 = 363;
pub const ERROR_CLOUD_FILE_METADATA_TOO_LARGE: u32 = 364;
pub const ERROR_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE: u32 = 365;
pub const ERROR_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH: u32 = 366;
pub const ERROR_CHILD_PROCESS_BLOCKED: u32 = 367;
pub const ERROR_STORAGE_LOST_DATA_PERSISTENCE: u32 = 368;
pub const ERROR_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE: u32 = 369;
pub const ERROR_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT: u32 = 370;
pub const ERROR_FILE_SYSTEM_VIRTUALIZATION_BUSY: u32 = 371;
pub const ERROR_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN: u32 = 372;
pub const ERROR_GDI_HANDLE_LEAK: u32 = 373;
pub const ERROR_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS: u32 = 374;
pub const ERROR_CLOUD_FILE_PROPERTY_VERSION_NOT_SUPPORTED: u32 = 375;
pub const ERROR_NOT_A_CLOUD_FILE: u32 = 376;
pub const ERROR_CLOUD_FILE_NOT_IN_SYNC: u32 = 377;
pub const ERROR_CLOUD_FILE_ALREADY_CONNECTED: u32 = 378;
pub const ERROR_CLOUD_FILE_NOT_SUPPORTED: u32 = 379;
pub const ERROR_CLOUD_FILE_INVALID_REQUEST: u32 = 380;
pub const ERROR_CLOUD_FILE_READ_ONLY_VOLUME: u32 = 381;
pub const ERROR_CLOUD_FILE_CONNECTED_PROVIDER_ONLY: u32 = 382;
pub const ERROR_CLOUD_FILE_VALIDATION_FAILED: u32 = 383;
pub const ERROR_SMB1_NOT_AVAILABLE: u32 = 384;
pub const ERROR_FILE_SYSTEM_VIRTUALIZATION_INVALID_OPERATION: u32 = 385;
pub const ERROR_CLOUD_FILE_AUTHENTICATION_FAILED: u32 = 386;
pub const ERROR_CLOUD_FILE_INSUFFICIENT_RESOURCES: u32 = 387;
pub const ERROR_CLOUD_FILE_NETWORK_UNAVAILABLE: u32 = 388;
pub const ERROR_CLOUD_FILE_UNSUCCESSFUL: u32 = 389;
pub const ERROR_CLOUD_FILE_NOT_UNDER_SYNC_ROOT: u32 = 390;
pub const ERROR_CLOUD_FILE_IN_USE: u32 = 391;
pub const ERROR_CLOUD_FILE_PINNED: u32 = 392;
pub const ERROR_CLOUD_FILE_REQUEST_ABORTED: u32 = 393;
pub const ERROR_CLOUD_FILE_PROPERTY_CORRUPT: u32 = 394;
pub const ERROR_CLOUD_FILE_ACCESS_DENIED: u32 = 395;
pub const ERROR_CLOUD_FILE_INCOMPATIBLE_HARDLINKS: u32 = 396;
pub const ERROR_CLOUD_FILE_PROPERTY_LOCK_CONFLICT: u32 = 397;
pub const ERROR_CLOUD_FILE_REQUEST_CANCELED: u32 = 398;
pub const ERROR_EXTERNAL_SYSKEY_NOT_SUPPORTED: u32 = 399;
pub const ERROR_THREAD_MODE_ALREADY_BACKGROUND: u32 = 400;
pub const ERROR_THREAD_MODE_NOT_BACKGROUND: u32 = 401;
pub const ERROR_PROCESS_MODE_ALREADY_BACKGROUND: u32 = 402;
pub const ERROR_PROCESS_MODE_NOT_BACKGROUND: u32 = 403;
pub const ERROR_CLOUD_FILE_PROVIDER_TERMINATED: u32 = 404;
pub const ERROR_NOT_A_CLOUD_SYNC_ROOT: u32 = 405;
pub const ERROR_FILE_PROTECTED_UNDER_DPL: u32 = 406;
pub const ERROR_VOLUME_NOT_CLUSTER_ALIGNED: u32 = 407;
pub const ERROR_NO_PHYSICALLY_ALIGNED_FREE_SPACE_FOUND: u32 = 408;
pub const ERROR_APPX_FILE_NOT_ENCRYPTED: u32 = 409;
pub const ERROR_RWRAW_ENCRYPTED_FILE_NOT_ENCRYPTED: u32 = 410;
pub const ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILEOFFSET: u32 = 411;
pub const ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILERANGE: u32 = 412;
pub const ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_PARAMETER: u32 = 413;
pub const ERROR_LINUX_SUBSYSTEM_NOT_PRESENT: u32 = 414;
pub const ERROR_FT_READ_FAILURE: u32 = 415;
pub const ERROR_STORAGE_RESERVE_ID_INVALID: u32 = 416;
pub const ERROR_STORAGE_RESERVE_DOES_NOT_EXIST: u32 = 417;
pub const ERROR_STORAGE_RESERVE_ALREADY_EXISTS: u32 = 418;
pub const ERROR_STORAGE_RESERVE_NOT_EMPTY: u32 = 419;
pub const ERROR_NOT_A_DAX_VOLUME: u32 = 420;
pub const ERROR_NOT_DAX_MAPPABLE: u32 = 421;
pub const ERROR_TIME_SENSITIVE_THREAD: u32 = 422;
pub const ERROR_DPL_NOT_SUPPORTED_FOR_USER: u32 = 423;
pub const ERROR_CASE_DIFFERING_NAMES_IN_DIR: u32 = 424;
pub const ERROR_FILE_NOT_SUPPORTED: u32 = 425;
pub const ERROR_CLOUD_FILE_REQUEST_TIMEOUT: u32 = 426;
pub const ERROR_NO_TASK_QUEUE: u32 = 427;
pub const ERROR_SRC_SRV_DLL_LOAD_FAILED: u32 = 428;
pub const ERROR_NOT_SUPPORTED_WITH_BTT: u32 = 429;
pub const ERROR_ENCRYPTION_DISABLED: u32 = 430;
pub const ERROR_ENCRYPTING_METADATA_DISALLOWED: u32 = 431;
pub const ERROR_CANT_CLEAR_ENCRYPTION_FLAG: u32 = 432;
pub const ERROR_NO_SUCH_DEVICE: u32 = 433;
pub const ERROR_CAPAUTHZ_NOT_DEVUNLOCKED: u32 = 450;
pub const ERROR_CAPAUTHZ_CHANGE_TYPE: u32 = 451;
pub const ERROR_CAPAUTHZ_NOT_PROVISIONED: u32 = 452;
pub const ERROR_CAPAUTHZ_NOT_AUTHORIZED: u32 = 453;
pub const ERROR_CAPAUTHZ_NO_POLICY: u32 = 454;
pub const ERROR_CAPAUTHZ_DB_CORRUPTED: u32 = 455;
pub const ERROR_CAPAUTHZ_SCCD_INVALID_CATALOG: u32 = 456;
pub const ERROR_CAPAUTHZ_SCCD_NO_AUTH_ENTITY: u32 = 457;
pub const ERROR_CAPAUTHZ_SCCD_PARSE_ERROR: u32 = 458;
pub const ERROR_CAPAUTHZ_SCCD_DEV_MODE_REQUIRED: u32 = 459;
pub const ERROR_CAPAUTHZ_SCCD_NO_CAPABILITY_MATCH: u32 = 460;
pub const ERROR_PNP_QUERY_REMOVE_DEVICE_TIMEOUT: u32 = 480;
pub const ERROR_PNP_QUERY_REMOVE_RELATED_DEVICE_TIMEOUT: u32 = 481;
pub const ERROR_PNP_QUERY_REMOVE_UNRELATED_DEVICE_TIMEOUT: u32 = 482;
pub const ERROR_DEVICE_HARDWARE_ERROR: u32 = 483;
pub const ERROR_INVALID_ADDRESS: u32 = 487;
pub const ERROR_VRF_CFG_ENABLED: u32 = 1183;
pub const ERROR_PARTITION_TERMINATING: u32 = 1184;
pub const ERROR_USER_PROFILE_LOAD: u32 = 500;
pub const ERROR_ARITHMETIC_OVERFLOW: u32 = 534;
pub const ERROR_PIPE_CONNECTED: u32 = 535;
pub const ERROR_PIPE_LISTENING: u32 = 536;
pub const ERROR_VERIFIER_STOP: u32 = 537;
pub const ERROR_ABIOS_ERROR: u32 = 538;
pub const ERROR_WX86_WARNING: u32 = 539;
pub const ERROR_WX86_ERROR: u32 = 540;
pub const ERROR_TIMER_NOT_CANCELED: u32 = 541;
pub const ERROR_UNWIND: u32 = 542;
pub const ERROR_BAD_STACK: u32 = 543;
pub const ERROR_INVALID_UNWIND_TARGET: u32 = 544;
pub const ERROR_INVALID_PORT_ATTRIBUTES: u32 = 545;
pub const ERROR_PORT_MESSAGE_TOO_LONG: u32 = 546;
pub const ERROR_INVALID_QUOTA_LOWER: u32 = 547;
pub const ERROR_DEVICE_ALREADY_ATTACHED: u32 = 548;
pub const ERROR_INSTRUCTION_MISALIGNMENT: u32 = 549;
pub const ERROR_PROFILING_NOT_STARTED: u32 = 550;
pub const ERROR_PROFILING_NOT_STOPPED: u32 = 551;
pub const ERROR_COULD_NOT_INTERPRET: u32 = 552;
pub const ERROR_PROFILING_AT_LIMIT: u32 = 553;
pub const ERROR_CANT_WAIT: u32 = 554;
pub const ERROR_CANT_TERMINATE_SELF: u32 = 555;
pub const ERROR_UNEXPECTED_MM_CREATE_ERR: u32 = 556;
pub const ERROR_UNEXPECTED_MM_MAP_ERROR: u32 = 557;
pub const ERROR_UNEXPECTED_MM_EXTEND_ERR: u32 = 558;
pub const ERROR_BAD_FUNCTION_TABLE: u32 = 559;
pub const ERROR_NO_GUID_TRANSLATION: u32 = 560;
pub const ERROR_INVALID_LDT_SIZE: u32 = 561;
pub const ERROR_INVALID_LDT_OFFSET: u32 = 563;
pub const ERROR_INVALID_LDT_DESCRIPTOR: u32 = 564;
pub const ERROR_TOO_MANY_THREADS: u32 = 565;
pub const ERROR_THREAD_NOT_IN_PROCESS: u32 = 566;
pub const ERROR_PAGEFILE_QUOTA_EXCEEDED: u32 = 567;
pub const ERROR_LOGON_SERVER_CONFLICT: u32 = 568;
pub const ERROR_SYNCHRONIZATION_REQUIRED: u32 = 569;
pub const ERROR_NET_OPEN_FAILED: u32 = 570;
pub const ERROR_IO_PRIVILEGE_FAILED: u32 = 571;
pub const ERROR_CONTROL_C_EXIT: u32 = 572;
pub const ERROR_MISSING_SYSTEMFILE: u32 = 573;
pub const ERROR_UNHANDLED_EXCEPTION: u32 = 574;
pub const ERROR_APP_INIT_FAILURE: u32 = 575;
pub const ERROR_PAGEFILE_CREATE_FAILED: u32 = 576;
pub const ERROR_INVALID_IMAGE_HASH: u32 = 577;
pub const ERROR_NO_PAGEFILE: u32 = 578;
pub const ERROR_ILLEGAL_FLOAT_CONTEXT: u32 = 579;
pub const ERROR_NO_EVENT_PAIR: u32 = 580;
pub const ERROR_DOMAIN_CTRLR_CONFIG_ERROR: u32 = 581;
pub const ERROR_ILLEGAL_CHARACTER: u32 = 582;
pub const ERROR_UNDEFINED_CHARACTER: u32 = 583;
pub const ERROR_FLOPPY_VOLUME: u32 = 584;
pub const ERROR_BIOS_FAILED_TO_CONNECT_INTERRUPT: u32 = 585;
pub const ERROR_BACKUP_CONTROLLER: u32 = 586;
pub const ERROR_MUTANT_LIMIT_EXCEEDED: u32 = 587;
pub const ERROR_FS_DRIVER_REQUIRED: u32 = 588;
pub const ERROR_CANNOT_LOAD_REGISTRY_FILE: u32 = 589;
pub const ERROR_DEBUG_ATTACH_FAILED: u32 = 590;
pub const ERROR_SYSTEM_PROCESS_TERMINATED: u32 = 591;
pub const ERROR_DATA_NOT_ACCEPTED: u32 = 592;
pub const ERROR_VDM_HARD_ERROR: u32 = 593;
pub const ERROR_DRIVER_CANCEL_TIMEOUT: u32 = 594;
pub const ERROR_REPLY_MESSAGE_MISMATCH: u32 = 595;
pub const ERROR_LOST_WRITEBEHIND_DATA: u32 = 596;
pub const ERROR_CLIENT_SERVER_PARAMETERS_INVALID: u32 = 597;
pub const ERROR_NOT_TINY_STREAM: u32 = 598;
pub const ERROR_STACK_OVERFLOW_READ: u32 = 599;
pub const ERROR_CONVERT_TO_LARGE: u32 = 600;
pub const ERROR_FOUND_OUT_OF_SCOPE: u32 = 601;
pub const ERROR_ALLOCATE_BUCKET: u32 = 602;
pub const ERROR_MARSHALL_OVERFLOW: u32 = 603;
pub const ERROR_INVALID_VARIANT: u32 = 604;
pub const ERROR_BAD_COMPRESSION_BUFFER: u32 = 605;
pub const ERROR_AUDIT_FAILED: u32 = 606;
pub const ERROR_TIMER_RESOLUTION_NOT_SET: u32 = 607;
pub const ERROR_INSUFFICIENT_LOGON_INFO: u32 = 608;
pub const ERROR_BAD_DLL_ENTRYPOINT: u32 = 609;
pub const ERROR_BAD_SERVICE_ENTRYPOINT: u32 = 610;
pub const ERROR_IP_ADDRESS_CONFLICT1: u32 = 611;
pub const ERROR_IP_ADDRESS_CONFLICT2: u32 = 612;
pub const ERROR_REGISTRY_QUOTA_LIMIT: u32 = 613;
pub const ERROR_NO_CALLBACK_ACTIVE: u32 = 614;
pub const ERROR_PWD_TOO_SHORT: u32 = 615;
pub const ERROR_PWD_TOO_RECENT: u32 = 616;
pub const ERROR_PWD_HISTORY_CONFLICT: u32 = 617;
pub const ERROR_UNSUPPORTED_COMPRESSION: u32 = 618;
pub const ERROR_INVALID_HW_PROFILE: u32 = 619;
pub const ERROR_INVALID_PLUGPLAY_DEVICE_PATH: u32 = 620;
pub const ERROR_QUOTA_LIST_INCONSISTENT: u32 = 621;
pub const ERROR_EVALUATION_EXPIRATION: u32 = 622;
pub const ERROR_ILLEGAL_DLL_RELOCATION: u32 = 623;
pub const ERROR_DLL_INIT_FAILED_LOGOFF: u32 = 624;
pub const ERROR_VALIDATE_CONTINUE: u32 = 625;
pub const ERROR_NO_MORE_MATCHES: u32 = 626;
pub const ERROR_RANGE_LIST_CONFLICT: u32 = 627;
pub const ERROR_SERVER_SID_MISMATCH: u32 = 628;
pub const ERROR_CANT_ENABLE_DENY_ONLY: u32 = 629;
pub const ERROR_FLOAT_MULTIPLE_FAULTS: u32 = 630;
pub const ERROR_FLOAT_MULTIPLE_TRAPS: u32 = 631;
pub const ERROR_NOINTERFACE: u32 = 632;
pub const ERROR_DRIVER_FAILED_SLEEP: u32 = 633;
pub const ERROR_CORRUPT_SYSTEM_FILE: u32 = 634;
pub const ERROR_COMMITMENT_MINIMUM: u32 = 635;
pub const ERROR_PNP_RESTART_ENUMERATION: u32 = 636;
pub const ERROR_SYSTEM_IMAGE_BAD_SIGNATURE: u32 = 637;
pub const ERROR_PNP_REBOOT_REQUIRED: u32 = 638;
pub const ERROR_INSUFFICIENT_POWER: u32 = 639;
pub const ERROR_MULTIPLE_FAULT_VIOLATION: u32 = 640;
pub const ERROR_SYSTEM_SHUTDOWN: u32 = 641;
pub const ERROR_PORT_NOT_SET: u32 = 642;
pub const ERROR_DS_VERSION_CHECK_FAILURE: u32 = 643;
pub const ERROR_RANGE_NOT_FOUND: u32 = 644;
pub const ERROR_NOT_SAFE_MODE_DRIVER: u32 = 646;
pub const ERROR_FAILED_DRIVER_ENTRY: u32 = 647;
pub const ERROR_DEVICE_ENUMERATION_ERROR: u32 = 648;
pub const ERROR_MOUNT_POINT_NOT_RESOLVED: u32 = 649;
pub const ERROR_INVALID_DEVICE_OBJECT_PARAMETER: u32 = 650;
pub const ERROR_MCA_OCCURED: u32 = 651;
pub const ERROR_DRIVER_DATABASE_ERROR: u32 = 652;
pub const ERROR_SYSTEM_HIVE_TOO_LARGE: u32 = 653;
pub const ERROR_DRIVER_FAILED_PRIOR_UNLOAD: u32 = 654;
pub const ERROR_VOLSNAP_PREPARE_HIBERNATE: u32 = 655;
pub const ERROR_HIBERNATION_FAILURE: u32 = 656;
pub const ERROR_PWD_TOO_LONG: u32 = 657;
pub const ERROR_FILE_SYSTEM_LIMITATION: u32 = 665;
pub const ERROR_ASSERTION_FAILURE: u32 = 668;
pub const ERROR_ACPI_ERROR: u32 = 669;
pub const ERROR_WOW_ASSERTION: u32 = 670;
pub const ERROR_PNP_BAD_MPS_TABLE: u32 = 671;
pub const ERROR_PNP_TRANSLATION_FAILED: u32 = 672;
pub const ERROR_PNP_IRQ_TRANSLATION_FAILED: u32 = 673;
pub const ERROR_PNP_INVALID_ID: u32 = 674;
pub const ERROR_WAKE_SYSTEM_DEBUGGER: u32 = 675;
pub const ERROR_HANDLES_CLOSED: u32 = 676;
pub const ERROR_EXTRANEOUS_INFORMATION: u32 = 677;
pub const ERROR_RXACT_COMMIT_NECESSARY: u32 = 678;
pub const ERROR_MEDIA_CHECK: u32 = 679;
pub const ERROR_GUID_SUBSTITUTION_MADE: u32 = 680;
pub const ERROR_STOPPED_ON_SYMLINK: u32 = 681;
pub const ERROR_LONGJUMP: u32 = 682;
pub const ERROR_PLUGPLAY_QUERY_VETOED: u32 = 683;
pub const ERROR_UNWIND_CONSOLIDATE: u32 = 684;
pub const ERROR_REGISTRY_HIVE_RECOVERED: u32 = 685;
pub const ERROR_DLL_MIGHT_BE_INSECURE: u32 = 686;
pub const ERROR_DLL_MIGHT_BE_INCOMPATIBLE: u32 = 687;
pub const ERROR_DBG_EXCEPTION_NOT_HANDLED: u32 = 688;
pub const ERROR_DBG_REPLY_LATER: u32 = 689;
pub const ERROR_DBG_UNABLE_TO_PROVIDE_HANDLE: u32 = 690;
pub const ERROR_DBG_TERMINATE_THREAD: u32 = 691;
pub const ERROR_DBG_TERMINATE_PROCESS: u32 = 692;
pub const ERROR_DBG_CONTROL_C: u32 = 693;
pub const ERROR_DBG_PRINTEXCEPTION_C: u32 = 694;
pub const ERROR_DBG_RIPEXCEPTION: u32 = 695;
pub const ERROR_DBG_CONTROL_BREAK: u32 = 696;
pub const ERROR_DBG_COMMAND_EXCEPTION: u32 = 697;
pub const ERROR_OBJECT_NAME_EXISTS: u32 = 698;
pub const ERROR_THREAD_WAS_SUSPENDED: u32 = 699;
pub const ERROR_IMAGE_NOT_AT_BASE: u32 = 700;
pub const ERROR_RXACT_STATE_CREATED: u32 = 701;
pub const ERROR_SEGMENT_NOTIFICATION: u32 = 702;
pub const ERROR_BAD_CURRENT_DIRECTORY: u32 = 703;
pub const ERROR_FT_READ_RECOVERY_FROM_BACKUP: u32 = 704;
pub const ERROR_FT_WRITE_RECOVERY: u32 = 705;
pub const ERROR_IMAGE_MACHINE_TYPE_MISMATCH: u32 = 706;
pub const ERROR_RECEIVE_PARTIAL: u32 = 707;
pub const ERROR_RECEIVE_EXPEDITED: u32 = 708;
pub const ERROR_RECEIVE_PARTIAL_EXPEDITED: u32 = 709;
pub const ERROR_EVENT_DONE: u32 = 710;
pub const ERROR_EVENT_PENDING: u32 = 711;
pub const ERROR_CHECKING_FILE_SYSTEM: u32 = 712;
pub const ERROR_FATAL_APP_EXIT: u32 = 713;
pub const ERROR_PREDEFINED_HANDLE: u32 = 714;
pub const ERROR_WAS_UNLOCKED: u32 = 715;
pub const ERROR_SERVICE_NOTIFICATION: u32 = 716;
pub const ERROR_WAS_LOCKED: u32 = 717;
pub const ERROR_LOG_HARD_ERROR: u32 = 718;
pub const ERROR_ALREADY_WIN32: u32 = 719;
pub const ERROR_IMAGE_MACHINE_TYPE_MISMATCH_EXE: u32 = 720;
pub const ERROR_NO_YIELD_PERFORMED: u32 = 721;
pub const ERROR_TIMER_RESUME_IGNORED: u32 = 722;
pub const ERROR_ARBITRATION_UNHANDLED: u32 = 723;
pub const ERROR_CARDBUS_NOT_SUPPORTED: u32 = 724;
pub const ERROR_MP_PROCESSOR_MISMATCH: u32 = 725;
pub const ERROR_HIBERNATED: u32 = 726;
pub const ERROR_RESUME_HIBERNATION: u32 = 727;
pub const ERROR_FIRMWARE_UPDATED: u32 = 728;
pub const ERROR_DRIVERS_LEAKING_LOCKED_PAGES: u32 = 729;
pub const ERROR_WAKE_SYSTEM: u32 = 730;
pub const ERROR_WAIT_1: u32 = 731;
pub const ERROR_WAIT_2: u32 = 732;
pub const ERROR_WAIT_3: u32 = 733;
pub const ERROR_WAIT_63: u32 = 734;
pub const ERROR_ABANDONED_WAIT_0: u32 = 735;
pub const ERROR_ABANDONED_WAIT_63: u32 = 736;
pub const ERROR_USER_APC: u32 = 737;
pub const ERROR_KERNEL_APC: u32 = 738;
pub const ERROR_ALERTED: u32 = 739;
pub const ERROR_ELEVATION_REQUIRED: u32 = 740;
pub const ERROR_REPARSE: u32 = 741;
pub const ERROR_OPLOCK_BREAK_IN_PROGRESS: u32 = 742;
pub const ERROR_VOLUME_MOUNTED: u32 = 743;
pub const ERROR_RXACT_COMMITTED: u32 = 744;
pub const ERROR_NOTIFY_CLEANUP: u32 = 745;
pub const ERROR_PRIMARY_TRANSPORT_CONNECT_FAILED: u32 = 746;
pub const ERROR_PAGE_FAULT_TRANSITION: u32 = 747;
pub const ERROR_PAGE_FAULT_DEMAND_ZERO: u32 = 748;
pub const ERROR_PAGE_FAULT_COPY_ON_WRITE: u32 = 749;
pub const ERROR_PAGE_FAULT_GUARD_PAGE: u32 = 750;
pub const ERROR_PAGE_FAULT_PAGING_FILE: u32 = 751;
pub const ERROR_CACHE_PAGE_LOCKED: u32 = 752;
pub const ERROR_CRASH_DUMP: u32 = 753;
pub const ERROR_BUFFER_ALL_ZEROS: u32 = 754;
pub const ERROR_REPARSE_OBJECT: u32 = 755;
pub const ERROR_RESOURCE_REQUIREMENTS_CHANGED: u32 = 756;
pub const ERROR_TRANSLATION_COMPLETE: u32 = 757;
pub const ERROR_NOTHING_TO_TERMINATE: u32 = 758;
pub const ERROR_PROCESS_NOT_IN_JOB: u32 = 759;
pub const ERROR_PROCESS_IN_JOB: u32 = 760;
pub const ERROR_VOLSNAP_HIBERNATE_READY: u32 = 761;
pub const ERROR_FSFILTER_OP_COMPLETED_SUCCESSFULLY: u32 = 762;
pub const ERROR_INTERRUPT_VECTOR_ALREADY_CONNECTED: u32 = 763;
pub const ERROR_INTERRUPT_STILL_CONNECTED: u32 = 764;
pub const ERROR_WAIT_FOR_OPLOCK: u32 = 765;
pub const ERROR_DBG_EXCEPTION_HANDLED: u32 = 766;
pub const ERROR_DBG_CONTINUE: u32 = 767;
pub const ERROR_CALLBACK_POP_STACK: u32 = 768;
pub const ERROR_COMPRESSION_DISABLED: u32 = 769;
pub const ERROR_CANTFETCHBACKWARDS: u32 = 770;
pub const ERROR_CANTSCROLLBACKWARDS: u32 = 771;
pub const ERROR_ROWSNOTRELEASED: u32 = 772;
pub const ERROR_BAD_ACCESSOR_FLAGS: u32 = 773;
pub const ERROR_ERRORS_ENCOUNTERED: u32 = 774;
pub const ERROR_NOT_CAPABLE: u32 = 775;
pub const ERROR_REQUEST_OUT_OF_SEQUENCE: u32 = 776;
pub const ERROR_VERSION_PARSE_ERROR: u32 = 777;
pub const ERROR_BADSTARTPOSITION: u32 = 778;
pub const ERROR_MEMORY_HARDWARE: u32 = 779;
pub const ERROR_DISK_REPAIR_DISABLED: u32 = 780;
pub const ERROR_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE: u32 = 781;
pub const ERROR_SYSTEM_POWERSTATE_TRANSITION: u32 = 782;
pub const ERROR_SYSTEM_POWERSTATE_COMPLEX_TRANSITION: u32 = 783;
pub const ERROR_MCA_EXCEPTION: u32 = 784;
pub const ERROR_ACCESS_AUDIT_BY_POLICY: u32 = 785;
pub const ERROR_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY: u32 = 786;
pub const ERROR_ABANDON_HIBERFILE: u32 = 787;
pub const ERROR_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED: u32 = 788;
pub const ERROR_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR: u32 = 789;
pub const ERROR_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR: u32 = 790;
pub const ERROR_BAD_MCFG_TABLE: u32 = 791;
pub const ERROR_DISK_REPAIR_REDIRECTED: u32 = 792;
pub const ERROR_DISK_REPAIR_UNSUCCESSFUL: u32 = 793;
pub const ERROR_CORRUPT_LOG_OVERFULL: u32 = 794;
pub const ERROR_CORRUPT_LOG_CORRUPTED: u32 = 795;
pub const ERROR_CORRUPT_LOG_UNAVAILABLE: u32 = 796;
pub const ERROR_CORRUPT_LOG_DELETED_FULL: u32 = 797;
pub const ERROR_CORRUPT_LOG_CLEARED: u32 = 798;
pub const ERROR_ORPHAN_NAME_EXHAUSTED: u32 = 799;
pub const ERROR_OPLOCK_SWITCHED_TO_NEW_HANDLE: u32 = 800;
pub const ERROR_CANNOT_GRANT_REQUESTED_OPLOCK: u32 = 801;
pub const ERROR_CANNOT_BREAK_OPLOCK: u32 = 802;
pub const ERROR_OPLOCK_HANDLE_CLOSED: u32 = 803;
pub const ERROR_NO_ACE_CONDITION: u32 = 804;
pub const ERROR_INVALID_ACE_CONDITION: u32 = 805;
pub const ERROR_FILE_HANDLE_REVOKED: u32 = 806;
pub const ERROR_IMAGE_AT_DIFFERENT_BASE: u32 = 807;
pub const ERROR_ENCRYPTED_IO_NOT_POSSIBLE: u32 = 808;
pub const ERROR_FILE_METADATA_OPTIMIZATION_IN_PROGRESS: u32 = 809;
pub const ERROR_QUOTA_ACTIVITY: u32 = 810;
pub const ERROR_HANDLE_REVOKED: u32 = 811;
pub const ERROR_CALLBACK_INVOKE_INLINE: u32 = 812;
pub const ERROR_CPU_SET_INVALID: u32 = 813;
pub const ERROR_ENCLAVE_NOT_TERMINATED: u32 = 814;
pub const ERROR_ENCLAVE_VIOLATION: u32 = 815;
pub const ERROR_EA_ACCESS_DENIED: u32 = 994;
pub const ERROR_OPERATION_ABORTED: u32 = 995;
pub const ERROR_IO_INCOMPLETE: u32 = 996;
pub const ERROR_IO_PENDING: u32 = 997;
pub const ERROR_NOACCESS: u32 = 998;
pub const ERROR_SWAPERROR: u32 = 999;
pub const ERROR_STACK_OVERFLOW: u32 = 1001;
pub const ERROR_INVALID_MESSAGE: u32 = 1002;
pub const ERROR_CAN_NOT_COMPLETE: u32 = 1003;
pub const ERROR_INVALID_FLAGS: u32 = 1004;
pub const ERROR_UNRECOGNIZED_VOLUME: u32 = 1005;
pub const ERROR_FILE_INVALID: u32 = 1006;
pub const ERROR_FULLSCREEN_MODE: u32 = 1007;
pub const ERROR_NO_TOKEN: u32 = 1008;
pub const ERROR_BADDB: u32 = 1009;
pub const ERROR_BADKEY: u32 = 1010;
pub const ERROR_CANTOPEN: u32 = 1011;
pub const ERROR_CANTREAD: u32 = 1012;
pub const ERROR_CANTWRITE: u32 = 1013;
pub const ERROR_REGISTRY_RECOVERED: u32 = 1014;
pub const ERROR_REGISTRY_CORRUPT: u32 = 1015;
pub const ERROR_REGISTRY_IO_FAILED: u32 = 1016;
pub const ERROR_NOT_REGISTRY_FILE: u32 = 1017;
pub const ERROR_KEY_DELETED: u32 = 1018;
pub const ERROR_NO_LOG_SPACE: u32 = 1019;
pub const ERROR_KEY_HAS_CHILDREN: u32 = 1020;
pub const ERROR_CHILD_MUST_BE_VOLATILE: u32 = 1021;
pub const ERROR_NOTIFY_ENUM_DIR: u32 = 1022;
pub const ERROR_DEPENDENT_SERVICES_RUNNING: u32 = 1051;
pub const ERROR_INVALID_SERVICE_CONTROL: u32 = 1052;
pub const ERROR_SERVICE_REQUEST_TIMEOUT: u32 = 1053;
pub const ERROR_SERVICE_NO_THREAD: u32 = 1054;
pub const ERROR_SERVICE_DATABASE_LOCKED: u32 = 1055;
pub const ERROR_SERVICE_ALREADY_RUNNING: u32 = 1056;
pub const ERROR_INVALID_SERVICE_ACCOUNT: u32 = 1057;
pub const ERROR_SERVICE_DISABLED: u32 = 1058;
pub const ERROR_CIRCULAR_DEPENDENCY: u32 = 1059;
pub const ERROR_SERVICE_DOES_NOT_EXIST: u32 = 1060;
pub const ERROR_SERVICE_CANNOT_ACCEPT_CTRL: u32 = 1061;
pub const ERROR_SERVICE_NOT_ACTIVE: u32 = 1062;
pub const ERROR_FAILED_SERVICE_CONTROLLER_CONNECT: u32 = 1063;
pub const ERROR_EXCEPTION_IN_SERVICE: u32 = 1064;
pub const ERROR_DATABASE_DOES_NOT_EXIST: u32 = 1065;
pub const ERROR_SERVICE_SPECIFIC_ERROR: u32 = 1066;
pub const ERROR_PROCESS_ABORTED: u32 = 1067;
pub const ERROR_SERVICE_DEPENDENCY_FAIL: u32 = 1068;
pub const ERROR_SERVICE_LOGON_FAILED: u32 = 1069;
pub const ERROR_SERVICE_START_HANG: u32 = 1070;
pub const ERROR_INVALID_SERVICE_LOCK: u32 = 1071;
pub const ERROR_SERVICE_MARKED_FOR_DELETE: u32 = 1072;
pub const ERROR_SERVICE_EXISTS: u32 = 1073;
pub const ERROR_ALREADY_RUNNING_LKG: u32 = 1074;
pub const ERROR_SERVICE_DEPENDENCY_DELETED: u32 = 1075;
pub const ERROR_BOOT_ALREADY_ACCEPTED: u32 = 1076;
pub const ERROR_SERVICE_NEVER_STARTED: u32 = 1077;
pub const ERROR_DUPLICATE_SERVICE_NAME: u32 = 1078;
pub const ERROR_DIFFERENT_SERVICE_ACCOUNT: u32 = 1079;
pub const ERROR_CANNOT_DETECT_DRIVER_FAILURE: u32 = 1080;
pub const ERROR_CANNOT_DETECT_PROCESS_ABORT: u32 = 1081;
pub const ERROR_NO_RECOVERY_PROGRAM: u32 = 1082;
pub const ERROR_SERVICE_NOT_IN_EXE: u32 = 1083;
pub const ERROR_NOT_SAFEBOOT_SERVICE: u32 = 1084;
pub const ERROR_END_OF_MEDIA: u32 = 1100;
pub const ERROR_FILEMARK_DETECTED: u32 = 1101;
pub const ERROR_BEGINNING_OF_MEDIA: u32 = 1102;
pub const ERROR_SETMARK_DETECTED: u32 = 1103;
pub const ERROR_NO_DATA_DETECTED: u32 = 1104;
pub const ERROR_PARTITION_FAILURE: u32 = 1105;
pub const ERROR_INVALID_BLOCK_LENGTH: u32 = 1106;
pub const ERROR_DEVICE_NOT_PARTITIONED: u32 = 1107;
pub const ERROR_UNABLE_TO_LOCK_MEDIA: u32 = 1108;
pub const ERROR_UNABLE_TO_UNLOAD_MEDIA: u32 = 1109;
pub const ERROR_MEDIA_CHANGED: u32 = 1110;
pub const ERROR_BUS_RESET: u32 = 1111;
pub const ERROR_NO_MEDIA_IN_DRIVE: u32 = 1112;
pub const ERROR_NO_UNICODE_TRANSLATION: u32 = 1113;
pub const ERROR_DLL_INIT_FAILED: u32 = 1114;
pub const ERROR_SHUTDOWN_IN_PROGRESS: u32 = 1115;
pub const ERROR_NO_SHUTDOWN_IN_PROGRESS: u32 = 1116;
pub const ERROR_IO_DEVICE: u32 = 1117;
pub const ERROR_SERIAL_NO_DEVICE: u32 = 1118;
pub const ERROR_IRQ_BUSY: u32 = 1119;
pub const ERROR_MORE_WRITES: u32 = 1120;
pub const ERROR_COUNTER_TIMEOUT: u32 = 1121;
pub const ERROR_FLOPPY_ID_MARK_NOT_FOUND: u32 = 1122;
pub const ERROR_FLOPPY_WRONG_CYLINDER: u32 = 1123;
pub const ERROR_FLOPPY_UNKNOWN_ERROR: u32 = 1124;
pub const ERROR_FLOPPY_BAD_REGISTERS: u32 = 1125;
pub const ERROR_DISK_RECALIBRATE_FAILED: u32 = 1126;
pub const ERROR_DISK_OPERATION_FAILED: u32 = 1127;
pub const ERROR_DISK_RESET_FAILED: u32 = 1128;
pub const ERROR_EOM_OVERFLOW: u32 = 1129;
pub const ERROR_NOT_ENOUGH_SERVER_MEMORY: u32 = 1130;
pub const ERROR_POSSIBLE_DEADLOCK: u32 = 1131;
pub const ERROR_MAPPED_ALIGNMENT: u32 = 1132;
pub const ERROR_SET_POWER_STATE_VETOED: u32 = 1140;
pub const ERROR_SET_POWER_STATE_FAILED: u32 = 1141;
pub const ERROR_TOO_MANY_LINKS: u32 = 1142;
pub const ERROR_OLD_WIN_VERSION: u32 = 1150;
pub const ERROR_APP_WRONG_OS: u32 = 1151;
pub const ERROR_SINGLE_INSTANCE_APP: u32 = 1152;
pub const ERROR_RMODE_APP: u32 = 1153;
pub const ERROR_INVALID_DLL: u32 = 1154;
pub const ERROR_NO_ASSOCIATION: u32 = 1155;
pub const ERROR_DDE_FAIL: u32 = 1156;
pub const ERROR_DLL_NOT_FOUND: u32 = 1157;
pub const ERROR_NO_MORE_USER_HANDLES: u32 = 1158;
pub const ERROR_MESSAGE_SYNC_ONLY: u32 = 1159;
pub const ERROR_SOURCE_ELEMENT_EMPTY: u32 = 1160;
pub const ERROR_DESTINATION_ELEMENT_FULL: u32 = 1161;
pub const ERROR_ILLEGAL_ELEMENT_ADDRESS: u32 = 1162;
pub const ERROR_MAGAZINE_NOT_PRESENT: u32 = 1163;
pub const ERROR_DEVICE_REINITIALIZATION_NEEDED: u32 = 1164;
pub const ERROR_DEVICE_REQUIRES_CLEANING: u32 = 1165;
pub const ERROR_DEVICE_DOOR_OPEN: u32 = 1166;
pub const ERROR_DEVICE_NOT_CONNECTED: u32 = 1167;
pub const ERROR_NOT_FOUND: u32 = 1168;
pub const ERROR_NO_MATCH: u32 = 1169;
pub const ERROR_SET_NOT_FOUND: u32 = 1170;
pub const ERROR_POINT_NOT_FOUND: u32 = 1171;
pub const ERROR_NO_TRACKING_SERVICE: u32 = 1172;
pub const ERROR_NO_VOLUME_ID: u32 = 1173;
pub const ERROR_UNABLE_TO_REMOVE_REPLACED: u32 = 1175;
pub const ERROR_UNABLE_TO_MOVE_REPLACEMENT: u32 = 1176;
pub const ERROR_UNABLE_TO_MOVE_REPLACEMENT_2: u32 = 1177;
pub const ERROR_JOURNAL_DELETE_IN_PROGRESS: u32 = 1178;
pub const ERROR_JOURNAL_NOT_ACTIVE: u32 = 1179;
pub const ERROR_POTENTIAL_FILE_FOUND: u32 = 1180;
pub const ERROR_JOURNAL_ENTRY_DELETED: u32 = 1181;
pub const ERROR_SHUTDOWN_IS_SCHEDULED: u32 = 1190;
pub const ERROR_SHUTDOWN_USERS_LOGGED_ON: u32 = 1191;
pub const ERROR_BAD_DEVICE: u32 = 1200;
pub const ERROR_CONNECTION_UNAVAIL: u32 = 1201;
pub const ERROR_DEVICE_ALREADY_REMEMBERED: u32 = 1202;
pub const ERROR_NO_NET_OR_BAD_PATH: u32 = 1203;
pub const ERROR_BAD_PROVIDER: u32 = 1204;
pub const ERROR_CANNOT_OPEN_PROFILE: u32 = 1205;
pub const ERROR_BAD_PROFILE: u32 = 1206;
pub const ERROR_NOT_CONTAINER: u32 = 1207;
pub const ERROR_EXTENDED_ERROR: u32 = 1208;
pub const ERROR_INVALID_GROUPNAME: u32 = 1209;
pub const ERROR_INVALID_COMPUTERNAME: u32 = 1210;
pub const ERROR_INVALID_EVENTNAME: u32 = 1211;
pub const ERROR_INVALID_DOMAINNAME: u32 = 1212;
pub const ERROR_INVALID_SERVICENAME: u32 = 1213;
pub const ERROR_INVALID_NETNAME: u32 = 1214;
pub const ERROR_INVALID_SHARENAME: u32 = 1215;
pub const ERROR_INVALID_PASSWORDNAME: u32 = 1216;
pub const ERROR_INVALID_MESSAGENAME: u32 = 1217;
pub const ERROR_INVALID_MESSAGEDEST: u32 = 1218;
pub const ERROR_SESSION_CREDENTIAL_CONFLICT: u32 = 1219;
pub const ERROR_REMOTE_SESSION_LIMIT_EXCEEDED: u32 = 1220;
pub const ERROR_DUP_DOMAINNAME: u32 = 1221;
pub const ERROR_NO_NETWORK: u32 = 1222;
pub const ERROR_CANCELLED: u32 = 1223;
pub const ERROR_USER_MAPPED_FILE: u32 = 1224;
pub const ERROR_CONNECTION_REFUSED: u32 = 1225;
pub const ERROR_GRACEFUL_DISCONNECT: u32 = 1226;
pub const ERROR_ADDRESS_ALREADY_ASSOCIATED: u32 = 1227;
pub const ERROR_ADDRESS_NOT_ASSOCIATED: u32 = 1228;
pub const ERROR_CONNECTION_INVALID: u32 = 1229;
pub const ERROR_CONNECTION_ACTIVE: u32 = 1230;
pub const ERROR_NETWORK_UNREACHABLE: u32 = 1231;
pub const ERROR_HOST_UNREACHABLE: u32 = 1232;
pub const ERROR_PROTOCOL_UNREACHABLE: u32 = 1233;
pub const ERROR_PORT_UNREACHABLE: u32 = 1234;
pub const ERROR_REQUEST_ABORTED: u32 = 1235;
pub const ERROR_CONNECTION_ABORTED: u32 = 1236;
pub const ERROR_RETRY: u32 = 1237;
pub const ERROR_CONNECTION_COUNT_LIMIT: u32 = 1238;
pub const ERROR_LOGIN_TIME_RESTRICTION: u32 = 1239;
pub const ERROR_LOGIN_WKSTA_RESTRICTION: u32 = 1240;
pub const ERROR_INCORRECT_ADDRESS: u32 = 1241;
pub const ERROR_ALREADY_REGISTERED: u32 = 1242;
pub const ERROR_SERVICE_NOT_FOUND: u32 = 1243;
pub const ERROR_NOT_AUTHENTICATED: u32 = 1244;
pub const ERROR_NOT_LOGGED_ON: u32 = 1245;
pub const ERROR_CONTINUE: u32 = 1246;
pub const ERROR_ALREADY_INITIALIZED: u32 = 1247;
pub const ERROR_NO_MORE_DEVICES: u32 = 1248;
pub const ERROR_NO_SUCH_SITE: u32 = 1249;
pub const ERROR_DOMAIN_CONTROLLER_EXISTS: u32 = 1250;
pub const ERROR_ONLY_IF_CONNECTED: u32 = 1251;
pub const ERROR_OVERRIDE_NOCHANGES: u32 = 1252;
pub const ERROR_BAD_USER_PROFILE: u32 = 1253;
pub const ERROR_NOT_SUPPORTED_ON_SBS: u32 = 1254;
pub const ERROR_SERVER_SHUTDOWN_IN_PROGRESS: u32 = 1255;
pub const ERROR_HOST_DOWN: u32 = 1256;
pub const ERROR_NON_ACCOUNT_SID: u32 = 1257;
pub const ERROR_NON_DOMAIN_SID: u32 = 1258;
pub const ERROR_APPHELP_BLOCK: u32 = 1259;
pub const ERROR_ACCESS_DISABLED_BY_POLICY: u32 = 1260;
pub const ERROR_REG_NAT_CONSUMPTION: u32 = 1261;
pub const ERROR_CSCSHARE_OFFLINE: u32 = 1262;
pub const ERROR_PKINIT_FAILURE: u32 = 1263;
pub const ERROR_SMARTCARD_SUBSYSTEM_FAILURE: u32 = 1264;
pub const ERROR_DOWNGRADE_DETECTED: u32 = 1265;
pub const ERROR_MACHINE_LOCKED: u32 = 1271;
pub const ERROR_SMB_GUEST_LOGON_BLOCKED: u32 = 1272;
pub const ERROR_CALLBACK_SUPPLIED_INVALID_DATA: u32 = 1273;
pub const ERROR_SYNC_FOREGROUND_REFRESH_REQUIRED: u32 = 1274;
pub const ERROR_DRIVER_BLOCKED: u32 = 1275;
pub const ERROR_INVALID_IMPORT_OF_NON_DLL: u32 = 1276;
pub const ERROR_ACCESS_DISABLED_WEBBLADE: u32 = 1277;
pub const ERROR_ACCESS_DISABLED_WEBBLADE_TAMPER: u32 = 1278;
pub const ERROR_RECOVERY_FAILURE: u32 = 1279;
pub const ERROR_ALREADY_FIBER: u32 = 1280;
pub const ERROR_ALREADY_THREAD: u32 = 1281;
pub const ERROR_STACK_BUFFER_OVERRUN: u32 = 1282;
pub const ERROR_PARAMETER_QUOTA_EXCEEDED: u32 = 1283;
pub const ERROR_DEBUGGER_INACTIVE: u32 = 1284;
pub const ERROR_DELAY_LOAD_FAILED: u32 = 1285;
pub const ERROR_VDM_DISALLOWED: u32 = 1286;
pub const ERROR_UNIDENTIFIED_ERROR: u32 = 1287;
pub const ERROR_INVALID_CRUNTIME_PARAMETER: u32 = 1288;
pub const ERROR_BEYOND_VDL: u32 = 1289;
pub const ERROR_INCOMPATIBLE_SERVICE_SID_TYPE: u32 = 1290;
pub const ERROR_DRIVER_PROCESS_TERMINATED: u32 = 1291;
pub const ERROR_IMPLEMENTATION_LIMIT: u32 = 1292;
pub const ERROR_PROCESS_IS_PROTECTED: u32 = 1293;
pub const ERROR_SERVICE_NOTIFY_CLIENT_LAGGING: u32 = 1294;
pub const ERROR_DISK_QUOTA_EXCEEDED: u32 = 1295;
pub const ERROR_CONTENT_BLOCKED: u32 = 1296;
pub const ERROR_INCOMPATIBLE_SERVICE_PRIVILEGE: u32 = 1297;
pub const ERROR_APP_HANG: u32 = 1298;
pub const ERROR_INVALID_LABEL: u32 = 1299;
pub const ERROR_NOT_ALL_ASSIGNED: u32 = 1300;
pub const ERROR_SOME_NOT_MAPPED: u32 = 1301;
pub const ERROR_NO_QUOTAS_FOR_ACCOUNT: u32 = 1302;
pub const ERROR_LOCAL_USER_SESSION_KEY: u32 = 1303;
pub const ERROR_NULL_LM_PASSWORD: u32 = 1304;
pub const ERROR_UNKNOWN_REVISION: u32 = 1305;
pub const ERROR_REVISION_MISMATCH: u32 = 1306;
pub const ERROR_INVALID_OWNER: u32 = 1307;
pub const ERROR_INVALID_PRIMARY_GROUP: u32 = 1308;
pub const ERROR_NO_IMPERSONATION_TOKEN: u32 = 1309;
pub const ERROR_CANT_DISABLE_MANDATORY: u32 = 1310;
pub const ERROR_NO_LOGON_SERVERS: u32 = 1311;
pub const ERROR_NO_SUCH_LOGON_SESSION: u32 = 1312;
pub const ERROR_NO_SUCH_PRIVILEGE: u32 = 1313;
pub const ERROR_PRIVILEGE_NOT_HELD: u32 = 1314;
pub const ERROR_INVALID_ACCOUNT_NAME: u32 = 1315;
pub const ERROR_USER_EXISTS: u32 = 1316;
pub const ERROR_NO_SUCH_USER: u32 = 1317;
pub const ERROR_GROUP_EXISTS: u32 = 1318;
pub const ERROR_NO_SUCH_GROUP: u32 = 1319;
pub const ERROR_MEMBER_IN_GROUP: u32 = 1320;
pub const ERROR_MEMBER_NOT_IN_GROUP: u32 = 1321;
pub const ERROR_LAST_ADMIN: u32 = 1322;
pub const ERROR_WRONG_PASSWORD: u32 = 1323;
pub const ERROR_ILL_FORMED_PASSWORD: u32 = 1324;
pub const ERROR_PASSWORD_RESTRICTION: u32 = 1325;
pub const ERROR_LOGON_FAILURE: u32 = 1326;
pub const ERROR_ACCOUNT_RESTRICTION: u32 = 1327;
pub const ERROR_INVALID_LOGON_HOURS: u32 = 1328;
pub const ERROR_INVALID_WORKSTATION: u32 = 1329;
pub const ERROR_PASSWORD_EXPIRED: u32 = 1330;
pub const ERROR_ACCOUNT_DISABLED: u32 = 1331;
pub const ERROR_NONE_MAPPED: u32 = 1332;
pub const ERROR_TOO_MANY_LUIDS_REQUESTED: u32 = 1333;
pub const ERROR_LUIDS_EXHAUSTED: u32 = 1334;
pub const ERROR_INVALID_SUB_AUTHORITY: u32 = 1335;
pub const ERROR_INVALID_ACL: u32 = 1336;
pub const ERROR_INVALID_SID: u32 = 1337;
pub const ERROR_INVALID_SECURITY_DESCR: u32 = 1338;
pub const ERROR_BAD_INHERITANCE_ACL: u32 = 1340;
pub const ERROR_SERVER_DISABLED: u32 = 1341;
pub const ERROR_SERVER_NOT_DISABLED: u32 = 1342;
pub const ERROR_INVALID_ID_AUTHORITY: u32 = 1343;
pub const ERROR_ALLOTTED_SPACE_EXCEEDED: u32 = 1344;
pub const ERROR_INVALID_GROUP_ATTRIBUTES: u32 = 1345;
pub const ERROR_BAD_IMPERSONATION_LEVEL: u32 = 1346;
pub const ERROR_CANT_OPEN_ANONYMOUS: u32 = 1347;
pub const ERROR_BAD_VALIDATION_CLASS: u32 = 1348;
pub const ERROR_BAD_TOKEN_TYPE: u32 = 1349;
pub const ERROR_NO_SECURITY_ON_OBJECT: u32 = 1350;
pub const ERROR_CANT_ACCESS_DOMAIN_INFO: u32 = 1351;
pub const ERROR_INVALID_SERVER_STATE: u32 = 1352;
pub const ERROR_INVALID_DOMAIN_STATE: u32 = 1353;
pub const ERROR_INVALID_DOMAIN_ROLE: u32 = 1354;
pub const ERROR_NO_SUCH_DOMAIN: u32 = 1355;
pub const ERROR_DOMAIN_EXISTS: u32 = 1356;
pub const ERROR_DOMAIN_LIMIT_EXCEEDED: u32 = 1357;
pub const ERROR_INTERNAL_DB_CORRUPTION: u32 = 1358;
pub const ERROR_INTERNAL_ERROR: u32 = 1359;
pub const ERROR_GENERIC_NOT_MAPPED: u32 = 1360;
pub const ERROR_BAD_DESCRIPTOR_FORMAT: u32 = 1361;
pub const ERROR_NOT_LOGON_PROCESS: u32 = 1362;
pub const ERROR_LOGON_SESSION_EXISTS: u32 = 1363;
pub const ERROR_NO_SUCH_PACKAGE: u32 = 1364;
pub const ERROR_BAD_LOGON_SESSION_STATE: u32 = 1365;
pub const ERROR_LOGON_SESSION_COLLISION: u32 = 1366;
pub const ERROR_INVALID_LOGON_TYPE: u32 = 1367;
pub const ERROR_CANNOT_IMPERSONATE: u32 = 1368;
pub const ERROR_RXACT_INVALID_STATE: u32 = 1369;
pub const ERROR_RXACT_COMMIT_FAILURE: u32 = 1370;
pub const ERROR_SPECIAL_ACCOUNT: u32 = 1371;
pub const ERROR_SPECIAL_GROUP: u32 = 1372;
pub const ERROR_SPECIAL_USER: u32 = 1373;
pub const ERROR_MEMBERS_PRIMARY_GROUP: u32 = 1374;
pub const ERROR_TOKEN_ALREADY_IN_USE: u32 = 1375;
pub const ERROR_NO_SUCH_ALIAS: u32 = 1376;
pub const ERROR_MEMBER_NOT_IN_ALIAS: u32 = 1377;
pub const ERROR_MEMBER_IN_ALIAS: u32 = 1378;
pub const ERROR_ALIAS_EXISTS: u32 = 1379;
pub const ERROR_LOGON_NOT_GRANTED: u32 = 1380;
pub const ERROR_TOO_MANY_SECRETS: u32 = 1381;
pub const ERROR_SECRET_TOO_LONG: u32 = 1382;
pub const ERROR_INTERNAL_DB_ERROR: u32 = 1383;
pub const ERROR_TOO_MANY_CONTEXT_IDS: u32 = 1384;
pub const ERROR_LOGON_TYPE_NOT_GRANTED: u32 = 1385;
pub const ERROR_NT_CROSS_ENCRYPTION_REQUIRED: u32 = 1386;
pub const ERROR_NO_SUCH_MEMBER: u32 = 1387;
pub const ERROR_INVALID_MEMBER: u32 = 1388;
pub const ERROR_TOO_MANY_SIDS: u32 = 1389;
pub const ERROR_LM_CROSS_ENCRYPTION_REQUIRED: u32 = 1390;
pub const ERROR_NO_INHERITANCE: u32 = 1391;
pub const ERROR_FILE_CORRUPT: u32 = 1392;
pub const ERROR_DISK_CORRUPT: u32 = 1393;
pub const ERROR_NO_USER_SESSION_KEY: u32 = 1394;
pub const ERROR_LICENSE_QUOTA_EXCEEDED: u32 = 1395;
pub const ERROR_WRONG_TARGET_NAME: u32 = 1396;
pub const ERROR_MUTUAL_AUTH_FAILED: u32 = 1397;
pub const ERROR_TIME_SKEW: u32 = 1398;
pub const ERROR_CURRENT_DOMAIN_NOT_ALLOWED: u32 = 1399;
pub const ERROR_INVALID_WINDOW_HANDLE: u32 = 1400;
pub const ERROR_INVALID_MENU_HANDLE: u32 = 1401;
pub const ERROR_INVALID_CURSOR_HANDLE: u32 = 1402;
pub const ERROR_INVALID_ACCEL_HANDLE: u32 = 1403;
pub const ERROR_INVALID_HOOK_HANDLE: u32 = 1404;
pub const ERROR_INVALID_DWP_HANDLE: u32 = 1405;
pub const ERROR_TLW_WITH_WSCHILD: u32 = 1406;
pub const ERROR_CANNOT_FIND_WND_CLASS: u32 = 1407;
pub const ERROR_WINDOW_OF_OTHER_THREAD: u32 = 1408;
pub const ERROR_HOTKEY_ALREADY_REGISTERED: u32 = 1409;
pub const ERROR_CLASS_ALREADY_EXISTS: u32 = 1410;
pub const ERROR_CLASS_DOES_NOT_EXIST: u32 = 1411;
pub const ERROR_CLASS_HAS_WINDOWS: u32 = 1412;
pub const ERROR_INVALID_INDEX: u32 = 1413;
pub const ERROR_INVALID_ICON_HANDLE: u32 = 1414;
pub const ERROR_PRIVATE_DIALOG_INDEX: u32 = 1415;
pub const ERROR_LISTBOX_ID_NOT_FOUND: u32 = 1416;
pub const ERROR_NO_WILDCARD_CHARACTERS: u32 = 1417;
pub const ERROR_CLIPBOARD_NOT_OPEN: u32 = 1418;
pub const ERROR_HOTKEY_NOT_REGISTERED: u32 = 1419;
pub const ERROR_WINDOW_NOT_DIALOG: u32 = 1420;
pub const ERROR_CONTROL_ID_NOT_FOUND: u32 = 1421;
pub const ERROR_INVALID_COMBOBOX_MESSAGE: u32 = 1422;
pub const ERROR_WINDOW_NOT_COMBOBOX: u32 = 1423;
pub const ERROR_INVALID_EDIT_HEIGHT: u32 = 1424;
pub const ERROR_DC_NOT_FOUND: u32 = 1425;
pub const ERROR_INVALID_HOOK_FILTER: u32 = 1426;
pub const ERROR_INVALID_FILTER_PROC: u32 = 1427;
pub const ERROR_HOOK_NEEDS_HMOD: u32 = 1428;
pub const ERROR_GLOBAL_ONLY_HOOK: u32 = 1429;
pub const ERROR_JOURNAL_HOOK_SET: u32 = 1430;
pub const ERROR_HOOK_NOT_INSTALLED: u32 = 1431;
pub const ERROR_INVALID_LB_MESSAGE: u32 = 1432;
pub const ERROR_SETCOUNT_ON_BAD_LB: u32 = 1433;
pub const ERROR_LB_WITHOUT_TABSTOPS: u32 = 1434;
pub const ERROR_DESTROY_OBJECT_OF_OTHER_THREAD: u32 = 1435;
pub const ERROR_CHILD_WINDOW_MENU: u32 = 1436;
pub const ERROR_NO_SYSTEM_MENU: u32 = 1437;
pub const ERROR_INVALID_MSGBOX_STYLE: u32 = 1438;
pub const ERROR_INVALID_SPI_VALUE: u32 = 1439;
pub const ERROR_SCREEN_ALREADY_LOCKED: u32 = 1440;
pub const ERROR_HWNDS_HAVE_DIFF_PARENT: u32 = 1441;
pub const ERROR_NOT_CHILD_WINDOW: u32 = 1442;
pub const ERROR_INVALID_GW_COMMAND: u32 = 1443;
pub const ERROR_INVALID_THREAD_ID: u32 = 1444;
pub const ERROR_NON_MDICHILD_WINDOW: u32 = 1445;
pub const ERROR_POPUP_ALREADY_ACTIVE: u32 = 1446;
pub const ERROR_NO_SCROLLBARS: u32 = 1447;
pub const ERROR_INVALID_SCROLLBAR_RANGE: u32 = 1448;
pub const ERROR_INVALID_SHOWWIN_COMMAND: u32 = 1449;
pub const ERROR_NO_SYSTEM_RESOURCES: u32 = 1450;
pub const ERROR_NONPAGED_SYSTEM_RESOURCES: u32 = 1451;
pub const ERROR_PAGED_SYSTEM_RESOURCES: u32 = 1452;
pub const ERROR_WORKING_SET_QUOTA: u32 = 1453;
pub const ERROR_PAGEFILE_QUOTA: u32 = 1454;
pub const ERROR_COMMITMENT_LIMIT: u32 = 1455;
pub const ERROR_MENU_ITEM_NOT_FOUND: u32 = 1456;
pub const ERROR_INVALID_KEYBOARD_HANDLE: u32 = 1457;
pub const ERROR_HOOK_TYPE_NOT_ALLOWED: u32 = 1458;
pub const ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION: u32 = 1459;
pub const ERROR_TIMEOUT: u32 = 1460;
pub const ERROR_INVALID_MONITOR_HANDLE: u32 = 1461;
pub const ERROR_INCORRECT_SIZE: u32 = 1462;
pub const ERROR_SYMLINK_CLASS_DISABLED: u32 = 1463;
pub const ERROR_SYMLINK_NOT_SUPPORTED: u32 = 1464;
pub const ERROR_XML_PARSE_ERROR: u32 = 1465;
pub const ERROR_XMLDSIG_ERROR: u32 = 1466;
pub const ERROR_RESTART_APPLICATION: u32 = 1467;
pub const ERROR_WRONG_COMPARTMENT: u32 = 1468;
pub const ERROR_AUTHIP_FAILURE: u32 = 1469;
pub const ERROR_NO_NVRAM_RESOURCES: u32 = 1470;
pub const ERROR_NOT_GUI_PROCESS: u32 = 1471;
pub const ERROR_EVENTLOG_FILE_CORRUPT: u32 = 1500;
pub const ERROR_EVENTLOG_CANT_START: u32 = 1501;
pub const ERROR_LOG_FILE_FULL: u32 = 1502;
pub const ERROR_EVENTLOG_FILE_CHANGED: u32 = 1503;
pub const ERROR_CONTAINER_ASSIGNED: u32 = 1504;
pub const ERROR_JOB_NO_CONTAINER: u32 = 1505;
pub const ERROR_INVALID_TASK_NAME: u32 = 1550;
pub const ERROR_INVALID_TASK_INDEX: u32 = 1551;
pub const ERROR_THREAD_ALREADY_IN_TASK: u32 = 1552;
pub const ERROR_INSTALL_SERVICE_FAILURE: u32 = 1601;
pub const ERROR_INSTALL_USEREXIT: u32 = 1602;
pub const ERROR_INSTALL_FAILURE: u32 = 1603;
pub const ERROR_INSTALL_SUSPEND: u32 = 1604;
pub const ERROR_UNKNOWN_PRODUCT: u32 = 1605;
pub const ERROR_UNKNOWN_FEATURE: u32 = 1606;
pub const ERROR_UNKNOWN_COMPONENT: u32 = 1607;
pub const ERROR_UNKNOWN_PROPERTY: u32 = 1608;
pub const ERROR_INVALID_HANDLE_STATE: u32 = 1609;
pub const ERROR_BAD_CONFIGURATION: u32 = 1610;
pub const ERROR_INDEX_ABSENT: u32 = 1611;
pub const ERROR_INSTALL_SOURCE_ABSENT: u32 = 1612;
pub const ERROR_INSTALL_PACKAGE_VERSION: u32 = 1613;
pub const ERROR_PRODUCT_UNINSTALLED: u32 = 1614;
pub const ERROR_BAD_QUERY_SYNTAX: u32 = 1615;
pub const ERROR_INVALID_FIELD: u32 = 1616;
pub const ERROR_DEVICE_REMOVED: u32 = 1617;
pub const ERROR_INSTALL_ALREADY_RUNNING: u32 = 1618;
pub const ERROR_INSTALL_PACKAGE_OPEN_FAILED: u32 = 1619;
pub const ERROR_INSTALL_PACKAGE_INVALID: u32 = 1620;
pub const ERROR_INSTALL_UI_FAILURE: u32 = 1621;
pub const ERROR_INSTALL_LOG_FAILURE: u32 = 1622;
pub const ERROR_INSTALL_LANGUAGE_UNSUPPORTED: u32 = 1623;
pub const ERROR_INSTALL_TRANSFORM_FAILURE: u32 = 1624;
pub const ERROR_INSTALL_PACKAGE_REJECTED: u32 = 1625;
pub const ERROR_FUNCTION_NOT_CALLED: u32 = 1626;
pub const ERROR_FUNCTION_FAILED: u32 = 1627;
pub const ERROR_INVALID_TABLE: u32 = 1628;
pub const ERROR_DATATYPE_MISMATCH: u32 = 1629;
pub const ERROR_UNSUPPORTED_TYPE: u32 = 1630;
pub const ERROR_CREATE_FAILED: u32 = 1631;
pub const ERROR_INSTALL_TEMP_UNWRITABLE: u32 = 1632;
pub const ERROR_INSTALL_PLATFORM_UNSUPPORTED: u32 = 1633;
pub const ERROR_INSTALL_NOTUSED: u32 = 1634;
pub const ERROR_PATCH_PACKAGE_OPEN_FAILED: u32 = 1635;
pub const ERROR_PATCH_PACKAGE_INVALID: u32 = 1636;
pub const ERROR_PATCH_PACKAGE_UNSUPPORTED: u32 = 1637;
pub const ERROR_PRODUCT_VERSION: u32 = 1638;
pub const ERROR_INVALID_COMMAND_LINE: u32 = 1639;
pub const ERROR_INSTALL_REMOTE_DISALLOWED: u32 = 1640;
pub const ERROR_SUCCESS_REBOOT_INITIATED: u32 = 1641;
pub const ERROR_PATCH_TARGET_NOT_FOUND: u32 = 1642;
pub const ERROR_PATCH_PACKAGE_REJECTED: u32 = 1643;
pub const ERROR_INSTALL_TRANSFORM_REJECTED: u32 = 1644;
pub const ERROR_INSTALL_REMOTE_PROHIBITED: u32 = 1645;
pub const ERROR_PATCH_REMOVAL_UNSUPPORTED: u32 = 1646;
pub const ERROR_UNKNOWN_PATCH: u32 = 1647;
pub const ERROR_PATCH_NO_SEQUENCE: u32 = 1648;
pub const ERROR_PATCH_REMOVAL_DISALLOWED: u32 = 1649;
pub const ERROR_INVALID_PATCH_XML: u32 = 1650;
pub const ERROR_PATCH_MANAGED_ADVERTISED_PRODUCT: u32 = 1651;
pub const ERROR_INSTALL_SERVICE_SAFEBOOT: u32 = 1652;
pub const ERROR_FAIL_FAST_EXCEPTION: u32 = 1653;
pub const ERROR_INSTALL_REJECTED: u32 = 1654;
pub const ERROR_DYNAMIC_CODE_BLOCKED: u32 = 1655;
pub const ERROR_NOT_SAME_OBJECT: u32 = 1656;
pub const ERROR_STRICT_CFG_VIOLATION: u32 = 1657;
pub const ERROR_SET_CONTEXT_DENIED: u32 = 1660;
pub const ERROR_CROSS_PARTITION_VIOLATION: u32 = 1661;
pub const RPC_S_INVALID_STRING_BINDING: u32 = 1700;
pub const RPC_S_WRONG_KIND_OF_BINDING: u32 = 1701;
pub const RPC_S_INVALID_BINDING: u32 = 1702;
pub const RPC_S_PROTSEQ_NOT_SUPPORTED: u32 = 1703;
pub const RPC_S_INVALID_RPC_PROTSEQ: u32 = 1704;
pub const RPC_S_INVALID_STRING_UUID: u32 = 1705;
pub const RPC_S_INVALID_ENDPOINT_FORMAT: u32 = 1706;
pub const RPC_S_INVALID_NET_ADDR: u32 = 1707;
pub const RPC_S_NO_ENDPOINT_FOUND: u32 = 1708;
pub const RPC_S_INVALID_TIMEOUT: u32 = 1709;
pub const RPC_S_OBJECT_NOT_FOUND: u32 = 1710;
pub const RPC_S_ALREADY_REGISTERED: u32 = 1711;
pub const RPC_S_TYPE_ALREADY_REGISTERED: u32 = 1712;
pub const RPC_S_ALREADY_LISTENING: u32 = 1713;
pub const RPC_S_NO_PROTSEQS_REGISTERED: u32 = 1714;
pub const RPC_S_NOT_LISTENING: u32 = 1715;
pub const RPC_S_UNKNOWN_MGR_TYPE: u32 = 1716;
pub const RPC_S_UNKNOWN_IF: u32 = 1717;
pub const RPC_S_NO_BINDINGS: u32 = 1718;
pub const RPC_S_NO_PROTSEQS: u32 = 1719;
pub const RPC_S_CANT_CREATE_ENDPOINT: u32 = 1720;
pub const RPC_S_OUT_OF_RESOURCES: u32 = 1721;
pub const RPC_S_SERVER_UNAVAILABLE: u32 = 1722;
pub const RPC_S_SERVER_TOO_BUSY: u32 = 1723;
pub const RPC_S_INVALID_NETWORK_OPTIONS: u32 = 1724;
pub const RPC_S_NO_CALL_ACTIVE: u32 = 1725;
pub const RPC_S_CALL_FAILED: u32 = 1726;
pub const RPC_S_CALL_FAILED_DNE: u32 = 1727;
pub const RPC_S_PROTOCOL_ERROR: u32 = 1728;
pub const RPC_S_PROXY_ACCESS_DENIED: u32 = 1729;
pub const RPC_S_UNSUPPORTED_TRANS_SYN: u32 = 1730;
pub const RPC_S_UNSUPPORTED_TYPE: u32 = 1732;
pub const RPC_S_INVALID_TAG: u32 = 1733;
pub const RPC_S_INVALID_BOUND: u32 = 1734;
pub const RPC_S_NO_ENTRY_NAME: u32 = 1735;
pub const RPC_S_INVALID_NAME_SYNTAX: u32 = 1736;
pub const RPC_S_UNSUPPORTED_NAME_SYNTAX: u32 = 1737;
pub const RPC_S_UUID_NO_ADDRESS: u32 = 1739;
pub const RPC_S_DUPLICATE_ENDPOINT: u32 = 1740;
pub const RPC_S_UNKNOWN_AUTHN_TYPE: u32 = 1741;
pub const RPC_S_MAX_CALLS_TOO_SMALL: u32 = 1742;
pub const RPC_S_STRING_TOO_LONG: u32 = 1743;
pub const RPC_S_PROTSEQ_NOT_FOUND: u32 = 1744;
pub const RPC_S_PROCNUM_OUT_OF_RANGE: u32 = 1745;
pub const RPC_S_BINDING_HAS_NO_AUTH: u32 = 1746;
pub const RPC_S_UNKNOWN_AUTHN_SERVICE: u32 = 1747;
pub const RPC_S_UNKNOWN_AUTHN_LEVEL: u32 = 1748;
pub const RPC_S_INVALID_AUTH_IDENTITY: u32 = 1749;
pub const RPC_S_UNKNOWN_AUTHZ_SERVICE: u32 = 1750;
pub const EPT_S_INVALID_ENTRY: u32 = 1751;
pub const EPT_S_CANT_PERFORM_OP: u32 = 1752;
pub const EPT_S_NOT_REGISTERED: u32 = 1753;
pub const RPC_S_NOTHING_TO_EXPORT: u32 = 1754;
pub const RPC_S_INCOMPLETE_NAME: u32 = 1755;
pub const RPC_S_INVALID_VERS_OPTION: u32 = 1756;
pub const RPC_S_NO_MORE_MEMBERS: u32 = 1757;
pub const RPC_S_NOT_ALL_OBJS_UNEXPORTED: u32 = 1758;
pub const RPC_S_INTERFACE_NOT_FOUND: u32 = 1759;
pub const RPC_S_ENTRY_ALREADY_EXISTS: u32 = 1760;
pub const RPC_S_ENTRY_NOT_FOUND: u32 = 1761;
pub const RPC_S_NAME_SERVICE_UNAVAILABLE: u32 = 1762;
pub const RPC_S_INVALID_NAF_ID: u32 = 1763;
pub const RPC_S_CANNOT_SUPPORT: u32 = 1764;
pub const RPC_S_NO_CONTEXT_AVAILABLE: u32 = 1765;
pub const RPC_S_INTERNAL_ERROR: u32 = 1766;
pub const RPC_S_ZERO_DIVIDE: u32 = 1767;
pub const RPC_S_ADDRESS_ERROR: u32 = 1768;
pub const RPC_S_FP_DIV_ZERO: u32 = 1769;
pub const RPC_S_FP_UNDERFLOW: u32 = 1770;
pub const RPC_S_FP_OVERFLOW: u32 = 1771;
pub const RPC_X_NO_MORE_ENTRIES: u32 = 1772;
pub const RPC_X_SS_CHAR_TRANS_OPEN_FAIL: u32 = 1773;
pub const RPC_X_SS_CHAR_TRANS_SHORT_FILE: u32 = 1774;
pub const RPC_X_SS_IN_NULL_CONTEXT: u32 = 1775;
pub const RPC_X_SS_CONTEXT_DAMAGED: u32 = 1777;
pub const RPC_X_SS_HANDLES_MISMATCH: u32 = 1778;
pub const RPC_X_SS_CANNOT_GET_CALL_HANDLE: u32 = 1779;
pub const RPC_X_NULL_REF_POINTER: u32 = 1780;
pub const RPC_X_ENUM_VALUE_OUT_OF_RANGE: u32 = 1781;
pub const RPC_X_BYTE_COUNT_TOO_SMALL: u32 = 1782;
pub const RPC_X_BAD_STUB_DATA: u32 = 1783;
pub const ERROR_INVALID_USER_BUFFER: u32 = 1784;
pub const ERROR_UNRECOGNIZED_MEDIA: u32 = 1785;
pub const ERROR_NO_TRUST_LSA_SECRET: u32 = 1786;
pub const ERROR_NO_TRUST_SAM_ACCOUNT: u32 = 1787;
pub const ERROR_TRUSTED_DOMAIN_FAILURE: u32 = 1788;
pub const ERROR_TRUSTED_RELATIONSHIP_FAILURE: u32 = 1789;
pub const ERROR_TRUST_FAILURE: u32 = 1790;
pub const RPC_S_CALL_IN_PROGRESS: u32 = 1791;
pub const ERROR_NETLOGON_NOT_STARTED: u32 = 1792;
pub const ERROR_ACCOUNT_EXPIRED: u32 = 1793;
pub const ERROR_REDIRECTOR_HAS_OPEN_HANDLES: u32 = 1794;
pub const ERROR_PRINTER_DRIVER_ALREADY_INSTALLED: u32 = 1795;
pub const ERROR_UNKNOWN_PORT: u32 = 1796;
pub const ERROR_UNKNOWN_PRINTER_DRIVER: u32 = 1797;
pub const ERROR_UNKNOWN_PRINTPROCESSOR: u32 = 1798;
pub const ERROR_INVALID_SEPARATOR_FILE: u32 = 1799;
pub const ERROR_INVALID_PRIORITY: u32 = 1800;
pub const ERROR_INVALID_PRINTER_NAME: u32 = 1801;
pub const ERROR_PRINTER_ALREADY_EXISTS: u32 = 1802;
pub const ERROR_INVALID_PRINTER_COMMAND: u32 = 1803;
pub const ERROR_INVALID_DATATYPE: u32 = 1804;
pub const ERROR_INVALID_ENVIRONMENT: u32 = 1805;
pub const RPC_S_NO_MORE_BINDINGS: u32 = 1806;
pub const ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT: u32 = 1807;
pub const ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT: u32 = 1808;
pub const ERROR_NOLOGON_SERVER_TRUST_ACCOUNT: u32 = 1809;
pub const ERROR_DOMAIN_TRUST_INCONSISTENT: u32 = 1810;
pub const ERROR_SERVER_HAS_OPEN_HANDLES: u32 = 1811;
pub const ERROR_RESOURCE_DATA_NOT_FOUND: u32 = 1812;
pub const ERROR_RESOURCE_TYPE_NOT_FOUND: u32 = 1813;
pub const ERROR_RESOURCE_NAME_NOT_FOUND: u32 = 1814;
pub const ERROR_RESOURCE_LANG_NOT_FOUND: u32 = 1815;
pub const ERROR_NOT_ENOUGH_QUOTA: u32 = 1816;
pub const RPC_S_NO_INTERFACES: u32 = 1817;
pub const RPC_S_CALL_CANCELLED: u32 = 1818;
pub const RPC_S_BINDING_INCOMPLETE: u32 = 1819;
pub const RPC_S_COMM_FAILURE: u32 = 1820;
pub const RPC_S_UNSUPPORTED_AUTHN_LEVEL: u32 = 1821;
pub const RPC_S_NO_PRINC_NAME: u32 = 1822;
pub const RPC_S_NOT_RPC_ERROR: u32 = 1823;
pub const RPC_S_UUID_LOCAL_ONLY: u32 = 1824;
pub const RPC_S_SEC_PKG_ERROR: u32 = 1825;
pub const RPC_S_NOT_CANCELLED: u32 = 1826;
pub const RPC_X_INVALID_ES_ACTION: u32 = 1827;
pub const RPC_X_WRONG_ES_VERSION: u32 = 1828;
pub const RPC_X_WRONG_STUB_VERSION: u32 = 1829;
pub const RPC_X_INVALID_PIPE_OBJECT: u32 = 1830;
pub const RPC_X_WRONG_PIPE_ORDER: u32 = 1831;
pub const RPC_X_WRONG_PIPE_VERSION: u32 = 1832;
pub const RPC_S_COOKIE_AUTH_FAILED: u32 = 1833;
pub const RPC_S_DO_NOT_DISTURB: u32 = 1834;
pub const RPC_S_SYSTEM_HANDLE_COUNT_EXCEEDED: u32 = 1835;
pub const RPC_S_SYSTEM_HANDLE_TYPE_MISMATCH: u32 = 1836;
pub const RPC_S_GROUP_MEMBER_NOT_FOUND: u32 = 1898;
pub const EPT_S_CANT_CREATE: u32 = 1899;
pub const RPC_S_INVALID_OBJECT: u32 = 1900;
pub const ERROR_INVALID_TIME: u32 = 1901;
pub const ERROR_INVALID_FORM_NAME: u32 = 1902;
pub const ERROR_INVALID_FORM_SIZE: u32 = 1903;
pub const ERROR_ALREADY_WAITING: u32 = 1904;
pub const ERROR_PRINTER_DELETED: u32 = 1905;
pub const ERROR_INVALID_PRINTER_STATE: u32 = 1906;
pub const ERROR_PASSWORD_MUST_CHANGE: u32 = 1907;
pub const ERROR_DOMAIN_CONTROLLER_NOT_FOUND: u32 = 1908;
pub const ERROR_ACCOUNT_LOCKED_OUT: u32 = 1909;
pub const OR_INVALID_OXID: u32 = 1910;
pub const OR_INVALID_OID: u32 = 1911;
pub const OR_INVALID_SET: u32 = 1912;
pub const RPC_S_SEND_INCOMPLETE: u32 = 1913;
pub const RPC_S_INVALID_ASYNC_HANDLE: u32 = 1914;
pub const RPC_S_INVALID_ASYNC_CALL: u32 = 1915;
pub const RPC_X_PIPE_CLOSED: u32 = 1916;
pub const RPC_X_PIPE_DISCIPLINE_ERROR: u32 = 1917;
pub const RPC_X_PIPE_EMPTY: u32 = 1918;
pub const ERROR_NO_SITENAME: u32 = 1919;
pub const ERROR_CANT_ACCESS_FILE: u32 = 1920;
pub const ERROR_CANT_RESOLVE_FILENAME: u32 = 1921;
pub const RPC_S_ENTRY_TYPE_MISMATCH: u32 = 1922;
pub const RPC_S_NOT_ALL_OBJS_EXPORTED: u32 = 1923;
pub const RPC_S_INTERFACE_NOT_EXPORTED: u32 = 1924;
pub const RPC_S_PROFILE_NOT_ADDED: u32 = 1925;
pub const RPC_S_PRF_ELT_NOT_ADDED: u32 = 1926;
pub const RPC_S_PRF_ELT_NOT_REMOVED: u32 = 1927;
pub const RPC_S_GRP_ELT_NOT_ADDED: u32 = 1928;
pub const RPC_S_GRP_ELT_NOT_REMOVED: u32 = 1929;
pub const ERROR_KM_DRIVER_BLOCKED: u32 = 1930;
pub const ERROR_CONTEXT_EXPIRED: u32 = 1931;
pub const ERROR_PER_USER_TRUST_QUOTA_EXCEEDED: u32 = 1932;
pub const ERROR_ALL_USER_TRUST_QUOTA_EXCEEDED: u32 = 1933;
pub const ERROR_USER_DELETE_TRUST_QUOTA_EXCEEDED: u32 = 1934;
pub const ERROR_AUTHENTICATION_FIREWALL_FAILED: u32 = 1935;
pub const ERROR_REMOTE_PRINT_CONNECTIONS_BLOCKED: u32 = 1936;
pub const ERROR_NTLM_BLOCKED: u32 = 1937;
pub const ERROR_PASSWORD_CHANGE_REQUIRED: u32 = 1938;
pub const ERROR_LOST_MODE_LOGON_RESTRICTION: u32 = 1939;
pub const ERROR_INVALID_PIXEL_FORMAT: u32 = 2000;
pub const ERROR_BAD_DRIVER: u32 = 2001;
pub const ERROR_INVALID_WINDOW_STYLE: u32 = 2002;
pub const ERROR_METAFILE_NOT_SUPPORTED: u32 = 2003;
pub const ERROR_TRANSFORM_NOT_SUPPORTED: u32 = 2004;
pub const ERROR_CLIPPING_NOT_SUPPORTED: u32 = 2005;
pub const ERROR_INVALID_CMM: u32 = 2010;
pub const ERROR_INVALID_PROFILE: u32 = 2011;
pub const ERROR_TAG_NOT_FOUND: u32 = 2012;
pub const ERROR_TAG_NOT_PRESENT: u32 = 2013;
pub const ERROR_DUPLICATE_TAG: u32 = 2014;
pub const ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE: u32 = 2015;
pub const ERROR_PROFILE_NOT_FOUND: u32 = 2016;
pub const ERROR_INVALID_COLORSPACE: u32 = 2017;
pub const ERROR_ICM_NOT_ENABLED: u32 = 2018;
pub const ERROR_DELETING_ICM_XFORM: u32 = 2019;
pub const ERROR_INVALID_TRANSFORM: u32 = 2020;
pub const ERROR_COLORSPACE_MISMATCH: u32 = 2021;
pub const ERROR_INVALID_COLORINDEX: u32 = 2022;
pub const ERROR_PROFILE_DOES_NOT_MATCH_DEVICE: u32 = 2023;
pub const ERROR_CONNECTED_OTHER_PASSWORD: u32 = 2108;
pub const ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT: u32 = 2109;
pub const ERROR_BAD_USERNAME: u32 = 2202;
pub const ERROR_NOT_CONNECTED: u32 = 2250;
pub const ERROR_OPEN_FILES: u32 = 2401;
pub const ERROR_ACTIVE_CONNECTIONS: u32 = 2402;
pub const ERROR_DEVICE_IN_USE: u32 = 2404;
pub const ERROR_UNKNOWN_PRINT_MONITOR: u32 = 3000;
pub const ERROR_PRINTER_DRIVER_IN_USE: u32 = 3001;
pub const ERROR_SPOOL_FILE_NOT_FOUND: u32 = 3002;
pub const ERROR_SPL_NO_STARTDOC: u32 = 3003;
pub const ERROR_SPL_NO_ADDJOB: u32 = 3004;
pub const ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED: u32 = 3005;
pub const ERROR_PRINT_MONITOR_ALREADY_INSTALLED: u32 = 3006;
pub const ERROR_INVALID_PRINT_MONITOR: u32 = 3007;
pub const ERROR_PRINT_MONITOR_IN_USE: u32 = 3008;
pub const ERROR_PRINTER_HAS_JOBS_QUEUED: u32 = 3009;
pub const ERROR_SUCCESS_REBOOT_REQUIRED: u32 = 3010;
pub const ERROR_SUCCESS_RESTART_REQUIRED: u32 = 3011;
pub const ERROR_PRINTER_NOT_FOUND: u32 = 3012;
pub const ERROR_PRINTER_DRIVER_WARNED: u32 = 3013;
pub const ERROR_PRINTER_DRIVER_BLOCKED: u32 = 3014;
pub const ERROR_PRINTER_DRIVER_PACKAGE_IN_USE: u32 = 3015;
pub const ERROR_CORE_DRIVER_PACKAGE_NOT_FOUND: u32 = 3016;
pub const ERROR_FAIL_REBOOT_REQUIRED: u32 = 3017;
pub const ERROR_FAIL_REBOOT_INITIATED: u32 = 3018;
pub const ERROR_PRINTER_DRIVER_DOWNLOAD_NEEDED: u32 = 3019;
pub const ERROR_PRINT_JOB_RESTART_REQUIRED: u32 = 3020;
pub const ERROR_INVALID_PRINTER_DRIVER_MANIFEST: u32 = 3021;
pub const ERROR_PRINTER_NOT_SHAREABLE: u32 = 3022;
pub const ERROR_REQUEST_PAUSED: u32 = 3050;
pub const ERROR_APPEXEC_CONDITION_NOT_SATISFIED: u32 = 3060;
pub const ERROR_APPEXEC_HANDLE_INVALIDATED: u32 = 3061;
pub const ERROR_APPEXEC_INVALID_HOST_GENERATION: u32 = 3062;
pub const ERROR_APPEXEC_UNEXPECTED_PROCESS_REGISTRATION: u32 = 3063;
pub const ERROR_APPEXEC_INVALID_HOST_STATE: u32 = 3064;
pub const ERROR_APPEXEC_NO_DONOR: u32 = 3065;
pub const ERROR_APPEXEC_HOST_ID_MISMATCH: u32 = 3066;
pub const ERROR_APPEXEC_UNKNOWN_USER: u32 = 3067;
pub const ERROR_IO_REISSUE_AS_CACHED: u32 = 3950;
pub const ERROR_WINS_INTERNAL: u32 = 4000;
pub const ERROR_CAN_NOT_DEL_LOCAL_WINS: u32 = 4001;
pub const ERROR_STATIC_INIT: u32 = 4002;
pub const ERROR_INC_BACKUP: u32 = 4003;
pub const ERROR_FULL_BACKUP: u32 = 4004;
pub const ERROR_REC_NON_EXISTENT: u32 = 4005;
pub const ERROR_RPL_NOT_ALLOWED: u32 = 4006;
pub const PEERDIST_ERROR_CONTENTINFO_VERSION_UNSUPPORTED: u32 = 4050;
pub const PEERDIST_ERROR_CANNOT_PARSE_CONTENTINFO: u32 = 4051;
pub const PEERDIST_ERROR_MISSING_DATA: u32 = 4052;
pub const PEERDIST_ERROR_NO_MORE: u32 = 4053;
pub const PEERDIST_ERROR_NOT_INITIALIZED: u32 = 4054;
pub const PEERDIST_ERROR_ALREADY_INITIALIZED: u32 = 4055;
pub const PEERDIST_ERROR_SHUTDOWN_IN_PROGRESS: u32 = 4056;
pub const PEERDIST_ERROR_INVALIDATED: u32 = 4057;
pub const PEERDIST_ERROR_ALREADY_EXISTS: u32 = 4058;
pub const PEERDIST_ERROR_OPERATION_NOTFOUND: u32 = 4059;
pub const PEERDIST_ERROR_ALREADY_COMPLETED: u32 = 4060;
pub const PEERDIST_ERROR_OUT_OF_BOUNDS: u32 = 4061;
pub const PEERDIST_ERROR_VERSION_UNSUPPORTED: u32 = 4062;
pub const PEERDIST_ERROR_INVALID_CONFIGURATION: u32 = 4063;
pub const PEERDIST_ERROR_NOT_LICENSED: u32 = 4064;
pub const PEERDIST_ERROR_SERVICE_UNAVAILABLE: u32 = 4065;
pub const PEERDIST_ERROR_TRUST_FAILURE: u32 = 4066;
pub const ERROR_DHCP_ADDRESS_CONFLICT: u32 = 4100;
pub const ERROR_WMI_GUID_NOT_FOUND: u32 = 4200;
pub const ERROR_WMI_INSTANCE_NOT_FOUND: u32 = 4201;
pub const ERROR_WMI_ITEMID_NOT_FOUND: u32 = 4202;
pub const ERROR_WMI_TRY_AGAIN: u32 = 4203;
pub const ERROR_WMI_DP_NOT_FOUND: u32 = 4204;
pub const ERROR_WMI_UNRESOLVED_INSTANCE_REF: u32 = 4205;
pub const ERROR_WMI_ALREADY_ENABLED: u32 = 4206;
pub const ERROR_WMI_GUID_DISCONNECTED: u32 = 4207;
pub const ERROR_WMI_SERVER_UNAVAILABLE: u32 = 4208;
pub const ERROR_WMI_DP_FAILED: u32 = 4209;
pub const ERROR_WMI_INVALID_MOF: u32 = 4210;
pub const ERROR_WMI_INVALID_REGINFO: u32 = 4211;
pub const ERROR_WMI_ALREADY_DISABLED: u32 = 4212;
pub const ERROR_WMI_READ_ONLY: u32 = 4213;
pub const ERROR_WMI_SET_FAILURE: u32 = 4214;
pub const ERROR_NOT_APPCONTAINER: u32 = 4250;
pub const ERROR_APPCONTAINER_REQUIRED: u32 = 4251;
pub const ERROR_NOT_SUPPORTED_IN_APPCONTAINER: u32 = 4252;
pub const ERROR_INVALID_PACKAGE_SID_LENGTH: u32 = 4253;
pub const ERROR_INVALID_MEDIA: u32 = 4300;
pub const ERROR_INVALID_LIBRARY: u32 = 4301;
pub const ERROR_INVALID_MEDIA_POOL: u32 = 4302;
pub const ERROR_DRIVE_MEDIA_MISMATCH: u32 = 4303;
pub const ERROR_MEDIA_OFFLINE: u32 = 4304;
pub const ERROR_LIBRARY_OFFLINE: u32 = 4305;
pub const ERROR_EMPTY: u32 = 4306;
pub const ERROR_NOT_EMPTY: u32 = 4307;
pub const ERROR_MEDIA_UNAVAILABLE: u32 = 4308;
pub const ERROR_RESOURCE_DISABLED: u32 = 4309;
pub const ERROR_INVALID_CLEANER: u32 = 4310;
pub const ERROR_UNABLE_TO_CLEAN: u32 = 4311;
pub const ERROR_OBJECT_NOT_FOUND: u32 = 4312;
pub const ERROR_DATABASE_FAILURE: u32 = 4313;
pub const ERROR_DATABASE_FULL: u32 = 4314;
pub const ERROR_MEDIA_INCOMPATIBLE: u32 = 4315;
pub const ERROR_RESOURCE_NOT_PRESENT: u32 = 4316;
pub const ERROR_INVALID_OPERATION: u32 = 4317;
pub const ERROR_MEDIA_NOT_AVAILABLE: u32 = 4318;
pub const ERROR_DEVICE_NOT_AVAILABLE: u32 = 4319;
pub const ERROR_REQUEST_REFUSED: u32 = 4320;
pub const ERROR_INVALID_DRIVE_OBJECT: u32 = 4321;
pub const ERROR_LIBRARY_FULL: u32 = 4322;
pub const ERROR_MEDIUM_NOT_ACCESSIBLE: u32 = 4323;
pub const ERROR_UNABLE_TO_LOAD_MEDIUM: u32 = 4324;
pub const ERROR_UNABLE_TO_INVENTORY_DRIVE: u32 = 4325;
pub const ERROR_UNABLE_TO_INVENTORY_SLOT: u32 = 4326;
pub const ERROR_UNABLE_TO_INVENTORY_TRANSPORT: u32 = 4327;
pub const ERROR_TRANSPORT_FULL: u32 = 4328;
pub const ERROR_CONTROLLING_IEPORT: u32 = 4329;
pub const ERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA: u32 = 4330;
pub const ERROR_CLEANER_SLOT_SET: u32 = 4331;
pub const ERROR_CLEANER_SLOT_NOT_SET: u32 = 4332;
pub const ERROR_CLEANER_CARTRIDGE_SPENT: u32 = 4333;
pub const ERROR_UNEXPECTED_OMID: u32 = 4334;
pub const ERROR_CANT_DELETE_LAST_ITEM: u32 = 4335;
pub const ERROR_MESSAGE_EXCEEDS_MAX_SIZE: u32 = 4336;
pub const ERROR_VOLUME_CONTAINS_SYS_FILES: u32 = 4337;
pub const ERROR_INDIGENOUS_TYPE: u32 = 4338;
pub const ERROR_NO_SUPPORTING_DRIVES: u32 = 4339;
pub const ERROR_CLEANER_CARTRIDGE_INSTALLED: u32 = 4340;
pub const ERROR_IEPORT_FULL: u32 = 4341;
pub const ERROR_FILE_OFFLINE: u32 = 4350;
pub const ERROR_REMOTE_STORAGE_NOT_ACTIVE: u32 = 4351;
pub const ERROR_REMOTE_STORAGE_MEDIA_ERROR: u32 = 4352;
pub const ERROR_NOT_A_REPARSE_POINT: u32 = 4390;
pub const ERROR_REPARSE_ATTRIBUTE_CONFLICT: u32 = 4391;
pub const ERROR_INVALID_REPARSE_DATA: u32 = 4392;
pub const ERROR_REPARSE_TAG_INVALID: u32 = 4393;
pub const ERROR_REPARSE_TAG_MISMATCH: u32 = 4394;
pub const ERROR_REPARSE_POINT_ENCOUNTERED: u32 = 4395;
pub const ERROR_APP_DATA_NOT_FOUND: u32 = 4400;
pub const ERROR_APP_DATA_EXPIRED: u32 = 4401;
pub const ERROR_APP_DATA_CORRUPT: u32 = 4402;
pub const ERROR_APP_DATA_LIMIT_EXCEEDED: u32 = 4403;
pub const ERROR_APP_DATA_REBOOT_REQUIRED: u32 = 4404;
pub const ERROR_SECUREBOOT_ROLLBACK_DETECTED: u32 = 4420;
pub const ERROR_SECUREBOOT_POLICY_VIOLATION: u32 = 4421;
pub const ERROR_SECUREBOOT_INVALID_POLICY: u32 = 4422;
pub const ERROR_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND: u32 = 4423;
pub const ERROR_SECUREBOOT_POLICY_NOT_SIGNED: u32 = 4424;
pub const ERROR_SECUREBOOT_NOT_ENABLED: u32 = 4425;
pub const ERROR_SECUREBOOT_FILE_REPLACED: u32 = 4426;
pub const ERROR_SECUREBOOT_POLICY_NOT_AUTHORIZED: u32 = 4427;
pub const ERROR_SECUREBOOT_POLICY_UNKNOWN: u32 = 4428;
pub const ERROR_SECUREBOOT_POLICY_MISSING_ANTIROLLBACKVERSION: u32 = 4429;
pub const ERROR_SECUREBOOT_PLATFORM_ID_MISMATCH: u32 = 4430;
pub const ERROR_SECUREBOOT_POLICY_ROLLBACK_DETECTED: u32 = 4431;
pub const ERROR_SECUREBOOT_POLICY_UPGRADE_MISMATCH: u32 = 4432;
pub const ERROR_SECUREBOOT_REQUIRED_POLICY_FILE_MISSING: u32 = 4433;
pub const ERROR_SECUREBOOT_NOT_BASE_POLICY: u32 = 4434;
pub const ERROR_SECUREBOOT_NOT_SUPPLEMENTAL_POLICY: u32 = 4435;
pub const ERROR_OFFLOAD_READ_FLT_NOT_SUPPORTED: u32 = 4440;
pub const ERROR_OFFLOAD_WRITE_FLT_NOT_SUPPORTED: u32 = 4441;
pub const ERROR_OFFLOAD_READ_FILE_NOT_SUPPORTED: u32 = 4442;
pub const ERROR_OFFLOAD_WRITE_FILE_NOT_SUPPORTED: u32 = 4443;
pub const ERROR_ALREADY_HAS_STREAM_ID: u32 = 4444;
pub const ERROR_SMR_GARBAGE_COLLECTION_REQUIRED: u32 = 4445;
pub const ERROR_WOF_WIM_HEADER_CORRUPT: u32 = 4446;
pub const ERROR_WOF_WIM_RESOURCE_TABLE_CORRUPT: u32 = 4447;
pub const ERROR_WOF_FILE_RESOURCE_TABLE_CORRUPT: u32 = 4448;
pub const ERROR_VOLUME_NOT_SIS_ENABLED: u32 = 4500;
pub const ERROR_SYSTEM_INTEGRITY_ROLLBACK_DETECTED: u32 = 4550;
pub const ERROR_SYSTEM_INTEGRITY_POLICY_VIOLATION: u32 = 4551;
pub const ERROR_SYSTEM_INTEGRITY_INVALID_POLICY: u32 = 4552;
pub const ERROR_SYSTEM_INTEGRITY_POLICY_NOT_SIGNED: u32 = 4553;
pub const ERROR_SYSTEM_INTEGRITY_TOO_MANY_POLICIES: u32 = 4554;
pub const ERROR_SYSTEM_INTEGRITY_SUPPLEMENTAL_POLICY_NOT_AUTHORIZED: u32 = 4555;
pub const ERROR_VSM_NOT_INITIALIZED: u32 = 4560;
pub const ERROR_VSM_DMA_PROTECTION_NOT_IN_USE: u32 = 4561;
pub const ERROR_PLATFORM_MANIFEST_NOT_AUTHORIZED: u32 = 4570;
pub const ERROR_PLATFORM_MANIFEST_INVALID: u32 = 4571;
pub const ERROR_PLATFORM_MANIFEST_FILE_NOT_AUTHORIZED: u32 = 4572;
pub const ERROR_PLATFORM_MANIFEST_CATALOG_NOT_AUTHORIZED: u32 = 4573;
pub const ERROR_PLATFORM_MANIFEST_BINARY_ID_NOT_FOUND: u32 = 4574;
pub const ERROR_PLATFORM_MANIFEST_NOT_ACTIVE: u32 = 4575;
pub const ERROR_PLATFORM_MANIFEST_NOT_SIGNED: u32 = 4576;
pub const ERROR_DEPENDENT_RESOURCE_EXISTS: u32 = 5001;
pub const ERROR_DEPENDENCY_NOT_FOUND: u32 = 5002;
pub const ERROR_DEPENDENCY_ALREADY_EXISTS: u32 = 5003;
pub const ERROR_RESOURCE_NOT_ONLINE: u32 = 5004;
pub const ERROR_HOST_NODE_NOT_AVAILABLE: u32 = 5005;
pub const ERROR_RESOURCE_NOT_AVAILABLE: u32 = 5006;
pub const ERROR_RESOURCE_NOT_FOUND: u32 = 5007;
pub const ERROR_SHUTDOWN_CLUSTER: u32 = 5008;
pub const ERROR_CANT_EVICT_ACTIVE_NODE: u32 = 5009;
pub const ERROR_OBJECT_ALREADY_EXISTS: u32 = 5010;
pub const ERROR_OBJECT_IN_LIST: u32 = 5011;
pub const ERROR_GROUP_NOT_AVAILABLE: u32 = 5012;
pub const ERROR_GROUP_NOT_FOUND: u32 = 5013;
pub const ERROR_GROUP_NOT_ONLINE: u32 = 5014;
pub const ERROR_HOST_NODE_NOT_RESOURCE_OWNER: u32 = 5015;
pub const ERROR_HOST_NODE_NOT_GROUP_OWNER: u32 = 5016;
pub const ERROR_RESMON_CREATE_FAILED: u32 = 5017;
pub const ERROR_RESMON_ONLINE_FAILED: u32 = 5018;
pub const ERROR_RESOURCE_ONLINE: u32 = 5019;
pub const ERROR_QUORUM_RESOURCE: u32 = 5020;
pub const ERROR_NOT_QUORUM_CAPABLE: u32 = 5021;
pub const ERROR_CLUSTER_SHUTTING_DOWN: u32 = 5022;
pub const ERROR_INVALID_STATE: u32 = 5023;
pub const ERROR_RESOURCE_PROPERTIES_STORED: u32 = 5024;
pub const ERROR_NOT_QUORUM_CLASS: u32 = 5025;
pub const ERROR_CORE_RESOURCE: u32 = 5026;
pub const ERROR_QUORUM_RESOURCE_ONLINE_FAILED: u32 = 5027;
pub const ERROR_QUORUMLOG_OPEN_FAILED: u32 = 5028;
pub const ERROR_CLUSTERLOG_CORRUPT: u32 = 5029;
pub const ERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE: u32 = 5030;
pub const ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE: u32 = 5031;
pub const ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND: u32 = 5032;
pub const ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE: u32 = 5033;
pub const ERROR_QUORUM_OWNER_ALIVE: u32 = 5034;
pub const ERROR_NETWORK_NOT_AVAILABLE: u32 = 5035;
pub const ERROR_NODE_NOT_AVAILABLE: u32 = 5036;
pub const ERROR_ALL_NODES_NOT_AVAILABLE: u32 = 5037;
pub const ERROR_RESOURCE_FAILED: u32 = 5038;
pub const ERROR_CLUSTER_INVALID_NODE: u32 = 5039;
pub const ERROR_CLUSTER_NODE_EXISTS: u32 = 5040;
pub const ERROR_CLUSTER_JOIN_IN_PROGRESS: u32 = 5041;
pub const ERROR_CLUSTER_NODE_NOT_FOUND: u32 = 5042;
pub const ERROR_CLUSTER_LOCAL_NODE_NOT_FOUND: u32 = 5043;
pub const ERROR_CLUSTER_NETWORK_EXISTS: u32 = 5044;
pub const ERROR_CLUSTER_NETWORK_NOT_FOUND: u32 = 5045;
pub const ERROR_CLUSTER_NETINTERFACE_EXISTS: u32 = 5046;
pub const ERROR_CLUSTER_NETINTERFACE_NOT_FOUND: u32 = 5047;
pub const ERROR_CLUSTER_INVALID_REQUEST: u32 = 5048;
pub const ERROR_CLUSTER_INVALID_NETWORK_PROVIDER: u32 = 5049;
pub const ERROR_CLUSTER_NODE_DOWN: u32 = 5050;
pub const ERROR_CLUSTER_NODE_UNREACHABLE: u32 = 5051;
pub const ERROR_CLUSTER_NODE_NOT_MEMBER: u32 = 5052;
pub const ERROR_CLUSTER_JOIN_NOT_IN_PROGRESS: u32 = 5053;
pub const ERROR_CLUSTER_INVALID_NETWORK: u32 = 5054;
pub const ERROR_CLUSTER_NODE_UP: u32 = 5056;
pub const ERROR_CLUSTER_IPADDR_IN_USE: u32 = 5057;
pub const ERROR_CLUSTER_NODE_NOT_PAUSED: u32 = 5058;
pub const ERROR_CLUSTER_NO_SECURITY_CONTEXT: u32 = 5059;
pub const ERROR_CLUSTER_NETWORK_NOT_INTERNAL: u32 = 5060;
pub const ERROR_CLUSTER_NODE_ALREADY_UP: u32 = 5061;
pub const ERROR_CLUSTER_NODE_ALREADY_DOWN: u32 = 5062;
pub const ERROR_CLUSTER_NETWORK_ALREADY_ONLINE: u32 = 5063;
pub const ERROR_CLUSTER_NETWORK_ALREADY_OFFLINE: u32 = 5064;
pub const ERROR_CLUSTER_NODE_ALREADY_MEMBER: u32 = 5065;
pub const ERROR_CLUSTER_LAST_INTERNAL_NETWORK: u32 = 5066;
pub const ERROR_CLUSTER_NETWORK_HAS_DEPENDENTS: u32 = 5067;
pub const ERROR_INVALID_OPERATION_ON_QUORUM: u32 = 5068;
pub const ERROR_DEPENDENCY_NOT_ALLOWED: u32 = 5069;
pub const ERROR_CLUSTER_NODE_PAUSED: u32 = 5070;
pub const ERROR_NODE_CANT_HOST_RESOURCE: u32 = 5071;
pub const ERROR_CLUSTER_NODE_NOT_READY: u32 = 5072;
pub const ERROR_CLUSTER_NODE_SHUTTING_DOWN: u32 = 5073;
pub const ERROR_CLUSTER_JOIN_ABORTED: u32 = 5074;
pub const ERROR_CLUSTER_INCOMPATIBLE_VERSIONS: u32 = 5075;
pub const ERROR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED: u32 = 5076;
pub const ERROR_CLUSTER_SYSTEM_CONFIG_CHANGED: u32 = 5077;
pub const ERROR_CLUSTER_RESOURCE_TYPE_NOT_FOUND: u32 = 5078;
pub const ERROR_CLUSTER_RESTYPE_NOT_SUPPORTED: u32 = 5079;
pub const ERROR_CLUSTER_RESNAME_NOT_FOUND: u32 = 5080;
pub const ERROR_CLUSTER_NO_RPC_PACKAGES_REGISTERED: u32 = 5081;
pub const ERROR_CLUSTER_OWNER_NOT_IN_PREFLIST: u32 = 5082;
pub const ERROR_CLUSTER_DATABASE_SEQMISMATCH: u32 = 5083;
pub const ERROR_RESMON_INVALID_STATE: u32 = 5084;
pub const ERROR_CLUSTER_GUM_NOT_LOCKER: u32 = 5085;
pub const ERROR_QUORUM_DISK_NOT_FOUND: u32 = 5086;
pub const ERROR_DATABASE_BACKUP_CORRUPT: u32 = 5087;
pub const ERROR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT: u32 = 5088;
pub const ERROR_RESOURCE_PROPERTY_UNCHANGEABLE: u32 = 5089;
pub const ERROR_NO_ADMIN_ACCESS_POINT: u32 = 5090;
pub const ERROR_CLUSTER_MEMBERSHIP_INVALID_STATE: u32 = 5890;
pub const ERROR_CLUSTER_QUORUMLOG_NOT_FOUND: u32 = 5891;
pub const ERROR_CLUSTER_MEMBERSHIP_HALT: u32 = 5892;
pub const ERROR_CLUSTER_INSTANCE_ID_MISMATCH: u32 = 5893;
pub const ERROR_CLUSTER_NETWORK_NOT_FOUND_FOR_IP: u32 = 5894;
pub const ERROR_CLUSTER_PROPERTY_DATA_TYPE_MISMATCH: u32 = 5895;
pub const ERROR_CLUSTER_EVICT_WITHOUT_CLEANUP: u32 = 5896;
pub const ERROR_CLUSTER_PARAMETER_MISMATCH: u32 = 5897;
pub const ERROR_NODE_CANNOT_BE_CLUSTERED: u32 = 5898;
pub const ERROR_CLUSTER_WRONG_OS_VERSION: u32 = 5899;
pub const ERROR_CLUSTER_CANT_CREATE_DUP_CLUSTER_NAME: u32 = 5900;
pub const ERROR_CLUSCFG_ALREADY_COMMITTED: u32 = 5901;
pub const ERROR_CLUSCFG_ROLLBACK_FAILED: u32 = 5902;
pub const ERROR_CLUSCFG_SYSTEM_DISK_DRIVE_LETTER_CONFLICT: u32 = 5903;
pub const ERROR_CLUSTER_OLD_VERSION: u32 = 5904;
pub const ERROR_CLUSTER_MISMATCHED_COMPUTER_ACCT_NAME: u32 = 5905;
pub const ERROR_CLUSTER_NO_NET_ADAPTERS: u32 = 5906;
pub const ERROR_CLUSTER_POISONED: u32 = 5907;
pub const ERROR_CLUSTER_GROUP_MOVING: u32 = 5908;
pub const ERROR_CLUSTER_RESOURCE_TYPE_BUSY: u32 = 5909;
pub const ERROR_RESOURCE_CALL_TIMED_OUT: u32 = 5910;
pub const ERROR_INVALID_CLUSTER_IPV6_ADDRESS: u32 = 5911;
pub const ERROR_CLUSTER_INTERNAL_INVALID_FUNCTION: u32 = 5912;
pub const ERROR_CLUSTER_PARAMETER_OUT_OF_BOUNDS: u32 = 5913;
pub const ERROR_CLUSTER_PARTIAL_SEND: u32 = 5914;
pub const ERROR_CLUSTER_REGISTRY_INVALID_FUNCTION: u32 = 5915;
pub const ERROR_CLUSTER_INVALID_STRING_TERMINATION: u32 = 5916;
pub const ERROR_CLUSTER_INVALID_STRING_FORMAT: u32 = 5917;
pub const ERROR_CLUSTER_DATABASE_TRANSACTION_IN_PROGRESS: u32 = 5918;
pub const ERROR_CLUSTER_DATABASE_TRANSACTION_NOT_IN_PROGRESS: u32 = 5919;
pub const ERROR_CLUSTER_NULL_DATA: u32 = 5920;
pub const ERROR_CLUSTER_PARTIAL_READ: u32 = 5921;
pub const ERROR_CLUSTER_PARTIAL_WRITE: u32 = 5922;
pub const ERROR_CLUSTER_CANT_DESERIALIZE_DATA: u32 = 5923;
pub const ERROR_DEPENDENT_RESOURCE_PROPERTY_CONFLICT: u32 = 5924;
pub const ERROR_CLUSTER_NO_QUORUM: u32 = 5925;
pub const ERROR_CLUSTER_INVALID_IPV6_NETWORK: u32 = 5926;
pub const ERROR_CLUSTER_INVALID_IPV6_TUNNEL_NETWORK: u32 = 5927;
pub const ERROR_QUORUM_NOT_ALLOWED_IN_THIS_GROUP: u32 = 5928;
pub const ERROR_DEPENDENCY_TREE_TOO_COMPLEX: u32 = 5929;
pub const ERROR_EXCEPTION_IN_RESOURCE_CALL: u32 = 5930;
pub const ERROR_CLUSTER_RHS_FAILED_INITIALIZATION: u32 = 5931;
pub const ERROR_CLUSTER_NOT_INSTALLED: u32 = 5932;
pub const ERROR_CLUSTER_RESOURCES_MUST_BE_ONLINE_ON_THE_SAME_NODE: u32 = 5933;
pub const ERROR_CLUSTER_MAX_NODES_IN_CLUSTER: u32 = 5934;
pub const ERROR_CLUSTER_TOO_MANY_NODES: u32 = 5935;
pub const ERROR_CLUSTER_OBJECT_ALREADY_USED: u32 = 5936;
pub const ERROR_NONCORE_GROUPS_FOUND: u32 = 5937;
pub const ERROR_FILE_SHARE_RESOURCE_CONFLICT: u32 = 5938;
pub const ERROR_CLUSTER_EVICT_INVALID_REQUEST: u32 = 5939;
pub const ERROR_CLUSTER_SINGLETON_RESOURCE: u32 = 5940;
pub const ERROR_CLUSTER_GROUP_SINGLETON_RESOURCE: u32 = 5941;
pub const ERROR_CLUSTER_RESOURCE_PROVIDER_FAILED: u32 = 5942;
pub const ERROR_CLUSTER_RESOURCE_CONFIGURATION_ERROR: u32 = 5943;
pub const ERROR_CLUSTER_GROUP_BUSY: u32 = 5944;
pub const ERROR_CLUSTER_NOT_SHARED_VOLUME: u32 = 5945;
pub const ERROR_CLUSTER_INVALID_SECURITY_DESCRIPTOR: u32 = 5946;
pub const ERROR_CLUSTER_SHARED_VOLUMES_IN_USE: u32 = 5947;
pub const ERROR_CLUSTER_USE_SHARED_VOLUMES_API: u32 = 5948;
pub const ERROR_CLUSTER_BACKUP_IN_PROGRESS: u32 = 5949;
pub const ERROR_NON_CSV_PATH: u32 = 5950;
pub const ERROR_CSV_VOLUME_NOT_LOCAL: u32 = 5951;
pub const ERROR_CLUSTER_WATCHDOG_TERMINATING: u32 = 5952;
pub const ERROR_CLUSTER_RESOURCE_VETOED_MOVE_INCOMPATIBLE_NODES: u32 = 5953;
pub const ERROR_CLUSTER_INVALID_NODE_WEIGHT: u32 = 5954;
pub const ERROR_CLUSTER_RESOURCE_VETOED_CALL: u32 = 5955;
pub const ERROR_RESMON_SYSTEM_RESOURCES_LACKING: u32 = 5956;
pub const ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_DESTINATION: u32 = 5957;
pub const ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_SOURCE: u32 = 5958;
pub const ERROR_CLUSTER_GROUP_QUEUED: u32 = 5959;
pub const ERROR_CLUSTER_RESOURCE_LOCKED_STATUS: u32 = 5960;
pub const ERROR_CLUSTER_SHARED_VOLUME_FAILOVER_NOT_ALLOWED: u32 = 5961;
pub const ERROR_CLUSTER_NODE_DRAIN_IN_PROGRESS: u32 = 5962;
pub const ERROR_CLUSTER_DISK_NOT_CONNECTED: u32 = 5963;
pub const ERROR_DISK_NOT_CSV_CAPABLE: u32 = 5964;
pub const ERROR_RESOURCE_NOT_IN_AVAILABLE_STORAGE: u32 = 5965;
pub const ERROR_CLUSTER_SHARED_VOLUME_REDIRECTED: u32 = 5966;
pub const ERROR_CLUSTER_SHARED_VOLUME_NOT_REDIRECTED: u32 = 5967;
pub const ERROR_CLUSTER_CANNOT_RETURN_PROPERTIES: u32 = 5968;
pub const ERROR_CLUSTER_RESOURCE_CONTAINS_UNSUPPORTED_DIFF_AREA_FOR_SHARED_VOLUMES: u32 = 5969;
pub const ERROR_CLUSTER_RESOURCE_IS_IN_MAINTENANCE_MODE: u32 = 5970;
pub const ERROR_CLUSTER_AFFINITY_CONFLICT: u32 = 5971;
pub const ERROR_CLUSTER_RESOURCE_IS_REPLICA_VIRTUAL_MACHINE: u32 = 5972;
pub const ERROR_CLUSTER_UPGRADE_INCOMPATIBLE_VERSIONS: u32 = 5973;
pub const ERROR_CLUSTER_UPGRADE_FIX_QUORUM_NOT_SUPPORTED: u32 = 5974;
pub const ERROR_CLUSTER_UPGRADE_RESTART_REQUIRED: u32 = 5975;
pub const ERROR_CLUSTER_UPGRADE_IN_PROGRESS: u32 = 5976;
pub const ERROR_CLUSTER_UPGRADE_INCOMPLETE: u32 = 5977;
pub const ERROR_CLUSTER_NODE_IN_GRACE_PERIOD: u32 = 5978;
pub const ERROR_CLUSTER_CSV_IO_PAUSE_TIMEOUT: u32 = 5979;
pub const ERROR_NODE_NOT_ACTIVE_CLUSTER_MEMBER: u32 = 5980;
pub const ERROR_CLUSTER_RESOURCE_NOT_MONITORED: u32 = 5981;
pub const ERROR_CLUSTER_RESOURCE_DOES_NOT_SUPPORT_UNMONITORED: u32 = 5982;
pub const ERROR_CLUSTER_RESOURCE_IS_REPLICATED: u32 = 5983;
pub const ERROR_CLUSTER_NODE_ISOLATED: u32 = 5984;
pub const ERROR_CLUSTER_NODE_QUARANTINED: u32 = 5985;
pub const ERROR_CLUSTER_DATABASE_UPDATE_CONDITION_FAILED: u32 = 5986;
pub const ERROR_CLUSTER_SPACE_DEGRADED: u32 = 5987;
pub const ERROR_CLUSTER_TOKEN_DELEGATION_NOT_SUPPORTED: u32 = 5988;
pub const ERROR_CLUSTER_CSV_INVALID_HANDLE: u32 = 5989;
pub const ERROR_CLUSTER_CSV_SUPPORTED_ONLY_ON_COORDINATOR: u32 = 5990;
pub const ERROR_GROUPSET_NOT_AVAILABLE: u32 = 5991;
pub const ERROR_GROUPSET_NOT_FOUND: u32 = 5992;
pub const ERROR_GROUPSET_CANT_PROVIDE: u32 = 5993;
pub const ERROR_CLUSTER_FAULT_DOMAIN_PARENT_NOT_FOUND: u32 = 5994;
pub const ERROR_CLUSTER_FAULT_DOMAIN_INVALID_HIERARCHY: u32 = 5995;
pub const ERROR_CLUSTER_FAULT_DOMAIN_FAILED_S2D_VALIDATION: u32 = 5996;
pub const ERROR_CLUSTER_FAULT_DOMAIN_S2D_CONNECTIVITY_LOSS: u32 = 5997;
pub const ERROR_CLUSTER_INVALID_INFRASTRUCTURE_FILESERVER_NAME: u32 = 5998;
pub const ERROR_CLUSTERSET_MANAGEMENT_CLUSTER_UNREACHABLE: u32 = 5999;
pub const ERROR_ENCRYPTION_FAILED: u32 = 6000;
pub const ERROR_DECRYPTION_FAILED: u32 = 6001;
pub const ERROR_FILE_ENCRYPTED: u32 = 6002;
pub const ERROR_NO_RECOVERY_POLICY: u32 = 6003;
pub const ERROR_NO_EFS: u32 = 6004;
pub const ERROR_WRONG_EFS: u32 = 6005;
pub const ERROR_NO_USER_KEYS: u32 = 6006;
pub const ERROR_FILE_NOT_ENCRYPTED: u32 = 6007;
pub const ERROR_NOT_EXPORT_FORMAT: u32 = 6008;
pub const ERROR_FILE_READ_ONLY: u32 = 6009;
pub const ERROR_DIR_EFS_DISALLOWED: u32 = 6010;
pub const ERROR_EFS_SERVER_NOT_TRUSTED: u32 = 6011;
pub const ERROR_BAD_RECOVERY_POLICY: u32 = 6012;
pub const ERROR_EFS_ALG_BLOB_TOO_BIG: u32 = 6013;
pub const ERROR_VOLUME_NOT_SUPPORT_EFS: u32 = 6014;
pub const ERROR_EFS_DISABLED: u32 = 6015;
pub const ERROR_EFS_VERSION_NOT_SUPPORT: u32 = 6016;
pub const ERROR_CS_ENCRYPTION_INVALID_SERVER_RESPONSE: u32 = 6017;
pub const ERROR_CS_ENCRYPTION_UNSUPPORTED_SERVER: u32 = 6018;
pub const ERROR_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE: u32 = 6019;
pub const ERROR_CS_ENCRYPTION_NEW_ENCRYPTED_FILE: u32 = 6020;
pub const ERROR_CS_ENCRYPTION_FILE_NOT_CSE: u32 = 6021;
pub const ERROR_ENCRYPTION_POLICY_DENIES_OPERATION: u32 = 6022;
pub const ERROR_WIP_ENCRYPTION_FAILED: u32 = 6023;
pub const ERROR_NO_BROWSER_SERVERS_FOUND: u32 = 6118;
pub const SCHED_E_SERVICE_NOT_LOCALSYSTEM: u32 = 6200;
pub const ERROR_LOG_SECTOR_INVALID: u32 = 6600;
pub const ERROR_LOG_SECTOR_PARITY_INVALID: u32 = 6601;
pub const ERROR_LOG_SECTOR_REMAPPED: u32 = 6602;
pub const ERROR_LOG_BLOCK_INCOMPLETE: u32 = 6603;
pub const ERROR_LOG_INVALID_RANGE: u32 = 6604;
pub const ERROR_LOG_BLOCKS_EXHAUSTED: u32 = 6605;
pub const ERROR_LOG_READ_CONTEXT_INVALID: u32 = 6606;
pub const ERROR_LOG_RESTART_INVALID: u32 = 6607;
pub const ERROR_LOG_BLOCK_VERSION: u32 = 6608;
pub const ERROR_LOG_BLOCK_INVALID: u32 = 6609;
pub const ERROR_LOG_READ_MODE_INVALID: u32 = 6610;
pub const ERROR_LOG_NO_RESTART: u32 = 6611;
pub const ERROR_LOG_METADATA_CORRUPT: u32 = 6612;
pub const ERROR_LOG_METADATA_INVALID: u32 = 6613;
pub const ERROR_LOG_METADATA_INCONSISTENT: u32 = 6614;
pub const ERROR_LOG_RESERVATION_INVALID: u32 = 6615;
pub const ERROR_LOG_CANT_DELETE: u32 = 6616;
pub const ERROR_LOG_CONTAINER_LIMIT_EXCEEDED: u32 = 6617;
pub const ERROR_LOG_START_OF_LOG: u32 = 6618;
pub const ERROR_LOG_POLICY_ALREADY_INSTALLED: u32 = 6619;
pub const ERROR_LOG_POLICY_NOT_INSTALLED: u32 = 6620;
pub const ERROR_LOG_POLICY_INVALID: u32 = 6621;
pub const ERROR_LOG_POLICY_CONFLICT: u32 = 6622;
pub const ERROR_LOG_PINNED_ARCHIVE_TAIL: u32 = 6623;
pub const ERROR_LOG_RECORD_NONEXISTENT: u32 = 6624;
pub const ERROR_LOG_RECORDS_RESERVED_INVALID: u32 = 6625;
pub const ERROR_LOG_SPACE_RESERVED_INVALID: u32 = 6626;
pub const ERROR_LOG_TAIL_INVALID: u32 = 6627;
pub const ERROR_LOG_FULL: u32 = 6628;
pub const ERROR_COULD_NOT_RESIZE_LOG: u32 = 6629;
pub const ERROR_LOG_MULTIPLEXED: u32 = 6630;
pub const ERROR_LOG_DEDICATED: u32 = 6631;
pub const ERROR_LOG_ARCHIVE_NOT_IN_PROGRESS: u32 = 6632;
pub const ERROR_LOG_ARCHIVE_IN_PROGRESS: u32 = 6633;
pub const ERROR_LOG_EPHEMERAL: u32 = 6634;
pub const ERROR_LOG_NOT_ENOUGH_CONTAINERS: u32 = 6635;
pub const ERROR_LOG_CLIENT_ALREADY_REGISTERED: u32 = 6636;
pub const ERROR_LOG_CLIENT_NOT_REGISTERED: u32 = 6637;
pub const ERROR_LOG_FULL_HANDLER_IN_PROGRESS: u32 = 6638;
pub const ERROR_LOG_CONTAINER_READ_FAILED: u32 = 6639;
pub const ERROR_LOG_CONTAINER_WRITE_FAILED: u32 = 6640;
pub const ERROR_LOG_CONTAINER_OPEN_FAILED: u32 = 6641;
pub const ERROR_LOG_CONTAINER_STATE_INVALID: u32 = 6642;
pub const ERROR_LOG_STATE_INVALID: u32 = 6643;
pub const ERROR_LOG_PINNED: u32 = 6644;
pub const ERROR_LOG_METADATA_FLUSH_FAILED: u32 = 6645;
pub const ERROR_LOG_INCONSISTENT_SECURITY: u32 = 6646;
pub const ERROR_LOG_APPENDED_FLUSH_FAILED: u32 = 6647;
pub const ERROR_LOG_PINNED_RESERVATION: u32 = 6648;
pub const ERROR_INVALID_TRANSACTION: u32 = 6700;
pub const ERROR_TRANSACTION_NOT_ACTIVE: u32 = 6701;
pub const ERROR_TRANSACTION_REQUEST_NOT_VALID: u32 = 6702;
pub const ERROR_TRANSACTION_NOT_REQUESTED: u32 = 6703;
pub const ERROR_TRANSACTION_ALREADY_ABORTED: u32 = 6704;
pub const ERROR_TRANSACTION_ALREADY_COMMITTED: u32 = 6705;
pub const ERROR_TM_INITIALIZATION_FAILED: u32 = 6706;
pub const ERROR_RESOURCEMANAGER_READ_ONLY: u32 = 6707;
pub const ERROR_TRANSACTION_NOT_JOINED: u32 = 6708;
pub const ERROR_TRANSACTION_SUPERIOR_EXISTS: u32 = 6709;
pub const ERROR_CRM_PROTOCOL_ALREADY_EXISTS: u32 = 6710;
pub const ERROR_TRANSACTION_PROPAGATION_FAILED: u32 = 6711;
pub const ERROR_CRM_PROTOCOL_NOT_FOUND: u32 = 6712;
pub const ERROR_TRANSACTION_INVALID_MARSHALL_BUFFER: u32 = 6713;
pub const ERROR_CURRENT_TRANSACTION_NOT_VALID: u32 = 6714;
pub const ERROR_TRANSACTION_NOT_FOUND: u32 = 6715;
pub const ERROR_RESOURCEMANAGER_NOT_FOUND: u32 = 6716;
pub const ERROR_ENLISTMENT_NOT_FOUND: u32 = 6717;
pub const ERROR_TRANSACTIONMANAGER_NOT_FOUND: u32 = 6718;
pub const ERROR_TRANSACTIONMANAGER_NOT_ONLINE: u32 = 6719;
pub const ERROR_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION: u32 = 6720;
pub const ERROR_TRANSACTION_NOT_ROOT: u32 = 6721;
pub const ERROR_TRANSACTION_OBJECT_EXPIRED: u32 = 6722;
pub const ERROR_TRANSACTION_RESPONSE_NOT_ENLISTED: u32 = 6723;
pub const ERROR_TRANSACTION_RECORD_TOO_LONG: u32 = 6724;
pub const ERROR_IMPLICIT_TRANSACTION_NOT_SUPPORTED: u32 = 6725;
pub const ERROR_TRANSACTION_INTEGRITY_VIOLATED: u32 = 6726;
pub const ERROR_TRANSACTIONMANAGER_IDENTITY_MISMATCH: u32 = 6727;
pub const ERROR_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT: u32 = 6728;
pub const ERROR_TRANSACTION_MUST_WRITETHROUGH: u32 = 6729;
pub const ERROR_TRANSACTION_NO_SUPERIOR: u32 = 6730;
pub const ERROR_HEURISTIC_DAMAGE_POSSIBLE: u32 = 6731;
pub const ERROR_TRANSACTIONAL_CONFLICT: u32 = 6800;
pub const ERROR_RM_NOT_ACTIVE: u32 = 6801;
pub const ERROR_RM_METADATA_CORRUPT: u32 = 6802;
pub const ERROR_DIRECTORY_NOT_RM: u32 = 6803;
pub const ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE: u32 = 6805;
pub const ERROR_LOG_RESIZE_INVALID_SIZE: u32 = 6806;
pub const ERROR_OBJECT_NO_LONGER_EXISTS: u32 = 6807;
pub const ERROR_STREAM_MINIVERSION_NOT_FOUND: u32 = 6808;
pub const ERROR_STREAM_MINIVERSION_NOT_VALID: u32 = 6809;
pub const ERROR_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION: u32 = 6810;
pub const ERROR_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT: u32 = 6811;
pub const ERROR_CANT_CREATE_MORE_STREAM_MINIVERSIONS: u32 = 6812;
pub const ERROR_REMOTE_FILE_VERSION_MISMATCH: u32 = 6814;
pub const ERROR_HANDLE_NO_LONGER_VALID: u32 = 6815;
pub const ERROR_NO_TXF_METADATA: u32 = 6816;
pub const ERROR_LOG_CORRUPTION_DETECTED: u32 = 6817;
pub const ERROR_CANT_RECOVER_WITH_HANDLE_OPEN: u32 = 6818;
pub const ERROR_RM_DISCONNECTED: u32 = 6819;
pub const ERROR_ENLISTMENT_NOT_SUPERIOR: u32 = 6820;
pub const ERROR_RECOVERY_NOT_NEEDED: u32 = 6821;
pub const ERROR_RM_ALREADY_STARTED: u32 = 6822;
pub const ERROR_FILE_IDENTITY_NOT_PERSISTENT: u32 = 6823;
pub const ERROR_CANT_BREAK_TRANSACTIONAL_DEPENDENCY: u32 = 6824;
pub const ERROR_CANT_CROSS_RM_BOUNDARY: u32 = 6825;
pub const ERROR_TXF_DIR_NOT_EMPTY: u32 = 6826;
pub const ERROR_INDOUBT_TRANSACTIONS_EXIST: u32 = 6827;
pub const ERROR_TM_VOLATILE: u32 = 6828;
pub const ERROR_ROLLBACK_TIMER_EXPIRED: u32 = 6829;
pub const ERROR_TXF_ATTRIBUTE_CORRUPT: u32 = 6830;
pub const ERROR_EFS_NOT_ALLOWED_IN_TRANSACTION: u32 = 6831;
pub const ERROR_TRANSACTIONAL_OPEN_NOT_ALLOWED: u32 = 6832;
pub const ERROR_LOG_GROWTH_FAILED: u32 = 6833;
pub const ERROR_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE: u32 = 6834;
pub const ERROR_TXF_METADATA_ALREADY_PRESENT: u32 = 6835;
pub const ERROR_TRANSACTION_SCOPE_CALLBACKS_NOT_SET: u32 = 6836;
pub const ERROR_TRANSACTION_REQUIRED_PROMOTION: u32 = 6837;
pub const ERROR_CANNOT_EXECUTE_FILE_IN_TRANSACTION: u32 = 6838;
pub const ERROR_TRANSACTIONS_NOT_FROZEN: u32 = 6839;
pub const ERROR_TRANSACTION_FREEZE_IN_PROGRESS: u32 = 6840;
pub const ERROR_NOT_SNAPSHOT_VOLUME: u32 = 6841;
pub const ERROR_NO_SAVEPOINT_WITH_OPEN_FILES: u32 = 6842;
pub const ERROR_DATA_LOST_REPAIR: u32 = 6843;
pub const ERROR_SPARSE_NOT_ALLOWED_IN_TRANSACTION: u32 = 6844;
pub const ERROR_TM_IDENTITY_MISMATCH: u32 = 6845;
pub const ERROR_FLOATED_SECTION: u32 = 6846;
pub const ERROR_CANNOT_ACCEPT_TRANSACTED_WORK: u32 = 6847;
pub const ERROR_CANNOT_ABORT_TRANSACTIONS: u32 = 6848;
pub const ERROR_BAD_CLUSTERS: u32 = 6849;
pub const ERROR_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION: u32 = 6850;
pub const ERROR_VOLUME_DIRTY: u32 = 6851;
pub const ERROR_NO_LINK_TRACKING_IN_TRANSACTION: u32 = 6852;
pub const ERROR_OPERATION_NOT_SUPPORTED_IN_TRANSACTION: u32 = 6853;
pub const ERROR_EXPIRED_HANDLE: u32 = 6854;
pub const ERROR_TRANSACTION_NOT_ENLISTED: u32 = 6855;
pub const ERROR_CTX_WINSTATION_NAME_INVALID: u32 = 7001;
pub const ERROR_CTX_INVALID_PD: u32 = 7002;
pub const ERROR_CTX_PD_NOT_FOUND: u32 = 7003;
pub const ERROR_CTX_WD_NOT_FOUND: u32 = 7004;
pub const ERROR_CTX_CANNOT_MAKE_EVENTLOG_ENTRY: u32 = 7005;
pub const ERROR_CTX_SERVICE_NAME_COLLISION: u32 = 7006;
pub const ERROR_CTX_CLOSE_PENDING: u32 = 7007;
pub const ERROR_CTX_NO_OUTBUF: u32 = 7008;
pub const ERROR_CTX_MODEM_INF_NOT_FOUND: u32 = 7009;
pub const ERROR_CTX_INVALID_MODEMNAME: u32 = 7010;
pub const ERROR_CTX_MODEM_RESPONSE_ERROR: u32 = 7011;
pub const ERROR_CTX_MODEM_RESPONSE_TIMEOUT: u32 = 7012;
pub const ERROR_CTX_MODEM_RESPONSE_NO_CARRIER: u32 = 7013;
pub const ERROR_CTX_MODEM_RESPONSE_NO_DIALTONE: u32 = 7014;
pub const ERROR_CTX_MODEM_RESPONSE_BUSY: u32 = 7015;
pub const ERROR_CTX_MODEM_RESPONSE_VOICE: u32 = 7016;
pub const ERROR_CTX_TD_ERROR: u32 = 7017;
pub const ERROR_CTX_WINSTATION_NOT_FOUND: u32 = 7022;
pub const ERROR_CTX_WINSTATION_ALREADY_EXISTS: u32 = 7023;
pub const ERROR_CTX_WINSTATION_BUSY: u32 = 7024;
pub const ERROR_CTX_BAD_VIDEO_MODE: u32 = 7025;
pub const ERROR_CTX_GRAPHICS_INVALID: u32 = 7035;
pub const ERROR_CTX_LOGON_DISABLED: u32 = 7037;
pub const ERROR_CTX_NOT_CONSOLE: u32 = 7038;
pub const ERROR_CTX_CLIENT_QUERY_TIMEOUT: u32 = 7040;
pub const ERROR_CTX_CONSOLE_DISCONNECT: u32 = 7041;
pub const ERROR_CTX_CONSOLE_CONNECT: u32 = 7042;
pub const ERROR_CTX_SHADOW_DENIED: u32 = 7044;
pub const ERROR_CTX_WINSTATION_ACCESS_DENIED: u32 = 7045;
pub const ERROR_CTX_INVALID_WD: u32 = 7049;
pub const ERROR_CTX_SHADOW_INVALID: u32 = 7050;
pub const ERROR_CTX_SHADOW_DISABLED: u32 = 7051;
pub const ERROR_CTX_CLIENT_LICENSE_IN_USE: u32 = 7052;
pub const ERROR_CTX_CLIENT_LICENSE_NOT_SET: u32 = 7053;
pub const ERROR_CTX_LICENSE_NOT_AVAILABLE: u32 = 7054;
pub const ERROR_CTX_LICENSE_CLIENT_INVALID: u32 = 7055;
pub const ERROR_CTX_LICENSE_EXPIRED: u32 = 7056;
pub const ERROR_CTX_SHADOW_NOT_RUNNING: u32 = 7057;
pub const ERROR_CTX_SHADOW_ENDED_BY_MODE_CHANGE: u32 = 7058;
pub const ERROR_ACTIVATION_COUNT_EXCEEDED: u32 = 7059;
pub const ERROR_CTX_WINSTATIONS_DISABLED: u32 = 7060;
pub const ERROR_CTX_ENCRYPTION_LEVEL_REQUIRED: u32 = 7061;
pub const ERROR_CTX_SESSION_IN_USE: u32 = 7062;
pub const ERROR_CTX_NO_FORCE_LOGOFF: u32 = 7063;
pub const ERROR_CTX_ACCOUNT_RESTRICTION: u32 = 7064;
pub const ERROR_RDP_PROTOCOL_ERROR: u32 = 7065;
pub const ERROR_CTX_CDM_CONNECT: u32 = 7066;
pub const ERROR_CTX_CDM_DISCONNECT: u32 = 7067;
pub const ERROR_CTX_SECURITY_LAYER_ERROR: u32 = 7068;
pub const ERROR_TS_INCOMPATIBLE_SESSIONS: u32 = 7069;
pub const ERROR_TS_VIDEO_SUBSYSTEM_ERROR: u32 = 7070;
pub const FRS_ERR_INVALID_API_SEQUENCE: u32 = 8001;
pub const FRS_ERR_STARTING_SERVICE: u32 = 8002;
pub const FRS_ERR_STOPPING_SERVICE: u32 = 8003;
pub const FRS_ERR_INTERNAL_API: u32 = 8004;
pub const FRS_ERR_INTERNAL: u32 = 8005;
pub const FRS_ERR_SERVICE_COMM: u32 = 8006;
pub const FRS_ERR_INSUFFICIENT_PRIV: u32 = 8007;
pub const FRS_ERR_AUTHENTICATION: u32 = 8008;
pub const FRS_ERR_PARENT_INSUFFICIENT_PRIV: u32 = 8009;
pub const FRS_ERR_PARENT_AUTHENTICATION: u32 = 8010;
pub const FRS_ERR_CHILD_TO_PARENT_COMM: u32 = 8011;
pub const FRS_ERR_PARENT_TO_CHILD_COMM: u32 = 8012;
pub const FRS_ERR_SYSVOL_POPULATE: u32 = 8013;
pub const FRS_ERR_SYSVOL_POPULATE_TIMEOUT: u32 = 8014;
pub const FRS_ERR_SYSVOL_IS_BUSY: u32 = 8015;
pub const FRS_ERR_SYSVOL_DEMOTE: u32 = 8016;
pub const FRS_ERR_INVALID_SERVICE_PARAMETER: u32 = 8017;
pub const DS_S_SUCCESS: u32 = 0;
pub const ERROR_DS_NOT_INSTALLED: u32 = 8200;
pub const ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY: u32 = 8201;
pub const ERROR_DS_NO_ATTRIBUTE_OR_VALUE: u32 = 8202;
pub const ERROR_DS_INVALID_ATTRIBUTE_SYNTAX: u32 = 8203;
pub const ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED: u32 = 8204;
pub const ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS: u32 = 8205;
pub const ERROR_DS_BUSY: u32 = 8206;
pub const ERROR_DS_UNAVAILABLE: u32 = 8207;
pub const ERROR_DS_NO_RIDS_ALLOCATED: u32 = 8208;
pub const ERROR_DS_NO_MORE_RIDS: u32 = 8209;
pub const ERROR_DS_INCORRECT_ROLE_OWNER: u32 = 8210;
pub const ERROR_DS_RIDMGR_INIT_ERROR: u32 = 8211;
pub const ERROR_DS_OBJ_CLASS_VIOLATION: u32 = 8212;
pub const ERROR_DS_CANT_ON_NON_LEAF: u32 = 8213;
pub const ERROR_DS_CANT_ON_RDN: u32 = 8214;
pub const ERROR_DS_CANT_MOD_OBJ_CLASS: u32 = 8215;
pub const ERROR_DS_CROSS_DOM_MOVE_ERROR: u32 = 8216;
pub const ERROR_DS_GC_NOT_AVAILABLE: u32 = 8217;
pub const ERROR_SHARED_POLICY: u32 = 8218;
pub const ERROR_POLICY_OBJECT_NOT_FOUND: u32 = 8219;
pub const ERROR_POLICY_ONLY_IN_DS: u32 = 8220;
pub const ERROR_PROMOTION_ACTIVE: u32 = 8221;
pub const ERROR_NO_PROMOTION_ACTIVE: u32 = 8222;
pub const ERROR_DS_OPERATIONS_ERROR: u32 = 8224;
pub const ERROR_DS_PROTOCOL_ERROR: u32 = 8225;
pub const ERROR_DS_TIMELIMIT_EXCEEDED: u32 = 8226;
pub const ERROR_DS_SIZELIMIT_EXCEEDED: u32 = 8227;
pub const ERROR_DS_ADMIN_LIMIT_EXCEEDED: u32 = 8228;
pub const ERROR_DS_COMPARE_FALSE: u32 = 8229;
pub const ERROR_DS_COMPARE_TRUE: u32 = 8230;
pub const ERROR_DS_AUTH_METHOD_NOT_SUPPORTED: u32 = 8231;
pub const ERROR_DS_STRONG_AUTH_REQUIRED: u32 = 8232;
pub const ERROR_DS_INAPPROPRIATE_AUTH: u32 = 8233;
pub const ERROR_DS_AUTH_UNKNOWN: u32 = 8234;
pub const ERROR_DS_REFERRAL: u32 = 8235;
pub const ERROR_DS_UNAVAILABLE_CRIT_EXTENSION: u32 = 8236;
pub const ERROR_DS_CONFIDENTIALITY_REQUIRED: u32 = 8237;
pub const ERROR_DS_INAPPROPRIATE_MATCHING: u32 = 8238;
pub const ERROR_DS_CONSTRAINT_VIOLATION: u32 = 8239;
pub const ERROR_DS_NO_SUCH_OBJECT: u32 = 8240;
pub const ERROR_DS_ALIAS_PROBLEM: u32 = 8241;
pub const ERROR_DS_INVALID_DN_SYNTAX: u32 = 8242;
pub const ERROR_DS_IS_LEAF: u32 = 8243;
pub const ERROR_DS_ALIAS_DEREF_PROBLEM: u32 = 8244;
pub const ERROR_DS_UNWILLING_TO_PERFORM: u32 = 8245;
pub const ERROR_DS_LOOP_DETECT: u32 = 8246;
pub const ERROR_DS_NAMING_VIOLATION: u32 = 8247;
pub const ERROR_DS_OBJECT_RESULTS_TOO_LARGE: u32 = 8248;
pub const ERROR_DS_AFFECTS_MULTIPLE_DSAS: u32 = 8249;
pub const ERROR_DS_SERVER_DOWN: u32 = 8250;
pub const ERROR_DS_LOCAL_ERROR: u32 = 8251;
pub const ERROR_DS_ENCODING_ERROR: u32 = 8252;
pub const ERROR_DS_DECODING_ERROR: u32 = 8253;
pub const ERROR_DS_FILTER_UNKNOWN: u32 = 8254;
pub const ERROR_DS_PARAM_ERROR: u32 = 8255;
pub const ERROR_DS_NOT_SUPPORTED: u32 = 8256;
pub const ERROR_DS_NO_RESULTS_RETURNED: u32 = 8257;
pub const ERROR_DS_CONTROL_NOT_FOUND: u32 = 8258;
pub const ERROR_DS_CLIENT_LOOP: u32 = 8259;
pub const ERROR_DS_REFERRAL_LIMIT_EXCEEDED: u32 = 8260;
pub const ERROR_DS_SORT_CONTROL_MISSING: u32 = 8261;
pub const ERROR_DS_OFFSET_RANGE_ERROR: u32 = 8262;
pub const ERROR_DS_RIDMGR_DISABLED: u32 = 8263;
pub const ERROR_DS_ROOT_MUST_BE_NC: u32 = 8301;
pub const ERROR_DS_ADD_REPLICA_INHIBITED: u32 = 8302;
pub const ERROR_DS_ATT_NOT_DEF_IN_SCHEMA: u32 = 8303;
pub const ERROR_DS_MAX_OBJ_SIZE_EXCEEDED: u32 = 8304;
pub const ERROR_DS_OBJ_STRING_NAME_EXISTS: u32 = 8305;
pub const ERROR_DS_NO_RDN_DEFINED_IN_SCHEMA: u32 = 8306;
pub const ERROR_DS_RDN_DOESNT_MATCH_SCHEMA: u32 = 8307;
pub const ERROR_DS_NO_REQUESTED_ATTS_FOUND: u32 = 8308;
pub const ERROR_DS_USER_BUFFER_TO_SMALL: u32 = 8309;
pub const ERROR_DS_ATT_IS_NOT_ON_OBJ: u32 = 8310;
pub const ERROR_DS_ILLEGAL_MOD_OPERATION: u32 = 8311;
pub const ERROR_DS_OBJ_TOO_LARGE: u32 = 8312;
pub const ERROR_DS_BAD_INSTANCE_TYPE: u32 = 8313;
pub const ERROR_DS_MASTERDSA_REQUIRED: u32 = 8314;
pub const ERROR_DS_OBJECT_CLASS_REQUIRED: u32 = 8315;
pub const ERROR_DS_MISSING_REQUIRED_ATT: u32 = 8316;
pub const ERROR_DS_ATT_NOT_DEF_FOR_CLASS: u32 = 8317;
pub const ERROR_DS_ATT_ALREADY_EXISTS: u32 = 8318;
pub const ERROR_DS_CANT_ADD_ATT_VALUES: u32 = 8320;
pub const ERROR_DS_SINGLE_VALUE_CONSTRAINT: u32 = 8321;
pub const ERROR_DS_RANGE_CONSTRAINT: u32 = 8322;
pub const ERROR_DS_ATT_VAL_ALREADY_EXISTS: u32 = 8323;
pub const ERROR_DS_CANT_REM_MISSING_ATT: u32 = 8324;
pub const ERROR_DS_CANT_REM_MISSING_ATT_VAL: u32 = 8325;
pub const ERROR_DS_ROOT_CANT_BE_SUBREF: u32 = 8326;
pub const ERROR_DS_NO_CHAINING: u32 = 8327;
pub const ERROR_DS_NO_CHAINED_EVAL: u32 = 8328;
pub const ERROR_DS_NO_PARENT_OBJECT: u32 = 8329;
pub const ERROR_DS_PARENT_IS_AN_ALIAS: u32 = 8330;
pub const ERROR_DS_CANT_MIX_MASTER_AND_REPS: u32 = 8331;
pub const ERROR_DS_CHILDREN_EXIST: u32 = 8332;
pub const ERROR_DS_OBJ_NOT_FOUND: u32 = 8333;
pub const ERROR_DS_ALIASED_OBJ_MISSING: u32 = 8334;
pub const ERROR_DS_BAD_NAME_SYNTAX: u32 = 8335;
pub const ERROR_DS_ALIAS_POINTS_TO_ALIAS: u32 = 8336;
pub const ERROR_DS_CANT_DEREF_ALIAS: u32 = 8337;
pub const ERROR_DS_OUT_OF_SCOPE: u32 = 8338;
pub const ERROR_DS_OBJECT_BEING_REMOVED: u32 = 8339;
pub const ERROR_DS_CANT_DELETE_DSA_OBJ: u32 = 8340;
pub const ERROR_DS_GENERIC_ERROR: u32 = 8341;
pub const ERROR_DS_DSA_MUST_BE_INT_MASTER: u32 = 8342;
pub const ERROR_DS_CLASS_NOT_DSA: u32 = 8343;
pub const ERROR_DS_INSUFF_ACCESS_RIGHTS: u32 = 8344;
pub const ERROR_DS_ILLEGAL_SUPERIOR: u32 = 8345;
pub const ERROR_DS_ATTRIBUTE_OWNED_BY_SAM: u32 = 8346;
pub const ERROR_DS_NAME_TOO_MANY_PARTS: u32 = 8347;
pub const ERROR_DS_NAME_TOO_LONG: u32 = 8348;
pub const ERROR_DS_NAME_VALUE_TOO_LONG: u32 = 8349;
pub const ERROR_DS_NAME_UNPARSEABLE: u32 = 8350;
pub const ERROR_DS_NAME_TYPE_UNKNOWN: u32 = 8351;
pub const ERROR_DS_NOT_AN_OBJECT: u32 = 8352;
pub const ERROR_DS_SEC_DESC_TOO_SHORT: u32 = 8353;
pub const ERROR_DS_SEC_DESC_INVALID: u32 = 8354;
pub const ERROR_DS_NO_DELETED_NAME: u32 = 8355;
pub const ERROR_DS_SUBREF_MUST_HAVE_PARENT: u32 = 8356;
pub const ERROR_DS_NCNAME_MUST_BE_NC: u32 = 8357;
pub const ERROR_DS_CANT_ADD_SYSTEM_ONLY: u32 = 8358;
pub const ERROR_DS_CLASS_MUST_BE_CONCRETE: u32 = 8359;
pub const ERROR_DS_INVALID_DMD: u32 = 8360;
pub const ERROR_DS_OBJ_GUID_EXISTS: u32 = 8361;
pub const ERROR_DS_NOT_ON_BACKLINK: u32 = 8362;
pub const ERROR_DS_NO_CROSSREF_FOR_NC: u32 = 8363;
pub const ERROR_DS_SHUTTING_DOWN: u32 = 8364;
pub const ERROR_DS_UNKNOWN_OPERATION: u32 = 8365;
pub const ERROR_DS_INVALID_ROLE_OWNER: u32 = 8366;
pub const ERROR_DS_COULDNT_CONTACT_FSMO: u32 = 8367;
pub const ERROR_DS_CROSS_NC_DN_RENAME: u32 = 8368;
pub const ERROR_DS_CANT_MOD_SYSTEM_ONLY: u32 = 8369;
pub const ERROR_DS_REPLICATOR_ONLY: u32 = 8370;
pub const ERROR_DS_OBJ_CLASS_NOT_DEFINED: u32 = 8371;
pub const ERROR_DS_OBJ_CLASS_NOT_SUBCLASS: u32 = 8372;
pub const ERROR_DS_NAME_REFERENCE_INVALID: u32 = 8373;
pub const ERROR_DS_CROSS_REF_EXISTS: u32 = 8374;
pub const ERROR_DS_CANT_DEL_MASTER_CROSSREF: u32 = 8375;
pub const ERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD: u32 = 8376;
pub const ERROR_DS_NOTIFY_FILTER_TOO_COMPLEX: u32 = 8377;
pub const ERROR_DS_DUP_RDN: u32 = 8378;
pub const ERROR_DS_DUP_OID: u32 = 8379;
pub const ERROR_DS_DUP_MAPI_ID: u32 = 8380;
pub const ERROR_DS_DUP_SCHEMA_ID_GUID: u32 = 8381;
pub const ERROR_DS_DUP_LDAP_DISPLAY_NAME: u32 = 8382;
pub const ERROR_DS_SEMANTIC_ATT_TEST: u32 = 8383;
pub const ERROR_DS_SYNTAX_MISMATCH: u32 = 8384;
pub const ERROR_DS_EXISTS_IN_MUST_HAVE: u32 = 8385;
pub const ERROR_DS_EXISTS_IN_MAY_HAVE: u32 = 8386;
pub const ERROR_DS_NONEXISTENT_MAY_HAVE: u32 = 8387;
pub const ERROR_DS_NONEXISTENT_MUST_HAVE: u32 = 8388;
pub const ERROR_DS_AUX_CLS_TEST_FAIL: u32 = 8389;
pub const ERROR_DS_NONEXISTENT_POSS_SUP: u32 = 8390;
pub const ERROR_DS_SUB_CLS_TEST_FAIL: u32 = 8391;
pub const ERROR_DS_BAD_RDN_ATT_ID_SYNTAX: u32 = 8392;
pub const ERROR_DS_EXISTS_IN_AUX_CLS: u32 = 8393;
pub const ERROR_DS_EXISTS_IN_SUB_CLS: u32 = 8394;
pub const ERROR_DS_EXISTS_IN_POSS_SUP: u32 = 8395;
pub const ERROR_DS_RECALCSCHEMA_FAILED: u32 = 8396;
pub const ERROR_DS_TREE_DELETE_NOT_FINISHED: u32 = 8397;
pub const ERROR_DS_CANT_DELETE: u32 = 8398;
pub const ERROR_DS_ATT_SCHEMA_REQ_ID: u32 = 8399;
pub const ERROR_DS_BAD_ATT_SCHEMA_SYNTAX: u32 = 8400;
pub const ERROR_DS_CANT_CACHE_ATT: u32 = 8401;
pub const ERROR_DS_CANT_CACHE_CLASS: u32 = 8402;
pub const ERROR_DS_CANT_REMOVE_ATT_CACHE: u32 = 8403;
pub const ERROR_DS_CANT_REMOVE_CLASS_CACHE: u32 = 8404;
pub const ERROR_DS_CANT_RETRIEVE_DN: u32 = 8405;
pub const ERROR_DS_MISSING_SUPREF: u32 = 8406;
pub const ERROR_DS_CANT_RETRIEVE_INSTANCE: u32 = 8407;
pub const ERROR_DS_CODE_INCONSISTENCY: u32 = 8408;
pub const ERROR_DS_DATABASE_ERROR: u32 = 8409;
pub const ERROR_DS_GOVERNSID_MISSING: u32 = 8410;
pub const ERROR_DS_MISSING_EXPECTED_ATT: u32 = 8411;
pub const ERROR_DS_NCNAME_MISSING_CR_REF: u32 = 8412;
pub const ERROR_DS_SECURITY_CHECKING_ERROR: u32 = 8413;
pub const ERROR_DS_SCHEMA_NOT_LOADED: u32 = 8414;
pub const ERROR_DS_SCHEMA_ALLOC_FAILED: u32 = 8415;
pub const ERROR_DS_ATT_SCHEMA_REQ_SYNTAX: u32 = 8416;
pub const ERROR_DS_GCVERIFY_ERROR: u32 = 8417;
pub const ERROR_DS_DRA_SCHEMA_MISMATCH: u32 = 8418;
pub const ERROR_DS_CANT_FIND_DSA_OBJ: u32 = 8419;
pub const ERROR_DS_CANT_FIND_EXPECTED_NC: u32 = 8420;
pub const ERROR_DS_CANT_FIND_NC_IN_CACHE: u32 = 8421;
pub const ERROR_DS_CANT_RETRIEVE_CHILD: u32 = 8422;
pub const ERROR_DS_SECURITY_ILLEGAL_MODIFY: u32 = 8423;
pub const ERROR_DS_CANT_REPLACE_HIDDEN_REC: u32 = 8424;
pub const ERROR_DS_BAD_HIERARCHY_FILE: u32 = 8425;
pub const ERROR_DS_BUILD_HIERARCHY_TABLE_FAILED: u32 = 8426;
pub const ERROR_DS_CONFIG_PARAM_MISSING: u32 = 8427;
pub const ERROR_DS_COUNTING_AB_INDICES_FAILED: u32 = 8428;
pub const ERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED: u32 = 8429;
pub const ERROR_DS_INTERNAL_FAILURE: u32 = 8430;
pub const ERROR_DS_UNKNOWN_ERROR: u32 = 8431;
pub const ERROR_DS_ROOT_REQUIRES_CLASS_TOP: u32 = 8432;
pub const ERROR_DS_REFUSING_FSMO_ROLES: u32 = 8433;
pub const ERROR_DS_MISSING_FSMO_SETTINGS: u32 = 8434;
pub const ERROR_DS_UNABLE_TO_SURRENDER_ROLES: u32 = 8435;
pub const ERROR_DS_DRA_GENERIC: u32 = 8436;
pub const ERROR_DS_DRA_INVALID_PARAMETER: u32 = 8437;
pub const ERROR_DS_DRA_BUSY: u32 = 8438;
pub const ERROR_DS_DRA_BAD_DN: u32 = 8439;
pub const ERROR_DS_DRA_BAD_NC: u32 = 8440;
pub const ERROR_DS_DRA_DN_EXISTS: u32 = 8441;
pub const ERROR_DS_DRA_INTERNAL_ERROR: u32 = 8442;
pub const ERROR_DS_DRA_INCONSISTENT_DIT: u32 = 8443;
pub const ERROR_DS_DRA_CONNECTION_FAILED: u32 = 8444;
pub const ERROR_DS_DRA_BAD_INSTANCE_TYPE: u32 = 8445;
pub const ERROR_DS_DRA_OUT_OF_MEM: u32 = 8446;
pub const ERROR_DS_DRA_MAIL_PROBLEM: u32 = 8447;
pub const ERROR_DS_DRA_REF_ALREADY_EXISTS: u32 = 8448;
pub const ERROR_DS_DRA_REF_NOT_FOUND: u32 = 8449;
pub const ERROR_DS_DRA_OBJ_IS_REP_SOURCE: u32 = 8450;
pub const ERROR_DS_DRA_DB_ERROR: u32 = 8451;
pub const ERROR_DS_DRA_NO_REPLICA: u32 = 8452;
pub const ERROR_DS_DRA_ACCESS_DENIED: u32 = 8453;
pub const ERROR_DS_DRA_NOT_SUPPORTED: u32 = 8454;
pub const ERROR_DS_DRA_RPC_CANCELLED: u32 = 8455;
pub const ERROR_DS_DRA_SOURCE_DISABLED: u32 = 8456;
pub const ERROR_DS_DRA_SINK_DISABLED: u32 = 8457;
pub const ERROR_DS_DRA_NAME_COLLISION: u32 = 8458;
pub const ERROR_DS_DRA_SOURCE_REINSTALLED: u32 = 8459;
pub const ERROR_DS_DRA_MISSING_PARENT: u32 = 8460;
pub const ERROR_DS_DRA_PREEMPTED: u32 = 8461;
pub const ERROR_DS_DRA_ABANDON_SYNC: u32 = 8462;
pub const ERROR_DS_DRA_SHUTDOWN: u32 = 8463;
pub const ERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET: u32 = 8464;
pub const ERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA: u32 = 8465;
pub const ERROR_DS_DRA_EXTN_CONNECTION_FAILED: u32 = 8466;
pub const ERROR_DS_INSTALL_SCHEMA_MISMATCH: u32 = 8467;
pub const ERROR_DS_DUP_LINK_ID: u32 = 8468;
pub const ERROR_DS_NAME_ERROR_RESOLVING: u32 = 8469;
pub const ERROR_DS_NAME_ERROR_NOT_FOUND: u32 = 8470;
pub const ERROR_DS_NAME_ERROR_NOT_UNIQUE: u32 = 8471;
pub const ERROR_DS_NAME_ERROR_NO_MAPPING: u32 = 8472;
pub const ERROR_DS_NAME_ERROR_DOMAIN_ONLY: u32 = 8473;
pub const ERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING: u32 = 8474;
pub const ERROR_DS_CONSTRUCTED_ATT_MOD: u32 = 8475;
pub const ERROR_DS_WRONG_OM_OBJ_CLASS: u32 = 8476;
pub const ERROR_DS_DRA_REPL_PENDING: u32 = 8477;
pub const ERROR_DS_DS_REQUIRED: u32 = 8478;
pub const ERROR_DS_INVALID_LDAP_DISPLAY_NAME: u32 = 8479;
pub const ERROR_DS_NON_BASE_SEARCH: u32 = 8480;
pub const ERROR_DS_CANT_RETRIEVE_ATTS: u32 = 8481;
pub const ERROR_DS_BACKLINK_WITHOUT_LINK: u32 = 8482;
pub const ERROR_DS_EPOCH_MISMATCH: u32 = 8483;
pub const ERROR_DS_SRC_NAME_MISMATCH: u32 = 8484;
pub const ERROR_DS_SRC_AND_DST_NC_IDENTICAL: u32 = 8485;
pub const ERROR_DS_DST_NC_MISMATCH: u32 = 8486;
pub const ERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC: u32 = 8487;
pub const ERROR_DS_SRC_GUID_MISMATCH: u32 = 8488;
pub const ERROR_DS_CANT_MOVE_DELETED_OBJECT: u32 = 8489;
pub const ERROR_DS_PDC_OPERATION_IN_PROGRESS: u32 = 8490;
pub const ERROR_DS_CROSS_DOMAIN_CLEANUP_REQD: u32 = 8491;
pub const ERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION: u32 = 8492;
pub const ERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS: u32 = 8493;
pub const ERROR_DS_NC_MUST_HAVE_NC_PARENT: u32 = 8494;
pub const ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE: u32 = 8495;
pub const ERROR_DS_DST_DOMAIN_NOT_NATIVE: u32 = 8496;
pub const ERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER: u32 = 8497;
pub const ERROR_DS_CANT_MOVE_ACCOUNT_GROUP: u32 = 8498;
pub const ERROR_DS_CANT_MOVE_RESOURCE_GROUP: u32 = 8499;
pub const ERROR_DS_INVALID_SEARCH_FLAG: u32 = 8500;
pub const ERROR_DS_NO_TREE_DELETE_ABOVE_NC: u32 = 8501;
pub const ERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE: u32 = 8502;
pub const ERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE: u32 = 8503;
pub const ERROR_DS_SAM_INIT_FAILURE: u32 = 8504;
pub const ERROR_DS_SENSITIVE_GROUP_VIOLATION: u32 = 8505;
pub const ERROR_DS_CANT_MOD_PRIMARYGROUPID: u32 = 8506;
pub const ERROR_DS_ILLEGAL_BASE_SCHEMA_MOD: u32 = 8507;
pub const ERROR_DS_NONSAFE_SCHEMA_CHANGE: u32 = 8508;
pub const ERROR_DS_SCHEMA_UPDATE_DISALLOWED: u32 = 8509;
pub const ERROR_DS_CANT_CREATE_UNDER_SCHEMA: u32 = 8510;
pub const ERROR_DS_INSTALL_NO_SRC_SCH_VERSION: u32 = 8511;
pub const ERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE: u32 = 8512;
pub const ERROR_DS_INVALID_GROUP_TYPE: u32 = 8513;
pub const ERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN: u32 = 8514;
pub const ERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN: u32 = 8515;
pub const ERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER: u32 = 8516;
pub const ERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER: u32 = 8517;
pub const ERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER: u32 = 8518;
pub const ERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER: u32 = 8519;
pub const ERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER: u32 = 8520;
pub const ERROR_DS_HAVE_PRIMARY_MEMBERS: u32 = 8521;
pub const ERROR_DS_STRING_SD_CONVERSION_FAILED: u32 = 8522;
pub const ERROR_DS_NAMING_MASTER_GC: u32 = 8523;
pub const ERROR_DS_DNS_LOOKUP_FAILURE: u32 = 8524;
pub const ERROR_DS_COULDNT_UPDATE_SPNS: u32 = 8525;
pub const ERROR_DS_CANT_RETRIEVE_SD: u32 = 8526;
pub const ERROR_DS_KEY_NOT_UNIQUE: u32 = 8527;
pub const ERROR_DS_WRONG_LINKED_ATT_SYNTAX: u32 = 8528;
pub const ERROR_DS_SAM_NEED_BOOTKEY_PASSWORD: u32 = 8529;
pub const ERROR_DS_SAM_NEED_BOOTKEY_FLOPPY: u32 = 8530;
pub const ERROR_DS_CANT_START: u32 = 8531;
pub const ERROR_DS_INIT_FAILURE: u32 = 8532;
pub const ERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION: u32 = 8533;
pub const ERROR_DS_SOURCE_DOMAIN_IN_FOREST: u32 = 8534;
pub const ERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST: u32 = 8535;
pub const ERROR_DS_DESTINATION_AUDITING_NOT_ENABLED: u32 = 8536;
pub const ERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN: u32 = 8537;
pub const ERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER: u32 = 8538;
pub const ERROR_DS_SRC_SID_EXISTS_IN_FOREST: u32 = 8539;
pub const ERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH: u32 = 8540;
pub const ERROR_SAM_INIT_FAILURE: u32 = 8541;
pub const ERROR_DS_DRA_SCHEMA_INFO_SHIP: u32 = 8542;
pub const ERROR_DS_DRA_SCHEMA_CONFLICT: u32 = 8543;
pub const ERROR_DS_DRA_EARLIER_SCHEMA_CONFLICT: u32 = 8544;
pub const ERROR_DS_DRA_OBJ_NC_MISMATCH: u32 = 8545;
pub const ERROR_DS_NC_STILL_HAS_DSAS: u32 = 8546;
pub const ERROR_DS_GC_REQUIRED: u32 = 8547;
pub const ERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY: u32 = 8548;
pub const ERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS: u32 = 8549;
pub const ERROR_DS_CANT_ADD_TO_GC: u32 = 8550;
pub const ERROR_DS_NO_CHECKPOINT_WITH_PDC: u32 = 8551;
pub const ERROR_DS_SOURCE_AUDITING_NOT_ENABLED: u32 = 8552;
pub const ERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC: u32 = 8553;
pub const ERROR_DS_INVALID_NAME_FOR_SPN: u32 = 8554;
pub const ERROR_DS_FILTER_USES_CONTRUCTED_ATTRS: u32 = 8555;
pub const ERROR_DS_UNICODEPWD_NOT_IN_QUOTES: u32 = 8556;
pub const ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED: u32 = 8557;
pub const ERROR_DS_MUST_BE_RUN_ON_DST_DC: u32 = 8558;
pub const ERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER: u32 = 8559;
pub const ERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ: u32 = 8560;
pub const ERROR_DS_INIT_FAILURE_CONSOLE: u32 = 8561;
pub const ERROR_DS_SAM_INIT_FAILURE_CONSOLE: u32 = 8562;
pub const ERROR_DS_FOREST_VERSION_TOO_HIGH: u32 = 8563;
pub const ERROR_DS_DOMAIN_VERSION_TOO_HIGH: u32 = 8564;
pub const ERROR_DS_FOREST_VERSION_TOO_LOW: u32 = 8565;
pub const ERROR_DS_DOMAIN_VERSION_TOO_LOW: u32 = 8566;
pub const ERROR_DS_INCOMPATIBLE_VERSION: u32 = 8567;
pub const ERROR_DS_LOW_DSA_VERSION: u32 = 8568;
pub const ERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN: u32 = 8569;
pub const ERROR_DS_NOT_SUPPORTED_SORT_ORDER: u32 = 8570;
pub const ERROR_DS_NAME_NOT_UNIQUE: u32 = 8571;
pub const ERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4: u32 = 8572;
pub const ERROR_DS_OUT_OF_VERSION_STORE: u32 = 8573;
pub const ERROR_DS_INCOMPATIBLE_CONTROLS_USED: u32 = 8574;
pub const ERROR_DS_NO_REF_DOMAIN: u32 = 8575;
pub const ERROR_DS_RESERVED_LINK_ID: u32 = 8576;
pub const ERROR_DS_LINK_ID_NOT_AVAILABLE: u32 = 8577;
pub const ERROR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER: u32 = 8578;
pub const ERROR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE: u32 = 8579;
pub const ERROR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC: u32 = 8580;
pub const ERROR_DS_MODIFYDN_DISALLOWED_BY_FLAG: u32 = 8581;
pub const ERROR_DS_MODIFYDN_WRONG_GRANDPARENT: u32 = 8582;
pub const ERROR_DS_NAME_ERROR_TRUST_REFERRAL: u32 = 8583;
pub const ERROR_NOT_SUPPORTED_ON_STANDARD_SERVER: u32 = 8584;
pub const ERROR_DS_CANT_ACCESS_REMOTE_PART_OF_AD: u32 = 8585;
pub const ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2: u32 = 8586;
pub const ERROR_DS_THREAD_LIMIT_EXCEEDED: u32 = 8587;
pub const ERROR_DS_NOT_CLOSEST: u32 = 8588;
pub const ERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF: u32 = 8589;
pub const ERROR_DS_SINGLE_USER_MODE_FAILED: u32 = 8590;
pub const ERROR_DS_NTDSCRIPT_SYNTAX_ERROR: u32 = 8591;
pub const ERROR_DS_NTDSCRIPT_PROCESS_ERROR: u32 = 8592;
pub const ERROR_DS_DIFFERENT_REPL_EPOCHS: u32 = 8593;
pub const ERROR_DS_DRS_EXTENSIONS_CHANGED: u32 = 8594;
pub const ERROR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR: u32 = 8595;
pub const ERROR_DS_NO_MSDS_INTID: u32 = 8596;
pub const ERROR_DS_DUP_MSDS_INTID: u32 = 8597;
pub const ERROR_DS_EXISTS_IN_RDNATTID: u32 = 8598;
pub const ERROR_DS_AUTHORIZATION_FAILED: u32 = 8599;
pub const ERROR_DS_INVALID_SCRIPT: u32 = 8600;
pub const ERROR_DS_REMOTE_CROSSREF_OP_FAILED: u32 = 8601;
pub const ERROR_DS_CROSS_REF_BUSY: u32 = 8602;
pub const ERROR_DS_CANT_DERIVE_SPN_FOR_DELETED_DOMAIN: u32 = 8603;
pub const ERROR_DS_CANT_DEMOTE_WITH_WRITEABLE_NC: u32 = 8604;
pub const ERROR_DS_DUPLICATE_ID_FOUND: u32 = 8605;
pub const ERROR_DS_INSUFFICIENT_ATTR_TO_CREATE_OBJECT: u32 = 8606;
pub const ERROR_DS_GROUP_CONVERSION_ERROR: u32 = 8607;
pub const ERROR_DS_CANT_MOVE_APP_BASIC_GROUP: u32 = 8608;
pub const ERROR_DS_CANT_MOVE_APP_QUERY_GROUP: u32 = 8609;
pub const ERROR_DS_ROLE_NOT_VERIFIED: u32 = 8610;
pub const ERROR_DS_WKO_CONTAINER_CANNOT_BE_SPECIAL: u32 = 8611;
pub const ERROR_DS_DOMAIN_RENAME_IN_PROGRESS: u32 = 8612;
pub const ERROR_DS_EXISTING_AD_CHILD_NC: u32 = 8613;
pub const ERROR_DS_REPL_LIFETIME_EXCEEDED: u32 = 8614;
pub const ERROR_DS_DISALLOWED_IN_SYSTEM_CONTAINER: u32 = 8615;
pub const ERROR_DS_LDAP_SEND_QUEUE_FULL: u32 = 8616;
pub const ERROR_DS_DRA_OUT_SCHEDULE_WINDOW: u32 = 8617;
pub const ERROR_DS_POLICY_NOT_KNOWN: u32 = 8618;
pub const ERROR_NO_SITE_SETTINGS_OBJECT: u32 = 8619;
pub const ERROR_NO_SECRETS: u32 = 8620;
pub const ERROR_NO_WRITABLE_DC_FOUND: u32 = 8621;
pub const ERROR_DS_NO_SERVER_OBJECT: u32 = 8622;
pub const ERROR_DS_NO_NTDSA_OBJECT: u32 = 8623;
pub const ERROR_DS_NON_ASQ_SEARCH: u32 = 8624;
pub const ERROR_DS_AUDIT_FAILURE: u32 = 8625;
pub const ERROR_DS_INVALID_SEARCH_FLAG_SUBTREE: u32 = 8626;
pub const ERROR_DS_INVALID_SEARCH_FLAG_TUPLE: u32 = 8627;
pub const ERROR_DS_HIERARCHY_TABLE_TOO_DEEP: u32 = 8628;
pub const ERROR_DS_DRA_CORRUPT_UTD_VECTOR: u32 = 8629;
pub const ERROR_DS_DRA_SECRETS_DENIED: u32 = 8630;
pub const ERROR_DS_RESERVED_MAPI_ID: u32 = 8631;
pub const ERROR_DS_MAPI_ID_NOT_AVAILABLE: u32 = 8632;
pub const ERROR_DS_DRA_MISSING_KRBTGT_SECRET: u32 = 8633;
pub const ERROR_DS_DOMAIN_NAME_EXISTS_IN_FOREST: u32 = 8634;
pub const ERROR_DS_FLAT_NAME_EXISTS_IN_FOREST: u32 = 8635;
pub const ERROR_INVALID_USER_PRINCIPAL_NAME: u32 = 8636;
pub const ERROR_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS: u32 = 8637;
pub const ERROR_DS_OID_NOT_FOUND: u32 = 8638;
pub const ERROR_DS_DRA_RECYCLED_TARGET: u32 = 8639;
pub const ERROR_DS_DISALLOWED_NC_REDIRECT: u32 = 8640;
pub const ERROR_DS_HIGH_ADLDS_FFL: u32 = 8641;
pub const ERROR_DS_HIGH_DSA_VERSION: u32 = 8642;
pub const ERROR_DS_LOW_ADLDS_FFL: u32 = 8643;
pub const ERROR_DOMAIN_SID_SAME_AS_LOCAL_WORKSTATION: u32 = 8644;
pub const ERROR_DS_UNDELETE_SAM_VALIDATION_FAILED: u32 = 8645;
pub const ERROR_INCORRECT_ACCOUNT_TYPE: u32 = 8646;
pub const ERROR_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST: u32 = 8647;
pub const ERROR_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST: u32 = 8648;
pub const ERROR_DS_MISSING_FOREST_TRUST: u32 = 8649;
pub const ERROR_DS_VALUE_KEY_NOT_UNIQUE: u32 = 8650;
pub const DNS_ERROR_RESPONSE_CODES_BASE: u32 = 9000;
pub const DNS_ERROR_RCODE_NO_ERROR: u32 = 0;
pub const DNS_ERROR_MASK: u32 = 9000;
pub const DNS_ERROR_RCODE_FORMAT_ERROR: u32 = 9001;
pub const DNS_ERROR_RCODE_SERVER_FAILURE: u32 = 9002;
pub const DNS_ERROR_RCODE_NAME_ERROR: u32 = 9003;
pub const DNS_ERROR_RCODE_NOT_IMPLEMENTED: u32 = 9004;
pub const DNS_ERROR_RCODE_REFUSED: u32 = 9005;
pub const DNS_ERROR_RCODE_YXDOMAIN: u32 = 9006;
pub const DNS_ERROR_RCODE_YXRRSET: u32 = 9007;
pub const DNS_ERROR_RCODE_NXRRSET: u32 = 9008;
pub const DNS_ERROR_RCODE_NOTAUTH: u32 = 9009;
pub const DNS_ERROR_RCODE_NOTZONE: u32 = 9010;
pub const DNS_ERROR_RCODE_BADSIG: u32 = 9016;
pub const DNS_ERROR_RCODE_BADKEY: u32 = 9017;
pub const DNS_ERROR_RCODE_BADTIME: u32 = 9018;
pub const DNS_ERROR_RCODE_LAST: u32 = 9018;
pub const DNS_ERROR_DNSSEC_BASE: u32 = 9100;
pub const DNS_ERROR_KEYMASTER_REQUIRED: u32 = 9101;
pub const DNS_ERROR_NOT_ALLOWED_ON_SIGNED_ZONE: u32 = 9102;
pub const DNS_ERROR_NSEC3_INCOMPATIBLE_WITH_RSA_SHA1: u32 = 9103;
pub const DNS_ERROR_NOT_ENOUGH_SIGNING_KEY_DESCRIPTORS: u32 = 9104;
pub const DNS_ERROR_UNSUPPORTED_ALGORITHM: u32 = 9105;
pub const DNS_ERROR_INVALID_KEY_SIZE: u32 = 9106;
pub const DNS_ERROR_SIGNING_KEY_NOT_ACCESSIBLE: u32 = 9107;
pub const DNS_ERROR_KSP_DOES_NOT_SUPPORT_PROTECTION: u32 = 9108;
pub const DNS_ERROR_UNEXPECTED_DATA_PROTECTION_ERROR: u32 = 9109;
pub const DNS_ERROR_UNEXPECTED_CNG_ERROR: u32 = 9110;
pub const DNS_ERROR_UNKNOWN_SIGNING_PARAMETER_VERSION: u32 = 9111;
pub const DNS_ERROR_KSP_NOT_ACCESSIBLE: u32 = 9112;
pub const DNS_ERROR_TOO_MANY_SKDS: u32 = 9113;
pub const DNS_ERROR_INVALID_ROLLOVER_PERIOD: u32 = 9114;
pub const DNS_ERROR_INVALID_INITIAL_ROLLOVER_OFFSET: u32 = 9115;
pub const DNS_ERROR_ROLLOVER_IN_PROGRESS: u32 = 9116;
pub const DNS_ERROR_STANDBY_KEY_NOT_PRESENT: u32 = 9117;
pub const DNS_ERROR_NOT_ALLOWED_ON_ZSK: u32 = 9118;
pub const DNS_ERROR_NOT_ALLOWED_ON_ACTIVE_SKD: u32 = 9119;
pub const DNS_ERROR_ROLLOVER_ALREADY_QUEUED: u32 = 9120;
pub const DNS_ERROR_NOT_ALLOWED_ON_UNSIGNED_ZONE: u32 = 9121;
pub const DNS_ERROR_BAD_KEYMASTER: u32 = 9122;
pub const DNS_ERROR_INVALID_SIGNATURE_VALIDITY_PERIOD: u32 = 9123;
pub const DNS_ERROR_INVALID_NSEC3_ITERATION_COUNT: u32 = 9124;
pub const DNS_ERROR_DNSSEC_IS_DISABLED: u32 = 9125;
pub const DNS_ERROR_INVALID_XML: u32 = 9126;
pub const DNS_ERROR_NO_VALID_TRUST_ANCHORS: u32 = 9127;
pub const DNS_ERROR_ROLLOVER_NOT_POKEABLE: u32 = 9128;
pub const DNS_ERROR_NSEC3_NAME_COLLISION: u32 = 9129;
pub const DNS_ERROR_NSEC_INCOMPATIBLE_WITH_NSEC3_RSA_SHA1: u32 = 9130;
pub const DNS_ERROR_PACKET_FMT_BASE: u32 = 9500;
pub const DNS_INFO_NO_RECORDS: u32 = 9501;
pub const DNS_ERROR_BAD_PACKET: u32 = 9502;
pub const DNS_ERROR_NO_PACKET: u32 = 9503;
pub const DNS_ERROR_RCODE: u32 = 9504;
pub const DNS_ERROR_UNSECURE_PACKET: u32 = 9505;
pub const DNS_STATUS_PACKET_UNSECURE: u32 = 9505;
pub const DNS_REQUEST_PENDING: u32 = 9506;
pub const DNS_ERROR_NO_MEMORY: u32 = 14;
pub const DNS_ERROR_INVALID_NAME: u32 = 123;
pub const DNS_ERROR_INVALID_DATA: u32 = 13;
pub const DNS_ERROR_GENERAL_API_BASE: u32 = 9550;
pub const DNS_ERROR_INVALID_TYPE: u32 = 9551;
pub const DNS_ERROR_INVALID_IP_ADDRESS: u32 = 9552;
pub const DNS_ERROR_INVALID_PROPERTY: u32 = 9553;
pub const DNS_ERROR_TRY_AGAIN_LATER: u32 = 9554;
pub const DNS_ERROR_NOT_UNIQUE: u32 = 9555;
pub const DNS_ERROR_NON_RFC_NAME: u32 = 9556;
pub const DNS_STATUS_FQDN: u32 = 9557;
pub const DNS_STATUS_DOTTED_NAME: u32 = 9558;
pub const DNS_STATUS_SINGLE_PART_NAME: u32 = 9559;
pub const DNS_ERROR_INVALID_NAME_CHAR: u32 = 9560;
pub const DNS_ERROR_NUMERIC_NAME: u32 = 9561;
pub const DNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER: u32 = 9562;
pub const DNS_ERROR_NOT_ALLOWED_UNDER_DELEGATION: u32 = 9563;
pub const DNS_ERROR_CANNOT_FIND_ROOT_HINTS: u32 = 9564;
pub const DNS_ERROR_INCONSISTENT_ROOT_HINTS: u32 = 9565;
pub const DNS_ERROR_DWORD_VALUE_TOO_SMALL: u32 = 9566;
pub const DNS_ERROR_DWORD_VALUE_TOO_LARGE: u32 = 9567;
pub const DNS_ERROR_BACKGROUND_LOADING: u32 = 9568;
pub const DNS_ERROR_NOT_ALLOWED_ON_RODC: u32 = 9569;
pub const DNS_ERROR_NOT_ALLOWED_UNDER_DNAME: u32 = 9570;
pub const DNS_ERROR_DELEGATION_REQUIRED: u32 = 9571;
pub const DNS_ERROR_INVALID_POLICY_TABLE: u32 = 9572;
pub const DNS_ERROR_ADDRESS_REQUIRED: u32 = 9573;
pub const DNS_ERROR_ZONE_BASE: u32 = 9600;
pub const DNS_ERROR_ZONE_DOES_NOT_EXIST: u32 = 9601;
pub const DNS_ERROR_NO_ZONE_INFO: u32 = 9602;
pub const DNS_ERROR_INVALID_ZONE_OPERATION: u32 = 9603;
pub const DNS_ERROR_ZONE_CONFIGURATION_ERROR: u32 = 9604;
pub const DNS_ERROR_ZONE_HAS_NO_SOA_RECORD: u32 = 9605;
pub const DNS_ERROR_ZONE_HAS_NO_NS_RECORDS: u32 = 9606;
pub const DNS_ERROR_ZONE_LOCKED: u32 = 9607;
pub const DNS_ERROR_ZONE_CREATION_FAILED: u32 = 9608;
pub const DNS_ERROR_ZONE_ALREADY_EXISTS: u32 = 9609;
pub const DNS_ERROR_AUTOZONE_ALREADY_EXISTS: u32 = 9610;
pub const DNS_ERROR_INVALID_ZONE_TYPE: u32 = 9611;
pub const DNS_ERROR_SECONDARY_REQUIRES_MASTER_IP: u32 = 9612;
pub const DNS_ERROR_ZONE_NOT_SECONDARY: u32 = 9613;
pub const DNS_ERROR_NEED_SECONDARY_ADDRESSES: u32 = 9614;
pub const DNS_ERROR_WINS_INIT_FAILED: u32 = 9615;
pub const DNS_ERROR_NEED_WINS_SERVERS: u32 = 9616;
pub const DNS_ERROR_NBSTAT_INIT_FAILED: u32 = 9617;
pub const DNS_ERROR_SOA_DELETE_INVALID: u32 = 9618;
pub const DNS_ERROR_FORWARDER_ALREADY_EXISTS: u32 = 9619;
pub const DNS_ERROR_ZONE_REQUIRES_MASTER_IP: u32 = 9620;
pub const DNS_ERROR_ZONE_IS_SHUTDOWN: u32 = 9621;
pub const DNS_ERROR_ZONE_LOCKED_FOR_SIGNING: u32 = 9622;
pub const DNS_ERROR_DATAFILE_BASE: u32 = 9650;
pub const DNS_ERROR_PRIMARY_REQUIRES_DATAFILE: u32 = 9651;
pub const DNS_ERROR_INVALID_DATAFILE_NAME: u32 = 9652;
pub const DNS_ERROR_DATAFILE_OPEN_FAILURE: u32 = 9653;
pub const DNS_ERROR_FILE_WRITEBACK_FAILED: u32 = 9654;
pub const DNS_ERROR_DATAFILE_PARSING: u32 = 9655;
pub const DNS_ERROR_DATABASE_BASE: u32 = 9700;
pub const DNS_ERROR_RECORD_DOES_NOT_EXIST: u32 = 9701;
pub const DNS_ERROR_RECORD_FORMAT: u32 = 9702;
pub const DNS_ERROR_NODE_CREATION_FAILED: u32 = 9703;
pub const DNS_ERROR_UNKNOWN_RECORD_TYPE: u32 = 9704;
pub const DNS_ERROR_RECORD_TIMED_OUT: u32 = 9705;
pub const DNS_ERROR_NAME_NOT_IN_ZONE: u32 = 9706;
pub const DNS_ERROR_CNAME_LOOP: u32 = 9707;
pub const DNS_ERROR_NODE_IS_CNAME: u32 = 9708;
pub const DNS_ERROR_CNAME_COLLISION: u32 = 9709;
pub const DNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT: u32 = 9710;
pub const DNS_ERROR_RECORD_ALREADY_EXISTS: u32 = 9711;
pub const DNS_ERROR_SECONDARY_DATA: u32 = 9712;
pub const DNS_ERROR_NO_CREATE_CACHE_DATA: u32 = 9713;
pub const DNS_ERROR_NAME_DOES_NOT_EXIST: u32 = 9714;
pub const DNS_WARNING_PTR_CREATE_FAILED: u32 = 9715;
pub const DNS_WARNING_DOMAIN_UNDELETED: u32 = 9716;
pub const DNS_ERROR_DS_UNAVAILABLE: u32 = 9717;
pub const DNS_ERROR_DS_ZONE_ALREADY_EXISTS: u32 = 9718;
pub const DNS_ERROR_NO_BOOTFILE_IF_DS_ZONE: u32 = 9719;
pub const DNS_ERROR_NODE_IS_DNAME: u32 = 9720;
pub const DNS_ERROR_DNAME_COLLISION: u32 = 9721;
pub const DNS_ERROR_ALIAS_LOOP: u32 = 9722;
pub const DNS_ERROR_OPERATION_BASE: u32 = 9750;
pub const DNS_INFO_AXFR_COMPLETE: u32 = 9751;
pub const DNS_ERROR_AXFR: u32 = 9752;
pub const DNS_INFO_ADDED_LOCAL_WINS: u32 = 9753;
pub const DNS_ERROR_SECURE_BASE: u32 = 9800;
pub const DNS_STATUS_CONTINUE_NEEDED: u32 = 9801;
pub const DNS_ERROR_SETUP_BASE: u32 = 9850;
pub const DNS_ERROR_NO_TCPIP: u32 = 9851;
pub const DNS_ERROR_NO_DNS_SERVERS: u32 = 9852;
pub const DNS_ERROR_DP_BASE: u32 = 9900;
pub const DNS_ERROR_DP_DOES_NOT_EXIST: u32 = 9901;
pub const DNS_ERROR_DP_ALREADY_EXISTS: u32 = 9902;
pub const DNS_ERROR_DP_NOT_ENLISTED: u32 = 9903;
pub const DNS_ERROR_DP_ALREADY_ENLISTED: u32 = 9904;
pub const DNS_ERROR_DP_NOT_AVAILABLE: u32 = 9905;
pub const DNS_ERROR_DP_FSMO_ERROR: u32 = 9906;
pub const DNS_ERROR_RRL_NOT_ENABLED: u32 = 9911;
pub const DNS_ERROR_RRL_INVALID_WINDOW_SIZE: u32 = 9912;
pub const DNS_ERROR_RRL_INVALID_IPV4_PREFIX: u32 = 9913;
pub const DNS_ERROR_RRL_INVALID_IPV6_PREFIX: u32 = 9914;
pub const DNS_ERROR_RRL_INVALID_TC_RATE: u32 = 9915;
pub const DNS_ERROR_RRL_INVALID_LEAK_RATE: u32 = 9916;
pub const DNS_ERROR_RRL_LEAK_RATE_LESSTHAN_TC_RATE: u32 = 9917;
pub const DNS_ERROR_VIRTUALIZATION_INSTANCE_ALREADY_EXISTS: u32 = 9921;
pub const DNS_ERROR_VIRTUALIZATION_INSTANCE_DOES_NOT_EXIST: u32 = 9922;
pub const DNS_ERROR_VIRTUALIZATION_TREE_LOCKED: u32 = 9923;
pub const DNS_ERROR_INVAILD_VIRTUALIZATION_INSTANCE_NAME: u32 = 9924;
pub const DNS_ERROR_DEFAULT_VIRTUALIZATION_INSTANCE: u32 = 9925;
pub const DNS_ERROR_ZONESCOPE_ALREADY_EXISTS: u32 = 9951;
pub const DNS_ERROR_ZONESCOPE_DOES_NOT_EXIST: u32 = 9952;
pub const DNS_ERROR_DEFAULT_ZONESCOPE: u32 = 9953;
pub const DNS_ERROR_INVALID_ZONESCOPE_NAME: u32 = 9954;
pub const DNS_ERROR_NOT_ALLOWED_WITH_ZONESCOPES: u32 = 9955;
pub const DNS_ERROR_LOAD_ZONESCOPE_FAILED: u32 = 9956;
pub const DNS_ERROR_ZONESCOPE_FILE_WRITEBACK_FAILED: u32 = 9957;
pub const DNS_ERROR_INVALID_SCOPE_NAME: u32 = 9958;
pub const DNS_ERROR_SCOPE_DOES_NOT_EXIST: u32 = 9959;
pub const DNS_ERROR_DEFAULT_SCOPE: u32 = 9960;
pub const DNS_ERROR_INVALID_SCOPE_OPERATION: u32 = 9961;
pub const DNS_ERROR_SCOPE_LOCKED: u32 = 9962;
pub const DNS_ERROR_SCOPE_ALREADY_EXISTS: u32 = 9963;
pub const DNS_ERROR_POLICY_ALREADY_EXISTS: u32 = 9971;
pub const DNS_ERROR_POLICY_DOES_NOT_EXIST: u32 = 9972;
pub const DNS_ERROR_POLICY_INVALID_CRITERIA: u32 = 9973;
pub const DNS_ERROR_POLICY_INVALID_SETTINGS: u32 = 9974;
pub const DNS_ERROR_CLIENT_SUBNET_IS_ACCESSED: u32 = 9975;
pub const DNS_ERROR_CLIENT_SUBNET_DOES_NOT_EXIST: u32 = 9976;
pub const DNS_ERROR_CLIENT_SUBNET_ALREADY_EXISTS: u32 = 9977;
pub const DNS_ERROR_SUBNET_DOES_NOT_EXIST: u32 = 9978;
pub const DNS_ERROR_SUBNET_ALREADY_EXISTS: u32 = 9979;
pub const DNS_ERROR_POLICY_LOCKED: u32 = 9980;
pub const DNS_ERROR_POLICY_INVALID_WEIGHT: u32 = 9981;
pub const DNS_ERROR_POLICY_INVALID_NAME: u32 = 9982;
pub const DNS_ERROR_POLICY_MISSING_CRITERIA: u32 = 9983;
pub const DNS_ERROR_INVALID_CLIENT_SUBNET_NAME: u32 = 9984;
pub const DNS_ERROR_POLICY_PROCESSING_ORDER_INVALID: u32 = 9985;
pub const DNS_ERROR_POLICY_SCOPE_MISSING: u32 = 9986;
pub const DNS_ERROR_POLICY_SCOPE_NOT_ALLOWED: u32 = 9987;
pub const DNS_ERROR_SERVERSCOPE_IS_REFERENCED: u32 = 9988;
pub const DNS_ERROR_ZONESCOPE_IS_REFERENCED: u32 = 9989;
pub const DNS_ERROR_POLICY_INVALID_CRITERIA_CLIENT_SUBNET: u32 = 9990;
pub const DNS_ERROR_POLICY_INVALID_CRITERIA_TRANSPORT_PROTOCOL: u32 = 9991;
pub const DNS_ERROR_POLICY_INVALID_CRITERIA_NETWORK_PROTOCOL: u32 = 9992;
pub const DNS_ERROR_POLICY_INVALID_CRITERIA_INTERFACE: u32 = 9993;
pub const DNS_ERROR_POLICY_INVALID_CRITERIA_FQDN: u32 = 9994;
pub const DNS_ERROR_POLICY_INVALID_CRITERIA_QUERY_TYPE: u32 = 9995;
pub const DNS_ERROR_POLICY_INVALID_CRITERIA_TIME_OF_DAY: u32 = 9996;
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_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 WSA_SECURE_HOST_NOT_FOUND: u32 = 11032;
pub const WSA_IPSEC_NAME_POLICY_ERROR: u32 = 11033;
pub const ERROR_IPSEC_QM_POLICY_EXISTS: u32 = 13000;
pub const ERROR_IPSEC_QM_POLICY_NOT_FOUND: u32 = 13001;
pub const ERROR_IPSEC_QM_POLICY_IN_USE: u32 = 13002;
pub const ERROR_IPSEC_MM_POLICY_EXISTS: u32 = 13003;
pub const ERROR_IPSEC_MM_POLICY_NOT_FOUND: u32 = 13004;
pub const ERROR_IPSEC_MM_POLICY_IN_USE: u32 = 13005;
pub const ERROR_IPSEC_MM_FILTER_EXISTS: u32 = 13006;
pub const ERROR_IPSEC_MM_FILTER_NOT_FOUND: u32 = 13007;
pub const ERROR_IPSEC_TRANSPORT_FILTER_EXISTS: u32 = 13008;
pub const ERROR_IPSEC_TRANSPORT_FILTER_NOT_FOUND: u32 = 13009;
pub const ERROR_IPSEC_MM_AUTH_EXISTS: u32 = 13010;
pub const ERROR_IPSEC_MM_AUTH_NOT_FOUND: u32 = 13011;
pub const ERROR_IPSEC_MM_AUTH_IN_USE: u32 = 13012;
pub const ERROR_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND: u32 = 13013;
pub const ERROR_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND: u32 = 13014;
pub const ERROR_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND: u32 = 13015;
pub const ERROR_IPSEC_TUNNEL_FILTER_EXISTS: u32 = 13016;
pub const ERROR_IPSEC_TUNNEL_FILTER_NOT_FOUND: u32 = 13017;
pub const ERROR_IPSEC_MM_FILTER_PENDING_DELETION: u32 = 13018;
pub const ERROR_IPSEC_TRANSPORT_FILTER_PENDING_DELETION: u32 = 13019;
pub const ERROR_IPSEC_TUNNEL_FILTER_PENDING_DELETION: u32 = 13020;
pub const ERROR_IPSEC_MM_POLICY_PENDING_DELETION: u32 = 13021;
pub const ERROR_IPSEC_MM_AUTH_PENDING_DELETION: u32 = 13022;
pub const ERROR_IPSEC_QM_POLICY_PENDING_DELETION: u32 = 13023;
pub const WARNING_IPSEC_MM_POLICY_PRUNED: u32 = 13024;
pub const WARNING_IPSEC_QM_POLICY_PRUNED: u32 = 13025;
pub const ERROR_IPSEC_IKE_NEG_STATUS_BEGIN: u32 = 13800;
pub const ERROR_IPSEC_IKE_AUTH_FAIL: u32 = 13801;
pub const ERROR_IPSEC_IKE_ATTRIB_FAIL: u32 = 13802;
pub const ERROR_IPSEC_IKE_NEGOTIATION_PENDING: u32 = 13803;
pub const ERROR_IPSEC_IKE_GENERAL_PROCESSING_ERROR: u32 = 13804;
pub const ERROR_IPSEC_IKE_TIMED_OUT: u32 = 13805;
pub const ERROR_IPSEC_IKE_NO_CERT: u32 = 13806;
pub const ERROR_IPSEC_IKE_SA_DELETED: u32 = 13807;
pub const ERROR_IPSEC_IKE_SA_REAPED: u32 = 13808;
pub const ERROR_IPSEC_IKE_MM_ACQUIRE_DROP: u32 = 13809;
pub const ERROR_IPSEC_IKE_QM_ACQUIRE_DROP: u32 = 13810;
pub const ERROR_IPSEC_IKE_QUEUE_DROP_MM: u32 = 13811;
pub const ERROR_IPSEC_IKE_QUEUE_DROP_NO_MM: u32 = 13812;
pub const ERROR_IPSEC_IKE_DROP_NO_RESPONSE: u32 = 13813;
pub const ERROR_IPSEC_IKE_MM_DELAY_DROP: u32 = 13814;
pub const ERROR_IPSEC_IKE_QM_DELAY_DROP: u32 = 13815;
pub const ERROR_IPSEC_IKE_ERROR: u32 = 13816;
pub const ERROR_IPSEC_IKE_CRL_FAILED: u32 = 13817;
pub const ERROR_IPSEC_IKE_INVALID_KEY_USAGE: u32 = 13818;
pub const ERROR_IPSEC_IKE_INVALID_CERT_TYPE: u32 = 13819;
pub const ERROR_IPSEC_IKE_NO_PRIVATE_KEY: u32 = 13820;
pub const ERROR_IPSEC_IKE_SIMULTANEOUS_REKEY: u32 = 13821;
pub const ERROR_IPSEC_IKE_DH_FAIL: u32 = 13822;
pub const ERROR_IPSEC_IKE_CRITICAL_PAYLOAD_NOT_RECOGNIZED: u32 = 13823;
pub const ERROR_IPSEC_IKE_INVALID_HEADER: u32 = 13824;
pub const ERROR_IPSEC_IKE_NO_POLICY: u32 = 13825;
pub const ERROR_IPSEC_IKE_INVALID_SIGNATURE: u32 = 13826;
pub const ERROR_IPSEC_IKE_KERBEROS_ERROR: u32 = 13827;
pub const ERROR_IPSEC_IKE_NO_PUBLIC_KEY: u32 = 13828;
pub const ERROR_IPSEC_IKE_PROCESS_ERR: u32 = 13829;
pub const ERROR_IPSEC_IKE_PROCESS_ERR_SA: u32 = 13830;
pub const ERROR_IPSEC_IKE_PROCESS_ERR_PROP: u32 = 13831;
pub const ERROR_IPSEC_IKE_PROCESS_ERR_TRANS: u32 = 13832;
pub const ERROR_IPSEC_IKE_PROCESS_ERR_KE: u32 = 13833;
pub const ERROR_IPSEC_IKE_PROCESS_ERR_ID: u32 = 13834;
pub const ERROR_IPSEC_IKE_PROCESS_ERR_CERT: u32 = 13835;
pub const ERROR_IPSEC_IKE_PROCESS_ERR_CERT_REQ: u32 = 13836;
pub const ERROR_IPSEC_IKE_PROCESS_ERR_HASH: u32 = 13837;
pub const ERROR_IPSEC_IKE_PROCESS_ERR_SIG: u32 = 13838;
pub const ERROR_IPSEC_IKE_PROCESS_ERR_NONCE: u32 = 13839;
pub const ERROR_IPSEC_IKE_PROCESS_ERR_NOTIFY: u32 = 13840;
pub const ERROR_IPSEC_IKE_PROCESS_ERR_DELETE: u32 = 13841;
pub const ERROR_IPSEC_IKE_PROCESS_ERR_VENDOR: u32 = 13842;
pub const ERROR_IPSEC_IKE_INVALID_PAYLOAD: u32 = 13843;
pub const ERROR_IPSEC_IKE_LOAD_SOFT_SA: u32 = 13844;
pub const ERROR_IPSEC_IKE_SOFT_SA_TORN_DOWN: u32 = 13845;
pub const ERROR_IPSEC_IKE_INVALID_COOKIE: u32 = 13846;
pub const ERROR_IPSEC_IKE_NO_PEER_CERT: u32 = 13847;
pub const ERROR_IPSEC_IKE_PEER_CRL_FAILED: u32 = 13848;
pub const ERROR_IPSEC_IKE_POLICY_CHANGE: u32 = 13849;
pub const ERROR_IPSEC_IKE_NO_MM_POLICY: u32 = 13850;
pub const ERROR_IPSEC_IKE_NOTCBPRIV: u32 = 13851;
pub const ERROR_IPSEC_IKE_SECLOADFAIL: u32 = 13852;
pub const ERROR_IPSEC_IKE_FAILSSPINIT: u32 = 13853;
pub const ERROR_IPSEC_IKE_FAILQUERYSSP: u32 = 13854;
pub const ERROR_IPSEC_IKE_SRVACQFAIL: u32 = 13855;
pub const ERROR_IPSEC_IKE_SRVQUERYCRED: u32 = 13856;
pub const ERROR_IPSEC_IKE_GETSPIFAIL: u32 = 13857;
pub const ERROR_IPSEC_IKE_INVALID_FILTER: u32 = 13858;
pub const ERROR_IPSEC_IKE_OUT_OF_MEMORY: u32 = 13859;
pub const ERROR_IPSEC_IKE_ADD_UPDATE_KEY_FAILED: u32 = 13860;
pub const ERROR_IPSEC_IKE_INVALID_POLICY: u32 = 13861;
pub const ERROR_IPSEC_IKE_UNKNOWN_DOI: u32 = 13862;
pub const ERROR_IPSEC_IKE_INVALID_SITUATION: u32 = 13863;
pub const ERROR_IPSEC_IKE_DH_FAILURE: u32 = 13864;
pub const ERROR_IPSEC_IKE_INVALID_GROUP: u32 = 13865;
pub const ERROR_IPSEC_IKE_ENCRYPT: u32 = 13866;
pub const ERROR_IPSEC_IKE_DECRYPT: u32 = 13867;
pub const ERROR_IPSEC_IKE_POLICY_MATCH: u32 = 13868;
pub const ERROR_IPSEC_IKE_UNSUPPORTED_ID: u32 = 13869;
pub const ERROR_IPSEC_IKE_INVALID_HASH: u32 = 13870;
pub const ERROR_IPSEC_IKE_INVALID_HASH_ALG: u32 = 13871;
pub const ERROR_IPSEC_IKE_INVALID_HASH_SIZE: u32 = 13872;
pub const ERROR_IPSEC_IKE_INVALID_ENCRYPT_ALG: u32 = 13873;
pub const ERROR_IPSEC_IKE_INVALID_AUTH_ALG: u32 = 13874;
pub const ERROR_IPSEC_IKE_INVALID_SIG: u32 = 13875;
pub const ERROR_IPSEC_IKE_LOAD_FAILED: u32 = 13876;
pub const ERROR_IPSEC_IKE_RPC_DELETE: u32 = 13877;
pub const ERROR_IPSEC_IKE_BENIGN_REINIT: u32 = 13878;
pub const ERROR_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY: u32 = 13879;
pub const ERROR_IPSEC_IKE_INVALID_MAJOR_VERSION: u32 = 13880;
pub const ERROR_IPSEC_IKE_INVALID_CERT_KEYLEN: u32 = 13881;
pub const ERROR_IPSEC_IKE_MM_LIMIT: u32 = 13882;
pub const ERROR_IPSEC_IKE_NEGOTIATION_DISABLED: u32 = 13883;
pub const ERROR_IPSEC_IKE_QM_LIMIT: u32 = 13884;
pub const ERROR_IPSEC_IKE_MM_EXPIRED: u32 = 13885;
pub const ERROR_IPSEC_IKE_PEER_MM_ASSUMED_INVALID: u32 = 13886;
pub const ERROR_IPSEC_IKE_CERT_CHAIN_POLICY_MISMATCH: u32 = 13887;
pub const ERROR_IPSEC_IKE_UNEXPECTED_MESSAGE_ID: u32 = 13888;
pub const ERROR_IPSEC_IKE_INVALID_AUTH_PAYLOAD: u32 = 13889;
pub const ERROR_IPSEC_IKE_DOS_COOKIE_SENT: u32 = 13890;
pub const ERROR_IPSEC_IKE_SHUTTING_DOWN: u32 = 13891;
pub const ERROR_IPSEC_IKE_CGA_AUTH_FAILED: u32 = 13892;
pub const ERROR_IPSEC_IKE_PROCESS_ERR_NATOA: u32 = 13893;
pub const ERROR_IPSEC_IKE_INVALID_MM_FOR_QM: u32 = 13894;
pub const ERROR_IPSEC_IKE_QM_EXPIRED: u32 = 13895;
pub const ERROR_IPSEC_IKE_TOO_MANY_FILTERS: u32 = 13896;
pub const ERROR_IPSEC_IKE_NEG_STATUS_END: u32 = 13897;
pub const ERROR_IPSEC_IKE_KILL_DUMMY_NAP_TUNNEL: u32 = 13898;
pub const ERROR_IPSEC_IKE_INNER_IP_ASSIGNMENT_FAILURE: u32 = 13899;
pub const ERROR_IPSEC_IKE_REQUIRE_CP_PAYLOAD_MISSING: u32 = 13900;
pub const ERROR_IPSEC_KEY_MODULE_IMPERSONATION_NEGOTIATION_PENDING: u32 = 13901;
pub const ERROR_IPSEC_IKE_COEXISTENCE_SUPPRESS: u32 = 13902;
pub const ERROR_IPSEC_IKE_RATELIMIT_DROP: u32 = 13903;
pub const ERROR_IPSEC_IKE_PEER_DOESNT_SUPPORT_MOBIKE: u32 = 13904;
pub const ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE: u32 = 13905;
pub const ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_FAILURE: u32 = 13906;
pub const ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE_WITH_OPTIONAL_RETRY: u32 = 13907;
pub const ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_AND_CERTMAP_FAILURE: u32 = 13908;
pub const ERROR_IPSEC_IKE_NEG_STATUS_EXTENDED_END: u32 = 13909;
pub const ERROR_IPSEC_BAD_SPI: u32 = 13910;
pub const ERROR_IPSEC_SA_LIFETIME_EXPIRED: u32 = 13911;
pub const ERROR_IPSEC_WRONG_SA: u32 = 13912;
pub const ERROR_IPSEC_REPLAY_CHECK_FAILED: u32 = 13913;
pub const ERROR_IPSEC_INVALID_PACKET: u32 = 13914;
pub const ERROR_IPSEC_INTEGRITY_CHECK_FAILED: u32 = 13915;
pub const ERROR_IPSEC_CLEAR_TEXT_DROP: u32 = 13916;
pub const ERROR_IPSEC_AUTH_FIREWALL_DROP: u32 = 13917;
pub const ERROR_IPSEC_THROTTLE_DROP: u32 = 13918;
pub const ERROR_IPSEC_DOSP_BLOCK: u32 = 13925;
pub const ERROR_IPSEC_DOSP_RECEIVED_MULTICAST: u32 = 13926;
pub const ERROR_IPSEC_DOSP_INVALID_PACKET: u32 = 13927;
pub const ERROR_IPSEC_DOSP_STATE_LOOKUP_FAILED: u32 = 13928;
pub const ERROR_IPSEC_DOSP_MAX_ENTRIES: u32 = 13929;
pub const ERROR_IPSEC_DOSP_KEYMOD_NOT_ALLOWED: u32 = 13930;
pub const ERROR_IPSEC_DOSP_NOT_INSTALLED: u32 = 13931;
pub const ERROR_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES: u32 = 13932;
pub const ERROR_SXS_SECTION_NOT_FOUND: u32 = 14000;
pub const ERROR_SXS_CANT_GEN_ACTCTX: u32 = 14001;
pub const ERROR_SXS_INVALID_ACTCTXDATA_FORMAT: u32 = 14002;
pub const ERROR_SXS_ASSEMBLY_NOT_FOUND: u32 = 14003;
pub const ERROR_SXS_MANIFEST_FORMAT_ERROR: u32 = 14004;
pub const ERROR_SXS_MANIFEST_PARSE_ERROR: u32 = 14005;
pub const ERROR_SXS_ACTIVATION_CONTEXT_DISABLED: u32 = 14006;
pub const ERROR_SXS_KEY_NOT_FOUND: u32 = 14007;
pub const ERROR_SXS_VERSION_CONFLICT: u32 = 14008;
pub const ERROR_SXS_WRONG_SECTION_TYPE: u32 = 14009;
pub const ERROR_SXS_THREAD_QUERIES_DISABLED: u32 = 14010;
pub const ERROR_SXS_PROCESS_DEFAULT_ALREADY_SET: u32 = 14011;
pub const ERROR_SXS_UNKNOWN_ENCODING_GROUP: u32 = 14012;
pub const ERROR_SXS_UNKNOWN_ENCODING: u32 = 14013;
pub const ERROR_SXS_INVALID_XML_NAMESPACE_URI: u32 = 14014;
pub const ERROR_SXS_ROOT_MANIFEST_DEPENDENCY_NOT_INSTALLED: u32 = 14015;
pub const ERROR_SXS_LEAF_MANIFEST_DEPENDENCY_NOT_INSTALLED: u32 = 14016;
pub const ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE: u32 = 14017;
pub const ERROR_SXS_MANIFEST_MISSING_REQUIRED_DEFAULT_NAMESPACE: u32 = 14018;
pub const ERROR_SXS_MANIFEST_INVALID_REQUIRED_DEFAULT_NAMESPACE: u32 = 14019;
pub const ERROR_SXS_PRIVATE_MANIFEST_CROSS_PATH_WITH_REPARSE_POINT: u32 = 14020;
pub const ERROR_SXS_DUPLICATE_DLL_NAME: u32 = 14021;
pub const ERROR_SXS_DUPLICATE_WINDOWCLASS_NAME: u32 = 14022;
pub const ERROR_SXS_DUPLICATE_CLSID: u32 = 14023;
pub const ERROR_SXS_DUPLICATE_IID: u32 = 14024;
pub const ERROR_SXS_DUPLICATE_TLBID: u32 = 14025;
pub const ERROR_SXS_DUPLICATE_PROGID: u32 = 14026;
pub const ERROR_SXS_DUPLICATE_ASSEMBLY_NAME: u32 = 14027;
pub const ERROR_SXS_FILE_HASH_MISMATCH: u32 = 14028;
pub const ERROR_SXS_POLICY_PARSE_ERROR: u32 = 14029;
pub const ERROR_SXS_XML_E_MISSINGQUOTE: u32 = 14030;
pub const ERROR_SXS_XML_E_COMMENTSYNTAX: u32 = 14031;
pub const ERROR_SXS_XML_E_BADSTARTNAMECHAR: u32 = 14032;
pub const ERROR_SXS_XML_E_BADNAMECHAR: u32 = 14033;
pub const ERROR_SXS_XML_E_BADCHARINSTRING: u32 = 14034;
pub const ERROR_SXS_XML_E_XMLDECLSYNTAX: u32 = 14035;
pub const ERROR_SXS_XML_E_BADCHARDATA: u32 = 14036;
pub const ERROR_SXS_XML_E_MISSINGWHITESPACE: u32 = 14037;
pub const ERROR_SXS_XML_E_EXPECTINGTAGEND: u32 = 14038;
pub const ERROR_SXS_XML_E_MISSINGSEMICOLON: u32 = 14039;
pub const ERROR_SXS_XML_E_UNBALANCEDPAREN: u32 = 14040;
pub const ERROR_SXS_XML_E_INTERNALERROR: u32 = 14041;
pub const ERROR_SXS_XML_E_UNEXPECTED_WHITESPACE: u32 = 14042;
pub const ERROR_SXS_XML_E_INCOMPLETE_ENCODING: u32 = 14043;
pub const ERROR_SXS_XML_E_MISSING_PAREN: u32 = 14044;
pub const ERROR_SXS_XML_E_EXPECTINGCLOSEQUOTE: u32 = 14045;
pub const ERROR_SXS_XML_E_MULTIPLE_COLONS: u32 = 14046;
pub const ERROR_SXS_XML_E_INVALID_DECIMAL: u32 = 14047;
pub const ERROR_SXS_XML_E_INVALID_HEXIDECIMAL: u32 = 14048;
pub const ERROR_SXS_XML_E_INVALID_UNICODE: u32 = 14049;
pub const ERROR_SXS_XML_E_WHITESPACEORQUESTIONMARK: u32 = 14050;
pub const ERROR_SXS_XML_E_UNEXPECTEDENDTAG: u32 = 14051;
pub const ERROR_SXS_XML_E_UNCLOSEDTAG: u32 = 14052;
pub const ERROR_SXS_XML_E_DUPLICATEATTRIBUTE: u32 = 14053;
pub const ERROR_SXS_XML_E_MULTIPLEROOTS: u32 = 14054;
pub const ERROR_SXS_XML_E_INVALIDATROOTLEVEL: u32 = 14055;
pub const ERROR_SXS_XML_E_BADXMLDECL: u32 = 14056;
pub const ERROR_SXS_XML_E_MISSINGROOT: u32 = 14057;
pub const ERROR_SXS_XML_E_UNEXPECTEDEOF: u32 = 14058;
pub const ERROR_SXS_XML_E_BADPEREFINSUBSET: u32 = 14059;
pub const ERROR_SXS_XML_E_UNCLOSEDSTARTTAG: u32 = 14060;
pub const ERROR_SXS_XML_E_UNCLOSEDENDTAG: u32 = 14061;
pub const ERROR_SXS_XML_E_UNCLOSEDSTRING: u32 = 14062;
pub const ERROR_SXS_XML_E_UNCLOSEDCOMMENT: u32 = 14063;
pub const ERROR_SXS_XML_E_UNCLOSEDDECL: u32 = 14064;
pub const ERROR_SXS_XML_E_UNCLOSEDCDATA: u32 = 14065;
pub const ERROR_SXS_XML_E_RESERVEDNAMESPACE: u32 = 14066;
pub const ERROR_SXS_XML_E_INVALIDENCODING: u32 = 14067;
pub const ERROR_SXS_XML_E_INVALIDSWITCH: u32 = 14068;
pub const ERROR_SXS_XML_E_BADXMLCASE: u32 = 14069;
pub const ERROR_SXS_XML_E_INVALID_STANDALONE: u32 = 14070;
pub const ERROR_SXS_XML_E_UNEXPECTED_STANDALONE: u32 = 14071;
pub const ERROR_SXS_XML_E_INVALID_VERSION: u32 = 14072;
pub const ERROR_SXS_XML_E_MISSINGEQUALS: u32 = 14073;
pub const ERROR_SXS_PROTECTION_RECOVERY_FAILED: u32 = 14074;
pub const ERROR_SXS_PROTECTION_PUBLIC_KEY_TOO_SHORT: u32 = 14075;
pub const ERROR_SXS_PROTECTION_CATALOG_NOT_VALID: u32 = 14076;
pub const ERROR_SXS_UNTRANSLATABLE_HRESULT: u32 = 14077;
pub const ERROR_SXS_PROTECTION_CATALOG_FILE_MISSING: u32 = 14078;
pub const ERROR_SXS_MISSING_ASSEMBLY_IDENTITY_ATTRIBUTE: u32 = 14079;
pub const ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME: u32 = 14080;
pub const ERROR_SXS_ASSEMBLY_MISSING: u32 = 14081;
pub const ERROR_SXS_CORRUPT_ACTIVATION_STACK: u32 = 14082;
pub const ERROR_SXS_CORRUPTION: u32 = 14083;
pub const ERROR_SXS_EARLY_DEACTIVATION: u32 = 14084;
pub const ERROR_SXS_INVALID_DEACTIVATION: u32 = 14085;
pub const ERROR_SXS_MULTIPLE_DEACTIVATION: u32 = 14086;
pub const ERROR_SXS_PROCESS_TERMINATION_REQUESTED: u32 = 14087;
pub const ERROR_SXS_RELEASE_ACTIVATION_CONTEXT: u32 = 14088;
pub const ERROR_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY: u32 = 14089;
pub const ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE: u32 = 14090;
pub const ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME: u32 = 14091;
pub const ERROR_SXS_IDENTITY_DUPLICATE_ATTRIBUTE: u32 = 14092;
pub const ERROR_SXS_IDENTITY_PARSE_ERROR: u32 = 14093;
pub const ERROR_MALFORMED_SUBSTITUTION_STRING: u32 = 14094;
pub const ERROR_SXS_INCORRECT_PUBLIC_KEY_TOKEN: u32 = 14095;
pub const ERROR_UNMAPPED_SUBSTITUTION_STRING: u32 = 14096;
pub const ERROR_SXS_ASSEMBLY_NOT_LOCKED: u32 = 14097;
pub const ERROR_SXS_COMPONENT_STORE_CORRUPT: u32 = 14098;
pub const ERROR_ADVANCED_INSTALLER_FAILED: u32 = 14099;
pub const ERROR_XML_ENCODING_MISMATCH: u32 = 14100;
pub const ERROR_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT: u32 = 14101;
pub const ERROR_SXS_IDENTITIES_DIFFERENT: u32 = 14102;
pub const ERROR_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT: u32 = 14103;
pub const ERROR_SXS_FILE_NOT_PART_OF_ASSEMBLY: u32 = 14104;
pub const ERROR_SXS_MANIFEST_TOO_BIG: u32 = 14105;
pub const ERROR_SXS_SETTING_NOT_REGISTERED: u32 = 14106;
pub const ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE: u32 = 14107;
pub const ERROR_SMI_PRIMITIVE_INSTALLER_FAILED: u32 = 14108;
pub const ERROR_GENERIC_COMMAND_FAILED: u32 = 14109;
pub const ERROR_SXS_FILE_HASH_MISSING: u32 = 14110;
pub const ERROR_SXS_DUPLICATE_ACTIVATABLE_CLASS: u32 = 14111;
pub const ERROR_EVT_INVALID_CHANNEL_PATH: u32 = 15000;
pub const ERROR_EVT_INVALID_QUERY: u32 = 15001;
pub const ERROR_EVT_PUBLISHER_METADATA_NOT_FOUND: u32 = 15002;
pub const ERROR_EVT_EVENT_TEMPLATE_NOT_FOUND: u32 = 15003;
pub const ERROR_EVT_INVALID_PUBLISHER_NAME: u32 = 15004;
pub const ERROR_EVT_INVALID_EVENT_DATA: u32 = 15005;
pub const ERROR_EVT_CHANNEL_NOT_FOUND: u32 = 15007;
pub const ERROR_EVT_MALFORMED_XML_TEXT: u32 = 15008;
pub const ERROR_EVT_SUBSCRIPTION_TO_DIRECT_CHANNEL: u32 = 15009;
pub const ERROR_EVT_CONFIGURATION_ERROR: u32 = 15010;
pub const ERROR_EVT_QUERY_RESULT_STALE: u32 = 15011;
pub const ERROR_EVT_QUERY_RESULT_INVALID_POSITION: u32 = 15012;
pub const ERROR_EVT_NON_VALIDATING_MSXML: u32 = 15013;
pub const ERROR_EVT_FILTER_ALREADYSCOPED: u32 = 15014;
pub const ERROR_EVT_FILTER_NOTELTSET: u32 = 15015;
pub const ERROR_EVT_FILTER_INVARG: u32 = 15016;
pub const ERROR_EVT_FILTER_INVTEST: u32 = 15017;
pub const ERROR_EVT_FILTER_INVTYPE: u32 = 15018;
pub const ERROR_EVT_FILTER_PARSEERR: u32 = 15019;
pub const ERROR_EVT_FILTER_UNSUPPORTEDOP: u32 = 15020;
pub const ERROR_EVT_FILTER_UNEXPECTEDTOKEN: u32 = 15021;
pub const ERROR_EVT_INVALID_OPERATION_OVER_ENABLED_DIRECT_CHANNEL: u32 = 15022;
pub const ERROR_EVT_INVALID_CHANNEL_PROPERTY_VALUE: u32 = 15023;
pub const ERROR_EVT_INVALID_PUBLISHER_PROPERTY_VALUE: u32 = 15024;
pub const ERROR_EVT_CHANNEL_CANNOT_ACTIVATE: u32 = 15025;
pub const ERROR_EVT_FILTER_TOO_COMPLEX: u32 = 15026;
pub const ERROR_EVT_MESSAGE_NOT_FOUND: u32 = 15027;
pub const ERROR_EVT_MESSAGE_ID_NOT_FOUND: u32 = 15028;
pub const ERROR_EVT_UNRESOLVED_VALUE_INSERT: u32 = 15029;
pub const ERROR_EVT_UNRESOLVED_PARAMETER_INSERT: u32 = 15030;
pub const ERROR_EVT_MAX_INSERTS_REACHED: u32 = 15031;
pub const ERROR_EVT_EVENT_DEFINITION_NOT_FOUND: u32 = 15032;
pub const ERROR_EVT_MESSAGE_LOCALE_NOT_FOUND: u32 = 15033;
pub const ERROR_EVT_VERSION_TOO_OLD: u32 = 15034;
pub const ERROR_EVT_VERSION_TOO_NEW: u32 = 15035;
pub const ERROR_EVT_CANNOT_OPEN_CHANNEL_OF_QUERY: u32 = 15036;
pub const ERROR_EVT_PUBLISHER_DISABLED: u32 = 15037;
pub const ERROR_EVT_FILTER_OUT_OF_RANGE: u32 = 15038;
pub const ERROR_EC_SUBSCRIPTION_CANNOT_ACTIVATE: u32 = 15080;
pub const ERROR_EC_LOG_DISABLED: u32 = 15081;
pub const ERROR_EC_CIRCULAR_FORWARDING: u32 = 15082;
pub const ERROR_EC_CREDSTORE_FULL: u32 = 15083;
pub const ERROR_EC_CRED_NOT_FOUND: u32 = 15084;
pub const ERROR_EC_NO_ACTIVE_CHANNEL: u32 = 15085;
pub const ERROR_MUI_FILE_NOT_FOUND: u32 = 15100;
pub const ERROR_MUI_INVALID_FILE: u32 = 15101;
pub const ERROR_MUI_INVALID_RC_CONFIG: u32 = 15102;
pub const ERROR_MUI_INVALID_LOCALE_NAME: u32 = 15103;
pub const ERROR_MUI_INVALID_ULTIMATEFALLBACK_NAME: u32 = 15104;
pub const ERROR_MUI_FILE_NOT_LOADED: u32 = 15105;
pub const ERROR_RESOURCE_ENUM_USER_STOP: u32 = 15106;
pub const ERROR_MUI_INTLSETTINGS_UILANG_NOT_INSTALLED: u32 = 15107;
pub const ERROR_MUI_INTLSETTINGS_INVALID_LOCALE_NAME: u32 = 15108;
pub const ERROR_MRM_RUNTIME_NO_DEFAULT_OR_NEUTRAL_RESOURCE: u32 = 15110;
pub const ERROR_MRM_INVALID_PRICONFIG: u32 = 15111;
pub const ERROR_MRM_INVALID_FILE_TYPE: u32 = 15112;
pub const ERROR_MRM_UNKNOWN_QUALIFIER: u32 = 15113;
pub const ERROR_MRM_INVALID_QUALIFIER_VALUE: u32 = 15114;
pub const ERROR_MRM_NO_CANDIDATE: u32 = 15115;
pub const ERROR_MRM_NO_MATCH_OR_DEFAULT_CANDIDATE: u32 = 15116;
pub const ERROR_MRM_RESOURCE_TYPE_MISMATCH: u32 = 15117;
pub const ERROR_MRM_DUPLICATE_MAP_NAME: u32 = 15118;
pub const ERROR_MRM_DUPLICATE_ENTRY: u32 = 15119;
pub const ERROR_MRM_INVALID_RESOURCE_IDENTIFIER: u32 = 15120;
pub const ERROR_MRM_FILEPATH_TOO_LONG: u32 = 15121;
pub const ERROR_MRM_UNSUPPORTED_DIRECTORY_TYPE: u32 = 15122;
pub const ERROR_MRM_INVALID_PRI_FILE: u32 = 15126;
pub const ERROR_MRM_NAMED_RESOURCE_NOT_FOUND: u32 = 15127;
pub const ERROR_MRM_MAP_NOT_FOUND: u32 = 15135;
pub const ERROR_MRM_UNSUPPORTED_PROFILE_TYPE: u32 = 15136;
pub const ERROR_MRM_INVALID_QUALIFIER_OPERATOR: u32 = 15137;
pub const ERROR_MRM_INDETERMINATE_QUALIFIER_VALUE: u32 = 15138;
pub const ERROR_MRM_AUTOMERGE_ENABLED: u32 = 15139;
pub const ERROR_MRM_TOO_MANY_RESOURCES: u32 = 15140;
pub const ERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_MERGE: u32 = 15141;
pub const ERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_LOAD_UNLOAD_PRI_FILE: u32 = 15142;
pub const ERROR_MRM_NO_CURRENT_VIEW_ON_THREAD: u32 = 15143;
pub const ERROR_DIFFERENT_PROFILE_RESOURCE_MANAGER_EXIST: u32 = 15144;
pub const ERROR_OPERATION_NOT_ALLOWED_FROM_SYSTEM_COMPONENT: u32 = 15145;
pub const ERROR_MRM_DIRECT_REF_TO_NON_DEFAULT_RESOURCE: u32 = 15146;
pub const ERROR_MRM_GENERATION_COUNT_MISMATCH: u32 = 15147;
pub const ERROR_PRI_MERGE_VERSION_MISMATCH: u32 = 15148;
pub const ERROR_PRI_MERGE_MISSING_SCHEMA: u32 = 15149;
pub const ERROR_PRI_MERGE_LOAD_FILE_FAILED: u32 = 15150;
pub const ERROR_PRI_MERGE_ADD_FILE_FAILED: u32 = 15151;
pub const ERROR_PRI_MERGE_WRITE_FILE_FAILED: u32 = 15152;
pub const ERROR_PRI_MERGE_MULTIPLE_PACKAGE_FAMILIES_NOT_ALLOWED: u32 = 15153;
pub const ERROR_PRI_MERGE_MULTIPLE_MAIN_PACKAGES_NOT_ALLOWED: u32 = 15154;
pub const ERROR_PRI_MERGE_BUNDLE_PACKAGES_NOT_ALLOWED: u32 = 15155;
pub const ERROR_PRI_MERGE_MAIN_PACKAGE_REQUIRED: u32 = 15156;
pub const ERROR_PRI_MERGE_RESOURCE_PACKAGE_REQUIRED: u32 = 15157;
pub const ERROR_PRI_MERGE_INVALID_FILE_NAME: u32 = 15158;
pub const ERROR_MRM_PACKAGE_NOT_FOUND: u32 = 15159;
pub const ERROR_MRM_MISSING_DEFAULT_LANGUAGE: u32 = 15160;
pub const ERROR_MCA_INVALID_CAPABILITIES_STRING: u32 = 15200;
pub const ERROR_MCA_INVALID_VCP_VERSION: u32 = 15201;
pub const ERROR_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION: u32 = 15202;
pub const ERROR_MCA_MCCS_VERSION_MISMATCH: u32 = 15203;
pub const ERROR_MCA_UNSUPPORTED_MCCS_VERSION: u32 = 15204;
pub const ERROR_MCA_INTERNAL_ERROR: u32 = 15205;
pub const ERROR_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED: u32 = 15206;
pub const ERROR_MCA_UNSUPPORTED_COLOR_TEMPERATURE: u32 = 15207;
pub const ERROR_AMBIGUOUS_SYSTEM_DEVICE: u32 = 15250;
pub const ERROR_SYSTEM_DEVICE_NOT_FOUND: u32 = 15299;
pub const ERROR_HASH_NOT_SUPPORTED: u32 = 15300;
pub const ERROR_HASH_NOT_PRESENT: u32 = 15301;
pub const ERROR_SECONDARY_IC_PROVIDER_NOT_REGISTERED: u32 = 15321;
pub const ERROR_GPIO_CLIENT_INFORMATION_INVALID: u32 = 15322;
pub const ERROR_GPIO_VERSION_NOT_SUPPORTED: u32 = 15323;
pub const ERROR_GPIO_INVALID_REGISTRATION_PACKET: u32 = 15324;
pub const ERROR_GPIO_OPERATION_DENIED: u32 = 15325;
pub const ERROR_GPIO_INCOMPATIBLE_CONNECT_MODE: u32 = 15326;
pub const ERROR_GPIO_INTERRUPT_ALREADY_UNMASKED: u32 = 15327;
pub const ERROR_CANNOT_SWITCH_RUNLEVEL: u32 = 15400;
pub const ERROR_INVALID_RUNLEVEL_SETTING: u32 = 15401;
pub const ERROR_RUNLEVEL_SWITCH_TIMEOUT: u32 = 15402;
pub const ERROR_RUNLEVEL_SWITCH_AGENT_TIMEOUT: u32 = 15403;
pub const ERROR_RUNLEVEL_SWITCH_IN_PROGRESS: u32 = 15404;
pub const ERROR_SERVICES_FAILED_AUTOSTART: u32 = 15405;
pub const ERROR_COM_TASK_STOP_PENDING: u32 = 15501;
pub const ERROR_INSTALL_OPEN_PACKAGE_FAILED: u32 = 15600;
pub const ERROR_INSTALL_PACKAGE_NOT_FOUND: u32 = 15601;
pub const ERROR_INSTALL_INVALID_PACKAGE: u32 = 15602;
pub const ERROR_INSTALL_RESOLVE_DEPENDENCY_FAILED: u32 = 15603;
pub const ERROR_INSTALL_OUT_OF_DISK_SPACE: u32 = 15604;
pub const ERROR_INSTALL_NETWORK_FAILURE: u32 = 15605;
pub const ERROR_INSTALL_REGISTRATION_FAILURE: u32 = 15606;
pub const ERROR_INSTALL_DEREGISTRATION_FAILURE: u32 = 15607;
pub const ERROR_INSTALL_CANCEL: u32 = 15608;
pub const ERROR_INSTALL_FAILED: u32 = 15609;
pub const ERROR_REMOVE_FAILED: u32 = 15610;
pub const ERROR_PACKAGE_ALREADY_EXISTS: u32 = 15611;
pub const ERROR_NEEDS_REMEDIATION: u32 = 15612;
pub const ERROR_INSTALL_PREREQUISITE_FAILED: u32 = 15613;
pub const ERROR_PACKAGE_REPOSITORY_CORRUPTED: u32 = 15614;
pub const ERROR_INSTALL_POLICY_FAILURE: u32 = 15615;
pub const ERROR_PACKAGE_UPDATING: u32 = 15616;
pub const ERROR_DEPLOYMENT_BLOCKED_BY_POLICY: u32 = 15617;
pub const ERROR_PACKAGES_IN_USE: u32 = 15618;
pub const ERROR_RECOVERY_FILE_CORRUPT: u32 = 15619;
pub const ERROR_INVALID_STAGED_SIGNATURE: u32 = 15620;
pub const ERROR_DELETING_EXISTING_APPLICATIONDATA_STORE_FAILED: u32 = 15621;
pub const ERROR_INSTALL_PACKAGE_DOWNGRADE: u32 = 15622;
pub const ERROR_SYSTEM_NEEDS_REMEDIATION: u32 = 15623;
pub const ERROR_APPX_INTEGRITY_FAILURE_CLR_NGEN: u32 = 15624;
pub const ERROR_RESILIENCY_FILE_CORRUPT: u32 = 15625;
pub const ERROR_INSTALL_FIREWALL_SERVICE_NOT_RUNNING: u32 = 15626;
pub const ERROR_PACKAGE_MOVE_FAILED: u32 = 15627;
pub const ERROR_INSTALL_VOLUME_NOT_EMPTY: u32 = 15628;
pub const ERROR_INSTALL_VOLUME_OFFLINE: u32 = 15629;
pub const ERROR_INSTALL_VOLUME_CORRUPT: u32 = 15630;
pub const ERROR_NEEDS_REGISTRATION: u32 = 15631;
pub const ERROR_INSTALL_WRONG_PROCESSOR_ARCHITECTURE: u32 = 15632;
pub const ERROR_DEV_SIDELOAD_LIMIT_EXCEEDED: u32 = 15633;
pub const ERROR_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE: u32 = 15634;
pub const ERROR_PACKAGE_NOT_SUPPORTED_ON_FILESYSTEM: u32 = 15635;
pub const ERROR_PACKAGE_MOVE_BLOCKED_BY_STREAMING: u32 = 15636;
pub const ERROR_INSTALL_OPTIONAL_PACKAGE_APPLICATIONID_NOT_UNIQUE: u32 = 15637;
pub const ERROR_PACKAGE_STAGING_ONHOLD: u32 = 15638;
pub const ERROR_INSTALL_INVALID_RELATED_SET_UPDATE: u32 = 15639;
pub const ERROR_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_FULLTRUST_CAPABILITY: u32 = 15640;
pub const ERROR_DEPLOYMENT_BLOCKED_BY_USER_LOG_OFF: u32 = 15641;
pub const ERROR_PROVISION_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_PROVISIONED: u32 = 15642;
pub const ERROR_PACKAGES_REPUTATION_CHECK_FAILED: u32 = 15643;
pub const ERROR_PACKAGES_REPUTATION_CHECK_TIMEDOUT: u32 = 15644;
pub const ERROR_DEPLOYMENT_OPTION_NOT_SUPPORTED: u32 = 15645;
pub const ERROR_APPINSTALLER_ACTIVATION_BLOCKED: u32 = 15646;
pub const ERROR_REGISTRATION_FROM_REMOTE_DRIVE_NOT_SUPPORTED: u32 = 15647;
pub const ERROR_APPX_RAW_DATA_WRITE_FAILED: u32 = 15648;
pub const ERROR_DEPLOYMENT_BLOCKED_BY_VOLUME_POLICY_PACKAGE: u32 = 15649;
pub const ERROR_DEPLOYMENT_BLOCKED_BY_VOLUME_POLICY_MACHINE: u32 = 15650;
pub const ERROR_DEPLOYMENT_BLOCKED_BY_PROFILE_POLICY: u32 = 15651;
pub const ERROR_DEPLOYMENT_FAILED_CONFLICTING_MUTABLE_PACKAGE_DIRECTORY: u32 = 15652;
pub const ERROR_SINGLETON_RESOURCE_INSTALLED_IN_ACTIVE_USER: u32 = 15653;
pub const ERROR_DIFFERENT_VERSION_OF_PACKAGED_SERVICE_INSTALLED: u32 = 15654;
pub const ERROR_SERVICE_EXISTS_AS_NON_PACKAGED_SERVICE: u32 = 15655;
pub const ERROR_PACKAGED_SERVICE_REQUIRES_ADMIN_PRIVILEGES: u32 = 15656;
pub const APPMODEL_ERROR_NO_PACKAGE: u32 = 15700;
pub const APPMODEL_ERROR_PACKAGE_RUNTIME_CORRUPT: u32 = 15701;
pub const APPMODEL_ERROR_PACKAGE_IDENTITY_CORRUPT: u32 = 15702;
pub const APPMODEL_ERROR_NO_APPLICATION: u32 = 15703;
pub const APPMODEL_ERROR_DYNAMIC_PROPERTY_READ_FAILED: u32 = 15704;
pub const APPMODEL_ERROR_DYNAMIC_PROPERTY_INVALID: u32 = 15705;
pub const APPMODEL_ERROR_PACKAGE_NOT_AVAILABLE: u32 = 15706;
pub const APPMODEL_ERROR_NO_MUTABLE_DIRECTORY: u32 = 15707;
pub const ERROR_STATE_LOAD_STORE_FAILED: u32 = 15800;
pub const ERROR_STATE_GET_VERSION_FAILED: u32 = 15801;
pub const ERROR_STATE_SET_VERSION_FAILED: u32 = 15802;
pub const ERROR_STATE_STRUCTURED_RESET_FAILED: u32 = 15803;
pub const ERROR_STATE_OPEN_CONTAINER_FAILED: u32 = 15804;
pub const ERROR_STATE_CREATE_CONTAINER_FAILED: u32 = 15805;
pub const ERROR_STATE_DELETE_CONTAINER_FAILED: u32 = 15806;
pub const ERROR_STATE_READ_SETTING_FAILED: u32 = 15807;
pub const ERROR_STATE_WRITE_SETTING_FAILED: u32 = 15808;
pub const ERROR_STATE_DELETE_SETTING_FAILED: u32 = 15809;
pub const ERROR_STATE_QUERY_SETTING_FAILED: u32 = 15810;
pub const ERROR_STATE_READ_COMPOSITE_SETTING_FAILED: u32 = 15811;
pub const ERROR_STATE_WRITE_COMPOSITE_SETTING_FAILED: u32 = 15812;
pub const ERROR_STATE_ENUMERATE_CONTAINER_FAILED: u32 = 15813;
pub const ERROR_STATE_ENUMERATE_SETTINGS_FAILED: u32 = 15814;
pub const ERROR_STATE_COMPOSITE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED: u32 = 15815;
pub const ERROR_STATE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED: u32 = 15816;
pub const ERROR_STATE_SETTING_NAME_SIZE_LIMIT_EXCEEDED: u32 = 15817;
pub const ERROR_STATE_CONTAINER_NAME_SIZE_LIMIT_EXCEEDED: u32 = 15818;
pub const ERROR_API_UNAVAILABLE: u32 = 15841;
pub const STORE_ERROR_UNLICENSED: u32 = 15861;
pub const STORE_ERROR_UNLICENSED_USER: u32 = 15862;
pub const STORE_ERROR_PENDING_COM_TRANSACTION: u32 = 15863;
pub const STORE_ERROR_LICENSE_REVOKED: u32 = 15864;
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 DRAGDROP_E_FIRST: u32 = 2147746048;
pub const DRAGDROP_E_LAST: u32 = 2147746063;
pub const DRAGDROP_S_FIRST: u32 = 262400;
pub const DRAGDROP_S_LAST: u32 = 262415;
pub const CLASSFACTORY_E_FIRST: u32 = 2147746064;
pub const CLASSFACTORY_E_LAST: u32 = 2147746079;
pub const CLASSFACTORY_S_FIRST: u32 = 262416;
pub const CLASSFACTORY_S_LAST: u32 = 262431;
pub const MARSHAL_E_FIRST: u32 = 2147746080;
pub const MARSHAL_E_LAST: u32 = 2147746095;
pub const MARSHAL_S_FIRST: u32 = 262432;
pub const MARSHAL_S_LAST: u32 = 262447;
pub const DATA_E_FIRST: u32 = 2147746096;
pub const DATA_E_LAST: u32 = 2147746111;
pub const DATA_S_FIRST: u32 = 262448;
pub const DATA_S_LAST: u32 = 262463;
pub const VIEW_E_FIRST: u32 = 2147746112;
pub const VIEW_E_LAST: u32 = 2147746127;
pub const VIEW_S_FIRST: u32 = 262464;
pub const VIEW_S_LAST: u32 = 262479;
pub const REGDB_E_FIRST: u32 = 2147746128;
pub const REGDB_E_LAST: u32 = 2147746143;
pub const REGDB_S_FIRST: u32 = 262480;
pub const REGDB_S_LAST: u32 = 262495;
pub const CAT_E_FIRST: u32 = 2147746144;
pub const CAT_E_LAST: u32 = 2147746145;
pub const CS_E_FIRST: u32 = 2147746148;
pub const CS_E_LAST: u32 = 2147746159;
pub const CACHE_E_FIRST: u32 = 2147746160;
pub const CACHE_E_LAST: u32 = 2147746175;
pub const CACHE_S_FIRST: u32 = 262512;
pub const CACHE_S_LAST: u32 = 262527;
pub const OLEOBJ_E_FIRST: u32 = 2147746176;
pub const OLEOBJ_E_LAST: u32 = 2147746191;
pub const OLEOBJ_S_FIRST: u32 = 262528;
pub const OLEOBJ_S_LAST: u32 = 262543;
pub const CLIENTSITE_E_FIRST: u32 = 2147746192;
pub const CLIENTSITE_E_LAST: u32 = 2147746207;
pub const CLIENTSITE_S_FIRST: u32 = 262544;
pub const CLIENTSITE_S_LAST: u32 = 262559;
pub const INPLACE_E_FIRST: u32 = 2147746208;
pub const INPLACE_E_LAST: u32 = 2147746223;
pub const INPLACE_S_FIRST: u32 = 262560;
pub const INPLACE_S_LAST: u32 = 262575;
pub const ENUM_E_FIRST: u32 = 2147746224;
pub const ENUM_E_LAST: u32 = 2147746239;
pub const ENUM_S_FIRST: u32 = 262576;
pub const ENUM_S_LAST: u32 = 262591;
pub const CONVERT10_E_FIRST: u32 = 2147746240;
pub const CONVERT10_E_LAST: u32 = 2147746255;
pub const CONVERT10_S_FIRST: u32 = 262592;
pub const CONVERT10_S_LAST: u32 = 262607;
pub const CLIPBRD_E_FIRST: u32 = 2147746256;
pub const CLIPBRD_E_LAST: u32 = 2147746271;
pub const CLIPBRD_S_FIRST: u32 = 262608;
pub const CLIPBRD_S_LAST: u32 = 262623;
pub const MK_E_FIRST: u32 = 2147746272;
pub const MK_E_LAST: u32 = 2147746287;
pub const MK_S_FIRST: u32 = 262624;
pub const MK_S_LAST: u32 = 262639;
pub const CO_E_FIRST: u32 = 2147746288;
pub const CO_E_LAST: u32 = 2147746303;
pub const CO_S_FIRST: u32 = 262640;
pub const CO_S_LAST: u32 = 262655;
pub const EVENT_E_FIRST: u32 = 2147746304;
pub const EVENT_E_LAST: u32 = 2147746335;
pub const EVENT_S_FIRST: u32 = 262656;
pub const EVENT_S_LAST: u32 = 262687;
pub const XACT_E_FIRST: u32 = 2147799040;
pub const XACT_E_LAST: u32 = 2147799083;
pub const XACT_S_FIRST: u32 = 315392;
pub const XACT_S_LAST: u32 = 315408;
pub const CONTEXT_E_FIRST: u32 = 2147803136;
pub const CONTEXT_E_LAST: u32 = 2147803183;
pub const CONTEXT_S_FIRST: u32 = 319488;
pub const CONTEXT_S_LAST: u32 = 319535;
pub const NTE_OP_OK: u32 = 0;
pub const SCARD_S_SUCCESS: u32 = 0;
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 SYSTEM_STATUS_FLAG_POWER_SAVING_ON: u32 = 1;
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 FILE_RENAME_FLAG_REPLACE_IF_EXISTS: u32 = 1;
pub const FILE_RENAME_FLAG_POSIX_SEMANTICS: u32 = 2;
pub const FILE_RENAME_FLAG_SUPPRESS_PIN_STATE_INHERITANCE: u32 = 4;
pub const FILE_DISPOSITION_FLAG_DO_NOT_DELETE: u32 = 0;
pub const FILE_DISPOSITION_FLAG_DELETE: u32 = 1;
pub const FILE_DISPOSITION_FLAG_POSIX_SEMANTICS: u32 = 2;
pub const FILE_DISPOSITION_FLAG_FORCE_IMAGE_SECTION_CHECK: u32 = 4;
pub const FILE_DISPOSITION_FLAG_ON_CLOSE: u32 = 8;
pub const FILE_DISPOSITION_FLAG_IGNORE_READONLY_ATTRIBUTE: u32 = 16;
pub const STORAGE_INFO_FLAGS_ALIGNED_DEVICE: u32 = 1;
pub const STORAGE_INFO_FLAGS_PARTITION_ALIGNED_ON_DEVICE: u32 = 2;
pub const STORAGE_INFO_OFFSET_UNKNOWN: u32 = 4294967295;
pub const REMOTE_PROTOCOL_INFO_FLAG_LOOPBACK: u32 = 1;
pub const REMOTE_PROTOCOL_INFO_FLAG_OFFLINE: u32 = 2;
pub const REMOTE_PROTOCOL_INFO_FLAG_PERSISTENT_HANDLE: u32 = 4;
pub const RPI_FLAG_SMB2_SHARECAP_TIMEWARP: u32 = 2;
pub const RPI_FLAG_SMB2_SHARECAP_DFS: u32 = 8;
pub const RPI_FLAG_SMB2_SHARECAP_CONTINUOUS_AVAILABILITY: u32 = 16;
pub const RPI_FLAG_SMB2_SHARECAP_SCALEOUT: u32 = 32;
pub const RPI_FLAG_SMB2_SHARECAP_CLUSTER: u32 = 64;
pub const RPI_SMB2_FLAG_SERVERCAP_DFS: u32 = 1;
pub const RPI_SMB2_FLAG_SERVERCAP_LEASING: u32 = 2;
pub const RPI_SMB2_FLAG_SERVERCAP_LARGEMTU: u32 = 4;
pub const RPI_SMB2_FLAG_SERVERCAP_MULTICHANNEL: u32 = 8;
pub const RPI_SMB2_FLAG_SERVERCAP_PERSISTENT_HANDLES: u32 = 16;
pub const RPI_SMB2_FLAG_SERVERCAP_DIRECTORY_LEASING: u32 = 32;
pub const SYMBOLIC_LINK_FLAG_DIRECTORY: u32 = 1;
pub const SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE: u32 = 2;
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 GDI_ERROR: u32 = 4294967295;
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 ETO_REVERSE_INDEX_MAP: u32 = 65536;
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 MILCORE_TS_QUERYVER_RESULT_FALSE: u32 = 0;
pub const MILCORE_TS_QUERYVER_RESULT_TRUE: u32 = 2147483647;
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 PSINJECT_DLFONT: u32 = 3722304989;
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 CS_ENABLE: u32 = 1;
pub const CS_DISABLE: u32 = 2;
pub const CS_DELETE_TRANSFORM: u32 = 3;
pub const LCS_CALIBRATED_RGB: u32 = 0;
pub const LCS_GM_BUSINESS: u32 = 1;
pub const LCS_GM_GRAPHICS: u32 = 2;
pub const LCS_GM_IMAGES: u32 = 4;
pub const LCS_GM_ABS_COLORIMETRIC: u32 = 8;
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 BI_RGB: u32 = 0;
pub const BI_RLE8: u32 = 1;
pub const BI_RLE4: u32 = 2;
pub const BI_BITFIELDS: u32 = 3;
pub const BI_JPEG: u32 = 4;
pub const BI_PNG: u32 = 5;
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_REGULAR: u32 = 64;
pub const NTM_BOLD: u32 = 32;
pub const NTM_ITALIC: u32 = 1;
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_DFA_DISABLE: u32 = 64;
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 FS_LATIN1: u32 = 1;
pub const FS_LATIN2: u32 = 2;
pub const FS_CYRILLIC: u32 = 4;
pub const FS_GREEK: u32 = 8;
pub const FS_TURKISH: u32 = 16;
pub const FS_HEBREW: u32 = 32;
pub const FS_ARABIC: u32 = 64;
pub const FS_BALTIC: u32 = 128;
pub const FS_VIETNAMESE: u32 = 256;
pub const FS_THAI: u32 = 65536;
pub const FS_JISJAPAN: u32 = 131072;
pub const FS_CHINESESIMP: u32 = 262144;
pub const FS_WANSUNG: u32 = 524288;
pub const FS_CHINESETRAD: u32 = 1048576;
pub const FS_JOHAB: u32 = 2097152;
pub const FS_SYMBOL: u32 = 2147483648;
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 CBM_INIT: u32 = 4;
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 DM_ORIENTATION: u32 = 1;
pub const DM_PAPERSIZE: u32 = 2;
pub const DM_PAPERLENGTH: u32 = 4;
pub const DM_PAPERWIDTH: u32 = 8;
pub const DM_SCALE: u32 = 16;
pub const DM_POSITION: u32 = 32;
pub const DM_NUP: u32 = 64;
pub const DM_DISPLAYORIENTATION: u32 = 128;
pub const DM_COPIES: u32 = 256;
pub const DM_DEFAULTSOURCE: u32 = 512;
pub const DM_PRINTQUALITY: u32 = 1024;
pub const DM_COLOR: u32 = 2048;
pub const DM_DUPLEX: u32 = 4096;
pub const DM_YRESOLUTION: u32 = 8192;
pub const DM_TTOPTION: u32 = 16384;
pub const DM_COLLATE: u32 = 32768;
pub const DM_FORMNAME: u32 = 65536;
pub const DM_LOGPIXELS: u32 = 131072;
pub const DM_BITSPERPEL: u32 = 262144;
pub const DM_PELSWIDTH: u32 = 524288;
pub const DM_PELSHEIGHT: u32 = 1048576;
pub const DM_DISPLAYFLAGS: u32 = 2097152;
pub const DM_DISPLAYFREQUENCY: u32 = 4194304;
pub const DM_ICMMETHOD: u32 = 8388608;
pub const DM_ICMINTENT: u32 = 16777216;
pub const DM_MEDIATYPE: u32 = 33554432;
pub const DM_DITHERTYPE: u32 = 67108864;
pub const DM_PANNINGWIDTH: u32 = 134217728;
pub const DM_PANNINGHEIGHT: u32 = 268435456;
pub const DM_DISPLAYFIXEDOUTPUT: u32 = 536870912;
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_ACC_DRIVER: u32 = 64;
pub const DISPLAY_DEVICE_MODESPRUNED: u32 = 134217728;
pub const DISPLAY_DEVICE_RDPUDD: u32 = 16777216;
pub const DISPLAY_DEVICE_REMOTE: u32 = 67108864;
pub const DISPLAY_DEVICE_DISCONNECT: u32 = 33554432;
pub const DISPLAY_DEVICE_TS_COMPATIBLE: u32 = 2097152;
pub const DISPLAY_DEVICE_UNSAFE_MODES_ON: u32 = 524288;
pub const DISPLAY_DEVICE_ACTIVE: u32 = 1;
pub const DISPLAY_DEVICE_ATTACHED: u32 = 2;
pub const DISPLAYCONFIG_MAXPATH: u32 = 1024;
pub const DISPLAYCONFIG_PATH_MODE_IDX_INVALID: u32 = 4294967295;
pub const DISPLAYCONFIG_PATH_TARGET_MODE_IDX_INVALID: u32 = 65535;
pub const DISPLAYCONFIG_PATH_DESKTOP_IMAGE_IDX_INVALID: u32 = 65535;
pub const DISPLAYCONFIG_PATH_SOURCE_MODE_IDX_INVALID: u32 = 65535;
pub const DISPLAYCONFIG_PATH_CLONE_GROUP_INVALID: u32 = 65535;
pub const DISPLAYCONFIG_SOURCE_IN_USE: u32 = 1;
pub const DISPLAYCONFIG_TARGET_IN_USE: u32 = 1;
pub const DISPLAYCONFIG_TARGET_FORCIBLE: u32 = 2;
pub const DISPLAYCONFIG_TARGET_FORCED_AVAILABILITY_BOOT: u32 = 4;
pub const DISPLAYCONFIG_TARGET_FORCED_AVAILABILITY_PATH: u32 = 8;
pub const DISPLAYCONFIG_TARGET_FORCED_AVAILABILITY_SYSTEM: u32 = 16;
pub const DISPLAYCONFIG_TARGET_IS_HMD: u32 = 32;
pub const DISPLAYCONFIG_PATH_ACTIVE: u32 = 1;
pub const DISPLAYCONFIG_PATH_PREFERRED_UNSCALED: u32 = 4;
pub const DISPLAYCONFIG_PATH_SUPPORT_VIRTUAL_MODE: u32 = 8;
pub const DISPLAYCONFIG_PATH_VALID_FLAGS: u32 = 13;
pub const QDC_ALL_PATHS: u32 = 1;
pub const QDC_ONLY_ACTIVE_PATHS: u32 = 2;
pub const QDC_DATABASE_CURRENT: u32 = 4;
pub const QDC_VIRTUAL_MODE_AWARE: u32 = 16;
pub const QDC_INCLUDE_HMD: u32 = 32;
pub const SDC_TOPOLOGY_INTERNAL: u32 = 1;
pub const SDC_TOPOLOGY_CLONE: u32 = 2;
pub const SDC_TOPOLOGY_EXTEND: u32 = 4;
pub const SDC_TOPOLOGY_EXTERNAL: u32 = 8;
pub const SDC_TOPOLOGY_SUPPLIED: u32 = 16;
pub const SDC_USE_DATABASE_CURRENT: u32 = 15;
pub const SDC_USE_SUPPLIED_DISPLAY_CONFIG: u32 = 32;
pub const SDC_VALIDATE: u32 = 64;
pub const SDC_APPLY: u32 = 128;
pub const SDC_NO_OPTIMIZATION: u32 = 256;
pub const SDC_SAVE_TO_DATABASE: u32 = 512;
pub const SDC_ALLOW_CHANGES: u32 = 1024;
pub const SDC_PATH_PERSIST_IF_REQUIRED: u32 = 2048;
pub const SDC_FORCE_MODE_ENUMERATION: u32 = 4096;
pub const SDC_ALLOW_PATH_ORDER_CHANGES: u32 = 8192;
pub const SDC_VIRTUAL_MODE_AWARE: u32 = 32768;
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 GCP_JUSTIFY: u32 = 65536;
pub const FLI_GLYPHS: u32 = 262144;
pub const GCP_CLASSIN: u32 = 524288;
pub const GCP_MAXEXTENT: u32 = 1048576;
pub const GCP_JUSTIFYIN: u32 = 2097152;
pub const GCP_DISPLAYZWG: u32 = 4194304;
pub const GCP_SYMSWAPOFF: u32 = 8388608;
pub const GCP_NUMERICOVERRIDE: u32 = 16777216;
pub const GCP_NEUTRALOVERRIDE: u32 = 33554432;
pub const GCP_NUMERICSLATIN: u32 = 67108864;
pub const GCP_NUMERICSLOCAL: u32 = 134217728;
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 DCTT_BITMAP: u32 = 1;
pub const DCTT_DOWNLOAD: u32 = 2;
pub const DCTT_SUBDEV: u32 = 4;
pub const DCTT_DOWNLOAD_OUTLINE: u32 = 8;
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_NAVIGATION_VIEW: u32 = 136;
pub const VK_NAVIGATION_MENU: u32 = 137;
pub const VK_NAVIGATION_UP: u32 = 138;
pub const VK_NAVIGATION_DOWN: u32 = 139;
pub const VK_NAVIGATION_LEFT: u32 = 140;
pub const VK_NAVIGATION_RIGHT: u32 = 141;
pub const VK_NAVIGATION_ACCEPT: u32 = 142;
pub const VK_NAVIGATION_CANCEL: u32 = 143;
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_GAMEPAD_A: u32 = 195;
pub const VK_GAMEPAD_B: u32 = 196;
pub const VK_GAMEPAD_X: u32 = 197;
pub const VK_GAMEPAD_Y: u32 = 198;
pub const VK_GAMEPAD_RIGHT_SHOULDER: u32 = 199;
pub const VK_GAMEPAD_LEFT_SHOULDER: u32 = 200;
pub const VK_GAMEPAD_LEFT_TRIGGER: u32 = 201;
pub const VK_GAMEPAD_RIGHT_TRIGGER: u32 = 202;
pub const VK_GAMEPAD_DPAD_UP: u32 = 203;
pub const VK_GAMEPAD_DPAD_DOWN: u32 = 204;
pub const VK_GAMEPAD_DPAD_LEFT: u32 = 205;
pub const VK_GAMEPAD_DPAD_RIGHT: u32 = 206;
pub const VK_GAMEPAD_MENU: u32 = 207;
pub const VK_GAMEPAD_VIEW: u32 = 208;
pub const VK_GAMEPAD_LEFT_THUMBSTICK_BUTTON: u32 = 209;
pub const VK_GAMEPAD_RIGHT_THUMBSTICK_BUTTON: u32 = 210;
pub const VK_GAMEPAD_LEFT_THUMBSTICK_UP: u32 = 211;
pub const VK_GAMEPAD_LEFT_THUMBSTICK_DOWN: u32 = 212;
pub const VK_GAMEPAD_LEFT_THUMBSTICK_RIGHT: u32 = 213;
pub const VK_GAMEPAD_LEFT_THUMBSTICK_LEFT: u32 = 214;
pub const VK_GAMEPAD_RIGHT_THUMBSTICK_UP: u32 = 215;
pub const VK_GAMEPAD_RIGHT_THUMBSTICK_DOWN: u32 = 216;
pub const VK_GAMEPAD_RIGHT_THUMBSTICK_RIGHT: u32 = 217;
pub const VK_GAMEPAD_RIGHT_THUMBSTICK_LEFT: u32 = 218;
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_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_MONITORCHANGED: u32 = 16;
pub const HSHELL_HIGHBIT: u32 = 32768;
pub const HSHELL_FLASH: u32 = 32774;
pub const HSHELL_RUDEAPPACTIVATED: u32 = 32772;
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 APPCOMMAND_DELETE: u32 = 53;
pub const APPCOMMAND_DWM_FLIP3D: u32 = 54;
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 LLKHF_LOWER_IL_INJECTED: u32 = 2;
pub const LLMHF_INJECTED: u32 = 1;
pub const LLMHF_LOWER_IL_INJECTED: u32 = 2;
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 DESKTOP_READOBJECTS: u32 = 1;
pub const DESKTOP_CREATEWINDOW: u32 = 2;
pub const DESKTOP_CREATEMENU: u32 = 4;
pub const DESKTOP_HOOKCONTROL: u32 = 8;
pub const DESKTOP_JOURNALRECORD: u32 = 16;
pub const DESKTOP_JOURNALPLAYBACK: u32 = 32;
pub const DESKTOP_ENUMERATE: u32 = 64;
pub const DESKTOP_WRITEOBJECTS: u32 = 128;
pub const DESKTOP_SWITCHDESKTOP: u32 = 256;
pub const DF_ALLOWOTHERACCOUNTHOOK: u32 = 1;
pub const WINSTA_ENUMDESKTOPS: u32 = 1;
pub const WINSTA_READATTRIBUTES: u32 = 2;
pub const WINSTA_ACCESSCLIPBOARD: u32 = 4;
pub const WINSTA_CREATEDESKTOP: u32 = 8;
pub const WINSTA_WRITEATTRIBUTES: u32 = 16;
pub const WINSTA_ACCESSGLOBALATOMS: u32 = 32;
pub const WINSTA_EXITWINDOWS: u32 = 64;
pub const WINSTA_ENUMERATE: u32 = 256;
pub const WINSTA_READSCREEN: u32 = 512;
pub const WINSTA_ALL_ACCESS: u32 = 895;
pub const CWF_CREATE_ONLY: u32 = 1;
pub const WSF_VISIBLE: 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 UOI_HEAPSIZE: u32 = 5;
pub const UOI_IO: u32 = 6;
pub const UOI_TIMERPROC_EXCEPTION_SUPPRESSION: u32 = 7;
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_GESTURE: u32 = 281;
pub const WM_GESTURENOTIFY: u32 = 282;
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_MOUSEHWHEEL: u32 = 526;
pub const WM_MOUSELAST: u32 = 526;
pub const WHEEL_DELTA: u32 = 120;
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_POINTERDEVICECHANGE: u32 = 568;
pub const WM_POINTERDEVICEINRANGE: u32 = 569;
pub const WM_POINTERDEVICEOUTOFRANGE: u32 = 570;
pub const WM_TOUCH: u32 = 576;
pub const WM_NCPOINTERUPDATE: u32 = 577;
pub const WM_NCPOINTERDOWN: u32 = 578;
pub const WM_NCPOINTERUP: u32 = 579;
pub const WM_POINTERUPDATE: u32 = 581;
pub const WM_POINTERDOWN: u32 = 582;
pub const WM_POINTERUP: u32 = 583;
pub const WM_POINTERENTER: u32 = 585;
pub const WM_POINTERLEAVE: u32 = 586;
pub const WM_POINTERACTIVATE: u32 = 587;
pub const WM_POINTERCAPTURECHANGED: u32 = 588;
pub const WM_TOUCHHITTESTING: u32 = 589;
pub const WM_POINTERWHEEL: u32 = 590;
pub const WM_POINTERHWHEEL: u32 = 591;
pub const DM_POINTERHITTEST: u32 = 592;
pub const WM_POINTERROUTEDTO: u32 = 593;
pub const WM_POINTERROUTEDAWAY: u32 = 594;
pub const WM_POINTERROUTEDRELEASED: u32 = 595;
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_DPICHANGED: u32 = 736;
pub const WM_DPICHANGED_BEFOREPARENT: u32 = 738;
pub const WM_DPICHANGED_AFTERPARENT: u32 = 739;
pub const WM_GETDPISCALEDSIZE: u32 = 740;
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_DWMCOMPOSITIONCHANGED: u32 = 798;
pub const WM_DWMNCRENDERINGCHANGED: u32 = 799;
pub const WM_DWMCOLORIZATIONCOLORCHANGED: u32 = 800;
pub const WM_DWMWINDOWMAXIMIZEDCHANGE: u32 = 801;
pub const WM_DWMSENDICONICTHUMBNAIL: u32 = 803;
pub const WM_DWMSENDICONICLIVEPREVIEWBITMAP: u32 = 806;
pub const WM_GETTITLEBARINFOEX: u32 = 831;
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 SMTO_ERRORONEXIT: u32 = 32;
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_OVERLAPPED: u32 = 0;
pub const WS_POPUP: u32 = 2147483648;
pub const WS_CHILD: u32 = 1073741824;
pub const WS_MINIMIZE: u32 = 536870912;
pub const WS_VISIBLE: u32 = 268435456;
pub const WS_DISABLED: u32 = 134217728;
pub const WS_CLIPSIBLINGS: u32 = 67108864;
pub const WS_CLIPCHILDREN: u32 = 33554432;
pub const WS_MAXIMIZE: u32 = 16777216;
pub const WS_CAPTION: u32 = 12582912;
pub const WS_BORDER: u32 = 8388608;
pub const WS_DLGFRAME: u32 = 4194304;
pub const WS_VSCROLL: u32 = 2097152;
pub const WS_HSCROLL: u32 = 1048576;
pub const WS_SYSMENU: u32 = 524288;
pub const WS_THICKFRAME: u32 = 262144;
pub const WS_GROUP: u32 = 131072;
pub const WS_TABSTOP: u32 = 65536;
pub const WS_MINIMIZEBOX: u32 = 131072;
pub const WS_MAXIMIZEBOX: u32 = 65536;
pub const WS_TILED: u32 = 0;
pub const WS_ICONIC: u32 = 536870912;
pub const WS_SIZEBOX: u32 = 262144;
pub const WS_OVERLAPPEDWINDOW: u32 = 13565952;
pub const WS_POPUPWINDOW: u32 = 2156396544;
pub const WS_CHILDWINDOW: u32 = 1073741824;
pub const WS_EX_DLGMODALFRAME: u32 = 1;
pub const WS_EX_NOPARENTNOTIFY: u32 = 4;
pub const WS_EX_TOPMOST: u32 = 8;
pub const WS_EX_ACCEPTFILES: u32 = 16;
pub const WS_EX_TRANSPARENT: u32 = 32;
pub const WS_EX_MDICHILD: u32 = 64;
pub const WS_EX_TOOLWINDOW: u32 = 128;
pub const WS_EX_WINDOWEDGE: u32 = 256;
pub const WS_EX_CLIENTEDGE: u32 = 512;
pub const WS_EX_CONTEXTHELP: u32 = 1024;
pub const WS_EX_RIGHT: u32 = 4096;
pub const WS_EX_LEFT: u32 = 0;
pub const WS_EX_RTLREADING: u32 = 8192;
pub const WS_EX_LTRREADING: u32 = 0;
pub const WS_EX_LEFTSCROLLBAR: u32 = 16384;
pub const WS_EX_RIGHTSCROLLBAR: u32 = 0;
pub const WS_EX_CONTROLPARENT: u32 = 65536;
pub const WS_EX_STATICEDGE: u32 = 131072;
pub const WS_EX_APPWINDOW: u32 = 262144;
pub const WS_EX_OVERLAPPEDWINDOW: u32 = 768;
pub const WS_EX_PALETTEWINDOW: u32 = 392;
pub const WS_EX_LAYERED: u32 = 524288;
pub const WS_EX_NOINHERITLAYOUT: u32 = 1048576;
pub const WS_EX_NOREDIRECTIONBITMAP: u32 = 2097152;
pub const WS_EX_LAYOUTRTL: u32 = 4194304;
pub const WS_EX_COMPOSITED: u32 = 33554432;
pub const WS_EX_NOACTIVATE: u32 = 134217728;
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 PRF_CHECKVISIBLE: u32 = 1;
pub const PRF_NONCLIENT: u32 = 2;
pub const PRF_CLIENT: u32 = 4;
pub const PRF_ERASEBKGND: u32 = 8;
pub const PRF_CHILDREN: u32 = 16;
pub const PRF_OWNED: u32 = 32;
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 MOD_NOREPEAT: u32 = 16384;
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_RESTARTAPPS: u32 = 64;
pub const EWX_HYBRID_SHUTDOWN: u32 = 4194304;
pub const EWX_BOOTOPTIONS: u32 = 16777216;
pub const EWX_ARSO: u32 = 67108864;
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 PW_RENDERFULLCONTENT: u32 = 2;
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 WDA_NONE: u32 = 0;
pub const WDA_MONITOR: u32 = 1;
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_HWHEEL: u32 = 4096;
pub const MOUSEEVENTF_MOVE_NOCOALESCE: u32 = 8192;
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 TOUCHEVENTF_MOVE: u32 = 1;
pub const TOUCHEVENTF_DOWN: u32 = 2;
pub const TOUCHEVENTF_UP: u32 = 4;
pub const TOUCHEVENTF_INRANGE: u32 = 8;
pub const TOUCHEVENTF_PRIMARY: u32 = 16;
pub const TOUCHEVENTF_NOCOALESCE: u32 = 32;
pub const TOUCHEVENTF_PEN: u32 = 64;
pub const TOUCHEVENTF_PALM: u32 = 128;
pub const TOUCHINPUTMASKF_TIMEFROMSYSTEM: u32 = 1;
pub const TOUCHINPUTMASKF_EXTRAINFO: u32 = 2;
pub const TOUCHINPUTMASKF_CONTACTAREA: u32 = 4;
pub const TWF_FINETOUCH: u32 = 1;
pub const TWF_WANTPALM: u32 = 2;
pub const POINTER_FLAG_NONE: u32 = 0;
pub const POINTER_FLAG_NEW: u32 = 1;
pub const POINTER_FLAG_INRANGE: u32 = 2;
pub const POINTER_FLAG_INCONTACT: u32 = 4;
pub const POINTER_FLAG_FIRSTBUTTON: u32 = 16;
pub const POINTER_FLAG_SECONDBUTTON: u32 = 32;
pub const POINTER_FLAG_THIRDBUTTON: u32 = 64;
pub const POINTER_FLAG_FOURTHBUTTON: u32 = 128;
pub const POINTER_FLAG_FIFTHBUTTON: u32 = 256;
pub const POINTER_FLAG_PRIMARY: u32 = 8192;
pub const POINTER_FLAG_CONFIDENCE: u32 = 16384;
pub const POINTER_FLAG_CANCELED: u32 = 32768;
pub const POINTER_FLAG_DOWN: u32 = 65536;
pub const POINTER_FLAG_UPDATE: u32 = 131072;
pub const POINTER_FLAG_UP: u32 = 262144;
pub const POINTER_FLAG_WHEEL: u32 = 524288;
pub const POINTER_FLAG_HWHEEL: u32 = 1048576;
pub const POINTER_FLAG_CAPTURECHANGED: u32 = 2097152;
pub const POINTER_FLAG_HASTRANSFORM: u32 = 4194304;
pub const POINTER_MOD_SHIFT: u32 = 4;
pub const POINTER_MOD_CTRL: u32 = 8;
pub const TOUCH_FLAG_NONE: u32 = 0;
pub const TOUCH_MASK_NONE: u32 = 0;
pub const TOUCH_MASK_CONTACTAREA: u32 = 1;
pub const TOUCH_MASK_ORIENTATION: u32 = 2;
pub const TOUCH_MASK_PRESSURE: u32 = 4;
pub const PEN_FLAG_NONE: u32 = 0;
pub const PEN_FLAG_BARREL: u32 = 1;
pub const PEN_FLAG_INVERTED: u32 = 2;
pub const PEN_FLAG_ERASER: u32 = 4;
pub const PEN_MASK_NONE: u32 = 0;
pub const PEN_MASK_PRESSURE: u32 = 1;
pub const PEN_MASK_ROTATION: u32 = 2;
pub const PEN_MASK_TILT_X: u32 = 4;
pub const PEN_MASK_TILT_Y: u32 = 8;
pub const POINTER_MESSAGE_FLAG_NEW: u32 = 1;
pub const POINTER_MESSAGE_FLAG_INRANGE: u32 = 2;
pub const POINTER_MESSAGE_FLAG_INCONTACT: u32 = 4;
pub const POINTER_MESSAGE_FLAG_FIRSTBUTTON: u32 = 16;
pub const POINTER_MESSAGE_FLAG_SECONDBUTTON: u32 = 32;
pub const POINTER_MESSAGE_FLAG_THIRDBUTTON: u32 = 64;
pub const POINTER_MESSAGE_FLAG_FOURTHBUTTON: u32 = 128;
pub const POINTER_MESSAGE_FLAG_FIFTHBUTTON: u32 = 256;
pub const POINTER_MESSAGE_FLAG_PRIMARY: u32 = 8192;
pub const POINTER_MESSAGE_FLAG_CONFIDENCE: u32 = 16384;
pub const POINTER_MESSAGE_FLAG_CANCELED: u32 = 32768;
pub const PA_ACTIVATE: u32 = 1;
pub const PA_NOACTIVATE: u32 = 3;
pub const MAX_TOUCH_COUNT: u32 = 256;
pub const TOUCH_FEEDBACK_DEFAULT: u32 = 1;
pub const TOUCH_FEEDBACK_INDIRECT: u32 = 2;
pub const TOUCH_FEEDBACK_NONE: u32 = 3;
pub const TOUCH_HIT_TESTING_DEFAULT: u32 = 0;
pub const TOUCH_HIT_TESTING_CLIENT: u32 = 1;
pub const TOUCH_HIT_TESTING_NONE: u32 = 2;
pub const TOUCH_HIT_TESTING_PROXIMITY_CLOSEST: u32 = 0;
pub const TOUCH_HIT_TESTING_PROXIMITY_FARTHEST: u32 = 4095;
pub const GWFS_INCLUDE_ANCESTORS: u32 = 1;
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 MAPVK_VK_TO_VSC_EX: u32 = 4;
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_TOUCH: u32 = 2048;
pub const QS_POINTER: u32 = 4096;
pub const QS_MOUSE: u32 = 6;
pub const QS_INPUT: u32 = 7175;
pub const QS_ALLEVENTS: u32 = 7359;
pub const QS_ALLINPUT: u32 = 7423;
pub const USER_TIMER_MAXIMUM: u32 = 2147483647;
pub const USER_TIMER_MINIMUM: u32 = 10;
pub const TIMERV_DEFAULT_COALESCING: u32 = 0;
pub const TIMERV_NO_COALESCING: u32 = 4294967295;
pub const TIMERV_COALESCING_MIN: u32 = 1;
pub const TIMERV_COALESCING_MAX: u32 = 2147483637;
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_MOUSEHORIZONTALWHEELPRESENT: u32 = 91;
pub const SM_CXPADDEDBORDER: u32 = 92;
pub const SM_DIGITIZER: u32 = 94;
pub const SM_MAXIMUMTOUCHES: u32 = 95;
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 SM_CONVERTIBLESLATEMODE: u32 = 8195;
pub const SM_SYSTEMDOCKED: u32 = 8196;
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 GMDI_USEDISABLED: u32 = 1;
pub const GMDI_GOINTOPOPUPS: u32 = 2;
pub const TPM_LEFTBUTTON: u32 = 0;
pub const TPM_RIGHTBUTTON: u32 = 2;
pub const TPM_LEFTALIGN: u32 = 0;
pub const TPM_CENTERALIGN: u32 = 4;
pub const TPM_RIGHTALIGN: u32 = 8;
pub const TPM_TOPALIGN: u32 = 0;
pub const TPM_VCENTERALIGN: u32 = 16;
pub const TPM_BOTTOMALIGN: u32 = 32;
pub const TPM_HORIZONTAL: u32 = 0;
pub const TPM_VERTICAL: u32 = 64;
pub const TPM_NONOTIFY: u32 = 128;
pub const TPM_RETURNCMD: u32 = 256;
pub const TPM_RECURSE: u32 = 1;
pub const TPM_HORPOSANIMATION: u32 = 1024;
pub const TPM_HORNEGANIMATION: u32 = 2048;
pub const TPM_VERPOSANIMATION: u32 = 4096;
pub const TPM_VERNEGANIMATION: u32 = 8192;
pub const TPM_NOANIMATION: u32 = 16384;
pub const TPM_LAYOUTRTL: u32 = 32768;
pub const TPM_WORKAREA: u32 = 65536;
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 DO_DROPFILE: u32 = 1162627398;
pub const DO_PRINTFILE: u32 = 1414419024;
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 DCX_WINDOW: u32 = 1;
pub const DCX_CACHE: u32 = 2;
pub const DCX_NORESETATTRS: u32 = 4;
pub const DCX_CLIPCHILDREN: u32 = 8;
pub const DCX_CLIPSIBLINGS: u32 = 16;
pub const DCX_PARENTCLIP: u32 = 32;
pub const DCX_EXCLUDERGN: u32 = 64;
pub const DCX_INTERSECTRGN: u32 = 128;
pub const DCX_EXCLUDEUPDATE: u32 = 256;
pub const DCX_INTERSECTUPDATE: u32 = 512;
pub const DCX_LOCKWINDOWUPDATE: u32 = 1024;
pub const DCX_VALIDATE: u32 = 2097152;
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 MB_OK: u32 = 0;
pub const MB_OKCANCEL: u32 = 1;
pub const MB_ABORTRETRYIGNORE: u32 = 2;
pub const MB_YESNOCANCEL: u32 = 3;
pub const MB_YESNO: u32 = 4;
pub const MB_RETRYCANCEL: u32 = 5;
pub const MB_CANCELTRYCONTINUE: u32 = 6;
pub const MB_ICONHAND: u32 = 16;
pub const MB_ICONQUESTION: u32 = 32;
pub const MB_ICONEXCLAMATION: u32 = 48;
pub const MB_ICONASTERISK: u32 = 64;
pub const MB_USERICON: u32 = 128;
pub const MB_ICONWARNING: u32 = 48;
pub const MB_ICONERROR: u32 = 16;
pub const MB_ICONINFORMATION: u32 = 64;
pub const MB_ICONSTOP: u32 = 16;
pub const MB_DEFBUTTON1: u32 = 0;
pub const MB_DEFBUTTON2: u32 = 256;
pub const MB_DEFBUTTON3: u32 = 512;
pub const MB_DEFBUTTON4: u32 = 768;
pub const MB_APPLMODAL: u32 = 0;
pub const MB_SYSTEMMODAL: u32 = 4096;
pub const MB_TASKMODAL: u32 = 8192;
pub const MB_HELP: u32 = 16384;
pub const MB_NOFOCUS: u32 = 32768;
pub const MB_SETFOREGROUND: u32 = 65536;
pub const MB_DEFAULT_DESKTOP_ONLY: u32 = 131072;
pub const MB_TOPMOST: u32 = 262144;
pub const MB_RIGHT: u32 = 524288;
pub const MB_RTLREADING: u32 = 1048576;
pub const MB_SERVICE_NOTIFICATION: u32 = 2097152;
pub const MB_SERVICE_NOTIFICATION_NT3X: u32 = 262144;
pub const MB_TYPEMASK: u32 = 15;
pub const MB_ICONMASK: u32 = 240;
pub const MB_DEFMASK: u32 = 3840;
pub const MB_MODEMASK: u32 = 12288;
pub const MB_MISCMASK: u32 = 49152;
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 MF_INSERT: u32 = 0;
pub const MF_CHANGE: u32 = 128;
pub const MF_APPEND: u32 = 256;
pub const MF_DELETE: u32 = 512;
pub const MF_REMOVE: u32 = 4096;
pub const MF_BYCOMMAND: u32 = 0;
pub const MF_BYPOSITION: u32 = 1024;
pub const MF_SEPARATOR: u32 = 2048;
pub const MF_ENABLED: u32 = 0;
pub const MF_GRAYED: u32 = 1;
pub const MF_DISABLED: u32 = 2;
pub const MF_UNCHECKED: u32 = 0;
pub const MF_CHECKED: u32 = 8;
pub const MF_USECHECKBITMAPS: u32 = 512;
pub const MF_STRING: u32 = 0;
pub const MF_BITMAP: u32 = 4;
pub const MF_OWNERDRAW: u32 = 256;
pub const MF_POPUP: u32 = 16;
pub const MF_MENUBARBREAK: u32 = 32;
pub const MF_MENUBREAK: u32 = 64;
pub const MF_UNHILITE: u32 = 0;
pub const MF_HILITE: u32 = 128;
pub const MF_DEFAULT: u32 = 4096;
pub const MF_SYSMENU: u32 = 8192;
pub const MF_HELP: u32 = 16384;
pub const MF_RIGHTJUSTIFY: u32 = 16384;
pub const MF_MOUSESELECT: u32 = 32768;
pub const MF_END: u32 = 128;
pub const MFT_STRING: u32 = 0;
pub const MFT_BITMAP: u32 = 4;
pub const MFT_MENUBARBREAK: u32 = 32;
pub const MFT_MENUBREAK: u32 = 64;
pub const MFT_OWNERDRAW: u32 = 256;
pub const MFT_RADIOCHECK: u32 = 512;
pub const MFT_SEPARATOR: u32 = 2048;
pub const MFT_RIGHTORDER: u32 = 8192;
pub const MFT_RIGHTJUSTIFY: u32 = 16384;
pub const MFS_GRAYED: u32 = 3;
pub const MFS_DISABLED: u32 = 3;
pub const MFS_CHECKED: u32 = 8;
pub const MFS_HILITE: u32 = 128;
pub const MFS_ENABLED: u32 = 0;
pub const MFS_UNCHECKED: u32 = 0;
pub const MFS_UNHILITE: u32 = 0;
pub const MFS_DEFAULT: u32 = 4096;
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 SCF_ISSECURE: u32 = 1;
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 ES_LEFT: u32 = 0;
pub const ES_CENTER: u32 = 1;
pub const ES_RIGHT: u32 = 2;
pub const ES_MULTILINE: u32 = 4;
pub const ES_UPPERCASE: u32 = 8;
pub const ES_LOWERCASE: u32 = 16;
pub const ES_PASSWORD: u32 = 32;
pub const ES_AUTOVSCROLL: u32 = 64;
pub const ES_AUTOHSCROLL: u32 = 128;
pub const ES_NOHIDESEL: u32 = 256;
pub const ES_OEMCONVERT: u32 = 1024;
pub const ES_READONLY: u32 = 2048;
pub const ES_WANTRETURN: u32 = 4096;
pub const ES_NUMBER: u32 = 8192;
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 EN_BEFORE_PASTE: u32 = 2048;
pub const EN_AFTER_PASTE: u32 = 2049;
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 EM_ENABLEFEATURE: u32 = 218;
pub const WB_LEFT: u32 = 0;
pub const WB_RIGHT: u32 = 1;
pub const WB_ISDELIMITER: u32 = 2;
pub const BS_PUSHBUTTON: u32 = 0;
pub const BS_DEFPUSHBUTTON: u32 = 1;
pub const BS_CHECKBOX: u32 = 2;
pub const BS_AUTOCHECKBOX: u32 = 3;
pub const BS_RADIOBUTTON: u32 = 4;
pub const BS_3STATE: u32 = 5;
pub const BS_AUTO3STATE: u32 = 6;
pub const BS_GROUPBOX: u32 = 7;
pub const BS_USERBUTTON: u32 = 8;
pub const BS_AUTORADIOBUTTON: u32 = 9;
pub const BS_PUSHBOX: u32 = 10;
pub const BS_OWNERDRAW: u32 = 11;
pub const BS_TYPEMASK: u32 = 15;
pub const BS_LEFTTEXT: u32 = 32;
pub const BS_TEXT: u32 = 0;
pub const BS_ICON: u32 = 64;
pub const BS_BITMAP: u32 = 128;
pub const BS_LEFT: u32 = 256;
pub const BS_RIGHT: u32 = 512;
pub const BS_CENTER: u32 = 768;
pub const BS_TOP: u32 = 1024;
pub const BS_BOTTOM: u32 = 2048;
pub const BS_VCENTER: u32 = 3072;
pub const BS_PUSHLIKE: u32 = 4096;
pub const BS_MULTILINE: u32 = 8192;
pub const BS_NOTIFY: u32 = 16384;
pub const BS_FLAT: u32 = 32768;
pub const BS_RIGHTBUTTON: u32 = 32;
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 BM_SETDONTCLICK: u32 = 248;
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 SS_LEFT: u32 = 0;
pub const SS_CENTER: u32 = 1;
pub const SS_RIGHT: u32 = 2;
pub const SS_ICON: u32 = 3;
pub const SS_BLACKRECT: u32 = 4;
pub const SS_GRAYRECT: u32 = 5;
pub const SS_WHITERECT: u32 = 6;
pub const SS_BLACKFRAME: u32 = 7;
pub const SS_GRAYFRAME: u32 = 8;
pub const SS_WHITEFRAME: u32 = 9;
pub const SS_USERITEM: u32 = 10;
pub const SS_SIMPLE: u32 = 11;
pub const SS_LEFTNOWORDWRAP: u32 = 12;
pub const SS_OWNERDRAW: u32 = 13;
pub const SS_BITMAP: u32 = 14;
pub const SS_ENHMETAFILE: u32 = 15;
pub const SS_ETCHEDHORZ: u32 = 16;
pub const SS_ETCHEDVERT: u32 = 17;
pub const SS_ETCHEDFRAME: u32 = 18;
pub const SS_TYPEMASK: u32 = 31;
pub const SS_REALSIZECONTROL: u32 = 64;
pub const SS_NOPREFIX: u32 = 128;
pub const SS_NOTIFY: u32 = 256;
pub const SS_CENTERIMAGE: u32 = 512;
pub const SS_RIGHTJUST: u32 = 1024;
pub const SS_REALSIZEIMAGE: u32 = 2048;
pub const SS_SUNKEN: u32 = 4096;
pub const SS_EDITCONTROL: u32 = 8192;
pub const SS_ENDELLIPSIS: u32 = 16384;
pub const SS_PATHELLIPSIS: u32 = 32768;
pub const SS_WORDELLIPSIS: u32 = 49152;
pub const SS_ELLIPSISMASK: u32 = 49152;
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 DS_ABSALIGN: u32 = 1;
pub const DS_SYSMODAL: u32 = 2;
pub const DS_LOCALEDIT: u32 = 32;
pub const DS_SETFONT: u32 = 64;
pub const DS_MODALFRAME: u32 = 128;
pub const DS_NOIDLEMSG: u32 = 256;
pub const DS_SETFOREGROUND: u32 = 512;
pub const DS_3DLOOK: u32 = 4;
pub const DS_FIXEDSYS: u32 = 8;
pub const DS_NOFAILCREATE: u32 = 16;
pub const DS_CONTROL: u32 = 1024;
pub const DS_CENTER: u32 = 2048;
pub const DS_CENTERMOUSE: u32 = 4096;
pub const DS_CONTEXTHELP: u32 = 8192;
pub const DS_SHELLFONT: u32 = 72;
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_CTLCODE: u32 = 0;
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 LBS_NOTIFY: u32 = 1;
pub const LBS_SORT: u32 = 2;
pub const LBS_NOREDRAW: u32 = 4;
pub const LBS_MULTIPLESEL: u32 = 8;
pub const LBS_OWNERDRAWFIXED: u32 = 16;
pub const LBS_OWNERDRAWVARIABLE: u32 = 32;
pub const LBS_HASSTRINGS: u32 = 64;
pub const LBS_USETABSTOPS: u32 = 128;
pub const LBS_NOINTEGRALHEIGHT: u32 = 256;
pub const LBS_MULTICOLUMN: u32 = 512;
pub const LBS_WANTKEYBOARDINPUT: u32 = 1024;
pub const LBS_EXTENDEDSEL: u32 = 2048;
pub const LBS_DISABLENOSCROLL: u32 = 4096;
pub const LBS_NODATA: u32 = 8192;
pub const LBS_NOSEL: u32 = 16384;
pub const LBS_COMBOBOX: u32 = 32768;
pub const LBS_STANDARD: u32 = 10485763;
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 CBS_SIMPLE: u32 = 1;
pub const CBS_DROPDOWN: u32 = 2;
pub const CBS_DROPDOWNLIST: u32 = 3;
pub const CBS_OWNERDRAWFIXED: u32 = 16;
pub const CBS_OWNERDRAWVARIABLE: u32 = 32;
pub const CBS_AUTOHSCROLL: u32 = 64;
pub const CBS_OEMCONVERT: u32 = 128;
pub const CBS_SORT: u32 = 256;
pub const CBS_HASSTRINGS: u32 = 512;
pub const CBS_NOINTEGRALHEIGHT: u32 = 1024;
pub const CBS_DISABLENOSCROLL: u32 = 2048;
pub const CBS_UPPERCASE: u32 = 8192;
pub const CBS_LOWERCASE: u32 = 16384;
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 SBS_HORZ: u32 = 0;
pub const SBS_VERT: u32 = 1;
pub const SBS_TOPALIGN: u32 = 2;
pub const SBS_LEFTALIGN: u32 = 2;
pub const SBS_BOTTOMALIGN: u32 = 4;
pub const SBS_RIGHTALIGN: u32 = 4;
pub const SBS_SIZEBOXTOPLEFTALIGN: u32 = 2;
pub const SBS_SIZEBOXBOTTOMRIGHTALIGN: u32 = 4;
pub const SBS_SIZEBOX: u32 = 8;
pub const SBS_SIZEGRIP: u32 = 16;
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 GR_GDIOBJECTS_PEAK: u32 = 2;
pub const GR_USEROBJECTS_PEAK: u32 = 4;
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_GETWHEELSCROLLCHARS: u32 = 108;
pub const SPI_SETWHEELSCROLLCHARS: u32 = 109;
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_GETAUDIODESCRIPTION: u32 = 116;
pub const SPI_SETAUDIODESCRIPTION: u32 = 117;
pub const SPI_GETSCREENSAVESECURE: u32 = 118;
pub const SPI_SETSCREENSAVESECURE: u32 = 119;
pub const SPI_GETHUNGAPPTIMEOUT: u32 = 120;
pub const SPI_SETHUNGAPPTIMEOUT: u32 = 121;
pub const SPI_GETWAITTOKILLTIMEOUT: u32 = 122;
pub const SPI_SETWAITTOKILLTIMEOUT: u32 = 123;
pub const SPI_GETWAITTOKILLSERVICETIMEOUT: u32 = 124;
pub const SPI_SETWAITTOKILLSERVICETIMEOUT: u32 = 125;
pub const SPI_GETMOUSEDOCKTHRESHOLD: u32 = 126;
pub const SPI_SETMOUSEDOCKTHRESHOLD: u32 = 127;
pub const SPI_GETPENDOCKTHRESHOLD: u32 = 128;
pub const SPI_SETPENDOCKTHRESHOLD: u32 = 129;
pub const SPI_GETWINARRANGING: u32 = 130;
pub const SPI_SETWINARRANGING: u32 = 131;
pub const SPI_GETMOUSEDRAGOUTTHRESHOLD: u32 = 132;
pub const SPI_SETMOUSEDRAGOUTTHRESHOLD: u32 = 133;
pub const SPI_GETPENDRAGOUTTHRESHOLD: u32 = 134;
pub const SPI_SETPENDRAGOUTTHRESHOLD: u32 = 135;
pub const SPI_GETMOUSESIDEMOVETHRESHOLD: u32 = 136;
pub const SPI_SETMOUSESIDEMOVETHRESHOLD: u32 = 137;
pub const SPI_GETPENSIDEMOVETHRESHOLD: u32 = 138;
pub const SPI_SETPENSIDEMOVETHRESHOLD: u32 = 139;
pub const SPI_GETDRAGFROMMAXIMIZE: u32 = 140;
pub const SPI_SETDRAGFROMMAXIMIZE: u32 = 141;
pub const SPI_GETSNAPSIZING: u32 = 142;
pub const SPI_SETSNAPSIZING: u32 = 143;
pub const SPI_GETDOCKMOVING: u32 = 144;
pub const SPI_SETDOCKMOVING: u32 = 145;
pub const MAX_TOUCH_PREDICTION_FILTER_TAPS: u32 = 3;
pub const TOUCHPREDICTIONPARAMETERS_DEFAULT_LATENCY: u32 = 8;
pub const TOUCHPREDICTIONPARAMETERS_DEFAULT_SAMPLETIME: u32 = 8;
pub const TOUCHPREDICTIONPARAMETERS_DEFAULT_USE_HW_TIMESTAMP: u32 = 1;
pub const TOUCHPREDICTIONPARAMETERS_DEFAULT_RLS_DELTA: f64 = 0.001;
pub const TOUCHPREDICTIONPARAMETERS_DEFAULT_RLS_LAMBDA_MIN: f64 = 0.9;
pub const TOUCHPREDICTIONPARAMETERS_DEFAULT_RLS_LAMBDA_MAX: f64 = 0.999;
pub const TOUCHPREDICTIONPARAMETERS_DEFAULT_RLS_LAMBDA_LEARNING_RATE: f64 = 0.001;
pub const TOUCHPREDICTIONPARAMETERS_DEFAULT_RLS_EXPO_SMOOTH_ALPHA: f64 = 0.99;
pub const SPI_GETTOUCHPREDICTIONPARAMETERS: u32 = 156;
pub const SPI_SETTOUCHPREDICTIONPARAMETERS: u32 = 157;
pub const MAX_LOGICALDPIOVERRIDE: u32 = 2;
pub const MIN_LOGICALDPIOVERRIDE: i32 = -2;
pub const SPI_GETLOGICALDPIOVERRIDE: u32 = 158;
pub const SPI_SETLOGICALDPIOVERRIDE: u32 = 159;
pub const SPI_GETMENURECT: u32 = 162;
pub const SPI_SETMENURECT: u32 = 163;
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_GETDISABLEOVERLAPPEDCONTENT: u32 = 4160;
pub const SPI_SETDISABLEOVERLAPPEDCONTENT: u32 = 4161;
pub const SPI_GETCLIENTAREAANIMATION: u32 = 4162;
pub const SPI_SETCLIENTAREAANIMATION: u32 = 4163;
pub const SPI_GETCLEARTYPE: u32 = 4168;
pub const SPI_SETCLEARTYPE: u32 = 4169;
pub const SPI_GETSPEECHRECOGNITION: u32 = 4170;
pub const SPI_SETSPEECHRECOGNITION: u32 = 4171;
pub const SPI_GETCARETBROWSING: u32 = 4172;
pub const SPI_SETCARETBROWSING: u32 = 4173;
pub const SPI_GETTHREADLOCALINPUTSETTINGS: u32 = 4174;
pub const SPI_SETTHREADLOCALINPUTSETTINGS: u32 = 4175;
pub const SPI_GETSYSTEMLANGUAGEBAR: u32 = 4176;
pub const SPI_SETSYSTEMLANGUAGEBAR: u32 = 4177;
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 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 SPI_GETMINIMUMHITRADIUS: u32 = 8212;
pub const SPI_SETMINIMUMHITRADIUS: u32 = 8213;
pub const SPI_GETMESSAGEDURATION: u32 = 8214;
pub const SPI_SETMESSAGEDURATION: u32 = 8215;
pub const SPI_GETCONTACTVISUALIZATION: u32 = 8216;
pub const SPI_SETCONTACTVISUALIZATION: u32 = 8217;
pub const CONTACTVISUALIZATION_OFF: u32 = 0;
pub const CONTACTVISUALIZATION_ON: u32 = 1;
pub const CONTACTVISUALIZATION_PRESENTATIONMODE: u32 = 2;
pub const SPI_GETGESTUREVISUALIZATION: u32 = 8218;
pub const SPI_SETGESTUREVISUALIZATION: u32 = 8219;
pub const GESTUREVISUALIZATION_OFF: u32 = 0;
pub const GESTUREVISUALIZATION_ON: u32 = 31;
pub const GESTUREVISUALIZATION_TAP: u32 = 1;
pub const GESTUREVISUALIZATION_DOUBLETAP: u32 = 2;
pub const GESTUREVISUALIZATION_PRESSANDTAP: u32 = 4;
pub const GESTUREVISUALIZATION_PRESSANDHOLD: u32 = 8;
pub const GESTUREVISUALIZATION_RIGHTTAP: u32 = 16;
pub const SPI_GETMOUSEWHEELROUTING: u32 = 8220;
pub const SPI_SETMOUSEWHEELROUTING: u32 = 8221;
pub const MOUSEWHEEL_ROUTING_FOCUS: u32 = 0;
pub const MOUSEWHEEL_ROUTING_HYBRID: u32 = 1;
pub const MOUSEWHEEL_ROUTING_MOUSE_POS: u32 = 2;
pub const SPI_GETPENVISUALIZATION: u32 = 8222;
pub const SPI_SETPENVISUALIZATION: u32 = 8223;
pub const PENVISUALIZATION_ON: u32 = 35;
pub const PENVISUALIZATION_OFF: u32 = 0;
pub const PENVISUALIZATION_TAP: u32 = 1;
pub const PENVISUALIZATION_DOUBLETAP: u32 = 2;
pub const PENVISUALIZATION_CURSOR: u32 = 32;
pub const SPI_GETPENARBITRATIONTYPE: u32 = 8224;
pub const SPI_SETPENARBITRATIONTYPE: u32 = 8225;
pub const PENARBITRATIONTYPE_NONE: u32 = 0;
pub const PENARBITRATIONTYPE_WIN8: u32 = 1;
pub const PENARBITRATIONTYPE_FIS: u32 = 2;
pub const PENARBITRATIONTYPE_SPT: u32 = 3;
pub const PENARBITRATIONTYPE_MAX: u32 = 4;
pub const SPI_GETCARETTIMEOUT: u32 = 8226;
pub const SPI_SETCARETTIMEOUT: u32 = 8227;
pub const SPI_GETHANDEDNESS: u32 = 8228;
pub const SPI_SETHANDEDNESS: u32 = 8229;
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 ARW_BOTTOMLEFT: u32 = 0;
pub const ARW_BOTTOMRIGHT: u32 = 1;
pub const ARW_TOPLEFT: u32 = 2;
pub const ARW_TOPRIGHT: u32 = 3;
pub const ARW_STARTMASK: u32 = 3;
pub const ARW_STARTRIGHT: u32 = 1;
pub const ARW_STARTTOP: u32 = 2;
pub const ARW_LEFT: u32 = 0;
pub const ARW_RIGHT: u32 = 0;
pub const ARW_UP: u32 = 4;
pub const ARW_DOWN: u32 = 4;
pub const ARW_HIDE: u32 = 8;
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_ENABLE_UNSAFE_MODES: u32 = 256;
pub const CDS_DISABLE_UNSAFE_MODES: u32 = 512;
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 EDS_ROTATEDMODE: u32 = 4;
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_SYSTEM_DESKTOPSWITCH: u32 = 32;
pub const EVENT_SYSTEM_SWITCHER_APPGRABBED: u32 = 36;
pub const EVENT_SYSTEM_SWITCHER_APPOVERTARGET: u32 = 37;
pub const EVENT_SYSTEM_SWITCHER_APPDROPPED: u32 = 38;
pub const EVENT_SYSTEM_SWITCHER_CANCELLED: u32 = 39;
pub const EVENT_SYSTEM_IME_KEY_NOTIFICATION: u32 = 41;
pub const EVENT_SYSTEM_END: u32 = 255;
pub const EVENT_OEM_DEFINED_START: u32 = 257;
pub const EVENT_OEM_DEFINED_END: u32 = 511;
pub const EVENT_UIA_EVENTID_START: u32 = 19968;
pub const EVENT_UIA_EVENTID_END: u32 = 20223;
pub const EVENT_UIA_PROPID_START: u32 = 29952;
pub const EVENT_UIA_PROPID_END: u32 = 30207;
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_CONSOLE_END: u32 = 16639;
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 EVENT_OBJECT_INVOKED: u32 = 32787;
pub const EVENT_OBJECT_TEXTSELECTIONCHANGED: u32 = 32788;
pub const EVENT_OBJECT_CONTENTSCROLLED: u32 = 32789;
pub const EVENT_SYSTEM_ARRANGMENTPREVIEW: u32 = 32790;
pub const EVENT_OBJECT_CLOAKED: u32 = 32791;
pub const EVENT_OBJECT_UNCLOAKED: u32 = 32792;
pub const EVENT_OBJECT_LIVEREGIONCHANGED: u32 = 32793;
pub const EVENT_OBJECT_HOSTEDOBJECTSINVALIDATED: u32 = 32800;
pub const EVENT_OBJECT_DRAGSTART: u32 = 32801;
pub const EVENT_OBJECT_DRAGCANCEL: u32 = 32802;
pub const EVENT_OBJECT_DRAGCOMPLETE: u32 = 32803;
pub const EVENT_OBJECT_DRAGENTER: u32 = 32804;
pub const EVENT_OBJECT_DRAGLEAVE: u32 = 32805;
pub const EVENT_OBJECT_DRAGDROPPED: u32 = 32806;
pub const EVENT_OBJECT_IME_SHOW: u32 = 32807;
pub const EVENT_OBJECT_IME_HIDE: u32 = 32808;
pub const EVENT_OBJECT_IME_CHANGE: u32 = 32809;
pub const EVENT_OBJECT_TEXTEDIT_CONVERSIONTARGETCHANGED: u32 = 32816;
pub const EVENT_OBJECT_END: u32 = 33023;
pub const EVENT_AIA_START: u32 = 40960;
pub const EVENT_AIA_END: u32 = 45055;
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 USER_DEFAULT_SCREEN_DPI: u32 = 96;
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 CURSOR_SUPPRESSED: u32 = 2;
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 RIM_TYPEMAX: 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_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 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_HWHEEL: u32 = 2048;
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 MOUSE_MOVE_NOCOALESCE: u32 = 8;
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 POINTER_DEVICE_PRODUCT_STRING_MAX: u32 = 520;
pub const PDC_ARRIVAL: u32 = 1;
pub const PDC_REMOVAL: u32 = 2;
pub const PDC_ORIENTATION_0: u32 = 4;
pub const PDC_ORIENTATION_90: u32 = 8;
pub const PDC_ORIENTATION_180: u32 = 16;
pub const PDC_ORIENTATION_270: u32 = 32;
pub const PDC_MODE_DEFAULT: u32 = 64;
pub const PDC_MODE_CENTERED: u32 = 128;
pub const PDC_MAPPING_CHANGE: u32 = 256;
pub const PDC_RESOLUTION: u32 = 512;
pub const PDC_ORIGIN: u32 = 1024;
pub const PDC_MODE_ASPECTRATIOPRESERVED: u32 = 2048;
pub const MSGFLT_ADD: u32 = 1;
pub const MSGFLT_REMOVE: u32 = 2;
pub const MSGFLTINFO_NONE: u32 = 0;
pub const MSGFLTINFO_ALREADYALLOWED_FORWND: u32 = 1;
pub const MSGFLTINFO_ALREADYDISALLOWED_FORWND: u32 = 2;
pub const MSGFLTINFO_ALLOWED_HIGHER: u32 = 3;
pub const MSGFLT_RESET: u32 = 0;
pub const MSGFLT_ALLOW: u32 = 1;
pub const MSGFLT_DISALLOW: u32 = 2;
pub const GF_BEGIN: u32 = 1;
pub const GF_INERTIA: u32 = 2;
pub const GF_END: u32 = 4;
pub const GID_BEGIN: u32 = 1;
pub const GID_END: u32 = 2;
pub const GID_ZOOM: u32 = 3;
pub const GID_PAN: u32 = 4;
pub const GID_ROTATE: u32 = 5;
pub const GID_TWOFINGERTAP: u32 = 6;
pub const GID_PRESSANDTAP: u32 = 7;
pub const GID_ROLLOVER: u32 = 7;
pub const GC_ALLGESTURES: u32 = 1;
pub const GC_ZOOM: u32 = 1;
pub const GC_PAN: u32 = 1;
pub const GC_PAN_WITH_SINGLE_FINGER_VERTICALLY: u32 = 2;
pub const GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY: u32 = 4;
pub const GC_PAN_WITH_GUTTER: u32 = 8;
pub const GC_PAN_WITH_INERTIA: u32 = 16;
pub const GC_ROTATE: u32 = 1;
pub const GC_TWOFINGERTAP: u32 = 1;
pub const GC_PRESSANDTAP: u32 = 1;
pub const GC_ROLLOVER: u32 = 1;
pub const GESTURECONFIGMAXCOUNT: u32 = 256;
pub const GCF_INCLUDE_ANCESTORS: u32 = 1;
pub const NID_INTEGRATED_TOUCH: u32 = 1;
pub const NID_EXTERNAL_TOUCH: u32 = 2;
pub const NID_INTEGRATED_PEN: u32 = 4;
pub const NID_EXTERNAL_PEN: u32 = 8;
pub const NID_MULTI_INPUT: u32 = 64;
pub const NID_READY: u32 = 128;
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_COMPOSITECHECK: u32 = 512;
pub const WC_DISCARDNS: u32 = 16;
pub const WC_SEPCHARS: u32 = 32;
pub const WC_DEFAULTCHAR: u32 = 64;
pub const WC_ERR_INVALID_CHARS: u32 = 128;
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_TITLECASE: u32 = 768;
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 LCMAP_SORTHANDLE: u32 = 536870912;
pub const LCMAP_HASH: u32 = 262144;
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 LOCALE_ALL: u32 = 0;
pub const LOCALE_WINDOWS: u32 = 1;
pub const LOCALE_SUPPLEMENTAL: u32 = 2;
pub const LOCALE_ALTERNATE_SORTS: u32 = 4;
pub const LOCALE_REPLACEMENT: u32 = 8;
pub const LOCALE_NEUTRALDATA: u32 = 16;
pub const LOCALE_SPECIFICDATA: u32 = 32;
pub const CP_INSTALLED: u32 = 1;
pub const CP_SUPPORTED: u32 = 2;
pub const SORT_STRINGSORT: u32 = 4096;
pub const SORT_DIGITSASNUMBERS: u32 = 8;
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_NOUSEROVERRIDE: u32 = 2147483648;
pub const LOCALE_USE_CP_ACP: u32 = 1073741824;
pub const LOCALE_RETURN_NUMBER: u32 = 536870912;
pub const LOCALE_RETURN_GENITIVE_NAMES: u32 = 268435456;
pub const LOCALE_ALLOW_NEUTRAL_NAMES: u32 = 134217728;
pub const LOCALE_SLOCALIZEDDISPLAYNAME: u32 = 2;
pub const LOCALE_SENGLISHDISPLAYNAME: u32 = 114;
pub const LOCALE_SNATIVEDISPLAYNAME: u32 = 115;
pub const LOCALE_SLOCALIZEDLANGUAGENAME: u32 = 111;
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_IDIALINGCODE: u32 = 5;
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_ICURRENCY: u32 = 27;
pub const LOCALE_INEGCURR: u32 = 28;
pub const LOCALE_SSHORTDATE: u32 = 31;
pub const LOCALE_SLONGDATE: u32 = 32;
pub const LOCALE_STIMEFORMAT: u32 = 4099;
pub const LOCALE_SAM: u32 = 40;
pub const LOCALE_SPM: 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_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 LOCALE_SNAME: u32 = 92;
pub const LOCALE_SDURATION: u32 = 93;
pub const LOCALE_SSHORTESTDAYNAME1: u32 = 96;
pub const LOCALE_SSHORTESTDAYNAME2: u32 = 97;
pub const LOCALE_SSHORTESTDAYNAME3: u32 = 98;
pub const LOCALE_SSHORTESTDAYNAME4: u32 = 99;
pub const LOCALE_SSHORTESTDAYNAME5: u32 = 100;
pub const LOCALE_SSHORTESTDAYNAME6: u32 = 101;
pub const LOCALE_SSHORTESTDAYNAME7: u32 = 102;
pub const LOCALE_SISO639LANGNAME2: u32 = 103;
pub const LOCALE_SISO3166CTRYNAME2: u32 = 104;
pub const LOCALE_SNAN: u32 = 105;
pub const LOCALE_SPOSINFINITY: u32 = 106;
pub const LOCALE_SNEGINFINITY: u32 = 107;
pub const LOCALE_SSCRIPTS: u32 = 108;
pub const LOCALE_SPARENT: u32 = 109;
pub const LOCALE_SCONSOLEFALLBACKNAME: u32 = 110;
pub const LOCALE_IREADINGLAYOUT: u32 = 112;
pub const LOCALE_INEUTRAL: u32 = 113;
pub const LOCALE_INEGATIVEPERCENT: u32 = 116;
pub const LOCALE_IPOSITIVEPERCENT: u32 = 117;
pub const LOCALE_SPERCENT: u32 = 118;
pub const LOCALE_SPERMILLE: u32 = 119;
pub const LOCALE_SMONTHDAY: u32 = 120;
pub const LOCALE_SSHORTTIME: u32 = 121;
pub const LOCALE_SOPENTYPELANGUAGETAG: u32 = 122;
pub const LOCALE_SSORTLOCALE: u32 = 123;
pub const LOCALE_SRELATIVELONGDATE: u32 = 124;
pub const LOCALE_SSHORTESTAM: u32 = 126;
pub const LOCALE_SSHORTESTPM: u32 = 127;
pub const LOCALE_IDEFAULTCODEPAGE: u32 = 11;
pub const LOCALE_IDEFAULTANSICODEPAGE: u32 = 4100;
pub const LOCALE_IDEFAULTMACCODEPAGE: u32 = 4113;
pub const LOCALE_IDEFAULTEBCDICCODEPAGE: u32 = 4114;
pub const LOCALE_ILANGUAGE: u32 = 1;
pub const LOCALE_SABBREVLANGNAME: u32 = 3;
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_IINTLCURRDIGITS: u32 = 26;
pub const LOCALE_SDATE: u32 = 29;
pub const LOCALE_STIME: u32 = 30;
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_SKEYBOARDSTOINSTALL: u32 = 94;
pub const LOCALE_SLANGUAGE: u32 = 2;
pub const LOCALE_SLANGDISPLAYNAME: u32 = 111;
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_ICOUNTRY: u32 = 5;
pub const LOCALE_S1159: u32 = 40;
pub const LOCALE_S2359: u32 = 41;
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 DATE_AUTOLAYOUT: u32 = 64;
pub const DATE_MONTHDAY: u32 = 128;
pub const CAL_NOUSEROVERRIDE: u32 = 2147483648;
pub const CAL_USE_CP_ACP: u32 = 1073741824;
pub const CAL_RETURN_NUMBER: u32 = 536870912;
pub const CAL_RETURN_GENITIVE_NAMES: u32 = 268435456;
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 CAL_SSHORTESTDAYNAME1: u32 = 49;
pub const CAL_SSHORTESTDAYNAME2: u32 = 50;
pub const CAL_SSHORTESTDAYNAME3: u32 = 51;
pub const CAL_SSHORTESTDAYNAME4: u32 = 52;
pub const CAL_SSHORTESTDAYNAME5: u32 = 53;
pub const CAL_SSHORTESTDAYNAME6: u32 = 54;
pub const CAL_SSHORTESTDAYNAME7: u32 = 55;
pub const CAL_SMONTHDAY: u32 = 56;
pub const CAL_SABBREVERASTRING: u32 = 57;
pub const CAL_SRELATIVELONGDATE: u32 = 58;
pub const CAL_SENGLISHERANAME: u32 = 59;
pub const CAL_SENGLISHABBREVERANAME: u32 = 60;
pub const CAL_SJAPANESEERAFIRSTYEAR: u32 = 61;
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_PERSIAN: u32 = 22;
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 MUI_LANGUAGE_ID: u32 = 4;
pub const MUI_LANGUAGE_NAME: u32 = 8;
pub const MUI_MERGE_SYSTEM_FALLBACK: u32 = 16;
pub const MUI_MERGE_USER_FALLBACK: u32 = 32;
pub const MUI_UI_FALLBACK: u32 = 48;
pub const MUI_THREAD_LANGUAGES: u32 = 64;
pub const MUI_CONSOLE_FILTER: u32 = 256;
pub const MUI_COMPLEX_SCRIPT_FILTER: u32 = 512;
pub const MUI_RESET_FILTERS: u32 = 1;
pub const MUI_USER_PREFERRED_UI_LANGUAGES: u32 = 16;
pub const MUI_USE_INSTALLED_LANGUAGES: u32 = 32;
pub const MUI_USE_SEARCH_ALL_LANGUAGES: u32 = 64;
pub const MUI_LANG_NEUTRAL_PE_FILE: u32 = 256;
pub const MUI_NON_LANG_NEUTRAL_FILE: u32 = 512;
pub const MUI_MACHINE_LANGUAGE_SETTINGS: u32 = 1024;
pub const MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL: u32 = 1;
pub const MUI_FILETYPE_LANGUAGE_NEUTRAL_MAIN: u32 = 2;
pub const MUI_FILETYPE_LANGUAGE_NEUTRAL_MUI: u32 = 4;
pub const MUI_QUERY_TYPE: u32 = 1;
pub const MUI_QUERY_CHECKSUM: u32 = 2;
pub const MUI_QUERY_LANGUAGE_NAME: u32 = 4;
pub const MUI_QUERY_RESOURCE_TYPES: u32 = 8;
pub const MUI_FILEINFO_VERSION: u32 = 1;
pub const MUI_FULL_LANGUAGE: u32 = 1;
pub const MUI_PARTIAL_LANGUAGE: u32 = 2;
pub const MUI_LIP_LANGUAGE: u32 = 4;
pub const MUI_LANGUAGE_INSTALLED: u32 = 32;
pub const MUI_LANGUAGE_LICENSED: u32 = 64;
pub const GEOID_NOT_AVAILABLE: i32 = -1;
pub const IDN_ALLOW_UNASSIGNED: u32 = 1;
pub const IDN_USE_STD3_ASCII_RULES: u32 = 2;
pub const IDN_EMAIL_ADDRESS: u32 = 4;
pub const IDN_RAW_PUNYCODE: u32 = 8;
pub const VS_ALLOW_LATIN: u32 = 1;
pub const GSS_ALLOW_INHERITED_COMMON: u32 = 1;
pub const MUI_FORMAT_REG_COMPAT: u32 = 1;
pub const MUI_FORMAT_INF_COMPAT: u32 = 2;
pub const MUI_VERIFY_FILE_EXISTS: u32 = 4;
pub const MUI_SKIP_STRING_CACHE: u32 = 8;
pub const MUI_IMMUTABLE_LOOKUP: u32 = 16;
pub const LOCALE_NAME_INVARIANT: &'static [u8; 1usize] = b"\0";
pub const LOCALE_NAME_SYSTEM_DEFAULT: &'static [u8; 22usize] = b"!x-sys-default-locale\0";
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 ALTNUMPAD_BIT: u32 = 67108864;
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 MOUSE_HWHEELED: u32 = 8;
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 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 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 PSEUDOCONSOLE_INHERIT_CURSOR: u32 = 1;
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 HISTORY_NO_DUP_FLAG: 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 CONSOLE_TEXTMODE_BUFFER: u32 = 1;
pub const VS_VERSION_INFO: u32 = 1;
pub const VS_USER_DEFINED: u32 = 100;
pub const VS_FFI_SIGNATURE: u32 = 4277077181;
pub const VS_FFI_STRUCVERSION: u32 = 65536;
pub const VS_FFI_FILEFLAGSMASK: u32 = 63;
pub const VS_FF_DEBUG: u32 = 1;
pub const VS_FF_PRERELEASE: u32 = 2;
pub const VS_FF_PATCHED: u32 = 4;
pub const VS_FF_PRIVATEBUILD: u32 = 8;
pub const VS_FF_INFOINFERRED: u32 = 16;
pub const VS_FF_SPECIALBUILD: u32 = 32;
pub const VOS_UNKNOWN: u32 = 0;
pub const VOS_DOS: u32 = 65536;
pub const VOS_OS216: u32 = 131072;
pub const VOS_OS232: u32 = 196608;
pub const VOS_NT: u32 = 262144;
pub const VOS_WINCE: u32 = 327680;
pub const VOS__BASE: u32 = 0;
pub const VOS__WINDOWS16: u32 = 1;
pub const VOS__PM16: u32 = 2;
pub const VOS__PM32: u32 = 3;
pub const VOS__WINDOWS32: u32 = 4;
pub const VOS_DOS_WINDOWS16: u32 = 65537;
pub const VOS_DOS_WINDOWS32: u32 = 65540;
pub const VOS_OS216_PM16: u32 = 131074;
pub const VOS_OS232_PM32: u32 = 196611;
pub const VOS_NT_WINDOWS32: u32 = 262148;
pub const VFT_UNKNOWN: u32 = 0;
pub const VFT_APP: u32 = 1;
pub const VFT_DLL: u32 = 2;
pub const VFT_DRV: u32 = 3;
pub const VFT_FONT: u32 = 4;
pub const VFT_VXD: u32 = 5;
pub const VFT_STATIC_LIB: u32 = 7;
pub const VFT2_UNKNOWN: u32 = 0;
pub const VFT2_DRV_PRINTER: u32 = 1;
pub const VFT2_DRV_KEYBOARD: u32 = 2;
pub const VFT2_DRV_LANGUAGE: u32 = 3;
pub const VFT2_DRV_DISPLAY: u32 = 4;
pub const VFT2_DRV_MOUSE: u32 = 5;
pub const VFT2_DRV_NETWORK: u32 = 6;
pub const VFT2_DRV_SYSTEM: u32 = 7;
pub const VFT2_DRV_INSTALLABLE: u32 = 8;
pub const VFT2_DRV_SOUND: u32 = 9;
pub const VFT2_DRV_COMM: u32 = 10;
pub const VFT2_DRV_INPUTMETHOD: u32 = 11;
pub const VFT2_DRV_VERSIONED_PRINTER: u32 = 12;
pub const VFT2_FONT_RASTER: u32 = 1;
pub const VFT2_FONT_VECTOR: u32 = 2;
pub const VFT2_FONT_TRUETYPE: u32 = 3;
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 VIF_TEMPFILE: u32 = 1;
pub const VIF_MISMATCH: u32 = 2;
pub const VIF_SRCOLD: u32 = 4;
pub const VIF_DIFFLANG: u32 = 8;
pub const VIF_DIFFCODEPG: u32 = 16;
pub const VIF_DIFFTYPE: u32 = 32;
pub const VIF_WRITEPROT: u32 = 64;
pub const VIF_FILEINUSE: u32 = 128;
pub const VIF_OUTOFSPACE: u32 = 256;
pub const VIF_ACCESSVIOLATION: u32 = 512;
pub const VIF_SHARINGVIOLATION: u32 = 1024;
pub const VIF_CANNOTCREATE: u32 = 2048;
pub const VIF_CANNOTDELETE: u32 = 4096;
pub const VIF_CANNOTRENAME: u32 = 8192;
pub const VIF_CANNOTDELETECUR: u32 = 16384;
pub const VIF_OUTOFMEMORY: u32 = 32768;
pub const VIF_CANNOTREADSRC: u32 = 65536;
pub const VIF_CANNOTREADDST: u32 = 131072;
pub const VIF_BUFFTOOSMALL: u32 = 262144;
pub const VIF_CANNOTLOADLZ32: u32 = 524288;
pub const VIF_CANNOTLOADCABINET: u32 = 1048576;
pub const FILE_VER_GET_LOCALISED: u32 = 1;
pub const FILE_VER_GET_NEUTRAL: u32 = 2;
pub const FILE_VER_GET_PREFETCHED: u32 = 4;
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_SUBKEY_WOW6464KEY: u32 = 65536;
pub const RRF_SUBKEY_WOW6432KEY: u32 = 131072;
pub const RRF_WOW64_MASK: u32 = 196608;
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_MOBILE_UI_RESERVED: u32 = 268435456;
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 SHUTDOWN_FORCE_OTHERS: u32 = 1;
pub const SHUTDOWN_FORCE_SELF: u32 = 2;
pub const SHUTDOWN_RESTART: u32 = 4;
pub const SHUTDOWN_POWEROFF: u32 = 8;
pub const SHUTDOWN_NOREBOOT: u32 = 16;
pub const SHUTDOWN_GRACE_OVERRIDE: u32 = 32;
pub const SHUTDOWN_INSTALL_UPDATES: u32 = 64;
pub const SHUTDOWN_RESTARTAPPS: u32 = 128;
pub const SHUTDOWN_SKIP_SVC_PRESHUTDOWN: u32 = 256;
pub const SHUTDOWN_HYBRID: u32 = 512;
pub const SHUTDOWN_RESTART_BOOTOPTIONS: u32 = 1024;
pub const SHUTDOWN_SOFT_REBOOT: u32 = 2048;
pub const SHUTDOWN_MOBILE_UI: u32 = 4096;
pub const SHUTDOWN_ARSO: u32 = 8192;
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_NET_DOCUSHARE: u32 = 4521984;
pub const WNNC_NET_AURISTOR_FS: u32 = 4587520;
pub const WNNC_NET_SECUREAGENT: u32 = 4653056;
pub const WNNC_NET_9P: u32 = 4718592;
pub const WNNC_CRED_MANAGER: u32 = 4294901760;
pub const WNNC_NET_LANMAN: u32 = 131072;
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 CONNECT_CRED_RESET: u32 = 8192;
pub const CONNECT_REQUIRE_INTEGRITY: u32 = 16384;
pub const CONNECT_REQUIRE_PRIVACY: u32 = 32768;
pub const CONNECT_WRITE_THROUGH_SEMANTICS: u32 = 65536;
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 WN_SUCCESS: u32 = 0;
pub const WN_NO_ERROR: u32 = 0;
pub const WN_NOT_SUPPORTED: u32 = 50;
pub const WN_CANCEL: u32 = 1223;
pub const WN_RETRY: u32 = 1237;
pub const WN_NET_ERROR: u32 = 59;
pub const WN_MORE_DATA: u32 = 234;
pub const WN_BAD_POINTER: u32 = 487;
pub const WN_BAD_VALUE: u32 = 87;
pub const WN_BAD_USER: u32 = 2202;
pub const WN_BAD_PASSWORD: u32 = 86;
pub const WN_ACCESS_DENIED: u32 = 5;
pub const WN_FUNCTION_BUSY: u32 = 170;
pub const WN_WINDOWS_ERROR: u32 = 59;
pub const WN_OUT_OF_MEMORY: u32 = 8;
pub const WN_NO_NETWORK: u32 = 1222;
pub const WN_EXTENDED_ERROR: u32 = 1208;
pub const WN_BAD_LEVEL: u32 = 124;
pub const WN_BAD_HANDLE: u32 = 6;
pub const WN_NOT_INITIALIZING: u32 = 1247;
pub const WN_NO_MORE_DEVICES: u32 = 1248;
pub const WN_NOT_CONNECTED: u32 = 2250;
pub const WN_OPEN_FILES: u32 = 2401;
pub const WN_DEVICE_IN_USE: u32 = 2404;
pub const WN_BAD_NETNAME: u32 = 67;
pub const WN_BAD_LOCALNAME: u32 = 1200;
pub const WN_ALREADY_CONNECTED: u32 = 85;
pub const WN_DEVICE_ERROR: u32 = 31;
pub const WN_CONNECTION_CLOSED: u32 = 1201;
pub const WN_NO_NET_OR_BAD_PATH: u32 = 1203;
pub const WN_BAD_PROVIDER: u32 = 1204;
pub const WN_CANNOT_OPEN_PROFILE: u32 = 1205;
pub const WN_BAD_PROFILE: u32 = 1206;
pub const WN_BAD_DEV_TYPE: u32 = 66;
pub const WN_DEVICE_ALREADY_REMEMBERED: u32 = 1202;
pub const WN_CONNECTED_OTHER_PASSWORD: u32 = 2108;
pub const WN_CONNECTED_OTHER_PASSWORD_DEFAULT: u32 = 2109;
pub const WN_NO_MORE_ENTRIES: u32 = 259;
pub const WN_NOT_CONTAINER: u32 = 1207;
pub const WN_NOT_AUTHENTICATED: u32 = 1244;
pub const WN_NOT_LOGGED_ON: u32 = 1245;
pub const WN_NOT_VALIDATED: u32 = 1311;
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 CDERR_DIALOGFAILURE: u32 = 65535;
pub const CDERR_GENERALCODES: u32 = 0;
pub const CDERR_STRUCTSIZE: u32 = 1;
pub const CDERR_INITIALIZATION: u32 = 2;
pub const CDERR_NOTEMPLATE: u32 = 3;
pub const CDERR_NOHINSTANCE: u32 = 4;
pub const CDERR_LOADSTRFAILURE: u32 = 5;
pub const CDERR_FINDRESFAILURE: u32 = 6;
pub const CDERR_LOADRESFAILURE: u32 = 7;
pub const CDERR_LOCKRESFAILURE: u32 = 8;
pub const CDERR_MEMALLOCFAILURE: u32 = 9;
pub const CDERR_MEMLOCKFAILURE: u32 = 10;
pub const CDERR_NOHOOK: u32 = 11;
pub const CDERR_REGISTERMSGFAIL: u32 = 12;
pub const PDERR_PRINTERCODES: u32 = 4096;
pub const PDERR_SETUPFAILURE: u32 = 4097;
pub const PDERR_PARSEFAILURE: u32 = 4098;
pub const PDERR_RETDEFFAILURE: u32 = 4099;
pub const PDERR_LOADDRVFAILURE: u32 = 4100;
pub const PDERR_GETDEVMODEFAIL: u32 = 4101;
pub const PDERR_INITFAILURE: u32 = 4102;
pub const PDERR_NODEVICES: u32 = 4103;
pub const PDERR_NODEFAULTPRN: u32 = 4104;
pub const PDERR_DNDMMISMATCH: u32 = 4105;
pub const PDERR_CREATEICFAILURE: u32 = 4106;
pub const PDERR_PRINTERNOTFOUND: u32 = 4107;
pub const PDERR_DEFAULTDIFFERENT: u32 = 4108;
pub const CFERR_CHOOSEFONTCODES: u32 = 8192;
pub const CFERR_NOFONTS: u32 = 8193;
pub const CFERR_MAXLESSTHANMIN: u32 = 8194;
pub const FNERR_FILENAMECODES: u32 = 12288;
pub const FNERR_SUBCLASSFAILURE: u32 = 12289;
pub const FNERR_INVALIDFILENAME: u32 = 12290;
pub const FNERR_BUFFERTOOSMALL: u32 = 12291;
pub const FRERR_FINDREPLACECODES: u32 = 16384;
pub const FRERR_BUFFERLENGTHZERO: u32 = 16385;
pub const CCERR_CHOOSECOLORCODES: u32 = 20480;
pub const WM_DDE_FIRST: u32 = 992;
pub const WM_DDE_INITIATE: u32 = 992;
pub const WM_DDE_TERMINATE: u32 = 993;
pub const WM_DDE_ADVISE: u32 = 994;
pub const WM_DDE_UNADVISE: u32 = 995;
pub const WM_DDE_ACK: u32 = 996;
pub const WM_DDE_DATA: u32 = 997;
pub const WM_DDE_REQUEST: u32 = 998;
pub const WM_DDE_POKE: u32 = 999;
pub const WM_DDE_EXECUTE: u32 = 1000;
pub const WM_DDE_LAST: u32 = 1000;
pub const XST_NULL: u32 = 0;
pub const XST_INCOMPLETE: u32 = 1;
pub const XST_CONNECTED: u32 = 2;
pub const XST_INIT1: u32 = 3;
pub const XST_INIT2: u32 = 4;
pub const XST_REQSENT: u32 = 5;
pub const XST_DATARCVD: u32 = 6;
pub const XST_POKESENT: u32 = 7;
pub const XST_POKEACKRCVD: u32 = 8;
pub const XST_EXECSENT: u32 = 9;
pub const XST_EXECACKRCVD: u32 = 10;
pub const XST_ADVSENT: u32 = 11;
pub const XST_UNADVSENT: u32 = 12;
pub const XST_ADVACKRCVD: u32 = 13;
pub const XST_UNADVACKRCVD: u32 = 14;
pub const XST_ADVDATASENT: u32 = 15;
pub const XST_ADVDATAACKRCVD: u32 = 16;
pub const CADV_LATEACK: u32 = 65535;
pub const ST_CONNECTED: u32 = 1;
pub const ST_ADVISE: u32 = 2;
pub const ST_ISLOCAL: u32 = 4;
pub const ST_BLOCKED: u32 = 8;
pub const ST_CLIENT: u32 = 16;
pub const ST_TERMINATED: u32 = 32;
pub const ST_INLIST: u32 = 64;
pub const ST_BLOCKNEXT: u32 = 128;
pub const ST_ISSELF: u32 = 256;
pub const DDE_FACK: u32 = 32768;
pub const DDE_FBUSY: u32 = 16384;
pub const DDE_FDEFERUPD: u32 = 16384;
pub const DDE_FACKREQ: u32 = 32768;
pub const DDE_FRELEASE: u32 = 8192;
pub const DDE_FREQUESTED: u32 = 4096;
pub const DDE_FAPPSTATUS: u32 = 255;
pub const DDE_FNOTPROCESSED: u32 = 0;
pub const DDE_FACKRESERVED: i32 = -49408;
pub const DDE_FADVRESERVED: i32 = -49153;
pub const DDE_FDATRESERVED: i32 = -45057;
pub const DDE_FPOKRESERVED: i32 = -8193;
pub const MSGF_DDEMGR: u32 = 32769;
pub const CP_WINANSI: u32 = 1004;
pub const CP_WINUNICODE: u32 = 1200;
pub const CP_WINNEUTRAL: u32 = 1004;
pub const XTYPF_NOBLOCK: u32 = 2;
pub const XTYPF_NODATA: u32 = 4;
pub const XTYPF_ACKREQ: u32 = 8;
pub const XCLASS_MASK: u32 = 64512;
pub const XCLASS_BOOL: u32 = 4096;
pub const XCLASS_DATA: u32 = 8192;
pub const XCLASS_FLAGS: u32 = 16384;
pub const XCLASS_NOTIFICATION: u32 = 32768;
pub const XTYP_ERROR: u32 = 32770;
pub const XTYP_ADVDATA: u32 = 16400;
pub const XTYP_ADVREQ: u32 = 8226;
pub const XTYP_ADVSTART: u32 = 4144;
pub const XTYP_ADVSTOP: u32 = 32832;
pub const XTYP_EXECUTE: u32 = 16464;
pub const XTYP_CONNECT: u32 = 4194;
pub const XTYP_CONNECT_CONFIRM: u32 = 32882;
pub const XTYP_XACT_COMPLETE: u32 = 32896;
pub const XTYP_POKE: u32 = 16528;
pub const XTYP_REGISTER: u32 = 32930;
pub const XTYP_REQUEST: u32 = 8368;
pub const XTYP_DISCONNECT: u32 = 32962;
pub const XTYP_UNREGISTER: u32 = 32978;
pub const XTYP_WILDCONNECT: u32 = 8418;
pub const XTYP_MASK: u32 = 240;
pub const XTYP_SHIFT: u32 = 4;
pub const TIMEOUT_ASYNC: u32 = 4294967295;
pub const QID_SYNC: u32 = 4294967295;
pub const SZDDESYS_TOPIC: &'static [u8; 7usize] = b"System\0";
pub const SZDDESYS_ITEM_TOPICS: &'static [u8; 7usize] = b"Topics\0";
pub const SZDDESYS_ITEM_SYSITEMS: &'static [u8; 9usize] = b"SysItems\0";
pub const SZDDESYS_ITEM_RTNMSG: &'static [u8; 14usize] = b"ReturnMessage\0";
pub const SZDDESYS_ITEM_STATUS: &'static [u8; 7usize] = b"Status\0";
pub const SZDDESYS_ITEM_FORMATS: &'static [u8; 8usize] = b"Formats\0";
pub const SZDDESYS_ITEM_HELP: &'static [u8; 5usize] = b"Help\0";
pub const SZDDE_ITEM_ITEMLIST: &'static [u8; 14usize] = b"TopicItemList\0";
pub const CBF_FAIL_SELFCONNECTIONS: u32 = 4096;
pub const CBF_FAIL_CONNECTIONS: u32 = 8192;
pub const CBF_FAIL_ADVISES: u32 = 16384;
pub const CBF_FAIL_EXECUTES: u32 = 32768;
pub const CBF_FAIL_POKES: u32 = 65536;
pub const CBF_FAIL_REQUESTS: u32 = 131072;
pub const CBF_FAIL_ALLSVRXACTIONS: u32 = 258048;
pub const CBF_SKIP_CONNECT_CONFIRMS: u32 = 262144;
pub const CBF_SKIP_REGISTRATIONS: u32 = 524288;
pub const CBF_SKIP_UNREGISTRATIONS: u32 = 1048576;
pub const CBF_SKIP_DISCONNECTS: u32 = 2097152;
pub const CBF_SKIP_ALLNOTIFICATIONS: u32 = 3932160;
pub const APPCMD_CLIENTONLY: u32 = 16;
pub const APPCMD_FILTERINITS: u32 = 32;
pub const APPCMD_MASK: u32 = 4080;
pub const APPCLASS_STANDARD: u32 = 0;
pub const APPCLASS_MASK: u32 = 15;
pub const EC_ENABLEALL: u32 = 0;
pub const EC_ENABLEONE: u32 = 128;
pub const EC_DISABLE: u32 = 8;
pub const EC_QUERYWAITING: u32 = 2;
pub const DNS_REGISTER: u32 = 1;
pub const DNS_UNREGISTER: u32 = 2;
pub const DNS_FILTERON: u32 = 4;
pub const DNS_FILTEROFF: u32 = 8;
pub const HDATA_APPOWNED: u32 = 1;
pub const DMLERR_NO_ERROR: u32 = 0;
pub const DMLERR_FIRST: u32 = 16384;
pub const DMLERR_ADVACKTIMEOUT: u32 = 16384;
pub const DMLERR_BUSY: u32 = 16385;
pub const DMLERR_DATAACKTIMEOUT: u32 = 16386;
pub const DMLERR_DLL_NOT_INITIALIZED: u32 = 16387;
pub const DMLERR_DLL_USAGE: u32 = 16388;
pub const DMLERR_EXECACKTIMEOUT: u32 = 16389;
pub const DMLERR_INVALIDPARAMETER: u32 = 16390;
pub const DMLERR_LOW_MEMORY: u32 = 16391;
pub const DMLERR_MEMORY_ERROR: u32 = 16392;
pub const DMLERR_NOTPROCESSED: u32 = 16393;
pub const DMLERR_NO_CONV_ESTABLISHED: u32 = 16394;
pub const DMLERR_POKEACKTIMEOUT: u32 = 16395;
pub const DMLERR_POSTMSG_FAILED: u32 = 16396;
pub const DMLERR_REENTRANCY: u32 = 16397;
pub const DMLERR_SERVER_DIED: u32 = 16398;
pub const DMLERR_SYS_ERROR: u32 = 16399;
pub const DMLERR_UNADVACKTIMEOUT: u32 = 16400;
pub const DMLERR_UNFOUND_QUEUE_ID: u32 = 16401;
pub const DMLERR_LAST: u32 = 16401;
pub const MH_CREATE: u32 = 1;
pub const MH_KEEP: u32 = 2;
pub const MH_DELETE: u32 = 3;
pub const MH_CLEANUP: u32 = 4;
pub const MAX_MONITORS: u32 = 4;
pub const APPCLASS_MONITOR: u32 = 1;
pub const XTYP_MONITOR: u32 = 33010;
pub const MF_HSZ_INFO: u32 = 16777216;
pub const MF_SENDMSGS: u32 = 33554432;
pub const MF_POSTMSGS: u32 = 67108864;
pub const MF_CALLBACKS: u32 = 134217728;
pub const MF_ERRORS: u32 = 268435456;
pub const MF_LINKS: u32 = 536870912;
pub const MF_CONV: u32 = 1073741824;
pub const MF_MASK: u32 = 4278190080;
pub const ctlFirst: u32 = 1024;
pub const ctlLast: u32 = 1279;
pub const psh1: u32 = 1024;
pub const psh2: u32 = 1025;
pub const psh3: u32 = 1026;
pub const psh4: u32 = 1027;
pub const psh5: u32 = 1028;
pub const psh6: u32 = 1029;
pub const psh7: u32 = 1030;
pub const psh8: u32 = 1031;
pub const psh9: u32 = 1032;
pub const psh10: u32 = 1033;
pub const psh11: u32 = 1034;
pub const psh12: u32 = 1035;
pub const psh13: u32 = 1036;
pub const psh14: u32 = 1037;
pub const psh15: u32 = 1038;
pub const pshHelp: u32 = 1038;
pub const psh16: u32 = 1039;
pub const chx1: u32 = 1040;
pub const chx2: u32 = 1041;
pub const chx3: u32 = 1042;
pub const chx4: u32 = 1043;
pub const chx5: u32 = 1044;
pub const chx6: u32 = 1045;
pub const chx7: u32 = 1046;
pub const chx8: u32 = 1047;
pub const chx9: u32 = 1048;
pub const chx10: u32 = 1049;
pub const chx11: u32 = 1050;
pub const chx12: u32 = 1051;
pub const chx13: u32 = 1052;
pub const chx14: u32 = 1053;
pub const chx15: u32 = 1054;
pub const chx16: u32 = 1055;
pub const rad1: u32 = 1056;
pub const rad2: u32 = 1057;
pub const rad3: u32 = 1058;
pub const rad4: u32 = 1059;
pub const rad5: u32 = 1060;
pub const rad6: u32 = 1061;
pub const rad7: u32 = 1062;
pub const rad8: u32 = 1063;
pub const rad9: u32 = 1064;
pub const rad10: u32 = 1065;
pub const rad11: u32 = 1066;
pub const rad12: u32 = 1067;
pub const rad13: u32 = 1068;
pub const rad14: u32 = 1069;
pub const rad15: u32 = 1070;
pub const rad16: u32 = 1071;
pub const grp1: u32 = 1072;
pub const grp2: u32 = 1073;
pub const grp3: u32 = 1074;
pub const grp4: u32 = 1075;
pub const frm1: u32 = 1076;
pub const frm2: u32 = 1077;
pub const frm3: u32 = 1078;
pub const frm4: u32 = 1079;
pub const rct1: u32 = 1080;
pub const rct2: u32 = 1081;
pub const rct3: u32 = 1082;
pub const rct4: u32 = 1083;
pub const ico1: u32 = 1084;
pub const ico2: u32 = 1085;
pub const ico3: u32 = 1086;
pub const ico4: u32 = 1087;
pub const stc1: u32 = 1088;
pub const stc2: u32 = 1089;
pub const stc3: u32 = 1090;
pub const stc4: u32 = 1091;
pub const stc5: u32 = 1092;
pub const stc6: u32 = 1093;
pub const stc7: u32 = 1094;
pub const stc8: u32 = 1095;
pub const stc9: u32 = 1096;
pub const stc10: u32 = 1097;
pub const stc11: u32 = 1098;
pub const stc12: u32 = 1099;
pub const stc13: u32 = 1100;
pub const stc14: u32 = 1101;
pub const stc15: u32 = 1102;
pub const stc16: u32 = 1103;
pub const stc17: u32 = 1104;
pub const stc18: u32 = 1105;
pub const stc19: u32 = 1106;
pub const stc20: u32 = 1107;
pub const stc21: u32 = 1108;
pub const stc22: u32 = 1109;
pub const stc23: u32 = 1110;
pub const stc24: u32 = 1111;
pub const stc25: u32 = 1112;
pub const stc26: u32 = 1113;
pub const stc27: u32 = 1114;
pub const stc28: u32 = 1115;
pub const stc29: u32 = 1116;
pub const stc30: u32 = 1117;
pub const stc31: u32 = 1118;
pub const stc32: u32 = 1119;
pub const lst1: u32 = 1120;
pub const lst2: u32 = 1121;
pub const lst3: u32 = 1122;
pub const lst4: u32 = 1123;
pub const lst5: u32 = 1124;
pub const lst6: u32 = 1125;
pub const lst7: u32 = 1126;
pub const lst8: u32 = 1127;
pub const lst9: u32 = 1128;
pub const lst10: u32 = 1129;
pub const lst11: u32 = 1130;
pub const lst12: u32 = 1131;
pub const lst13: u32 = 1132;
pub const lst14: u32 = 1133;
pub const lst15: u32 = 1134;
pub const lst16: u32 = 1135;
pub const cmb1: u32 = 1136;
pub const cmb2: u32 = 1137;
pub const cmb3: u32 = 1138;
pub const cmb4: u32 = 1139;
pub const cmb5: u32 = 1140;
pub const cmb6: u32 = 1141;
pub const cmb7: u32 = 1142;
pub const cmb8: u32 = 1143;
pub const cmb9: u32 = 1144;
pub const cmb10: u32 = 1145;
pub const cmb11: u32 = 1146;
pub const cmb12: u32 = 1147;
pub const cmb13: u32 = 1148;
pub const cmb14: u32 = 1149;
pub const cmb15: u32 = 1150;
pub const cmb16: u32 = 1151;
pub const edt1: u32 = 1152;
pub const edt2: u32 = 1153;
pub const edt3: u32 = 1154;
pub const edt4: u32 = 1155;
pub const edt5: u32 = 1156;
pub const edt6: u32 = 1157;
pub const edt7: u32 = 1158;
pub const edt8: u32 = 1159;
pub const edt9: u32 = 1160;
pub const edt10: u32 = 1161;
pub const edt11: u32 = 1162;
pub const edt12: u32 = 1163;
pub const edt13: u32 = 1164;
pub const edt14: u32 = 1165;
pub const edt15: u32 = 1166;
pub const edt16: u32 = 1167;
pub const scr1: u32 = 1168;
pub const scr2: u32 = 1169;
pub const scr3: u32 = 1170;
pub const scr4: u32 = 1171;
pub const scr5: u32 = 1172;
pub const scr6: u32 = 1173;
pub const scr7: u32 = 1174;
pub const scr8: u32 = 1175;
pub const ctl1: u32 = 1184;
pub const FILEOPENORD: u32 = 1536;
pub const MULTIFILEOPENORD: u32 = 1537;
pub const PRINTDLGORD: u32 = 1538;
pub const PRNSETUPDLGORD: u32 = 1539;
pub const FINDDLGORD: u32 = 1540;
pub const REPLACEDLGORD: u32 = 1541;
pub const FONTDLGORD: u32 = 1542;
pub const FORMATDLGORD31: u32 = 1543;
pub const FORMATDLGORD30: u32 = 1544;
pub const RUNDLGORD: u32 = 1545;
pub const PAGESETUPDLGORD: u32 = 1546;
pub const NEWFILEOPENORD: u32 = 1547;
pub const PRINTDLGEXORD: u32 = 1549;
pub const PAGESETUPDLGORDMOTIF: u32 = 1550;
pub const COLORMGMTDLGORD: u32 = 1551;
pub const NEWFILEOPENV2ORD: u32 = 1552;
pub const NEWFILEOPENV3ORD: u32 = 1553;
pub const NEWFORMATDLGWITHLINK: u32 = 1591;
pub const IDC_MANAGE_LINK: u32 = 1592;
pub const LZERROR_BADINHANDLE: i32 = -1;
pub const LZERROR_BADOUTHANDLE: i32 = -2;
pub const LZERROR_READ: i32 = -3;
pub const LZERROR_WRITE: i32 = -4;
pub const LZERROR_GLOBALLOC: i32 = -5;
pub const LZERROR_GLOBLOCK: i32 = -6;
pub const LZERROR_BADVALUE: i32 = -7;
pub const LZERROR_UNKNOWNALG: i32 = -8;
pub const MAXPNAMELEN: u32 = 32;
pub const MAXERRORLENGTH: u32 = 256;
pub const MAX_JOYSTICKOEMVXDNAME: u32 = 260;
pub const TIME_MS: u32 = 1;
pub const TIME_SAMPLES: u32 = 2;
pub const TIME_BYTES: u32 = 4;
pub const TIME_SMPTE: u32 = 8;
pub const TIME_MIDI: u32 = 16;
pub const TIME_TICKS: u32 = 32;
pub const MM_JOY1MOVE: u32 = 928;
pub const MM_JOY2MOVE: u32 = 929;
pub const MM_JOY1ZMOVE: u32 = 930;
pub const MM_JOY2ZMOVE: u32 = 931;
pub const MM_JOY1BUTTONDOWN: u32 = 949;
pub const MM_JOY2BUTTONDOWN: u32 = 950;
pub const MM_JOY1BUTTONUP: u32 = 951;
pub const MM_JOY2BUTTONUP: u32 = 952;
pub const MM_MCINOTIFY: u32 = 953;
pub const MM_WOM_OPEN: u32 = 955;
pub const MM_WOM_CLOSE: u32 = 956;
pub const MM_WOM_DONE: u32 = 957;
pub const MM_WIM_OPEN: u32 = 958;
pub const MM_WIM_CLOSE: u32 = 959;
pub const MM_WIM_DATA: u32 = 960;
pub const MM_MIM_OPEN: u32 = 961;
pub const MM_MIM_CLOSE: u32 = 962;
pub const MM_MIM_DATA: u32 = 963;
pub const MM_MIM_LONGDATA: u32 = 964;
pub const MM_MIM_ERROR: u32 = 965;
pub const MM_MIM_LONGERROR: u32 = 966;
pub const MM_MOM_OPEN: u32 = 967;
pub const MM_MOM_CLOSE: u32 = 968;
pub const MM_MOM_DONE: u32 = 969;
pub const MM_DRVM_OPEN: u32 = 976;
pub const MM_DRVM_CLOSE: u32 = 977;
pub const MM_DRVM_DATA: u32 = 978;
pub const MM_DRVM_ERROR: u32 = 979;
pub const MM_STREAM_OPEN: u32 = 980;
pub const MM_STREAM_CLOSE: u32 = 981;
pub const MM_STREAM_DONE: u32 = 982;
pub const MM_STREAM_ERROR: u32 = 983;
pub const MM_MOM_POSITIONCB: u32 = 970;
pub const MM_MCISIGNAL: u32 = 971;
pub const MM_MIM_MOREDATA: u32 = 972;
pub const MM_MIXM_LINE_CHANGE: u32 = 976;
pub const MM_MIXM_CONTROL_CHANGE: u32 = 977;
pub const MMSYSERR_BASE: u32 = 0;
pub const WAVERR_BASE: u32 = 32;
pub const MIDIERR_BASE: u32 = 64;
pub const TIMERR_BASE: u32 = 96;
pub const JOYERR_BASE: u32 = 160;
pub const MCIERR_BASE: u32 = 256;
pub const MIXERR_BASE: u32 = 1024;
pub const MCI_STRING_OFFSET: u32 = 512;
pub const MCI_VD_OFFSET: u32 = 1024;
pub const MCI_CD_OFFSET: u32 = 1088;
pub const MCI_WAVE_OFFSET: u32 = 1152;
pub const MCI_SEQ_OFFSET: u32 = 1216;
pub const MMSYSERR_NOERROR: u32 = 0;
pub const MMSYSERR_ERROR: u32 = 1;
pub const MMSYSERR_BADDEVICEID: u32 = 2;
pub const MMSYSERR_NOTENABLED: u32 = 3;
pub const MMSYSERR_ALLOCATED: u32 = 4;
pub const MMSYSERR_INVALHANDLE: u32 = 5;
pub const MMSYSERR_NODRIVER: u32 = 6;
pub const MMSYSERR_NOMEM: u32 = 7;
pub const MMSYSERR_NOTSUPPORTED: u32 = 8;
pub const MMSYSERR_BADERRNUM: u32 = 9;
pub const MMSYSERR_INVALFLAG: u32 = 10;
pub const MMSYSERR_INVALPARAM: u32 = 11;
pub const MMSYSERR_HANDLEBUSY: u32 = 12;
pub const MMSYSERR_INVALIDALIAS: u32 = 13;
pub const MMSYSERR_BADDB: u32 = 14;
pub const MMSYSERR_KEYNOTFOUND: u32 = 15;
pub const MMSYSERR_READERROR: u32 = 16;
pub const MMSYSERR_WRITEERROR: u32 = 17;
pub const MMSYSERR_DELETEERROR: u32 = 18;
pub const MMSYSERR_VALNOTFOUND: u32 = 19;
pub const MMSYSERR_NODRIVERCB: u32 = 20;
pub const MMSYSERR_MOREDATA: u32 = 21;
pub const MMSYSERR_LASTERROR: u32 = 21;
pub const CALLBACK_TYPEMASK: u32 = 458752;
pub const CALLBACK_NULL: u32 = 0;
pub const CALLBACK_WINDOW: u32 = 65536;
pub const CALLBACK_TASK: u32 = 131072;
pub const CALLBACK_FUNCTION: u32 = 196608;
pub const CALLBACK_THREAD: u32 = 131072;
pub const CALLBACK_EVENT: u32 = 327680;
pub const MCIERR_INVALID_DEVICE_ID: u32 = 257;
pub const MCIERR_UNRECOGNIZED_KEYWORD: u32 = 259;
pub const MCIERR_UNRECOGNIZED_COMMAND: u32 = 261;
pub const MCIERR_HARDWARE: u32 = 262;
pub const MCIERR_INVALID_DEVICE_NAME: u32 = 263;
pub const MCIERR_OUT_OF_MEMORY: u32 = 264;
pub const MCIERR_DEVICE_OPEN: u32 = 265;
pub const MCIERR_CANNOT_LOAD_DRIVER: u32 = 266;
pub const MCIERR_MISSING_COMMAND_STRING: u32 = 267;
pub const MCIERR_PARAM_OVERFLOW: u32 = 268;
pub const MCIERR_MISSING_STRING_ARGUMENT: u32 = 269;
pub const MCIERR_BAD_INTEGER: u32 = 270;
pub const MCIERR_PARSER_INTERNAL: u32 = 271;
pub const MCIERR_DRIVER_INTERNAL: u32 = 272;
pub const MCIERR_MISSING_PARAMETER: u32 = 273;
pub const MCIERR_UNSUPPORTED_FUNCTION: u32 = 274;
pub const MCIERR_FILE_NOT_FOUND: u32 = 275;
pub const MCIERR_DEVICE_NOT_READY: u32 = 276;
pub const MCIERR_INTERNAL: u32 = 277;
pub const MCIERR_DRIVER: u32 = 278;
pub const MCIERR_CANNOT_USE_ALL: u32 = 279;
pub const MCIERR_MULTIPLE: u32 = 280;
pub const MCIERR_EXTENSION_NOT_FOUND: u32 = 281;
pub const MCIERR_OUTOFRANGE: u32 = 282;
pub const MCIERR_FLAGS_NOT_COMPATIBLE: u32 = 284;
pub const MCIERR_FILE_NOT_SAVED: u32 = 286;
pub const MCIERR_DEVICE_TYPE_REQUIRED: u32 = 287;
pub const MCIERR_DEVICE_LOCKED: u32 = 288;
pub const MCIERR_DUPLICATE_ALIAS: u32 = 289;
pub const MCIERR_BAD_CONSTANT: u32 = 290;
pub const MCIERR_MUST_USE_SHAREABLE: u32 = 291;
pub const MCIERR_MISSING_DEVICE_NAME: u32 = 292;
pub const MCIERR_BAD_TIME_FORMAT: u32 = 293;
pub const MCIERR_NO_CLOSING_QUOTE: u32 = 294;
pub const MCIERR_DUPLICATE_FLAGS: u32 = 295;
pub const MCIERR_INVALID_FILE: u32 = 296;
pub const MCIERR_NULL_PARAMETER_BLOCK: u32 = 297;
pub const MCIERR_UNNAMED_RESOURCE: u32 = 298;
pub const MCIERR_NEW_REQUIRES_ALIAS: u32 = 299;
pub const MCIERR_NOTIFY_ON_AUTO_OPEN: u32 = 300;
pub const MCIERR_NO_ELEMENT_ALLOWED: u32 = 301;
pub const MCIERR_NONAPPLICABLE_FUNCTION: u32 = 302;
pub const MCIERR_ILLEGAL_FOR_AUTO_OPEN: u32 = 303;
pub const MCIERR_FILENAME_REQUIRED: u32 = 304;
pub const MCIERR_EXTRA_CHARACTERS: u32 = 305;
pub const MCIERR_DEVICE_NOT_INSTALLED: u32 = 306;
pub const MCIERR_GET_CD: u32 = 307;
pub const MCIERR_SET_CD: u32 = 308;
pub const MCIERR_SET_DRIVE: u32 = 309;
pub const MCIERR_DEVICE_LENGTH: u32 = 310;
pub const MCIERR_DEVICE_ORD_LENGTH: u32 = 311;
pub const MCIERR_NO_INTEGER: u32 = 312;
pub const MCIERR_WAVE_OUTPUTSINUSE: u32 = 320;
pub const MCIERR_WAVE_SETOUTPUTINUSE: u32 = 321;
pub const MCIERR_WAVE_INPUTSINUSE: u32 = 322;
pub const MCIERR_WAVE_SETINPUTINUSE: u32 = 323;
pub const MCIERR_WAVE_OUTPUTUNSPECIFIED: u32 = 324;
pub const MCIERR_WAVE_INPUTUNSPECIFIED: u32 = 325;
pub const MCIERR_WAVE_OUTPUTSUNSUITABLE: u32 = 326;
pub const MCIERR_WAVE_SETOUTPUTUNSUITABLE: u32 = 327;
pub const MCIERR_WAVE_INPUTSUNSUITABLE: u32 = 328;
pub const MCIERR_WAVE_SETINPUTUNSUITABLE: u32 = 329;
pub const MCIERR_SEQ_DIV_INCOMPATIBLE: u32 = 336;
pub const MCIERR_SEQ_PORT_INUSE: u32 = 337;
pub const MCIERR_SEQ_PORT_NONEXISTENT: u32 = 338;
pub const MCIERR_SEQ_PORT_MAPNODEVICE: u32 = 339;
pub const MCIERR_SEQ_PORT_MISCERROR: u32 = 340;
pub const MCIERR_SEQ_TIMER: u32 = 341;
pub const MCIERR_SEQ_PORTUNSPECIFIED: u32 = 342;
pub const MCIERR_SEQ_NOMIDIPRESENT: u32 = 343;
pub const MCIERR_NO_WINDOW: u32 = 346;
pub const MCIERR_CREATEWINDOW: u32 = 347;
pub const MCIERR_FILE_READ: u32 = 348;
pub const MCIERR_FILE_WRITE: u32 = 349;
pub const MCIERR_NO_IDENTITY: u32 = 350;
pub const MCIERR_CUSTOM_DRIVER_BASE: u32 = 512;
pub const MCI_OPEN: u32 = 2051;
pub const MCI_CLOSE: u32 = 2052;
pub const MCI_ESCAPE: u32 = 2053;
pub const MCI_PLAY: u32 = 2054;
pub const MCI_SEEK: u32 = 2055;
pub const MCI_STOP: u32 = 2056;
pub const MCI_PAUSE: u32 = 2057;
pub const MCI_INFO: u32 = 2058;
pub const MCI_GETDEVCAPS: u32 = 2059;
pub const MCI_SPIN: u32 = 2060;
pub const MCI_SET: u32 = 2061;
pub const MCI_STEP: u32 = 2062;
pub const MCI_RECORD: u32 = 2063;
pub const MCI_SYSINFO: u32 = 2064;
pub const MCI_BREAK: u32 = 2065;
pub const MCI_SAVE: u32 = 2067;
pub const MCI_STATUS: u32 = 2068;
pub const MCI_CUE: u32 = 2096;
pub const MCI_REALIZE: u32 = 2112;
pub const MCI_WINDOW: u32 = 2113;
pub const MCI_PUT: u32 = 2114;
pub const MCI_WHERE: u32 = 2115;
pub const MCI_FREEZE: u32 = 2116;
pub const MCI_UNFREEZE: u32 = 2117;
pub const MCI_LOAD: u32 = 2128;
pub const MCI_CUT: u32 = 2129;
pub const MCI_COPY: u32 = 2130;
pub const MCI_PASTE: u32 = 2131;
pub const MCI_UPDATE: u32 = 2132;
pub const MCI_RESUME: u32 = 2133;
pub const MCI_DELETE: u32 = 2134;
pub const MCI_LAST: u32 = 4095;
pub const MCI_DEVTYPE_VCR: u32 = 513;
pub const MCI_DEVTYPE_VIDEODISC: u32 = 514;
pub const MCI_DEVTYPE_OVERLAY: u32 = 515;
pub const MCI_DEVTYPE_CD_AUDIO: u32 = 516;
pub const MCI_DEVTYPE_DAT: u32 = 517;
pub const MCI_DEVTYPE_SCANNER: u32 = 518;
pub const MCI_DEVTYPE_ANIMATION: u32 = 519;
pub const MCI_DEVTYPE_DIGITAL_VIDEO: u32 = 520;
pub const MCI_DEVTYPE_OTHER: u32 = 521;
pub const MCI_DEVTYPE_WAVEFORM_AUDIO: u32 = 522;
pub const MCI_DEVTYPE_SEQUENCER: u32 = 523;
pub const MCI_DEVTYPE_FIRST: u32 = 513;
pub const MCI_DEVTYPE_LAST: u32 = 523;
pub const MCI_DEVTYPE_FIRST_USER: u32 = 4096;
pub const MCI_MODE_NOT_READY: u32 = 524;
pub const MCI_MODE_STOP: u32 = 525;
pub const MCI_MODE_PLAY: u32 = 526;
pub const MCI_MODE_RECORD: u32 = 527;
pub const MCI_MODE_SEEK: u32 = 528;
pub const MCI_MODE_PAUSE: u32 = 529;
pub const MCI_MODE_OPEN: u32 = 530;
pub const MCI_FORMAT_MILLISECONDS: u32 = 0;
pub const MCI_FORMAT_HMS: u32 = 1;
pub const MCI_FORMAT_MSF: u32 = 2;
pub const MCI_FORMAT_FRAMES: u32 = 3;
pub const MCI_FORMAT_SMPTE_24: u32 = 4;
pub const MCI_FORMAT_SMPTE_25: u32 = 5;
pub const MCI_FORMAT_SMPTE_30: u32 = 6;
pub const MCI_FORMAT_SMPTE_30DROP: u32 = 7;
pub const MCI_FORMAT_BYTES: u32 = 8;
pub const MCI_FORMAT_SAMPLES: u32 = 9;
pub const MCI_FORMAT_TMSF: u32 = 10;
pub const MCI_NOTIFY_SUCCESSFUL: u32 = 1;
pub const MCI_NOTIFY_SUPERSEDED: u32 = 2;
pub const MCI_NOTIFY_ABORTED: u32 = 4;
pub const MCI_NOTIFY_FAILURE: u32 = 8;
pub const MCI_NOTIFY: u32 = 1;
pub const MCI_WAIT: u32 = 2;
pub const MCI_FROM: u32 = 4;
pub const MCI_TO: u32 = 8;
pub const MCI_TRACK: u32 = 16;
pub const MCI_OPEN_SHAREABLE: u32 = 256;
pub const MCI_OPEN_ELEMENT: u32 = 512;
pub const MCI_OPEN_ALIAS: u32 = 1024;
pub const MCI_OPEN_ELEMENT_ID: u32 = 2048;
pub const MCI_OPEN_TYPE_ID: u32 = 4096;
pub const MCI_OPEN_TYPE: u32 = 8192;
pub const MCI_SEEK_TO_START: u32 = 256;
pub const MCI_SEEK_TO_END: u32 = 512;
pub const MCI_STATUS_ITEM: u32 = 256;
pub const MCI_STATUS_START: u32 = 512;
pub const MCI_STATUS_LENGTH: u32 = 1;
pub const MCI_STATUS_POSITION: u32 = 2;
pub const MCI_STATUS_NUMBER_OF_TRACKS: u32 = 3;
pub const MCI_STATUS_MODE: u32 = 4;
pub const MCI_STATUS_MEDIA_PRESENT: u32 = 5;
pub const MCI_STATUS_TIME_FORMAT: u32 = 6;
pub const MCI_STATUS_READY: u32 = 7;
pub const MCI_STATUS_CURRENT_TRACK: u32 = 8;
pub const MCI_INFO_PRODUCT: u32 = 256;
pub const MCI_INFO_FILE: u32 = 512;
pub const MCI_INFO_MEDIA_UPC: u32 = 1024;
pub const MCI_INFO_MEDIA_IDENTITY: u32 = 2048;
pub const MCI_INFO_NAME: u32 = 4096;
pub const MCI_INFO_COPYRIGHT: u32 = 8192;
pub const MCI_GETDEVCAPS_ITEM: u32 = 256;
pub const MCI_GETDEVCAPS_CAN_RECORD: u32 = 1;
pub const MCI_GETDEVCAPS_HAS_AUDIO: u32 = 2;
pub const MCI_GETDEVCAPS_HAS_VIDEO: u32 = 3;
pub const MCI_GETDEVCAPS_DEVICE_TYPE: u32 = 4;
pub const MCI_GETDEVCAPS_USES_FILES: u32 = 5;
pub const MCI_GETDEVCAPS_COMPOUND_DEVICE: u32 = 6;
pub const MCI_GETDEVCAPS_CAN_EJECT: u32 = 7;
pub const MCI_GETDEVCAPS_CAN_PLAY: u32 = 8;
pub const MCI_GETDEVCAPS_CAN_SAVE: u32 = 9;
pub const MCI_SYSINFO_QUANTITY: u32 = 256;
pub const MCI_SYSINFO_OPEN: u32 = 512;
pub const MCI_SYSINFO_NAME: u32 = 1024;
pub const MCI_SYSINFO_INSTALLNAME: u32 = 2048;
pub const MCI_SET_DOOR_OPEN: u32 = 256;
pub const MCI_SET_DOOR_CLOSED: u32 = 512;
pub const MCI_SET_TIME_FORMAT: u32 = 1024;
pub const MCI_SET_AUDIO: u32 = 2048;
pub const MCI_SET_VIDEO: u32 = 4096;
pub const MCI_SET_ON: u32 = 8192;
pub const MCI_SET_OFF: u32 = 16384;
pub const MCI_SET_AUDIO_ALL: u32 = 0;
pub const MCI_SET_AUDIO_LEFT: u32 = 1;
pub const MCI_SET_AUDIO_RIGHT: u32 = 2;
pub const MCI_BREAK_KEY: u32 = 256;
pub const MCI_BREAK_HWND: u32 = 512;
pub const MCI_BREAK_OFF: u32 = 1024;
pub const MCI_RECORD_INSERT: u32 = 256;
pub const MCI_RECORD_OVERWRITE: u32 = 512;
pub const MCI_SAVE_FILE: u32 = 256;
pub const MCI_LOAD_FILE: u32 = 256;
pub const MCI_VD_MODE_PARK: u32 = 1025;
pub const MCI_VD_MEDIA_CLV: u32 = 1026;
pub const MCI_VD_MEDIA_CAV: u32 = 1027;
pub const MCI_VD_MEDIA_OTHER: u32 = 1028;
pub const MCI_VD_FORMAT_TRACK: u32 = 16385;
pub const MCI_VD_PLAY_REVERSE: u32 = 65536;
pub const MCI_VD_PLAY_FAST: u32 = 131072;
pub const MCI_VD_PLAY_SPEED: u32 = 262144;
pub const MCI_VD_PLAY_SCAN: u32 = 524288;
pub const MCI_VD_PLAY_SLOW: u32 = 1048576;
pub const MCI_VD_SEEK_REVERSE: u32 = 65536;
pub const MCI_VD_STATUS_SPEED: u32 = 16386;
pub const MCI_VD_STATUS_FORWARD: u32 = 16387;
pub const MCI_VD_STATUS_MEDIA_TYPE: u32 = 16388;
pub const MCI_VD_STATUS_SIDE: u32 = 16389;
pub const MCI_VD_STATUS_DISC_SIZE: u32 = 16390;
pub const MCI_VD_GETDEVCAPS_CLV: u32 = 65536;
pub const MCI_VD_GETDEVCAPS_CAV: u32 = 131072;
pub const MCI_VD_SPIN_UP: u32 = 65536;
pub const MCI_VD_SPIN_DOWN: u32 = 131072;
pub const MCI_VD_GETDEVCAPS_CAN_REVERSE: u32 = 16386;
pub const MCI_VD_GETDEVCAPS_FAST_RATE: u32 = 16387;
pub const MCI_VD_GETDEVCAPS_SLOW_RATE: u32 = 16388;
pub const MCI_VD_GETDEVCAPS_NORMAL_RATE: u32 = 16389;
pub const MCI_VD_STEP_FRAMES: u32 = 65536;
pub const MCI_VD_STEP_REVERSE: u32 = 131072;
pub const MCI_VD_ESCAPE_STRING: u32 = 256;
pub const MCI_CDA_STATUS_TYPE_TRACK: u32 = 16385;
pub const MCI_CDA_TRACK_AUDIO: u32 = 1088;
pub const MCI_CDA_TRACK_OTHER: u32 = 1089;
pub const MCI_WAVE_PCM: u32 = 1152;
pub const MCI_WAVE_MAPPER: u32 = 1153;
pub const MCI_WAVE_OPEN_BUFFER: u32 = 65536;
pub const MCI_WAVE_SET_FORMATTAG: u32 = 65536;
pub const MCI_WAVE_SET_CHANNELS: u32 = 131072;
pub const MCI_WAVE_SET_SAMPLESPERSEC: u32 = 262144;
pub const MCI_WAVE_SET_AVGBYTESPERSEC: u32 = 524288;
pub const MCI_WAVE_SET_BLOCKALIGN: u32 = 1048576;
pub const MCI_WAVE_SET_BITSPERSAMPLE: u32 = 2097152;
pub const MCI_WAVE_INPUT: u32 = 4194304;
pub const MCI_WAVE_OUTPUT: u32 = 8388608;
pub const MCI_WAVE_STATUS_FORMATTAG: u32 = 16385;
pub const MCI_WAVE_STATUS_CHANNELS: u32 = 16386;
pub const MCI_WAVE_STATUS_SAMPLESPERSEC: u32 = 16387;
pub const MCI_WAVE_STATUS_AVGBYTESPERSEC: u32 = 16388;
pub const MCI_WAVE_STATUS_BLOCKALIGN: u32 = 16389;
pub const MCI_WAVE_STATUS_BITSPERSAMPLE: u32 = 16390;
pub const MCI_WAVE_STATUS_LEVEL: u32 = 16391;
pub const MCI_WAVE_SET_ANYINPUT: u32 = 67108864;
pub const MCI_WAVE_SET_ANYOUTPUT: u32 = 134217728;
pub const MCI_WAVE_GETDEVCAPS_INPUTS: u32 = 16385;
pub const MCI_WAVE_GETDEVCAPS_OUTPUTS: u32 = 16386;
pub const MCI_SEQ_DIV_PPQN: u32 = 1216;
pub const MCI_SEQ_DIV_SMPTE_24: u32 = 1217;
pub const MCI_SEQ_DIV_SMPTE_25: u32 = 1218;
pub const MCI_SEQ_DIV_SMPTE_30DROP: u32 = 1219;
pub const MCI_SEQ_DIV_SMPTE_30: u32 = 1220;
pub const MCI_SEQ_FORMAT_SONGPTR: u32 = 16385;
pub const MCI_SEQ_FILE: u32 = 16386;
pub const MCI_SEQ_MIDI: u32 = 16387;
pub const MCI_SEQ_SMPTE: u32 = 16388;
pub const MCI_SEQ_NONE: u32 = 65533;
pub const MCI_SEQ_MAPPER: u32 = 65535;
pub const MCI_SEQ_STATUS_TEMPO: u32 = 16386;
pub const MCI_SEQ_STATUS_PORT: u32 = 16387;
pub const MCI_SEQ_STATUS_SLAVE: u32 = 16391;
pub const MCI_SEQ_STATUS_MASTER: u32 = 16392;
pub const MCI_SEQ_STATUS_OFFSET: u32 = 16393;
pub const MCI_SEQ_STATUS_DIVTYPE: u32 = 16394;
pub const MCI_SEQ_STATUS_NAME: u32 = 16395;
pub const MCI_SEQ_STATUS_COPYRIGHT: u32 = 16396;
pub const MCI_SEQ_SET_TEMPO: u32 = 65536;
pub const MCI_SEQ_SET_PORT: u32 = 131072;
pub const MCI_SEQ_SET_SLAVE: u32 = 262144;
pub const MCI_SEQ_SET_MASTER: u32 = 524288;
pub const MCI_SEQ_SET_OFFSET: u32 = 16777216;
pub const MCI_ANIM_OPEN_WS: u32 = 65536;
pub const MCI_ANIM_OPEN_PARENT: u32 = 131072;
pub const MCI_ANIM_OPEN_NOSTATIC: u32 = 262144;
pub const MCI_ANIM_PLAY_SPEED: u32 = 65536;
pub const MCI_ANIM_PLAY_REVERSE: u32 = 131072;
pub const MCI_ANIM_PLAY_FAST: u32 = 262144;
pub const MCI_ANIM_PLAY_SLOW: u32 = 524288;
pub const MCI_ANIM_PLAY_SCAN: u32 = 1048576;
pub const MCI_ANIM_STEP_REVERSE: u32 = 65536;
pub const MCI_ANIM_STEP_FRAMES: u32 = 131072;
pub const MCI_ANIM_STATUS_SPEED: u32 = 16385;
pub const MCI_ANIM_STATUS_FORWARD: u32 = 16386;
pub const MCI_ANIM_STATUS_HWND: u32 = 16387;
pub const MCI_ANIM_STATUS_HPAL: u32 = 16388;
pub const MCI_ANIM_STATUS_STRETCH: u32 = 16389;
pub const MCI_ANIM_INFO_TEXT: u32 = 65536;
pub const MCI_ANIM_GETDEVCAPS_CAN_REVERSE: u32 = 16385;
pub const MCI_ANIM_GETDEVCAPS_FAST_RATE: u32 = 16386;
pub const MCI_ANIM_GETDEVCAPS_SLOW_RATE: u32 = 16387;
pub const MCI_ANIM_GETDEVCAPS_NORMAL_RATE: u32 = 16388;
pub const MCI_ANIM_GETDEVCAPS_PALETTES: u32 = 16390;
pub const MCI_ANIM_GETDEVCAPS_CAN_STRETCH: u32 = 16391;
pub const MCI_ANIM_GETDEVCAPS_MAX_WINDOWS: u32 = 16392;
pub const MCI_ANIM_REALIZE_NORM: u32 = 65536;
pub const MCI_ANIM_REALIZE_BKGD: u32 = 131072;
pub const MCI_ANIM_WINDOW_HWND: u32 = 65536;
pub const MCI_ANIM_WINDOW_STATE: u32 = 262144;
pub const MCI_ANIM_WINDOW_TEXT: u32 = 524288;
pub const MCI_ANIM_WINDOW_ENABLE_STRETCH: u32 = 1048576;
pub const MCI_ANIM_WINDOW_DISABLE_STRETCH: u32 = 2097152;
pub const MCI_ANIM_WINDOW_DEFAULT: u32 = 0;
pub const MCI_ANIM_RECT: u32 = 65536;
pub const MCI_ANIM_PUT_SOURCE: u32 = 131072;
pub const MCI_ANIM_PUT_DESTINATION: u32 = 262144;
pub const MCI_ANIM_WHERE_SOURCE: u32 = 131072;
pub const MCI_ANIM_WHERE_DESTINATION: u32 = 262144;
pub const MCI_ANIM_UPDATE_HDC: u32 = 131072;
pub const MCI_OVLY_OPEN_WS: u32 = 65536;
pub const MCI_OVLY_OPEN_PARENT: u32 = 131072;
pub const MCI_OVLY_STATUS_HWND: u32 = 16385;
pub const MCI_OVLY_STATUS_STRETCH: u32 = 16386;
pub const MCI_OVLY_INFO_TEXT: u32 = 65536;
pub const MCI_OVLY_GETDEVCAPS_CAN_STRETCH: u32 = 16385;
pub const MCI_OVLY_GETDEVCAPS_CAN_FREEZE: u32 = 16386;
pub const MCI_OVLY_GETDEVCAPS_MAX_WINDOWS: u32 = 16387;
pub const MCI_OVLY_WINDOW_HWND: u32 = 65536;
pub const MCI_OVLY_WINDOW_STATE: u32 = 262144;
pub const MCI_OVLY_WINDOW_TEXT: u32 = 524288;
pub const MCI_OVLY_WINDOW_ENABLE_STRETCH: u32 = 1048576;
pub const MCI_OVLY_WINDOW_DISABLE_STRETCH: u32 = 2097152;
pub const MCI_OVLY_WINDOW_DEFAULT: u32 = 0;
pub const MCI_OVLY_RECT: u32 = 65536;
pub const MCI_OVLY_PUT_SOURCE: u32 = 131072;
pub const MCI_OVLY_PUT_DESTINATION: u32 = 262144;
pub const MCI_OVLY_PUT_FRAME: u32 = 524288;
pub const MCI_OVLY_PUT_VIDEO: u32 = 1048576;
pub const MCI_OVLY_WHERE_SOURCE: u32 = 131072;
pub const MCI_OVLY_WHERE_DESTINATION: u32 = 262144;
pub const MCI_OVLY_WHERE_FRAME: u32 = 524288;
pub const MCI_OVLY_WHERE_VIDEO: u32 = 1048576;
pub const DRV_LOAD: u32 = 1;
pub const DRV_ENABLE: u32 = 2;
pub const DRV_OPEN: u32 = 3;
pub const DRV_CLOSE: u32 = 4;
pub const DRV_DISABLE: u32 = 5;
pub const DRV_FREE: u32 = 6;
pub const DRV_CONFIGURE: u32 = 7;
pub const DRV_QUERYCONFIGURE: u32 = 8;
pub const DRV_INSTALL: u32 = 9;
pub const DRV_REMOVE: u32 = 10;
pub const DRV_EXITSESSION: u32 = 11;
pub const DRV_POWER: u32 = 15;
pub const DRV_RESERVED: u32 = 2048;
pub const DRV_USER: u32 = 16384;
pub const DRVCNF_CANCEL: u32 = 0;
pub const DRVCNF_OK: u32 = 1;
pub const DRVCNF_RESTART: u32 = 2;
pub const DRV_CANCEL: u32 = 0;
pub const DRV_OK: u32 = 1;
pub const DRV_RESTART: u32 = 2;
pub const DRV_MCI_FIRST: u32 = 2048;
pub const DRV_MCI_LAST: u32 = 6143;
pub const MMIOERR_BASE: u32 = 256;
pub const MMIOERR_FILENOTFOUND: u32 = 257;
pub const MMIOERR_OUTOFMEMORY: u32 = 258;
pub const MMIOERR_CANNOTOPEN: u32 = 259;
pub const MMIOERR_CANNOTCLOSE: u32 = 260;
pub const MMIOERR_CANNOTREAD: u32 = 261;
pub const MMIOERR_CANNOTWRITE: u32 = 262;
pub const MMIOERR_CANNOTSEEK: u32 = 263;
pub const MMIOERR_CANNOTEXPAND: u32 = 264;
pub const MMIOERR_CHUNKNOTFOUND: u32 = 265;
pub const MMIOERR_UNBUFFERED: u32 = 266;
pub const MMIOERR_PATHNOTFOUND: u32 = 267;
pub const MMIOERR_ACCESSDENIED: u32 = 268;
pub const MMIOERR_SHARINGVIOLATION: u32 = 269;
pub const MMIOERR_NETWORKERROR: u32 = 270;
pub const MMIOERR_TOOMANYOPENFILES: u32 = 271;
pub const MMIOERR_INVALIDFILE: u32 = 272;
pub const CFSEPCHAR: u8 = 43u8;
pub const MMIO_RWMODE: u32 = 3;
pub const MMIO_SHAREMODE: u32 = 112;
pub const MMIO_CREATE: u32 = 4096;
pub const MMIO_PARSE: u32 = 256;
pub const MMIO_DELETE: u32 = 512;
pub const MMIO_EXIST: u32 = 16384;
pub const MMIO_ALLOCBUF: u32 = 65536;
pub const MMIO_GETTEMP: u32 = 131072;
pub const MMIO_DIRTY: u32 = 268435456;
pub const MMIO_READ: u32 = 0;
pub const MMIO_WRITE: u32 = 1;
pub const MMIO_READWRITE: u32 = 2;
pub const MMIO_COMPAT: u32 = 0;
pub const MMIO_EXCLUSIVE: u32 = 16;
pub const MMIO_DENYWRITE: u32 = 32;
pub const MMIO_DENYREAD: u32 = 48;
pub const MMIO_DENYNONE: u32 = 64;
pub const MMIO_FHOPEN: u32 = 16;
pub const MMIO_EMPTYBUF: u32 = 16;
pub const MMIO_TOUPPER: u32 = 16;
pub const MMIO_INSTALLPROC: u32 = 65536;
pub const MMIO_GLOBALPROC: u32 = 268435456;
pub const MMIO_REMOVEPROC: u32 = 131072;
pub const MMIO_UNICODEPROC: u32 = 16777216;
pub const MMIO_FINDPROC: u32 = 262144;
pub const MMIO_FINDCHUNK: u32 = 16;
pub const MMIO_FINDRIFF: u32 = 32;
pub const MMIO_FINDLIST: u32 = 64;
pub const MMIO_CREATERIFF: u32 = 32;
pub const MMIO_CREATELIST: u32 = 64;
pub const MMIOM_READ: u32 = 0;
pub const MMIOM_WRITE: u32 = 1;
pub const MMIOM_SEEK: u32 = 2;
pub const MMIOM_OPEN: u32 = 3;
pub const MMIOM_CLOSE: u32 = 4;
pub const MMIOM_WRITEFLUSH: u32 = 5;
pub const MMIOM_RENAME: u32 = 6;
pub const MMIOM_USER: u32 = 32768;
pub const SEEK_SET: u32 = 0;
pub const SEEK_CUR: u32 = 1;
pub const SEEK_END: u32 = 2;
pub const MMIO_DEFAULTBUFFER: u32 = 8192;
pub const TIME_ONESHOT: u32 = 0;
pub const TIME_PERIODIC: u32 = 1;
pub const TIME_CALLBACK_FUNCTION: u32 = 0;
pub const TIME_CALLBACK_EVENT_SET: u32 = 16;
pub const TIME_CALLBACK_EVENT_PULSE: u32 = 32;
pub const TIME_KILL_SYNCHRONOUS: u32 = 256;
pub const SND_SYNC: u32 = 0;
pub const SND_ASYNC: u32 = 1;
pub const SND_NODEFAULT: u32 = 2;
pub const SND_MEMORY: u32 = 4;
pub const SND_LOOP: u32 = 8;
pub const SND_NOSTOP: u32 = 16;
pub const SND_NOWAIT: u32 = 8192;
pub const SND_ALIAS: u32 = 65536;
pub const SND_ALIAS_ID: u32 = 1114112;
pub const SND_FILENAME: u32 = 131072;
pub const SND_RESOURCE: u32 = 262148;
pub const SND_PURGE: u32 = 64;
pub const SND_APPLICATION: u32 = 128;
pub const SND_SENTRY: u32 = 524288;
pub const SND_RING: u32 = 1048576;
pub const SND_SYSTEM: u32 = 2097152;
pub const SND_ALIAS_START: u32 = 0;
pub const WAVERR_BADFORMAT: u32 = 32;
pub const WAVERR_STILLPLAYING: u32 = 33;
pub const WAVERR_UNPREPARED: u32 = 34;
pub const WAVERR_SYNC: u32 = 35;
pub const WAVERR_LASTERROR: u32 = 35;
pub const WOM_OPEN: u32 = 955;
pub const WOM_CLOSE: u32 = 956;
pub const WOM_DONE: u32 = 957;
pub const WIM_OPEN: u32 = 958;
pub const WIM_CLOSE: u32 = 959;
pub const WIM_DATA: u32 = 960;
pub const WAVE_FORMAT_QUERY: u32 = 1;
pub const WAVE_ALLOWSYNC: u32 = 2;
pub const WAVE_MAPPED: u32 = 4;
pub const WAVE_FORMAT_DIRECT: u32 = 8;
pub const WAVE_FORMAT_DIRECT_QUERY: u32 = 9;
pub const WAVE_MAPPED_DEFAULT_COMMUNICATION_DEVICE: u32 = 16;
pub const WHDR_DONE: u32 = 1;
pub const WHDR_PREPARED: u32 = 2;
pub const WHDR_BEGINLOOP: u32 = 4;
pub const WHDR_ENDLOOP: u32 = 8;
pub const WHDR_INQUEUE: u32 = 16;
pub const WAVECAPS_PITCH: u32 = 1;
pub const WAVECAPS_PLAYBACKRATE: u32 = 2;
pub const WAVECAPS_VOLUME: u32 = 4;
pub const WAVECAPS_LRVOLUME: u32 = 8;
pub const WAVECAPS_SYNC: u32 = 16;
pub const WAVECAPS_SAMPLEACCURATE: u32 = 32;
pub const WAVE_INVALIDFORMAT: u32 = 0;
pub const WAVE_FORMAT_1M08: u32 = 1;
pub const WAVE_FORMAT_1S08: u32 = 2;
pub const WAVE_FORMAT_1M16: u32 = 4;
pub const WAVE_FORMAT_1S16: u32 = 8;
pub const WAVE_FORMAT_2M08: u32 = 16;
pub const WAVE_FORMAT_2S08: u32 = 32;
pub const WAVE_FORMAT_2M16: u32 = 64;
pub const WAVE_FORMAT_2S16: u32 = 128;
pub const WAVE_FORMAT_4M08: u32 = 256;
pub const WAVE_FORMAT_4S08: u32 = 512;
pub const WAVE_FORMAT_4M16: u32 = 1024;
pub const WAVE_FORMAT_4S16: u32 = 2048;
pub const WAVE_FORMAT_44M08: u32 = 256;
pub const WAVE_FORMAT_44S08: u32 = 512;
pub const WAVE_FORMAT_44M16: u32 = 1024;
pub const WAVE_FORMAT_44S16: u32 = 2048;
pub const WAVE_FORMAT_48M08: u32 = 4096;
pub const WAVE_FORMAT_48S08: u32 = 8192;
pub const WAVE_FORMAT_48M16: u32 = 16384;
pub const WAVE_FORMAT_48S16: u32 = 32768;
pub const WAVE_FORMAT_96M08: u32 = 65536;
pub const WAVE_FORMAT_96S08: u32 = 131072;
pub const WAVE_FORMAT_96M16: u32 = 262144;
pub const WAVE_FORMAT_96S16: u32 = 524288;
pub const WAVE_FORMAT_PCM: u32 = 1;
pub const MIDIERR_UNPREPARED: u32 = 64;
pub const MIDIERR_STILLPLAYING: u32 = 65;
pub const MIDIERR_NOMAP: u32 = 66;
pub const MIDIERR_NOTREADY: u32 = 67;
pub const MIDIERR_NODEVICE: u32 = 68;
pub const MIDIERR_INVALIDSETUP: u32 = 69;
pub const MIDIERR_BADOPENMODE: u32 = 70;
pub const MIDIERR_DONT_CONTINUE: u32 = 71;
pub const MIDIERR_LASTERROR: u32 = 71;
pub const MIDIPATCHSIZE: u32 = 128;
pub const MIM_OPEN: u32 = 961;
pub const MIM_CLOSE: u32 = 962;
pub const MIM_DATA: u32 = 963;
pub const MIM_LONGDATA: u32 = 964;
pub const MIM_ERROR: u32 = 965;
pub const MIM_LONGERROR: u32 = 966;
pub const MOM_OPEN: u32 = 967;
pub const MOM_CLOSE: u32 = 968;
pub const MOM_DONE: u32 = 969;
pub const MIM_MOREDATA: u32 = 972;
pub const MOM_POSITIONCB: u32 = 970;
pub const MIDI_IO_STATUS: u32 = 32;
pub const MIDI_CACHE_ALL: u32 = 1;
pub const MIDI_CACHE_BESTFIT: u32 = 2;
pub const MIDI_CACHE_QUERY: u32 = 3;
pub const MIDI_UNCACHE: u32 = 4;
pub const MOD_MIDIPORT: u32 = 1;
pub const MOD_SYNTH: u32 = 2;
pub const MOD_SQSYNTH: u32 = 3;
pub const MOD_FMSYNTH: u32 = 4;
pub const MOD_MAPPER: u32 = 5;
pub const MOD_WAVETABLE: u32 = 6;
pub const MOD_SWSYNTH: u32 = 7;
pub const MIDICAPS_VOLUME: u32 = 1;
pub const MIDICAPS_LRVOLUME: u32 = 2;
pub const MIDICAPS_CACHE: u32 = 4;
pub const MIDICAPS_STREAM: u32 = 8;
pub const MHDR_DONE: u32 = 1;
pub const MHDR_PREPARED: u32 = 2;
pub const MHDR_INQUEUE: u32 = 4;
pub const MHDR_ISSTRM: u32 = 8;
pub const MEVT_F_SHORT: u32 = 0;
pub const MEVT_F_LONG: u32 = 2147483648;
pub const MEVT_F_CALLBACK: u32 = 1073741824;
pub const MIDISTRM_ERROR: i32 = -2;
pub const MIDIPROP_SET: u32 = 2147483648;
pub const MIDIPROP_GET: u32 = 1073741824;
pub const MIDIPROP_TIMEDIV: u32 = 1;
pub const MIDIPROP_TEMPO: u32 = 2;
pub const AUXCAPS_CDAUDIO: u32 = 1;
pub const AUXCAPS_AUXIN: u32 = 2;
pub const AUXCAPS_VOLUME: u32 = 1;
pub const AUXCAPS_LRVOLUME: u32 = 2;
pub const MIXER_SHORT_NAME_CHARS: u32 = 16;
pub const MIXER_LONG_NAME_CHARS: u32 = 64;
pub const MIXERR_INVALLINE: u32 = 1024;
pub const MIXERR_INVALCONTROL: u32 = 1025;
pub const MIXERR_INVALVALUE: u32 = 1026;
pub const MIXERR_LASTERROR: u32 = 1026;
pub const MIXER_OBJECTF_HANDLE: u32 = 2147483648;
pub const MIXER_OBJECTF_MIXER: u32 = 0;
pub const MIXER_OBJECTF_HMIXER: u32 = 2147483648;
pub const MIXER_OBJECTF_WAVEOUT: u32 = 268435456;
pub const MIXER_OBJECTF_HWAVEOUT: u32 = 2415919104;
pub const MIXER_OBJECTF_WAVEIN: u32 = 536870912;
pub const MIXER_OBJECTF_HWAVEIN: u32 = 2684354560;
pub const MIXER_OBJECTF_MIDIOUT: u32 = 805306368;
pub const MIXER_OBJECTF_HMIDIOUT: u32 = 2952790016;
pub const MIXER_OBJECTF_MIDIIN: u32 = 1073741824;
pub const MIXER_OBJECTF_HMIDIIN: u32 = 3221225472;
pub const MIXER_OBJECTF_AUX: u32 = 1342177280;
pub const MIXERLINE_LINEF_ACTIVE: u32 = 1;
pub const MIXERLINE_LINEF_DISCONNECTED: u32 = 32768;
pub const MIXERLINE_LINEF_SOURCE: u32 = 2147483648;
pub const MIXERLINE_COMPONENTTYPE_DST_FIRST: u32 = 0;
pub const MIXERLINE_COMPONENTTYPE_DST_UNDEFINED: u32 = 0;
pub const MIXERLINE_COMPONENTTYPE_DST_DIGITAL: u32 = 1;
pub const MIXERLINE_COMPONENTTYPE_DST_LINE: u32 = 2;
pub const MIXERLINE_COMPONENTTYPE_DST_MONITOR: u32 = 3;
pub const MIXERLINE_COMPONENTTYPE_DST_SPEAKERS: u32 = 4;
pub const MIXERLINE_COMPONENTTYPE_DST_HEADPHONES: u32 = 5;
pub const MIXERLINE_COMPONENTTYPE_DST_TELEPHONE: u32 = 6;
pub const MIXERLINE_COMPONENTTYPE_DST_WAVEIN: u32 = 7;
pub const MIXERLINE_COMPONENTTYPE_DST_VOICEIN: u32 = 8;
pub const MIXERLINE_COMPONENTTYPE_DST_LAST: u32 = 8;
pub const MIXERLINE_COMPONENTTYPE_SRC_FIRST: u32 = 4096;
pub const MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED: u32 = 4096;
pub const MIXERLINE_COMPONENTTYPE_SRC_DIGITAL: u32 = 4097;
pub const MIXERLINE_COMPONENTTYPE_SRC_LINE: u32 = 4098;
pub const MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE: u32 = 4099;
pub const MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER: u32 = 4100;
pub const MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC: u32 = 4101;
pub const MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE: u32 = 4102;
pub const MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER: u32 = 4103;
pub const MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT: u32 = 4104;
pub const MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY: u32 = 4105;
pub const MIXERLINE_COMPONENTTYPE_SRC_ANALOG: u32 = 4106;
pub const MIXERLINE_COMPONENTTYPE_SRC_LAST: u32 = 4106;
pub const MIXERLINE_TARGETTYPE_UNDEFINED: u32 = 0;
pub const MIXERLINE_TARGETTYPE_WAVEOUT: u32 = 1;
pub const MIXERLINE_TARGETTYPE_WAVEIN: u32 = 2;
pub const MIXERLINE_TARGETTYPE_MIDIOUT: u32 = 3;
pub const MIXERLINE_TARGETTYPE_MIDIIN: u32 = 4;
pub const MIXERLINE_TARGETTYPE_AUX: u32 = 5;
pub const MIXER_GETLINEINFOF_DESTINATION: u32 = 0;
pub const MIXER_GETLINEINFOF_SOURCE: u32 = 1;
pub const MIXER_GETLINEINFOF_LINEID: u32 = 2;
pub const MIXER_GETLINEINFOF_COMPONENTTYPE: u32 = 3;
pub const MIXER_GETLINEINFOF_TARGETTYPE: u32 = 4;
pub const MIXER_GETLINEINFOF_QUERYMASK: u32 = 15;
pub const MIXERCONTROL_CONTROLF_UNIFORM: u32 = 1;
pub const MIXERCONTROL_CONTROLF_MULTIPLE: u32 = 2;
pub const MIXERCONTROL_CONTROLF_DISABLED: u32 = 2147483648;
pub const MIXERCONTROL_CT_CLASS_MASK: u32 = 4026531840;
pub const MIXERCONTROL_CT_CLASS_CUSTOM: u32 = 0;
pub const MIXERCONTROL_CT_CLASS_METER: u32 = 268435456;
pub const MIXERCONTROL_CT_CLASS_SWITCH: u32 = 536870912;
pub const MIXERCONTROL_CT_CLASS_NUMBER: u32 = 805306368;
pub const MIXERCONTROL_CT_CLASS_SLIDER: u32 = 1073741824;
pub const MIXERCONTROL_CT_CLASS_FADER: u32 = 1342177280;
pub const MIXERCONTROL_CT_CLASS_TIME: u32 = 1610612736;
pub const MIXERCONTROL_CT_CLASS_LIST: u32 = 1879048192;
pub const MIXERCONTROL_CT_SUBCLASS_MASK: u32 = 251658240;
pub const MIXERCONTROL_CT_SC_SWITCH_BOOLEAN: u32 = 0;
pub const MIXERCONTROL_CT_SC_SWITCH_BUTTON: u32 = 16777216;
pub const MIXERCONTROL_CT_SC_METER_POLLED: u32 = 0;
pub const MIXERCONTROL_CT_SC_TIME_MICROSECS: u32 = 0;
pub const MIXERCONTROL_CT_SC_TIME_MILLISECS: u32 = 16777216;
pub const MIXERCONTROL_CT_SC_LIST_SINGLE: u32 = 0;
pub const MIXERCONTROL_CT_SC_LIST_MULTIPLE: u32 = 16777216;
pub const MIXERCONTROL_CT_UNITS_MASK: u32 = 16711680;
pub const MIXERCONTROL_CT_UNITS_CUSTOM: u32 = 0;
pub const MIXERCONTROL_CT_UNITS_BOOLEAN: u32 = 65536;
pub const MIXERCONTROL_CT_UNITS_SIGNED: u32 = 131072;
pub const MIXERCONTROL_CT_UNITS_UNSIGNED: u32 = 196608;
pub const MIXERCONTROL_CT_UNITS_DECIBELS: u32 = 262144;
pub const MIXERCONTROL_CT_UNITS_PERCENT: u32 = 327680;
pub const MIXERCONTROL_CONTROLTYPE_CUSTOM: u32 = 0;
pub const MIXERCONTROL_CONTROLTYPE_BOOLEANMETER: u32 = 268500992;
pub const MIXERCONTROL_CONTROLTYPE_SIGNEDMETER: u32 = 268566528;
pub const MIXERCONTROL_CONTROLTYPE_PEAKMETER: u32 = 268566529;
pub const MIXERCONTROL_CONTROLTYPE_UNSIGNEDMETER: u32 = 268632064;
pub const MIXERCONTROL_CONTROLTYPE_BOOLEAN: u32 = 536936448;
pub const MIXERCONTROL_CONTROLTYPE_ONOFF: u32 = 536936449;
pub const MIXERCONTROL_CONTROLTYPE_MUTE: u32 = 536936450;
pub const MIXERCONTROL_CONTROLTYPE_MONO: u32 = 536936451;
pub const MIXERCONTROL_CONTROLTYPE_LOUDNESS: u32 = 536936452;
pub const MIXERCONTROL_CONTROLTYPE_STEREOENH: u32 = 536936453;
pub const MIXERCONTROL_CONTROLTYPE_BASS_BOOST: u32 = 536945271;
pub const MIXERCONTROL_CONTROLTYPE_BUTTON: u32 = 553713664;
pub const MIXERCONTROL_CONTROLTYPE_DECIBELS: u32 = 805568512;
pub const MIXERCONTROL_CONTROLTYPE_SIGNED: u32 = 805437440;
pub const MIXERCONTROL_CONTROLTYPE_UNSIGNED: u32 = 805502976;
pub const MIXERCONTROL_CONTROLTYPE_PERCENT: u32 = 805634048;
pub const MIXERCONTROL_CONTROLTYPE_SLIDER: u32 = 1073872896;
pub const MIXERCONTROL_CONTROLTYPE_PAN: u32 = 1073872897;
pub const MIXERCONTROL_CONTROLTYPE_QSOUNDPAN: u32 = 1073872898;
pub const MIXERCONTROL_CONTROLTYPE_FADER: u32 = 1342373888;
pub const MIXERCONTROL_CONTROLTYPE_VOLUME: u32 = 1342373889;
pub const MIXERCONTROL_CONTROLTYPE_BASS: u32 = 1342373890;
pub const MIXERCONTROL_CONTROLTYPE_TREBLE: u32 = 1342373891;
pub const MIXERCONTROL_CONTROLTYPE_EQUALIZER: u32 = 1342373892;
pub const MIXERCONTROL_CONTROLTYPE_SINGLESELECT: u32 = 1879113728;
pub const MIXERCONTROL_CONTROLTYPE_MUX: u32 = 1879113729;
pub const MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT: u32 = 1895890944;
pub const MIXERCONTROL_CONTROLTYPE_MIXER: u32 = 1895890945;
pub const MIXERCONTROL_CONTROLTYPE_MICROTIME: u32 = 1610809344;
pub const MIXERCONTROL_CONTROLTYPE_MILLITIME: u32 = 1627586560;
pub const MIXER_GETLINECONTROLSF_ALL: u32 = 0;
pub const MIXER_GETLINECONTROLSF_ONEBYID: u32 = 1;
pub const MIXER_GETLINECONTROLSF_ONEBYTYPE: u32 = 2;
pub const MIXER_GETLINECONTROLSF_QUERYMASK: u32 = 15;
pub const MIXER_GETCONTROLDETAILSF_VALUE: u32 = 0;
pub const MIXER_GETCONTROLDETAILSF_LISTTEXT: u32 = 1;
pub const MIXER_GETCONTROLDETAILSF_QUERYMASK: u32 = 15;
pub const MIXER_SETCONTROLDETAILSF_VALUE: u32 = 0;
pub const MIXER_SETCONTROLDETAILSF_CUSTOM: u32 = 1;
pub const MIXER_SETCONTROLDETAILSF_QUERYMASK: u32 = 15;
pub const TIMERR_NOERROR: u32 = 0;
pub const TIMERR_NOCANDO: u32 = 97;
pub const TIMERR_STRUCT: u32 = 129;
pub const JOYERR_NOERROR: u32 = 0;
pub const JOYERR_PARMS: u32 = 165;
pub const JOYERR_NOCANDO: u32 = 166;
pub const JOYERR_UNPLUGGED: u32 = 167;
pub const JOY_BUTTON1: u32 = 1;
pub const JOY_BUTTON2: u32 = 2;
pub const JOY_BUTTON3: u32 = 4;
pub const JOY_BUTTON4: u32 = 8;
pub const JOY_BUTTON1CHG: u32 = 256;
pub const JOY_BUTTON2CHG: u32 = 512;
pub const JOY_BUTTON3CHG: u32 = 1024;
pub const JOY_BUTTON4CHG: u32 = 2048;
pub const JOY_BUTTON5: u32 = 16;
pub const JOY_BUTTON6: u32 = 32;
pub const JOY_BUTTON7: u32 = 64;
pub const JOY_BUTTON8: u32 = 128;
pub const JOY_BUTTON9: u32 = 256;
pub const JOY_BUTTON10: u32 = 512;
pub const JOY_BUTTON11: u32 = 1024;
pub const JOY_BUTTON12: u32 = 2048;
pub const JOY_BUTTON13: u32 = 4096;
pub const JOY_BUTTON14: u32 = 8192;
pub const JOY_BUTTON15: u32 = 16384;
pub const JOY_BUTTON16: u32 = 32768;
pub const JOY_BUTTON17: u32 = 65536;
pub const JOY_BUTTON18: u32 = 131072;
pub const JOY_BUTTON19: u32 = 262144;
pub const JOY_BUTTON20: u32 = 524288;
pub const JOY_BUTTON21: u32 = 1048576;
pub const JOY_BUTTON22: u32 = 2097152;
pub const JOY_BUTTON23: u32 = 4194304;
pub const JOY_BUTTON24: u32 = 8388608;
pub const JOY_BUTTON25: u32 = 16777216;
pub const JOY_BUTTON26: u32 = 33554432;
pub const JOY_BUTTON27: u32 = 67108864;
pub const JOY_BUTTON28: u32 = 134217728;
pub const JOY_BUTTON29: u32 = 268435456;
pub const JOY_BUTTON30: u32 = 536870912;
pub const JOY_BUTTON31: u32 = 1073741824;
pub const JOY_BUTTON32: u32 = 2147483648;
pub const JOY_POVFORWARD: u32 = 0;
pub const JOY_POVRIGHT: u32 = 9000;
pub const JOY_POVBACKWARD: u32 = 18000;
pub const JOY_POVLEFT: u32 = 27000;
pub const JOY_RETURNX: u32 = 1;
pub const JOY_RETURNY: u32 = 2;
pub const JOY_RETURNZ: u32 = 4;
pub const JOY_RETURNR: u32 = 8;
pub const JOY_RETURNU: u32 = 16;
pub const JOY_RETURNV: u32 = 32;
pub const JOY_RETURNPOV: u32 = 64;
pub const JOY_RETURNBUTTONS: u32 = 128;
pub const JOY_RETURNRAWDATA: u32 = 256;
pub const JOY_RETURNPOVCTS: u32 = 512;
pub const JOY_RETURNCENTERED: u32 = 1024;
pub const JOY_USEDEADZONE: u32 = 2048;
pub const JOY_RETURNALL: u32 = 255;
pub const JOY_CAL_READALWAYS: u32 = 65536;
pub const JOY_CAL_READXYONLY: u32 = 131072;
pub const JOY_CAL_READ3: u32 = 262144;
pub const JOY_CAL_READ4: u32 = 524288;
pub const JOY_CAL_READXONLY: u32 = 1048576;
pub const JOY_CAL_READYONLY: u32 = 2097152;
pub const JOY_CAL_READ5: u32 = 4194304;
pub const JOY_CAL_READ6: u32 = 8388608;
pub const JOY_CAL_READZONLY: u32 = 16777216;
pub const JOY_CAL_READRONLY: u32 = 33554432;
pub const JOY_CAL_READUONLY: u32 = 67108864;
pub const JOY_CAL_READVONLY: u32 = 134217728;
pub const JOYSTICKID1: u32 = 0;
pub const JOYSTICKID2: u32 = 1;
pub const JOYCAPS_HASZ: u32 = 1;
pub const JOYCAPS_HASR: u32 = 2;
pub const JOYCAPS_HASU: u32 = 4;
pub const JOYCAPS_HASV: u32 = 8;
pub const JOYCAPS_HASPOV: u32 = 16;
pub const JOYCAPS_POV4DIR: u32 = 32;
pub const JOYCAPS_POVCTS: u32 = 64;
pub const NEWTRANSPARENT: u32 = 3;
pub const QUERYROPSUPPORT: u32 = 40;
pub const SELECTDIB: u32 = 41;
pub const NCBNAMSZ: u32 = 16;
pub const MAX_LANA: u32 = 254;
pub const NAME_FLAGS_MASK: u32 = 135;
pub const GROUP_NAME: u32 = 128;
pub const UNIQUE_NAME: u32 = 0;
pub const REGISTERING: u32 = 0;
pub const REGISTERED: u32 = 4;
pub const DEREGISTERED: u32 = 5;
pub const DUPLICATE: u32 = 6;
pub const DUPLICATE_DEREG: u32 = 7;
pub const LISTEN_OUTSTANDING: u32 = 1;
pub const CALL_PENDING: u32 = 2;
pub const SESSION_ESTABLISHED: u32 = 3;
pub const HANGUP_PENDING: u32 = 4;
pub const HANGUP_COMPLETE: u32 = 5;
pub const SESSION_ABORTED: u32 = 6;
pub const ALL_TRANSPORTS: &'static [u8; 5usize] = b"M\0\0\0\0";
pub const MS_NBF: &'static [u8; 5usize] = b"MNBF\0";
pub const NCBCALL: u32 = 16;
pub const NCBLISTEN: u32 = 17;
pub const NCBHANGUP: u32 = 18;
pub const NCBSEND: u32 = 20;
pub const NCBRECV: u32 = 21;
pub const NCBRECVANY: u32 = 22;
pub const NCBCHAINSEND: u32 = 23;
pub const NCBDGSEND: u32 = 32;
pub const NCBDGRECV: u32 = 33;
pub const NCBDGSENDBC: u32 = 34;
pub const NCBDGRECVBC: u32 = 35;
pub const NCBADDNAME: u32 = 48;
pub const NCBDELNAME: u32 = 49;
pub const NCBRESET: u32 = 50;
pub const NCBASTAT: u32 = 51;
pub const NCBSSTAT: u32 = 52;
pub const NCBCANCEL: u32 = 53;
pub const NCBADDGRNAME: u32 = 54;
pub const NCBENUM: u32 = 55;
pub const NCBUNLINK: u32 = 112;
pub const NCBSENDNA: u32 = 113;
pub const NCBCHAINSENDNA: u32 = 114;
pub const NCBLANSTALERT: u32 = 115;
pub const NCBACTION: u32 = 119;
pub const NCBFINDNAME: u32 = 120;
pub const NCBTRACE: u32 = 121;
pub const ASYNCH: u32 = 128;
pub const NRC_GOODRET: u32 = 0;
pub const NRC_BUFLEN: u32 = 1;
pub const NRC_ILLCMD: u32 = 3;
pub const NRC_CMDTMO: u32 = 5;
pub const NRC_INCOMP: u32 = 6;
pub const NRC_BADDR: u32 = 7;
pub const NRC_SNUMOUT: u32 = 8;
pub const NRC_NORES: u32 = 9;
pub const NRC_SCLOSED: u32 = 10;
pub const NRC_CMDCAN: u32 = 11;
pub const NRC_DUPNAME: u32 = 13;
pub const NRC_NAMTFUL: u32 = 14;
pub const NRC_ACTSES: u32 = 15;
pub const NRC_LOCTFUL: u32 = 17;
pub const NRC_REMTFUL: u32 = 18;
pub const NRC_ILLNN: u32 = 19;
pub const NRC_NOCALL: u32 = 20;
pub const NRC_NOWILD: u32 = 21;
pub const NRC_INUSE: u32 = 22;
pub const NRC_NAMERR: u32 = 23;
pub const NRC_SABORT: u32 = 24;
pub const NRC_NAMCONF: u32 = 25;
pub const NRC_IFBUSY: u32 = 33;
pub const NRC_TOOMANY: u32 = 34;
pub const NRC_BRIDGE: u32 = 35;
pub const NRC_CANOCCR: u32 = 36;
pub const NRC_CANCEL: u32 = 38;
pub const NRC_DUPENV: u32 = 48;
pub const NRC_ENVNOTDEF: u32 = 52;
pub const NRC_OSRESNOTAV: u32 = 53;
pub const NRC_MAXAPPS: u32 = 54;
pub const NRC_NOSAPS: u32 = 55;
pub const NRC_NORESOURCES: u32 = 56;
pub const NRC_INVADDRESS: u32 = 57;
pub const NRC_INVDDID: u32 = 59;
pub const NRC_LOCKFAIL: u32 = 60;
pub const NRC_OPENERR: u32 = 63;
pub const NRC_SYSTEM: u32 = 64;
pub const NRC_PENDING: u32 = 255;
pub const RPC_C_BINDING_INFINITE_TIMEOUT: u32 = 10;
pub const RPC_C_BINDING_MIN_TIMEOUT: u32 = 0;
pub const RPC_C_BINDING_DEFAULT_TIMEOUT: u32 = 5;
pub const RPC_C_BINDING_MAX_TIMEOUT: u32 = 9;
pub const RPC_C_CANCEL_INFINITE_TIMEOUT: i32 = -1;
pub const RPC_C_LISTEN_MAX_CALLS_DEFAULT: u32 = 1234;
pub const RPC_C_PROTSEQ_MAX_REQS_DEFAULT: u32 = 10;
pub const RPC_C_BIND_TO_ALL_NICS: u32 = 1;
pub const RPC_C_USE_INTERNET_PORT: u32 = 1;
pub const RPC_C_USE_INTRANET_PORT: u32 = 2;
pub const RPC_C_DONT_FAIL: u32 = 4;
pub const RPC_C_RPCHTTP_USE_LOAD_BALANCE: u32 = 8;
pub const RPC_C_OPT_BINDING_NONCAUSAL: u32 = 9;
pub const RPC_C_OPT_SECURITY_CALLBACK: u32 = 10;
pub const RPC_C_OPT_UNIQUE_BINDING: u32 = 11;
pub const RPC_C_OPT_TRANS_SEND_BUFFER_SIZE: u32 = 5;
pub const RPC_C_OPT_CALL_TIMEOUT: u32 = 12;
pub const RPC_C_OPT_DONT_LINGER: u32 = 13;
pub const RPC_C_OPT_TRUST_PEER: u32 = 14;
pub const RPC_C_OPT_ASYNC_BLOCK: u32 = 15;
pub const RPC_C_OPT_OPTIMIZE_TIME: u32 = 16;
pub const RPC_C_OPT_MAX_OPTIONS: u32 = 17;
pub const RPC_C_FULL_CERT_CHAIN: u32 = 1;
pub const RPC_C_STATS_CALLS_IN: u32 = 0;
pub const RPC_C_STATS_CALLS_OUT: u32 = 1;
pub const RPC_C_STATS_PKTS_IN: u32 = 2;
pub const RPC_C_STATS_PKTS_OUT: u32 = 3;
pub const RPC_C_AUTHN_LEVEL_DEFAULT: u32 = 0;
pub const RPC_C_AUTHN_LEVEL_NONE: u32 = 1;
pub const RPC_C_AUTHN_LEVEL_CONNECT: u32 = 2;
pub const RPC_C_AUTHN_LEVEL_CALL: u32 = 3;
pub const RPC_C_AUTHN_LEVEL_PKT: u32 = 4;
pub const RPC_C_AUTHN_LEVEL_PKT_INTEGRITY: u32 = 5;
pub const RPC_C_AUTHN_LEVEL_PKT_PRIVACY: u32 = 6;
pub const RPC_C_IMP_LEVEL_DEFAULT: u32 = 0;
pub const RPC_C_IMP_LEVEL_ANONYMOUS: u32 = 1;
pub const RPC_C_IMP_LEVEL_IDENTIFY: u32 = 2;
pub const RPC_C_IMP_LEVEL_IMPERSONATE: u32 = 3;
pub const RPC_C_IMP_LEVEL_DELEGATE: u32 = 4;
pub const RPC_C_QOS_IDENTITY_STATIC: u32 = 0;
pub const RPC_C_QOS_IDENTITY_DYNAMIC: u32 = 1;
pub const RPC_C_QOS_CAPABILITIES_DEFAULT: u32 = 0;
pub const RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH: u32 = 1;
pub const RPC_C_QOS_CAPABILITIES_MAKE_FULLSIC: u32 = 2;
pub const RPC_C_QOS_CAPABILITIES_ANY_AUTHORITY: u32 = 4;
pub const RPC_C_QOS_CAPABILITIES_IGNORE_DELEGATE_FAILURE: u32 = 8;
pub const RPC_C_QOS_CAPABILITIES_LOCAL_MA_HINT: u32 = 16;
pub const RPC_C_QOS_CAPABILITIES_SCHANNEL_FULL_AUTH_IDENTITY: u32 = 32;
pub const RPC_C_PROTECT_LEVEL_DEFAULT: u32 = 0;
pub const RPC_C_PROTECT_LEVEL_NONE: u32 = 1;
pub const RPC_C_PROTECT_LEVEL_CONNECT: u32 = 2;
pub const RPC_C_PROTECT_LEVEL_CALL: u32 = 3;
pub const RPC_C_PROTECT_LEVEL_PKT: u32 = 4;
pub const RPC_C_PROTECT_LEVEL_PKT_INTEGRITY: u32 = 5;
pub const RPC_C_PROTECT_LEVEL_PKT_PRIVACY: u32 = 6;
pub const RPC_C_AUTHN_NONE: u32 = 0;
pub const RPC_C_AUTHN_DCE_PRIVATE: u32 = 1;
pub const RPC_C_AUTHN_DCE_PUBLIC: u32 = 2;
pub const RPC_C_AUTHN_DEC_PUBLIC: u32 = 4;
pub const RPC_C_AUTHN_GSS_NEGOTIATE: u32 = 9;
pub const RPC_C_AUTHN_WINNT: u32 = 10;
pub const RPC_C_AUTHN_GSS_SCHANNEL: u32 = 14;
pub const RPC_C_AUTHN_GSS_KERBEROS: u32 = 16;
pub const RPC_C_AUTHN_DPA: u32 = 17;
pub const RPC_C_AUTHN_MSN: u32 = 18;
pub const RPC_C_AUTHN_DIGEST: u32 = 21;
pub const RPC_C_AUTHN_KERNEL: u32 = 20;
pub const RPC_C_AUTHN_NEGO_EXTENDER: u32 = 30;
pub const RPC_C_AUTHN_PKU2U: u32 = 31;
pub const RPC_C_AUTHN_LIVE_SSP: u32 = 32;
pub const RPC_C_AUTHN_LIVEXP_SSP: u32 = 35;
pub const RPC_C_AUTHN_CLOUD_AP: u32 = 36;
pub const RPC_C_AUTHN_MSONLINE: u32 = 82;
pub const RPC_C_AUTHN_MQ: u32 = 100;
pub const RPC_C_AUTHN_DEFAULT: u32 = 4294967295;
pub const RPC_C_SECURITY_QOS_VERSION: u32 = 1;
pub const RPC_C_SECURITY_QOS_VERSION_1: u32 = 1;
pub const SEC_WINNT_AUTH_IDENTITY_ANSI: u32 = 1;
pub const SEC_WINNT_AUTH_IDENTITY_UNICODE: u32 = 2;
pub const RPC_C_SECURITY_QOS_VERSION_2: u32 = 2;
pub const RPC_C_AUTHN_INFO_TYPE_HTTP: u32 = 1;
pub const RPC_C_HTTP_AUTHN_TARGET_SERVER: u32 = 1;
pub const RPC_C_HTTP_AUTHN_TARGET_PROXY: u32 = 2;
pub const RPC_C_HTTP_AUTHN_SCHEME_BASIC: u32 = 1;
pub const RPC_C_HTTP_AUTHN_SCHEME_NTLM: u32 = 2;
pub const RPC_C_HTTP_AUTHN_SCHEME_PASSPORT: u32 = 4;
pub const RPC_C_HTTP_AUTHN_SCHEME_DIGEST: u32 = 8;
pub const RPC_C_HTTP_AUTHN_SCHEME_NEGOTIATE: u32 = 16;
pub const RPC_C_HTTP_AUTHN_SCHEME_CERT: u32 = 65536;
pub const RPC_C_HTTP_FLAG_USE_SSL: u32 = 1;
pub const RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME: u32 = 2;
pub const RPC_C_HTTP_FLAG_IGNORE_CERT_CN_INVALID: u32 = 8;
pub const RPC_C_HTTP_FLAG_ENABLE_CERT_REVOCATION_CHECK: u32 = 16;
pub const RPC_C_SECURITY_QOS_VERSION_3: u32 = 3;
pub const RPC_C_SECURITY_QOS_VERSION_4: u32 = 4;
pub const RPC_C_SECURITY_QOS_VERSION_5: u32 = 5;
pub const RPC_PROTSEQ_TCP: u32 = 1;
pub const RPC_PROTSEQ_NMP: u32 = 2;
pub const RPC_PROTSEQ_LRPC: u32 = 3;
pub const RPC_PROTSEQ_HTTP: u32 = 4;
pub const RPC_BHT_OBJECT_UUID_VALID: u32 = 1;
pub const RPC_BHO_NONCAUSAL: u32 = 1;
pub const RPC_BHO_DONTLINGER: u32 = 2;
pub const RPC_BHO_EXCLUSIVE_AND_GUARANTEED: u32 = 4;
pub const RPC_C_AUTHZ_NONE: u32 = 0;
pub const RPC_C_AUTHZ_NAME: u32 = 1;
pub const RPC_C_AUTHZ_DCE: u32 = 2;
pub const RPC_C_AUTHZ_DEFAULT: u32 = 4294967295;
pub const DCE_C_ERROR_STRING_LEN: u32 = 256;
pub const RPC_C_EP_ALL_ELTS: u32 = 0;
pub const RPC_C_EP_MATCH_BY_IF: u32 = 1;
pub const RPC_C_EP_MATCH_BY_OBJ: u32 = 2;
pub const RPC_C_EP_MATCH_BY_BOTH: u32 = 3;
pub const RPC_C_VERS_ALL: u32 = 1;
pub const RPC_C_VERS_COMPATIBLE: u32 = 2;
pub const RPC_C_VERS_EXACT: u32 = 3;
pub const RPC_C_VERS_MAJOR_ONLY: u32 = 4;
pub const RPC_C_VERS_UPTO: u32 = 5;
pub const RPC_C_MGMT_INQ_IF_IDS: u32 = 0;
pub const RPC_C_MGMT_INQ_PRINC_NAME: u32 = 1;
pub const RPC_C_MGMT_INQ_STATS: u32 = 2;
pub const RPC_C_MGMT_IS_SERVER_LISTEN: u32 = 3;
pub const RPC_C_MGMT_STOP_SERVER_LISTEN: u32 = 4;
pub const RPC_C_PARM_MAX_PACKET_LENGTH: u32 = 1;
pub const RPC_C_PARM_BUFFER_LENGTH: u32 = 2;
pub const RPC_IF_AUTOLISTEN: u32 = 1;
pub const RPC_IF_OLE: u32 = 2;
pub const RPC_IF_ALLOW_UNKNOWN_AUTHORITY: u32 = 4;
pub const RPC_IF_ALLOW_SECURE_ONLY: u32 = 8;
pub const RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH: u32 = 16;
pub const RPC_IF_ALLOW_LOCAL_ONLY: u32 = 32;
pub const RPC_IF_SEC_NO_CACHE: u32 = 64;
pub const RPC_IF_SEC_CACHE_PER_PROC: u32 = 128;
pub const RPC_IF_ASYNC_CALLBACK: u32 = 256;
pub const RPC_FW_IF_FLAG_DCOM: u32 = 1;
pub const RPC_CONTEXT_HANDLE_DEFAULT_FLAGS: u32 = 0;
pub const RPC_CONTEXT_HANDLE_FLAGS: u32 = 805306368;
pub const RPC_CONTEXT_HANDLE_SERIALIZE: u32 = 268435456;
pub const RPC_CONTEXT_HANDLE_DONT_SERIALIZE: u32 = 536870912;
pub const RPC_TYPE_STRICT_CONTEXT_HANDLE: u32 = 1073741824;
pub const RPC_TYPE_DISCONNECT_EVENT_CONTEXT_HANDLE: u32 = 2147483648;
pub const RPC_NCA_FLAGS_DEFAULT: u32 = 0;
pub const RPC_NCA_FLAGS_IDEMPOTENT: u32 = 1;
pub const RPC_NCA_FLAGS_BROADCAST: u32 = 2;
pub const RPC_NCA_FLAGS_MAYBE: u32 = 4;
pub const RPCFLG_HAS_GUARANTEE: u32 = 16;
pub const RPCFLG_WINRT_REMOTE_ASYNC: u32 = 32;
pub const RPC_BUFFER_COMPLETE: u32 = 4096;
pub const RPC_BUFFER_PARTIAL: u32 = 8192;
pub const RPC_BUFFER_EXTRA: u32 = 16384;
pub const RPC_BUFFER_ASYNC: u32 = 32768;
pub const RPC_BUFFER_NONOTIFY: u32 = 65536;
pub const RPCFLG_MESSAGE: u32 = 16777216;
pub const RPCFLG_AUTO_COMPLETE: u32 = 134217728;
pub const RPCFLG_LOCAL_CALL: u32 = 268435456;
pub const RPCFLG_INPUT_SYNCHRONOUS: u32 = 536870912;
pub const RPCFLG_ASYNCHRONOUS: u32 = 1073741824;
pub const RPCFLG_NON_NDR: u32 = 2147483648;
pub const RPCFLG_HAS_MULTI_SYNTAXES: u32 = 33554432;
pub const RPCFLG_HAS_CALLBACK: u32 = 67108864;
pub const RPCFLG_ACCESSIBILITY_BIT1: u32 = 1048576;
pub const RPCFLG_ACCESSIBILITY_BIT2: u32 = 2097152;
pub const RPCFLG_ACCESS_LOCAL: u32 = 4194304;
pub const NDR_CUSTOM_OR_DEFAULT_ALLOCATOR: u32 = 268435456;
pub const NDR_DEFAULT_ALLOCATOR: u32 = 536870912;
pub const RPCFLG_NDR64_CONTAINS_ARM_LAYOUT: u32 = 67108864;
pub const RPCFLG_SENDER_WAITING_FOR_REPLY: u32 = 8388608;
pub const RPC_FLAGS_VALID_BIT: u32 = 32768;
pub const NT351_INTERFACE_SIZE: u32 = 64;
pub const RPC_INTERFACE_HAS_PIPES: u32 = 1;
pub const RPC_SYSTEM_HANDLE_FREE_UNRETRIEVED: u32 = 1;
pub const RPC_SYSTEM_HANDLE_FREE_RETRIEVED: u32 = 2;
pub const RPC_SYSTEM_HANDLE_FREE_ALL: u32 = 3;
pub const RPC_SYSTEM_HANDLE_FREE_ERROR_ON_CLOSE: u32 = 4;
pub const TRANSPORT_TYPE_CN: u32 = 1;
pub const TRANSPORT_TYPE_DG: u32 = 2;
pub const TRANSPORT_TYPE_LPC: u32 = 4;
pub const TRANSPORT_TYPE_WMSG: u32 = 8;
pub const RPC_P_ADDR_FORMAT_TCP_IPV4: u32 = 1;
pub const RPC_P_ADDR_FORMAT_TCP_IPV6: u32 = 2;
pub const RPC_C_OPT_SESSION_ID: u32 = 6;
pub const RPC_C_OPT_COOKIE_AUTH: u32 = 7;
pub const RPC_C_OPT_RESOURCE_TYPE_UUID: u32 = 8;
pub const RPC_PROXY_CONNECTION_TYPE_IN_PROXY: u32 = 0;
pub const RPC_PROXY_CONNECTION_TYPE_OUT_PROXY: u32 = 1;
pub const RPC_C_OPT_PRIVATE_SUPPRESS_WAKE: u32 = 1;
pub const RPC_C_OPT_PRIVATE_DO_NOT_DISTURB: u32 = 2;
pub const RPC_C_OPT_PRIVATE_BREAK_ON_SUSPEND: u32 = 3;
pub const RPC_C_NS_SYNTAX_DEFAULT: u32 = 0;
pub const RPC_C_NS_SYNTAX_DCE: u32 = 3;
pub const RPC_C_PROFILE_DEFAULT_ELT: u32 = 0;
pub const RPC_C_PROFILE_ALL_ELT: u32 = 1;
pub const RPC_C_PROFILE_ALL_ELTS: u32 = 1;
pub const RPC_C_PROFILE_MATCH_BY_IF: u32 = 2;
pub const RPC_C_PROFILE_MATCH_BY_MBR: u32 = 3;
pub const RPC_C_PROFILE_MATCH_BY_BOTH: u32 = 4;
pub const RPC_C_NS_DEFAULT_EXP_AGE: i32 = -1;
pub const RPC_S_OK: u32 = 0;
pub const RPC_S_INVALID_ARG: u32 = 87;
pub const RPC_S_OUT_OF_MEMORY: u32 = 14;
pub const RPC_S_OUT_OF_THREADS: u32 = 164;
pub const RPC_S_INVALID_LEVEL: u32 = 87;
pub const RPC_S_BUFFER_TOO_SMALL: u32 = 122;
pub const RPC_S_INVALID_SECURITY_DESC: u32 = 1338;
pub const RPC_S_ACCESS_DENIED: u32 = 5;
pub const RPC_S_SERVER_OUT_OF_MEMORY: u32 = 1130;
pub const RPC_S_ASYNC_CALL_PENDING: u32 = 997;
pub const RPC_S_UNKNOWN_PRINCIPAL: u32 = 1332;
pub const RPC_S_TIMEOUT: u32 = 1460;
pub const RPC_S_NOT_ENOUGH_QUOTA: u32 = 1816;
pub const RPC_X_NO_MEMORY: u32 = 14;
pub const RPC_X_INVALID_BOUND: u32 = 1734;
pub const RPC_X_INVALID_TAG: u32 = 1733;
pub const RPC_X_ENUM_VALUE_TOO_LARGE: u32 = 1781;
pub const RPC_X_SS_CONTEXT_MISMATCH: u32 = 6;
pub const RPC_X_INVALID_BUFFER: u32 = 1784;
pub const RPC_X_PIPE_APP_MEMORY: u32 = 14;
pub const RPC_X_INVALID_PIPE_OPERATION: u32 = 1831;
pub const RPC_C_NOTIFY_ON_SEND_COMPLETE: u32 = 1;
pub const RPC_C_INFINITE_TIMEOUT: u32 = 4294967295;
pub const MaxNumberOfEEInfoParams: u32 = 4;
pub const RPC_EEINFO_VERSION: u32 = 1;
pub const EEInfoPreviousRecordsMissing: u32 = 1;
pub const EEInfoNextRecordsMissing: u32 = 2;
pub const EEInfoUseFileTime: u32 = 4;
pub const EEInfoGCCOM: u32 = 11;
pub const EEInfoGCFRS: u32 = 12;
pub const RPC_QUERY_SERVER_PRINCIPAL_NAME: u32 = 2;
pub const RPC_QUERY_CLIENT_PRINCIPAL_NAME: u32 = 4;
pub const RPC_QUERY_CALL_LOCAL_ADDRESS: u32 = 8;
pub const RPC_QUERY_CLIENT_PID: u32 = 16;
pub const RPC_QUERY_IS_CLIENT_LOCAL: u32 = 32;
pub const RPC_QUERY_NO_AUTH_REQUIRED: u32 = 64;
pub const RPC_CALL_ATTRIBUTES_VERSION: u32 = 3;
pub const RPC_QUERY_CLIENT_ID: u32 = 128;
pub const RPC_CALL_STATUS_CANCELLED: u32 = 1;
pub const RPC_CALL_STATUS_DISCONNECTED: u32 = 2;
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 ABM_GETAUTOHIDEBAREX: u32 = 11;
pub const ABM_SETAUTOHIDEBAREX: u32 = 12;
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_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 SEE_MASK_FLAG_HINST_IS_SITE: u32 = 134217728;
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 NIN_POPUPOPEN: u32 = 1030;
pub const NIN_POPUPCLOSE: u32 = 1031;
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 NOTIFYICON_VERSION_4: u32 = 4;
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 NIF_REALTIME: u32 = 64;
pub const NIF_SHOWTIP: u32 = 128;
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 NIIF_LARGE_ICON: u32 = 32;
pub const NIIF_RESPECT_QUIET_TIME: u32 = 128;
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 SHGSI_ICONLOCATION: u32 = 0;
pub const SHGSI_ICON: u32 = 256;
pub const SHGSI_SYSICONINDEX: u32 = 16384;
pub const SHGSI_LINKOVERLAY: u32 = 32768;
pub const SHGSI_SELECTED: u32 = 65536;
pub const SHGSI_LARGEICON: u32 = 0;
pub const SHGSI_SMALLICON: u32 = 1;
pub const SHGSI_SHELLICONSIZE: u32 = 4;
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 SHGNLI_USEURLEXT: u32 = 32;
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 PRINT_PROP_FORCE_NAME: u32 = 1;
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_JUMBO: u32 = 4;
pub const SHIL_LAST: u32 = 4;
pub const WC_NETADDRESS: &'static [u8; 18usize] = b"msctls_netaddress\0";
pub const NCM_GETADDRESS: u32 = 1025;
pub const NCM_SETALLOWTYPE: u32 = 1026;
pub const NCM_GETALLOWTYPE: u32 = 1027;
pub const NCM_DISPLAYERRORTIP: u32 = 1028;
pub const PERF_DATA_VERSION: u32 = 1;
pub const PERF_DATA_REVISION: u32 = 1;
pub const PERF_NO_INSTANCES: i32 = -1;
pub const PERF_SIZE_DWORD: u32 = 0;
pub const PERF_SIZE_LARGE: u32 = 256;
pub const PERF_SIZE_ZERO: u32 = 512;
pub const PERF_SIZE_VARIABLE_LEN: u32 = 768;
pub const PERF_TYPE_NUMBER: u32 = 0;
pub const PERF_TYPE_COUNTER: u32 = 1024;
pub const PERF_TYPE_TEXT: u32 = 2048;
pub const PERF_TYPE_ZERO: u32 = 3072;
pub const PERF_NUMBER_HEX: u32 = 0;
pub const PERF_NUMBER_DECIMAL: u32 = 65536;
pub const PERF_NUMBER_DEC_1000: u32 = 131072;
pub const PERF_COUNTER_VALUE: u32 = 0;
pub const PERF_COUNTER_RATE: u32 = 65536;
pub const PERF_COUNTER_FRACTION: u32 = 131072;
pub const PERF_COUNTER_BASE: u32 = 196608;
pub const PERF_COUNTER_ELAPSED: u32 = 262144;
pub const PERF_COUNTER_QUEUELEN: u32 = 327680;
pub const PERF_COUNTER_HISTOGRAM: u32 = 393216;
pub const PERF_COUNTER_PRECISION: u32 = 458752;
pub const PERF_TEXT_UNICODE: u32 = 0;
pub const PERF_TEXT_ASCII: u32 = 65536;
pub const PERF_TIMER_TICK: u32 = 0;
pub const PERF_TIMER_100NS: u32 = 1048576;
pub const PERF_OBJECT_TIMER: u32 = 2097152;
pub const PERF_DELTA_COUNTER: u32 = 4194304;
pub const PERF_DELTA_BASE: u32 = 8388608;
pub const PERF_INVERSE_COUNTER: u32 = 16777216;
pub const PERF_MULTI_COUNTER: u32 = 33554432;
pub const PERF_DISPLAY_NO_SUFFIX: u32 = 0;
pub const PERF_DISPLAY_PER_SEC: u32 = 268435456;
pub const PERF_DISPLAY_PERCENT: u32 = 536870912;
pub const PERF_DISPLAY_SECONDS: u32 = 805306368;
pub const PERF_DISPLAY_NOSHOW: u32 = 1073741824;
pub const PERF_COUNTER_COUNTER: u32 = 272696320;
pub const PERF_COUNTER_TIMER: u32 = 541132032;
pub const PERF_COUNTER_QUEUELEN_TYPE: u32 = 4523008;
pub const PERF_COUNTER_LARGE_QUEUELEN_TYPE: u32 = 4523264;
pub const PERF_COUNTER_100NS_QUEUELEN_TYPE: u32 = 5571840;
pub const PERF_COUNTER_OBJ_TIME_QUEUELEN_TYPE: u32 = 6620416;
pub const PERF_COUNTER_BULK_COUNT: u32 = 272696576;
pub const PERF_COUNTER_TEXT: u32 = 2816;
pub const PERF_COUNTER_RAWCOUNT: u32 = 65536;
pub const PERF_COUNTER_LARGE_RAWCOUNT: u32 = 65792;
pub const PERF_COUNTER_RAWCOUNT_HEX: u32 = 0;
pub const PERF_COUNTER_LARGE_RAWCOUNT_HEX: u32 = 256;
pub const PERF_SAMPLE_FRACTION: u32 = 549585920;
pub const PERF_SAMPLE_COUNTER: u32 = 4260864;
pub const PERF_COUNTER_NODATA: u32 = 1073742336;
pub const PERF_COUNTER_TIMER_INV: u32 = 557909248;
pub const PERF_SAMPLE_BASE: u32 = 1073939457;
pub const PERF_AVERAGE_TIMER: u32 = 805438464;
pub const PERF_AVERAGE_BASE: u32 = 1073939458;
pub const PERF_AVERAGE_BULK: u32 = 1073874176;
pub const PERF_OBJ_TIME_TIMER: u32 = 543229184;
pub const PERF_100NSEC_TIMER: u32 = 542180608;
pub const PERF_100NSEC_TIMER_INV: u32 = 558957824;
pub const PERF_COUNTER_MULTI_TIMER: u32 = 574686464;
pub const PERF_COUNTER_MULTI_TIMER_INV: u32 = 591463680;
pub const PERF_COUNTER_MULTI_BASE: u32 = 1107494144;
pub const PERF_100NSEC_MULTI_TIMER: u32 = 575735040;
pub const PERF_100NSEC_MULTI_TIMER_INV: u32 = 592512256;
pub const PERF_RAW_FRACTION: u32 = 537003008;
pub const PERF_LARGE_RAW_FRACTION: u32 = 537003264;
pub const PERF_RAW_BASE: u32 = 1073939459;
pub const PERF_LARGE_RAW_BASE: u32 = 1073939712;
pub const PERF_ELAPSED_TIME: u32 = 807666944;
pub const PERF_COUNTER_HISTOGRAM_TYPE: u32 = 2147483648;
pub const PERF_COUNTER_DELTA: u32 = 4195328;
pub const PERF_COUNTER_LARGE_DELTA: u32 = 4195584;
pub const PERF_PRECISION_SYSTEM_TIMER: u32 = 541525248;
pub const PERF_PRECISION_100NS_TIMER: u32 = 542573824;
pub const PERF_PRECISION_OBJECT_TIMER: u32 = 543622400;
pub const PERF_PRECISION_TIMESTAMP: u32 = 1073939712;
pub const PERF_DETAIL_NOVICE: u32 = 100;
pub const PERF_DETAIL_ADVANCED: u32 = 200;
pub const PERF_DETAIL_EXPERT: u32 = 300;
pub const PERF_DETAIL_WIZARD: u32 = 400;
pub const PERF_NO_UNIQUE_ID: i32 = -1;
pub const MAX_PERF_OBJECTS_IN_QUERY_FUNCTION: u32 = 64;
pub const WINPERF_LOG_NONE: u32 = 0;
pub const WINPERF_LOG_USER: u32 = 1;
pub const WINPERF_LOG_DEBUG: u32 = 2;
pub const WINPERF_LOG_VERBOSE: u32 = 3;
pub const ALG_CLASS_ANY: u32 = 0;
pub const ALG_CLASS_SIGNATURE: u32 = 8192;
pub const ALG_CLASS_MSG_ENCRYPT: u32 = 16384;
pub const ALG_CLASS_DATA_ENCRYPT: u32 = 24576;
pub const ALG_CLASS_HASH: u32 = 32768;
pub const ALG_CLASS_KEY_EXCHANGE: u32 = 40960;
pub const ALG_CLASS_ALL: u32 = 57344;
pub const ALG_TYPE_ANY: u32 = 0;
pub const ALG_TYPE_DSS: u32 = 512;
pub const ALG_TYPE_RSA: u32 = 1024;
pub const ALG_TYPE_BLOCK: u32 = 1536;
pub const ALG_TYPE_STREAM: u32 = 2048;
pub const ALG_TYPE_DH: u32 = 2560;
pub const ALG_TYPE_SECURECHANNEL: u32 = 3072;
pub const ALG_TYPE_ECDH: u32 = 3584;
pub const ALG_TYPE_THIRDPARTY: u32 = 4096;
pub const ALG_SID_ANY: u32 = 0;
pub const ALG_SID_THIRDPARTY_ANY: u32 = 0;
pub const ALG_SID_RSA_ANY: u32 = 0;
pub const ALG_SID_RSA_PKCS: u32 = 1;
pub const ALG_SID_RSA_MSATWORK: u32 = 2;
pub const ALG_SID_RSA_ENTRUST: u32 = 3;
pub const ALG_SID_RSA_PGP: u32 = 4;
pub const ALG_SID_DSS_ANY: u32 = 0;
pub const ALG_SID_DSS_PKCS: u32 = 1;
pub const ALG_SID_DSS_DMS: u32 = 2;
pub const ALG_SID_ECDSA: u32 = 3;
pub const ALG_SID_DES: u32 = 1;
pub const ALG_SID_3DES: u32 = 3;
pub const ALG_SID_DESX: u32 = 4;
pub const ALG_SID_IDEA: u32 = 5;
pub const ALG_SID_CAST: u32 = 6;
pub const ALG_SID_SAFERSK64: u32 = 7;
pub const ALG_SID_SAFERSK128: u32 = 8;
pub const ALG_SID_3DES_112: u32 = 9;
pub const ALG_SID_CYLINK_MEK: u32 = 12;
pub const ALG_SID_RC5: u32 = 13;
pub const ALG_SID_AES_128: u32 = 14;
pub const ALG_SID_AES_192: u32 = 15;
pub const ALG_SID_AES_256: u32 = 16;
pub const ALG_SID_AES: u32 = 17;
pub const ALG_SID_SKIPJACK: u32 = 10;
pub const ALG_SID_TEK: u32 = 11;
pub const CRYPT_MODE_CBCI: u32 = 6;
pub const CRYPT_MODE_CFBP: u32 = 7;
pub const CRYPT_MODE_OFBP: u32 = 8;
pub const CRYPT_MODE_CBCOFM: u32 = 9;
pub const CRYPT_MODE_CBCOFMI: u32 = 10;
pub const ALG_SID_RC2: u32 = 2;
pub const ALG_SID_RC4: u32 = 1;
pub const ALG_SID_SEAL: u32 = 2;
pub const ALG_SID_DH_SANDF: u32 = 1;
pub const ALG_SID_DH_EPHEM: u32 = 2;
pub const ALG_SID_AGREED_KEY_ANY: u32 = 3;
pub const ALG_SID_KEA: u32 = 4;
pub const ALG_SID_ECDH: u32 = 5;
pub const ALG_SID_ECDH_EPHEM: u32 = 6;
pub const ALG_SID_MD2: u32 = 1;
pub const ALG_SID_MD4: u32 = 2;
pub const ALG_SID_MD5: u32 = 3;
pub const ALG_SID_SHA: u32 = 4;
pub const ALG_SID_SHA1: u32 = 4;
pub const ALG_SID_MAC: u32 = 5;
pub const ALG_SID_RIPEMD: u32 = 6;
pub const ALG_SID_RIPEMD160: u32 = 7;
pub const ALG_SID_SSL3SHAMD5: u32 = 8;
pub const ALG_SID_HMAC: u32 = 9;
pub const ALG_SID_TLS1PRF: u32 = 10;
pub const ALG_SID_HASH_REPLACE_OWF: u32 = 11;
pub const ALG_SID_SHA_256: u32 = 12;
pub const ALG_SID_SHA_384: u32 = 13;
pub const ALG_SID_SHA_512: u32 = 14;
pub const ALG_SID_SSL3_MASTER: u32 = 1;
pub const ALG_SID_SCHANNEL_MASTER_HASH: u32 = 2;
pub const ALG_SID_SCHANNEL_MAC_KEY: u32 = 3;
pub const ALG_SID_PCT1_MASTER: u32 = 4;
pub const ALG_SID_SSL2_MASTER: u32 = 5;
pub const ALG_SID_TLS1_MASTER: u32 = 6;
pub const ALG_SID_SCHANNEL_ENC_KEY: u32 = 7;
pub const ALG_SID_ECMQV: u32 = 1;
pub const ALG_SID_EXAMPLE: u32 = 80;
pub const CALG_MD2: u32 = 32769;
pub const CALG_MD4: u32 = 32770;
pub const CALG_MD5: u32 = 32771;
pub const CALG_SHA: u32 = 32772;
pub const CALG_SHA1: u32 = 32772;
pub const CALG_MAC: u32 = 32773;
pub const CALG_RSA_SIGN: u32 = 9216;
pub const CALG_DSS_SIGN: u32 = 8704;
pub const CALG_NO_SIGN: u32 = 8192;
pub const CALG_RSA_KEYX: u32 = 41984;
pub const CALG_DES: u32 = 26113;
pub const CALG_3DES_112: u32 = 26121;
pub const CALG_3DES: u32 = 26115;
pub const CALG_DESX: u32 = 26116;
pub const CALG_RC2: u32 = 26114;
pub const CALG_RC4: u32 = 26625;
pub const CALG_SEAL: u32 = 26626;
pub const CALG_DH_SF: u32 = 43521;
pub const CALG_DH_EPHEM: u32 = 43522;
pub const CALG_AGREEDKEY_ANY: u32 = 43523;
pub const CALG_KEA_KEYX: u32 = 43524;
pub const CALG_HUGHES_MD5: u32 = 40963;
pub const CALG_SKIPJACK: u32 = 26122;
pub const CALG_TEK: u32 = 26123;
pub const CALG_CYLINK_MEK: u32 = 26124;
pub const CALG_SSL3_SHAMD5: u32 = 32776;
pub const CALG_SSL3_MASTER: u32 = 19457;
pub const CALG_SCHANNEL_MASTER_HASH: u32 = 19458;
pub const CALG_SCHANNEL_MAC_KEY: u32 = 19459;
pub const CALG_SCHANNEL_ENC_KEY: u32 = 19463;
pub const CALG_PCT1_MASTER: u32 = 19460;
pub const CALG_SSL2_MASTER: u32 = 19461;
pub const CALG_TLS1_MASTER: u32 = 19462;
pub const CALG_RC5: u32 = 26125;
pub const CALG_HMAC: u32 = 32777;
pub const CALG_TLS1PRF: u32 = 32778;
pub const CALG_HASH_REPLACE_OWF: u32 = 32779;
pub const CALG_AES_128: u32 = 26126;
pub const CALG_AES_192: u32 = 26127;
pub const CALG_AES_256: u32 = 26128;
pub const CALG_AES: u32 = 26129;
pub const CALG_SHA_256: u32 = 32780;
pub const CALG_SHA_384: u32 = 32781;
pub const CALG_SHA_512: u32 = 32782;
pub const CALG_ECDH: u32 = 43525;
pub const CALG_ECDH_EPHEM: u32 = 44550;
pub const CALG_ECMQV: u32 = 40961;
pub const CALG_ECDSA: u32 = 8707;
pub const CALG_NULLCIPHER: u32 = 24576;
pub const CALG_THIRDPARTY_KEY_EXCHANGE: u32 = 45056;
pub const CALG_THIRDPARTY_SIGNATURE: u32 = 12288;
pub const CALG_THIRDPARTY_CIPHER: u32 = 28672;
pub const CALG_THIRDPARTY_HASH: u32 = 36864;
pub const CRYPT_VERIFYCONTEXT: u32 = 4026531840;
pub const CRYPT_NEWKEYSET: u32 = 8;
pub const CRYPT_DELETEKEYSET: u32 = 16;
pub const CRYPT_MACHINE_KEYSET: u32 = 32;
pub const CRYPT_SILENT: u32 = 64;
pub const CRYPT_DEFAULT_CONTAINER_OPTIONAL: u32 = 128;
pub const CRYPT_EXPORTABLE: u32 = 1;
pub const CRYPT_USER_PROTECTED: u32 = 2;
pub const CRYPT_CREATE_SALT: u32 = 4;
pub const CRYPT_UPDATE_KEY: u32 = 8;
pub const CRYPT_NO_SALT: u32 = 16;
pub const CRYPT_PREGEN: u32 = 64;
pub const CRYPT_RECIPIENT: u32 = 16;
pub const CRYPT_INITIATOR: u32 = 64;
pub const CRYPT_ONLINE: u32 = 128;
pub const CRYPT_SF: u32 = 256;
pub const CRYPT_CREATE_IV: u32 = 512;
pub const CRYPT_KEK: u32 = 1024;
pub const CRYPT_DATA_KEY: u32 = 2048;
pub const CRYPT_VOLATILE: u32 = 4096;
pub const CRYPT_SGCKEY: u32 = 8192;
pub const CRYPT_USER_PROTECTED_STRONG: u32 = 1048576;
pub const CRYPT_ARCHIVABLE: u32 = 16384;
pub const CRYPT_FORCE_KEY_PROTECTION_HIGH: u32 = 32768;
pub const RSA1024BIT_KEY: u32 = 67108864;
pub const CRYPT_SERVER: u32 = 1024;
pub const KEY_LENGTH_MASK: u32 = 4294901760;
pub const CRYPT_Y_ONLY: u32 = 1;
pub const CRYPT_SSL2_FALLBACK: u32 = 2;
pub const CRYPT_DESTROYKEY: u32 = 4;
pub const CRYPT_OAEP: u32 = 64;
pub const CRYPT_BLOB_VER3: u32 = 128;
pub const CRYPT_IPSEC_HMAC_KEY: u32 = 256;
pub const CRYPT_DECRYPT_RSA_NO_PADDING_CHECK: u32 = 32;
pub const CRYPT_SECRETDIGEST: u32 = 1;
pub const CRYPT_OWF_REPL_LM_HASH: u32 = 1;
pub const CRYPT_LITTLE_ENDIAN: u32 = 1;
pub const CRYPT_NOHASHOID: u32 = 1;
pub const CRYPT_TYPE2_FORMAT: u32 = 2;
pub const CRYPT_X931_FORMAT: u32 = 4;
pub const CRYPT_MACHINE_DEFAULT: u32 = 1;
pub const CRYPT_USER_DEFAULT: u32 = 2;
pub const CRYPT_DELETE_DEFAULT: u32 = 4;
pub const SIMPLEBLOB: u32 = 1;
pub const PUBLICKEYBLOB: u32 = 6;
pub const PRIVATEKEYBLOB: u32 = 7;
pub const PLAINTEXTKEYBLOB: u32 = 8;
pub const OPAQUEKEYBLOB: u32 = 9;
pub const PUBLICKEYBLOBEX: u32 = 10;
pub const SYMMETRICWRAPKEYBLOB: u32 = 11;
pub const KEYSTATEBLOB: u32 = 12;
pub const AT_KEYEXCHANGE: u32 = 1;
pub const AT_SIGNATURE: u32 = 2;
pub const CRYPT_USERDATA: u32 = 1;
pub const KP_IV: u32 = 1;
pub const KP_SALT: u32 = 2;
pub const KP_PADDING: u32 = 3;
pub const KP_MODE: u32 = 4;
pub const KP_MODE_BITS: u32 = 5;
pub const KP_PERMISSIONS: u32 = 6;
pub const KP_ALGID: u32 = 7;
pub const KP_BLOCKLEN: u32 = 8;
pub const KP_KEYLEN: u32 = 9;
pub const KP_SALT_EX: u32 = 10;
pub const KP_P: u32 = 11;
pub const KP_G: u32 = 12;
pub const KP_Q: u32 = 13;
pub const KP_X: u32 = 14;
pub const KP_Y: u32 = 15;
pub const KP_RA: u32 = 16;
pub const KP_RB: u32 = 17;
pub const KP_INFO: u32 = 18;
pub const KP_EFFECTIVE_KEYLEN: u32 = 19;
pub const KP_SCHANNEL_ALG: u32 = 20;
pub const KP_CLIENT_RANDOM: u32 = 21;
pub const KP_SERVER_RANDOM: u32 = 22;
pub const KP_RP: u32 = 23;
pub const KP_PRECOMP_MD5: u32 = 24;
pub const KP_PRECOMP_SHA: u32 = 25;
pub const KP_CERTIFICATE: u32 = 26;
pub const KP_CLEAR_KEY: u32 = 27;
pub const KP_PUB_EX_LEN: u32 = 28;
pub const KP_PUB_EX_VAL: u32 = 29;
pub const KP_KEYVAL: u32 = 30;
pub const KP_ADMIN_PIN: u32 = 31;
pub const KP_KEYEXCHANGE_PIN: u32 = 32;
pub const KP_SIGNATURE_PIN: u32 = 33;
pub const KP_PREHASH: u32 = 34;
pub const KP_ROUNDS: u32 = 35;
pub const KP_OAEP_PARAMS: u32 = 36;
pub const KP_CMS_KEY_INFO: u32 = 37;
pub const KP_CMS_DH_KEY_INFO: u32 = 38;
pub const KP_PUB_PARAMS: u32 = 39;
pub const KP_VERIFY_PARAMS: u32 = 40;
pub const KP_HIGHEST_VERSION: u32 = 41;
pub const KP_GET_USE_COUNT: u32 = 42;
pub const KP_PIN_ID: u32 = 43;
pub const KP_PIN_INFO: u32 = 44;
pub const PKCS5_PADDING: u32 = 1;
pub const RANDOM_PADDING: u32 = 2;
pub const ZERO_PADDING: u32 = 3;
pub const CRYPT_MODE_CBC: u32 = 1;
pub const CRYPT_MODE_ECB: u32 = 2;
pub const CRYPT_MODE_OFB: u32 = 3;
pub const CRYPT_MODE_CFB: u32 = 4;
pub const CRYPT_MODE_CTS: u32 = 5;
pub const CRYPT_ENCRYPT: u32 = 1;
pub const CRYPT_DECRYPT: u32 = 2;
pub const CRYPT_EXPORT: u32 = 4;
pub const CRYPT_READ: u32 = 8;
pub const CRYPT_WRITE: u32 = 16;
pub const CRYPT_MAC: u32 = 32;
pub const CRYPT_EXPORT_KEY: u32 = 64;
pub const CRYPT_IMPORT_KEY: u32 = 128;
pub const CRYPT_ARCHIVE: u32 = 256;
pub const HP_ALGID: u32 = 1;
pub const HP_HASHVAL: u32 = 2;
pub const HP_HASHSIZE: u32 = 4;
pub const HP_HMAC_INFO: u32 = 5;
pub const HP_TLS1PRF_LABEL: u32 = 6;
pub const HP_TLS1PRF_SEED: u32 = 7;
pub const CRYPT_FAILED: u32 = 0;
pub const CRYPT_SUCCEED: u32 = 1;
pub const PP_ENUMALGS: u32 = 1;
pub const PP_ENUMCONTAINERS: u32 = 2;
pub const PP_IMPTYPE: u32 = 3;
pub const PP_NAME: u32 = 4;
pub const PP_VERSION: u32 = 5;
pub const PP_CONTAINER: u32 = 6;
pub const PP_CHANGE_PASSWORD: u32 = 7;
pub const PP_KEYSET_SEC_DESCR: u32 = 8;
pub const PP_CERTCHAIN: u32 = 9;
pub const PP_KEY_TYPE_SUBTYPE: u32 = 10;
pub const PP_PROVTYPE: u32 = 16;
pub const PP_KEYSTORAGE: u32 = 17;
pub const PP_APPLI_CERT: u32 = 18;
pub const PP_SYM_KEYSIZE: u32 = 19;
pub const PP_SESSION_KEYSIZE: u32 = 20;
pub const PP_UI_PROMPT: u32 = 21;
pub const PP_ENUMALGS_EX: u32 = 22;
pub const PP_ENUMMANDROOTS: u32 = 25;
pub const PP_ENUMELECTROOTS: u32 = 26;
pub const PP_KEYSET_TYPE: u32 = 27;
pub const PP_ADMIN_PIN: u32 = 31;
pub const PP_KEYEXCHANGE_PIN: u32 = 32;
pub const PP_SIGNATURE_PIN: u32 = 33;
pub const PP_SIG_KEYSIZE_INC: u32 = 34;
pub const PP_KEYX_KEYSIZE_INC: u32 = 35;
pub const PP_UNIQUE_CONTAINER: u32 = 36;
pub const PP_SGC_INFO: u32 = 37;
pub const PP_USE_HARDWARE_RNG: u32 = 38;
pub const PP_KEYSPEC: u32 = 39;
pub const PP_ENUMEX_SIGNING_PROT: u32 = 40;
pub const PP_CRYPT_COUNT_KEY_USE: u32 = 41;
pub const PP_USER_CERTSTORE: u32 = 42;
pub const PP_SMARTCARD_READER: u32 = 43;
pub const PP_SMARTCARD_GUID: u32 = 45;
pub const PP_ROOT_CERTSTORE: u32 = 46;
pub const PP_SMARTCARD_READER_ICON: u32 = 47;
pub const CRYPT_FIRST: u32 = 1;
pub const CRYPT_NEXT: u32 = 2;
pub const CRYPT_SGC_ENUM: u32 = 4;
pub const CRYPT_IMPL_HARDWARE: u32 = 1;
pub const CRYPT_IMPL_SOFTWARE: u32 = 2;
pub const CRYPT_IMPL_MIXED: u32 = 3;
pub const CRYPT_IMPL_UNKNOWN: u32 = 4;
pub const CRYPT_IMPL_REMOVABLE: u32 = 8;
pub const CRYPT_SEC_DESCR: u32 = 1;
pub const CRYPT_PSTORE: u32 = 2;
pub const CRYPT_UI_PROMPT: u32 = 4;
pub const CRYPT_FLAG_PCT1: u32 = 1;
pub const CRYPT_FLAG_SSL2: u32 = 2;
pub const CRYPT_FLAG_SSL3: u32 = 4;
pub const CRYPT_FLAG_TLS1: u32 = 8;
pub const CRYPT_FLAG_IPSEC: u32 = 16;
pub const CRYPT_FLAG_SIGNING: u32 = 32;
pub const CRYPT_SGC: u32 = 1;
pub const CRYPT_FASTSGC: u32 = 2;
pub const PP_CLIENT_HWND: u32 = 1;
pub const PP_CONTEXT_INFO: u32 = 11;
pub const PP_KEYEXCHANGE_KEYSIZE: u32 = 12;
pub const PP_SIGNATURE_KEYSIZE: u32 = 13;
pub const PP_KEYEXCHANGE_ALG: u32 = 14;
pub const PP_SIGNATURE_ALG: u32 = 15;
pub const PP_DELETEKEY: u32 = 24;
pub const PP_PIN_PROMPT_STRING: u32 = 44;
pub const PP_SECURE_KEYEXCHANGE_PIN: u32 = 47;
pub const PP_SECURE_SIGNATURE_PIN: u32 = 48;
pub const PP_DISMISS_PIN_UI_SEC: u32 = 49;
pub const PROV_RSA_FULL: u32 = 1;
pub const PROV_RSA_SIG: u32 = 2;
pub const PROV_DSS: u32 = 3;
pub const PROV_FORTEZZA: u32 = 4;
pub const PROV_MS_EXCHANGE: u32 = 5;
pub const PROV_SSL: u32 = 6;
pub const PROV_RSA_SCHANNEL: u32 = 12;
pub const PROV_DSS_DH: u32 = 13;
pub const PROV_EC_ECDSA_SIG: u32 = 14;
pub const PROV_EC_ECNRA_SIG: u32 = 15;
pub const PROV_EC_ECDSA_FULL: u32 = 16;
pub const PROV_EC_ECNRA_FULL: u32 = 17;
pub const PROV_DH_SCHANNEL: u32 = 18;
pub const PROV_SPYRUS_LYNKS: u32 = 20;
pub const PROV_RNG: u32 = 21;
pub const PROV_INTEL_SEC: u32 = 22;
pub const PROV_REPLACE_OWF: u32 = 23;
pub const PROV_RSA_AES: u32 = 24;
pub const MS_DEF_PROV_A: &'static [u8; 43usize] = b"Microsoft Base Cryptographic Provider v1.0\0";
pub const MS_DEF_PROV_W: &'static [u8; 43usize] = b"Microsoft Base Cryptographic Provider v1.0\0";
pub const MS_DEF_PROV: &'static [u8; 43usize] = b"Microsoft Base Cryptographic Provider v1.0\0";
pub const MS_ENHANCED_PROV_A: &'static [u8; 47usize] =
    b"Microsoft Enhanced Cryptographic Provider v1.0\0";
pub const MS_ENHANCED_PROV_W: &'static [u8; 47usize] =
    b"Microsoft Enhanced Cryptographic Provider v1.0\0";
pub const MS_ENHANCED_PROV: &'static [u8; 47usize] =
    b"Microsoft Enhanced Cryptographic Provider v1.0\0";
pub const MS_STRONG_PROV_A: &'static [u8; 40usize] = b"Microsoft Strong Cryptographic Provider\0";
pub const MS_STRONG_PROV_W: &'static [u8; 40usize] = b"Microsoft Strong Cryptographic Provider\0";
pub const MS_STRONG_PROV: &'static [u8; 40usize] = b"Microsoft Strong Cryptographic Provider\0";
pub const MS_DEF_RSA_SIG_PROV_A: &'static [u8; 47usize] =
    b"Microsoft RSA Signature Cryptographic Provider\0";
pub const MS_DEF_RSA_SIG_PROV_W: &'static [u8; 47usize] =
    b"Microsoft RSA Signature Cryptographic Provider\0";
pub const MS_DEF_RSA_SIG_PROV: &'static [u8; 47usize] =
    b"Microsoft RSA Signature Cryptographic Provider\0";
pub const MS_DEF_RSA_SCHANNEL_PROV_A: &'static [u8; 46usize] =
    b"Microsoft RSA SChannel Cryptographic Provider\0";
pub const MS_DEF_RSA_SCHANNEL_PROV_W: &'static [u8; 46usize] =
    b"Microsoft RSA SChannel Cryptographic Provider\0";
pub const MS_DEF_RSA_SCHANNEL_PROV: &'static [u8; 46usize] =
    b"Microsoft RSA SChannel Cryptographic Provider\0";
pub const MS_DEF_DSS_PROV_A: &'static [u8; 42usize] =
    b"Microsoft Base DSS Cryptographic Provider\0";
pub const MS_DEF_DSS_PROV_W: &'static [u8; 42usize] =
    b"Microsoft Base DSS Cryptographic Provider\0";
pub const MS_DEF_DSS_PROV: &'static [u8; 42usize] = b"Microsoft Base DSS Cryptographic Provider\0";
pub const MS_DEF_DSS_DH_PROV_A: &'static [u8; 61usize] =
    b"Microsoft Base DSS and Diffie-Hellman Cryptographic Provider\0";
pub const MS_DEF_DSS_DH_PROV_W: &'static [u8; 61usize] =
    b"Microsoft Base DSS and Diffie-Hellman Cryptographic Provider\0";
pub const MS_DEF_DSS_DH_PROV: &'static [u8; 61usize] =
    b"Microsoft Base DSS and Diffie-Hellman Cryptographic Provider\0";
pub const MS_ENH_DSS_DH_PROV_A: &'static [u8; 65usize] =
    b"Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider\0";
pub const MS_ENH_DSS_DH_PROV_W: &'static [u8; 65usize] =
    b"Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider\0";
pub const MS_ENH_DSS_DH_PROV: &'static [u8; 65usize] =
    b"Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider\0";
pub const MS_DEF_DH_SCHANNEL_PROV_A: &'static [u8; 45usize] =
    b"Microsoft DH SChannel Cryptographic Provider\0";
pub const MS_DEF_DH_SCHANNEL_PROV_W: &'static [u8; 45usize] =
    b"Microsoft DH SChannel Cryptographic Provider\0";
pub const MS_DEF_DH_SCHANNEL_PROV: &'static [u8; 45usize] =
    b"Microsoft DH SChannel Cryptographic Provider\0";
pub const MS_SCARD_PROV_A: &'static [u8; 42usize] = b"Microsoft Base Smart Card Crypto Provider\0";
pub const MS_SCARD_PROV_W: &'static [u8; 42usize] = b"Microsoft Base Smart Card Crypto Provider\0";
pub const MS_SCARD_PROV: &'static [u8; 42usize] = b"Microsoft Base Smart Card Crypto Provider\0";
pub const MS_ENH_RSA_AES_PROV_A: &'static [u8; 54usize] =
    b"Microsoft Enhanced RSA and AES Cryptographic Provider\0";
pub const MS_ENH_RSA_AES_PROV_W: &'static [u8; 54usize] =
    b"Microsoft Enhanced RSA and AES Cryptographic Provider\0";
pub const MS_ENH_RSA_AES_PROV_XP_A: &'static [u8; 66usize] =
    b"Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)\0";
pub const MS_ENH_RSA_AES_PROV_XP_W: &'static [u8; 66usize] =
    b"Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)\0";
pub const MS_ENH_RSA_AES_PROV_XP: &'static [u8; 66usize] =
    b"Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)\0";
pub const MS_ENH_RSA_AES_PROV: &'static [u8; 54usize] =
    b"Microsoft Enhanced RSA and AES Cryptographic Provider\0";
pub const MAXUIDLEN: u32 = 64;
pub const EXPO_OFFLOAD_REG_VALUE: &'static [u8; 12usize] = b"ExpoOffload\0";
pub const EXPO_OFFLOAD_FUNC_NAME: &'static [u8; 15usize] = b"OffloadModExpo\0";
pub const szKEY_CRYPTOAPI_PRIVATE_KEY_OPTIONS: &'static [u8; 41usize] =
    b"Software\\Policies\\Microsoft\\Cryptography\0";
pub const szKEY_CACHE_ENABLED: &'static [u8; 17usize] = b"CachePrivateKeys\0";
pub const szKEY_CACHE_SECONDS: &'static [u8; 26usize] = b"PrivateKeyLifetimeSeconds\0";
pub const szPRIV_KEY_CACHE_MAX_ITEMS: &'static [u8; 21usize] = b"PrivKeyCacheMaxItems\0";
pub const cPRIV_KEY_CACHE_MAX_ITEMS_DEFAULT: u32 = 20;
pub const szPRIV_KEY_CACHE_PURGE_INTERVAL_SECONDS: &'static [u8; 33usize] =
    b"PrivKeyCachePurgeIntervalSeconds\0";
pub const cPRIV_KEY_CACHE_PURGE_INTERVAL_SECONDS_DEFAULT: u32 = 86400;
pub const CUR_BLOB_VERSION: u32 = 2;
pub const SCHANNEL_MAC_KEY: u32 = 0;
pub const SCHANNEL_ENC_KEY: u32 = 1;
pub const INTERNATIONAL_USAGE: u32 = 1;
pub const BCRYPT_OBJECT_ALIGNMENT: u32 = 16;
pub const BCRYPT_KDF_HASH: &'static [u8; 5usize] = b"HASH\0";
pub const BCRYPT_KDF_HMAC: &'static [u8; 5usize] = b"HMAC\0";
pub const BCRYPT_KDF_TLS_PRF: &'static [u8; 8usize] = b"TLS_PRF\0";
pub const BCRYPT_KDF_SP80056A_CONCAT: &'static [u8; 17usize] = b"SP800_56A_CONCAT\0";
pub const BCRYPT_KDF_RAW_SECRET: &'static [u8; 9usize] = b"TRUNCATE\0";
pub const BCRYPT_KDF_HKDF: &'static [u8; 5usize] = b"HKDF\0";
pub const KDF_HASH_ALGORITHM: u32 = 0;
pub const KDF_SECRET_PREPEND: u32 = 1;
pub const KDF_SECRET_APPEND: u32 = 2;
pub const KDF_HMAC_KEY: u32 = 3;
pub const KDF_TLS_PRF_LABEL: u32 = 4;
pub const KDF_TLS_PRF_SEED: u32 = 5;
pub const KDF_SECRET_HANDLE: u32 = 6;
pub const KDF_TLS_PRF_PROTOCOL: u32 = 7;
pub const KDF_ALGORITHMID: u32 = 8;
pub const KDF_PARTYUINFO: u32 = 9;
pub const KDF_PARTYVINFO: u32 = 10;
pub const KDF_SUPPPUBINFO: u32 = 11;
pub const KDF_SUPPPRIVINFO: u32 = 12;
pub const KDF_LABEL: u32 = 13;
pub const KDF_CONTEXT: u32 = 14;
pub const KDF_SALT: u32 = 15;
pub const KDF_ITERATION_COUNT: u32 = 16;
pub const KDF_GENERIC_PARAMETER: u32 = 17;
pub const KDF_KEYBITLENGTH: u32 = 18;
pub const KDF_HKDF_SALT: u32 = 19;
pub const KDF_HKDF_INFO: u32 = 20;
pub const KDF_USE_SECRET_AS_HMAC_KEY_FLAG: u32 = 1;
pub const BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO_VERSION: u32 = 1;
pub const BCRYPT_AUTH_MODE_CHAIN_CALLS_FLAG: u32 = 1;
pub const BCRYPT_AUTH_MODE_IN_PROGRESS_FLAG: u32 = 2;
pub const BCRYPT_OPAQUE_KEY_BLOB: &'static [u8; 14usize] = b"OpaqueKeyBlob\0";
pub const BCRYPT_KEY_DATA_BLOB: &'static [u8; 12usize] = b"KeyDataBlob\0";
pub const BCRYPT_AES_WRAP_KEY_BLOB: &'static [u8; 19usize] = b"Rfc3565KeyWrapBlob\0";
pub const BCRYPT_OBJECT_LENGTH: &'static [u8; 13usize] = b"ObjectLength\0";
pub const BCRYPT_ALGORITHM_NAME: &'static [u8; 14usize] = b"AlgorithmName\0";
pub const BCRYPT_PROVIDER_HANDLE: &'static [u8; 15usize] = b"ProviderHandle\0";
pub const BCRYPT_CHAINING_MODE: &'static [u8; 13usize] = b"ChainingMode\0";
pub const BCRYPT_BLOCK_LENGTH: &'static [u8; 12usize] = b"BlockLength\0";
pub const BCRYPT_KEY_LENGTH: &'static [u8; 10usize] = b"KeyLength\0";
pub const BCRYPT_KEY_OBJECT_LENGTH: &'static [u8; 16usize] = b"KeyObjectLength\0";
pub const BCRYPT_KEY_STRENGTH: &'static [u8; 12usize] = b"KeyStrength\0";
pub const BCRYPT_KEY_LENGTHS: &'static [u8; 11usize] = b"KeyLengths\0";
pub const BCRYPT_BLOCK_SIZE_LIST: &'static [u8; 14usize] = b"BlockSizeList\0";
pub const BCRYPT_EFFECTIVE_KEY_LENGTH: &'static [u8; 19usize] = b"EffectiveKeyLength\0";
pub const BCRYPT_HASH_LENGTH: &'static [u8; 17usize] = b"HashDigestLength\0";
pub const BCRYPT_HASH_OID_LIST: &'static [u8; 12usize] = b"HashOIDList\0";
pub const BCRYPT_PADDING_SCHEMES: &'static [u8; 15usize] = b"PaddingSchemes\0";
pub const BCRYPT_SIGNATURE_LENGTH: &'static [u8; 16usize] = b"SignatureLength\0";
pub const BCRYPT_HASH_BLOCK_LENGTH: &'static [u8; 16usize] = b"HashBlockLength\0";
pub const BCRYPT_AUTH_TAG_LENGTH: &'static [u8; 14usize] = b"AuthTagLength\0";
pub const BCRYPT_PRIMITIVE_TYPE: &'static [u8; 14usize] = b"PrimitiveType\0";
pub const BCRYPT_IS_KEYED_HASH: &'static [u8; 12usize] = b"IsKeyedHash\0";
pub const BCRYPT_IS_REUSABLE_HASH: &'static [u8; 15usize] = b"IsReusableHash\0";
pub const BCRYPT_MESSAGE_BLOCK_LENGTH: &'static [u8; 19usize] = b"MessageBlockLength\0";
pub const BCRYPT_PUBLIC_KEY_LENGTH: &'static [u8; 16usize] = b"PublicKeyLength\0";
pub const BCRYPT_PCP_PLATFORM_TYPE_PROPERTY: &'static [u8; 18usize] = b"PCP_PLATFORM_TYPE\0";
pub const BCRYPT_PCP_PROVIDER_VERSION_PROPERTY: &'static [u8; 21usize] = b"PCP_PROVIDER_VERSION\0";
pub const BCRYPT_MULTI_OBJECT_LENGTH: &'static [u8; 18usize] = b"MultiObjectLength\0";
pub const BCRYPT_IS_IFX_TPM_WEAK_KEY: &'static [u8; 16usize] = b"IsIfxTpmWeakKey\0";
pub const BCRYPT_HKDF_HASH_ALGORITHM: &'static [u8; 18usize] = b"HkdfHashAlgorithm\0";
pub const BCRYPT_HKDF_SALT_AND_FINALIZE: &'static [u8; 20usize] = b"HkdfSaltAndFinalize\0";
pub const BCRYPT_HKDF_PRK_AND_FINALIZE: &'static [u8; 19usize] = b"HkdfPrkAndFinalize\0";
pub const BCRYPT_INITIALIZATION_VECTOR: &'static [u8; 3usize] = b"IV\0";
pub const BCRYPT_CHAIN_MODE_NA: &'static [u8; 16usize] = b"ChainingModeN/A\0";
pub const BCRYPT_CHAIN_MODE_CBC: &'static [u8; 16usize] = b"ChainingModeCBC\0";
pub const BCRYPT_CHAIN_MODE_ECB: &'static [u8; 16usize] = b"ChainingModeECB\0";
pub const BCRYPT_CHAIN_MODE_CFB: &'static [u8; 16usize] = b"ChainingModeCFB\0";
pub const BCRYPT_CHAIN_MODE_CCM: &'static [u8; 16usize] = b"ChainingModeCCM\0";
pub const BCRYPT_CHAIN_MODE_GCM: &'static [u8; 16usize] = b"ChainingModeGCM\0";
pub const BCRYPT_SUPPORTED_PAD_ROUTER: u32 = 1;
pub const BCRYPT_SUPPORTED_PAD_PKCS1_ENC: u32 = 2;
pub const BCRYPT_SUPPORTED_PAD_PKCS1_SIG: u32 = 4;
pub const BCRYPT_SUPPORTED_PAD_OAEP: u32 = 8;
pub const BCRYPT_SUPPORTED_PAD_PSS: u32 = 16;
pub const BCRYPT_PROV_DISPATCH: u32 = 1;
pub const BCRYPT_BLOCK_PADDING: u32 = 1;
pub const BCRYPT_PAD_NONE: u32 = 1;
pub const BCRYPT_PAD_PKCS1: u32 = 2;
pub const BCRYPT_PAD_OAEP: u32 = 4;
pub const BCRYPT_PAD_PSS: u32 = 8;
pub const BCRYPT_PAD_PKCS1_OPTIONAL_HASH_OID: u32 = 16;
pub const BCRYPTBUFFER_VERSION: u32 = 0;
pub const BCRYPT_PUBLIC_KEY_BLOB: &'static [u8; 11usize] = b"PUBLICBLOB\0";
pub const BCRYPT_PRIVATE_KEY_BLOB: &'static [u8; 12usize] = b"PRIVATEBLOB\0";
pub const BCRYPT_RSAPUBLIC_BLOB: &'static [u8; 14usize] = b"RSAPUBLICBLOB\0";
pub const BCRYPT_RSAPRIVATE_BLOB: &'static [u8; 15usize] = b"RSAPRIVATEBLOB\0";
pub const LEGACY_RSAPUBLIC_BLOB: &'static [u8; 15usize] = b"CAPIPUBLICBLOB\0";
pub const LEGACY_RSAPRIVATE_BLOB: &'static [u8; 16usize] = b"CAPIPRIVATEBLOB\0";
pub const BCRYPT_RSAPUBLIC_MAGIC: u32 = 826364754;
pub const BCRYPT_RSAPRIVATE_MAGIC: u32 = 843141970;
pub const BCRYPT_RSAFULLPRIVATE_BLOB: &'static [u8; 19usize] = b"RSAFULLPRIVATEBLOB\0";
pub const BCRYPT_RSAFULLPRIVATE_MAGIC: u32 = 859919186;
pub const BCRYPT_GLOBAL_PARAMETERS: &'static [u8; 21usize] = b"SecretAgreementParam\0";
pub const BCRYPT_PRIVATE_KEY: &'static [u8; 11usize] = b"PrivKeyVal\0";
pub const BCRYPT_ECCPUBLIC_BLOB: &'static [u8; 14usize] = b"ECCPUBLICBLOB\0";
pub const BCRYPT_ECCPRIVATE_BLOB: &'static [u8; 15usize] = b"ECCPRIVATEBLOB\0";
pub const BCRYPT_ECCFULLPUBLIC_BLOB: &'static [u8; 18usize] = b"ECCFULLPUBLICBLOB\0";
pub const BCRYPT_ECCFULLPRIVATE_BLOB: &'static [u8; 19usize] = b"ECCFULLPRIVATEBLOB\0";
pub const SSL_ECCPUBLIC_BLOB: &'static [u8; 17usize] = b"SSLECCPUBLICBLOB\0";
pub const BCRYPT_ECDH_PUBLIC_P256_MAGIC: u32 = 827016005;
pub const BCRYPT_ECDH_PRIVATE_P256_MAGIC: u32 = 843793221;
pub const BCRYPT_ECDH_PUBLIC_P384_MAGIC: u32 = 860570437;
pub const BCRYPT_ECDH_PRIVATE_P384_MAGIC: u32 = 877347653;
pub const BCRYPT_ECDH_PUBLIC_P521_MAGIC: u32 = 894124869;
pub const BCRYPT_ECDH_PRIVATE_P521_MAGIC: u32 = 910902085;
pub const BCRYPT_ECDH_PUBLIC_GENERIC_MAGIC: u32 = 1347109701;
pub const BCRYPT_ECDH_PRIVATE_GENERIC_MAGIC: u32 = 1447772997;
pub const BCRYPT_ECDSA_PUBLIC_P256_MAGIC: u32 = 827540293;
pub const BCRYPT_ECDSA_PRIVATE_P256_MAGIC: u32 = 844317509;
pub const BCRYPT_ECDSA_PUBLIC_P384_MAGIC: u32 = 861094725;
pub const BCRYPT_ECDSA_PRIVATE_P384_MAGIC: u32 = 877871941;
pub const BCRYPT_ECDSA_PUBLIC_P521_MAGIC: u32 = 894649157;
pub const BCRYPT_ECDSA_PRIVATE_P521_MAGIC: u32 = 911426373;
pub const BCRYPT_ECDSA_PUBLIC_GENERIC_MAGIC: u32 = 1346650949;
pub const BCRYPT_ECDSA_PRIVATE_GENERIC_MAGIC: u32 = 1447314245;
pub const BCRYPT_ECC_FULLKEY_BLOB_V1: u32 = 1;
pub const BCRYPT_DH_PUBLIC_BLOB: &'static [u8; 13usize] = b"DHPUBLICBLOB\0";
pub const BCRYPT_DH_PRIVATE_BLOB: &'static [u8; 14usize] = b"DHPRIVATEBLOB\0";
pub const LEGACY_DH_PUBLIC_BLOB: &'static [u8; 17usize] = b"CAPIDHPUBLICBLOB\0";
pub const LEGACY_DH_PRIVATE_BLOB: &'static [u8; 18usize] = b"CAPIDHPRIVATEBLOB\0";
pub const BCRYPT_DH_PUBLIC_MAGIC: u32 = 1112557636;
pub const BCRYPT_DH_PRIVATE_MAGIC: u32 = 1448101956;
pub const BCRYPT_DH_PARAMETERS: &'static [u8; 13usize] = b"DHParameters\0";
pub const BCRYPT_DH_PARAMETERS_MAGIC: u32 = 1297107012;
pub const BCRYPT_DSA_PUBLIC_BLOB: &'static [u8; 14usize] = b"DSAPUBLICBLOB\0";
pub const BCRYPT_DSA_PRIVATE_BLOB: &'static [u8; 15usize] = b"DSAPRIVATEBLOB\0";
pub const LEGACY_DSA_PUBLIC_BLOB: &'static [u8; 18usize] = b"CAPIDSAPUBLICBLOB\0";
pub const LEGACY_DSA_PRIVATE_BLOB: &'static [u8; 19usize] = b"CAPIDSAPRIVATEBLOB\0";
pub const LEGACY_DSA_V2_PUBLIC_BLOB: &'static [u8; 20usize] = b"V2CAPIDSAPUBLICBLOB\0";
pub const LEGACY_DSA_V2_PRIVATE_BLOB: &'static [u8; 21usize] = b"V2CAPIDSAPRIVATEBLOB\0";
pub const BCRYPT_DSA_PUBLIC_MAGIC: u32 = 1112560452;
pub const BCRYPT_DSA_PRIVATE_MAGIC: u32 = 1448104772;
pub const BCRYPT_DSA_PUBLIC_MAGIC_V2: u32 = 843206724;
pub const BCRYPT_DSA_PRIVATE_MAGIC_V2: u32 = 844517444;
pub const BCRYPT_KEY_DATA_BLOB_MAGIC: u32 = 1296188491;
pub const BCRYPT_KEY_DATA_BLOB_VERSION1: u32 = 1;
pub const BCRYPT_DSA_PARAMETERS: &'static [u8; 14usize] = b"DSAParameters\0";
pub const BCRYPT_DSA_PARAMETERS_MAGIC: u32 = 1297109828;
pub const BCRYPT_DSA_PARAMETERS_MAGIC_V2: u32 = 843927620;
pub const BCRYPT_ECC_PARAMETERS: &'static [u8; 14usize] = b"ECCParameters\0";
pub const BCRYPT_ECC_CURVE_NAME: &'static [u8; 13usize] = b"ECCCurveName\0";
pub const BCRYPT_ECC_CURVE_NAME_LIST: &'static [u8; 17usize] = b"ECCCurveNameList\0";
pub const BCRYPT_ECC_PARAMETERS_MAGIC: u32 = 1346585413;
pub const BCRYPT_ECC_CURVE_BRAINPOOLP160R1: &'static [u8; 16usize] = b"brainpoolP160r1\0";
pub const BCRYPT_ECC_CURVE_BRAINPOOLP160T1: &'static [u8; 16usize] = b"brainpoolP160t1\0";
pub const BCRYPT_ECC_CURVE_BRAINPOOLP192R1: &'static [u8; 16usize] = b"brainpoolP192r1\0";
pub const BCRYPT_ECC_CURVE_BRAINPOOLP192T1: &'static [u8; 16usize] = b"brainpoolP192t1\0";
pub const BCRYPT_ECC_CURVE_BRAINPOOLP224R1: &'static [u8; 16usize] = b"brainpoolP224r1\0";
pub const BCRYPT_ECC_CURVE_BRAINPOOLP224T1: &'static [u8; 16usize] = b"brainpoolP224t1\0";
pub const BCRYPT_ECC_CURVE_BRAINPOOLP256R1: &'static [u8; 16usize] = b"brainpoolP256r1\0";
pub const BCRYPT_ECC_CURVE_BRAINPOOLP256T1: &'static [u8; 16usize] = b"brainpoolP256t1\0";
pub const BCRYPT_ECC_CURVE_BRAINPOOLP320R1: &'static [u8; 16usize] = b"brainpoolP320r1\0";
pub const BCRYPT_ECC_CURVE_BRAINPOOLP320T1: &'static [u8; 16usize] = b"brainpoolP320t1\0";
pub const BCRYPT_ECC_CURVE_BRAINPOOLP384R1: &'static [u8; 16usize] = b"brainpoolP384r1\0";
pub const BCRYPT_ECC_CURVE_BRAINPOOLP384T1: &'static [u8; 16usize] = b"brainpoolP384t1\0";
pub const BCRYPT_ECC_CURVE_BRAINPOOLP512R1: &'static [u8; 16usize] = b"brainpoolP512r1\0";
pub const BCRYPT_ECC_CURVE_BRAINPOOLP512T1: &'static [u8; 16usize] = b"brainpoolP512t1\0";
pub const BCRYPT_ECC_CURVE_25519: &'static [u8; 11usize] = b"curve25519\0";
pub const BCRYPT_ECC_CURVE_EC192WAPI: &'static [u8; 10usize] = b"ec192wapi\0";
pub const BCRYPT_ECC_CURVE_NISTP192: &'static [u8; 9usize] = b"nistP192\0";
pub const BCRYPT_ECC_CURVE_NISTP224: &'static [u8; 9usize] = b"nistP224\0";
pub const BCRYPT_ECC_CURVE_NISTP256: &'static [u8; 9usize] = b"nistP256\0";
pub const BCRYPT_ECC_CURVE_NISTP384: &'static [u8; 9usize] = b"nistP384\0";
pub const BCRYPT_ECC_CURVE_NISTP521: &'static [u8; 9usize] = b"nistP521\0";
pub const BCRYPT_ECC_CURVE_NUMSP256T1: &'static [u8; 11usize] = b"numsP256t1\0";
pub const BCRYPT_ECC_CURVE_NUMSP384T1: &'static [u8; 11usize] = b"numsP384t1\0";
pub const BCRYPT_ECC_CURVE_NUMSP512T1: &'static [u8; 11usize] = b"numsP512t1\0";
pub const BCRYPT_ECC_CURVE_SECP160K1: &'static [u8; 10usize] = b"secP160k1\0";
pub const BCRYPT_ECC_CURVE_SECP160R1: &'static [u8; 10usize] = b"secP160r1\0";
pub const BCRYPT_ECC_CURVE_SECP160R2: &'static [u8; 10usize] = b"secP160r2\0";
pub const BCRYPT_ECC_CURVE_SECP192K1: &'static [u8; 10usize] = b"secP192k1\0";
pub const BCRYPT_ECC_CURVE_SECP192R1: &'static [u8; 10usize] = b"secP192r1\0";
pub const BCRYPT_ECC_CURVE_SECP224K1: &'static [u8; 10usize] = b"secP224k1\0";
pub const BCRYPT_ECC_CURVE_SECP224R1: &'static [u8; 10usize] = b"secP224r1\0";
pub const BCRYPT_ECC_CURVE_SECP256K1: &'static [u8; 10usize] = b"secP256k1\0";
pub const BCRYPT_ECC_CURVE_SECP256R1: &'static [u8; 10usize] = b"secP256r1\0";
pub const BCRYPT_ECC_CURVE_SECP384R1: &'static [u8; 10usize] = b"secP384r1\0";
pub const BCRYPT_ECC_CURVE_SECP521R1: &'static [u8; 10usize] = b"secP521r1\0";
pub const BCRYPT_ECC_CURVE_WTLS7: &'static [u8; 6usize] = b"wtls7\0";
pub const BCRYPT_ECC_CURVE_WTLS9: &'static [u8; 6usize] = b"wtls9\0";
pub const BCRYPT_ECC_CURVE_WTLS12: &'static [u8; 7usize] = b"wtls12\0";
pub const BCRYPT_ECC_CURVE_X962P192V1: &'static [u8; 11usize] = b"x962P192v1\0";
pub const BCRYPT_ECC_CURVE_X962P192V2: &'static [u8; 11usize] = b"x962P192v2\0";
pub const BCRYPT_ECC_CURVE_X962P192V3: &'static [u8; 11usize] = b"x962P192v3\0";
pub const BCRYPT_ECC_CURVE_X962P239V1: &'static [u8; 11usize] = b"x962P239v1\0";
pub const BCRYPT_ECC_CURVE_X962P239V2: &'static [u8; 11usize] = b"x962P239v2\0";
pub const BCRYPT_ECC_CURVE_X962P239V3: &'static [u8; 11usize] = b"x962P239v3\0";
pub const BCRYPT_ECC_CURVE_X962P256V1: &'static [u8; 11usize] = b"x962P256v1\0";
pub const MS_PRIMITIVE_PROVIDER: &'static [u8; 29usize] = b"Microsoft Primitive Provider\0";
pub const MS_PLATFORM_CRYPTO_PROVIDER: &'static [u8; 35usize] =
    b"Microsoft Platform Crypto Provider\0";
pub const BCRYPT_RSA_ALGORITHM: &'static [u8; 4usize] = b"RSA\0";
pub const BCRYPT_RSA_SIGN_ALGORITHM: &'static [u8; 9usize] = b"RSA_SIGN\0";
pub const BCRYPT_DH_ALGORITHM: &'static [u8; 3usize] = b"DH\0";
pub const BCRYPT_DSA_ALGORITHM: &'static [u8; 4usize] = b"DSA\0";
pub const BCRYPT_RC2_ALGORITHM: &'static [u8; 4usize] = b"RC2\0";
pub const BCRYPT_RC4_ALGORITHM: &'static [u8; 4usize] = b"RC4\0";
pub const BCRYPT_AES_ALGORITHM: &'static [u8; 4usize] = b"AES\0";
pub const BCRYPT_DES_ALGORITHM: &'static [u8; 4usize] = b"DES\0";
pub const BCRYPT_DESX_ALGORITHM: &'static [u8; 5usize] = b"DESX\0";
pub const BCRYPT_3DES_ALGORITHM: &'static [u8; 5usize] = b"3DES\0";
pub const BCRYPT_3DES_112_ALGORITHM: &'static [u8; 9usize] = b"3DES_112\0";
pub const BCRYPT_MD2_ALGORITHM: &'static [u8; 4usize] = b"MD2\0";
pub const BCRYPT_MD4_ALGORITHM: &'static [u8; 4usize] = b"MD4\0";
pub const BCRYPT_MD5_ALGORITHM: &'static [u8; 4usize] = b"MD5\0";
pub const BCRYPT_SHA1_ALGORITHM: &'static [u8; 5usize] = b"SHA1\0";
pub const BCRYPT_SHA256_ALGORITHM: &'static [u8; 7usize] = b"SHA256\0";
pub const BCRYPT_SHA384_ALGORITHM: &'static [u8; 7usize] = b"SHA384\0";
pub const BCRYPT_SHA512_ALGORITHM: &'static [u8; 7usize] = b"SHA512\0";
pub const BCRYPT_AES_GMAC_ALGORITHM: &'static [u8; 9usize] = b"AES-GMAC\0";
pub const BCRYPT_AES_CMAC_ALGORITHM: &'static [u8; 9usize] = b"AES-CMAC\0";
pub const BCRYPT_ECDSA_P256_ALGORITHM: &'static [u8; 11usize] = b"ECDSA_P256\0";
pub const BCRYPT_ECDSA_P384_ALGORITHM: &'static [u8; 11usize] = b"ECDSA_P384\0";
pub const BCRYPT_ECDSA_P521_ALGORITHM: &'static [u8; 11usize] = b"ECDSA_P521\0";
pub const BCRYPT_ECDH_P256_ALGORITHM: &'static [u8; 10usize] = b"ECDH_P256\0";
pub const BCRYPT_ECDH_P384_ALGORITHM: &'static [u8; 10usize] = b"ECDH_P384\0";
pub const BCRYPT_ECDH_P521_ALGORITHM: &'static [u8; 10usize] = b"ECDH_P521\0";
pub const BCRYPT_RNG_ALGORITHM: &'static [u8; 4usize] = b"RNG\0";
pub const BCRYPT_RNG_FIPS186_DSA_ALGORITHM: &'static [u8; 14usize] = b"FIPS186DSARNG\0";
pub const BCRYPT_RNG_DUAL_EC_ALGORITHM: &'static [u8; 10usize] = b"DUALECRNG\0";
pub const BCRYPT_SP800108_CTR_HMAC_ALGORITHM: &'static [u8; 19usize] = b"SP800_108_CTR_HMAC\0";
pub const BCRYPT_SP80056A_CONCAT_ALGORITHM: &'static [u8; 17usize] = b"SP800_56A_CONCAT\0";
pub const BCRYPT_PBKDF2_ALGORITHM: &'static [u8; 7usize] = b"PBKDF2\0";
pub const BCRYPT_CAPI_KDF_ALGORITHM: &'static [u8; 9usize] = b"CAPI_KDF\0";
pub const BCRYPT_TLS1_1_KDF_ALGORITHM: &'static [u8; 11usize] = b"TLS1_1_KDF\0";
pub const BCRYPT_TLS1_2_KDF_ALGORITHM: &'static [u8; 11usize] = b"TLS1_2_KDF\0";
pub const BCRYPT_ECDSA_ALGORITHM: &'static [u8; 6usize] = b"ECDSA\0";
pub const BCRYPT_ECDH_ALGORITHM: &'static [u8; 5usize] = b"ECDH\0";
pub const BCRYPT_XTS_AES_ALGORITHM: &'static [u8; 8usize] = b"XTS-AES\0";
pub const BCRYPT_HKDF_ALGORITHM: &'static [u8; 5usize] = b"HKDF\0";
pub const BCRYPT_CIPHER_INTERFACE: u32 = 1;
pub const BCRYPT_HASH_INTERFACE: u32 = 2;
pub const BCRYPT_ASYMMETRIC_ENCRYPTION_INTERFACE: u32 = 3;
pub const BCRYPT_SECRET_AGREEMENT_INTERFACE: u32 = 4;
pub const BCRYPT_SIGNATURE_INTERFACE: u32 = 5;
pub const BCRYPT_RNG_INTERFACE: u32 = 6;
pub const BCRYPT_KEY_DERIVATION_INTERFACE: u32 = 7;
pub const BCRYPT_ALG_HANDLE_HMAC_FLAG: u32 = 8;
pub const BCRYPT_HASH_REUSABLE_FLAG: u32 = 32;
pub const BCRYPT_CAPI_AES_FLAG: u32 = 16;
pub const BCRYPT_MULTI_FLAG: u32 = 64;
pub const BCRYPT_TLS_CBC_HMAC_VERIFY_FLAG: u32 = 4;
pub const BCRYPT_BUFFERS_LOCKED_FLAG: u32 = 64;
pub const BCRYPT_EXTENDED_KEYSIZE: u32 = 128;
pub const BCRYPT_ENABLE_INCOMPATIBLE_FIPS_CHECKS: u32 = 256;
pub const BCRYPT_CIPHER_OPERATION: u32 = 1;
pub const BCRYPT_HASH_OPERATION: u32 = 2;
pub const BCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION: u32 = 4;
pub const BCRYPT_SECRET_AGREEMENT_OPERATION: u32 = 8;
pub const BCRYPT_SIGNATURE_OPERATION: u32 = 16;
pub const BCRYPT_RNG_OPERATION: u32 = 32;
pub const BCRYPT_KEY_DERIVATION_OPERATION: u32 = 64;
pub const BCRYPT_PUBLIC_KEY_FLAG: u32 = 1;
pub const BCRYPT_PRIVATE_KEY_FLAG: u32 = 2;
pub const BCRYPT_NO_KEY_VALIDATION: u32 = 8;
pub const BCRYPT_RNG_USE_ENTROPY_IN_BUFFER: u32 = 1;
pub const BCRYPT_USE_SYSTEM_PREFERRED_RNG: u32 = 2;
pub const BCRYPT_HASH_INTERFACE_MAJORVERSION_2: u32 = 2;
pub const CRYPT_MIN_DEPENDENCIES: u32 = 1;
pub const CRYPT_PROCESS_ISOLATE: u32 = 65536;
pub const CRYPT_UM: u32 = 1;
pub const CRYPT_KM: u32 = 2;
pub const CRYPT_MM: u32 = 3;
pub const CRYPT_ANY: u32 = 4;
pub const CRYPT_OVERWRITE: u32 = 1;
pub const CRYPT_LOCAL: u32 = 1;
pub const CRYPT_DOMAIN: u32 = 2;
pub const CRYPT_EXCLUSIVE: u32 = 1;
pub const CRYPT_OVERRIDE: u32 = 65536;
pub const CRYPT_ALL_FUNCTIONS: u32 = 1;
pub const CRYPT_ALL_PROVIDERS: u32 = 2;
pub const CRYPT_PRIORITY_TOP: u32 = 0;
pub const CRYPT_PRIORITY_BOTTOM: u32 = 4294967295;
pub const CRYPT_DEFAULT_CONTEXT: &'static [u8; 8usize] = b"Default\0";
pub const NCRYPT_MAX_KEY_NAME_LENGTH: u32 = 512;
pub const NCRYPT_MAX_ALG_ID_LENGTH: u32 = 512;
pub const MS_KEY_STORAGE_PROVIDER: &'static [u8; 40usize] =
    b"Microsoft Software Key Storage Provider\0";
pub const MS_SMART_CARD_KEY_STORAGE_PROVIDER: &'static [u8; 42usize] =
    b"Microsoft Smart Card Key Storage Provider\0";
pub const MS_PLATFORM_KEY_STORAGE_PROVIDER: &'static [u8; 35usize] =
    b"Microsoft Platform Crypto Provider\0";
pub const MS_NGC_KEY_STORAGE_PROVIDER: &'static [u8; 40usize] =
    b"Microsoft Passport Key Storage Provider\0";
pub const TPM_RSA_SRK_SEAL_KEY: &'static [u8; 68usize] =
    b"MICROSOFT_PCP_KSP_RSA_SEAL_KEY_3BD1C4BF-004E-4E2F-8A4D-0BF633DCB074\0";
pub const NCRYPT_RSA_ALGORITHM: &'static [u8; 4usize] = b"RSA\0";
pub const NCRYPT_RSA_SIGN_ALGORITHM: &'static [u8; 9usize] = b"RSA_SIGN\0";
pub const NCRYPT_DH_ALGORITHM: &'static [u8; 3usize] = b"DH\0";
pub const NCRYPT_DSA_ALGORITHM: &'static [u8; 4usize] = b"DSA\0";
pub const NCRYPT_MD2_ALGORITHM: &'static [u8; 4usize] = b"MD2\0";
pub const NCRYPT_MD4_ALGORITHM: &'static [u8; 4usize] = b"MD4\0";
pub const NCRYPT_MD5_ALGORITHM: &'static [u8; 4usize] = b"MD5\0";
pub const NCRYPT_SHA1_ALGORITHM: &'static [u8; 5usize] = b"SHA1\0";
pub const NCRYPT_SHA256_ALGORITHM: &'static [u8; 7usize] = b"SHA256\0";
pub const NCRYPT_SHA384_ALGORITHM: &'static [u8; 7usize] = b"SHA384\0";
pub const NCRYPT_SHA512_ALGORITHM: &'static [u8; 7usize] = b"SHA512\0";
pub const NCRYPT_ECDSA_P256_ALGORITHM: &'static [u8; 11usize] = b"ECDSA_P256\0";
pub const NCRYPT_ECDSA_P384_ALGORITHM: &'static [u8; 11usize] = b"ECDSA_P384\0";
pub const NCRYPT_ECDSA_P521_ALGORITHM: &'static [u8; 11usize] = b"ECDSA_P521\0";
pub const NCRYPT_ECDH_P256_ALGORITHM: &'static [u8; 10usize] = b"ECDH_P256\0";
pub const NCRYPT_ECDH_P384_ALGORITHM: &'static [u8; 10usize] = b"ECDH_P384\0";
pub const NCRYPT_ECDH_P521_ALGORITHM: &'static [u8; 10usize] = b"ECDH_P521\0";
pub const NCRYPT_AES_ALGORITHM: &'static [u8; 4usize] = b"AES\0";
pub const NCRYPT_RC2_ALGORITHM: &'static [u8; 4usize] = b"RC2\0";
pub const NCRYPT_3DES_ALGORITHM: &'static [u8; 5usize] = b"3DES\0";
pub const NCRYPT_DES_ALGORITHM: &'static [u8; 4usize] = b"DES\0";
pub const NCRYPT_DESX_ALGORITHM: &'static [u8; 5usize] = b"DESX\0";
pub const NCRYPT_3DES_112_ALGORITHM: &'static [u8; 9usize] = b"3DES_112\0";
pub const NCRYPT_SP800108_CTR_HMAC_ALGORITHM: &'static [u8; 19usize] = b"SP800_108_CTR_HMAC\0";
pub const NCRYPT_SP80056A_CONCAT_ALGORITHM: &'static [u8; 17usize] = b"SP800_56A_CONCAT\0";
pub const NCRYPT_PBKDF2_ALGORITHM: &'static [u8; 7usize] = b"PBKDF2\0";
pub const NCRYPT_CAPI_KDF_ALGORITHM: &'static [u8; 9usize] = b"CAPI_KDF\0";
pub const NCRYPT_ECDSA_ALGORITHM: &'static [u8; 6usize] = b"ECDSA\0";
pub const NCRYPT_ECDH_ALGORITHM: &'static [u8; 5usize] = b"ECDH\0";
pub const NCRYPT_KEY_STORAGE_ALGORITHM: &'static [u8; 12usize] = b"KEY_STORAGE\0";
pub const NCRYPT_HMAC_SHA256_ALGORITHM: &'static [u8; 12usize] = b"HMAC-SHA256\0";
pub const NCRYPT_CIPHER_INTERFACE: u32 = 1;
pub const NCRYPT_HASH_INTERFACE: u32 = 2;
pub const NCRYPT_ASYMMETRIC_ENCRYPTION_INTERFACE: u32 = 3;
pub const NCRYPT_SECRET_AGREEMENT_INTERFACE: u32 = 4;
pub const NCRYPT_SIGNATURE_INTERFACE: u32 = 5;
pub const NCRYPT_KEY_DERIVATION_INTERFACE: u32 = 7;
pub const NCRYPT_KEY_STORAGE_INTERFACE: u32 = 65537;
pub const NCRYPT_SCHANNEL_INTERFACE: u32 = 65538;
pub const NCRYPT_SCHANNEL_SIGNATURE_INTERFACE: u32 = 65539;
pub const NCRYPT_KEY_PROTECTION_INTERFACE: u32 = 65540;
pub const NCRYPT_RSA_ALGORITHM_GROUP: &'static [u8; 4usize] = b"RSA\0";
pub const NCRYPT_DH_ALGORITHM_GROUP: &'static [u8; 3usize] = b"DH\0";
pub const NCRYPT_DSA_ALGORITHM_GROUP: &'static [u8; 4usize] = b"DSA\0";
pub const NCRYPT_ECDSA_ALGORITHM_GROUP: &'static [u8; 6usize] = b"ECDSA\0";
pub const NCRYPT_ECDH_ALGORITHM_GROUP: &'static [u8; 5usize] = b"ECDH\0";
pub const NCRYPT_AES_ALGORITHM_GROUP: &'static [u8; 4usize] = b"AES\0";
pub const NCRYPT_RC2_ALGORITHM_GROUP: &'static [u8; 4usize] = b"RC2\0";
pub const NCRYPT_DES_ALGORITHM_GROUP: &'static [u8; 4usize] = b"DES\0";
pub const NCRYPT_KEY_DERIVATION_GROUP: &'static [u8; 15usize] = b"KEY_DERIVATION\0";
pub const NCRYPTBUFFER_VERSION: u32 = 0;
pub const NCRYPTBUFFER_EMPTY: u32 = 0;
pub const NCRYPTBUFFER_DATA: u32 = 1;
pub const NCRYPTBUFFER_PROTECTION_DESCRIPTOR_STRING: u32 = 3;
pub const NCRYPTBUFFER_PROTECTION_FLAGS: u32 = 4;
pub const NCRYPTBUFFER_SSL_CLIENT_RANDOM: u32 = 20;
pub const NCRYPTBUFFER_SSL_SERVER_RANDOM: u32 = 21;
pub const NCRYPTBUFFER_SSL_HIGHEST_VERSION: u32 = 22;
pub const NCRYPTBUFFER_SSL_CLEAR_KEY: u32 = 23;
pub const NCRYPTBUFFER_SSL_KEY_ARG_DATA: u32 = 24;
pub const NCRYPTBUFFER_SSL_SESSION_HASH: u32 = 25;
pub const NCRYPTBUFFER_PKCS_OID: u32 = 40;
pub const NCRYPTBUFFER_PKCS_ALG_OID: u32 = 41;
pub const NCRYPTBUFFER_PKCS_ALG_PARAM: u32 = 42;
pub const NCRYPTBUFFER_PKCS_ALG_ID: u32 = 43;
pub const NCRYPTBUFFER_PKCS_ATTRS: u32 = 44;
pub const NCRYPTBUFFER_PKCS_KEY_NAME: u32 = 45;
pub const NCRYPTBUFFER_PKCS_SECRET: u32 = 46;
pub const NCRYPTBUFFER_CERT_BLOB: u32 = 47;
pub const NCRYPTBUFFER_CLAIM_IDBINDING_NONCE: u32 = 48;
pub const NCRYPTBUFFER_CLAIM_KEYATTESTATION_NONCE: u32 = 49;
pub const NCRYPTBUFFER_KEY_PROPERTY_FLAGS: u32 = 50;
pub const NCRYPTBUFFER_ATTESTATIONSTATEMENT_BLOB: u32 = 51;
pub const NCRYPTBUFFER_ATTESTATION_CLAIM_TYPE: u32 = 52;
pub const NCRYPTBUFFER_ATTESTATION_CLAIM_CHALLENGE_REQUIRED: u32 = 53;
pub const NCRYPTBUFFER_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS: u32 = 54;
pub const NCRYPTBUFFER_ECC_CURVE_NAME: u32 = 60;
pub const NCRYPTBUFFER_ECC_PARAMETERS: u32 = 61;
pub const NCRYPTBUFFER_TPM_SEAL_PASSWORD: u32 = 70;
pub const NCRYPTBUFFER_TPM_SEAL_POLICYINFO: u32 = 71;
pub const NCRYPTBUFFER_TPM_SEAL_TICKET: u32 = 72;
pub const NCRYPTBUFFER_TPM_SEAL_NO_DA_PROTECTION: u32 = 73;
pub const NCRYPTBUFFER_TPM_PLATFORM_CLAIM_PCR_MASK: u32 = 80;
pub const NCRYPTBUFFER_TPM_PLATFORM_CLAIM_NONCE: u32 = 81;
pub const NCRYPTBUFFER_TPM_PLATFORM_CLAIM_STATIC_CREATE: u32 = 82;
pub const NCRYPT_CIPHER_NO_PADDING_FLAG: u32 = 0;
pub const NCRYPT_CIPHER_BLOCK_PADDING_FLAG: u32 = 1;
pub const NCRYPT_CIPHER_OTHER_PADDING_FLAG: u32 = 2;
pub const NCRYPT_PLATFORM_ATTEST_MAGIC: u32 = 1146110288;
pub const NCRYPT_KEY_ATTEST_MAGIC: u32 = 1146110283;
pub const NCRYPT_CLAIM_AUTHORITY_ONLY: u32 = 1;
pub const NCRYPT_CLAIM_SUBJECT_ONLY: u32 = 2;
pub const NCRYPT_CLAIM_WEB_AUTH_SUBJECT_ONLY: u32 = 258;
pub const NCRYPT_CLAIM_AUTHORITY_AND_SUBJECT: u32 = 3;
pub const NCRYPT_CLAIM_VSM_KEY_ATTESTATION_STATEMENT: u32 = 4;
pub const NCRYPT_CLAIM_UNKNOWN: u32 = 4096;
pub const NCRYPT_CLAIM_PLATFORM: u32 = 65536;
pub const NCRYPT_ISOLATED_KEY_FLAG_CREATED_IN_ISOLATION: u32 = 1;
pub const NCRYPT_ISOLATED_KEY_FLAG_IMPORT_ONLY: u32 = 2;
pub const NCRYPT_ISOLATED_KEY_ATTESTED_ATTRIBUTES_V0: u32 = 0;
pub const NCRYPT_ISOLATED_KEY_ATTESTED_ATTRIBUTES_CURRENT_VERSION: u32 = 0;
pub const NCRYPT_VSM_KEY_ATTESTATION_STATEMENT_V0: u32 = 0;
pub const NCRYPT_VSM_KEY_ATTESTATION_STATEMENT_CURRENT_VERSION: u32 = 0;
pub const NCRYPT_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS_V0: u32 = 0;
pub const NCRYPT_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS_CURRENT_VERSION: u32 = 0;
pub const NCRYPT_EXPORTED_ISOLATED_KEY_HEADER_V0: u32 = 0;
pub const NCRYPT_EXPORTED_ISOLATED_KEY_HEADER_CURRENT_VERSION: u32 = 0;
pub const NCRYPT_TPM_PLATFORM_ATTESTATION_STATEMENT_V0: u32 = 0;
pub const NCRYPT_TPM_PLATFORM_ATTESTATION_STATEMENT_CURRENT_VERSION: u32 = 0;
pub const NCRYPT_NO_PADDING_FLAG: u32 = 1;
pub const NCRYPT_PAD_PKCS1_FLAG: u32 = 2;
pub const NCRYPT_PAD_OAEP_FLAG: u32 = 4;
pub const NCRYPT_PAD_PSS_FLAG: u32 = 8;
pub const NCRYPT_PAD_CIPHER_FLAG: u32 = 16;
pub const NCRYPT_ATTESTATION_FLAG: u32 = 32;
pub const NCRYPT_SEALING_FLAG: u32 = 256;
pub const NCRYPT_REGISTER_NOTIFY_FLAG: u32 = 1;
pub const NCRYPT_UNREGISTER_NOTIFY_FLAG: u32 = 2;
pub const NCRYPT_NO_KEY_VALIDATION: u32 = 8;
pub const NCRYPT_MACHINE_KEY_FLAG: u32 = 32;
pub const NCRYPT_SILENT_FLAG: u32 = 64;
pub const NCRYPT_OVERWRITE_KEY_FLAG: u32 = 128;
pub const NCRYPT_WRITE_KEY_TO_LEGACY_STORE_FLAG: u32 = 512;
pub const NCRYPT_DO_NOT_FINALIZE_FLAG: u32 = 1024;
pub const NCRYPT_EXPORT_LEGACY_FLAG: u32 = 2048;
pub const NCRYPT_IGNORE_DEVICE_STATE_FLAG: u32 = 4096;
pub const NCRYPT_TREAT_NIST_AS_GENERIC_ECC_FLAG: u32 = 8192;
pub const NCRYPT_NO_CACHED_PASSWORD: u32 = 16384;
pub const NCRYPT_PROTECT_TO_LOCAL_SYSTEM: u32 = 32768;
pub const NCRYPT_PERSIST_ONLY_FLAG: u32 = 1073741824;
pub const NCRYPT_PERSIST_FLAG: u32 = 2147483648;
pub const NCRYPT_PREFER_VIRTUAL_ISOLATION_FLAG: u32 = 65536;
pub const NCRYPT_USE_VIRTUAL_ISOLATION_FLAG: u32 = 131072;
pub const NCRYPT_USE_PER_BOOT_KEY_FLAG: u32 = 262144;
pub const NCRYPT_CIPHER_OPERATION: u32 = 1;
pub const NCRYPT_HASH_OPERATION: u32 = 2;
pub const NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION: u32 = 4;
pub const NCRYPT_SECRET_AGREEMENT_OPERATION: u32 = 8;
pub const NCRYPT_SIGNATURE_OPERATION: u32 = 16;
pub const NCRYPT_RNG_OPERATION: u32 = 32;
pub const NCRYPT_KEY_DERIVATION_OPERATION: u32 = 64;
pub const NCRYPT_AUTHORITY_KEY_FLAG: u32 = 256;
pub const NCRYPT_NAME_PROPERTY: &'static [u8; 5usize] = b"Name\0";
pub const NCRYPT_UNIQUE_NAME_PROPERTY: &'static [u8; 12usize] = b"Unique Name\0";
pub const NCRYPT_ALGORITHM_PROPERTY: &'static [u8; 15usize] = b"Algorithm Name\0";
pub const NCRYPT_LENGTH_PROPERTY: &'static [u8; 7usize] = b"Length\0";
pub const NCRYPT_LENGTHS_PROPERTY: &'static [u8; 8usize] = b"Lengths\0";
pub const NCRYPT_BLOCK_LENGTH_PROPERTY: &'static [u8; 13usize] = b"Block Length\0";
pub const NCRYPT_PUBLIC_LENGTH_PROPERTY: &'static [u8; 16usize] = b"PublicKeyLength\0";
pub const NCRYPT_SIGNATURE_LENGTH_PROPERTY: &'static [u8; 16usize] = b"SignatureLength\0";
pub const NCRYPT_CHAINING_MODE_PROPERTY: &'static [u8; 14usize] = b"Chaining Mode\0";
pub const NCRYPT_AUTH_TAG_LENGTH: &'static [u8; 14usize] = b"AuthTagLength\0";
pub const NCRYPT_UI_POLICY_PROPERTY: &'static [u8; 10usize] = b"UI Policy\0";
pub const NCRYPT_EXPORT_POLICY_PROPERTY: &'static [u8; 14usize] = b"Export Policy\0";
pub const NCRYPT_WINDOW_HANDLE_PROPERTY: &'static [u8; 12usize] = b"HWND Handle\0";
pub const NCRYPT_USE_CONTEXT_PROPERTY: &'static [u8; 12usize] = b"Use Context\0";
pub const NCRYPT_IMPL_TYPE_PROPERTY: &'static [u8; 10usize] = b"Impl Type\0";
pub const NCRYPT_KEY_USAGE_PROPERTY: &'static [u8; 10usize] = b"Key Usage\0";
pub const NCRYPT_KEY_TYPE_PROPERTY: &'static [u8; 9usize] = b"Key Type\0";
pub const NCRYPT_VERSION_PROPERTY: &'static [u8; 8usize] = b"Version\0";
pub const NCRYPT_SECURITY_DESCR_SUPPORT_PROPERTY: &'static [u8; 23usize] =
    b"Security Descr Support\0";
pub const NCRYPT_SECURITY_DESCR_PROPERTY: &'static [u8; 15usize] = b"Security Descr\0";
pub const NCRYPT_USE_COUNT_ENABLED_PROPERTY: &'static [u8; 18usize] = b"Enabled Use Count\0";
pub const NCRYPT_USE_COUNT_PROPERTY: &'static [u8; 10usize] = b"Use Count\0";
pub const NCRYPT_LAST_MODIFIED_PROPERTY: &'static [u8; 9usize] = b"Modified\0";
pub const NCRYPT_MAX_NAME_LENGTH_PROPERTY: &'static [u8; 16usize] = b"Max Name Length\0";
pub const NCRYPT_ALGORITHM_GROUP_PROPERTY: &'static [u8; 16usize] = b"Algorithm Group\0";
pub const NCRYPT_DH_PARAMETERS_PROPERTY: &'static [u8; 13usize] = b"DHParameters\0";
pub const NCRYPT_ECC_PARAMETERS_PROPERTY: &'static [u8; 14usize] = b"ECCParameters\0";
pub const NCRYPT_ECC_CURVE_NAME_PROPERTY: &'static [u8; 13usize] = b"ECCCurveName\0";
pub const NCRYPT_ECC_CURVE_NAME_LIST_PROPERTY: &'static [u8; 17usize] = b"ECCCurveNameList\0";
pub const NCRYPT_USE_VIRTUAL_ISOLATION_PROPERTY: &'static [u8; 12usize] = b"Virtual Iso\0";
pub const NCRYPT_USE_PER_BOOT_KEY_PROPERTY: &'static [u8; 13usize] = b"Per Boot Key\0";
pub const NCRYPT_PROVIDER_HANDLE_PROPERTY: &'static [u8; 16usize] = b"Provider Handle\0";
pub const NCRYPT_PIN_PROPERTY: &'static [u8; 13usize] = b"SmartCardPin\0";
pub const NCRYPT_READER_PROPERTY: &'static [u8; 16usize] = b"SmartCardReader\0";
pub const NCRYPT_SMARTCARD_GUID_PROPERTY: &'static [u8; 14usize] = b"SmartCardGuid\0";
pub const NCRYPT_CERTIFICATE_PROPERTY: &'static [u8; 24usize] = b"SmartCardKeyCertificate\0";
pub const NCRYPT_PIN_PROMPT_PROPERTY: &'static [u8; 19usize] = b"SmartCardPinPrompt\0";
pub const NCRYPT_USER_CERTSTORE_PROPERTY: &'static [u8; 23usize] = b"SmartCardUserCertStore\0";
pub const NCRYPT_ROOT_CERTSTORE_PROPERTY: &'static [u8; 23usize] = b"SmartcardRootCertStore\0";
pub const NCRYPT_SECURE_PIN_PROPERTY: &'static [u8; 19usize] = b"SmartCardSecurePin\0";
pub const NCRYPT_ASSOCIATED_ECDH_KEY: &'static [u8; 27usize] = b"SmartCardAssociatedECDHKey\0";
pub const NCRYPT_SCARD_PIN_ID: &'static [u8; 15usize] = b"SmartCardPinId\0";
pub const NCRYPT_SCARD_PIN_INFO: &'static [u8; 17usize] = b"SmartCardPinInfo\0";
pub const NCRYPT_READER_ICON_PROPERTY: &'static [u8; 20usize] = b"SmartCardReaderIcon\0";
pub const NCRYPT_KDF_SECRET_VALUE: &'static [u8; 13usize] = b"KDFKeySecret\0";
pub const NCRYPT_DISMISS_UI_TIMEOUT_SEC_PROPERTY: &'static [u8; 33usize] =
    b"SmartCardDismissUITimeoutSeconds\0";
pub const NCRYPT_PCP_PLATFORM_TYPE_PROPERTY: &'static [u8; 18usize] = b"PCP_PLATFORM_TYPE\0";
pub const NCRYPT_PCP_PROVIDER_VERSION_PROPERTY: &'static [u8; 21usize] = b"PCP_PROVIDER_VERSION\0";
pub const NCRYPT_PCP_EKPUB_PROPERTY: &'static [u8; 10usize] = b"PCP_EKPUB\0";
pub const NCRYPT_PCP_EKCERT_PROPERTY: &'static [u8; 11usize] = b"PCP_EKCERT\0";
pub const NCRYPT_PCP_EKNVCERT_PROPERTY: &'static [u8; 13usize] = b"PCP_EKNVCERT\0";
pub const NCRYPT_PCP_RSA_EKPUB_PROPERTY: &'static [u8; 14usize] = b"PCP_RSA_EKPUB\0";
pub const NCRYPT_PCP_RSA_EKCERT_PROPERTY: &'static [u8; 15usize] = b"PCP_RSA_EKCERT\0";
pub const NCRYPT_PCP_RSA_EKNVCERT_PROPERTY: &'static [u8; 17usize] = b"PCP_RSA_EKNVCERT\0";
pub const NCRYPT_PCP_ECC_EKPUB_PROPERTY: &'static [u8; 14usize] = b"PCP_ECC_EKPUB\0";
pub const NCRYPT_PCP_ECC_EKCERT_PROPERTY: &'static [u8; 15usize] = b"PCP_ECC_EKCERT\0";
pub const NCRYPT_PCP_ECC_EKNVCERT_PROPERTY: &'static [u8; 17usize] = b"PCP_ECC_EKNVCERT\0";
pub const NCRYPT_PCP_SRKPUB_PROPERTY: &'static [u8; 11usize] = b"PCP_SRKPUB\0";
pub const NCRYPT_PCP_PCRTABLE_PROPERTY: &'static [u8; 13usize] = b"PCP_PCRTABLE\0";
pub const NCRYPT_PCP_CHANGEPASSWORD_PROPERTY: &'static [u8; 19usize] = b"PCP_CHANGEPASSWORD\0";
pub const NCRYPT_PCP_PASSWORD_REQUIRED_PROPERTY: &'static [u8; 22usize] =
    b"PCP_PASSWORD_REQUIRED\0";
pub const NCRYPT_PCP_USAGEAUTH_PROPERTY: &'static [u8; 14usize] = b"PCP_USAGEAUTH\0";
pub const NCRYPT_PCP_MIGRATIONPASSWORD_PROPERTY: &'static [u8; 22usize] =
    b"PCP_MIGRATIONPASSWORD\0";
pub const NCRYPT_PCP_EXPORT_ALLOWED_PROPERTY: &'static [u8; 19usize] = b"PCP_EXPORT_ALLOWED\0";
pub const NCRYPT_PCP_STORAGEPARENT_PROPERTY: &'static [u8; 18usize] = b"PCP_STORAGEPARENT\0";
pub const NCRYPT_PCP_PROVIDERHANDLE_PROPERTY: &'static [u8; 20usize] = b"PCP_PROVIDERMHANDLE\0";
pub const NCRYPT_PCP_PLATFORMHANDLE_PROPERTY: &'static [u8; 19usize] = b"PCP_PLATFORMHANDLE\0";
pub const NCRYPT_PCP_PLATFORM_BINDING_PCRMASK_PROPERTY: &'static [u8; 29usize] =
    b"PCP_PLATFORM_BINDING_PCRMASK\0";
pub const NCRYPT_PCP_PLATFORM_BINDING_PCRDIGESTLIST_PROPERTY: &'static [u8; 35usize] =
    b"PCP_PLATFORM_BINDING_PCRDIGESTLIST\0";
pub const NCRYPT_PCP_PLATFORM_BINDING_PCRDIGEST_PROPERTY: &'static [u8; 31usize] =
    b"PCP_PLATFORM_BINDING_PCRDIGEST\0";
pub const NCRYPT_PCP_KEY_USAGE_POLICY_PROPERTY: &'static [u8; 21usize] = b"PCP_KEY_USAGE_POLICY\0";
pub const NCRYPT_PCP_RSA_SCHEME_PROPERTY: &'static [u8; 15usize] = b"PCP_RSA_SCHEME\0";
pub const NCRYPT_PCP_RSA_SCHEME_HASH_ALG_PROPERTY: &'static [u8; 24usize] =
    b"PCP_RSA_SCHEME_HASH_ALG\0";
pub const NCRYPT_PCP_TPM12_IDBINDING_PROPERTY: &'static [u8; 20usize] = b"PCP_TPM12_IDBINDING\0";
pub const NCRYPT_PCP_TPM12_IDBINDING_DYNAMIC_PROPERTY: &'static [u8; 28usize] =
    b"PCP_TPM12_IDBINDING_DYNAMIC\0";
pub const NCRYPT_PCP_TPM12_IDACTIVATION_PROPERTY: &'static [u8; 23usize] =
    b"PCP_TPM12_IDACTIVATION\0";
pub const NCRYPT_PCP_KEYATTESTATION_PROPERTY: &'static [u8; 25usize] =
    b"PCP_TPM12_KEYATTESTATION\0";
pub const NCRYPT_PCP_ALTERNATE_KEY_STORAGE_LOCATION_PROPERTY: &'static [u8; 35usize] =
    b"PCP_ALTERNATE_KEY_STORAGE_LOCATION\0";
pub const NCRYPT_PCP_TPM_IFX_RSA_KEYGEN_PROHIBITED_PROPERTY: &'static [u8; 34usize] =
    b"PCP_TPM_IFX_RSA_KEYGEN_PROHIBITED\0";
pub const NCRYPT_PCP_TPM_IFX_RSA_KEYGEN_VULNERABILITY_PROPERTY: &'static [u8; 37usize] =
    b"PCP_TPM_IFX_RSA_KEYGEN_VULNERABILITY\0";
pub const NCRYPT_PCP_HMAC_AUTH_POLICYREF: &'static [u8; 24usize] = b"PCP_HMAC_AUTH_POLICYREF\0";
pub const NCRYPT_PCP_HMAC_AUTH_POLICYINFO: &'static [u8; 25usize] = b"PCP_HMAC_AUTH_POLICYINFO\0";
pub const NCRYPT_PCP_HMAC_AUTH_NONCE: &'static [u8; 20usize] = b"PCP_HMAC_AUTH_NONCE\0";
pub const NCRYPT_PCP_HMAC_AUTH_SIGNATURE: &'static [u8; 24usize] = b"PCP_HMAC_AUTH_SIGNATURE\0";
pub const NCRYPT_PCP_HMAC_AUTH_TICKET: &'static [u8; 21usize] = b"PCP_HMAC_AUTH_TICKET\0";
pub const NCRYPT_PCP_NO_DA_PROTECTION_PROPERTY: &'static [u8; 21usize] = b"PCP_NO_DA_PROTECTION\0";
pub const NCRYPT_PCP_TPM_MANUFACTURER_ID_PROPERTY: &'static [u8; 24usize] =
    b"PCP_TPM_MANUFACTURER_ID\0";
pub const NCRYPT_PCP_TPM_FW_VERSION_PROPERTY: &'static [u8; 19usize] = b"PCP_TPM_FW_VERSION\0";
pub const NCRYPT_PCP_TPM2BNAME_PROPERTY: &'static [u8; 14usize] = b"PCP_TPM2BNAME\0";
pub const NCRYPT_PCP_TPM_VERSION_PROPERTY: &'static [u8; 16usize] = b"PCP_TPM_VERSION\0";
pub const NCRYPT_PCP_RAW_POLICYDIGEST_PROPERTY: &'static [u8; 21usize] = b"PCP_RAW_POLICYDIGEST\0";
pub const NCRYPT_PCP_KEY_CREATIONHASH_PROPERTY: &'static [u8; 21usize] = b"PCP_KEY_CREATIONHASH\0";
pub const NCRYPT_PCP_KEY_CREATIONTICKET_PROPERTY: &'static [u8; 23usize] =
    b"PCP_KEY_CREATIONTICKET\0";
pub const NCRYPT_PCP_SESSIONID_PROPERTY: &'static [u8; 14usize] = b"PCP_SESSIONID\0";
pub const NCRYPT_PCP_PSS_SALT_SIZE_PROPERTY: &'static [u8; 14usize] = b"PSS Salt Size\0";
pub const NCRYPT_TPM_PSS_SALT_SIZE_UNKNOWN: u32 = 0;
pub const NCRYPT_TPM_PSS_SALT_SIZE_MAXIMUM: u32 = 1;
pub const NCRYPT_TPM_PSS_SALT_SIZE_HASHSIZE: u32 = 2;
pub const NCRYPT_TPM_PAD_PSS_IGNORE_SALT: u32 = 32;
pub const IFX_RSA_KEYGEN_VUL_NOT_AFFECTED: u32 = 0;
pub const IFX_RSA_KEYGEN_VUL_AFFECTED_LEVEL_1: u32 = 1;
pub const IFX_RSA_KEYGEN_VUL_AFFECTED_LEVEL_2: u32 = 2;
pub const NCRYPT_TPM12_PROVIDER: u32 = 65536;
pub const NCRYPT_PCP_SIGNATURE_KEY: u32 = 1;
pub const NCRYPT_PCP_ENCRYPTION_KEY: u32 = 2;
pub const NCRYPT_PCP_GENERIC_KEY: u32 = 3;
pub const NCRYPT_PCP_STORAGE_KEY: u32 = 4;
pub const NCRYPT_PCP_IDENTITY_KEY: u32 = 8;
pub const NCRYPT_PCP_HMACVERIFICATION_KEY: u32 = 16;
pub const NCRYPT_SCARD_NGC_KEY_NAME: &'static [u8; 20usize] = b"SmartCardNgcKeyName\0";
pub const NCRYPT_PCP_PLATFORM_BINDING_PCRALGID_PROPERTY: &'static [u8; 30usize] =
    b"PCP_PLATFORM_BINDING_PCRALGID\0";
pub const NCRYPT_INITIALIZATION_VECTOR: &'static [u8; 3usize] = b"IV\0";
pub const NCRYPT_CHANGEPASSWORD_PROPERTY: &'static [u8; 19usize] = b"PCP_CHANGEPASSWORD\0";
pub const NCRYPT_ALTERNATE_KEY_STORAGE_LOCATION_PROPERTY: &'static [u8; 35usize] =
    b"PCP_ALTERNATE_KEY_STORAGE_LOCATION\0";
pub const NCRYPT_KEY_ACCESS_POLICY_PROPERTY: &'static [u8; 18usize] = b"Key Access Policy\0";
pub const NCRYPT_MAX_PROPERTY_NAME: u32 = 64;
pub const NCRYPT_MAX_PROPERTY_DATA: u32 = 1048576;
pub const NCRYPT_ALLOW_EXPORT_FLAG: u32 = 1;
pub const NCRYPT_ALLOW_PLAINTEXT_EXPORT_FLAG: u32 = 2;
pub const NCRYPT_ALLOW_ARCHIVING_FLAG: u32 = 4;
pub const NCRYPT_ALLOW_PLAINTEXT_ARCHIVING_FLAG: u32 = 8;
pub const NCRYPT_IMPL_HARDWARE_FLAG: u32 = 1;
pub const NCRYPT_IMPL_SOFTWARE_FLAG: u32 = 2;
pub const NCRYPT_IMPL_REMOVABLE_FLAG: u32 = 8;
pub const NCRYPT_IMPL_HARDWARE_RNG_FLAG: u32 = 16;
pub const NCRYPT_IMPL_VIRTUAL_ISOLATION_FLAG: u32 = 32;
pub const NCRYPT_ALLOW_DECRYPT_FLAG: u32 = 1;
pub const NCRYPT_ALLOW_SIGNING_FLAG: u32 = 2;
pub const NCRYPT_ALLOW_KEY_AGREEMENT_FLAG: u32 = 4;
pub const NCRYPT_ALLOW_KEY_IMPORT_FLAG: u32 = 8;
pub const NCRYPT_ALLOW_ALL_USAGES: u32 = 16777215;
pub const NCRYPT_UI_PROTECT_KEY_FLAG: u32 = 1;
pub const NCRYPT_UI_FORCE_HIGH_PROTECTION_FLAG: u32 = 2;
pub const NCRYPT_UI_FINGERPRINT_PROTECTION_FLAG: u32 = 4;
pub const NCRYPT_UI_APPCONTAINER_ACCESS_MEDIUM_FLAG: u32 = 8;
pub const NCRYPT_PIN_CACHE_FREE_APPLICATION_TICKET_PROPERTY: &'static [u8; 30usize] =
    b"PinCacheFreeApplicationTicket\0";
pub const NCRYPT_PIN_CACHE_FLAGS_PROPERTY: &'static [u8; 14usize] = b"PinCacheFlags\0";
pub const NCRYPT_PIN_CACHE_DISABLE_DPL_FLAG: u32 = 1;
pub const NCRYPT_PIN_CACHE_APPLICATION_TICKET_PROPERTY: &'static [u8; 26usize] =
    b"PinCacheApplicationTicket\0";
pub const NCRYPT_PIN_CACHE_APPLICATION_IMAGE_PROPERTY: &'static [u8; 25usize] =
    b"PinCacheApplicationImage\0";
pub const NCRYPT_PIN_CACHE_APPLICATION_STATUS_PROPERTY: &'static [u8; 26usize] =
    b"PinCacheApplicationStatus\0";
pub const NCRYPT_PIN_CACHE_PIN_PROPERTY: &'static [u8; 12usize] = b"PinCachePin\0";
pub const NCRYPT_PIN_CACHE_IS_GESTURE_REQUIRED_PROPERTY: &'static [u8; 26usize] =
    b"PinCacheIsGestureRequired\0";
pub const NCRYPT_PIN_CACHE_REQUIRE_GESTURE_FLAG: u32 = 1;
pub const NCRYPT_PIN_CACHE_PIN_BYTE_LENGTH: u32 = 90;
pub const NCRYPT_PIN_CACHE_APPLICATION_TICKET_BYTE_LENGTH: u32 = 90;
pub const NCRYPT_PIN_CACHE_CLEAR_PROPERTY: &'static [u8; 14usize] = b"PinCacheClear\0";
pub const NCRYPT_PIN_CACHE_CLEAR_FOR_CALLING_PROCESS_OPTION: u32 = 1;
pub const NCRYPT_KEY_ACCESS_POLICY_VERSION: u32 = 1;
pub const NCRYPT_ALLOW_SILENT_KEY_ACCESS: u32 = 1;
pub const NCRYPT_CIPHER_KEY_BLOB_MAGIC: u32 = 1380470851;
pub const NCRYPT_KDF_KEY_BLOB_MAGIC: u32 = 826688587;
pub const NCRYPT_PROTECTED_KEY_BLOB_MAGIC: u32 = 1263817296;
pub const NCRYPT_CIPHER_KEY_BLOB: &'static [u8; 14usize] = b"CipherKeyBlob\0";
pub const NCRYPT_KDF_KEY_BLOB: &'static [u8; 11usize] = b"KDFKeyBlob\0";
pub const NCRYPT_PROTECTED_KEY_BLOB: &'static [u8; 17usize] = b"ProtectedKeyBlob\0";
pub const NCRYPT_TPM_LOADABLE_KEY_BLOB: &'static [u8; 23usize] = b"PcpTpmProtectedKeyBlob\0";
pub const NCRYPT_TPM_LOADABLE_KEY_BLOB_MAGIC: u32 = 1297371211;
pub const NCRYPT_PKCS7_ENVELOPE_BLOB: &'static [u8; 15usize] = b"PKCS7_ENVELOPE\0";
pub const NCRYPT_PKCS8_PRIVATE_KEY_BLOB: &'static [u8; 17usize] = b"PKCS8_PRIVATEKEY\0";
pub const NCRYPT_OPAQUETRANSPORT_BLOB: &'static [u8; 16usize] = b"OpaqueTransport\0";
pub const NCRYPT_ISOLATED_KEY_ENVELOPE_BLOB: &'static [u8; 22usize] = b"ISOLATED_KEY_ENVELOPE\0";
pub const szOID_RSA: &'static [u8; 15usize] = b"1.2.840.113549\0";
pub const szOID_PKCS: &'static [u8; 17usize] = b"1.2.840.113549.1\0";
pub const szOID_RSA_HASH: &'static [u8; 17usize] = b"1.2.840.113549.2\0";
pub const szOID_RSA_ENCRYPT: &'static [u8; 17usize] = b"1.2.840.113549.3\0";
pub const szOID_PKCS_1: &'static [u8; 19usize] = b"1.2.840.113549.1.1\0";
pub const szOID_PKCS_2: &'static [u8; 19usize] = b"1.2.840.113549.1.2\0";
pub const szOID_PKCS_3: &'static [u8; 19usize] = b"1.2.840.113549.1.3\0";
pub const szOID_PKCS_4: &'static [u8; 19usize] = b"1.2.840.113549.1.4\0";
pub const szOID_PKCS_5: &'static [u8; 19usize] = b"1.2.840.113549.1.5\0";
pub const szOID_PKCS_6: &'static [u8; 19usize] = b"1.2.840.113549.1.6\0";
pub const szOID_PKCS_7: &'static [u8; 19usize] = b"1.2.840.113549.1.7\0";
pub const szOID_PKCS_8: &'static [u8; 19usize] = b"1.2.840.113549.1.8\0";
pub const szOID_PKCS_9: &'static [u8; 19usize] = b"1.2.840.113549.1.9\0";
pub const szOID_PKCS_10: &'static [u8; 20usize] = b"1.2.840.113549.1.10\0";
pub const szOID_PKCS_12: &'static [u8; 20usize] = b"1.2.840.113549.1.12\0";
pub const szOID_RSA_RSA: &'static [u8; 21usize] = b"1.2.840.113549.1.1.1\0";
pub const szOID_RSA_MD2RSA: &'static [u8; 21usize] = b"1.2.840.113549.1.1.2\0";
pub const szOID_RSA_MD4RSA: &'static [u8; 21usize] = b"1.2.840.113549.1.1.3\0";
pub const szOID_RSA_MD5RSA: &'static [u8; 21usize] = b"1.2.840.113549.1.1.4\0";
pub const szOID_RSA_SHA1RSA: &'static [u8; 21usize] = b"1.2.840.113549.1.1.5\0";
pub const szOID_RSA_SETOAEP_RSA: &'static [u8; 21usize] = b"1.2.840.113549.1.1.6\0";
pub const szOID_RSAES_OAEP: &'static [u8; 21usize] = b"1.2.840.113549.1.1.7\0";
pub const szOID_RSA_MGF1: &'static [u8; 21usize] = b"1.2.840.113549.1.1.8\0";
pub const szOID_RSA_PSPECIFIED: &'static [u8; 21usize] = b"1.2.840.113549.1.1.9\0";
pub const szOID_RSA_SSA_PSS: &'static [u8; 22usize] = b"1.2.840.113549.1.1.10\0";
pub const szOID_RSA_SHA256RSA: &'static [u8; 22usize] = b"1.2.840.113549.1.1.11\0";
pub const szOID_RSA_SHA384RSA: &'static [u8; 22usize] = b"1.2.840.113549.1.1.12\0";
pub const szOID_RSA_SHA512RSA: &'static [u8; 22usize] = b"1.2.840.113549.1.1.13\0";
pub const szOID_RSA_DH: &'static [u8; 21usize] = b"1.2.840.113549.1.3.1\0";
pub const szOID_RSA_data: &'static [u8; 21usize] = b"1.2.840.113549.1.7.1\0";
pub const szOID_RSA_signedData: &'static [u8; 21usize] = b"1.2.840.113549.1.7.2\0";
pub const szOID_RSA_envelopedData: &'static [u8; 21usize] = b"1.2.840.113549.1.7.3\0";
pub const szOID_RSA_signEnvData: &'static [u8; 21usize] = b"1.2.840.113549.1.7.4\0";
pub const szOID_RSA_digestedData: &'static [u8; 21usize] = b"1.2.840.113549.1.7.5\0";
pub const szOID_RSA_hashedData: &'static [u8; 21usize] = b"1.2.840.113549.1.7.5\0";
pub const szOID_RSA_encryptedData: &'static [u8; 21usize] = b"1.2.840.113549.1.7.6\0";
pub const szOID_RSA_emailAddr: &'static [u8; 21usize] = b"1.2.840.113549.1.9.1\0";
pub const szOID_RSA_unstructName: &'static [u8; 21usize] = b"1.2.840.113549.1.9.2\0";
pub const szOID_RSA_contentType: &'static [u8; 21usize] = b"1.2.840.113549.1.9.3\0";
pub const szOID_RSA_messageDigest: &'static [u8; 21usize] = b"1.2.840.113549.1.9.4\0";
pub const szOID_RSA_signingTime: &'static [u8; 21usize] = b"1.2.840.113549.1.9.5\0";
pub const szOID_RSA_counterSign: &'static [u8; 21usize] = b"1.2.840.113549.1.9.6\0";
pub const szOID_RSA_challengePwd: &'static [u8; 21usize] = b"1.2.840.113549.1.9.7\0";
pub const szOID_RSA_unstructAddr: &'static [u8; 21usize] = b"1.2.840.113549.1.9.8\0";
pub const szOID_RSA_extCertAttrs: &'static [u8; 21usize] = b"1.2.840.113549.1.9.9\0";
pub const szOID_RSA_certExtensions: &'static [u8; 22usize] = b"1.2.840.113549.1.9.14\0";
pub const szOID_RSA_SMIMECapabilities: &'static [u8; 22usize] = b"1.2.840.113549.1.9.15\0";
pub const szOID_RSA_preferSignedData: &'static [u8; 24usize] = b"1.2.840.113549.1.9.15.1\0";
pub const szOID_TIMESTAMP_TOKEN: &'static [u8; 26usize] = b"1.2.840.113549.1.9.16.1.4\0";
pub const szOID_RFC3161_counterSign: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.3.3.1\0";
pub const szOID_RSA_SMIMEalg: &'static [u8; 24usize] = b"1.2.840.113549.1.9.16.3\0";
pub const szOID_RSA_SMIMEalgESDH: &'static [u8; 26usize] = b"1.2.840.113549.1.9.16.3.5\0";
pub const szOID_RSA_SMIMEalgCMS3DESwrap: &'static [u8; 26usize] = b"1.2.840.113549.1.9.16.3.6\0";
pub const szOID_RSA_SMIMEalgCMSRC2wrap: &'static [u8; 26usize] = b"1.2.840.113549.1.9.16.3.7\0";
pub const szOID_RSA_MD2: &'static [u8; 19usize] = b"1.2.840.113549.2.2\0";
pub const szOID_RSA_MD4: &'static [u8; 19usize] = b"1.2.840.113549.2.4\0";
pub const szOID_RSA_MD5: &'static [u8; 19usize] = b"1.2.840.113549.2.5\0";
pub const szOID_RSA_RC2CBC: &'static [u8; 19usize] = b"1.2.840.113549.3.2\0";
pub const szOID_RSA_RC4: &'static [u8; 19usize] = b"1.2.840.113549.3.4\0";
pub const szOID_RSA_DES_EDE3_CBC: &'static [u8; 19usize] = b"1.2.840.113549.3.7\0";
pub const szOID_RSA_RC5_CBCPad: &'static [u8; 19usize] = b"1.2.840.113549.3.9\0";
pub const szOID_ANSI_X942: &'static [u8; 14usize] = b"1.2.840.10046\0";
pub const szOID_ANSI_X942_DH: &'static [u8; 18usize] = b"1.2.840.10046.2.1\0";
pub const szOID_X957: &'static [u8; 14usize] = b"1.2.840.10040\0";
pub const szOID_X957_DSA: &'static [u8; 18usize] = b"1.2.840.10040.4.1\0";
pub const szOID_X957_SHA1DSA: &'static [u8; 18usize] = b"1.2.840.10040.4.3\0";
pub const szOID_ECC_PUBLIC_KEY: &'static [u8; 18usize] = b"1.2.840.10045.2.1\0";
pub const szOID_ECC_CURVE_P256: &'static [u8; 20usize] = b"1.2.840.10045.3.1.7\0";
pub const szOID_ECC_CURVE_P384: &'static [u8; 13usize] = b"1.3.132.0.34\0";
pub const szOID_ECC_CURVE_P521: &'static [u8; 13usize] = b"1.3.132.0.35\0";
pub const szOID_ECC_CURVE_BRAINPOOLP160R1: &'static [u8; 21usize] = b"1.3.36.3.3.2.8.1.1.1\0";
pub const szOID_ECC_CURVE_BRAINPOOLP160T1: &'static [u8; 21usize] = b"1.3.36.3.3.2.8.1.1.2\0";
pub const szOID_ECC_CURVE_BRAINPOOLP192R1: &'static [u8; 21usize] = b"1.3.36.3.3.2.8.1.1.3\0";
pub const szOID_ECC_CURVE_BRAINPOOLP192T1: &'static [u8; 21usize] = b"1.3.36.3.3.2.8.1.1.4\0";
pub const szOID_ECC_CURVE_BRAINPOOLP224R1: &'static [u8; 21usize] = b"1.3.36.3.3.2.8.1.1.5\0";
pub const szOID_ECC_CURVE_BRAINPOOLP224T1: &'static [u8; 21usize] = b"1.3.36.3.3.2.8.1.1.6\0";
pub const szOID_ECC_CURVE_BRAINPOOLP256R1: &'static [u8; 21usize] = b"1.3.36.3.3.2.8.1.1.7\0";
pub const szOID_ECC_CURVE_BRAINPOOLP256T1: &'static [u8; 21usize] = b"1.3.36.3.3.2.8.1.1.8\0";
pub const szOID_ECC_CURVE_BRAINPOOLP320R1: &'static [u8; 21usize] = b"1.3.36.3.3.2.8.1.1.9\0";
pub const szOID_ECC_CURVE_BRAINPOOLP320T1: &'static [u8; 22usize] = b"1.3.36.3.3.2.8.1.1.10\0";
pub const szOID_ECC_CURVE_BRAINPOOLP384R1: &'static [u8; 22usize] = b"1.3.36.3.3.2.8.1.1.11\0";
pub const szOID_ECC_CURVE_BRAINPOOLP384T1: &'static [u8; 22usize] = b"1.3.36.3.3.2.8.1.1.12\0";
pub const szOID_ECC_CURVE_BRAINPOOLP512R1: &'static [u8; 22usize] = b"1.3.36.3.3.2.8.1.1.13\0";
pub const szOID_ECC_CURVE_BRAINPOOLP512T1: &'static [u8; 22usize] = b"1.3.36.3.3.2.8.1.1.14\0";
pub const szOID_ECC_CURVE_EC192WAPI: &'static [u8; 22usize] = b"1.2.156.11235.1.1.2.1\0";
pub const szOID_CN_ECDSA_SHA256: &'static [u8; 20usize] = b"1.2.156.11235.1.1.1\0";
pub const szOID_ECC_CURVE_NISTP192: &'static [u8; 20usize] = b"1.2.840.10045.3.1.1\0";
pub const szOID_ECC_CURVE_NISTP224: &'static [u8; 13usize] = b"1.3.132.0.33\0";
pub const szOID_ECC_CURVE_NISTP256: &'static [u8; 20usize] = b"1.2.840.10045.3.1.7\0";
pub const szOID_ECC_CURVE_NISTP384: &'static [u8; 13usize] = b"1.3.132.0.34\0";
pub const szOID_ECC_CURVE_NISTP521: &'static [u8; 13usize] = b"1.3.132.0.35\0";
pub const szOID_ECC_CURVE_SECP160K1: &'static [u8; 12usize] = b"1.3.132.0.9\0";
pub const szOID_ECC_CURVE_SECP160R1: &'static [u8; 12usize] = b"1.3.132.0.8\0";
pub const szOID_ECC_CURVE_SECP160R2: &'static [u8; 13usize] = b"1.3.132.0.30\0";
pub const szOID_ECC_CURVE_SECP192K1: &'static [u8; 13usize] = b"1.3.132.0.31\0";
pub const szOID_ECC_CURVE_SECP192R1: &'static [u8; 20usize] = b"1.2.840.10045.3.1.1\0";
pub const szOID_ECC_CURVE_SECP224K1: &'static [u8; 13usize] = b"1.3.132.0.32\0";
pub const szOID_ECC_CURVE_SECP224R1: &'static [u8; 13usize] = b"1.3.132.0.33\0";
pub const szOID_ECC_CURVE_SECP256K1: &'static [u8; 13usize] = b"1.3.132.0.10\0";
pub const szOID_ECC_CURVE_SECP256R1: &'static [u8; 20usize] = b"1.2.840.10045.3.1.7\0";
pub const szOID_ECC_CURVE_SECP384R1: &'static [u8; 13usize] = b"1.3.132.0.34\0";
pub const szOID_ECC_CURVE_SECP521R1: &'static [u8; 13usize] = b"1.3.132.0.35\0";
pub const szOID_ECC_CURVE_WTLS7: &'static [u8; 13usize] = b"1.3.132.0.30\0";
pub const szOID_ECC_CURVE_WTLS9: &'static [u8; 14usize] = b"2.23.43.1.4.9\0";
pub const szOID_ECC_CURVE_WTLS12: &'static [u8; 13usize] = b"1.3.132.0.33\0";
pub const szOID_ECC_CURVE_X962P192V1: &'static [u8; 20usize] = b"1.2.840.10045.3.1.1\0";
pub const szOID_ECC_CURVE_X962P192V2: &'static [u8; 20usize] = b"1.2.840.10045.3.1.2\0";
pub const szOID_ECC_CURVE_X962P192V3: &'static [u8; 20usize] = b"1.2.840.10045.3.1.3\0";
pub const szOID_ECC_CURVE_X962P239V1: &'static [u8; 20usize] = b"1.2.840.10045.3.1.4\0";
pub const szOID_ECC_CURVE_X962P239V2: &'static [u8; 20usize] = b"1.2.840.10045.3.1.5\0";
pub const szOID_ECC_CURVE_X962P239V3: &'static [u8; 20usize] = b"1.2.840.10045.3.1.6\0";
pub const szOID_ECC_CURVE_X962P256V1: &'static [u8; 20usize] = b"1.2.840.10045.3.1.7\0";
pub const szOID_ECDSA_SHA1: &'static [u8; 18usize] = b"1.2.840.10045.4.1\0";
pub const szOID_ECDSA_SPECIFIED: &'static [u8; 18usize] = b"1.2.840.10045.4.3\0";
pub const szOID_ECDSA_SHA256: &'static [u8; 20usize] = b"1.2.840.10045.4.3.2\0";
pub const szOID_ECDSA_SHA384: &'static [u8; 20usize] = b"1.2.840.10045.4.3.3\0";
pub const szOID_ECDSA_SHA512: &'static [u8; 20usize] = b"1.2.840.10045.4.3.4\0";
pub const szOID_NIST_AES128_CBC: &'static [u8; 23usize] = b"2.16.840.1.101.3.4.1.2\0";
pub const szOID_NIST_AES192_CBC: &'static [u8; 24usize] = b"2.16.840.1.101.3.4.1.22\0";
pub const szOID_NIST_AES256_CBC: &'static [u8; 24usize] = b"2.16.840.1.101.3.4.1.42\0";
pub const szOID_NIST_AES128_WRAP: &'static [u8; 23usize] = b"2.16.840.1.101.3.4.1.5\0";
pub const szOID_NIST_AES192_WRAP: &'static [u8; 24usize] = b"2.16.840.1.101.3.4.1.25\0";
pub const szOID_NIST_AES256_WRAP: &'static [u8; 24usize] = b"2.16.840.1.101.3.4.1.45\0";
pub const szOID_DH_SINGLE_PASS_STDDH_SHA1_KDF: &'static [u8; 22usize] = b"1.3.133.16.840.63.0.2\0";
pub const szOID_DH_SINGLE_PASS_STDDH_SHA256_KDF: &'static [u8; 15usize] = b"1.3.132.1.11.1\0";
pub const szOID_DH_SINGLE_PASS_STDDH_SHA384_KDF: &'static [u8; 15usize] = b"1.3.132.1.11.2\0";
pub const szOID_DS: &'static [u8; 4usize] = b"2.5\0";
pub const szOID_DSALG: &'static [u8; 6usize] = b"2.5.8\0";
pub const szOID_DSALG_CRPT: &'static [u8; 8usize] = b"2.5.8.1\0";
pub const szOID_DSALG_HASH: &'static [u8; 8usize] = b"2.5.8.2\0";
pub const szOID_DSALG_SIGN: &'static [u8; 8usize] = b"2.5.8.3\0";
pub const szOID_DSALG_RSA: &'static [u8; 10usize] = b"2.5.8.1.1\0";
pub const szOID_OIW: &'static [u8; 7usize] = b"1.3.14\0";
pub const szOID_OIWSEC: &'static [u8; 11usize] = b"1.3.14.3.2\0";
pub const szOID_OIWSEC_md4RSA: &'static [u8; 13usize] = b"1.3.14.3.2.2\0";
pub const szOID_OIWSEC_md5RSA: &'static [u8; 13usize] = b"1.3.14.3.2.3\0";
pub const szOID_OIWSEC_md4RSA2: &'static [u8; 13usize] = b"1.3.14.3.2.4\0";
pub const szOID_OIWSEC_desECB: &'static [u8; 13usize] = b"1.3.14.3.2.6\0";
pub const szOID_OIWSEC_desCBC: &'static [u8; 13usize] = b"1.3.14.3.2.7\0";
pub const szOID_OIWSEC_desOFB: &'static [u8; 13usize] = b"1.3.14.3.2.8\0";
pub const szOID_OIWSEC_desCFB: &'static [u8; 13usize] = b"1.3.14.3.2.9\0";
pub const szOID_OIWSEC_desMAC: &'static [u8; 14usize] = b"1.3.14.3.2.10\0";
pub const szOID_OIWSEC_rsaSign: &'static [u8; 14usize] = b"1.3.14.3.2.11\0";
pub const szOID_OIWSEC_dsa: &'static [u8; 14usize] = b"1.3.14.3.2.12\0";
pub const szOID_OIWSEC_shaDSA: &'static [u8; 14usize] = b"1.3.14.3.2.13\0";
pub const szOID_OIWSEC_mdc2RSA: &'static [u8; 14usize] = b"1.3.14.3.2.14\0";
pub const szOID_OIWSEC_shaRSA: &'static [u8; 14usize] = b"1.3.14.3.2.15\0";
pub const szOID_OIWSEC_dhCommMod: &'static [u8; 14usize] = b"1.3.14.3.2.16\0";
pub const szOID_OIWSEC_desEDE: &'static [u8; 14usize] = b"1.3.14.3.2.17\0";
pub const szOID_OIWSEC_sha: &'static [u8; 14usize] = b"1.3.14.3.2.18\0";
pub const szOID_OIWSEC_mdc2: &'static [u8; 14usize] = b"1.3.14.3.2.19\0";
pub const szOID_OIWSEC_dsaComm: &'static [u8; 14usize] = b"1.3.14.3.2.20\0";
pub const szOID_OIWSEC_dsaCommSHA: &'static [u8; 14usize] = b"1.3.14.3.2.21\0";
pub const szOID_OIWSEC_rsaXchg: &'static [u8; 14usize] = b"1.3.14.3.2.22\0";
pub const szOID_OIWSEC_keyHashSeal: &'static [u8; 14usize] = b"1.3.14.3.2.23\0";
pub const szOID_OIWSEC_md2RSASign: &'static [u8; 14usize] = b"1.3.14.3.2.24\0";
pub const szOID_OIWSEC_md5RSASign: &'static [u8; 14usize] = b"1.3.14.3.2.25\0";
pub const szOID_OIWSEC_sha1: &'static [u8; 14usize] = b"1.3.14.3.2.26\0";
pub const szOID_OIWSEC_dsaSHA1: &'static [u8; 14usize] = b"1.3.14.3.2.27\0";
pub const szOID_OIWSEC_dsaCommSHA1: &'static [u8; 14usize] = b"1.3.14.3.2.28\0";
pub const szOID_OIWSEC_sha1RSASign: &'static [u8; 14usize] = b"1.3.14.3.2.29\0";
pub const szOID_OIWDIR: &'static [u8; 11usize] = b"1.3.14.7.2\0";
pub const szOID_OIWDIR_CRPT: &'static [u8; 13usize] = b"1.3.14.7.2.1\0";
pub const szOID_OIWDIR_HASH: &'static [u8; 13usize] = b"1.3.14.7.2.2\0";
pub const szOID_OIWDIR_SIGN: &'static [u8; 13usize] = b"1.3.14.7.2.3\0";
pub const szOID_OIWDIR_md2: &'static [u8; 15usize] = b"1.3.14.7.2.2.1\0";
pub const szOID_OIWDIR_md2RSA: &'static [u8; 15usize] = b"1.3.14.7.2.3.1\0";
pub const szOID_INFOSEC: &'static [u8; 19usize] = b"2.16.840.1.101.2.1\0";
pub const szOID_INFOSEC_sdnsSignature: &'static [u8; 23usize] = b"2.16.840.1.101.2.1.1.1\0";
pub const szOID_INFOSEC_mosaicSignature: &'static [u8; 23usize] = b"2.16.840.1.101.2.1.1.2\0";
pub const szOID_INFOSEC_sdnsConfidentiality: &'static [u8; 23usize] = b"2.16.840.1.101.2.1.1.3\0";
pub const szOID_INFOSEC_mosaicConfidentiality: &'static [u8; 23usize] = b"2.16.840.1.101.2.1.1.4\0";
pub const szOID_INFOSEC_sdnsIntegrity: &'static [u8; 23usize] = b"2.16.840.1.101.2.1.1.5\0";
pub const szOID_INFOSEC_mosaicIntegrity: &'static [u8; 23usize] = b"2.16.840.1.101.2.1.1.6\0";
pub const szOID_INFOSEC_sdnsTokenProtection: &'static [u8; 23usize] = b"2.16.840.1.101.2.1.1.7\0";
pub const szOID_INFOSEC_mosaicTokenProtection: &'static [u8; 23usize] = b"2.16.840.1.101.2.1.1.8\0";
pub const szOID_INFOSEC_sdnsKeyManagement: &'static [u8; 23usize] = b"2.16.840.1.101.2.1.1.9\0";
pub const szOID_INFOSEC_mosaicKeyManagement: &'static [u8; 24usize] = b"2.16.840.1.101.2.1.1.10\0";
pub const szOID_INFOSEC_sdnsKMandSig: &'static [u8; 24usize] = b"2.16.840.1.101.2.1.1.11\0";
pub const szOID_INFOSEC_mosaicKMandSig: &'static [u8; 24usize] = b"2.16.840.1.101.2.1.1.12\0";
pub const szOID_INFOSEC_SuiteASignature: &'static [u8; 24usize] = b"2.16.840.1.101.2.1.1.13\0";
pub const szOID_INFOSEC_SuiteAConfidentiality: &'static [u8; 24usize] =
    b"2.16.840.1.101.2.1.1.14\0";
pub const szOID_INFOSEC_SuiteAIntegrity: &'static [u8; 24usize] = b"2.16.840.1.101.2.1.1.15\0";
pub const szOID_INFOSEC_SuiteATokenProtection: &'static [u8; 24usize] =
    b"2.16.840.1.101.2.1.1.16\0";
pub const szOID_INFOSEC_SuiteAKeyManagement: &'static [u8; 24usize] = b"2.16.840.1.101.2.1.1.17\0";
pub const szOID_INFOSEC_SuiteAKMandSig: &'static [u8; 24usize] = b"2.16.840.1.101.2.1.1.18\0";
pub const szOID_INFOSEC_mosaicUpdatedSig: &'static [u8; 24usize] = b"2.16.840.1.101.2.1.1.19\0";
pub const szOID_INFOSEC_mosaicKMandUpdSig: &'static [u8; 24usize] = b"2.16.840.1.101.2.1.1.20\0";
pub const szOID_INFOSEC_mosaicUpdatedInteg: &'static [u8; 24usize] = b"2.16.840.1.101.2.1.1.21\0";
pub const szOID_NIST_sha256: &'static [u8; 23usize] = b"2.16.840.1.101.3.4.2.1\0";
pub const szOID_NIST_sha384: &'static [u8; 23usize] = b"2.16.840.1.101.3.4.2.2\0";
pub const szOID_NIST_sha512: &'static [u8; 23usize] = b"2.16.840.1.101.3.4.2.3\0";
pub const szOID_COMMON_NAME: &'static [u8; 8usize] = b"2.5.4.3\0";
pub const szOID_SUR_NAME: &'static [u8; 8usize] = b"2.5.4.4\0";
pub const szOID_DEVICE_SERIAL_NUMBER: &'static [u8; 8usize] = b"2.5.4.5\0";
pub const szOID_COUNTRY_NAME: &'static [u8; 8usize] = b"2.5.4.6\0";
pub const szOID_LOCALITY_NAME: &'static [u8; 8usize] = b"2.5.4.7\0";
pub const szOID_STATE_OR_PROVINCE_NAME: &'static [u8; 8usize] = b"2.5.4.8\0";
pub const szOID_STREET_ADDRESS: &'static [u8; 8usize] = b"2.5.4.9\0";
pub const szOID_ORGANIZATION_NAME: &'static [u8; 9usize] = b"2.5.4.10\0";
pub const szOID_ORGANIZATIONAL_UNIT_NAME: &'static [u8; 9usize] = b"2.5.4.11\0";
pub const szOID_TITLE: &'static [u8; 9usize] = b"2.5.4.12\0";
pub const szOID_DESCRIPTION: &'static [u8; 9usize] = b"2.5.4.13\0";
pub const szOID_SEARCH_GUIDE: &'static [u8; 9usize] = b"2.5.4.14\0";
pub const szOID_BUSINESS_CATEGORY: &'static [u8; 9usize] = b"2.5.4.15\0";
pub const szOID_POSTAL_ADDRESS: &'static [u8; 9usize] = b"2.5.4.16\0";
pub const szOID_POSTAL_CODE: &'static [u8; 9usize] = b"2.5.4.17\0";
pub const szOID_POST_OFFICE_BOX: &'static [u8; 9usize] = b"2.5.4.18\0";
pub const szOID_PHYSICAL_DELIVERY_OFFICE_NAME: &'static [u8; 9usize] = b"2.5.4.19\0";
pub const szOID_TELEPHONE_NUMBER: &'static [u8; 9usize] = b"2.5.4.20\0";
pub const szOID_TELEX_NUMBER: &'static [u8; 9usize] = b"2.5.4.21\0";
pub const szOID_TELETEXT_TERMINAL_IDENTIFIER: &'static [u8; 9usize] = b"2.5.4.22\0";
pub const szOID_FACSIMILE_TELEPHONE_NUMBER: &'static [u8; 9usize] = b"2.5.4.23\0";
pub const szOID_X21_ADDRESS: &'static [u8; 9usize] = b"2.5.4.24\0";
pub const szOID_INTERNATIONAL_ISDN_NUMBER: &'static [u8; 9usize] = b"2.5.4.25\0";
pub const szOID_REGISTERED_ADDRESS: &'static [u8; 9usize] = b"2.5.4.26\0";
pub const szOID_DESTINATION_INDICATOR: &'static [u8; 9usize] = b"2.5.4.27\0";
pub const szOID_PREFERRED_DELIVERY_METHOD: &'static [u8; 9usize] = b"2.5.4.28\0";
pub const szOID_PRESENTATION_ADDRESS: &'static [u8; 9usize] = b"2.5.4.29\0";
pub const szOID_SUPPORTED_APPLICATION_CONTEXT: &'static [u8; 9usize] = b"2.5.4.30\0";
pub const szOID_MEMBER: &'static [u8; 9usize] = b"2.5.4.31\0";
pub const szOID_OWNER: &'static [u8; 9usize] = b"2.5.4.32\0";
pub const szOID_ROLE_OCCUPANT: &'static [u8; 9usize] = b"2.5.4.33\0";
pub const szOID_SEE_ALSO: &'static [u8; 9usize] = b"2.5.4.34\0";
pub const szOID_USER_PASSWORD: &'static [u8; 9usize] = b"2.5.4.35\0";
pub const szOID_USER_CERTIFICATE: &'static [u8; 9usize] = b"2.5.4.36\0";
pub const szOID_CA_CERTIFICATE: &'static [u8; 9usize] = b"2.5.4.37\0";
pub const szOID_AUTHORITY_REVOCATION_LIST: &'static [u8; 9usize] = b"2.5.4.38\0";
pub const szOID_CERTIFICATE_REVOCATION_LIST: &'static [u8; 9usize] = b"2.5.4.39\0";
pub const szOID_CROSS_CERTIFICATE_PAIR: &'static [u8; 9usize] = b"2.5.4.40\0";
pub const szOID_GIVEN_NAME: &'static [u8; 9usize] = b"2.5.4.42\0";
pub const szOID_INITIALS: &'static [u8; 9usize] = b"2.5.4.43\0";
pub const szOID_DN_QUALIFIER: &'static [u8; 9usize] = b"2.5.4.46\0";
pub const szOID_DOMAIN_COMPONENT: &'static [u8; 27usize] = b"0.9.2342.19200300.100.1.25\0";
pub const szOID_PKCS_12_FRIENDLY_NAME_ATTR: &'static [u8; 22usize] = b"1.2.840.113549.1.9.20\0";
pub const szOID_PKCS_12_LOCAL_KEY_ID: &'static [u8; 22usize] = b"1.2.840.113549.1.9.21\0";
pub const szOID_PKCS_12_KEY_PROVIDER_NAME_ATTR: &'static [u8; 21usize] = b"1.3.6.1.4.1.311.17.1\0";
pub const szOID_LOCAL_MACHINE_KEYSET: &'static [u8; 21usize] = b"1.3.6.1.4.1.311.17.2\0";
pub const szOID_PKCS_12_EXTENDED_ATTRIBUTES: &'static [u8; 21usize] = b"1.3.6.1.4.1.311.17.3\0";
pub const szOID_PKCS_12_PROTECTED_PASSWORD_SECRET_BAG_TYPE_ID: &'static [u8; 21usize] =
    b"1.3.6.1.4.1.311.17.4\0";
pub const szOID_KEYID_RDN: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.10.7.1\0";
pub const szOID_EV_RDN_LOCALE: &'static [u8; 25usize] = b"1.3.6.1.4.1.311.60.2.1.1\0";
pub const szOID_EV_RDN_STATE_OR_PROVINCE: &'static [u8; 25usize] = b"1.3.6.1.4.1.311.60.2.1.2\0";
pub const szOID_EV_RDN_COUNTRY: &'static [u8; 25usize] = b"1.3.6.1.4.1.311.60.2.1.3\0";
pub const CERT_RDN_ANY_TYPE: u32 = 0;
pub const CERT_RDN_ENCODED_BLOB: u32 = 1;
pub const CERT_RDN_OCTET_STRING: u32 = 2;
pub const CERT_RDN_NUMERIC_STRING: u32 = 3;
pub const CERT_RDN_PRINTABLE_STRING: u32 = 4;
pub const CERT_RDN_TELETEX_STRING: u32 = 5;
pub const CERT_RDN_T61_STRING: u32 = 5;
pub const CERT_RDN_VIDEOTEX_STRING: u32 = 6;
pub const CERT_RDN_IA5_STRING: u32 = 7;
pub const CERT_RDN_GRAPHIC_STRING: u32 = 8;
pub const CERT_RDN_VISIBLE_STRING: u32 = 9;
pub const CERT_RDN_ISO646_STRING: u32 = 9;
pub const CERT_RDN_GENERAL_STRING: u32 = 10;
pub const CERT_RDN_UNIVERSAL_STRING: u32 = 11;
pub const CERT_RDN_INT4_STRING: u32 = 11;
pub const CERT_RDN_BMP_STRING: u32 = 12;
pub const CERT_RDN_UNICODE_STRING: u32 = 12;
pub const CERT_RDN_UTF8_STRING: u32 = 13;
pub const CERT_RDN_TYPE_MASK: u32 = 255;
pub const CERT_RDN_FLAGS_MASK: u32 = 4278190080;
pub const CERT_RDN_ENABLE_T61_UNICODE_FLAG: u32 = 2147483648;
pub const CERT_RDN_ENABLE_UTF8_UNICODE_FLAG: u32 = 536870912;
pub const CERT_RDN_FORCE_UTF8_UNICODE_FLAG: u32 = 268435456;
pub const CERT_RDN_DISABLE_CHECK_TYPE_FLAG: u32 = 1073741824;
pub const CERT_RDN_DISABLE_IE4_UTF8_FLAG: u32 = 16777216;
pub const CERT_RDN_ENABLE_PUNYCODE_FLAG: u32 = 33554432;
pub const CERT_RSA_PUBLIC_KEY_OBJID: &'static [u8; 21usize] = b"1.2.840.113549.1.1.1\0";
pub const CERT_DEFAULT_OID_PUBLIC_KEY_SIGN: &'static [u8; 21usize] = b"1.2.840.113549.1.1.1\0";
pub const CERT_DEFAULT_OID_PUBLIC_KEY_XCHG: &'static [u8; 21usize] = b"1.2.840.113549.1.1.1\0";
pub const CRYPT_ECC_PRIVATE_KEY_INFO_v1: u32 = 1;
pub const CERT_V1: u32 = 0;
pub const CERT_V2: u32 = 1;
pub const CERT_V3: u32 = 2;
pub const CERT_INFO_VERSION_FLAG: u32 = 1;
pub const CERT_INFO_SERIAL_NUMBER_FLAG: u32 = 2;
pub const CERT_INFO_SIGNATURE_ALGORITHM_FLAG: u32 = 3;
pub const CERT_INFO_ISSUER_FLAG: u32 = 4;
pub const CERT_INFO_NOT_BEFORE_FLAG: u32 = 5;
pub const CERT_INFO_NOT_AFTER_FLAG: u32 = 6;
pub const CERT_INFO_SUBJECT_FLAG: u32 = 7;
pub const CERT_INFO_SUBJECT_PUBLIC_KEY_INFO_FLAG: u32 = 8;
pub const CERT_INFO_ISSUER_UNIQUE_ID_FLAG: u32 = 9;
pub const CERT_INFO_SUBJECT_UNIQUE_ID_FLAG: u32 = 10;
pub const CERT_INFO_EXTENSION_FLAG: u32 = 11;
pub const CRL_V1: u32 = 0;
pub const CRL_V2: u32 = 1;
pub const CERT_BUNDLE_CERTIFICATE: u32 = 0;
pub const CERT_BUNDLE_CRL: u32 = 1;
pub const CERT_REQUEST_V1: u32 = 0;
pub const CERT_KEYGEN_REQUEST_V1: u32 = 0;
pub const CTL_V1: u32 = 0;
pub const CERT_ENCODING_TYPE_MASK: u32 = 65535;
pub const CMSG_ENCODING_TYPE_MASK: u32 = 4294901760;
pub const CRYPT_ASN_ENCODING: u32 = 1;
pub const CRYPT_NDR_ENCODING: u32 = 2;
pub const X509_ASN_ENCODING: u32 = 1;
pub const X509_NDR_ENCODING: u32 = 2;
pub const PKCS_7_ASN_ENCODING: u32 = 65536;
pub const PKCS_7_NDR_ENCODING: u32 = 131072;
pub const CRYPT_FORMAT_STR_MULTI_LINE: u32 = 1;
pub const CRYPT_FORMAT_STR_NO_HEX: u32 = 16;
pub const CRYPT_FORMAT_SIMPLE: u32 = 1;
pub const CRYPT_FORMAT_X509: u32 = 2;
pub const CRYPT_FORMAT_OID: u32 = 4;
pub const CRYPT_FORMAT_RDN_SEMICOLON: u32 = 256;
pub const CRYPT_FORMAT_RDN_CRLF: u32 = 512;
pub const CRYPT_FORMAT_RDN_UNQUOTE: u32 = 1024;
pub const CRYPT_FORMAT_RDN_REVERSE: u32 = 2048;
pub const CRYPT_FORMAT_COMMA: u32 = 4096;
pub const CRYPT_FORMAT_SEMICOLON: u32 = 256;
pub const CRYPT_FORMAT_CRLF: u32 = 512;
pub const CRYPT_ENCODE_NO_SIGNATURE_BYTE_REVERSAL_FLAG: u32 = 8;
pub const CRYPT_ENCODE_ALLOC_FLAG: u32 = 32768;
pub const CRYPT_UNICODE_NAME_ENCODE_ENABLE_T61_UNICODE_FLAG: u32 = 2147483648;
pub const CRYPT_UNICODE_NAME_ENCODE_ENABLE_UTF8_UNICODE_FLAG: u32 = 536870912;
pub const CRYPT_UNICODE_NAME_ENCODE_FORCE_UTF8_UNICODE_FLAG: u32 = 268435456;
pub const CRYPT_UNICODE_NAME_ENCODE_DISABLE_CHECK_TYPE_FLAG: u32 = 1073741824;
pub const CRYPT_SORTED_CTL_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG: u32 = 65536;
pub const CRYPT_ENCODE_ENABLE_PUNYCODE_FLAG: u32 = 131072;
pub const CRYPT_ENCODE_ENABLE_UTF8PERCENT_FLAG: u32 = 262144;
pub const CRYPT_ENCODE_ENABLE_IA5CONVERSION_FLAG: u32 = 393216;
pub const CRYPT_DECODE_NOCOPY_FLAG: u32 = 1;
pub const CRYPT_DECODE_TO_BE_SIGNED_FLAG: u32 = 2;
pub const CRYPT_DECODE_SHARE_OID_STRING_FLAG: u32 = 4;
pub const CRYPT_DECODE_NO_SIGNATURE_BYTE_REVERSAL_FLAG: u32 = 8;
pub const CRYPT_DECODE_ALLOC_FLAG: u32 = 32768;
pub const CRYPT_UNICODE_NAME_DECODE_DISABLE_IE4_UTF8_FLAG: u32 = 16777216;
pub const CRYPT_DECODE_ENABLE_PUNYCODE_FLAG: u32 = 33554432;
pub const CRYPT_DECODE_ENABLE_UTF8PERCENT_FLAG: u32 = 67108864;
pub const CRYPT_DECODE_ENABLE_IA5CONVERSION_FLAG: u32 = 100663296;
pub const CRYPT_ENCODE_DECODE_NONE: u32 = 0;
pub const szOID_AUTHORITY_KEY_IDENTIFIER: &'static [u8; 9usize] = b"2.5.29.1\0";
pub const szOID_KEY_ATTRIBUTES: &'static [u8; 9usize] = b"2.5.29.2\0";
pub const szOID_CERT_POLICIES_95: &'static [u8; 9usize] = b"2.5.29.3\0";
pub const szOID_KEY_USAGE_RESTRICTION: &'static [u8; 9usize] = b"2.5.29.4\0";
pub const szOID_SUBJECT_ALT_NAME: &'static [u8; 9usize] = b"2.5.29.7\0";
pub const szOID_ISSUER_ALT_NAME: &'static [u8; 9usize] = b"2.5.29.8\0";
pub const szOID_BASIC_CONSTRAINTS: &'static [u8; 10usize] = b"2.5.29.10\0";
pub const szOID_KEY_USAGE: &'static [u8; 10usize] = b"2.5.29.15\0";
pub const szOID_PRIVATEKEY_USAGE_PERIOD: &'static [u8; 10usize] = b"2.5.29.16\0";
pub const szOID_BASIC_CONSTRAINTS2: &'static [u8; 10usize] = b"2.5.29.19\0";
pub const szOID_CERT_POLICIES: &'static [u8; 10usize] = b"2.5.29.32\0";
pub const szOID_ANY_CERT_POLICY: &'static [u8; 12usize] = b"2.5.29.32.0\0";
pub const szOID_INHIBIT_ANY_POLICY: &'static [u8; 10usize] = b"2.5.29.54\0";
pub const szOID_AUTHORITY_KEY_IDENTIFIER2: &'static [u8; 10usize] = b"2.5.29.35\0";
pub const szOID_SUBJECT_KEY_IDENTIFIER: &'static [u8; 10usize] = b"2.5.29.14\0";
pub const szOID_SUBJECT_ALT_NAME2: &'static [u8; 10usize] = b"2.5.29.17\0";
pub const szOID_ISSUER_ALT_NAME2: &'static [u8; 10usize] = b"2.5.29.18\0";
pub const szOID_CRL_REASON_CODE: &'static [u8; 10usize] = b"2.5.29.21\0";
pub const szOID_REASON_CODE_HOLD: &'static [u8; 10usize] = b"2.5.29.23\0";
pub const szOID_CRL_DIST_POINTS: &'static [u8; 10usize] = b"2.5.29.31\0";
pub const szOID_ENHANCED_KEY_USAGE: &'static [u8; 10usize] = b"2.5.29.37\0";
pub const szOID_ANY_ENHANCED_KEY_USAGE: &'static [u8; 12usize] = b"2.5.29.37.0\0";
pub const szOID_CRL_NUMBER: &'static [u8; 10usize] = b"2.5.29.20\0";
pub const szOID_DELTA_CRL_INDICATOR: &'static [u8; 10usize] = b"2.5.29.27\0";
pub const szOID_ISSUING_DIST_POINT: &'static [u8; 10usize] = b"2.5.29.28\0";
pub const szOID_FRESHEST_CRL: &'static [u8; 10usize] = b"2.5.29.46\0";
pub const szOID_NAME_CONSTRAINTS: &'static [u8; 10usize] = b"2.5.29.30\0";
pub const szOID_POLICY_MAPPINGS: &'static [u8; 10usize] = b"2.5.29.33\0";
pub const szOID_LEGACY_POLICY_MAPPINGS: &'static [u8; 9usize] = b"2.5.29.5\0";
pub const szOID_POLICY_CONSTRAINTS: &'static [u8; 10usize] = b"2.5.29.36\0";
pub const szOID_RENEWAL_CERTIFICATE: &'static [u8; 21usize] = b"1.3.6.1.4.1.311.13.1\0";
pub const szOID_ENROLLMENT_NAME_VALUE_PAIR: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.13.2.1\0";
pub const szOID_ENROLLMENT_CSP_PROVIDER: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.13.2.2\0";
pub const szOID_OS_VERSION: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.13.2.3\0";
pub const szOID_ENROLLMENT_AGENT: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.20.2.1\0";
pub const szOID_PKIX: &'static [u8; 14usize] = b"1.3.6.1.5.5.7\0";
pub const szOID_PKIX_PE: &'static [u8; 16usize] = b"1.3.6.1.5.5.7.1\0";
pub const szOID_AUTHORITY_INFO_ACCESS: &'static [u8; 18usize] = b"1.3.6.1.5.5.7.1.1\0";
pub const szOID_SUBJECT_INFO_ACCESS: &'static [u8; 19usize] = b"1.3.6.1.5.5.7.1.11\0";
pub const szOID_BIOMETRIC_EXT: &'static [u8; 18usize] = b"1.3.6.1.5.5.7.1.2\0";
pub const szOID_QC_STATEMENTS_EXT: &'static [u8; 18usize] = b"1.3.6.1.5.5.7.1.3\0";
pub const szOID_LOGOTYPE_EXT: &'static [u8; 19usize] = b"1.3.6.1.5.5.7.1.12\0";
pub const szOID_TLS_FEATURES_EXT: &'static [u8; 19usize] = b"1.3.6.1.5.5.7.1.24\0";
pub const szOID_CERT_EXTENSIONS: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.2.1.14\0";
pub const szOID_NEXT_UPDATE_LOCATION: &'static [u8; 21usize] = b"1.3.6.1.4.1.311.10.2\0";
pub const szOID_REMOVE_CERTIFICATE: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.10.8.1\0";
pub const szOID_CROSS_CERT_DIST_POINTS: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.10.9.1\0";
pub const szOID_CTL: &'static [u8; 21usize] = b"1.3.6.1.4.1.311.10.1\0";
pub const szOID_SORTED_CTL: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.10.1.1\0";
pub const szOID_SERIALIZED: &'static [u8; 25usize] = b"1.3.6.1.4.1.311.10.3.3.1\0";
pub const szOID_NT_PRINCIPAL_NAME: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.20.2.3\0";
pub const szOID_INTERNATIONALIZED_EMAIL_ADDRESS: &'static [u8; 23usize] =
    b"1.3.6.1.4.1.311.20.2.4\0";
pub const szOID_PRODUCT_UPDATE: &'static [u8; 21usize] = b"1.3.6.1.4.1.311.31.1\0";
pub const szOID_ANY_APPLICATION_POLICY: &'static [u8; 24usize] = b"1.3.6.1.4.1.311.10.12.1\0";
pub const szOID_AUTO_ENROLL_CTL_USAGE: &'static [u8; 21usize] = b"1.3.6.1.4.1.311.20.1\0";
pub const szOID_ENROLL_CERTTYPE_EXTENSION: &'static [u8; 21usize] = b"1.3.6.1.4.1.311.20.2\0";
pub const szOID_CERT_MANIFOLD: &'static [u8; 21usize] = b"1.3.6.1.4.1.311.20.3\0";
pub const szOID_CERTSRV_CA_VERSION: &'static [u8; 21usize] = b"1.3.6.1.4.1.311.21.1\0";
pub const szOID_CERTSRV_PREVIOUS_CERT_HASH: &'static [u8; 21usize] = b"1.3.6.1.4.1.311.21.2\0";
pub const szOID_CRL_VIRTUAL_BASE: &'static [u8; 21usize] = b"1.3.6.1.4.1.311.21.3\0";
pub const szOID_CRL_NEXT_PUBLISH: &'static [u8; 21usize] = b"1.3.6.1.4.1.311.21.4\0";
pub const szOID_KP_CA_EXCHANGE: &'static [u8; 21usize] = b"1.3.6.1.4.1.311.21.5\0";
pub const szOID_KP_PRIVACY_CA: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.36\0";
pub const szOID_KP_KEY_RECOVERY_AGENT: &'static [u8; 21usize] = b"1.3.6.1.4.1.311.21.6\0";
pub const szOID_CERTIFICATE_TEMPLATE: &'static [u8; 21usize] = b"1.3.6.1.4.1.311.21.7\0";
pub const szOID_ENTERPRISE_OID_ROOT: &'static [u8; 21usize] = b"1.3.6.1.4.1.311.21.8\0";
pub const szOID_RDN_DUMMY_SIGNER: &'static [u8; 21usize] = b"1.3.6.1.4.1.311.21.9\0";
pub const szOID_APPLICATION_CERT_POLICIES: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.10\0";
pub const szOID_APPLICATION_POLICY_MAPPINGS: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.11\0";
pub const szOID_APPLICATION_POLICY_CONSTRAINTS: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.12\0";
pub const szOID_ARCHIVED_KEY_ATTR: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.13\0";
pub const szOID_CRL_SELF_CDP: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.14\0";
pub const szOID_REQUIRE_CERT_CHAIN_POLICY: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.15\0";
pub const szOID_ARCHIVED_KEY_CERT_HASH: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.16\0";
pub const szOID_ISSUED_CERT_HASH: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.17\0";
pub const szOID_DS_EMAIL_REPLICATION: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.19\0";
pub const szOID_REQUEST_CLIENT_INFO: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.20\0";
pub const szOID_ENCRYPTED_KEY_HASH: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.21\0";
pub const szOID_CERTSRV_CROSSCA_VERSION: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.22\0";
pub const szOID_NTDS_REPLICATION: &'static [u8; 21usize] = b"1.3.6.1.4.1.311.25.1\0";
pub const szOID_SUBJECT_DIR_ATTRS: &'static [u8; 9usize] = b"2.5.29.9\0";
pub const szOID_PKIX_KP: &'static [u8; 16usize] = b"1.3.6.1.5.5.7.3\0";
pub const szOID_PKIX_KP_SERVER_AUTH: &'static [u8; 18usize] = b"1.3.6.1.5.5.7.3.1\0";
pub const szOID_PKIX_KP_CLIENT_AUTH: &'static [u8; 18usize] = b"1.3.6.1.5.5.7.3.2\0";
pub const szOID_PKIX_KP_CODE_SIGNING: &'static [u8; 18usize] = b"1.3.6.1.5.5.7.3.3\0";
pub const szOID_PKIX_KP_EMAIL_PROTECTION: &'static [u8; 18usize] = b"1.3.6.1.5.5.7.3.4\0";
pub const szOID_PKIX_KP_IPSEC_END_SYSTEM: &'static [u8; 18usize] = b"1.3.6.1.5.5.7.3.5\0";
pub const szOID_PKIX_KP_IPSEC_TUNNEL: &'static [u8; 18usize] = b"1.3.6.1.5.5.7.3.6\0";
pub const szOID_PKIX_KP_IPSEC_USER: &'static [u8; 18usize] = b"1.3.6.1.5.5.7.3.7\0";
pub const szOID_PKIX_KP_TIMESTAMP_SIGNING: &'static [u8; 18usize] = b"1.3.6.1.5.5.7.3.8\0";
pub const szOID_PKIX_KP_OCSP_SIGNING: &'static [u8; 18usize] = b"1.3.6.1.5.5.7.3.9\0";
pub const szOID_PKIX_OCSP_NOCHECK: &'static [u8; 21usize] = b"1.3.6.1.5.5.7.48.1.5\0";
pub const szOID_PKIX_OCSP_NONCE: &'static [u8; 21usize] = b"1.3.6.1.5.5.7.48.1.2\0";
pub const szOID_IPSEC_KP_IKE_INTERMEDIATE: &'static [u8; 18usize] = b"1.3.6.1.5.5.8.2.2\0";
pub const szOID_PKINIT_KP_KDC: &'static [u8; 16usize] = b"1.3.6.1.5.2.3.5\0";
pub const szOID_KP_CTL_USAGE_SIGNING: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.10.3.1\0";
pub const szOID_KP_TIME_STAMP_SIGNING: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.10.3.2\0";
pub const szOID_SERVER_GATED_CRYPTO: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.10.3.3\0";
pub const szOID_SGC_NETSCAPE: &'static [u8; 22usize] = b"2.16.840.1.113730.4.1\0";
pub const szOID_KP_EFS: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.10.3.4\0";
pub const szOID_EFS_RECOVERY: &'static [u8; 25usize] = b"1.3.6.1.4.1.311.10.3.4.1\0";
pub const szOID_WHQL_CRYPTO: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.10.3.5\0";
pub const szOID_ATTEST_WHQL_CRYPTO: &'static [u8; 25usize] = b"1.3.6.1.4.1.311.10.3.5.1\0";
pub const szOID_NT5_CRYPTO: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.10.3.6\0";
pub const szOID_OEM_WHQL_CRYPTO: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.10.3.7\0";
pub const szOID_EMBEDDED_NT_CRYPTO: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.10.3.8\0";
pub const szOID_ROOT_LIST_SIGNER: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.10.3.9\0";
pub const szOID_KP_QUALIFIED_SUBORDINATION: &'static [u8; 24usize] = b"1.3.6.1.4.1.311.10.3.10\0";
pub const szOID_KP_KEY_RECOVERY: &'static [u8; 24usize] = b"1.3.6.1.4.1.311.10.3.11\0";
pub const szOID_KP_DOCUMENT_SIGNING: &'static [u8; 24usize] = b"1.3.6.1.4.1.311.10.3.12\0";
pub const szOID_KP_LIFETIME_SIGNING: &'static [u8; 24usize] = b"1.3.6.1.4.1.311.10.3.13\0";
pub const szOID_KP_MOBILE_DEVICE_SOFTWARE: &'static [u8; 24usize] = b"1.3.6.1.4.1.311.10.3.14\0";
pub const szOID_KP_SMART_DISPLAY: &'static [u8; 24usize] = b"1.3.6.1.4.1.311.10.3.15\0";
pub const szOID_KP_CSP_SIGNATURE: &'static [u8; 24usize] = b"1.3.6.1.4.1.311.10.3.16\0";
pub const szOID_KP_FLIGHT_SIGNING: &'static [u8; 24usize] = b"1.3.6.1.4.1.311.10.3.27\0";
pub const szOID_PLATFORM_MANIFEST_BINARY_ID: &'static [u8; 24usize] = b"1.3.6.1.4.1.311.10.3.28\0";
pub const szOID_DRM: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.10.5.1\0";
pub const szOID_DRM_INDIVIDUALIZATION: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.10.5.2\0";
pub const szOID_LICENSES: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.10.6.1\0";
pub const szOID_LICENSE_SERVER: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.10.6.2\0";
pub const szOID_KP_SMARTCARD_LOGON: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.20.2.2\0";
pub const szOID_KP_KERNEL_MODE_CODE_SIGNING: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.61.1.1\0";
pub const szOID_KP_KERNEL_MODE_TRUSTED_BOOT_SIGNING: &'static [u8; 23usize] =
    b"1.3.6.1.4.1.311.61.4.1\0";
pub const szOID_REVOKED_LIST_SIGNER: &'static [u8; 24usize] = b"1.3.6.1.4.1.311.10.3.19\0";
pub const szOID_WINDOWS_KITS_SIGNER: &'static [u8; 24usize] = b"1.3.6.1.4.1.311.10.3.20\0";
pub const szOID_WINDOWS_RT_SIGNER: &'static [u8; 24usize] = b"1.3.6.1.4.1.311.10.3.21\0";
pub const szOID_PROTECTED_PROCESS_LIGHT_SIGNER: &'static [u8; 24usize] =
    b"1.3.6.1.4.1.311.10.3.22\0";
pub const szOID_WINDOWS_TCB_SIGNER: &'static [u8; 24usize] = b"1.3.6.1.4.1.311.10.3.23\0";
pub const szOID_PROTECTED_PROCESS_SIGNER: &'static [u8; 24usize] = b"1.3.6.1.4.1.311.10.3.24\0";
pub const szOID_WINDOWS_THIRD_PARTY_COMPONENT_SIGNER: &'static [u8; 24usize] =
    b"1.3.6.1.4.1.311.10.3.25\0";
pub const szOID_WINDOWS_SOFTWARE_EXTENSION_SIGNER: &'static [u8; 24usize] =
    b"1.3.6.1.4.1.311.10.3.26\0";
pub const szOID_DISALLOWED_LIST: &'static [u8; 24usize] = b"1.3.6.1.4.1.311.10.3.30\0";
pub const szOID_PIN_RULES_SIGNER: &'static [u8; 24usize] = b"1.3.6.1.4.1.311.10.3.31\0";
pub const szOID_PIN_RULES_CTL: &'static [u8; 24usize] = b"1.3.6.1.4.1.311.10.3.32\0";
pub const szOID_PIN_RULES_EXT: &'static [u8; 24usize] = b"1.3.6.1.4.1.311.10.3.33\0";
pub const szOID_PIN_RULES_DOMAIN_NAME: &'static [u8; 24usize] = b"1.3.6.1.4.1.311.10.3.34\0";
pub const szOID_PIN_RULES_LOG_END_DATE_EXT: &'static [u8; 24usize] = b"1.3.6.1.4.1.311.10.3.35\0";
pub const szOID_IUM_SIGNING: &'static [u8; 24usize] = b"1.3.6.1.4.1.311.10.3.37\0";
pub const szOID_EV_WHQL_CRYPTO: &'static [u8; 24usize] = b"1.3.6.1.4.1.311.10.3.39\0";
pub const szOID_BIOMETRIC_SIGNING: &'static [u8; 24usize] = b"1.3.6.1.4.1.311.10.3.41\0";
pub const szOID_ENCLAVE_SIGNING: &'static [u8; 24usize] = b"1.3.6.1.4.1.311.10.3.42\0";
pub const szOID_SYNC_ROOT_CTL_EXT: &'static [u8; 24usize] = b"1.3.6.1.4.1.311.10.3.50\0";
pub const szOID_HPKP_DOMAIN_NAME_CTL: &'static [u8; 24usize] = b"1.3.6.1.4.1.311.10.3.60\0";
pub const szOID_HPKP_HEADER_VALUE_CTL: &'static [u8; 24usize] = b"1.3.6.1.4.1.311.10.3.61\0";
pub const szOID_KP_KERNEL_MODE_HAL_EXTENSION_SIGNING: &'static [u8; 23usize] =
    b"1.3.6.1.4.1.311.61.5.1\0";
pub const szOID_WINDOWS_STORE_SIGNER: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.76.3.1\0";
pub const szOID_DYNAMIC_CODE_GEN_SIGNER: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.76.5.1\0";
pub const szOID_MICROSOFT_PUBLISHER_SIGNER: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.76.8.1\0";
pub const szOID_YESNO_TRUST_ATTR: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.10.4.1\0";
pub const szOID_SITE_PIN_RULES_INDEX_ATTR: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.10.4.2\0";
pub const szOID_SITE_PIN_RULES_FLAGS_ATTR: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.10.4.3\0";
pub const SITE_PIN_RULES_ALL_SUBDOMAINS_FLAG: u32 = 1;
pub const szOID_PKIX_POLICY_QUALIFIER_CPS: &'static [u8; 18usize] = b"1.3.6.1.5.5.7.2.1\0";
pub const szOID_PKIX_POLICY_QUALIFIER_USERNOTICE: &'static [u8; 18usize] = b"1.3.6.1.5.5.7.2.2\0";
pub const szOID_ROOT_PROGRAM_FLAGS: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.60.1.1\0";
pub const CERT_ROOT_PROGRAM_FLAG_ORG: u32 = 128;
pub const CERT_ROOT_PROGRAM_FLAG_LSC: u32 = 64;
pub const CERT_ROOT_PROGRAM_FLAG_SUBJECT_LOGO: u32 = 32;
pub const CERT_ROOT_PROGRAM_FLAG_OU: u32 = 16;
pub const CERT_ROOT_PROGRAM_FLAG_ADDRESS: u32 = 8;
pub const szOID_CERT_POLICIES_95_QUALIFIER1: &'static [u8; 26usize] =
    b"2.16.840.1.113733.1.7.1.1\0";
pub const szOID_RDN_TPM_MANUFACTURER: &'static [u8; 13usize] = b"2.23.133.2.1\0";
pub const szOID_RDN_TPM_MODEL: &'static [u8; 13usize] = b"2.23.133.2.2\0";
pub const szOID_RDN_TPM_VERSION: &'static [u8; 13usize] = b"2.23.133.2.3\0";
pub const szOID_RDN_TCG_PLATFORM_MANUFACTURER: &'static [u8; 13usize] = b"2.23.133.2.4\0";
pub const szOID_RDN_TCG_PLATFORM_MODEL: &'static [u8; 13usize] = b"2.23.133.2.5\0";
pub const szOID_RDN_TCG_PLATFORM_VERSION: &'static [u8; 13usize] = b"2.23.133.2.6\0";
pub const szOID_CT_CERT_SCTLIST: &'static [u8; 24usize] = b"1.3.6.1.4.1.11129.2.4.2\0";
pub const szOID_ENROLL_EK_INFO: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.23\0";
pub const szOID_ENROLL_AIK_INFO: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.39\0";
pub const szOID_ENROLL_ATTESTATION_STATEMENT: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.24\0";
pub const szOID_ENROLL_KSP_NAME: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.25\0";
pub const szOID_ENROLL_EKPUB_CHALLENGE: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.26\0";
pub const szOID_ENROLL_CAXCHGCERT_HASH: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.27\0";
pub const szOID_ENROLL_ATTESTATION_CHALLENGE: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.28\0";
pub const szOID_ENROLL_ENCRYPTION_ALGORITHM: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.29\0";
pub const szOID_KP_TPM_EK_CERTIFICATE: &'static [u8; 13usize] = b"2.23.133.8.1\0";
pub const szOID_KP_TPM_PLATFORM_CERTIFICATE: &'static [u8; 13usize] = b"2.23.133.8.2\0";
pub const szOID_KP_TPM_AIK_CERTIFICATE: &'static [u8; 13usize] = b"2.23.133.8.3\0";
pub const szOID_ENROLL_EKVERIFYKEY: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.30\0";
pub const szOID_ENROLL_EKVERIFYCERT: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.31\0";
pub const szOID_ENROLL_EKVERIFYCREDS: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.32\0";
pub const szOID_ENROLL_SCEP_ERROR: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.33\0";
pub const szOID_ENROLL_SCEP_SERVER_STATE: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.34\0";
pub const szOID_ENROLL_SCEP_CHALLENGE_ANSWER: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.35\0";
pub const szOID_ENROLL_SCEP_CLIENT_REQUEST: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.37\0";
pub const szOID_ENROLL_SCEP_SERVER_MESSAGE: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.38\0";
pub const szOID_ENROLL_SCEP_SERVER_SECRET: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.40\0";
pub const szOID_ENROLL_KEY_AFFINITY: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.41\0";
pub const szOID_ENROLL_SCEP_SIGNER_HASH: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.42\0";
pub const szOID_ENROLL_EK_CA_KEYID: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.21.43\0";
pub const szOID_ATTR_SUPPORTED_ALGORITHMS: &'static [u8; 9usize] = b"2.5.4.52\0";
pub const szOID_ATTR_TPM_SPECIFICATION: &'static [u8; 14usize] = b"2.23.133.2.16\0";
pub const szOID_ATTR_PLATFORM_SPECIFICATION: &'static [u8; 14usize] = b"2.23.133.2.17\0";
pub const szOID_ATTR_TPM_SECURITY_ASSERTIONS: &'static [u8; 14usize] = b"2.23.133.2.18\0";
pub const CERT_UNICODE_RDN_ERR_INDEX_MASK: u32 = 1023;
pub const CERT_UNICODE_RDN_ERR_INDEX_SHIFT: u32 = 22;
pub const CERT_UNICODE_ATTR_ERR_INDEX_MASK: u32 = 63;
pub const CERT_UNICODE_ATTR_ERR_INDEX_SHIFT: u32 = 16;
pub const CERT_UNICODE_VALUE_ERR_INDEX_MASK: u32 = 65535;
pub const CERT_UNICODE_VALUE_ERR_INDEX_SHIFT: u32 = 0;
pub const CERT_DIGITAL_SIGNATURE_KEY_USAGE: u32 = 128;
pub const CERT_NON_REPUDIATION_KEY_USAGE: u32 = 64;
pub const CERT_KEY_ENCIPHERMENT_KEY_USAGE: u32 = 32;
pub const CERT_DATA_ENCIPHERMENT_KEY_USAGE: u32 = 16;
pub const CERT_KEY_AGREEMENT_KEY_USAGE: u32 = 8;
pub const CERT_KEY_CERT_SIGN_KEY_USAGE: u32 = 4;
pub const CERT_OFFLINE_CRL_SIGN_KEY_USAGE: u32 = 2;
pub const CERT_CRL_SIGN_KEY_USAGE: u32 = 2;
pub const CERT_ENCIPHER_ONLY_KEY_USAGE: u32 = 1;
pub const CERT_DECIPHER_ONLY_KEY_USAGE: u32 = 128;
pub const CERT_ALT_NAME_OTHER_NAME: u32 = 1;
pub const CERT_ALT_NAME_RFC822_NAME: u32 = 2;
pub const CERT_ALT_NAME_DNS_NAME: u32 = 3;
pub const CERT_ALT_NAME_X400_ADDRESS: u32 = 4;
pub const CERT_ALT_NAME_DIRECTORY_NAME: u32 = 5;
pub const CERT_ALT_NAME_EDI_PARTY_NAME: u32 = 6;
pub const CERT_ALT_NAME_URL: u32 = 7;
pub const CERT_ALT_NAME_IP_ADDRESS: u32 = 8;
pub const CERT_ALT_NAME_REGISTERED_ID: u32 = 9;
pub const CERT_ALT_NAME_ENTRY_ERR_INDEX_MASK: u32 = 255;
pub const CERT_ALT_NAME_ENTRY_ERR_INDEX_SHIFT: u32 = 16;
pub const CERT_ALT_NAME_VALUE_ERR_INDEX_MASK: u32 = 65535;
pub const CERT_ALT_NAME_VALUE_ERR_INDEX_SHIFT: u32 = 0;
pub const CERT_CA_SUBJECT_FLAG: u32 = 128;
pub const CERT_END_ENTITY_SUBJECT_FLAG: u32 = 64;
pub const szOID_PKIX_ACC_DESCR: &'static [u8; 17usize] = b"1.3.6.1.5.5.7.48\0";
pub const szOID_PKIX_OCSP: &'static [u8; 19usize] = b"1.3.6.1.5.5.7.48.1\0";
pub const szOID_PKIX_CA_ISSUERS: &'static [u8; 19usize] = b"1.3.6.1.5.5.7.48.2\0";
pub const szOID_PKIX_TIME_STAMPING: &'static [u8; 19usize] = b"1.3.6.1.5.5.7.48.3\0";
pub const szOID_PKIX_CA_REPOSITORY: &'static [u8; 19usize] = b"1.3.6.1.5.5.7.48.5\0";
pub const CRL_REASON_UNSPECIFIED: u32 = 0;
pub const CRL_REASON_KEY_COMPROMISE: u32 = 1;
pub const CRL_REASON_CA_COMPROMISE: u32 = 2;
pub const CRL_REASON_AFFILIATION_CHANGED: u32 = 3;
pub const CRL_REASON_SUPERSEDED: u32 = 4;
pub const CRL_REASON_CESSATION_OF_OPERATION: u32 = 5;
pub const CRL_REASON_CERTIFICATE_HOLD: u32 = 6;
pub const CRL_REASON_REMOVE_FROM_CRL: u32 = 8;
pub const CRL_REASON_PRIVILEGE_WITHDRAWN: u32 = 9;
pub const CRL_REASON_AA_COMPROMISE: u32 = 10;
pub const CRL_DIST_POINT_NO_NAME: u32 = 0;
pub const CRL_DIST_POINT_FULL_NAME: u32 = 1;
pub const CRL_DIST_POINT_ISSUER_RDN_NAME: u32 = 2;
pub const CRL_REASON_UNUSED_FLAG: u32 = 128;
pub const CRL_REASON_KEY_COMPROMISE_FLAG: u32 = 64;
pub const CRL_REASON_CA_COMPROMISE_FLAG: u32 = 32;
pub const CRL_REASON_AFFILIATION_CHANGED_FLAG: u32 = 16;
pub const CRL_REASON_SUPERSEDED_FLAG: u32 = 8;
pub const CRL_REASON_CESSATION_OF_OPERATION_FLAG: u32 = 4;
pub const CRL_REASON_CERTIFICATE_HOLD_FLAG: u32 = 2;
pub const CRL_REASON_PRIVILEGE_WITHDRAWN_FLAG: u32 = 1;
pub const CRL_REASON_AA_COMPROMISE_FLAG: u32 = 128;
pub const CRL_DIST_POINT_ERR_INDEX_MASK: u32 = 127;
pub const CRL_DIST_POINT_ERR_INDEX_SHIFT: u32 = 24;
pub const CRL_DIST_POINT_ERR_CRL_ISSUER_BIT: u32 = 2147483648;
pub const CROSS_CERT_DIST_POINT_ERR_INDEX_MASK: u32 = 255;
pub const CROSS_CERT_DIST_POINT_ERR_INDEX_SHIFT: u32 = 24;
pub const CERT_EXCLUDED_SUBTREE_BIT: u32 = 2147483648;
pub const SORTED_CTL_EXT_FLAGS_OFFSET: u32 = 0;
pub const SORTED_CTL_EXT_COUNT_OFFSET: u32 = 4;
pub const SORTED_CTL_EXT_MAX_COLLISION_OFFSET: u32 = 8;
pub const SORTED_CTL_EXT_HASH_BUCKET_OFFSET: u32 = 12;
pub const SORTED_CTL_EXT_HASHED_SUBJECT_IDENTIFIER_FLAG: u32 = 1;
pub const CERT_DSS_R_LEN: u32 = 20;
pub const CERT_DSS_S_LEN: u32 = 20;
pub const CERT_DSS_SIGNATURE_LEN: u32 = 40;
pub const CERT_MAX_ASN_ENCODED_DSS_SIGNATURE_LEN: u32 = 48;
pub const CRYPT_X942_COUNTER_BYTE_LENGTH: u32 = 4;
pub const CRYPT_X942_KEY_LENGTH_BYTE_LENGTH: u32 = 4;
pub const CRYPT_X942_PUB_INFO_BYTE_LENGTH: u32 = 64;
pub const CRYPT_ECC_CMS_SHARED_INFO_SUPPPUBINFO_BYTE_LENGTH: u32 = 4;
pub const CRYPT_RC2_40BIT_VERSION: u32 = 160;
pub const CRYPT_RC2_56BIT_VERSION: u32 = 52;
pub const CRYPT_RC2_64BIT_VERSION: u32 = 120;
pub const CRYPT_RC2_128BIT_VERSION: u32 = 58;
pub const szOID_QC_EU_COMPLIANCE: &'static [u8; 15usize] = b"0.4.0.1862.1.1\0";
pub const szOID_QC_SSCD: &'static [u8; 15usize] = b"0.4.0.1862.1.4\0";
pub const PKCS_RSA_SSA_PSS_TRAILER_FIELD_BC: u32 = 1;
pub const szOID_VERISIGN_PRIVATE_6_9: &'static [u8; 24usize] = b"2.16.840.1.113733.1.6.9\0";
pub const szOID_VERISIGN_ONSITE_JURISDICTION_HASH: &'static [u8; 25usize] =
    b"2.16.840.1.113733.1.6.11\0";
pub const szOID_VERISIGN_BITSTRING_6_13: &'static [u8; 25usize] = b"2.16.840.1.113733.1.6.13\0";
pub const szOID_VERISIGN_ISS_STRONG_CRYPTO: &'static [u8; 24usize] = b"2.16.840.1.113733.1.8.1\0";
pub const szOIDVerisign_MessageType: &'static [u8; 24usize] = b"2.16.840.1.113733.1.9.2\0";
pub const szOIDVerisign_PkiStatus: &'static [u8; 24usize] = b"2.16.840.1.113733.1.9.3\0";
pub const szOIDVerisign_FailInfo: &'static [u8; 24usize] = b"2.16.840.1.113733.1.9.4\0";
pub const szOIDVerisign_SenderNonce: &'static [u8; 24usize] = b"2.16.840.1.113733.1.9.5\0";
pub const szOIDVerisign_RecipientNonce: &'static [u8; 24usize] = b"2.16.840.1.113733.1.9.6\0";
pub const szOIDVerisign_TransactionID: &'static [u8; 24usize] = b"2.16.840.1.113733.1.9.7\0";
pub const szOID_NETSCAPE: &'static [u8; 18usize] = b"2.16.840.1.113730\0";
pub const szOID_NETSCAPE_CERT_EXTENSION: &'static [u8; 20usize] = b"2.16.840.1.113730.1\0";
pub const szOID_NETSCAPE_CERT_TYPE: &'static [u8; 22usize] = b"2.16.840.1.113730.1.1\0";
pub const szOID_NETSCAPE_BASE_URL: &'static [u8; 22usize] = b"2.16.840.1.113730.1.2\0";
pub const szOID_NETSCAPE_REVOCATION_URL: &'static [u8; 22usize] = b"2.16.840.1.113730.1.3\0";
pub const szOID_NETSCAPE_CA_REVOCATION_URL: &'static [u8; 22usize] = b"2.16.840.1.113730.1.4\0";
pub const szOID_NETSCAPE_CERT_RENEWAL_URL: &'static [u8; 22usize] = b"2.16.840.1.113730.1.7\0";
pub const szOID_NETSCAPE_CA_POLICY_URL: &'static [u8; 22usize] = b"2.16.840.1.113730.1.8\0";
pub const szOID_NETSCAPE_SSL_SERVER_NAME: &'static [u8; 23usize] = b"2.16.840.1.113730.1.12\0";
pub const szOID_NETSCAPE_COMMENT: &'static [u8; 23usize] = b"2.16.840.1.113730.1.13\0";
pub const szOID_NETSCAPE_DATA_TYPE: &'static [u8; 20usize] = b"2.16.840.1.113730.2\0";
pub const szOID_NETSCAPE_CERT_SEQUENCE: &'static [u8; 22usize] = b"2.16.840.1.113730.2.5\0";
pub const NETSCAPE_SSL_CLIENT_AUTH_CERT_TYPE: u32 = 128;
pub const NETSCAPE_SSL_SERVER_AUTH_CERT_TYPE: u32 = 64;
pub const NETSCAPE_SMIME_CERT_TYPE: u32 = 32;
pub const NETSCAPE_SIGN_CERT_TYPE: u32 = 16;
pub const NETSCAPE_SSL_CA_CERT_TYPE: u32 = 4;
pub const NETSCAPE_SMIME_CA_CERT_TYPE: u32 = 2;
pub const NETSCAPE_SIGN_CA_CERT_TYPE: u32 = 1;
pub const szOID_CT_PKI_DATA: &'static [u8; 19usize] = b"1.3.6.1.5.5.7.12.2\0";
pub const szOID_CT_PKI_RESPONSE: &'static [u8; 19usize] = b"1.3.6.1.5.5.7.12.3\0";
pub const szOID_PKIX_NO_SIGNATURE: &'static [u8; 18usize] = b"1.3.6.1.5.5.7.6.2\0";
pub const szOID_CMC: &'static [u8; 16usize] = b"1.3.6.1.5.5.7.7\0";
pub const szOID_CMC_STATUS_INFO: &'static [u8; 18usize] = b"1.3.6.1.5.5.7.7.1\0";
pub const szOID_CMC_IDENTIFICATION: &'static [u8; 18usize] = b"1.3.6.1.5.5.7.7.2\0";
pub const szOID_CMC_IDENTITY_PROOF: &'static [u8; 18usize] = b"1.3.6.1.5.5.7.7.3\0";
pub const szOID_CMC_DATA_RETURN: &'static [u8; 18usize] = b"1.3.6.1.5.5.7.7.4\0";
pub const szOID_CMC_TRANSACTION_ID: &'static [u8; 18usize] = b"1.3.6.1.5.5.7.7.5\0";
pub const szOID_CMC_SENDER_NONCE: &'static [u8; 18usize] = b"1.3.6.1.5.5.7.7.6\0";
pub const szOID_CMC_RECIPIENT_NONCE: &'static [u8; 18usize] = b"1.3.6.1.5.5.7.7.7\0";
pub const szOID_CMC_ADD_EXTENSIONS: &'static [u8; 18usize] = b"1.3.6.1.5.5.7.7.8\0";
pub const szOID_CMC_ENCRYPTED_POP: &'static [u8; 18usize] = b"1.3.6.1.5.5.7.7.9\0";
pub const szOID_CMC_DECRYPTED_POP: &'static [u8; 19usize] = b"1.3.6.1.5.5.7.7.10\0";
pub const szOID_CMC_LRA_POP_WITNESS: &'static [u8; 19usize] = b"1.3.6.1.5.5.7.7.11\0";
pub const szOID_CMC_GET_CERT: &'static [u8; 19usize] = b"1.3.6.1.5.5.7.7.15\0";
pub const szOID_CMC_GET_CRL: &'static [u8; 19usize] = b"1.3.6.1.5.5.7.7.16\0";
pub const szOID_CMC_REVOKE_REQUEST: &'static [u8; 19usize] = b"1.3.6.1.5.5.7.7.17\0";
pub const szOID_CMC_REG_INFO: &'static [u8; 19usize] = b"1.3.6.1.5.5.7.7.18\0";
pub const szOID_CMC_RESPONSE_INFO: &'static [u8; 19usize] = b"1.3.6.1.5.5.7.7.19\0";
pub const szOID_CMC_QUERY_PENDING: &'static [u8; 19usize] = b"1.3.6.1.5.5.7.7.21\0";
pub const szOID_CMC_ID_POP_LINK_RANDOM: &'static [u8; 19usize] = b"1.3.6.1.5.5.7.7.22\0";
pub const szOID_CMC_ID_POP_LINK_WITNESS: &'static [u8; 19usize] = b"1.3.6.1.5.5.7.7.23\0";
pub const szOID_CMC_ID_CONFIRM_CERT_ACCEPTANCE: &'static [u8; 19usize] = b"1.3.6.1.5.5.7.7.24\0";
pub const szOID_CMC_ADD_ATTRIBUTES: &'static [u8; 24usize] = b"1.3.6.1.4.1.311.10.10.1\0";
pub const CMC_TAGGED_CERT_REQUEST_CHOICE: u32 = 1;
pub const CMC_OTHER_INFO_NO_CHOICE: u32 = 0;
pub const CMC_OTHER_INFO_FAIL_CHOICE: u32 = 1;
pub const CMC_OTHER_INFO_PEND_CHOICE: u32 = 2;
pub const CMC_STATUS_SUCCESS: u32 = 0;
pub const CMC_STATUS_FAILED: u32 = 2;
pub const CMC_STATUS_PENDING: u32 = 3;
pub const CMC_STATUS_NO_SUPPORT: u32 = 4;
pub const CMC_STATUS_CONFIRM_REQUIRED: u32 = 5;
pub const CMC_FAIL_BAD_ALG: u32 = 0;
pub const CMC_FAIL_BAD_MESSAGE_CHECK: u32 = 1;
pub const CMC_FAIL_BAD_REQUEST: u32 = 2;
pub const CMC_FAIL_BAD_TIME: u32 = 3;
pub const CMC_FAIL_BAD_CERT_ID: u32 = 4;
pub const CMC_FAIL_UNSUPORTED_EXT: u32 = 5;
pub const CMC_FAIL_MUST_ARCHIVE_KEYS: u32 = 6;
pub const CMC_FAIL_BAD_IDENTITY: u32 = 7;
pub const CMC_FAIL_POP_REQUIRED: u32 = 8;
pub const CMC_FAIL_POP_FAILED: u32 = 9;
pub const CMC_FAIL_NO_KEY_REUSE: u32 = 10;
pub const CMC_FAIL_INTERNAL_CA_ERROR: u32 = 11;
pub const CMC_FAIL_TRY_LATER: u32 = 12;
pub const CERT_LOGOTYPE_GRAY_SCALE_IMAGE_INFO_CHOICE: u32 = 1;
pub const CERT_LOGOTYPE_COLOR_IMAGE_INFO_CHOICE: u32 = 2;
pub const CERT_LOGOTYPE_NO_IMAGE_RESOLUTION_CHOICE: u32 = 0;
pub const CERT_LOGOTYPE_BITS_IMAGE_RESOLUTION_CHOICE: u32 = 1;
pub const CERT_LOGOTYPE_TABLE_SIZE_IMAGE_RESOLUTION_CHOICE: u32 = 2;
pub const CERT_LOGOTYPE_DIRECT_INFO_CHOICE: u32 = 1;
pub const CERT_LOGOTYPE_INDIRECT_INFO_CHOICE: u32 = 2;
pub const szOID_LOYALTY_OTHER_LOGOTYPE: &'static [u8; 19usize] = b"1.3.6.1.5.5.7.20.1\0";
pub const szOID_BACKGROUND_OTHER_LOGOTYPE: &'static [u8; 19usize] = b"1.3.6.1.5.5.7.20.2\0";
pub const CERT_BIOMETRIC_PREDEFINED_DATA_CHOICE: u32 = 1;
pub const CERT_BIOMETRIC_OID_DATA_CHOICE: u32 = 2;
pub const CERT_BIOMETRIC_PICTURE_TYPE: u32 = 0;
pub const CERT_BIOMETRIC_SIGNATURE_TYPE: u32 = 1;
pub const OCSP_REQUEST_V1: u32 = 0;
pub const OCSP_SUCCESSFUL_RESPONSE: u32 = 0;
pub const OCSP_MALFORMED_REQUEST_RESPONSE: u32 = 1;
pub const OCSP_INTERNAL_ERROR_RESPONSE: u32 = 2;
pub const OCSP_TRY_LATER_RESPONSE: u32 = 3;
pub const OCSP_SIG_REQUIRED_RESPONSE: u32 = 5;
pub const OCSP_UNAUTHORIZED_RESPONSE: u32 = 6;
pub const szOID_PKIX_OCSP_BASIC_SIGNED_RESPONSE: &'static [u8; 21usize] = b"1.3.6.1.5.5.7.48.1.1\0";
pub const OCSP_BASIC_GOOD_CERT_STATUS: u32 = 0;
pub const OCSP_BASIC_REVOKED_CERT_STATUS: u32 = 1;
pub const OCSP_BASIC_UNKNOWN_CERT_STATUS: u32 = 2;
pub const OCSP_BASIC_RESPONSE_V1: u32 = 0;
pub const OCSP_BASIC_BY_NAME_RESPONDER_ID: u32 = 1;
pub const OCSP_BASIC_BY_KEY_RESPONDER_ID: u32 = 2;
pub const CRYPT_OID_ENCODE_OBJECT_FUNC: &'static [u8; 21usize] = b"CryptDllEncodeObject\0";
pub const CRYPT_OID_DECODE_OBJECT_FUNC: &'static [u8; 21usize] = b"CryptDllDecodeObject\0";
pub const CRYPT_OID_ENCODE_OBJECT_EX_FUNC: &'static [u8; 23usize] = b"CryptDllEncodeObjectEx\0";
pub const CRYPT_OID_DECODE_OBJECT_EX_FUNC: &'static [u8; 23usize] = b"CryptDllDecodeObjectEx\0";
pub const CRYPT_OID_CREATE_COM_OBJECT_FUNC: &'static [u8; 24usize] = b"CryptDllCreateCOMObject\0";
pub const CRYPT_OID_VERIFY_REVOCATION_FUNC: &'static [u8; 24usize] = b"CertDllVerifyRevocation\0";
pub const CRYPT_OID_VERIFY_CTL_USAGE_FUNC: &'static [u8; 22usize] = b"CertDllVerifyCTLUsage\0";
pub const CRYPT_OID_FORMAT_OBJECT_FUNC: &'static [u8; 21usize] = b"CryptDllFormatObject\0";
pub const CRYPT_OID_FIND_OID_INFO_FUNC: &'static [u8; 20usize] = b"CryptDllFindOIDInfo\0";
pub const CRYPT_OID_FIND_LOCALIZED_NAME_FUNC: &'static [u8; 26usize] =
    b"CryptDllFindLocalizedName\0";
pub const CRYPT_OID_REGPATH: &'static [u8; 36usize] = b"Software\\Microsoft\\Cryptography\\OID\0";
pub const CRYPT_OID_REG_ENCODING_TYPE_PREFIX: &'static [u8; 14usize] = b"EncodingType \0";
pub const CRYPT_OID_REG_DLL_VALUE_NAME: &'static [u8; 4usize] = b"Dll\0";
pub const CRYPT_OID_REG_FUNC_NAME_VALUE_NAME: &'static [u8; 9usize] = b"FuncName\0";
pub const CRYPT_OID_REG_FUNC_NAME_VALUE_NAME_A: &'static [u8; 9usize] = b"FuncName\0";
pub const CRYPT_OID_REG_FLAGS_VALUE_NAME: &'static [u8; 11usize] = b"CryptFlags\0";
pub const CRYPT_DEFAULT_OID: &'static [u8; 8usize] = b"DEFAULT\0";
pub const CRYPT_INSTALL_OID_FUNC_BEFORE_FLAG: u32 = 1;
pub const CRYPT_GET_INSTALLED_OID_FUNC_FLAG: u32 = 1;
pub const CRYPT_REGISTER_FIRST_INDEX: u32 = 0;
pub const CRYPT_REGISTER_LAST_INDEX: u32 = 4294967295;
pub const CRYPT_MATCH_ANY_ENCODING_TYPE: u32 = 4294967295;
pub const CALG_OID_INFO_CNG_ONLY: u32 = 4294967295;
pub const CALG_OID_INFO_PARAMETERS: u32 = 4294967294;
pub const CRYPT_OID_INFO_HASH_PARAMETERS_ALGORITHM: &'static [u8; 27usize] =
    b"CryptOIDInfoHashParameters\0";
pub const CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM: &'static [u8; 26usize] =
    b"CryptOIDInfoECCParameters\0";
pub const CRYPT_OID_INFO_MGF1_PARAMETERS_ALGORITHM: &'static [u8; 27usize] =
    b"CryptOIDInfoMgf1Parameters\0";
pub const CRYPT_OID_INFO_NO_SIGN_ALGORITHM: &'static [u8; 19usize] = b"CryptOIDInfoNoSign\0";
pub const CRYPT_OID_INFO_OAEP_PARAMETERS_ALGORITHM: &'static [u8; 27usize] =
    b"CryptOIDInfoOAEPParameters\0";
pub const CRYPT_OID_INFO_ECC_WRAP_PARAMETERS_ALGORITHM: &'static [u8; 30usize] =
    b"CryptOIDInfoECCWrapParameters\0";
pub const CRYPT_OID_INFO_NO_PARAMETERS_ALGORITHM: &'static [u8; 25usize] =
    b"CryptOIDInfoNoParameters\0";
pub const CRYPT_HASH_ALG_OID_GROUP_ID: u32 = 1;
pub const CRYPT_ENCRYPT_ALG_OID_GROUP_ID: u32 = 2;
pub const CRYPT_PUBKEY_ALG_OID_GROUP_ID: u32 = 3;
pub const CRYPT_SIGN_ALG_OID_GROUP_ID: u32 = 4;
pub const CRYPT_RDN_ATTR_OID_GROUP_ID: u32 = 5;
pub const CRYPT_EXT_OR_ATTR_OID_GROUP_ID: u32 = 6;
pub const CRYPT_ENHKEY_USAGE_OID_GROUP_ID: u32 = 7;
pub const CRYPT_POLICY_OID_GROUP_ID: u32 = 8;
pub const CRYPT_TEMPLATE_OID_GROUP_ID: u32 = 9;
pub const CRYPT_KDF_OID_GROUP_ID: u32 = 10;
pub const CRYPT_LAST_OID_GROUP_ID: u32 = 10;
pub const CRYPT_FIRST_ALG_OID_GROUP_ID: u32 = 1;
pub const CRYPT_LAST_ALG_OID_GROUP_ID: u32 = 4;
pub const CRYPT_OID_INHIBIT_SIGNATURE_FORMAT_FLAG: u32 = 1;
pub const CRYPT_OID_USE_PUBKEY_PARA_FOR_PKCS7_FLAG: u32 = 2;
pub const CRYPT_OID_NO_NULL_ALGORITHM_PARA_FLAG: u32 = 4;
pub const CRYPT_OID_PUBKEY_SIGN_ONLY_FLAG: u32 = 2147483648;
pub const CRYPT_OID_PUBKEY_ENCRYPT_ONLY_FLAG: u32 = 1073741824;
pub const CRYPT_OID_USE_CURVE_NAME_FOR_ENCODE_FLAG: u32 = 536870912;
pub const CRYPT_OID_USE_CURVE_PARAMETERS_FOR_ENCODE_FLAG: u32 = 268435456;
pub const CRYPT_OID_INFO_OID_KEY: u32 = 1;
pub const CRYPT_OID_INFO_NAME_KEY: u32 = 2;
pub const CRYPT_OID_INFO_ALGID_KEY: u32 = 3;
pub const CRYPT_OID_INFO_SIGN_KEY: u32 = 4;
pub const CRYPT_OID_INFO_CNG_ALGID_KEY: u32 = 5;
pub const CRYPT_OID_INFO_CNG_SIGN_KEY: u32 = 6;
pub const CRYPT_OID_INFO_OID_KEY_FLAGS_MASK: u32 = 4294901760;
pub const CRYPT_OID_INFO_PUBKEY_SIGN_KEY_FLAG: u32 = 2147483648;
pub const CRYPT_OID_INFO_PUBKEY_ENCRYPT_KEY_FLAG: u32 = 1073741824;
pub const CRYPT_OID_DISABLE_SEARCH_DS_FLAG: u32 = 2147483648;
pub const CRYPT_OID_INFO_OID_GROUP_BIT_LEN_MASK: u32 = 268369920;
pub const CRYPT_OID_INFO_OID_GROUP_BIT_LEN_SHIFT: u32 = 16;
pub const CRYPT_INSTALL_OID_INFO_BEFORE_FLAG: u32 = 1;
pub const CRYPT_LOCALIZED_NAME_ENCODING_TYPE: u32 = 0;
pub const CRYPT_LOCALIZED_NAME_OID: &'static [u8; 15usize] = b"LocalizedNames\0";
pub const CERT_STRONG_SIGN_ECDSA_ALGORITHM: &'static [u8; 6usize] = b"ECDSA\0";
pub const CERT_STRONG_SIGN_SERIALIZED_INFO_CHOICE: u32 = 1;
pub const CERT_STRONG_SIGN_OID_INFO_CHOICE: u32 = 2;
pub const CERT_STRONG_SIGN_ENABLE_CRL_CHECK: u32 = 1;
pub const CERT_STRONG_SIGN_ENABLE_OCSP_CHECK: u32 = 2;
pub const szOID_CERT_STRONG_SIGN_OS_PREFIX: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.72.1.\0";
pub const szOID_CERT_STRONG_SIGN_OS_1: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.72.1.1\0";
pub const szOID_CERT_STRONG_SIGN_OS_CURRENT: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.72.1.1\0";
pub const szOID_CERT_STRONG_KEY_OS_PREFIX: &'static [u8; 22usize] = b"1.3.6.1.4.1.311.72.2.\0";
pub const szOID_CERT_STRONG_KEY_OS_1: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.72.2.1\0";
pub const szOID_CERT_STRONG_KEY_OS_CURRENT: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.72.2.1\0";
pub const szOID_PKCS_7_DATA: &'static [u8; 21usize] = b"1.2.840.113549.1.7.1\0";
pub const szOID_PKCS_7_SIGNED: &'static [u8; 21usize] = b"1.2.840.113549.1.7.2\0";
pub const szOID_PKCS_7_ENVELOPED: &'static [u8; 21usize] = b"1.2.840.113549.1.7.3\0";
pub const szOID_PKCS_7_SIGNEDANDENVELOPED: &'static [u8; 21usize] = b"1.2.840.113549.1.7.4\0";
pub const szOID_PKCS_7_DIGESTED: &'static [u8; 21usize] = b"1.2.840.113549.1.7.5\0";
pub const szOID_PKCS_7_ENCRYPTED: &'static [u8; 21usize] = b"1.2.840.113549.1.7.6\0";
pub const szOID_PKCS_9_CONTENT_TYPE: &'static [u8; 21usize] = b"1.2.840.113549.1.9.3\0";
pub const szOID_PKCS_9_MESSAGE_DIGEST: &'static [u8; 21usize] = b"1.2.840.113549.1.9.4\0";
pub const CMSG_DATA: u32 = 1;
pub const CMSG_SIGNED: u32 = 2;
pub const CMSG_ENVELOPED: u32 = 3;
pub const CMSG_SIGNED_AND_ENVELOPED: u32 = 4;
pub const CMSG_HASHED: u32 = 5;
pub const CMSG_ENCRYPTED: u32 = 6;
pub const CMSG_ALL_FLAGS: i32 = -1;
pub const CMSG_DATA_FLAG: u32 = 2;
pub const CMSG_SIGNED_FLAG: u32 = 4;
pub const CMSG_ENVELOPED_FLAG: u32 = 8;
pub const CMSG_SIGNED_AND_ENVELOPED_FLAG: u32 = 16;
pub const CMSG_HASHED_FLAG: u32 = 32;
pub const CMSG_ENCRYPTED_FLAG: u32 = 64;
pub const CERT_ID_ISSUER_SERIAL_NUMBER: u32 = 1;
pub const CERT_ID_KEY_IDENTIFIER: u32 = 2;
pub const CERT_ID_SHA1_HASH: u32 = 3;
pub const CMSG_KEY_AGREE_EPHEMERAL_KEY_CHOICE: u32 = 1;
pub const CMSG_KEY_AGREE_STATIC_KEY_CHOICE: u32 = 2;
pub const CMSG_MAIL_LIST_HANDLE_KEY_CHOICE: u32 = 1;
pub const CMSG_KEY_TRANS_RECIPIENT: u32 = 1;
pub const CMSG_KEY_AGREE_RECIPIENT: u32 = 2;
pub const CMSG_MAIL_LIST_RECIPIENT: u32 = 3;
pub const CMSG_SP3_COMPATIBLE_ENCRYPT_FLAG: u32 = 2147483648;
pub const CMSG_RC4_NO_SALT_FLAG: u32 = 1073741824;
pub const CMSG_INDEFINITE_LENGTH: u32 = 4294967295;
pub const CMSG_BARE_CONTENT_FLAG: u32 = 1;
pub const CMSG_LENGTH_ONLY_FLAG: u32 = 2;
pub const CMSG_DETACHED_FLAG: u32 = 4;
pub const CMSG_AUTHENTICATED_ATTRIBUTES_FLAG: u32 = 8;
pub const CMSG_CONTENTS_OCTETS_FLAG: u32 = 16;
pub const CMSG_MAX_LENGTH_FLAG: u32 = 32;
pub const CMSG_CMS_ENCAPSULATED_CONTENT_FLAG: u32 = 64;
pub const CMSG_SIGNED_DATA_NO_SIGN_FLAG: u32 = 128;
pub const CMSG_CRYPT_RELEASE_CONTEXT_FLAG: u32 = 32768;
pub const CMSG_TYPE_PARAM: u32 = 1;
pub const CMSG_CONTENT_PARAM: u32 = 2;
pub const CMSG_BARE_CONTENT_PARAM: u32 = 3;
pub const CMSG_INNER_CONTENT_TYPE_PARAM: u32 = 4;
pub const CMSG_SIGNER_COUNT_PARAM: u32 = 5;
pub const CMSG_SIGNER_INFO_PARAM: u32 = 6;
pub const CMSG_SIGNER_CERT_INFO_PARAM: u32 = 7;
pub const CMSG_SIGNER_HASH_ALGORITHM_PARAM: u32 = 8;
pub const CMSG_SIGNER_AUTH_ATTR_PARAM: u32 = 9;
pub const CMSG_SIGNER_UNAUTH_ATTR_PARAM: u32 = 10;
pub const CMSG_CERT_COUNT_PARAM: u32 = 11;
pub const CMSG_CERT_PARAM: u32 = 12;
pub const CMSG_CRL_COUNT_PARAM: u32 = 13;
pub const CMSG_CRL_PARAM: u32 = 14;
pub const CMSG_ENVELOPE_ALGORITHM_PARAM: u32 = 15;
pub const CMSG_RECIPIENT_COUNT_PARAM: u32 = 17;
pub const CMSG_RECIPIENT_INDEX_PARAM: u32 = 18;
pub const CMSG_RECIPIENT_INFO_PARAM: u32 = 19;
pub const CMSG_HASH_ALGORITHM_PARAM: u32 = 20;
pub const CMSG_HASH_DATA_PARAM: u32 = 21;
pub const CMSG_COMPUTED_HASH_PARAM: u32 = 22;
pub const CMSG_ENCRYPT_PARAM: u32 = 26;
pub const CMSG_ENCRYPTED_DIGEST: u32 = 27;
pub const CMSG_ENCODED_SIGNER: u32 = 28;
pub const CMSG_ENCODED_MESSAGE: u32 = 29;
pub const CMSG_VERSION_PARAM: u32 = 30;
pub const CMSG_ATTR_CERT_COUNT_PARAM: u32 = 31;
pub const CMSG_ATTR_CERT_PARAM: u32 = 32;
pub const CMSG_CMS_RECIPIENT_COUNT_PARAM: u32 = 33;
pub const CMSG_CMS_RECIPIENT_INDEX_PARAM: u32 = 34;
pub const CMSG_CMS_RECIPIENT_ENCRYPTED_KEY_INDEX_PARAM: u32 = 35;
pub const CMSG_CMS_RECIPIENT_INFO_PARAM: u32 = 36;
pub const CMSG_UNPROTECTED_ATTR_PARAM: u32 = 37;
pub const CMSG_SIGNER_CERT_ID_PARAM: u32 = 38;
pub const CMSG_CMS_SIGNER_INFO_PARAM: u32 = 39;
pub const CMSG_SIGNED_DATA_V1: u32 = 1;
pub const CMSG_SIGNED_DATA_V3: u32 = 3;
pub const CMSG_SIGNED_DATA_PKCS_1_5_VERSION: u32 = 1;
pub const CMSG_SIGNED_DATA_CMS_VERSION: u32 = 3;
pub const CMSG_SIGNER_INFO_V1: u32 = 1;
pub const CMSG_SIGNER_INFO_V3: u32 = 3;
pub const CMSG_SIGNER_INFO_PKCS_1_5_VERSION: u32 = 1;
pub const CMSG_SIGNER_INFO_CMS_VERSION: u32 = 3;
pub const CMSG_HASHED_DATA_V0: u32 = 0;
pub const CMSG_HASHED_DATA_V2: u32 = 2;
pub const CMSG_HASHED_DATA_PKCS_1_5_VERSION: u32 = 0;
pub const CMSG_HASHED_DATA_CMS_VERSION: u32 = 2;
pub const CMSG_ENVELOPED_DATA_V0: u32 = 0;
pub const CMSG_ENVELOPED_DATA_V2: u32 = 2;
pub const CMSG_ENVELOPED_DATA_PKCS_1_5_VERSION: u32 = 0;
pub const CMSG_ENVELOPED_DATA_CMS_VERSION: u32 = 2;
pub const CMSG_KEY_AGREE_ORIGINATOR_CERT: u32 = 1;
pub const CMSG_KEY_AGREE_ORIGINATOR_PUBLIC_KEY: u32 = 2;
pub const CMSG_ENVELOPED_RECIPIENT_V0: u32 = 0;
pub const CMSG_ENVELOPED_RECIPIENT_V2: u32 = 2;
pub const CMSG_ENVELOPED_RECIPIENT_V3: u32 = 3;
pub const CMSG_ENVELOPED_RECIPIENT_V4: u32 = 4;
pub const CMSG_KEY_TRANS_PKCS_1_5_VERSION: u32 = 0;
pub const CMSG_KEY_TRANS_CMS_VERSION: u32 = 2;
pub const CMSG_KEY_AGREE_VERSION: u32 = 3;
pub const CMSG_MAIL_LIST_VERSION: u32 = 4;
pub const CMSG_CTRL_VERIFY_SIGNATURE: u32 = 1;
pub const CMSG_CTRL_DECRYPT: u32 = 2;
pub const CMSG_CTRL_VERIFY_HASH: u32 = 5;
pub const CMSG_CTRL_ADD_SIGNER: u32 = 6;
pub const CMSG_CTRL_DEL_SIGNER: u32 = 7;
pub const CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR: u32 = 8;
pub const CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR: u32 = 9;
pub const CMSG_CTRL_ADD_CERT: u32 = 10;
pub const CMSG_CTRL_DEL_CERT: u32 = 11;
pub const CMSG_CTRL_ADD_CRL: u32 = 12;
pub const CMSG_CTRL_DEL_CRL: u32 = 13;
pub const CMSG_CTRL_ADD_ATTR_CERT: u32 = 14;
pub const CMSG_CTRL_DEL_ATTR_CERT: u32 = 15;
pub const CMSG_CTRL_KEY_TRANS_DECRYPT: u32 = 16;
pub const CMSG_CTRL_KEY_AGREE_DECRYPT: u32 = 17;
pub const CMSG_CTRL_MAIL_LIST_DECRYPT: u32 = 18;
pub const CMSG_CTRL_VERIFY_SIGNATURE_EX: u32 = 19;
pub const CMSG_CTRL_ADD_CMS_SIGNER_INFO: u32 = 20;
pub const CMSG_CTRL_ENABLE_STRONG_SIGNATURE: u32 = 21;
pub const CMSG_VERIFY_SIGNER_PUBKEY: u32 = 1;
pub const CMSG_VERIFY_SIGNER_CERT: u32 = 2;
pub const CMSG_VERIFY_SIGNER_CHAIN: u32 = 3;
pub const CMSG_VERIFY_SIGNER_NULL: u32 = 4;
pub const CMSG_VERIFY_COUNTER_SIGN_ENABLE_STRONG_FLAG: u32 = 1;
pub const CMSG_OID_GEN_ENCRYPT_KEY_FUNC: &'static [u8; 25usize] = b"CryptMsgDllGenEncryptKey\0";
pub const CMSG_OID_EXPORT_ENCRYPT_KEY_FUNC: &'static [u8; 28usize] =
    b"CryptMsgDllExportEncryptKey\0";
pub const CMSG_OID_IMPORT_ENCRYPT_KEY_FUNC: &'static [u8; 28usize] =
    b"CryptMsgDllImportEncryptKey\0";
pub const CMSG_CONTENT_ENCRYPT_PAD_ENCODED_LEN_FLAG: u32 = 1;
pub const CMSG_CONTENT_ENCRYPT_FREE_PARA_FLAG: u32 = 1;
pub const CMSG_CONTENT_ENCRYPT_FREE_OBJID_FLAG: u32 = 2;
pub const CMSG_CONTENT_ENCRYPT_RELEASE_CONTEXT_FLAG: u32 = 32768;
pub const CMSG_OID_GEN_CONTENT_ENCRYPT_KEY_FUNC: &'static [u8; 32usize] =
    b"CryptMsgDllGenContentEncryptKey\0";
pub const CMSG_OID_CAPI1_GEN_CONTENT_ENCRYPT_KEY_FUNC: &'static [u8; 32usize] =
    b"CryptMsgDllGenContentEncryptKey\0";
pub const CMSG_OID_CNG_GEN_CONTENT_ENCRYPT_KEY_FUNC: &'static [u8; 35usize] =
    b"CryptMsgDllCNGGenContentEncryptKey\0";
pub const CMSG_KEY_TRANS_ENCRYPT_FREE_PARA_FLAG: u32 = 1;
pub const CMSG_KEY_TRANS_ENCRYPT_FREE_OBJID_FLAG: u32 = 2;
pub const CMSG_OID_EXPORT_KEY_TRANS_FUNC: &'static [u8; 26usize] = b"CryptMsgDllExportKeyTrans\0";
pub const CMSG_OID_CAPI1_EXPORT_KEY_TRANS_FUNC: &'static [u8; 26usize] =
    b"CryptMsgDllExportKeyTrans\0";
pub const CMSG_OID_CNG_EXPORT_KEY_TRANS_FUNC: &'static [u8; 29usize] =
    b"CryptMsgDllCNGExportKeyTrans\0";
pub const CMSG_KEY_AGREE_ENCRYPT_FREE_PARA_FLAG: u32 = 1;
pub const CMSG_KEY_AGREE_ENCRYPT_FREE_MATERIAL_FLAG: u32 = 2;
pub const CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_ALG_FLAG: u32 = 4;
pub const CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_PARA_FLAG: u32 = 8;
pub const CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_BITS_FLAG: u32 = 16;
pub const CMSG_KEY_AGREE_ENCRYPT_FREE_OBJID_FLAG: u32 = 32;
pub const CMSG_OID_EXPORT_KEY_AGREE_FUNC: &'static [u8; 26usize] = b"CryptMsgDllExportKeyAgree\0";
pub const CMSG_OID_CAPI1_EXPORT_KEY_AGREE_FUNC: &'static [u8; 26usize] =
    b"CryptMsgDllExportKeyAgree\0";
pub const CMSG_OID_CNG_EXPORT_KEY_AGREE_FUNC: &'static [u8; 29usize] =
    b"CryptMsgDllCNGExportKeyAgree\0";
pub const CMSG_MAIL_LIST_ENCRYPT_FREE_PARA_FLAG: u32 = 1;
pub const CMSG_MAIL_LIST_ENCRYPT_FREE_OBJID_FLAG: u32 = 2;
pub const CMSG_OID_EXPORT_MAIL_LIST_FUNC: &'static [u8; 26usize] = b"CryptMsgDllExportMailList\0";
pub const CMSG_OID_CAPI1_EXPORT_MAIL_LIST_FUNC: &'static [u8; 26usize] =
    b"CryptMsgDllExportMailList\0";
pub const CMSG_OID_IMPORT_KEY_TRANS_FUNC: &'static [u8; 26usize] = b"CryptMsgDllImportKeyTrans\0";
pub const CMSG_OID_CAPI1_IMPORT_KEY_TRANS_FUNC: &'static [u8; 26usize] =
    b"CryptMsgDllImportKeyTrans\0";
pub const CMSG_OID_IMPORT_KEY_AGREE_FUNC: &'static [u8; 26usize] = b"CryptMsgDllImportKeyAgree\0";
pub const CMSG_OID_CAPI1_IMPORT_KEY_AGREE_FUNC: &'static [u8; 26usize] =
    b"CryptMsgDllImportKeyAgree\0";
pub const CMSG_OID_IMPORT_MAIL_LIST_FUNC: &'static [u8; 26usize] = b"CryptMsgDllImportMailList\0";
pub const CMSG_OID_CAPI1_IMPORT_MAIL_LIST_FUNC: &'static [u8; 26usize] =
    b"CryptMsgDllImportMailList\0";
pub const CMSG_OID_CNG_IMPORT_KEY_TRANS_FUNC: &'static [u8; 29usize] =
    b"CryptMsgDllCNGImportKeyTrans\0";
pub const CMSG_OID_CNG_IMPORT_KEY_AGREE_FUNC: &'static [u8; 29usize] =
    b"CryptMsgDllCNGImportKeyAgree\0";
pub const CMSG_OID_CNG_IMPORT_CONTENT_ENCRYPT_KEY_FUNC: &'static [u8; 38usize] =
    b"CryptMsgDllCNGImportContentEncryptKey\0";
pub const CERT_KEY_PROV_HANDLE_PROP_ID: u32 = 1;
pub const CERT_KEY_PROV_INFO_PROP_ID: u32 = 2;
pub const CERT_SHA1_HASH_PROP_ID: u32 = 3;
pub const CERT_MD5_HASH_PROP_ID: u32 = 4;
pub const CERT_HASH_PROP_ID: u32 = 3;
pub const CERT_KEY_CONTEXT_PROP_ID: u32 = 5;
pub const CERT_KEY_SPEC_PROP_ID: u32 = 6;
pub const CERT_IE30_RESERVED_PROP_ID: u32 = 7;
pub const CERT_PUBKEY_HASH_RESERVED_PROP_ID: u32 = 8;
pub const CERT_ENHKEY_USAGE_PROP_ID: u32 = 9;
pub const CERT_CTL_USAGE_PROP_ID: u32 = 9;
pub const CERT_NEXT_UPDATE_LOCATION_PROP_ID: u32 = 10;
pub const CERT_FRIENDLY_NAME_PROP_ID: u32 = 11;
pub const CERT_PVK_FILE_PROP_ID: u32 = 12;
pub const CERT_DESCRIPTION_PROP_ID: u32 = 13;
pub const CERT_ACCESS_STATE_PROP_ID: u32 = 14;
pub const CERT_SIGNATURE_HASH_PROP_ID: u32 = 15;
pub const CERT_SMART_CARD_DATA_PROP_ID: u32 = 16;
pub const CERT_EFS_PROP_ID: u32 = 17;
pub const CERT_FORTEZZA_DATA_PROP_ID: u32 = 18;
pub const CERT_ARCHIVED_PROP_ID: u32 = 19;
pub const CERT_KEY_IDENTIFIER_PROP_ID: u32 = 20;
pub const CERT_AUTO_ENROLL_PROP_ID: u32 = 21;
pub const CERT_PUBKEY_ALG_PARA_PROP_ID: u32 = 22;
pub const CERT_CROSS_CERT_DIST_POINTS_PROP_ID: u32 = 23;
pub const CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID: u32 = 24;
pub const CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID: u32 = 25;
pub const CERT_ENROLLMENT_PROP_ID: u32 = 26;
pub const CERT_DATE_STAMP_PROP_ID: u32 = 27;
pub const CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID: u32 = 28;
pub const CERT_SUBJECT_NAME_MD5_HASH_PROP_ID: u32 = 29;
pub const CERT_EXTENDED_ERROR_INFO_PROP_ID: u32 = 30;
pub const CERT_RENEWAL_PROP_ID: u32 = 64;
pub const CERT_ARCHIVED_KEY_HASH_PROP_ID: u32 = 65;
pub const CERT_AUTO_ENROLL_RETRY_PROP_ID: u32 = 66;
pub const CERT_AIA_URL_RETRIEVED_PROP_ID: u32 = 67;
pub const CERT_AUTHORITY_INFO_ACCESS_PROP_ID: u32 = 68;
pub const CERT_BACKED_UP_PROP_ID: u32 = 69;
pub const CERT_OCSP_RESPONSE_PROP_ID: u32 = 70;
pub const CERT_REQUEST_ORIGINATOR_PROP_ID: u32 = 71;
pub const CERT_SOURCE_LOCATION_PROP_ID: u32 = 72;
pub const CERT_SOURCE_URL_PROP_ID: u32 = 73;
pub const CERT_NEW_KEY_PROP_ID: u32 = 74;
pub const CERT_OCSP_CACHE_PREFIX_PROP_ID: u32 = 75;
pub const CERT_SMART_CARD_ROOT_INFO_PROP_ID: u32 = 76;
pub const CERT_NO_AUTO_EXPIRE_CHECK_PROP_ID: u32 = 77;
pub const CERT_NCRYPT_KEY_HANDLE_PROP_ID: u32 = 78;
pub const CERT_HCRYPTPROV_OR_NCRYPT_KEY_HANDLE_PROP_ID: u32 = 79;
pub const CERT_SUBJECT_INFO_ACCESS_PROP_ID: u32 = 80;
pub const CERT_CA_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID: u32 = 81;
pub const CERT_CA_DISABLE_CRL_PROP_ID: u32 = 82;
pub const CERT_ROOT_PROGRAM_CERT_POLICIES_PROP_ID: u32 = 83;
pub const CERT_ROOT_PROGRAM_NAME_CONSTRAINTS_PROP_ID: u32 = 84;
pub const CERT_SUBJECT_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID: u32 = 85;
pub const CERT_SUBJECT_DISABLE_CRL_PROP_ID: u32 = 86;
pub const CERT_CEP_PROP_ID: u32 = 87;
pub const CERT_SIGN_HASH_CNG_ALG_PROP_ID: u32 = 89;
pub const CERT_SCARD_PIN_ID_PROP_ID: u32 = 90;
pub const CERT_SCARD_PIN_INFO_PROP_ID: u32 = 91;
pub const CERT_SUBJECT_PUB_KEY_BIT_LENGTH_PROP_ID: u32 = 92;
pub const CERT_PUB_KEY_CNG_ALG_BIT_LENGTH_PROP_ID: u32 = 93;
pub const CERT_ISSUER_PUB_KEY_BIT_LENGTH_PROP_ID: u32 = 94;
pub const CERT_ISSUER_CHAIN_SIGN_HASH_CNG_ALG_PROP_ID: u32 = 95;
pub const CERT_ISSUER_CHAIN_PUB_KEY_CNG_ALG_BIT_LENGTH_PROP_ID: u32 = 96;
pub const CERT_NO_EXPIRE_NOTIFICATION_PROP_ID: u32 = 97;
pub const CERT_AUTH_ROOT_SHA256_HASH_PROP_ID: u32 = 98;
pub const CERT_NCRYPT_KEY_HANDLE_TRANSFER_PROP_ID: u32 = 99;
pub const CERT_HCRYPTPROV_TRANSFER_PROP_ID: u32 = 100;
pub const CERT_SMART_CARD_READER_PROP_ID: u32 = 101;
pub const CERT_SEND_AS_TRUSTED_ISSUER_PROP_ID: u32 = 102;
pub const CERT_KEY_REPAIR_ATTEMPTED_PROP_ID: u32 = 103;
pub const CERT_DISALLOWED_FILETIME_PROP_ID: u32 = 104;
pub const CERT_ROOT_PROGRAM_CHAIN_POLICIES_PROP_ID: u32 = 105;
pub const CERT_SMART_CARD_READER_NON_REMOVABLE_PROP_ID: u32 = 106;
pub const CERT_SHA256_HASH_PROP_ID: u32 = 107;
pub const CERT_SCEP_SERVER_CERTS_PROP_ID: u32 = 108;
pub const CERT_SCEP_RA_SIGNATURE_CERT_PROP_ID: u32 = 109;
pub const CERT_SCEP_RA_ENCRYPTION_CERT_PROP_ID: u32 = 110;
pub const CERT_SCEP_CA_CERT_PROP_ID: u32 = 111;
pub const CERT_SCEP_SIGNER_CERT_PROP_ID: u32 = 112;
pub const CERT_SCEP_NONCE_PROP_ID: u32 = 113;
pub const CERT_SCEP_ENCRYPT_HASH_CNG_ALG_PROP_ID: u32 = 114;
pub const CERT_SCEP_FLAGS_PROP_ID: u32 = 115;
pub const CERT_SCEP_GUID_PROP_ID: u32 = 116;
pub const CERT_SERIALIZABLE_KEY_CONTEXT_PROP_ID: u32 = 117;
pub const CERT_ISOLATED_KEY_PROP_ID: u32 = 118;
pub const CERT_SERIAL_CHAIN_PROP_ID: u32 = 119;
pub const CERT_KEY_CLASSIFICATION_PROP_ID: u32 = 120;
pub const CERT_OCSP_MUST_STAPLE_PROP_ID: u32 = 121;
pub const CERT_DISALLOWED_ENHKEY_USAGE_PROP_ID: u32 = 122;
pub const CERT_NONCOMPLIANT_ROOT_URL_PROP_ID: u32 = 123;
pub const CERT_PIN_SHA256_HASH_PROP_ID: u32 = 124;
pub const CERT_CLR_DELETE_KEY_PROP_ID: u32 = 125;
pub const CERT_NOT_BEFORE_FILETIME_PROP_ID: u32 = 126;
pub const CERT_NOT_BEFORE_ENHKEY_USAGE_PROP_ID: u32 = 127;
pub const CERT_FIRST_RESERVED_PROP_ID: u32 = 128;
pub const CERT_LAST_RESERVED_PROP_ID: u32 = 32767;
pub const CERT_FIRST_USER_PROP_ID: u32 = 32768;
pub const CERT_LAST_USER_PROP_ID: u32 = 65535;
pub const szOID_CERT_PROP_ID_PREFIX: &'static [u8; 23usize] = b"1.3.6.1.4.1.311.10.11.\0";
pub const szOID_CERT_KEY_IDENTIFIER_PROP_ID: &'static [u8; 25usize] = b"1.3.6.1.4.1.311.10.11.20\0";
pub const szOID_CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID: &'static [u8; 25usize] =
    b"1.3.6.1.4.1.311.10.11.28\0";
pub const szOID_CERT_SUBJECT_NAME_MD5_HASH_PROP_ID: &'static [u8; 25usize] =
    b"1.3.6.1.4.1.311.10.11.29\0";
pub const szOID_CERT_MD5_HASH_PROP_ID: &'static [u8; 24usize] = b"1.3.6.1.4.1.311.10.11.4\0";
pub const szOID_CERT_SIGNATURE_HASH_PROP_ID: &'static [u8; 25usize] = b"1.3.6.1.4.1.311.10.11.15\0";
pub const szOID_DISALLOWED_HASH: &'static [u8; 25usize] = b"1.3.6.1.4.1.311.10.11.15\0";
pub const szOID_CERT_DISALLOWED_FILETIME_PROP_ID: &'static [u8; 26usize] =
    b"1.3.6.1.4.1.311.10.11.104\0";
pub const CERT_ACCESS_STATE_WRITE_PERSIST_FLAG: u32 = 1;
pub const CERT_ACCESS_STATE_SYSTEM_STORE_FLAG: u32 = 2;
pub const CERT_ACCESS_STATE_LM_SYSTEM_STORE_FLAG: u32 = 4;
pub const CERT_ACCESS_STATE_GP_SYSTEM_STORE_FLAG: u32 = 8;
pub const CERT_ACCESS_STATE_SHARED_USER_FLAG: u32 = 16;
pub const szOID_ROOT_PROGRAM_AUTO_UPDATE_CA_REVOCATION: &'static [u8; 23usize] =
    b"1.3.6.1.4.1.311.60.3.1\0";
pub const szOID_ROOT_PROGRAM_AUTO_UPDATE_END_REVOCATION: &'static [u8; 23usize] =
    b"1.3.6.1.4.1.311.60.3.2\0";
pub const szOID_ROOT_PROGRAM_NO_OCSP_FAILOVER_TO_CRL: &'static [u8; 23usize] =
    b"1.3.6.1.4.1.311.60.3.3\0";
pub const CERT_SET_KEY_PROV_HANDLE_PROP_ID: u32 = 1;
pub const CERT_SET_KEY_CONTEXT_PROP_ID: u32 = 1;
pub const CERT_NCRYPT_KEY_SPEC: u32 = 4294967295;
pub const sz_CERT_STORE_PROV_MEMORY: &'static [u8; 7usize] = b"Memory\0";
pub const sz_CERT_STORE_PROV_FILENAME_W: &'static [u8; 5usize] = b"File\0";
pub const sz_CERT_STORE_PROV_FILENAME: &'static [u8; 5usize] = b"File\0";
pub const sz_CERT_STORE_PROV_SYSTEM_W: &'static [u8; 7usize] = b"System\0";
pub const sz_CERT_STORE_PROV_SYSTEM: &'static [u8; 7usize] = b"System\0";
pub const sz_CERT_STORE_PROV_PKCS7: &'static [u8; 6usize] = b"PKCS7\0";
pub const sz_CERT_STORE_PROV_PKCS12: &'static [u8; 7usize] = b"PKCS12\0";
pub const sz_CERT_STORE_PROV_SERIALIZED: &'static [u8; 11usize] = b"Serialized\0";
pub const sz_CERT_STORE_PROV_COLLECTION: &'static [u8; 11usize] = b"Collection\0";
pub const sz_CERT_STORE_PROV_SYSTEM_REGISTRY_W: &'static [u8; 15usize] = b"SystemRegistry\0";
pub const sz_CERT_STORE_PROV_SYSTEM_REGISTRY: &'static [u8; 15usize] = b"SystemRegistry\0";
pub const sz_CERT_STORE_PROV_PHYSICAL_W: &'static [u8; 9usize] = b"Physical\0";
pub const sz_CERT_STORE_PROV_PHYSICAL: &'static [u8; 9usize] = b"Physical\0";
pub const sz_CERT_STORE_PROV_SMART_CARD_W: &'static [u8; 10usize] = b"SmartCard\0";
pub const sz_CERT_STORE_PROV_SMART_CARD: &'static [u8; 10usize] = b"SmartCard\0";
pub const sz_CERT_STORE_PROV_LDAP_W: &'static [u8; 5usize] = b"Ldap\0";
pub const sz_CERT_STORE_PROV_LDAP: &'static [u8; 5usize] = b"Ldap\0";
pub const CERT_STORE_SIGNATURE_FLAG: u32 = 1;
pub const CERT_STORE_TIME_VALIDITY_FLAG: u32 = 2;
pub const CERT_STORE_REVOCATION_FLAG: u32 = 4;
pub const CERT_STORE_NO_CRL_FLAG: u32 = 65536;
pub const CERT_STORE_NO_ISSUER_FLAG: u32 = 131072;
pub const CERT_STORE_BASE_CRL_FLAG: u32 = 256;
pub const CERT_STORE_DELTA_CRL_FLAG: u32 = 512;
pub const CERT_STORE_NO_CRYPT_RELEASE_FLAG: u32 = 1;
pub const CERT_STORE_SET_LOCALIZED_NAME_FLAG: u32 = 2;
pub const CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG: u32 = 4;
pub const CERT_STORE_DELETE_FLAG: u32 = 16;
pub const CERT_STORE_UNSAFE_PHYSICAL_FLAG: u32 = 32;
pub const CERT_STORE_SHARE_STORE_FLAG: u32 = 64;
pub const CERT_STORE_SHARE_CONTEXT_FLAG: u32 = 128;
pub const CERT_STORE_MANIFOLD_FLAG: u32 = 256;
pub const CERT_STORE_ENUM_ARCHIVED_FLAG: u32 = 512;
pub const CERT_STORE_UPDATE_KEYID_FLAG: u32 = 1024;
pub const CERT_STORE_BACKUP_RESTORE_FLAG: u32 = 2048;
pub const CERT_STORE_READONLY_FLAG: u32 = 32768;
pub const CERT_STORE_OPEN_EXISTING_FLAG: u32 = 16384;
pub const CERT_STORE_CREATE_NEW_FLAG: u32 = 8192;
pub const CERT_STORE_MAXIMUM_ALLOWED_FLAG: u32 = 4096;
pub const CERT_SYSTEM_STORE_MASK: u32 = 4294901760;
pub const CERT_SYSTEM_STORE_RELOCATE_FLAG: u32 = 2147483648;
pub const CERT_SYSTEM_STORE_UNPROTECTED_FLAG: u32 = 1073741824;
pub const CERT_SYSTEM_STORE_DEFER_READ_FLAG: u32 = 536870912;
pub const CERT_SYSTEM_STORE_LOCATION_MASK: u32 = 16711680;
pub const CERT_SYSTEM_STORE_LOCATION_SHIFT: u32 = 16;
pub const CERT_SYSTEM_STORE_CURRENT_USER_ID: u32 = 1;
pub const CERT_SYSTEM_STORE_LOCAL_MACHINE_ID: u32 = 2;
pub const CERT_SYSTEM_STORE_CURRENT_SERVICE_ID: u32 = 4;
pub const CERT_SYSTEM_STORE_SERVICES_ID: u32 = 5;
pub const CERT_SYSTEM_STORE_USERS_ID: u32 = 6;
pub const CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID: u32 = 7;
pub const CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID: u32 = 8;
pub const CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID: u32 = 9;
pub const CERT_SYSTEM_STORE_LOCAL_MACHINE_WCOS_ID: u32 = 10;
pub const CERT_SYSTEM_STORE_CURRENT_USER: u32 = 65536;
pub const CERT_SYSTEM_STORE_LOCAL_MACHINE: u32 = 131072;
pub const CERT_SYSTEM_STORE_CURRENT_SERVICE: u32 = 262144;
pub const CERT_SYSTEM_STORE_SERVICES: u32 = 327680;
pub const CERT_SYSTEM_STORE_USERS: u32 = 393216;
pub const CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY: u32 = 458752;
pub const CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY: u32 = 524288;
pub const CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE: u32 = 589824;
pub const CERT_SYSTEM_STORE_LOCAL_MACHINE_WCOS: u32 = 655360;
pub const CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH: &'static [u8; 47usize] =
    b"Software\\Policies\\Microsoft\\SystemCertificates\0";
pub const CERT_EFSBLOB_REGPATH: &'static [u8; 51usize] =
    b"Software\\Policies\\Microsoft\\SystemCertificates\\EFS\0";
pub const CERT_EFSBLOB_VALUE_NAME: &'static [u8; 8usize] = b"EFSBlob\0";
pub const CERT_PROT_ROOT_FLAGS_REGPATH: &'static [u8; 67usize] =
    b"Software\\Policies\\Microsoft\\SystemCertificates\\Root\\ProtectedRoots\0";
pub const CERT_PROT_ROOT_FLAGS_VALUE_NAME: &'static [u8; 6usize] = b"Flags\0";
pub const CERT_PROT_ROOT_DISABLE_CURRENT_USER_FLAG: u32 = 1;
pub const CERT_PROT_ROOT_INHIBIT_ADD_AT_INIT_FLAG: u32 = 2;
pub const CERT_PROT_ROOT_INHIBIT_PURGE_LM_FLAG: u32 = 4;
pub const CERT_PROT_ROOT_DISABLE_LM_AUTH_FLAG: u32 = 8;
pub const CERT_PROT_ROOT_ONLY_LM_GPT_FLAG: u32 = 8;
pub const CERT_PROT_ROOT_DISABLE_NT_AUTH_REQUIRED_FLAG: u32 = 16;
pub const CERT_PROT_ROOT_DISABLE_NOT_DEFINED_NAME_CONSTRAINT_FLAG: u32 = 32;
pub const CERT_PROT_ROOT_DISABLE_PEER_TRUST: u32 = 65536;
pub const CERT_PROT_ROOT_PEER_USAGES_VALUE_NAME: &'static [u8; 11usize] = b"PeerUsages\0";
pub const CERT_PROT_ROOT_PEER_USAGES_VALUE_NAME_A: &'static [u8; 11usize] = b"PeerUsages\0";
pub const CERT_PROT_ROOT_PEER_USAGES_DEFAULT_A: &'static [u8; 60usize] =
    b"1.3.6.1.5.5.7.3.2\01.3.6.1.5.5.7.3.4\01.3.6.1.4.1.311.10.3.4\0\0";
pub const CERT_TRUST_PUB_SAFER_GROUP_POLICY_REGPATH: &'static [u8; 70usize] =
    b"Software\\Policies\\Microsoft\\SystemCertificates\\TrustedPublisher\\Safer\0";
pub const CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH: &'static [u8; 38usize] =
    b"Software\\Microsoft\\SystemCertificates\0";
pub const CERT_TRUST_PUB_SAFER_LOCAL_MACHINE_REGPATH: &'static [u8; 61usize] =
    b"Software\\Microsoft\\SystemCertificates\\TrustedPublisher\\Safer\0";
pub const CERT_TRUST_PUB_AUTHENTICODE_FLAGS_VALUE_NAME: &'static [u8; 18usize] =
    b"AuthenticodeFlags\0";
pub const CERT_TRUST_PUB_ALLOW_TRUST_MASK: u32 = 3;
pub const CERT_TRUST_PUB_ALLOW_END_USER_TRUST: u32 = 0;
pub const CERT_TRUST_PUB_ALLOW_MACHINE_ADMIN_TRUST: u32 = 1;
pub const CERT_TRUST_PUB_ALLOW_ENTERPRISE_ADMIN_TRUST: u32 = 2;
pub const CERT_TRUST_PUB_CHECK_PUBLISHER_REV_FLAG: u32 = 256;
pub const CERT_TRUST_PUB_CHECK_TIMESTAMP_REV_FLAG: u32 = 512;
pub const CERT_OCM_SUBCOMPONENTS_LOCAL_MACHINE_REGPATH: &'static [u8; 73usize] =
    b"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup\\OC Manager\\Subcomponents\0";
pub const CERT_OCM_SUBCOMPONENTS_ROOT_AUTO_UPDATE_VALUE_NAME: &'static [u8; 15usize] =
    b"RootAutoUpdate\0";
pub const CERT_DISABLE_ROOT_AUTO_UPDATE_REGPATH: &'static [u8; 56usize] =
    b"Software\\Policies\\Microsoft\\SystemCertificates\\AuthRoot\0";
pub const CERT_DISABLE_ROOT_AUTO_UPDATE_VALUE_NAME: &'static [u8; 22usize] =
    b"DisableRootAutoUpdate\0";
pub const CERT_ENABLE_DISALLOWED_CERT_AUTO_UPDATE_VALUE_NAME: &'static [u8; 31usize] =
    b"EnableDisallowedCertAutoUpdate\0";
pub const CERT_DISABLE_PIN_RULES_AUTO_UPDATE_VALUE_NAME: &'static [u8; 26usize] =
    b"DisablePinRulesAutoUpdate\0";
pub const CERT_AUTO_UPDATE_LOCAL_MACHINE_REGPATH: &'static [u8; 58usize] =
    b"Software\\Microsoft\\SystemCertificates\\AuthRoot\\AutoUpdate\0";
pub const CERT_AUTO_UPDATE_ROOT_DIR_URL_VALUE_NAME: &'static [u8; 11usize] = b"RootDirUrl\0";
pub const CERT_AUTO_UPDATE_SYNC_FROM_DIR_URL_VALUE_NAME: &'static [u8; 15usize] =
    b"SyncFromDirUrl\0";
pub const CERT_AUTH_ROOT_AUTO_UPDATE_LOCAL_MACHINE_REGPATH: &'static [u8; 58usize] =
    b"Software\\Microsoft\\SystemCertificates\\AuthRoot\\AutoUpdate\0";
pub const CERT_AUTH_ROOT_AUTO_UPDATE_ROOT_DIR_URL_VALUE_NAME: &'static [u8; 11usize] =
    b"RootDirUrl\0";
pub const CERT_AUTH_ROOT_AUTO_UPDATE_SYNC_DELTA_TIME_VALUE_NAME: &'static [u8; 14usize] =
    b"SyncDeltaTime\0";
pub const CERT_AUTH_ROOT_AUTO_UPDATE_FLAGS_VALUE_NAME: &'static [u8; 6usize] = b"Flags\0";
pub const CERT_AUTH_ROOT_AUTO_UPDATE_DISABLE_UNTRUSTED_ROOT_LOGGING_FLAG: u32 = 1;
pub const CERT_AUTH_ROOT_AUTO_UPDATE_DISABLE_PARTIAL_CHAIN_LOGGING_FLAG: u32 = 2;
pub const CERT_AUTO_UPDATE_DISABLE_RANDOM_QUERY_STRING_FLAG: u32 = 4;
pub const CERT_AUTH_ROOT_AUTO_UPDATE_LAST_SYNC_TIME_VALUE_NAME: &'static [u8; 13usize] =
    b"LastSyncTime\0";
pub const CERT_AUTH_ROOT_AUTO_UPDATE_ENCODED_CTL_VALUE_NAME: &'static [u8; 11usize] =
    b"EncodedCtl\0";
pub const CERT_AUTH_ROOT_CTL_FILENAME: &'static [u8; 13usize] = b"authroot.stl\0";
pub const CERT_AUTH_ROOT_CTL_FILENAME_A: &'static [u8; 13usize] = b"authroot.stl\0";
pub const CERT_AUTH_ROOT_CAB_FILENAME: &'static [u8; 16usize] = b"authrootstl.cab\0";
pub const CERT_AUTH_ROOT_SEQ_FILENAME: &'static [u8; 16usize] = b"authrootseq.txt\0";
pub const CERT_AUTH_ROOT_CERT_EXT: &'static [u8; 5usize] = b".crt\0";
pub const CERT_DISALLOWED_CERT_AUTO_UPDATE_SYNC_DELTA_TIME_VALUE_NAME: &'static [u8; 28usize] =
    b"DisallowedCertSyncDeltaTime\0";
pub const CERT_DISALLOWED_CERT_AUTO_UPDATE_LAST_SYNC_TIME_VALUE_NAME: &'static [u8; 27usize] =
    b"DisallowedCertLastSyncTime\0";
pub const CERT_DISALLOWED_CERT_AUTO_UPDATE_ENCODED_CTL_VALUE_NAME: &'static [u8; 25usize] =
    b"DisallowedCertEncodedCtl\0";
pub const CERT_DISALLOWED_CERT_CTL_FILENAME: &'static [u8; 19usize] = b"disallowedcert.stl\0";
pub const CERT_DISALLOWED_CERT_CTL_FILENAME_A: &'static [u8; 19usize] = b"disallowedcert.stl\0";
pub const CERT_DISALLOWED_CERT_CAB_FILENAME: &'static [u8; 22usize] = b"disallowedcertstl.cab\0";
pub const CERT_DISALLOWED_CERT_AUTO_UPDATE_LIST_IDENTIFIER: &'static [u8; 28usize] =
    b"DisallowedCert_AutoUpdate_1\0";
pub const CERT_PIN_RULES_AUTO_UPDATE_SYNC_DELTA_TIME_VALUE_NAME: &'static [u8; 22usize] =
    b"PinRulesSyncDeltaTime\0";
pub const CERT_PIN_RULES_AUTO_UPDATE_LAST_SYNC_TIME_VALUE_NAME: &'static [u8; 21usize] =
    b"PinRulesLastSyncTime\0";
pub const CERT_PIN_RULES_AUTO_UPDATE_ENCODED_CTL_VALUE_NAME: &'static [u8; 19usize] =
    b"PinRulesEncodedCtl\0";
pub const CERT_PIN_RULES_CTL_FILENAME: &'static [u8; 13usize] = b"pinrules.stl\0";
pub const CERT_PIN_RULES_CTL_FILENAME_A: &'static [u8; 13usize] = b"pinrules.stl\0";
pub const CERT_PIN_RULES_CAB_FILENAME: &'static [u8; 16usize] = b"pinrulesstl.cab\0";
pub const CERT_PIN_RULES_AUTO_UPDATE_LIST_IDENTIFIER: &'static [u8; 22usize] =
    b"PinRules_AutoUpdate_1\0";
pub const CERT_REGISTRY_STORE_REMOTE_FLAG: u32 = 65536;
pub const CERT_REGISTRY_STORE_SERIALIZED_FLAG: u32 = 131072;
pub const CERT_REGISTRY_STORE_CLIENT_GPT_FLAG: u32 = 2147483648;
pub const CERT_REGISTRY_STORE_LM_GPT_FLAG: u32 = 16777216;
pub const CERT_REGISTRY_STORE_ROAMING_FLAG: u32 = 262144;
pub const CERT_REGISTRY_STORE_MY_IE_DIRTY_FLAG: u32 = 524288;
pub const CERT_REGISTRY_STORE_EXTERNAL_FLAG: u32 = 1048576;
pub const CERT_IE_DIRTY_FLAGS_REGPATH: &'static [u8; 45usize] =
    b"Software\\Microsoft\\Cryptography\\IEDirtyFlags\0";
pub const CERT_FILE_STORE_COMMIT_ENABLE_FLAG: u32 = 65536;
pub const CERT_LDAP_STORE_SIGN_FLAG: u32 = 65536;
pub const CERT_LDAP_STORE_AREC_EXCLUSIVE_FLAG: u32 = 131072;
pub const CERT_LDAP_STORE_OPENED_FLAG: u32 = 262144;
pub const CERT_LDAP_STORE_UNBIND_FLAG: u32 = 524288;
pub const CRYPT_OID_OPEN_STORE_PROV_FUNC: &'static [u8; 21usize] = b"CertDllOpenStoreProv\0";
pub const CERT_STORE_PROV_EXTERNAL_FLAG: u32 = 1;
pub const CERT_STORE_PROV_DELETED_FLAG: u32 = 2;
pub const CERT_STORE_PROV_NO_PERSIST_FLAG: u32 = 4;
pub const CERT_STORE_PROV_SYSTEM_STORE_FLAG: u32 = 8;
pub const CERT_STORE_PROV_LM_SYSTEM_STORE_FLAG: u32 = 16;
pub const CERT_STORE_PROV_GP_SYSTEM_STORE_FLAG: u32 = 32;
pub const CERT_STORE_PROV_SHARED_USER_FLAG: u32 = 64;
pub const CERT_STORE_PROV_CLOSE_FUNC: u32 = 0;
pub const CERT_STORE_PROV_READ_CERT_FUNC: u32 = 1;
pub const CERT_STORE_PROV_WRITE_CERT_FUNC: u32 = 2;
pub const CERT_STORE_PROV_DELETE_CERT_FUNC: u32 = 3;
pub const CERT_STORE_PROV_SET_CERT_PROPERTY_FUNC: u32 = 4;
pub const CERT_STORE_PROV_READ_CRL_FUNC: u32 = 5;
pub const CERT_STORE_PROV_WRITE_CRL_FUNC: u32 = 6;
pub const CERT_STORE_PROV_DELETE_CRL_FUNC: u32 = 7;
pub const CERT_STORE_PROV_SET_CRL_PROPERTY_FUNC: u32 = 8;
pub const CERT_STORE_PROV_READ_CTL_FUNC: u32 = 9;
pub const CERT_STORE_PROV_WRITE_CTL_FUNC: u32 = 10;
pub const CERT_STORE_PROV_DELETE_CTL_FUNC: u32 = 11;
pub const CERT_STORE_PROV_SET_CTL_PROPERTY_FUNC: u32 = 12;
pub const CERT_STORE_PROV_CONTROL_FUNC: u32 = 13;
pub const CERT_STORE_PROV_FIND_CERT_FUNC: u32 = 14;
pub const CERT_STORE_PROV_FREE_FIND_CERT_FUNC: u32 = 15;
pub const CERT_STORE_PROV_GET_CERT_PROPERTY_FUNC: u32 = 16;
pub const CERT_STORE_PROV_FIND_CRL_FUNC: u32 = 17;
pub const CERT_STORE_PROV_FREE_FIND_CRL_FUNC: u32 = 18;
pub const CERT_STORE_PROV_GET_CRL_PROPERTY_FUNC: u32 = 19;
pub const CERT_STORE_PROV_FIND_CTL_FUNC: u32 = 20;
pub const CERT_STORE_PROV_FREE_FIND_CTL_FUNC: u32 = 21;
pub const CERT_STORE_PROV_GET_CTL_PROPERTY_FUNC: u32 = 22;
pub const CERT_STORE_PROV_WRITE_ADD_FLAG: u32 = 1;
pub const CERT_STORE_SAVE_AS_STORE: u32 = 1;
pub const CERT_STORE_SAVE_AS_PKCS7: u32 = 2;
pub const CERT_STORE_SAVE_AS_PKCS12: u32 = 3;
pub const CERT_STORE_SAVE_TO_FILE: u32 = 1;
pub const CERT_STORE_SAVE_TO_MEMORY: u32 = 2;
pub const CERT_STORE_SAVE_TO_FILENAME_A: u32 = 3;
pub const CERT_STORE_SAVE_TO_FILENAME_W: u32 = 4;
pub const CERT_STORE_SAVE_TO_FILENAME: u32 = 4;
pub const CERT_CLOSE_STORE_FORCE_FLAG: u32 = 1;
pub const CERT_CLOSE_STORE_CHECK_FLAG: u32 = 2;
pub const CERT_COMPARE_MASK: u32 = 65535;
pub const CERT_COMPARE_SHIFT: u32 = 16;
pub const CERT_COMPARE_ANY: u32 = 0;
pub const CERT_COMPARE_SHA1_HASH: u32 = 1;
pub const CERT_COMPARE_NAME: u32 = 2;
pub const CERT_COMPARE_ATTR: u32 = 3;
pub const CERT_COMPARE_MD5_HASH: u32 = 4;
pub const CERT_COMPARE_PROPERTY: u32 = 5;
pub const CERT_COMPARE_PUBLIC_KEY: u32 = 6;
pub const CERT_COMPARE_HASH: u32 = 1;
pub const CERT_COMPARE_NAME_STR_A: u32 = 7;
pub const CERT_COMPARE_NAME_STR_W: u32 = 8;
pub const CERT_COMPARE_KEY_SPEC: u32 = 9;
pub const CERT_COMPARE_ENHKEY_USAGE: u32 = 10;
pub const CERT_COMPARE_CTL_USAGE: u32 = 10;
pub const CERT_COMPARE_SUBJECT_CERT: u32 = 11;
pub const CERT_COMPARE_ISSUER_OF: u32 = 12;
pub const CERT_COMPARE_EXISTING: u32 = 13;
pub const CERT_COMPARE_SIGNATURE_HASH: u32 = 14;
pub const CERT_COMPARE_KEY_IDENTIFIER: u32 = 15;
pub const CERT_COMPARE_CERT_ID: u32 = 16;
pub const CERT_COMPARE_CROSS_CERT_DIST_POINTS: u32 = 17;
pub const CERT_COMPARE_PUBKEY_MD5_HASH: u32 = 18;
pub const CERT_COMPARE_SUBJECT_INFO_ACCESS: u32 = 19;
pub const CERT_COMPARE_HASH_STR: u32 = 20;
pub const CERT_COMPARE_HAS_PRIVATE_KEY: u32 = 21;
pub const CERT_FIND_ANY: u32 = 0;
pub const CERT_FIND_SHA1_HASH: u32 = 65536;
pub const CERT_FIND_MD5_HASH: u32 = 262144;
pub const CERT_FIND_SIGNATURE_HASH: u32 = 917504;
pub const CERT_FIND_KEY_IDENTIFIER: u32 = 983040;
pub const CERT_FIND_HASH: u32 = 65536;
pub const CERT_FIND_PROPERTY: u32 = 327680;
pub const CERT_FIND_PUBLIC_KEY: u32 = 393216;
pub const CERT_FIND_SUBJECT_NAME: u32 = 131079;
pub const CERT_FIND_SUBJECT_ATTR: u32 = 196615;
pub const CERT_FIND_ISSUER_NAME: u32 = 131076;
pub const CERT_FIND_ISSUER_ATTR: u32 = 196612;
pub const CERT_FIND_SUBJECT_STR_A: u32 = 458759;
pub const CERT_FIND_SUBJECT_STR_W: u32 = 524295;
pub const CERT_FIND_SUBJECT_STR: u32 = 524295;
pub const CERT_FIND_ISSUER_STR_A: u32 = 458756;
pub const CERT_FIND_ISSUER_STR_W: u32 = 524292;
pub const CERT_FIND_ISSUER_STR: u32 = 524292;
pub const CERT_FIND_KEY_SPEC: u32 = 589824;
pub const CERT_FIND_ENHKEY_USAGE: u32 = 655360;
pub const CERT_FIND_CTL_USAGE: u32 = 655360;
pub const CERT_FIND_SUBJECT_CERT: u32 = 720896;
pub const CERT_FIND_ISSUER_OF: u32 = 786432;
pub const CERT_FIND_EXISTING: u32 = 851968;
pub const CERT_FIND_CERT_ID: u32 = 1048576;
pub const CERT_FIND_CROSS_CERT_DIST_POINTS: u32 = 1114112;
pub const CERT_FIND_PUBKEY_MD5_HASH: u32 = 1179648;
pub const CERT_FIND_SUBJECT_INFO_ACCESS: u32 = 1245184;
pub const CERT_FIND_HASH_STR: u32 = 1310720;
pub const CERT_FIND_HAS_PRIVATE_KEY: u32 = 1376256;
pub const CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG: u32 = 1;
pub const CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG: u32 = 2;
pub const CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG: u32 = 4;
pub const CERT_FIND_NO_ENHKEY_USAGE_FLAG: u32 = 8;
pub const CERT_FIND_OR_ENHKEY_USAGE_FLAG: u32 = 16;
pub const CERT_FIND_VALID_ENHKEY_USAGE_FLAG: u32 = 32;
pub const CERT_FIND_OPTIONAL_CTL_USAGE_FLAG: u32 = 1;
pub const CERT_FIND_EXT_ONLY_CTL_USAGE_FLAG: u32 = 2;
pub const CERT_FIND_PROP_ONLY_CTL_USAGE_FLAG: u32 = 4;
pub const CERT_FIND_NO_CTL_USAGE_FLAG: u32 = 8;
pub const CERT_FIND_OR_CTL_USAGE_FLAG: u32 = 16;
pub const CERT_FIND_VALID_CTL_USAGE_FLAG: u32 = 32;
pub const CERT_SET_PROPERTY_IGNORE_PERSIST_ERROR_FLAG: u32 = 2147483648;
pub const CERT_SET_PROPERTY_INHIBIT_PERSIST_FLAG: u32 = 1073741824;
pub const CTL_ENTRY_FROM_PROP_CHAIN_FLAG: u32 = 1;
pub const CRL_FIND_ANY: u32 = 0;
pub const CRL_FIND_ISSUED_BY: u32 = 1;
pub const CRL_FIND_EXISTING: u32 = 2;
pub const CRL_FIND_ISSUED_FOR: u32 = 3;
pub const CRL_FIND_ISSUED_BY_AKI_FLAG: u32 = 1;
pub const CRL_FIND_ISSUED_BY_SIGNATURE_FLAG: u32 = 2;
pub const CRL_FIND_ISSUED_BY_DELTA_FLAG: u32 = 4;
pub const CRL_FIND_ISSUED_BY_BASE_FLAG: u32 = 8;
pub const CRL_FIND_ISSUED_FOR_SET_STRONG_PROPERTIES_FLAG: u32 = 16;
pub const CERT_STORE_ADD_NEW: u32 = 1;
pub const CERT_STORE_ADD_USE_EXISTING: u32 = 2;
pub const CERT_STORE_ADD_REPLACE_EXISTING: u32 = 3;
pub const CERT_STORE_ADD_ALWAYS: u32 = 4;
pub const CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES: u32 = 5;
pub const CERT_STORE_ADD_NEWER: u32 = 6;
pub const CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES: u32 = 7;
pub const CERT_STORE_CERTIFICATE_CONTEXT: u32 = 1;
pub const CERT_STORE_CRL_CONTEXT: u32 = 2;
pub const CERT_STORE_CTL_CONTEXT: u32 = 3;
pub const CERT_STORE_ALL_CONTEXT_FLAG: i32 = -1;
pub const CERT_STORE_CERTIFICATE_CONTEXT_FLAG: u32 = 2;
pub const CERT_STORE_CRL_CONTEXT_FLAG: u32 = 4;
pub const CERT_STORE_CTL_CONTEXT_FLAG: u32 = 8;
pub const CTL_ANY_SUBJECT_TYPE: u32 = 1;
pub const CTL_CERT_SUBJECT_TYPE: u32 = 2;
pub const CTL_FIND_ANY: u32 = 0;
pub const CTL_FIND_SHA1_HASH: u32 = 1;
pub const CTL_FIND_MD5_HASH: u32 = 2;
pub const CTL_FIND_USAGE: u32 = 3;
pub const CTL_FIND_SUBJECT: u32 = 4;
pub const CTL_FIND_EXISTING: u32 = 5;
pub const CTL_FIND_NO_LIST_ID_CBDATA: u32 = 4294967295;
pub const CTL_FIND_SAME_USAGE_FLAG: u32 = 1;
pub const CERT_STORE_CTRL_RESYNC: u32 = 1;
pub const CERT_STORE_CTRL_NOTIFY_CHANGE: u32 = 2;
pub const CERT_STORE_CTRL_COMMIT: u32 = 3;
pub const CERT_STORE_CTRL_AUTO_RESYNC: u32 = 4;
pub const CERT_STORE_CTRL_CANCEL_NOTIFY: u32 = 5;
pub const CERT_STORE_CTRL_INHIBIT_DUPLICATE_HANDLE_FLAG: u32 = 1;
pub const CERT_STORE_CTRL_COMMIT_FORCE_FLAG: u32 = 1;
pub const CERT_STORE_CTRL_COMMIT_CLEAR_FLAG: u32 = 2;
pub const CERT_STORE_LOCALIZED_NAME_PROP_ID: u32 = 4096;
pub const CERT_CREATE_CONTEXT_NOCOPY_FLAG: u32 = 1;
pub const CERT_CREATE_CONTEXT_SORTED_FLAG: u32 = 2;
pub const CERT_CREATE_CONTEXT_NO_HCRYPTMSG_FLAG: u32 = 4;
pub const CERT_CREATE_CONTEXT_NO_ENTRY_FLAG: u32 = 8;
pub const CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG: u32 = 1;
pub const CERT_PHYSICAL_STORE_OPEN_DISABLE_FLAG: u32 = 2;
pub const CERT_PHYSICAL_STORE_REMOTE_OPEN_DISABLE_FLAG: u32 = 4;
pub const CERT_PHYSICAL_STORE_INSERT_COMPUTER_NAME_ENABLE_FLAG: u32 = 8;
pub const CERT_PHYSICAL_STORE_PREDEFINED_ENUM_FLAG: u32 = 1;
pub const CERT_PHYSICAL_STORE_DEFAULT_NAME: &'static [u8; 9usize] = b".Default\0";
pub const CERT_PHYSICAL_STORE_GROUP_POLICY_NAME: &'static [u8; 13usize] = b".GroupPolicy\0";
pub const CERT_PHYSICAL_STORE_LOCAL_MACHINE_NAME: &'static [u8; 14usize] = b".LocalMachine\0";
pub const CERT_PHYSICAL_STORE_DS_USER_CERTIFICATE_NAME: &'static [u8; 17usize] =
    b".UserCertificate\0";
pub const CERT_PHYSICAL_STORE_LOCAL_MACHINE_GROUP_POLICY_NAME: &'static [u8; 25usize] =
    b".LocalMachineGroupPolicy\0";
pub const CERT_PHYSICAL_STORE_ENTERPRISE_NAME: &'static [u8; 12usize] = b".Enterprise\0";
pub const CERT_PHYSICAL_STORE_AUTH_ROOT_NAME: &'static [u8; 10usize] = b".AuthRoot\0";
pub const CERT_PHYSICAL_STORE_SMART_CARD_NAME: &'static [u8; 11usize] = b".SmartCard\0";
pub const CRYPT_OID_OPEN_SYSTEM_STORE_PROV_FUNC: &'static [u8; 27usize] =
    b"CertDllOpenSystemStoreProv\0";
pub const CRYPT_OID_REGISTER_SYSTEM_STORE_FUNC: &'static [u8; 27usize] =
    b"CertDllRegisterSystemStore\0";
pub const CRYPT_OID_UNREGISTER_SYSTEM_STORE_FUNC: &'static [u8; 29usize] =
    b"CertDllUnregisterSystemStore\0";
pub const CRYPT_OID_ENUM_SYSTEM_STORE_FUNC: &'static [u8; 23usize] = b"CertDllEnumSystemStore\0";
pub const CRYPT_OID_REGISTER_PHYSICAL_STORE_FUNC: &'static [u8; 29usize] =
    b"CertDllRegisterPhysicalStore\0";
pub const CRYPT_OID_UNREGISTER_PHYSICAL_STORE_FUNC: &'static [u8; 31usize] =
    b"CertDllUnregisterPhysicalStore\0";
pub const CRYPT_OID_ENUM_PHYSICAL_STORE_FUNC: &'static [u8; 25usize] =
    b"CertDllEnumPhysicalStore\0";
pub const CRYPT_OID_SYSTEM_STORE_LOCATION_VALUE_NAME: &'static [u8; 20usize] =
    b"SystemStoreLocation\0";
pub const CMSG_TRUSTED_SIGNER_FLAG: u32 = 1;
pub const CMSG_SIGNER_ONLY_FLAG: u32 = 2;
pub const CMSG_USE_SIGNER_INDEX_FLAG: u32 = 4;
pub const CMSG_CMS_ENCAPSULATED_CTL_FLAG: u32 = 32768;
pub const CMSG_ENCODE_SORTED_CTL_FLAG: u32 = 1;
pub const CMSG_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG: u32 = 2;
pub const CERT_VERIFY_INHIBIT_CTL_UPDATE_FLAG: u32 = 1;
pub const CERT_VERIFY_TRUSTED_SIGNERS_FLAG: u32 = 2;
pub const CERT_VERIFY_NO_TIME_CHECK_FLAG: u32 = 4;
pub const CERT_VERIFY_ALLOW_MORE_USAGE_FLAG: u32 = 8;
pub const CERT_VERIFY_UPDATED_CTL_FLAG: u32 = 1;
pub const CERT_CONTEXT_REVOCATION_TYPE: u32 = 1;
pub const CERT_VERIFY_REV_CHAIN_FLAG: u32 = 1;
pub const CERT_VERIFY_CACHE_ONLY_BASED_REVOCATION: u32 = 2;
pub const CERT_VERIFY_REV_ACCUMULATIVE_TIMEOUT_FLAG: u32 = 4;
pub const CERT_VERIFY_REV_SERVER_OCSP_FLAG: u32 = 8;
pub const CERT_VERIFY_REV_NO_OCSP_FAILOVER_TO_CRL_FLAG: u32 = 16;
pub const CERT_VERIFY_REV_SERVER_OCSP_WIRE_ONLY_FLAG: u32 = 32;
pub const CERT_UNICODE_IS_RDN_ATTRS_FLAG: u32 = 1;
pub const CERT_CASE_INSENSITIVE_IS_RDN_ATTRS_FLAG: u32 = 2;
pub const CRYPT_VERIFY_CERT_SIGN_SUBJECT_BLOB: u32 = 1;
pub const CRYPT_VERIFY_CERT_SIGN_SUBJECT_CERT: u32 = 2;
pub const CRYPT_VERIFY_CERT_SIGN_SUBJECT_CRL: u32 = 3;
pub const CRYPT_VERIFY_CERT_SIGN_SUBJECT_OCSP_BASIC_SIGNED_RESPONSE: u32 = 4;
pub const CRYPT_VERIFY_CERT_SIGN_ISSUER_PUBKEY: u32 = 1;
pub const CRYPT_VERIFY_CERT_SIGN_ISSUER_CERT: u32 = 2;
pub const CRYPT_VERIFY_CERT_SIGN_ISSUER_CHAIN: u32 = 3;
pub const CRYPT_VERIFY_CERT_SIGN_ISSUER_NULL: u32 = 4;
pub const CRYPT_VERIFY_CERT_SIGN_DISABLE_MD2_MD4_FLAG: u32 = 1;
pub const CRYPT_VERIFY_CERT_SIGN_SET_STRONG_PROPERTIES_FLAG: u32 = 2;
pub const CRYPT_VERIFY_CERT_SIGN_RETURN_STRONG_PROPERTIES_FLAG: u32 = 4;
pub const CRYPT_VERIFY_CERT_SIGN_CHECK_WEAK_HASH_FLAG: u32 = 8;
pub const CRYPT_OID_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC: &'static [u8; 42usize] =
    b"CryptDllExtractEncodedSignatureParameters\0";
pub const CRYPT_OID_SIGN_AND_ENCODE_HASH_FUNC: &'static [u8; 26usize] =
    b"CryptDllSignAndEncodeHash\0";
pub const CRYPT_OID_VERIFY_ENCODED_SIGNATURE_FUNC: &'static [u8; 31usize] =
    b"CryptDllVerifyEncodedSignature\0";
pub const CRYPT_DEFAULT_CONTEXT_AUTO_RELEASE_FLAG: u32 = 1;
pub const CRYPT_DEFAULT_CONTEXT_PROCESS_FLAG: u32 = 2;
pub const CRYPT_DEFAULT_CONTEXT_CERT_SIGN_OID: u32 = 1;
pub const CRYPT_DEFAULT_CONTEXT_MULTI_CERT_SIGN_OID: u32 = 2;
pub const CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_FUNC: &'static [u8; 30usize] =
    b"CryptDllExportPublicKeyInfoEx\0";
pub const CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC: &'static [u8; 31usize] =
    b"CryptDllExportPublicKeyInfoEx2\0";
pub const CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_FROM_BCRYPT_HANDLE_FUNC: &'static [u8; 47usize] =
    b"CryptDllExportPublicKeyInfoFromBCryptKeyHandle\0";
pub const CRYPT_OID_IMPORT_PUBLIC_KEY_INFO_FUNC: &'static [u8; 30usize] =
    b"CryptDllImportPublicKeyInfoEx\0";
pub const CRYPT_OID_IMPORT_PUBLIC_KEY_INFO_EX2_FUNC: &'static [u8; 31usize] =
    b"CryptDllImportPublicKeyInfoEx2\0";
pub const CRYPT_ACQUIRE_CACHE_FLAG: u32 = 1;
pub const CRYPT_ACQUIRE_USE_PROV_INFO_FLAG: u32 = 2;
pub const CRYPT_ACQUIRE_COMPARE_KEY_FLAG: u32 = 4;
pub const CRYPT_ACQUIRE_NO_HEALING: u32 = 8;
pub const CRYPT_ACQUIRE_SILENT_FLAG: u32 = 64;
pub const CRYPT_ACQUIRE_WINDOW_HANDLE_FLAG: u32 = 128;
pub const CRYPT_ACQUIRE_NCRYPT_KEY_FLAGS_MASK: u32 = 458752;
pub const CRYPT_ACQUIRE_ALLOW_NCRYPT_KEY_FLAG: u32 = 65536;
pub const CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG: u32 = 131072;
pub const CRYPT_ACQUIRE_ONLY_NCRYPT_KEY_FLAG: u32 = 262144;
pub const CRYPT_FIND_USER_KEYSET_FLAG: u32 = 1;
pub const CRYPT_FIND_MACHINE_KEYSET_FLAG: u32 = 2;
pub const CRYPT_FIND_SILENT_KEYSET_FLAG: u32 = 64;
pub const CRYPT_OID_IMPORT_PRIVATE_KEY_INFO_FUNC: &'static [u8; 31usize] =
    b"CryptDllImportPrivateKeyInfoEx\0";
pub const CRYPT_OID_EXPORT_PRIVATE_KEY_INFO_FUNC: &'static [u8; 31usize] =
    b"CryptDllExportPrivateKeyInfoEx\0";
pub const CRYPT_DELETE_KEYSET: u32 = 16;
pub const CERT_SIMPLE_NAME_STR: u32 = 1;
pub const CERT_OID_NAME_STR: u32 = 2;
pub const CERT_X500_NAME_STR: u32 = 3;
pub const CERT_XML_NAME_STR: u32 = 4;
pub const CERT_NAME_STR_SEMICOLON_FLAG: u32 = 1073741824;
pub const CERT_NAME_STR_NO_PLUS_FLAG: u32 = 536870912;
pub const CERT_NAME_STR_NO_QUOTING_FLAG: u32 = 268435456;
pub const CERT_NAME_STR_CRLF_FLAG: u32 = 134217728;
pub const CERT_NAME_STR_COMMA_FLAG: u32 = 67108864;
pub const CERT_NAME_STR_REVERSE_FLAG: u32 = 33554432;
pub const CERT_NAME_STR_FORWARD_FLAG: u32 = 16777216;
pub const CERT_NAME_STR_DISABLE_IE4_UTF8_FLAG: u32 = 65536;
pub const CERT_NAME_STR_ENABLE_T61_UNICODE_FLAG: u32 = 131072;
pub const CERT_NAME_STR_ENABLE_UTF8_UNICODE_FLAG: u32 = 262144;
pub const CERT_NAME_STR_FORCE_UTF8_DIR_STR_FLAG: u32 = 524288;
pub const CERT_NAME_STR_DISABLE_UTF8_DIR_STR_FLAG: u32 = 1048576;
pub const CERT_NAME_STR_ENABLE_PUNYCODE_FLAG: u32 = 2097152;
pub const CERT_NAME_EMAIL_TYPE: u32 = 1;
pub const CERT_NAME_RDN_TYPE: u32 = 2;
pub const CERT_NAME_ATTR_TYPE: u32 = 3;
pub const CERT_NAME_SIMPLE_DISPLAY_TYPE: u32 = 4;
pub const CERT_NAME_FRIENDLY_DISPLAY_TYPE: u32 = 5;
pub const CERT_NAME_DNS_TYPE: u32 = 6;
pub const CERT_NAME_URL_TYPE: u32 = 7;
pub const CERT_NAME_UPN_TYPE: u32 = 8;
pub const CERT_NAME_ISSUER_FLAG: u32 = 1;
pub const CERT_NAME_DISABLE_IE4_UTF8_FLAG: u32 = 65536;
pub const CERT_NAME_SEARCH_ALL_NAMES_FLAG: u32 = 2;
pub const CRYPT_MESSAGE_BARE_CONTENT_OUT_FLAG: u32 = 1;
pub const CRYPT_MESSAGE_ENCAPSULATED_CONTENT_OUT_FLAG: u32 = 2;
pub const CRYPT_MESSAGE_KEYID_SIGNER_FLAG: u32 = 4;
pub const CRYPT_MESSAGE_SILENT_KEYSET_FLAG: u32 = 64;
pub const CRYPT_MESSAGE_KEYID_RECIPIENT_FLAG: u32 = 4;
pub const CERT_QUERY_OBJECT_FILE: u32 = 1;
pub const CERT_QUERY_OBJECT_BLOB: u32 = 2;
pub const CERT_QUERY_CONTENT_CERT: u32 = 1;
pub const CERT_QUERY_CONTENT_CTL: u32 = 2;
pub const CERT_QUERY_CONTENT_CRL: u32 = 3;
pub const CERT_QUERY_CONTENT_SERIALIZED_STORE: u32 = 4;
pub const CERT_QUERY_CONTENT_SERIALIZED_CERT: u32 = 5;
pub const CERT_QUERY_CONTENT_SERIALIZED_CTL: u32 = 6;
pub const CERT_QUERY_CONTENT_SERIALIZED_CRL: u32 = 7;
pub const CERT_QUERY_CONTENT_PKCS7_SIGNED: u32 = 8;
pub const CERT_QUERY_CONTENT_PKCS7_UNSIGNED: u32 = 9;
pub const CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED: u32 = 10;
pub const CERT_QUERY_CONTENT_PKCS10: u32 = 11;
pub const CERT_QUERY_CONTENT_PFX: u32 = 12;
pub const CERT_QUERY_CONTENT_CERT_PAIR: u32 = 13;
pub const CERT_QUERY_CONTENT_PFX_AND_LOAD: u32 = 14;
pub const CERT_QUERY_CONTENT_FLAG_CERT: u32 = 2;
pub const CERT_QUERY_CONTENT_FLAG_CTL: u32 = 4;
pub const CERT_QUERY_CONTENT_FLAG_CRL: u32 = 8;
pub const CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE: u32 = 16;
pub const CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT: u32 = 32;
pub const CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL: u32 = 64;
pub const CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL: u32 = 128;
pub const CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED: u32 = 256;
pub const CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED: u32 = 512;
pub const CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED: u32 = 1024;
pub const CERT_QUERY_CONTENT_FLAG_PKCS10: u32 = 2048;
pub const CERT_QUERY_CONTENT_FLAG_PFX: u32 = 4096;
pub const CERT_QUERY_CONTENT_FLAG_CERT_PAIR: u32 = 8192;
pub const CERT_QUERY_CONTENT_FLAG_PFX_AND_LOAD: u32 = 16384;
pub const CERT_QUERY_CONTENT_FLAG_ALL: u32 = 16382;
pub const CERT_QUERY_CONTENT_FLAG_ALL_ISSUER_CERT: u32 = 818;
pub const CERT_QUERY_FORMAT_BINARY: u32 = 1;
pub const CERT_QUERY_FORMAT_BASE64_ENCODED: u32 = 2;
pub const CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED: u32 = 3;
pub const CERT_QUERY_FORMAT_FLAG_BINARY: u32 = 2;
pub const CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED: u32 = 4;
pub const CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED: u32 = 8;
pub const CERT_QUERY_FORMAT_FLAG_ALL: u32 = 14;
pub const SCHEME_OID_RETRIEVE_ENCODED_OBJECT_FUNC: &'static [u8; 31usize] =
    b"SchemeDllRetrieveEncodedObject\0";
pub const SCHEME_OID_RETRIEVE_ENCODED_OBJECTW_FUNC: &'static [u8; 32usize] =
    b"SchemeDllRetrieveEncodedObjectW\0";
pub const CONTEXT_OID_CREATE_OBJECT_CONTEXT_FUNC: &'static [u8; 30usize] =
    b"ContextDllCreateObjectContext\0";
pub const CRYPT_RETRIEVE_MULTIPLE_OBJECTS: u32 = 1;
pub const CRYPT_CACHE_ONLY_RETRIEVAL: u32 = 2;
pub const CRYPT_WIRE_ONLY_RETRIEVAL: u32 = 4;
pub const CRYPT_DONT_CACHE_RESULT: u32 = 8;
pub const CRYPT_ASYNC_RETRIEVAL: u32 = 16;
pub const CRYPT_STICKY_CACHE_RETRIEVAL: u32 = 4096;
pub const CRYPT_LDAP_SCOPE_BASE_ONLY_RETRIEVAL: u32 = 8192;
pub const CRYPT_OFFLINE_CHECK_RETRIEVAL: u32 = 16384;
pub const CRYPT_LDAP_INSERT_ENTRY_ATTRIBUTE: u32 = 32768;
pub const CRYPT_LDAP_SIGN_RETRIEVAL: u32 = 65536;
pub const CRYPT_NO_AUTH_RETRIEVAL: u32 = 131072;
pub const CRYPT_LDAP_AREC_EXCLUSIVE_RETRIEVAL: u32 = 262144;
pub const CRYPT_AIA_RETRIEVAL: u32 = 524288;
pub const CRYPT_HTTP_POST_RETRIEVAL: u32 = 1048576;
pub const CRYPT_PROXY_CACHE_RETRIEVAL: u32 = 2097152;
pub const CRYPT_NOT_MODIFIED_RETRIEVAL: u32 = 4194304;
pub const CRYPT_ENABLE_SSL_REVOCATION_RETRIEVAL: u32 = 8388608;
pub const CRYPT_RANDOM_QUERY_STRING_RETRIEVAL: u32 = 67108864;
pub const CRYPT_ENABLE_FILE_RETRIEVAL: u32 = 134217728;
pub const CRYPT_CREATE_NEW_FLUSH_ENTRY: u32 = 268435456;
pub const CRYPT_VERIFY_CONTEXT_SIGNATURE: u32 = 32;
pub const CRYPT_VERIFY_DATA_HASH: u32 = 64;
pub const CRYPT_KEEP_TIME_VALID: u32 = 128;
pub const CRYPT_DONT_VERIFY_SIGNATURE: u32 = 256;
pub const CRYPT_DONT_CHECK_TIME_VALIDITY: u32 = 512;
pub const CRYPT_CHECK_FRESHNESS_TIME_VALIDITY: u32 = 1024;
pub const CRYPT_ACCUMULATIVE_TIMEOUT: u32 = 2048;
pub const CRYPT_OCSP_ONLY_RETRIEVAL: u32 = 16777216;
pub const CRYPT_NO_OCSP_FAILOVER_TO_CRL_RETRIEVAL: u32 = 33554432;
pub const CRYPTNET_URL_CACHE_PRE_FETCH_NONE: u32 = 0;
pub const CRYPTNET_URL_CACHE_PRE_FETCH_BLOB: u32 = 1;
pub const CRYPTNET_URL_CACHE_PRE_FETCH_CRL: u32 = 2;
pub const CRYPTNET_URL_CACHE_PRE_FETCH_OCSP: u32 = 3;
pub const CRYPTNET_URL_CACHE_PRE_FETCH_AUTOROOT_CAB: u32 = 5;
pub const CRYPTNET_URL_CACHE_PRE_FETCH_DISALLOWED_CERT_CAB: u32 = 6;
pub const CRYPTNET_URL_CACHE_PRE_FETCH_PIN_RULES_CAB: u32 = 7;
pub const CRYPTNET_URL_CACHE_DEFAULT_FLUSH: u32 = 0;
pub const CRYPTNET_URL_CACHE_DISABLE_FLUSH: u32 = 4294967295;
pub const CRYPTNET_URL_CACHE_RESPONSE_NONE: u32 = 0;
pub const CRYPTNET_URL_CACHE_RESPONSE_HTTP: u32 = 1;
pub const CRYPTNET_URL_CACHE_RESPONSE_VALIDATED: u32 = 32768;
pub const CRYPT_RETRIEVE_MAX_ERROR_CONTENT_LENGTH: u32 = 4096;
pub const CRYPT_GET_URL_FROM_PROPERTY: u32 = 1;
pub const CRYPT_GET_URL_FROM_EXTENSION: u32 = 2;
pub const CRYPT_GET_URL_FROM_UNAUTH_ATTRIBUTE: u32 = 4;
pub const CRYPT_GET_URL_FROM_AUTH_ATTRIBUTE: u32 = 8;
pub const URL_OID_GET_OBJECT_URL_FUNC: &'static [u8; 19usize] = b"UrlDllGetObjectUrl\0";
pub const TIME_VALID_OID_GET_OBJECT_FUNC: &'static [u8; 22usize] = b"TimeValidDllGetObject\0";
pub const TIME_VALID_OID_FLUSH_OBJECT_FUNC: &'static [u8; 24usize] = b"TimeValidDllFlushObject\0";
pub const CERT_CREATE_SELFSIGN_NO_SIGN: u32 = 1;
pub const CERT_CREATE_SELFSIGN_NO_KEY_INFO: u32 = 2;
pub const CRYPT_KEYID_MACHINE_FLAG: u32 = 32;
pub const CRYPT_KEYID_ALLOC_FLAG: u32 = 32768;
pub const CRYPT_KEYID_DELETE_FLAG: u32 = 16;
pub const CRYPT_KEYID_SET_NEW_FLAG: u32 = 8192;
pub const CERT_CHAIN_CONFIG_REGPATH : & 'static [u8 ; 94usize] = b"Software\\Microsoft\\Cryptography\\OID\\EncodingType 0\\CertDllCreateCertificateChainEngine\\Config\0" ;
pub const CERT_CHAIN_MAX_URL_RETRIEVAL_BYTE_COUNT_VALUE_NAME: &'static [u8; 25usize] =
    b"MaxUrlRetrievalByteCount\0";
pub const CERT_CHAIN_MAX_URL_RETRIEVAL_BYTE_COUNT_DEFAULT: u32 = 104857600;
pub const CERT_CHAIN_CACHE_RESYNC_FILETIME_VALUE_NAME: &'static [u8; 25usize] =
    b"ChainCacheResyncFiletime\0";
pub const CERT_CHAIN_DISABLE_MANDATORY_BASIC_CONSTRAINTS_VALUE_NAME: &'static [u8; 33usize] =
    b"DisableMandatoryBasicConstraints\0";
pub const CERT_CHAIN_DISABLE_CA_NAME_CONSTRAINTS_VALUE_NAME: &'static [u8; 25usize] =
    b"DisableCANameConstraints\0";
pub const CERT_CHAIN_DISABLE_UNSUPPORTED_CRITICAL_EXTENSIONS_VALUE_NAME: &'static [u8; 37usize] =
    b"DisableUnsupportedCriticalExtensions\0";
pub const CERT_CHAIN_MAX_AIA_URL_COUNT_IN_CERT_VALUE_NAME: &'static [u8; 21usize] =
    b"MaxAIAUrlCountInCert\0";
pub const CERT_CHAIN_MAX_AIA_URL_COUNT_IN_CERT_DEFAULT: u32 = 5;
pub const CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_COUNT_PER_CHAIN_VALUE_NAME: &'static [u8; 32usize] =
    b"MaxAIAUrlRetrievalCountPerChain\0";
pub const CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_COUNT_PER_CHAIN_DEFAULT: u32 = 3;
pub const CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_BYTE_COUNT_VALUE_NAME: &'static [u8; 28usize] =
    b"MaxAIAUrlRetrievalByteCount\0";
pub const CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_BYTE_COUNT_DEFAULT: u32 = 100000;
pub const CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_CERT_COUNT_VALUE_NAME: &'static [u8; 28usize] =
    b"MaxAIAUrlRetrievalCertCount\0";
pub const CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_CERT_COUNT_DEFAULT: u32 = 10;
pub const CERT_CHAIN_OCSP_VALIDITY_SECONDS_VALUE_NAME: &'static [u8; 20usize] =
    b"OcspValiditySeconds\0";
pub const CERT_CHAIN_OCSP_VALIDITY_SECONDS_DEFAULT: u32 = 43200;
pub const CERT_CHAIN_DISABLE_SERIAL_CHAIN_VALUE_NAME: &'static [u8; 19usize] =
    b"DisableSerialChain\0";
pub const CERT_CHAIN_SERIAL_CHAIN_LOG_FILE_NAME_VALUE_NAME: &'static [u8; 23usize] =
    b"SerialChainLogFileName\0";
pub const CERT_CHAIN_DISABLE_SYNC_WITH_SSL_TIME_VALUE_NAME: &'static [u8; 23usize] =
    b"DisableSyncWithSslTime\0";
pub const CERT_CHAIN_MAX_SSL_TIME_UPDATED_EVENT_COUNT_VALUE_NAME: &'static [u8; 28usize] =
    b"MaxSslTimeUpdatedEventCount\0";
pub const CERT_CHAIN_MAX_SSL_TIME_UPDATED_EVENT_COUNT_DEFAULT: u32 = 5;
pub const CERT_CHAIN_MAX_SSL_TIME_UPDATED_EVENT_COUNT_DISABLE: u32 = 4294967295;
pub const CERT_CHAIN_SSL_HANDSHAKE_LOG_FILE_NAME_VALUE_NAME: &'static [u8; 24usize] =
    b"SslHandshakeLogFileName\0";
pub const CERT_CHAIN_ENABLE_WEAK_SIGNATURE_FLAGS_VALUE_NAME: &'static [u8; 25usize] =
    b"EnableWeakSignatureFlags\0";
pub const CERT_CHAIN_ENABLE_MD2_MD4_FLAG: u32 = 1;
pub const CERT_CHAIN_ENABLE_WEAK_RSA_ROOT_FLAG: u32 = 2;
pub const CERT_CHAIN_ENABLE_WEAK_LOGGING_FLAG: u32 = 4;
pub const CERT_CHAIN_ENABLE_ONLY_WEAK_LOGGING_FLAG: u32 = 8;
pub const CERT_CHAIN_MIN_RSA_PUB_KEY_BIT_LENGTH_VALUE_NAME: &'static [u8; 22usize] =
    b"MinRsaPubKeyBitLength\0";
pub const CERT_CHAIN_MIN_RSA_PUB_KEY_BIT_LENGTH_DEFAULT: u32 = 1023;
pub const CERT_CHAIN_MIN_RSA_PUB_KEY_BIT_LENGTH_DISABLE: u32 = 4294967295;
pub const CERT_CHAIN_WEAK_RSA_PUB_KEY_TIME_VALUE_NAME: &'static [u8; 18usize] =
    b"WeakRsaPubKeyTime\0";
pub const CERT_CHAIN_WEAK_SIGNATURE_LOG_DIR_VALUE_NAME: &'static [u8; 20usize] =
    b"WeakSignatureLogDir\0";
pub const CERT_CHAIN_DEFAULT_CONFIG_SUBDIR: &'static [u8; 8usize] = b"Default\0";
pub const CERT_CHAIN_WEAK_PREFIX_NAME: &'static [u8; 5usize] = b"Weak\0";
pub const CERT_CHAIN_WEAK_THIRD_PARTY_CONFIG_NAME: &'static [u8; 11usize] = b"ThirdParty\0";
pub const CERT_CHAIN_WEAK_ALL_CONFIG_NAME: &'static [u8; 4usize] = b"All\0";
pub const CERT_CHAIN_WEAK_FLAGS_NAME: &'static [u8; 6usize] = b"Flags\0";
pub const CERT_CHAIN_WEAK_HYGIENE_NAME: &'static [u8; 8usize] = b"Hygiene\0";
pub const CERT_CHAIN_WEAK_AFTER_TIME_NAME: &'static [u8; 10usize] = b"AfterTime\0";
pub const CERT_CHAIN_WEAK_FILE_HASH_AFTER_TIME_NAME: &'static [u8; 18usize] =
    b"FileHashAfterTime\0";
pub const CERT_CHAIN_WEAK_TIMESTAMP_HASH_AFTER_TIME_NAME: &'static [u8; 23usize] =
    b"TimestampHashAfterTime\0";
pub const CERT_CHAIN_WEAK_MIN_BIT_LENGTH_NAME: &'static [u8; 13usize] = b"MinBitLength\0";
pub const CERT_CHAIN_WEAK_SHA256_ALLOW_NAME: &'static [u8; 12usize] = b"Sha256Allow\0";
pub const CERT_CHAIN_MIN_PUB_KEY_BIT_LENGTH_DISABLE: u32 = 4294967295;
pub const CERT_CHAIN_ENABLE_WEAK_SETTINGS_FLAG: u32 = 2147483648;
pub const CERT_CHAIN_DISABLE_ALL_EKU_WEAK_FLAG: u32 = 65536;
pub const CERT_CHAIN_ENABLE_ALL_EKU_HYGIENE_FLAG: u32 = 131072;
pub const CERT_CHAIN_DISABLE_OPT_IN_SERVER_AUTH_WEAK_FLAG: u32 = 262144;
pub const CERT_CHAIN_DISABLE_SERVER_AUTH_WEAK_FLAG: u32 = 1048576;
pub const CERT_CHAIN_ENABLE_SERVER_AUTH_HYGIENE_FLAG: u32 = 2097152;
pub const CERT_CHAIN_DISABLE_CODE_SIGNING_WEAK_FLAG: u32 = 4194304;
pub const CERT_CHAIN_DISABLE_MOTW_CODE_SIGNING_WEAK_FLAG: u32 = 8388608;
pub const CERT_CHAIN_ENABLE_CODE_SIGNING_HYGIENE_FLAG: u32 = 16777216;
pub const CERT_CHAIN_ENABLE_MOTW_CODE_SIGNING_HYGIENE_FLAG: u32 = 33554432;
pub const CERT_CHAIN_DISABLE_TIMESTAMP_WEAK_FLAG: u32 = 67108864;
pub const CERT_CHAIN_DISABLE_MOTW_TIMESTAMP_WEAK_FLAG: u32 = 134217728;
pub const CERT_CHAIN_ENABLE_TIMESTAMP_HYGIENE_FLAG: u32 = 268435456;
pub const CERT_CHAIN_ENABLE_MOTW_TIMESTAMP_HYGIENE_FLAG: u32 = 536870912;
pub const CERT_CHAIN_MOTW_IGNORE_AFTER_TIME_WEAK_FLAG: u32 = 1073741824;
pub const CERT_CHAIN_DISABLE_FILE_HASH_WEAK_FLAG: u32 = 4096;
pub const CERT_CHAIN_DISABLE_MOTW_FILE_HASH_WEAK_FLAG: u32 = 8192;
pub const CERT_CHAIN_DISABLE_TIMESTAMP_HASH_WEAK_FLAG: u32 = 16384;
pub const CERT_CHAIN_DISABLE_MOTW_TIMESTAMP_HASH_WEAK_FLAG: u32 = 32768;
pub const CERT_CHAIN_DISABLE_WEAK_FLAGS: u32 = 215285760;
pub const CERT_CHAIN_DISABLE_FILE_HASH_WEAK_FLAGS: u32 = 12288;
pub const CERT_CHAIN_DISABLE_TIMESTAMP_HASH_WEAK_FLAGS: u32 = 49152;
pub const CERT_CHAIN_ENABLE_HYGIENE_FLAGS: u32 = 857866240;
pub const CERT_CHAIN_MOTW_WEAK_FLAGS: u32 = 1786773504;
pub const CERT_CHAIN_OPT_IN_WEAK_FLAGS: u32 = 262144;
pub const CERT_CHAIN_AUTO_CURRENT_USER: u32 = 1;
pub const CERT_CHAIN_AUTO_LOCAL_MACHINE: u32 = 2;
pub const CERT_CHAIN_AUTO_IMPERSONATED: u32 = 3;
pub const CERT_CHAIN_AUTO_PROCESS_INFO: u32 = 4;
pub const CERT_CHAIN_AUTO_PINRULE_INFO: u32 = 5;
pub const CERT_CHAIN_AUTO_NETWORK_INFO: u32 = 6;
pub const CERT_CHAIN_AUTO_SERIAL_LOCAL_MACHINE: u32 = 7;
pub const CERT_CHAIN_AUTO_HPKP_RULE_INFO: u32 = 8;
pub const CERT_CHAIN_AUTO_FLAGS_VALUE_NAME: &'static [u8; 10usize] = b"AutoFlags\0";
pub const CERT_CHAIN_AUTO_FLUSH_DISABLE_FLAG: u32 = 1;
pub const CERT_CHAIN_AUTO_LOG_CREATE_FLAG: u32 = 2;
pub const CERT_CHAIN_AUTO_LOG_FREE_FLAG: u32 = 4;
pub const CERT_CHAIN_AUTO_LOG_FLUSH_FLAG: u32 = 8;
pub const CERT_CHAIN_AUTO_LOG_FLAGS: u32 = 14;
pub const CERT_CHAIN_AUTO_FLUSH_FIRST_DELTA_SECONDS_VALUE_NAME: &'static [u8; 27usize] =
    b"AutoFlushFirstDeltaSeconds\0";
pub const CERT_CHAIN_AUTO_FLUSH_FIRST_DELTA_SECONDS_DEFAULT: u32 = 300;
pub const CERT_CHAIN_AUTO_FLUSH_NEXT_DELTA_SECONDS_VALUE_NAME: &'static [u8; 26usize] =
    b"AutoFlushNextDeltaSeconds\0";
pub const CERT_CHAIN_AUTO_FLUSH_NEXT_DELTA_SECONDS_DEFAULT: u32 = 1800;
pub const CERT_CHAIN_AUTO_LOG_FILE_NAME_VALUE_NAME: &'static [u8; 16usize] = b"AutoLogFileName\0";
pub const CERT_CHAIN_DISABLE_AUTO_FLUSH_PROCESS_NAME_LIST_VALUE_NAME: &'static [u8; 32usize] =
    b"DisableAutoFlushProcessNameList\0";
pub const CERT_SRV_OCSP_RESP_MIN_VALIDITY_SECONDS_VALUE_NAME: &'static [u8; 30usize] =
    b"SrvOcspRespMinValiditySeconds\0";
pub const CERT_SRV_OCSP_RESP_MIN_VALIDITY_SECONDS_DEFAULT: u32 = 600;
pub const CERT_SRV_OCSP_RESP_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_VALUE_NAME: &'static [u8; 43usize] =
    b"SrvOcspRespUrlRetrievalTimeoutMilliseconds\0";
pub const CERT_SRV_OCSP_RESP_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_DEFAULT: u32 = 15000;
pub const CERT_SRV_OCSP_RESP_MAX_BEFORE_NEXT_UPDATE_SECONDS_VALUE_NAME: &'static [u8; 38usize] =
    b"SrvOcspRespMaxBeforeNextUpdateSeconds\0";
pub const CERT_SRV_OCSP_RESP_MAX_BEFORE_NEXT_UPDATE_SECONDS_DEFAULT: u32 = 14400;
pub const CERT_SRV_OCSP_RESP_MIN_BEFORE_NEXT_UPDATE_SECONDS_VALUE_NAME: &'static [u8; 38usize] =
    b"SrvOcspRespMinBeforeNextUpdateSeconds\0";
pub const CERT_SRV_OCSP_RESP_MIN_BEFORE_NEXT_UPDATE_SECONDS_DEFAULT: u32 = 120;
pub const CERT_SRV_OCSP_RESP_MIN_AFTER_NEXT_UPDATE_SECONDS_VALUE_NAME: &'static [u8; 37usize] =
    b"SrvOcspRespMinAfterNextUpdateSeconds\0";
pub const CERT_SRV_OCSP_RESP_MIN_AFTER_NEXT_UPDATE_SECONDS_DEFAULT: u32 = 60;
pub const CERT_SRV_OCSP_RESP_MIN_SYNC_CERT_FILE_SECONDS_VALUE_NAME: &'static [u8; 34usize] =
    b"SrvOcspRespMinSyncCertFileSeconds\0";
pub const CERT_SRV_OCSP_RESP_MIN_SYNC_CERT_FILE_SECONDS_DEFAULT: u32 = 5;
pub const CERT_SRV_OCSP_RESP_MAX_SYNC_CERT_FILE_SECONDS_VALUE_NAME: &'static [u8; 34usize] =
    b"SrvOcspRespMaxSyncCertFileSeconds\0";
pub const CERT_SRV_OCSP_RESP_MAX_SYNC_CERT_FILE_SECONDS_DEFAULT: u32 = 3600;
pub const CRYPTNET_MAX_CACHED_OCSP_PER_CRL_COUNT_VALUE_NAME: &'static [u8; 33usize] =
    b"CryptnetMaxCachedOcspPerCrlCount\0";
pub const CRYPTNET_MAX_CACHED_OCSP_PER_CRL_COUNT_DEFAULT: u32 = 500;
pub const CRYPTNET_OCSP_AFTER_CRL_DISABLE: u32 = 4294967295;
pub const CRYPTNET_URL_CACHE_DEFAULT_FLUSH_EXEMPT_SECONDS_VALUE_NAME: &'static [u8; 34usize] =
    b"CryptnetDefaultFlushExemptSeconds\0";
pub const CRYPTNET_URL_CACHE_DEFAULT_FLUSH_EXEMPT_SECONDS_DEFAULT: u32 = 2419200;
pub const CRYPTNET_PRE_FETCH_MIN_MAX_AGE_SECONDS_VALUE_NAME: &'static [u8; 33usize] =
    b"CryptnetPreFetchMinMaxAgeSeconds\0";
pub const CRYPTNET_PRE_FETCH_MIN_MAX_AGE_SECONDS_DEFAULT: u32 = 3600;
pub const CRYPTNET_PRE_FETCH_MAX_MAX_AGE_SECONDS_VALUE_NAME: &'static [u8; 33usize] =
    b"CryptnetPreFetchMaxMaxAgeSeconds\0";
pub const CRYPTNET_PRE_FETCH_MAX_MAX_AGE_SECONDS_DEFAULT: u32 = 1209600;
pub const CRYPTNET_PRE_FETCH_MIN_OCSP_VALIDITY_PERIOD_SECONDS_VALUE_NAME: &'static [u8; 45usize] =
    b"CryptnetPreFetchMinOcspValidityPeriodSeconds\0";
pub const CRYPTNET_PRE_FETCH_MIN_OCSP_VALIDITY_PERIOD_SECONDS_DEFAULT: u32 = 1209600;
pub const CRYPTNET_PRE_FETCH_AFTER_PUBLISH_PRE_FETCH_DIVISOR_VALUE_NAME: &'static [u8; 44usize] =
    b"CryptnetPreFetchAfterPublishPreFetchDivisor\0";
pub const CRYPTNET_PRE_FETCH_AFTER_PUBLISH_PRE_FETCH_DIVISOR_DEFAULT: u32 = 10;
pub const CRYPTNET_PRE_FETCH_BEFORE_NEXT_UPDATE_PRE_FETCH_DIVISOR_VALUE_NAME: &'static [u8;
             48usize] = b"CryptnetPreFetchBeforeNextUpdatePreFetchDivisor\0";
pub const CRYPTNET_PRE_FETCH_BEFORE_NEXT_UPDATE_PRE_FETCH_DIVISOR_DEFAULT: u32 = 20;
pub const CRYPTNET_PRE_FETCH_MIN_BEFORE_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_VALUE_NAME:
    &'static [u8; 51usize] = b"CryptnetPreFetchMinBeforeNextUpdatePreFetchSeconds\0";
pub const CRYPTNET_PRE_FETCH_MIN_BEFORE_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_DEFAULT: u32 = 3600;
pub const CRYPTNET_PRE_FETCH_VALIDITY_PERIOD_AFTER_NEXT_UPDATE_PRE_FETCH_DIVISOR_VALUE_NAME:
    &'static [u8; 61usize] = b"CryptnetPreFetchValidityPeriodAfterNextUpdatePreFetchDivisor\0";
pub const CRYPTNET_PRE_FETCH_VALIDITY_PERIOD_AFTER_NEXT_UPDATE_PRE_FETCH_DIVISOR_DEFAULT: u32 = 10;
pub const CRYPTNET_PRE_FETCH_MAX_AFTER_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_VALUE_NAME:
    &'static [u8; 56usize] = b"CryptnetPreFetchMaxAfterNextUpdatePreFetchPeriodSeconds\0";
pub const CRYPTNET_PRE_FETCH_MAX_AFTER_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_DEFAULT: u32 = 14400;
pub const CRYPTNET_PRE_FETCH_MIN_AFTER_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_VALUE_NAME:
    &'static [u8; 56usize] = b"CryptnetPreFetchMinAfterNextUpdatePreFetchPeriodSeconds\0";
pub const CRYPTNET_PRE_FETCH_MIN_AFTER_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_DEFAULT: u32 = 1800;
pub const CRYPTNET_PRE_FETCH_AFTER_CURRENT_TIME_PRE_FETCH_PERIOD_SECONDS_VALUE_NAME:
    &'static [u8; 54usize] = b"CryptnetPreFetchAfterCurrentTimePreFetchPeriodSeconds\0";
pub const CRYPTNET_PRE_FETCH_AFTER_CURRENT_TIME_PRE_FETCH_PERIOD_SECONDS_DEFAULT: u32 = 1800;
pub const CRYPTNET_PRE_FETCH_TRIGGER_PERIOD_SECONDS_VALUE_NAME: &'static [u8; 37usize] =
    b"CryptnetPreFetchTriggerPeriodSeconds\0";
pub const CRYPTNET_PRE_FETCH_TRIGGER_PERIOD_SECONDS_DEFAULT: u32 = 600;
pub const CRYPTNET_PRE_FETCH_TRIGGER_DISABLE: u32 = 4294967295;
pub const CRYPTNET_PRE_FETCH_SCAN_AFTER_TRIGGER_DELAY_SECONDS_VALUE_NAME: &'static [u8; 45usize] =
    b"CryptnetPreFetchScanAfterTriggerDelaySeconds\0";
pub const CRYPTNET_PRE_FETCH_SCAN_AFTER_TRIGGER_DELAY_SECONDS_DEFAULT: u32 = 60;
pub const CRYPTNET_PRE_FETCH_RETRIEVAL_TIMEOUT_SECONDS_VALUE_NAME: &'static [u8; 40usize] =
    b"CryptnetPreFetchRetrievalTimeoutSeconds\0";
pub const CRYPTNET_PRE_FETCH_RETRIEVAL_TIMEOUT_SECONDS_DEFAULT: u32 = 300;
pub const CRYPTNET_CRL_PRE_FETCH_CONFIG_REGPATH : & 'static [u8 ; 106usize] = b"Software\\Microsoft\\Cryptography\\OID\\EncodingType 0\\CertDllCreateCertificateChainEngine\\Config\\CrlPreFetch\0" ;
pub const CRYPTNET_CRL_PRE_FETCH_PROCESS_NAME_LIST_VALUE_NAME: &'static [u8; 16usize] =
    b"ProcessNameList\0";
pub const CRYPTNET_CRL_PRE_FETCH_URL_LIST_VALUE_NAME: &'static [u8; 16usize] = b"PreFetchUrlList\0";
pub const CRYPTNET_CRL_PRE_FETCH_DISABLE_INFORMATION_EVENTS_VALUE_NAME: &'static [u8; 25usize] =
    b"DisableInformationEvents\0";
pub const CRYPTNET_CRL_PRE_FETCH_LOG_FILE_NAME_VALUE_NAME: &'static [u8; 12usize] =
    b"LogFileName\0";
pub const CRYPTNET_CRL_PRE_FETCH_TIMEOUT_SECONDS_VALUE_NAME: &'static [u8; 15usize] =
    b"TimeoutSeconds\0";
pub const CRYPTNET_CRL_PRE_FETCH_TIMEOUT_SECONDS_DEFAULT: u32 = 300;
pub const CRYPTNET_CRL_PRE_FETCH_MAX_AGE_SECONDS_VALUE_NAME: &'static [u8; 14usize] =
    b"MaxAgeSeconds\0";
pub const CRYPTNET_CRL_PRE_FETCH_MAX_AGE_SECONDS_DEFAULT: u32 = 7200;
pub const CRYPTNET_CRL_PRE_FETCH_MAX_AGE_SECONDS_MIN: u32 = 300;
pub const CRYPTNET_CRL_PRE_FETCH_PUBLISH_BEFORE_NEXT_UPDATE_SECONDS_VALUE_NAME:
    &'static [u8; 31usize] = b"PublishBeforeNextUpdateSeconds\0";
pub const CRYPTNET_CRL_PRE_FETCH_PUBLISH_BEFORE_NEXT_UPDATE_SECONDS_DEFAULT: u32 = 3600;
pub const CRYPTNET_CRL_PRE_FETCH_PUBLISH_RANDOM_INTERVAL_SECONDS_VALUE_NAME: &'static [u8;
             29usize] = b"PublishRandomIntervalSeconds\0";
pub const CRYPTNET_CRL_PRE_FETCH_PUBLISH_RANDOM_INTERVAL_SECONDS_DEFAULT: u32 = 300;
pub const CRYPTNET_CRL_PRE_FETCH_MIN_BEFORE_NEXT_UPDATE_SECONDS_VALUE_NAME: &'static [u8; 27usize] =
    b"MinBeforeNextUpdateSeconds\0";
pub const CRYPTNET_CRL_PRE_FETCH_MIN_BEFORE_NEXT_UPDATE_SECONDS_DEFAULT: u32 = 300;
pub const CRYPTNET_CRL_PRE_FETCH_MIN_AFTER_NEXT_UPDATE_SECONDS_VALUE_NAME: &'static [u8; 26usize] =
    b"MinAfterNextUpdateSeconds\0";
pub const CRYPTNET_CRL_PRE_FETCH_MIN_AFTER_NEXT_UPDATE_SECONDS_DEFAULT: u32 = 300;
pub const CERT_GROUP_POLICY_CHAIN_CONFIG_REGPATH: &'static [u8; 66usize] =
    b"Software\\Policies\\Microsoft\\SystemCertificates\\ChainEngine\\Config\0";
pub const CERT_CHAIN_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_VALUE_NAME: &'static [u8; 37usize] =
    b"ChainUrlRetrievalTimeoutMilliseconds\0";
pub const CERT_CHAIN_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_DEFAULT: u32 = 15000;
pub const CERT_CHAIN_REV_ACCUMULATIVE_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_VALUE_NAME:
    &'static [u8; 52usize] = b"ChainRevAccumulativeUrlRetrievalTimeoutMilliseconds\0";
pub const CERT_CHAIN_REV_ACCUMULATIVE_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_DEFAULT: u32 = 20000;
pub const CERT_RETR_BEHAVIOR_INET_AUTH_VALUE_NAME: &'static [u8; 22usize] =
    b"EnableInetUnknownAuth\0";
pub const CERT_RETR_BEHAVIOR_INET_STATUS_VALUE_NAME: &'static [u8; 16usize] = b"EnableInetLocal\0";
pub const CERT_RETR_BEHAVIOR_FILE_VALUE_NAME: &'static [u8; 19usize] = b"AllowFileUrlScheme\0";
pub const CERT_RETR_BEHAVIOR_LDAP_VALUE_NAME: &'static [u8; 26usize] =
    b"DisableLDAPSignAndEncrypt\0";
pub const CRYPTNET_CACHED_OCSP_SWITCH_TO_CRL_COUNT_VALUE_NAME: &'static [u8; 35usize] =
    b"CryptnetCachedOcspSwitchToCrlCount\0";
pub const CRYPTNET_CACHED_OCSP_SWITCH_TO_CRL_COUNT_DEFAULT: u32 = 50;
pub const CRYPTNET_CRL_BEFORE_OCSP_ENABLE: u32 = 4294967295;
pub const CERT_CHAIN_DISABLE_AIA_URL_RETRIEVAL_VALUE_NAME: &'static [u8; 23usize] =
    b"DisableAIAUrlRetrieval\0";
pub const CERT_CHAIN_OPTIONS_VALUE_NAME: &'static [u8; 8usize] = b"Options\0";
pub const CERT_CHAIN_OPTION_DISABLE_AIA_URL_RETRIEVAL: u32 = 2;
pub const CERT_CHAIN_OPTION_ENABLE_SIA_URL_RETRIEVAL: u32 = 4;
pub const CERT_CHAIN_CROSS_CERT_DOWNLOAD_INTERVAL_HOURS_VALUE_NAME: &'static [u8; 31usize] =
    b"CrossCertDownloadIntervalHours\0";
pub const CERT_CHAIN_CROSS_CERT_DOWNLOAD_INTERVAL_HOURS_DEFAULT: u32 = 168;
pub const CERT_CHAIN_CRL_VALIDITY_EXT_PERIOD_HOURS_VALUE_NAME: &'static [u8; 27usize] =
    b"CRLValidityExtensionPeriod\0";
pub const CERT_CHAIN_CRL_VALIDITY_EXT_PERIOD_HOURS_DEFAULT: u32 = 12;
pub const CERT_CHAIN_CACHE_END_CERT: u32 = 1;
pub const CERT_CHAIN_THREAD_STORE_SYNC: u32 = 2;
pub const CERT_CHAIN_CACHE_ONLY_URL_RETRIEVAL: u32 = 4;
pub const CERT_CHAIN_USE_LOCAL_MACHINE_STORE: u32 = 8;
pub const CERT_CHAIN_ENABLE_CACHE_AUTO_UPDATE: u32 = 16;
pub const CERT_CHAIN_ENABLE_SHARE_STORE: u32 = 32;
pub const CERT_CHAIN_EXCLUSIVE_ENABLE_CA_FLAG: u32 = 1;
pub const CERT_TRUST_NO_ERROR: u32 = 0;
pub const CERT_TRUST_IS_NOT_TIME_VALID: u32 = 1;
pub const CERT_TRUST_IS_NOT_TIME_NESTED: u32 = 2;
pub const CERT_TRUST_IS_REVOKED: u32 = 4;
pub const CERT_TRUST_IS_NOT_SIGNATURE_VALID: u32 = 8;
pub const CERT_TRUST_IS_NOT_VALID_FOR_USAGE: u32 = 16;
pub const CERT_TRUST_IS_UNTRUSTED_ROOT: u32 = 32;
pub const CERT_TRUST_REVOCATION_STATUS_UNKNOWN: u32 = 64;
pub const CERT_TRUST_IS_CYCLIC: u32 = 128;
pub const CERT_TRUST_INVALID_EXTENSION: u32 = 256;
pub const CERT_TRUST_INVALID_POLICY_CONSTRAINTS: u32 = 512;
pub const CERT_TRUST_INVALID_BASIC_CONSTRAINTS: u32 = 1024;
pub const CERT_TRUST_INVALID_NAME_CONSTRAINTS: u32 = 2048;
pub const CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT: u32 = 4096;
pub const CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT: u32 = 8192;
pub const CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT: u32 = 16384;
pub const CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT: u32 = 32768;
pub const CERT_TRUST_IS_OFFLINE_REVOCATION: u32 = 16777216;
pub const CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY: u32 = 33554432;
pub const CERT_TRUST_IS_EXPLICIT_DISTRUST: u32 = 67108864;
pub const CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT: u32 = 134217728;
pub const CERT_TRUST_HAS_WEAK_SIGNATURE: u32 = 1048576;
pub const CERT_TRUST_HAS_WEAK_HYGIENE: u32 = 2097152;
pub const CERT_TRUST_IS_PARTIAL_CHAIN: u32 = 65536;
pub const CERT_TRUST_CTL_IS_NOT_TIME_VALID: u32 = 131072;
pub const CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID: u32 = 262144;
pub const CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE: u32 = 524288;
pub const CERT_TRUST_HAS_EXACT_MATCH_ISSUER: u32 = 1;
pub const CERT_TRUST_HAS_KEY_MATCH_ISSUER: u32 = 2;
pub const CERT_TRUST_HAS_NAME_MATCH_ISSUER: u32 = 4;
pub const CERT_TRUST_IS_SELF_SIGNED: u32 = 8;
pub const CERT_TRUST_AUTO_UPDATE_CA_REVOCATION: u32 = 16;
pub const CERT_TRUST_AUTO_UPDATE_END_REVOCATION: u32 = 32;
pub const CERT_TRUST_NO_OCSP_FAILOVER_TO_CRL: u32 = 64;
pub const CERT_TRUST_IS_KEY_ROLLOVER: u32 = 128;
pub const CERT_TRUST_SSL_HANDSHAKE_OCSP: u32 = 262144;
pub const CERT_TRUST_SSL_TIME_VALID_OCSP: u32 = 524288;
pub const CERT_TRUST_SSL_RECONNECT_OCSP: u32 = 1048576;
pub const CERT_TRUST_HAS_PREFERRED_ISSUER: u32 = 256;
pub const CERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY: u32 = 512;
pub const CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS: u32 = 1024;
pub const CERT_TRUST_IS_PEER_TRUSTED: u32 = 2048;
pub const CERT_TRUST_HAS_CRL_VALIDITY_EXTENDED: u32 = 4096;
pub const CERT_TRUST_IS_FROM_EXCLUSIVE_TRUST_STORE: u32 = 8192;
pub const CERT_TRUST_IS_CA_TRUSTED: u32 = 16384;
pub const CERT_TRUST_HAS_AUTO_UPDATE_WEAK_SIGNATURE: u32 = 32768;
pub const CERT_TRUST_HAS_ALLOW_WEAK_SIGNATURE: u32 = 131072;
pub const CERT_TRUST_IS_COMPLEX_CHAIN: u32 = 65536;
pub const CERT_TRUST_SSL_TIME_VALID: u32 = 16777216;
pub const CERT_TRUST_NO_TIME_CHECK: u32 = 33554432;
pub const USAGE_MATCH_TYPE_AND: u32 = 0;
pub const USAGE_MATCH_TYPE_OR: u32 = 1;
pub const CERT_CHAIN_STRONG_SIGN_DISABLE_END_CHECK_FLAG: u32 = 1;
pub const CERT_CHAIN_REVOCATION_CHECK_END_CERT: u32 = 268435456;
pub const CERT_CHAIN_REVOCATION_CHECK_CHAIN: u32 = 536870912;
pub const CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT: u32 = 1073741824;
pub const CERT_CHAIN_REVOCATION_CHECK_CACHE_ONLY: u32 = 2147483648;
pub const CERT_CHAIN_REVOCATION_ACCUMULATIVE_TIMEOUT: u32 = 134217728;
pub const CERT_CHAIN_REVOCATION_CHECK_OCSP_CERT: u32 = 67108864;
pub const CERT_CHAIN_DISABLE_PASS1_QUALITY_FILTERING: u32 = 64;
pub const CERT_CHAIN_RETURN_LOWER_QUALITY_CONTEXTS: u32 = 128;
pub const CERT_CHAIN_DISABLE_AUTH_ROOT_AUTO_UPDATE: u32 = 256;
pub const CERT_CHAIN_TIMESTAMP_TIME: u32 = 512;
pub const CERT_CHAIN_ENABLE_PEER_TRUST: u32 = 1024;
pub const CERT_CHAIN_DISABLE_MY_PEER_TRUST: u32 = 2048;
pub const CERT_CHAIN_DISABLE_MD2_MD4: u32 = 4096;
pub const CERT_CHAIN_DISABLE_AIA: u32 = 8192;
pub const CERT_CHAIN_HAS_MOTW: u32 = 16384;
pub const CERT_CHAIN_ONLY_ADDITIONAL_AND_AUTH_ROOT: u32 = 32768;
pub const CERT_CHAIN_OPT_IN_WEAK_SIGNATURE: u32 = 65536;
pub const CERT_CHAIN_FIND_BY_ISSUER: u32 = 1;
pub const CERT_CHAIN_FIND_BY_ISSUER_COMPARE_KEY_FLAG: u32 = 1;
pub const CERT_CHAIN_FIND_BY_ISSUER_COMPLEX_CHAIN_FLAG: u32 = 2;
pub const CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_URL_FLAG: u32 = 4;
pub const CERT_CHAIN_FIND_BY_ISSUER_LOCAL_MACHINE_FLAG: u32 = 8;
pub const CERT_CHAIN_FIND_BY_ISSUER_NO_KEY_FLAG: u32 = 16384;
pub const CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_FLAG: u32 = 32768;
pub const CERT_CHAIN_POLICY_IGNORE_NOT_TIME_VALID_FLAG: u32 = 1;
pub const CERT_CHAIN_POLICY_IGNORE_CTL_NOT_TIME_VALID_FLAG: u32 = 2;
pub const CERT_CHAIN_POLICY_IGNORE_NOT_TIME_NESTED_FLAG: u32 = 4;
pub const CERT_CHAIN_POLICY_IGNORE_INVALID_BASIC_CONSTRAINTS_FLAG: u32 = 8;
pub const CERT_CHAIN_POLICY_IGNORE_ALL_NOT_TIME_VALID_FLAGS: u32 = 7;
pub const CERT_CHAIN_POLICY_ALLOW_UNKNOWN_CA_FLAG: u32 = 16;
pub const CERT_CHAIN_POLICY_IGNORE_WRONG_USAGE_FLAG: u32 = 32;
pub const CERT_CHAIN_POLICY_IGNORE_INVALID_NAME_FLAG: u32 = 64;
pub const CERT_CHAIN_POLICY_IGNORE_INVALID_POLICY_FLAG: u32 = 128;
pub const CERT_CHAIN_POLICY_IGNORE_END_REV_UNKNOWN_FLAG: u32 = 256;
pub const CERT_CHAIN_POLICY_IGNORE_CTL_SIGNER_REV_UNKNOWN_FLAG: u32 = 512;
pub const CERT_CHAIN_POLICY_IGNORE_CA_REV_UNKNOWN_FLAG: u32 = 1024;
pub const CERT_CHAIN_POLICY_IGNORE_ROOT_REV_UNKNOWN_FLAG: u32 = 2048;
pub const CERT_CHAIN_POLICY_IGNORE_ALL_REV_UNKNOWN_FLAGS: u32 = 3840;
pub const CERT_CHAIN_POLICY_ALLOW_TESTROOT_FLAG: u32 = 32768;
pub const CERT_CHAIN_POLICY_TRUST_TESTROOT_FLAG: u32 = 16384;
pub const CERT_CHAIN_POLICY_IGNORE_NOT_SUPPORTED_CRITICAL_EXT_FLAG: u32 = 8192;
pub const CERT_CHAIN_POLICY_IGNORE_PEER_TRUST_FLAG: u32 = 4096;
pub const CERT_CHAIN_POLICY_IGNORE_WEAK_SIGNATURE_FLAG: u32 = 134217728;
pub const CRYPT_OID_VERIFY_CERTIFICATE_CHAIN_POLICY_FUNC: &'static [u8; 36usize] =
    b"CertDllVerifyCertificateChainPolicy\0";
pub const AUTHTYPE_CLIENT: u32 = 1;
pub const AUTHTYPE_SERVER: u32 = 2;
pub const BASIC_CONSTRAINTS_CERT_CHAIN_POLICY_CA_FLAG: u32 = 2147483648;
pub const BASIC_CONSTRAINTS_CERT_CHAIN_POLICY_END_ENTITY_FLAG: u32 = 1073741824;
pub const MICROSOFT_ROOT_CERT_CHAIN_POLICY_ENABLE_TEST_ROOT_FLAG: u32 = 65536;
pub const MICROSOFT_ROOT_CERT_CHAIN_POLICY_CHECK_APPLICATION_ROOT_FLAG: u32 = 131072;
pub const MICROSOFT_ROOT_CERT_CHAIN_POLICY_DISABLE_FLIGHT_ROOT_FLAG: u32 = 262144;
pub const SSL_F12_ERROR_TEXT_LENGTH: u32 = 256;
pub const CERT_CHAIN_POLICY_SSL_F12_SUCCESS_LEVEL: u32 = 0;
pub const CERT_CHAIN_POLICY_SSL_F12_WARNING_LEVEL: u32 = 1;
pub const CERT_CHAIN_POLICY_SSL_F12_ERROR_LEVEL: u32 = 2;
pub const CERT_CHAIN_POLICY_SSL_F12_NONE_CATEGORY: u32 = 0;
pub const CERT_CHAIN_POLICY_SSL_F12_WEAK_CRYPTO_CATEGORY: u32 = 1;
pub const CERT_CHAIN_POLICY_SSL_F12_ROOT_PROGRAM_CATEGORY: u32 = 2;
pub const SSL_HPKP_PKP_HEADER_INDEX: u32 = 0;
pub const SSL_HPKP_PKP_RO_HEADER_INDEX: u32 = 1;
pub const SSL_HPKP_HEADER_COUNT: u32 = 2;
pub const SSL_KEY_PIN_ERROR_TEXT_LENGTH: u32 = 512;
pub const CERT_CHAIN_POLICY_SSL_KEY_PIN_MISMATCH_ERROR: i32 = -2;
pub const CERT_CHAIN_POLICY_SSL_KEY_PIN_MITM_ERROR: i32 = -1;
pub const CERT_CHAIN_POLICY_SSL_KEY_PIN_SUCCESS: u32 = 0;
pub const CERT_CHAIN_POLICY_SSL_KEY_PIN_MITM_WARNING: u32 = 1;
pub const CERT_CHAIN_POLICY_SSL_KEY_PIN_MISMATCH_WARNING: u32 = 2;
pub const CRYPT_STRING_BASE64HEADER: u32 = 0;
pub const CRYPT_STRING_BASE64: u32 = 1;
pub const CRYPT_STRING_BINARY: u32 = 2;
pub const CRYPT_STRING_BASE64REQUESTHEADER: u32 = 3;
pub const CRYPT_STRING_HEX: u32 = 4;
pub const CRYPT_STRING_HEXASCII: u32 = 5;
pub const CRYPT_STRING_BASE64_ANY: u32 = 6;
pub const CRYPT_STRING_ANY: u32 = 7;
pub const CRYPT_STRING_HEX_ANY: u32 = 8;
pub const CRYPT_STRING_BASE64X509CRLHEADER: u32 = 9;
pub const CRYPT_STRING_HEXADDR: u32 = 10;
pub const CRYPT_STRING_HEXASCIIADDR: u32 = 11;
pub const CRYPT_STRING_HEXRAW: u32 = 12;
pub const CRYPT_STRING_BASE64URI: u32 = 13;
pub const CRYPT_STRING_ENCODEMASK: u32 = 255;
pub const CRYPT_STRING_RESERVED100: u32 = 256;
pub const CRYPT_STRING_RESERVED200: u32 = 512;
pub const CRYPT_STRING_PERCENTESCAPE: u32 = 134217728;
pub const CRYPT_STRING_HASHDATA: u32 = 268435456;
pub const CRYPT_STRING_STRICT: u32 = 536870912;
pub const CRYPT_STRING_NOCRLF: u32 = 1073741824;
pub const CRYPT_STRING_NOCR: u32 = 2147483648;
pub const szOID_PKCS_12_PbeIds: &'static [u8; 22usize] = b"1.2.840.113549.1.12.1\0";
pub const szOID_PKCS_12_pbeWithSHA1And128BitRC4: &'static [u8; 24usize] =
    b"1.2.840.113549.1.12.1.1\0";
pub const szOID_PKCS_12_pbeWithSHA1And40BitRC4: &'static [u8; 24usize] =
    b"1.2.840.113549.1.12.1.2\0";
pub const szOID_PKCS_12_pbeWithSHA1And3KeyTripleDES: &'static [u8; 24usize] =
    b"1.2.840.113549.1.12.1.3\0";
pub const szOID_PKCS_12_pbeWithSHA1And2KeyTripleDES: &'static [u8; 24usize] =
    b"1.2.840.113549.1.12.1.4\0";
pub const szOID_PKCS_12_pbeWithSHA1And128BitRC2: &'static [u8; 24usize] =
    b"1.2.840.113549.1.12.1.5\0";
pub const szOID_PKCS_12_pbeWithSHA1And40BitRC2: &'static [u8; 24usize] =
    b"1.2.840.113549.1.12.1.6\0";
pub const szOID_PKCS_5_PBKDF2: &'static [u8; 22usize] = b"1.2.840.113549.1.5.12\0";
pub const szOID_PKCS_5_PBES2: &'static [u8; 22usize] = b"1.2.840.113549.1.5.13\0";
pub const PKCS12_IMPORT_SILENT: u32 = 64;
pub const CRYPT_USER_KEYSET: u32 = 4096;
pub const PKCS12_PREFER_CNG_KSP: u32 = 256;
pub const PKCS12_ALWAYS_CNG_KSP: u32 = 512;
pub const PKCS12_ONLY_CERTIFICATES: u32 = 1024;
pub const PKCS12_ONLY_NOT_ENCRYPTED_CERTIFICATES: u32 = 2048;
pub const PKCS12_ALLOW_OVERWRITE_KEY: u32 = 16384;
pub const PKCS12_NO_PERSIST_KEY: u32 = 32768;
pub const PKCS12_VIRTUAL_ISOLATION_KEY: u32 = 65536;
pub const PKCS12_IMPORT_RESERVED_MASK: u32 = 4294901760;
pub const PKCS12_ONLY_CERTIFICATES_PROVIDER_TYPE: u32 = 0;
pub const PKCS12_ONLY_CERTIFICATES_PROVIDER_NAME: &'static [u8; 12usize] = b"PfxProvider\0";
pub const PKCS12_ONLY_CERTIFICATES_CONTAINER_NAME: &'static [u8; 13usize] = b"PfxContainer\0";
pub const REPORT_NO_PRIVATE_KEY: u32 = 1;
pub const REPORT_NOT_ABLE_TO_EXPORT_PRIVATE_KEY: u32 = 2;
pub const EXPORT_PRIVATE_KEYS: u32 = 4;
pub const PKCS12_INCLUDE_EXTENDED_PROPERTIES: u32 = 16;
pub const PKCS12_PROTECT_TO_DOMAIN_SIDS: u32 = 32;
pub const PKCS12_EXPORT_SILENT: u32 = 64;
pub const PKCS12_EXPORT_PBES2_PARAMS: u32 = 128;
pub const PKCS12_DISABLE_ENCRYPT_CERTIFICATES: u32 = 256;
pub const PKCS12_ENCRYPT_CERTIFICATES: u32 = 512;
pub const PKCS12_EXPORT_ECC_CURVE_PARAMETERS: u32 = 4096;
pub const PKCS12_EXPORT_ECC_CURVE_OID: u32 = 8192;
pub const PKCS12_EXPORT_RESERVED_MASK: u32 = 4294901760;
pub const PKCS12_PBKDF2_ID_HMAC_SHA1: &'static [u8; 19usize] = b"1.2.840.113549.2.7\0";
pub const PKCS12_PBKDF2_ID_HMAC_SHA256: &'static [u8; 19usize] = b"1.2.840.113549.2.9\0";
pub const PKCS12_PBKDF2_ID_HMAC_SHA384: &'static [u8; 20usize] = b"1.2.840.113549.2.10\0";
pub const PKCS12_PBKDF2_ID_HMAC_SHA512: &'static [u8; 20usize] = b"1.2.840.113549.2.11\0";
pub const PKCS12_PBES2_ALG_AES256_SHA256: &'static [u8; 14usize] = b"AES256-SHA256\0";
pub const PKCS12_CONFIG_REGPATH: &'static [u8; 46usize] =
    b"Software\\Microsoft\\Windows\\CurrentVersion\\PFX\0";
pub const PKCS12_ENCRYPT_CERTIFICATES_VALUE_NAME: &'static [u8; 20usize] = b"EncryptCertificates\0";
pub const CERT_SERVER_OCSP_RESPONSE_OPEN_PARA_READ_FLAG: u32 = 1;
pub const CERT_SERVER_OCSP_RESPONSE_OPEN_PARA_WRITE_FLAG: u32 = 2;
pub const CERT_SERVER_OCSP_RESPONSE_ASYNC_FLAG: u32 = 1;
pub const CERT_SELECT_MAX_PARA: u32 = 500;
pub const CERT_SELECT_BY_ENHKEY_USAGE: u32 = 1;
pub const CERT_SELECT_BY_KEY_USAGE: u32 = 2;
pub const CERT_SELECT_BY_POLICY_OID: u32 = 3;
pub const CERT_SELECT_BY_PROV_NAME: u32 = 4;
pub const CERT_SELECT_BY_EXTENSION: u32 = 5;
pub const CERT_SELECT_BY_SUBJECT_HOST_NAME: u32 = 6;
pub const CERT_SELECT_BY_ISSUER_ATTR: u32 = 7;
pub const CERT_SELECT_BY_SUBJECT_ATTR: u32 = 8;
pub const CERT_SELECT_BY_ISSUER_NAME: u32 = 9;
pub const CERT_SELECT_BY_PUBLIC_KEY: u32 = 10;
pub const CERT_SELECT_BY_TLS_SIGNATURES: u32 = 11;
pub const CERT_SELECT_BY_ISSUER_DISPLAYNAME: u32 = 12;
pub const CERT_SELECT_BY_FRIENDLYNAME: u32 = 13;
pub const CERT_SELECT_BY_THUMBPRINT: u32 = 14;
pub const CERT_SELECT_LAST: u32 = 11;
pub const CERT_SELECT_MAX: u32 = 33;
pub const CERT_SELECT_ALLOW_EXPIRED: u32 = 1;
pub const CERT_SELECT_TRUSTED_ROOT: u32 = 2;
pub const CERT_SELECT_DISALLOW_SELFSIGNED: u32 = 4;
pub const CERT_SELECT_HAS_PRIVATE_KEY: u32 = 8;
pub const CERT_SELECT_HAS_KEY_FOR_SIGNATURE: u32 = 16;
pub const CERT_SELECT_HAS_KEY_FOR_KEY_EXCHANGE: u32 = 32;
pub const CERT_SELECT_HARDWARE_ONLY: u32 = 64;
pub const CERT_SELECT_ALLOW_DUPLICATES: u32 = 128;
pub const CERT_SELECT_IGNORE_AUTOSELECT: u32 = 256;
pub const TIMESTAMP_VERSION: u32 = 1;
pub const TIMESTAMP_STATUS_GRANTED: u32 = 0;
pub const TIMESTAMP_STATUS_GRANTED_WITH_MODS: u32 = 1;
pub const TIMESTAMP_STATUS_REJECTED: u32 = 2;
pub const TIMESTAMP_STATUS_WAITING: u32 = 3;
pub const TIMESTAMP_STATUS_REVOCATION_WARNING: u32 = 4;
pub const TIMESTAMP_STATUS_REVOKED: u32 = 5;
pub const TIMESTAMP_FAILURE_BAD_ALG: u32 = 0;
pub const TIMESTAMP_FAILURE_BAD_REQUEST: u32 = 2;
pub const TIMESTAMP_FAILURE_BAD_FORMAT: u32 = 5;
pub const TIMESTAMP_FAILURE_TIME_NOT_AVAILABLE: u32 = 14;
pub const TIMESTAMP_FAILURE_POLICY_NOT_SUPPORTED: u32 = 15;
pub const TIMESTAMP_FAILURE_EXTENSION_NOT_SUPPORTED: u32 = 16;
pub const TIMESTAMP_FAILURE_INFO_NOT_AVAILABLE: u32 = 17;
pub const TIMESTAMP_FAILURE_SYSTEM_FAILURE: u32 = 25;
pub const TIMESTAMP_DONT_HASH_DATA: u32 = 1;
pub const TIMESTAMP_VERIFY_CONTEXT_SIGNATURE: u32 = 32;
pub const TIMESTAMP_NO_AUTH_RETRIEVAL: u32 = 131072;
pub const CRYPT_OBJECT_LOCATOR_SPN_NAME_TYPE: u32 = 1;
pub const CRYPT_OBJECT_LOCATOR_LAST_RESERVED_NAME_TYPE: u32 = 32;
pub const CRYPT_OBJECT_LOCATOR_FIRST_RESERVED_USER_NAME_TYPE: u32 = 33;
pub const CRYPT_OBJECT_LOCATOR_LAST_RESERVED_USER_NAME_TYPE: u32 = 65535;
pub const SSL_OBJECT_LOCATOR_PFX_FUNC: &'static [u8; 30usize] = b"SslObjectLocatorInitializePfx\0";
pub const SSL_OBJECT_LOCATOR_ISSUER_LIST_FUNC: &'static [u8; 37usize] =
    b"SslObjectLocatorInitializeIssuerList\0";
pub const SSL_OBJECT_LOCATOR_CERT_VALIDATION_CONFIG_FUNC: &'static [u8; 47usize] =
    b"SslObjectLocatorInitializeCertValidationConfig\0";
pub const CRYPT_OBJECT_LOCATOR_RELEASE_SYSTEM_SHUTDOWN: u32 = 1;
pub const CRYPT_OBJECT_LOCATOR_RELEASE_SERVICE_STOP: u32 = 2;
pub const CRYPT_OBJECT_LOCATOR_RELEASE_PROCESS_EXIT: u32 = 3;
pub const CRYPT_OBJECT_LOCATOR_RELEASE_DLL_UNLOAD: u32 = 4;
pub const CERT_FILE_HASH_USE_TYPE: u32 = 1;
pub const CERT_TIMESTAMP_HASH_USE_TYPE: u32 = 2;
pub const szFORCE_KEY_PROTECTION: &'static [u8; 19usize] = b"ForceKeyProtection\0";
pub const dwFORCE_KEY_PROTECTION_DISABLED: u32 = 0;
pub const dwFORCE_KEY_PROTECTION_USER_SELECT: u32 = 1;
pub const dwFORCE_KEY_PROTECTION_HIGH: u32 = 2;
pub const CRYPTPROTECT_PROMPT_ON_UNPROTECT: u32 = 1;
pub const CRYPTPROTECT_PROMPT_ON_PROTECT: u32 = 2;
pub const CRYPTPROTECT_PROMPT_RESERVED: u32 = 4;
pub const CRYPTPROTECT_PROMPT_STRONG: u32 = 8;
pub const CRYPTPROTECT_PROMPT_REQUIRE_STRONG: u32 = 16;
pub const CRYPTPROTECT_UI_FORBIDDEN: u32 = 1;
pub const CRYPTPROTECT_LOCAL_MACHINE: u32 = 4;
pub const CRYPTPROTECT_CRED_SYNC: u32 = 8;
pub const CRYPTPROTECT_AUDIT: u32 = 16;
pub const CRYPTPROTECT_NO_RECOVERY: u32 = 32;
pub const CRYPTPROTECT_VERIFY_PROTECTION: u32 = 64;
pub const CRYPTPROTECT_CRED_REGENERATE: u32 = 128;
pub const CRYPTPROTECT_FIRST_RESERVED_FLAGVAL: u32 = 268435455;
pub const CRYPTPROTECT_LAST_RESERVED_FLAGVAL: u32 = 4294967295;
pub const CRYPTPROTECTMEMORY_BLOCK_SIZE: u32 = 16;
pub const CRYPTPROTECTMEMORY_SAME_PROCESS: u32 = 0;
pub const CRYPTPROTECTMEMORY_CROSS_PROCESS: u32 = 1;
pub const CRYPTPROTECTMEMORY_SAME_LOGON: u32 = 2;
pub const WINEFS_SETUSERKEY_SET_CAPABILITIES: u32 = 1;
pub const EFS_COMPATIBILITY_VERSION_NCRYPT_PROTECTOR: u32 = 5;
pub const EFS_COMPATIBILITY_VERSION_PFILE_PROTECTOR: u32 = 6;
pub const EFS_SUBVER_UNKNOWN: u32 = 0;
pub const EFS_EFS_SUBVER_EFS_CERT: u32 = 1;
pub const EFS_PFILE_SUBVER_RMS: u32 = 2;
pub const EFS_PFILE_SUBVER_APPX: u32 = 3;
pub const MAX_SID_SIZE: u32 = 256;
pub const EFS_METADATA_ADD_USER: u32 = 1;
pub const EFS_METADATA_REMOVE_USER: u32 = 2;
pub const EFS_METADATA_REPLACE_USER: u32 = 4;
pub const EFS_METADATA_GENERAL_OP: u32 = 8;
pub const __REQUIRED_RPCNDR_H_VERSION__: u32 = 500;
pub const __REQUIRED_RPCSAL_H_VERSION__: u32 = 100;
pub const __RPCNDR_H_VERSION__: u32 = 500;
pub const __RPCSAL_H_VERSION__: u32 = 100;
pub const TARGET_IS_NT100_OR_LATER: u32 = 1;
pub const TARGET_IS_NT63_OR_LATER: u32 = 1;
pub const TARGET_IS_NT62_OR_LATER: u32 = 1;
pub const TARGET_IS_NT61_OR_LATER: u32 = 1;
pub const TARGET_IS_NT60_OR_LATER: u32 = 1;
pub const TARGET_IS_NT51_OR_LATER: u32 = 1;
pub const TARGET_IS_NT50_OR_LATER: u32 = 1;
pub const TARGET_IS_NT40_OR_LATER: u32 = 1;
pub const TARGET_IS_NT351_OR_WIN95_OR_LATER: u32 = 1;
pub const cbNDRContext: u32 = 20;
pub const USER_CALL_IS_ASYNC: u32 = 256;
pub const USER_CALL_NEW_CORRELATION_DESC: u32 = 512;
pub const USER_MARSHAL_FC_BYTE: u32 = 1;
pub const USER_MARSHAL_FC_CHAR: u32 = 2;
pub const USER_MARSHAL_FC_SMALL: u32 = 3;
pub const USER_MARSHAL_FC_USMALL: u32 = 4;
pub const USER_MARSHAL_FC_WCHAR: u32 = 5;
pub const USER_MARSHAL_FC_SHORT: u32 = 6;
pub const USER_MARSHAL_FC_USHORT: u32 = 7;
pub const USER_MARSHAL_FC_LONG: u32 = 8;
pub const USER_MARSHAL_FC_ULONG: u32 = 9;
pub const USER_MARSHAL_FC_FLOAT: u32 = 10;
pub const USER_MARSHAL_FC_HYPER: u32 = 11;
pub const USER_MARSHAL_FC_DOUBLE: u32 = 12;
pub const ROTREGFLAGS_ALLOWANYCLIENT: u32 = 1;
pub const APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP: u32 = 1;
pub const APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND: u32 = 2;
pub const APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY: u32 = 4;
pub const APPIDREGFLAGS_IUSERVER_UNMODIFIED_LOGON_TOKEN: u32 = 8;
pub const APPIDREGFLAGS_IUSERVER_SELF_SID_IN_LAUNCH_PERMISSION: u32 = 16;
pub const APPIDREGFLAGS_IUSERVER_ACTIVATE_IN_CLIENT_SESSION_ONLY: u32 = 32;
pub const APPIDREGFLAGS_RESERVED1: u32 = 64;
pub const APPIDREGFLAGS_RESERVED2: u32 = 128;
pub const APPIDREGFLAGS_RESERVED3: u32 = 256;
pub const APPIDREGFLAGS_RESERVED4: u32 = 512;
pub const APPIDREGFLAGS_RESERVED5: u32 = 1024;
pub const APPIDREGFLAGS_AAA_NO_IMPLICIT_ACTIVATE_AS_IU: u32 = 2048;
pub const APPIDREGFLAGS_RESERVED7: u32 = 4096;
pub const APPIDREGFLAGS_RESERVED8: u32 = 8192;
pub const APPIDREGFLAGS_RESERVED9: u32 = 16384;
pub const DCOMSCM_ACTIVATION_USE_ALL_AUTHNSERVICES: u32 = 1;
pub const DCOMSCM_ACTIVATION_DISALLOW_UNSECURE_CALL: u32 = 2;
pub const DCOMSCM_RESOLVE_USE_ALL_AUTHNSERVICES: u32 = 4;
pub const DCOMSCM_RESOLVE_DISALLOW_UNSECURE_CALL: u32 = 8;
pub const DCOMSCM_PING_USE_MID_AUTHNSERVICE: u32 = 16;
pub const DCOMSCM_PING_DISALLOW_UNSECURE_CALL: u32 = 32;
pub const ROTFLAGS_REGISTRATIONKEEPSALIVE: u32 = 1;
pub const ROTFLAGS_ALLOWANYCLIENT: u32 = 2;
pub const ROT_COMPARE_MAX: u32 = 2048;
pub const WDT_INPROC_CALL: u32 = 1215587415;
pub const WDT_REMOTE_CALL: u32 = 1383359575;
pub const WDT_INPROC64_CALL: u32 = 1349805143;
pub const FILE_DEVICE_BEEP: u32 = 1;
pub const FILE_DEVICE_CD_ROM: u32 = 2;
pub const FILE_DEVICE_CD_ROM_FILE_SYSTEM: u32 = 3;
pub const FILE_DEVICE_CONTROLLER: u32 = 4;
pub const FILE_DEVICE_DATALINK: u32 = 5;
pub const FILE_DEVICE_DFS: u32 = 6;
pub const FILE_DEVICE_DISK: u32 = 7;
pub const FILE_DEVICE_DISK_FILE_SYSTEM: u32 = 8;
pub const FILE_DEVICE_FILE_SYSTEM: u32 = 9;
pub const FILE_DEVICE_INPORT_PORT: u32 = 10;
pub const FILE_DEVICE_KEYBOARD: u32 = 11;
pub const FILE_DEVICE_MAILSLOT: u32 = 12;
pub const FILE_DEVICE_MIDI_IN: u32 = 13;
pub const FILE_DEVICE_MIDI_OUT: u32 = 14;
pub const FILE_DEVICE_MOUSE: u32 = 15;
pub const FILE_DEVICE_MULTI_UNC_PROVIDER: u32 = 16;
pub const FILE_DEVICE_NAMED_PIPE: u32 = 17;
pub const FILE_DEVICE_NETWORK: u32 = 18;
pub const FILE_DEVICE_NETWORK_BROWSER: u32 = 19;
pub const FILE_DEVICE_NETWORK_FILE_SYSTEM: u32 = 20;
pub const FILE_DEVICE_NULL: u32 = 21;
pub const FILE_DEVICE_PARALLEL_PORT: u32 = 22;
pub const FILE_DEVICE_PHYSICAL_NETCARD: u32 = 23;
pub const FILE_DEVICE_PRINTER: u32 = 24;
pub const FILE_DEVICE_SCANNER: u32 = 25;
pub const FILE_DEVICE_SERIAL_MOUSE_PORT: u32 = 26;
pub const FILE_DEVICE_SERIAL_PORT: u32 = 27;
pub const FILE_DEVICE_SCREEN: u32 = 28;
pub const FILE_DEVICE_SOUND: u32 = 29;
pub const FILE_DEVICE_STREAMS: u32 = 30;
pub const FILE_DEVICE_TAPE: u32 = 31;
pub const FILE_DEVICE_TAPE_FILE_SYSTEM: u32 = 32;
pub const FILE_DEVICE_TRANSPORT: u32 = 33;
pub const FILE_DEVICE_UNKNOWN: u32 = 34;
pub const FILE_DEVICE_VIDEO: u32 = 35;
pub const FILE_DEVICE_VIRTUAL_DISK: u32 = 36;
pub const FILE_DEVICE_WAVE_IN: u32 = 37;
pub const FILE_DEVICE_WAVE_OUT: u32 = 38;
pub const FILE_DEVICE_8042_PORT: u32 = 39;
pub const FILE_DEVICE_NETWORK_REDIRECTOR: u32 = 40;
pub const FILE_DEVICE_BATTERY: u32 = 41;
pub const FILE_DEVICE_BUS_EXTENDER: u32 = 42;
pub const FILE_DEVICE_MODEM: u32 = 43;
pub const FILE_DEVICE_VDM: u32 = 44;
pub const FILE_DEVICE_MASS_STORAGE: u32 = 45;
pub const FILE_DEVICE_SMB: u32 = 46;
pub const FILE_DEVICE_KS: u32 = 47;
pub const FILE_DEVICE_CHANGER: u32 = 48;
pub const FILE_DEVICE_SMARTCARD: u32 = 49;
pub const FILE_DEVICE_ACPI: u32 = 50;
pub const FILE_DEVICE_DVD: u32 = 51;
pub const FILE_DEVICE_FULLSCREEN_VIDEO: u32 = 52;
pub const FILE_DEVICE_DFS_FILE_SYSTEM: u32 = 53;
pub const FILE_DEVICE_DFS_VOLUME: u32 = 54;
pub const FILE_DEVICE_SERENUM: u32 = 55;
pub const FILE_DEVICE_TERMSRV: u32 = 56;
pub const FILE_DEVICE_KSEC: u32 = 57;
pub const FILE_DEVICE_FIPS: u32 = 58;
pub const FILE_DEVICE_INFINIBAND: u32 = 59;
pub const FILE_DEVICE_VMBUS: u32 = 62;
pub const FILE_DEVICE_CRYPT_PROVIDER: u32 = 63;
pub const FILE_DEVICE_WPD: u32 = 64;
pub const FILE_DEVICE_BLUETOOTH: u32 = 65;
pub const FILE_DEVICE_MT_COMPOSITE: u32 = 66;
pub const FILE_DEVICE_MT_TRANSPORT: u32 = 67;
pub const FILE_DEVICE_BIOMETRIC: u32 = 68;
pub const FILE_DEVICE_PMI: u32 = 69;
pub const FILE_DEVICE_EHSTOR: u32 = 70;
pub const FILE_DEVICE_DEVAPI: u32 = 71;
pub const FILE_DEVICE_GPIO: u32 = 72;
pub const FILE_DEVICE_USBEX: u32 = 73;
pub const FILE_DEVICE_CONSOLE: u32 = 80;
pub const FILE_DEVICE_NFP: u32 = 81;
pub const FILE_DEVICE_SYSENV: u32 = 82;
pub const FILE_DEVICE_VIRTUAL_BLOCK: u32 = 83;
pub const FILE_DEVICE_POINT_OF_SERVICE: u32 = 84;
pub const FILE_DEVICE_STORAGE_REPLICATION: u32 = 85;
pub const FILE_DEVICE_TRUST_ENV: u32 = 86;
pub const FILE_DEVICE_UCM: u32 = 87;
pub const FILE_DEVICE_UCMTCPCI: u32 = 88;
pub const FILE_DEVICE_PERSISTENT_MEMORY: u32 = 89;
pub const FILE_DEVICE_NVDIMM: u32 = 90;
pub const FILE_DEVICE_HOLOGRAPHIC: u32 = 91;
pub const FILE_DEVICE_SDFXHCI: u32 = 92;
pub const FILE_DEVICE_UCMUCSI: u32 = 93;
pub const METHOD_BUFFERED: u32 = 0;
pub const METHOD_IN_DIRECT: u32 = 1;
pub const METHOD_OUT_DIRECT: u32 = 2;
pub const METHOD_NEITHER: u32 = 3;
pub const METHOD_DIRECT_TO_HARDWARE: u32 = 1;
pub const METHOD_DIRECT_FROM_HARDWARE: u32 = 2;
pub const FILE_ANY_ACCESS: u32 = 0;
pub const FILE_SPECIAL_ACCESS: u32 = 0;
pub const FILE_READ_ACCESS: u32 = 1;
pub const FILE_WRITE_ACCESS: u32 = 2;
pub const IOCTL_STORAGE_BASE: u32 = 45;
pub const STORAGE_DEVICE_FLAGS_RANDOM_DEVICEGUID_REASON_CONFLICT: u32 = 1;
pub const STORAGE_DEVICE_FLAGS_RANDOM_DEVICEGUID_REASON_NOHWID: u32 = 2;
pub const STORAGE_DEVICE_FLAGS_PAGE_83_DEVICEGUID: u32 = 4;
pub const RECOVERED_WRITES_VALID: u32 = 1;
pub const UNRECOVERED_WRITES_VALID: u32 = 2;
pub const RECOVERED_READS_VALID: u32 = 4;
pub const UNRECOVERED_READS_VALID: u32 = 8;
pub const WRITE_COMPRESSION_INFO_VALID: u32 = 16;
pub const READ_COMPRESSION_INFO_VALID: u32 = 32;
pub const TAPE_RETURN_STATISTICS: u32 = 0;
pub const TAPE_RETURN_ENV_INFO: u32 = 1;
pub const TAPE_RESET_STATISTICS: u32 = 2;
pub const MEDIA_ERASEABLE: u32 = 1;
pub const MEDIA_WRITE_ONCE: u32 = 2;
pub const MEDIA_READ_ONLY: u32 = 4;
pub const MEDIA_READ_WRITE: u32 = 8;
pub const MEDIA_WRITE_PROTECTED: u32 = 256;
pub const MEDIA_CURRENTLY_MOUNTED: u32 = 2147483648;
pub const STORAGE_FAILURE_PREDICTION_CONFIG_V1: u32 = 1;
pub const SRB_TYPE_SCSI_REQUEST_BLOCK: u32 = 0;
pub const SRB_TYPE_STORAGE_REQUEST_BLOCK: u32 = 1;
pub const STORAGE_ADDRESS_TYPE_BTL8: u32 = 0;
pub const STORAGE_RPMB_DESCRIPTOR_VERSION_1: u32 = 1;
pub const STORAGE_RPMB_MINIMUM_RELIABLE_WRITE_SIZE: u32 = 512;
pub const STORAGE_CRYPTO_CAPABILITY_VERSION_1: u32 = 1;
pub const STORAGE_CRYPTO_DESCRIPTOR_VERSION_1: u32 = 1;
pub const STORAGE_TIER_NAME_LENGTH: u32 = 256;
pub const STORAGE_TIER_DESCRIPTION_LENGTH: u32 = 512;
pub const STORAGE_TIER_FLAG_NO_SEEK_PENALTY: u32 = 131072;
pub const STORAGE_TIER_FLAG_WRITE_BACK_CACHE: u32 = 2097152;
pub const STORAGE_TIER_FLAG_READ_CACHE: u32 = 4194304;
pub const STORAGE_TIER_FLAG_PARITY: u32 = 8388608;
pub const STORAGE_TIER_FLAG_SMR: u32 = 16777216;
pub const STORAGE_TEMPERATURE_VALUE_NOT_REPORTED: u32 = 32768;
pub const STORAGE_TEMPERATURE_THRESHOLD_FLAG_ADAPTER_REQUEST: u32 = 1;
pub const STORAGE_COMPONENT_ROLE_CACHE: u32 = 1;
pub const STORAGE_COMPONENT_ROLE_TIERING: u32 = 2;
pub const STORAGE_COMPONENT_ROLE_DATA: u32 = 4;
pub const STORAGE_ATTRIBUTE_BYTE_ADDRESSABLE_IO: u32 = 1;
pub const STORAGE_ATTRIBUTE_BLOCK_IO: u32 = 2;
pub const STORAGE_ATTRIBUTE_DYNAMIC_PERSISTENCE: u32 = 4;
pub const STORAGE_ATTRIBUTE_VOLATILE: u32 = 8;
pub const STORAGE_ATTRIBUTE_ASYNC_EVENT_NOTIFICATION: u32 = 16;
pub const STORAGE_ATTRIBUTE_PERF_SIZE_INDEPENDENT: u32 = 32;
pub const STORAGE_DEVICE_MAX_OPERATIONAL_STATUS: u32 = 16;
pub const STORAGE_ADAPTER_SERIAL_NUMBER_V1_MAX_LENGTH: u32 = 128;
pub const STORAGE_DEVICE_NUMA_NODE_UNKNOWN: u32 = 4294967295;
pub const DeviceDsmActionFlag_NonDestructive: u32 = 2147483648;
pub const DeviceDsmAction_None: u32 = 0;
pub const DeviceDsmAction_Trim: u32 = 1;
pub const DeviceDsmAction_Notification: u32 = 2147483650;
pub const DeviceDsmAction_OffloadRead: u32 = 2147483651;
pub const DeviceDsmAction_OffloadWrite: u32 = 4;
pub const DeviceDsmAction_Allocation: u32 = 2147483653;
pub const DeviceDsmAction_Repair: u32 = 2147483654;
pub const DeviceDsmAction_Scrub: u32 = 2147483655;
pub const DeviceDsmAction_DrtQuery: u32 = 2147483656;
pub const DeviceDsmAction_DrtClear: u32 = 2147483657;
pub const DeviceDsmAction_DrtDisable: u32 = 2147483658;
pub const DeviceDsmAction_TieringQuery: u32 = 2147483659;
pub const DeviceDsmAction_Map: u32 = 2147483660;
pub const DeviceDsmAction_RegenerateParity: u32 = 2147483661;
pub const DeviceDsmAction_NvCache_Change_Priority: u32 = 2147483662;
pub const DeviceDsmAction_NvCache_Evict: u32 = 2147483663;
pub const DeviceDsmAction_TopologyIdQuery: u32 = 2147483664;
pub const DeviceDsmAction_GetPhysicalAddresses: u32 = 2147483665;
pub const DeviceDsmAction_ScopeRegen: u32 = 2147483666;
pub const DeviceDsmAction_ReportZones: u32 = 2147483667;
pub const DeviceDsmAction_OpenZone: u32 = 2147483668;
pub const DeviceDsmAction_FinishZone: u32 = 2147483669;
pub const DeviceDsmAction_CloseZone: u32 = 2147483670;
pub const DeviceDsmAction_ResetWritePointer: u32 = 23;
pub const DeviceDsmAction_GetRangeErrorInfo: u32 = 2147483672;
pub const DeviceDsmAction_WriteZeroes: u32 = 25;
pub const DeviceDsmAction_LostQuery: u32 = 2147483674;
pub const DeviceDsmAction_GetFreeSpace: u32 = 2147483675;
pub const DeviceDsmAction_ConversionQuery: u32 = 2147483676;
pub const DEVICE_DSM_FLAG_ENTIRE_DATA_SET_RANGE: u32 = 1;
pub const DEVICE_DSM_FLAG_TRIM_NOT_FS_ALLOCATED: u32 = 2147483648;
pub const DEVICE_DSM_FLAG_TRIM_BYPASS_RZAT: u32 = 1073741824;
pub const DEVICE_DSM_NOTIFY_FLAG_BEGIN: u32 = 1;
pub const DEVICE_DSM_NOTIFY_FLAG_END: u32 = 2;
pub const STORAGE_OFFLOAD_MAX_TOKEN_LENGTH: u32 = 512;
pub const STORAGE_OFFLOAD_TOKEN_ID_LENGTH: u32 = 504;
pub const STORAGE_OFFLOAD_TOKEN_TYPE_ZERO_DATA: u32 = 4294901761;
pub const STORAGE_OFFLOAD_READ_RANGE_TRUNCATED: u32 = 1;
pub const STORAGE_OFFLOAD_WRITE_RANGE_TRUNCATED: u32 = 1;
pub const STORAGE_OFFLOAD_TOKEN_INVALID: u32 = 2;
pub const DEVICE_DSM_FLAG_ALLOCATION_CONSOLIDATEABLE_ONLY: u32 = 1073741824;
pub const DEVICE_DSM_PARAMETERS_V1: u32 = 1;
pub const DEVICE_DATA_SET_LBP_STATE_PARAMETERS_VERSION_V1: u32 = 1;
pub const DEVICE_DSM_FLAG_REPAIR_INPUT_TOPOLOGY_ID_PRESENT: u32 = 1073741824;
pub const DEVICE_DSM_FLAG_REPAIR_OUTPUT_PARITY_EXTENT: u32 = 536870912;
pub const DEVICE_DSM_FLAG_SCRUB_SKIP_IN_SYNC: u32 = 268435456;
pub const DEVICE_DSM_FLAG_SCRUB_OUTPUT_PARITY_EXTENT: u32 = 536870912;
pub const DEVICE_DSM_FLAG_PHYSICAL_ADDRESSES_OMIT_TOTAL_RANGES: u32 = 268435456;
pub const DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT_V1: u32 = 1;
pub const DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT_VERSION_V1: u32 = 1;
pub const DEVICE_STORAGE_NO_ERRORS: u32 = 1;
pub const DEVICE_DSM_RANGE_ERROR_OUTPUT_V1: u32 = 1;
pub const DEVICE_DSM_RANGE_ERROR_INFO_VERSION_V1: u32 = 1;
pub const IOCTL_STORAGE_BC_VERSION: u32 = 1;
pub const STORAGE_PRIORITY_HINT_SUPPORTED: u32 = 1;
pub const DEVICEDUMP_STRUCTURE_VERSION_V1: u32 = 1;
pub const DEVICEDUMP_MAX_IDSTRING: u32 = 32;
pub const MAX_FW_BUCKET_ID_LENGTH: u32 = 132;
pub const STORAGE_CRASH_TELEMETRY_REGKEY: &'static [u8; 81usize] =
    b"\\Registry\\Machine\\System\\CurrentControlSet\\Control\\CrashControl\\StorageTelemetry\0";
pub const STORAGE_DEVICE_TELEMETRY_REGKEY: &'static [u8; 76usize] =
    b"\\Registry\\Machine\\System\\CurrentControlSet\\Control\\Storage\\StorageTelemetry\0";
pub const DDUMP_FLAG_DATA_READ_FROM_DEVICE: u32 = 1;
pub const FW_ISSUEID_NO_ISSUE: u32 = 0;
pub const FW_ISSUEID_UNKNOWN: u32 = 4294967295;
pub const TC_PUBLIC_DEVICEDUMP_CONTENT_SMART: u32 = 1;
pub const TC_PUBLIC_DEVICEDUMP_CONTENT_GPLOG: u32 = 2;
pub const TC_PUBLIC_DEVICEDUMP_CONTENT_GPLOG_MAX: u32 = 16;
pub const TC_DEVICEDUMP_SUBSECTION_DESC_LENGTH: u32 = 16;
pub const TC_PUBLIC_DATA_TYPE_ATAGP: &'static [u8; 14usize] = b"ATAGPLogPages\0";
pub const TC_PUBLIC_DATA_TYPE_ATASMART: &'static [u8; 14usize] = b"ATASMARTPages\0";
pub const CDB_SIZE: u32 = 16;
pub const TELEMETRY_COMMAND_SIZE: u32 = 16;
pub const DEVICEDUMP_CAP_PRIVATE_SECTION: u32 = 1;
pub const DEVICEDUMP_CAP_RESTRICTED_SECTION: u32 = 2;
pub const STORAGE_IDLE_POWERUP_REASON_VERSION_V1: u32 = 1;
pub const STORAGE_DEVICE_POWER_CAP_VERSION_V1: u32 = 1;
pub const STORAGE_EVENT_NOTIFICATION_VERSION_V1: u32 = 1;
pub const STORAGE_EVENT_MEDIA_STATUS: u32 = 1;
pub const STORAGE_EVENT_DEVICE_STATUS: u32 = 2;
pub const STORAGE_EVENT_DEVICE_OPERATION: u32 = 4;
pub const STORAGE_EVENT_ALL: u32 = 7;
pub const READ_COPY_NUMBER_KEY: u32 = 1380142592;
pub const STORAGE_HW_FIRMWARE_REQUEST_FLAG_CONTROLLER: u32 = 1;
pub const STORAGE_HW_FIRMWARE_REQUEST_FLAG_LAST_SEGMENT: u32 = 2;
pub const STORAGE_HW_FIRMWARE_REQUEST_FLAG_FIRST_SEGMENT: u32 = 4;
pub const STORAGE_HW_FIRMWARE_REQUEST_FLAG_SWITCH_TO_EXISTING_FIRMWARE: u32 = 2147483648;
pub const STORAGE_HW_FIRMWARE_INVALID_SLOT: u32 = 255;
pub const STORAGE_HW_FIRMWARE_REVISION_LENGTH: u32 = 16;
pub const STORAGE_PROTOCOL_STRUCTURE_VERSION: u32 = 1;
pub const STORAGE_PROTOCOL_COMMAND_FLAG_ADAPTER_REQUEST: u32 = 2147483648;
pub const STORAGE_PROTOCOL_STATUS_PENDING: u32 = 0;
pub const STORAGE_PROTOCOL_STATUS_SUCCESS: u32 = 1;
pub const STORAGE_PROTOCOL_STATUS_ERROR: u32 = 2;
pub const STORAGE_PROTOCOL_STATUS_INVALID_REQUEST: u32 = 3;
pub const STORAGE_PROTOCOL_STATUS_NO_DEVICE: u32 = 4;
pub const STORAGE_PROTOCOL_STATUS_BUSY: u32 = 5;
pub const STORAGE_PROTOCOL_STATUS_DATA_OVERRUN: u32 = 6;
pub const STORAGE_PROTOCOL_STATUS_INSUFFICIENT_RESOURCES: u32 = 7;
pub const STORAGE_PROTOCOL_STATUS_NOT_SUPPORTED: u32 = 255;
pub const STORAGE_PROTOCOL_COMMAND_LENGTH_NVME: u32 = 64;
pub const STORAGE_PROTOCOL_SPECIFIC_NVME_ADMIN_COMMAND: u32 = 1;
pub const STORAGE_PROTOCOL_SPECIFIC_NVME_NVM_COMMAND: u32 = 2;
pub const STORATTRIBUTE_NONE: u32 = 0;
pub const STORATTRIBUTE_MANAGEMENT_STATE: u32 = 1;
pub const IOCTL_SCMBUS_BASE: u32 = 89;
pub const IOCTL_SCMBUS_DEVICE_FUNCTION_BASE: u32 = 0;
pub const IOCTL_SCM_LOGICAL_DEVICE_FUNCTION_BASE: u32 = 768;
pub const IOCTL_SCM_PHYSICAL_DEVICE_FUNCTION_BASE: u32 = 1536;
pub const SCM_MAX_SYMLINK_LEN_IN_CHARS: u32 = 256;
pub const MAX_INTERFACE_CODES: u32 = 8;
pub const SCM_PD_FIRMWARE_REVISION_LENGTH_BYTES: u32 = 32;
pub const SCM_PD_PROPERTY_NAME_LENGTH_IN_CHARS: u32 = 128;
pub const SCM_PD_MAX_OPERATIONAL_STATUS: u32 = 16;
pub const SCM_PD_FIRMWARE_LAST_DOWNLOAD: u32 = 1;
pub const IOCTL_DISK_BASE: u32 = 7;
pub const PARTITION_ENTRY_UNUSED: u32 = 0;
pub const PARTITION_FAT_12: u32 = 1;
pub const PARTITION_XENIX_1: u32 = 2;
pub const PARTITION_XENIX_2: u32 = 3;
pub const PARTITION_FAT_16: u32 = 4;
pub const PARTITION_EXTENDED: u32 = 5;
pub const PARTITION_HUGE: u32 = 6;
pub const PARTITION_IFS: u32 = 7;
pub const PARTITION_OS2BOOTMGR: u32 = 10;
pub const PARTITION_FAT32: u32 = 11;
pub const PARTITION_FAT32_XINT13: u32 = 12;
pub const PARTITION_XINT13: u32 = 14;
pub const PARTITION_XINT13_EXTENDED: u32 = 15;
pub const PARTITION_MSFT_RECOVERY: u32 = 39;
pub const PARTITION_MAIN_OS: u32 = 40;
pub const PARTIITON_OS_DATA: u32 = 41;
pub const PARTITION_PRE_INSTALLED: u32 = 42;
pub const PARTITION_BSP: u32 = 43;
pub const PARTITION_DPP: u32 = 44;
pub const PARTITION_WINDOWS_SYSTEM: u32 = 45;
pub const PARTITION_PREP: u32 = 65;
pub const PARTITION_LDM: u32 = 66;
pub const PARTITION_DM: u32 = 84;
pub const PARTITION_EZDRIVE: u32 = 85;
pub const PARTITION_UNIX: u32 = 99;
pub const PARTITION_SPACES_DATA: u32 = 215;
pub const PARTITION_SPACES: u32 = 231;
pub const PARTITION_GPT: u32 = 238;
pub const PARTITION_SYSTEM: u32 = 239;
pub const VALID_NTFT: u32 = 192;
pub const PARTITION_NTFT: u32 = 128;
pub const GPT_ATTRIBUTE_PLATFORM_REQUIRED: u32 = 1;
pub const GPT_BASIC_DATA_ATTRIBUTE_NO_DRIVE_LETTER: i64 = -9223372036854775808;
pub const GPT_BASIC_DATA_ATTRIBUTE_HIDDEN: u64 = 4611686018427387904;
pub const GPT_BASIC_DATA_ATTRIBUTE_SHADOW_COPY: u64 = 2305843009213693952;
pub const GPT_BASIC_DATA_ATTRIBUTE_READ_ONLY: u64 = 1152921504606846976;
pub const GPT_BASIC_DATA_ATTRIBUTE_OFFLINE: u64 = 576460752303423488;
pub const GPT_BASIC_DATA_ATTRIBUTE_DAX: u64 = 288230376151711744;
pub const GPT_BASIC_DATA_ATTRIBUTE_SERVICE: u64 = 144115188075855872;
pub const GPT_SPACES_ATTRIBUTE_NO_METADATA: i64 = -9223372036854775808;
pub const HIST_NO_OF_BUCKETS: u32 = 24;
pub const DISK_LOGGING_START: u32 = 0;
pub const DISK_LOGGING_STOP: u32 = 1;
pub const DISK_LOGGING_DUMP: u32 = 2;
pub const DISK_BINNING: u32 = 3;
pub const CAP_ATA_ID_CMD: u32 = 1;
pub const CAP_ATAPI_ID_CMD: u32 = 2;
pub const CAP_SMART_CMD: u32 = 4;
pub const ATAPI_ID_CMD: u32 = 161;
pub const ID_CMD: u32 = 236;
pub const SMART_CMD: u32 = 176;
pub const SMART_CYL_LOW: u32 = 79;
pub const SMART_CYL_HI: u32 = 194;
pub const SMART_NO_ERROR: u32 = 0;
pub const SMART_IDE_ERROR: u32 = 1;
pub const SMART_INVALID_FLAG: u32 = 2;
pub const SMART_INVALID_COMMAND: u32 = 3;
pub const SMART_INVALID_BUFFER: u32 = 4;
pub const SMART_INVALID_DRIVE: u32 = 5;
pub const SMART_INVALID_IOCTL: u32 = 6;
pub const SMART_ERROR_NO_MEM: u32 = 7;
pub const SMART_INVALID_REGISTER: u32 = 8;
pub const SMART_NOT_SUPPORTED: u32 = 9;
pub const SMART_NO_IDE_DEVICE: u32 = 10;
pub const SMART_OFFLINE_ROUTINE_OFFLINE: u32 = 0;
pub const SMART_SHORT_SELFTEST_OFFLINE: u32 = 1;
pub const SMART_EXTENDED_SELFTEST_OFFLINE: u32 = 2;
pub const SMART_ABORT_OFFLINE_SELFTEST: u32 = 127;
pub const SMART_SHORT_SELFTEST_CAPTIVE: u32 = 129;
pub const SMART_EXTENDED_SELFTEST_CAPTIVE: u32 = 130;
pub const READ_ATTRIBUTE_BUFFER_SIZE: u32 = 512;
pub const IDENTIFY_BUFFER_SIZE: u32 = 512;
pub const READ_THRESHOLD_BUFFER_SIZE: u32 = 512;
pub const SMART_LOG_SECTOR_SIZE: u32 = 512;
pub const READ_ATTRIBUTES: u32 = 208;
pub const READ_THRESHOLDS: u32 = 209;
pub const ENABLE_DISABLE_AUTOSAVE: u32 = 210;
pub const SAVE_ATTRIBUTE_VALUES: u32 = 211;
pub const EXECUTE_OFFLINE_DIAGS: u32 = 212;
pub const SMART_READ_LOG: u32 = 213;
pub const SMART_WRITE_LOG: u32 = 214;
pub const ENABLE_SMART: u32 = 216;
pub const DISABLE_SMART: u32 = 217;
pub const RETURN_SMART_STATUS: u32 = 218;
pub const ENABLE_DISABLE_AUTO_OFFLINE: u32 = 219;
pub const DISK_ATTRIBUTE_OFFLINE: u32 = 1;
pub const DISK_ATTRIBUTE_READ_ONLY: u32 = 2;
pub const IOCTL_CHANGER_BASE: u32 = 48;
pub const MAX_VOLUME_ID_SIZE: u32 = 36;
pub const MAX_VOLUME_TEMPLATE_SIZE: u32 = 40;
pub const VENDOR_ID_LENGTH: u32 = 8;
pub const PRODUCT_ID_LENGTH: u32 = 16;
pub const REVISION_LENGTH: u32 = 4;
pub const SERIAL_NUMBER_LENGTH: u32 = 32;
pub const CHANGER_BAR_CODE_SCANNER_INSTALLED: u32 = 1;
pub const CHANGER_INIT_ELEM_STAT_WITH_RANGE: u32 = 2;
pub const CHANGER_CLOSE_IEPORT: u32 = 4;
pub const CHANGER_OPEN_IEPORT: u32 = 8;
pub const CHANGER_STATUS_NON_VOLATILE: u32 = 16;
pub const CHANGER_EXCHANGE_MEDIA: u32 = 32;
pub const CHANGER_CLEANER_SLOT: u32 = 64;
pub const CHANGER_LOCK_UNLOCK: u32 = 128;
pub const CHANGER_CARTRIDGE_MAGAZINE: u32 = 256;
pub const CHANGER_MEDIUM_FLIP: u32 = 512;
pub const CHANGER_POSITION_TO_ELEMENT: u32 = 1024;
pub const CHANGER_REPORT_IEPORT_STATE: u32 = 2048;
pub const CHANGER_STORAGE_DRIVE: u32 = 4096;
pub const CHANGER_STORAGE_IEPORT: u32 = 8192;
pub const CHANGER_STORAGE_SLOT: u32 = 16384;
pub const CHANGER_STORAGE_TRANSPORT: u32 = 32768;
pub const CHANGER_DRIVE_CLEANING_REQUIRED: u32 = 65536;
pub const CHANGER_PREDISMOUNT_EJECT_REQUIRED: u32 = 131072;
pub const CHANGER_CLEANER_ACCESS_NOT_VALID: u32 = 262144;
pub const CHANGER_PREMOUNT_EJECT_REQUIRED: u32 = 524288;
pub const CHANGER_VOLUME_IDENTIFICATION: u32 = 1048576;
pub const CHANGER_VOLUME_SEARCH: u32 = 2097152;
pub const CHANGER_VOLUME_ASSERT: u32 = 4194304;
pub const CHANGER_VOLUME_REPLACE: u32 = 8388608;
pub const CHANGER_VOLUME_UNDEFINE: u32 = 16777216;
pub const CHANGER_SERIAL_NUMBER_VALID: u32 = 67108864;
pub const CHANGER_DEVICE_REINITIALIZE_CAPABLE: u32 = 134217728;
pub const CHANGER_KEYPAD_ENABLE_DISABLE: u32 = 268435456;
pub const CHANGER_DRIVE_EMPTY_ON_DOOR_ACCESS: u32 = 536870912;
pub const CHANGER_RESERVED_BIT: u32 = 2147483648;
pub const CHANGER_PREDISMOUNT_ALIGN_TO_SLOT: u32 = 2147483649;
pub const CHANGER_PREDISMOUNT_ALIGN_TO_DRIVE: u32 = 2147483650;
pub const CHANGER_CLEANER_AUTODISMOUNT: u32 = 2147483652;
pub const CHANGER_TRUE_EXCHANGE_CAPABLE: u32 = 2147483656;
pub const CHANGER_SLOTS_USE_TRAYS: u32 = 2147483664;
pub const CHANGER_RTN_MEDIA_TO_ORIGINAL_ADDR: u32 = 2147483680;
pub const CHANGER_CLEANER_OPS_NOT_SUPPORTED: u32 = 2147483712;
pub const CHANGER_IEPORT_USER_CONTROL_OPEN: u32 = 2147483776;
pub const CHANGER_IEPORT_USER_CONTROL_CLOSE: u32 = 2147483904;
pub const CHANGER_MOVE_EXTENDS_IEPORT: u32 = 2147484160;
pub const CHANGER_MOVE_RETRACTS_IEPORT: u32 = 2147484672;
pub const CHANGER_TO_TRANSPORT: u32 = 1;
pub const CHANGER_TO_SLOT: u32 = 2;
pub const CHANGER_TO_IEPORT: u32 = 4;
pub const CHANGER_TO_DRIVE: u32 = 8;
pub const LOCK_UNLOCK_IEPORT: u32 = 1;
pub const LOCK_UNLOCK_DOOR: u32 = 2;
pub const LOCK_UNLOCK_KEYPAD: u32 = 4;
pub const LOCK_ELEMENT: u32 = 0;
pub const UNLOCK_ELEMENT: u32 = 1;
pub const EXTEND_IEPORT: u32 = 2;
pub const RETRACT_IEPORT: u32 = 3;
pub const ELEMENT_STATUS_FULL: u32 = 1;
pub const ELEMENT_STATUS_IMPEXP: u32 = 2;
pub const ELEMENT_STATUS_EXCEPT: u32 = 4;
pub const ELEMENT_STATUS_ACCESS: u32 = 8;
pub const ELEMENT_STATUS_EXENAB: u32 = 16;
pub const ELEMENT_STATUS_INENAB: u32 = 32;
pub const ELEMENT_STATUS_PRODUCT_DATA: u32 = 64;
pub const ELEMENT_STATUS_LUN_VALID: u32 = 4096;
pub const ELEMENT_STATUS_ID_VALID: u32 = 8192;
pub const ELEMENT_STATUS_NOT_BUS: u32 = 32768;
pub const ELEMENT_STATUS_INVERT: u32 = 4194304;
pub const ELEMENT_STATUS_SVALID: u32 = 8388608;
pub const ELEMENT_STATUS_PVOLTAG: u32 = 268435456;
pub const ELEMENT_STATUS_AVOLTAG: u32 = 536870912;
pub const ERROR_LABEL_UNREADABLE: u32 = 1;
pub const ERROR_LABEL_QUESTIONABLE: u32 = 2;
pub const ERROR_SLOT_NOT_PRESENT: u32 = 4;
pub const ERROR_DRIVE_NOT_INSTALLED: u32 = 8;
pub const ERROR_TRAY_MALFUNCTION: u32 = 16;
pub const ERROR_INIT_STATUS_NEEDED: u32 = 17;
pub const ERROR_UNHANDLED_ERROR: u32 = 4294967295;
pub const SEARCH_ALL: u32 = 0;
pub const SEARCH_PRIMARY: u32 = 1;
pub const SEARCH_ALTERNATE: u32 = 2;
pub const SEARCH_ALL_NO_SEQ: u32 = 4;
pub const SEARCH_PRI_NO_SEQ: u32 = 5;
pub const SEARCH_ALT_NO_SEQ: u32 = 6;
pub const ASSERT_PRIMARY: u32 = 8;
pub const ASSERT_ALTERNATE: u32 = 9;
pub const REPLACE_PRIMARY: u32 = 10;
pub const REPLACE_ALTERNATE: u32 = 11;
pub const UNDEFINE_PRIMARY: u32 = 12;
pub const UNDEFINE_ALTERNATE: u32 = 13;
pub const GET_VOLUME_BITMAP_FLAG_MASK_METADATA: u32 = 1;
pub const FLAG_USN_TRACK_MODIFIED_RANGES_ENABLE: u32 = 1;
pub const USN_PAGE_SIZE: u32 = 4096;
pub const USN_REASON_DATA_OVERWRITE: u32 = 1;
pub const USN_REASON_DATA_EXTEND: u32 = 2;
pub const USN_REASON_DATA_TRUNCATION: u32 = 4;
pub const USN_REASON_NAMED_DATA_OVERWRITE: u32 = 16;
pub const USN_REASON_NAMED_DATA_EXTEND: u32 = 32;
pub const USN_REASON_NAMED_DATA_TRUNCATION: u32 = 64;
pub const USN_REASON_FILE_CREATE: u32 = 256;
pub const USN_REASON_FILE_DELETE: u32 = 512;
pub const USN_REASON_EA_CHANGE: u32 = 1024;
pub const USN_REASON_SECURITY_CHANGE: u32 = 2048;
pub const USN_REASON_RENAME_OLD_NAME: u32 = 4096;
pub const USN_REASON_RENAME_NEW_NAME: u32 = 8192;
pub const USN_REASON_INDEXABLE_CHANGE: u32 = 16384;
pub const USN_REASON_BASIC_INFO_CHANGE: u32 = 32768;
pub const USN_REASON_HARD_LINK_CHANGE: u32 = 65536;
pub const USN_REASON_COMPRESSION_CHANGE: u32 = 131072;
pub const USN_REASON_ENCRYPTION_CHANGE: u32 = 262144;
pub const USN_REASON_OBJECT_ID_CHANGE: u32 = 524288;
pub const USN_REASON_REPARSE_POINT_CHANGE: u32 = 1048576;
pub const USN_REASON_STREAM_CHANGE: u32 = 2097152;
pub const USN_REASON_TRANSACTED_CHANGE: u32 = 4194304;
pub const USN_REASON_INTEGRITY_CHANGE: u32 = 8388608;
pub const USN_REASON_DESIRED_STORAGE_CLASS_CHANGE: u32 = 16777216;
pub const USN_REASON_CLOSE: u32 = 2147483648;
pub const USN_DELETE_FLAG_DELETE: u32 = 1;
pub const USN_DELETE_FLAG_NOTIFY: u32 = 2;
pub const USN_DELETE_VALID_FLAGS: u32 = 3;
pub const USN_SOURCE_DATA_MANAGEMENT: u32 = 1;
pub const USN_SOURCE_AUXILIARY_DATA: u32 = 2;
pub const USN_SOURCE_REPLICATION_MANAGEMENT: u32 = 4;
pub const USN_SOURCE_CLIENT_REPLICATION_MANAGEMENT: u32 = 8;
pub const USN_SOURCE_VALID_FLAGS: u32 = 15;
pub const MARK_HANDLE_PROTECT_CLUSTERS: u32 = 1;
pub const MARK_HANDLE_TXF_SYSTEM_LOG: u32 = 4;
pub const MARK_HANDLE_NOT_TXF_SYSTEM_LOG: u32 = 8;
pub const MARK_HANDLE_REALTIME: u32 = 32;
pub const MARK_HANDLE_NOT_REALTIME: u32 = 64;
pub const MARK_HANDLE_FILTER_METADATA: u32 = 512;
pub const MARK_HANDLE_CLOUD_SYNC: u32 = 2048;
pub const MARK_HANDLE_READ_COPY: u32 = 128;
pub const MARK_HANDLE_NOT_READ_COPY: u32 = 256;
pub const MARK_HANDLE_RETURN_PURGE_FAILURE: u32 = 1024;
pub const MARK_HANDLE_DISABLE_FILE_METADATA_OPTIMIZATION: u32 = 4096;
pub const MARK_HANDLE_ENABLE_USN_SOURCE_ON_PAGING_IO: u32 = 8192;
pub const MARK_HANDLE_SKIP_COHERENCY_SYNC_DISALLOW_WRITES: u32 = 16384;
pub const MARK_HANDLE_ENABLE_CPU_CACHE: u32 = 268435456;
pub const VOLUME_IS_DIRTY: u32 = 1;
pub const VOLUME_UPGRADE_SCHEDULED: u32 = 2;
pub const VOLUME_SESSION_OPEN: u32 = 4;
pub const FILE_PREFETCH_TYPE_FOR_CREATE: u32 = 1;
pub const FILE_PREFETCH_TYPE_FOR_DIRENUM: u32 = 2;
pub const FILE_PREFETCH_TYPE_FOR_CREATE_EX: u32 = 3;
pub const FILE_PREFETCH_TYPE_FOR_DIRENUM_EX: u32 = 4;
pub const FILE_PREFETCH_TYPE_MAX: u32 = 4;
pub const FILESYSTEM_STATISTICS_TYPE_NTFS: u32 = 1;
pub const FILESYSTEM_STATISTICS_TYPE_FAT: u32 = 2;
pub const FILESYSTEM_STATISTICS_TYPE_EXFAT: u32 = 3;
pub const FILESYSTEM_STATISTICS_TYPE_REFS: u32 = 4;
pub const FILE_ZERO_DATA_INFORMATION_FLAG_PRESERVE_CACHED_DATA: u32 = 1;
pub const FILE_SET_ENCRYPTION: u32 = 1;
pub const FILE_CLEAR_ENCRYPTION: u32 = 2;
pub const STREAM_SET_ENCRYPTION: u32 = 3;
pub const STREAM_CLEAR_ENCRYPTION: u32 = 4;
pub const MAXIMUM_ENCRYPTION_VALUE: u32 = 4;
pub const ENCRYPTION_FORMAT_DEFAULT: u32 = 1;
pub const ENCRYPTED_DATA_INFO_SPARSE_FILE: u32 = 1;
pub const COPYFILE_SIS_LINK: u32 = 1;
pub const COPYFILE_SIS_REPLACE: u32 = 2;
pub const COPYFILE_SIS_FLAGS: u32 = 3;
pub const SET_REPAIR_ENABLED: u32 = 1;
pub const SET_REPAIR_WARN_ABOUT_DATA_LOSS: u32 = 8;
pub const SET_REPAIR_DISABLED_AND_BUGCHECK_ON_CORRUPT: u32 = 16;
pub const SET_REPAIR_VALID_MASK: u32 = 25;
pub const FILE_INITIATE_REPAIR_HINT1_FILE_RECORD_NOT_IN_USE: u32 = 1;
pub const FILE_INITIATE_REPAIR_HINT1_FILE_RECORD_REUSED: u32 = 2;
pub const FILE_INITIATE_REPAIR_HINT1_FILE_RECORD_NOT_EXIST: u32 = 4;
pub const FILE_INITIATE_REPAIR_HINT1_FILE_RECORD_NOT_BASE_RECORD: u32 = 8;
pub const FILE_INITIATE_REPAIR_HINT1_SYSTEM_FILE: u32 = 16;
pub const FILE_INITIATE_REPAIR_HINT1_NOT_IMPLEMENTED: u32 = 32;
pub const FILE_INITIATE_REPAIR_HINT1_UNABLE_TO_REPAIR: u32 = 64;
pub const FILE_INITIATE_REPAIR_HINT1_REPAIR_DISABLED: u32 = 128;
pub const FILE_INITIATE_REPAIR_HINT1_RECURSIVELY_CORRUPTED: u32 = 256;
pub const FILE_INITIATE_REPAIR_HINT1_ORPHAN_GENERATED: u32 = 512;
pub const FILE_INITIATE_REPAIR_HINT1_REPAIRED: u32 = 1024;
pub const FILE_INITIATE_REPAIR_HINT1_NOTHING_WRONG: u32 = 2048;
pub const FILE_INITIATE_REPAIR_HINT1_ATTRIBUTE_NOT_FOUND: u32 = 4096;
pub const FILE_INITIATE_REPAIR_HINT1_POTENTIAL_CROSSLINK: u32 = 8192;
pub const FILE_INITIATE_REPAIR_HINT1_STALE_INFORMATION: u32 = 16384;
pub const FILE_INITIATE_REPAIR_HINT1_CLUSTERS_ALREADY_IN_USE: u32 = 32768;
pub const FILE_INITIATE_REPAIR_HINT1_LCN_NOT_EXIST: u32 = 65536;
pub const FILE_INITIATE_REPAIR_HINT1_INVALID_RUN_LENGTH: u32 = 131072;
pub const FILE_INITIATE_REPAIR_HINT1_FILE_RECORD_NOT_ORPHAN: u32 = 262144;
pub const FILE_INITIATE_REPAIR_HINT1_FILE_RECORD_IS_BASE_RECORD: u32 = 524288;
pub const FILE_INITIATE_REPAIR_HINT1_INVALID_ARRAY_LENGTH_COUNT: u32 = 1048576;
pub const FILE_INITIATE_REPAIR_HINT1_SID_VALID: u32 = 2097152;
pub const FILE_INITIATE_REPAIR_HINT1_SID_MISMATCH: u32 = 4194304;
pub const FILE_INITIATE_REPAIR_HINT1_INVALID_PARENT: u32 = 8388608;
pub const FILE_INITIATE_REPAIR_HINT1_PARENT_FILE_RECORD_NOT_IN_USE: u32 = 16777216;
pub const FILE_INITIATE_REPAIR_HINT1_PARENT_FILE_RECORD_REUSED: u32 = 33554432;
pub const FILE_INITIATE_REPAIR_HINT1_PARENT_FILE_RECORD_NOT_EXIST: u32 = 67108864;
pub const FILE_INITIATE_REPAIR_HINT1_PARENT_FILE_RECORD_NOT_BASE_RECORD: u32 = 134217728;
pub const FILE_INITIATE_REPAIR_HINT1_PARENT_FILE_RECORD_NOT_INDEX: u32 = 268435456;
pub const FILE_INITIATE_REPAIR_HINT1_VALID_INDEX_ENTRY: u32 = 536870912;
pub const FILE_INITIATE_REPAIR_HINT1_OUT_OF_GENERIC_NAMES: u32 = 1073741824;
pub const FILE_INITIATE_REPAIR_HINT1_OUT_OF_RESOURCE: u32 = 2147483648;
pub const FILE_INITIATE_REPAIR_HINT1_INVALID_LCN: u64 = 4294967296;
pub const FILE_INITIATE_REPAIR_HINT1_INVALID_VCN: u64 = 8589934592;
pub const FILE_INITIATE_REPAIR_HINT1_NAME_CONFLICT: u64 = 17179869184;
pub const FILE_INITIATE_REPAIR_HINT1_ORPHAN: u64 = 34359738368;
pub const FILE_INITIATE_REPAIR_HINT1_ATTRIBUTE_TOO_SMALL: u64 = 68719476736;
pub const FILE_INITIATE_REPAIR_HINT1_ATTRIBUTE_NON_RESIDENT: u64 = 137438953472;
pub const FILE_INITIATE_REPAIR_HINT1_DENY_DEFRAG: u64 = 274877906944;
pub const FILE_INITIATE_REPAIR_HINT1_PREVIOUS_PARENT_STILL_VALID: u64 = 549755813888;
pub const FILE_INITIATE_REPAIR_HINT1_INDEX_ENTRY_MISMATCH: u64 = 1099511627776;
pub const FILE_INITIATE_REPAIR_HINT1_INVALID_ORPHAN_RECOVERY_NAME: u64 = 2199023255552;
pub const FILE_INITIATE_REPAIR_HINT1_MULTIPLE_FILE_NAME_ATTRIBUTES: u64 = 4398046511104;
pub const TXFS_RM_FLAG_LOGGING_MODE: u32 = 1;
pub const TXFS_RM_FLAG_RENAME_RM: u32 = 2;
pub const TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MAX: u32 = 4;
pub const TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MIN: u32 = 8;
pub const TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS: u32 = 16;
pub const TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT: u32 = 32;
pub const TXFS_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE: u32 = 64;
pub const TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX: u32 = 128;
pub const TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN: u32 = 256;
pub const TXFS_RM_FLAG_GROW_LOG: u32 = 1024;
pub const TXFS_RM_FLAG_SHRINK_LOG: u32 = 2048;
pub const TXFS_RM_FLAG_ENFORCE_MINIMUM_SIZE: u32 = 4096;
pub const TXFS_RM_FLAG_PRESERVE_CHANGES: u32 = 8192;
pub const TXFS_RM_FLAG_RESET_RM_AT_NEXT_START: u32 = 16384;
pub const TXFS_RM_FLAG_DO_NOT_RESET_RM_AT_NEXT_START: u32 = 32768;
pub const TXFS_RM_FLAG_PREFER_CONSISTENCY: u32 = 65536;
pub const TXFS_RM_FLAG_PREFER_AVAILABILITY: u32 = 131072;
pub const TXFS_LOGGING_MODE_SIMPLE: u32 = 1;
pub const TXFS_LOGGING_MODE_FULL: u32 = 2;
pub const TXFS_TRANSACTION_STATE_NONE: u32 = 0;
pub const TXFS_TRANSACTION_STATE_ACTIVE: u32 = 1;
pub const TXFS_TRANSACTION_STATE_PREPARED: u32 = 2;
pub const TXFS_TRANSACTION_STATE_NOTACTIVE: u32 = 3;
pub const TXFS_MODIFY_RM_VALID_FLAGS: u32 = 261631;
pub const TXFS_RM_STATE_NOT_STARTED: u32 = 0;
pub const TXFS_RM_STATE_STARTING: u32 = 1;
pub const TXFS_RM_STATE_ACTIVE: u32 = 2;
pub const TXFS_RM_STATE_SHUTTING_DOWN: u32 = 3;
pub const TXFS_QUERY_RM_INFORMATION_VALID_FLAGS: u32 = 246192;
pub const TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_REDO_LSN: u32 = 1;
pub const TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_VIRTUAL_CLOCK: u32 = 2;
pub const TXFS_ROLLFORWARD_REDO_VALID_FLAGS: u32 = 3;
pub const TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MAX: u32 = 1;
pub const TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MIN: u32 = 2;
pub const TXFS_START_RM_FLAG_LOG_CONTAINER_SIZE: u32 = 4;
pub const TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS: u32 = 8;
pub const TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT: u32 = 16;
pub const TXFS_START_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE: u32 = 32;
pub const TXFS_START_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX: u32 = 64;
pub const TXFS_START_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN: u32 = 128;
pub const TXFS_START_RM_FLAG_RECOVER_BEST_EFFORT: u32 = 512;
pub const TXFS_START_RM_FLAG_LOGGING_MODE: u32 = 1024;
pub const TXFS_START_RM_FLAG_PRESERVE_CHANGES: u32 = 2048;
pub const TXFS_START_RM_FLAG_PREFER_CONSISTENCY: u32 = 4096;
pub const TXFS_START_RM_FLAG_PREFER_AVAILABILITY: u32 = 8192;
pub const TXFS_START_RM_VALID_FLAGS: u32 = 15999;
pub const TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY_FLAG_CREATED: u32 = 1;
pub const TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY_FLAG_DELETED: u32 = 2;
pub const TXFS_TRANSACTED_VERSION_NONTRANSACTED: u32 = 4294967294;
pub const TXFS_TRANSACTED_VERSION_UNCOMMITTED: u32 = 4294967295;
pub const TXFS_SAVEPOINT_SET: u32 = 1;
pub const TXFS_SAVEPOINT_ROLLBACK: u32 = 2;
pub const TXFS_SAVEPOINT_CLEAR: u32 = 4;
pub const TXFS_SAVEPOINT_CLEAR_ALL: u32 = 16;
pub const PERSISTENT_VOLUME_STATE_SHORT_NAME_CREATION_DISABLED: u32 = 1;
pub const PERSISTENT_VOLUME_STATE_VOLUME_SCRUB_DISABLED: u32 = 2;
pub const PERSISTENT_VOLUME_STATE_GLOBAL_METADATA_NO_SEEK_PENALTY: u32 = 4;
pub const PERSISTENT_VOLUME_STATE_LOCAL_METADATA_NO_SEEK_PENALTY: u32 = 8;
pub const PERSISTENT_VOLUME_STATE_NO_HEAT_GATHERING: u32 = 16;
pub const PERSISTENT_VOLUME_STATE_CONTAINS_BACKING_WIM: u32 = 32;
pub const PERSISTENT_VOLUME_STATE_BACKED_BY_WIM: u32 = 64;
pub const PERSISTENT_VOLUME_STATE_NO_WRITE_AUTO_TIERING: u32 = 128;
pub const PERSISTENT_VOLUME_STATE_TXF_DISABLED: u32 = 256;
pub const OPLOCK_LEVEL_CACHE_READ: u32 = 1;
pub const OPLOCK_LEVEL_CACHE_HANDLE: u32 = 2;
pub const OPLOCK_LEVEL_CACHE_WRITE: u32 = 4;
pub const REQUEST_OPLOCK_INPUT_FLAG_REQUEST: u32 = 1;
pub const REQUEST_OPLOCK_INPUT_FLAG_ACK: u32 = 2;
pub const REQUEST_OPLOCK_INPUT_FLAG_COMPLETE_ACK_ON_CLOSE: u32 = 4;
pub const REQUEST_OPLOCK_CURRENT_VERSION: u32 = 1;
pub const REQUEST_OPLOCK_OUTPUT_FLAG_ACK_REQUIRED: u32 = 1;
pub const REQUEST_OPLOCK_OUTPUT_FLAG_MODES_PROVIDED: u32 = 2;
pub const QUERY_DEPENDENT_VOLUME_REQUEST_FLAG_HOST_VOLUMES: u32 = 1;
pub const QUERY_DEPENDENT_VOLUME_REQUEST_FLAG_GUEST_VOLUMES: u32 = 2;
pub const SD_GLOBAL_CHANGE_TYPE_MACHINE_SID: u32 = 1;
pub const SD_GLOBAL_CHANGE_TYPE_QUERY_STATS: u32 = 65536;
pub const SD_GLOBAL_CHANGE_TYPE_ENUM_SDS: u32 = 131072;
pub const LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_PAGE_FILE: u32 = 1;
pub const LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_DENY_DEFRAG_SET: u32 = 2;
pub const LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_FS_SYSTEM_FILE: u32 = 4;
pub const LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_TXF_SYSTEM_FILE: u32 = 8;
pub const LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_MASK: u32 = 4278190080;
pub const LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_DATA: u32 = 16777216;
pub const LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_INDEX: u32 = 33554432;
pub const LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_SYSTEM: u32 = 50331648;
pub const FILE_TYPE_NOTIFICATION_FLAG_USAGE_BEGIN: u32 = 1;
pub const FILE_TYPE_NOTIFICATION_FLAG_USAGE_END: u32 = 2;
pub const CSV_MGMTLOCK_CHECK_VOLUME_REDIRECTED: u32 = 1;
pub const CSV_INVALID_DEVICE_NUMBER: u32 = 4294967295;
pub const CSV_QUERY_MDS_PATH_V2_VERSION_1: u32 = 1;
pub const CSV_QUERY_MDS_PATH_FLAG_STORAGE_ON_THIS_NODE_IS_CONNECTED: u32 = 1;
pub const CSV_QUERY_MDS_PATH_FLAG_CSV_DIRECT_IO_ENABLED: u32 = 2;
pub const CSV_QUERY_MDS_PATH_FLAG_SMB_BYPASS_CSV_ENABLED: u32 = 4;
pub const QUERY_FILE_LAYOUT_RESTART: u32 = 1;
pub const QUERY_FILE_LAYOUT_INCLUDE_NAMES: u32 = 2;
pub const QUERY_FILE_LAYOUT_INCLUDE_STREAMS: u32 = 4;
pub const QUERY_FILE_LAYOUT_INCLUDE_EXTENTS: u32 = 8;
pub const QUERY_FILE_LAYOUT_INCLUDE_EXTRA_INFO: u32 = 16;
pub const QUERY_FILE_LAYOUT_INCLUDE_STREAMS_WITH_NO_CLUSTERS_ALLOCATED: u32 = 32;
pub const QUERY_FILE_LAYOUT_INCLUDE_FULL_PATH_IN_NAMES: u32 = 64;
pub const QUERY_FILE_LAYOUT_INCLUDE_STREAM_INFORMATION: u32 = 128;
pub const QUERY_FILE_LAYOUT_INCLUDE_STREAM_INFORMATION_FOR_DSC_ATTRIBUTE: u32 = 256;
pub const QUERY_FILE_LAYOUT_INCLUDE_STREAM_INFORMATION_FOR_TXF_ATTRIBUTE: u32 = 512;
pub const QUERY_FILE_LAYOUT_INCLUDE_STREAM_INFORMATION_FOR_EFS_ATTRIBUTE: u32 = 1024;
pub const QUERY_FILE_LAYOUT_INCLUDE_ONLY_FILES_WITH_SPECIFIC_ATTRIBUTES: u32 = 2048;
pub const QUERY_FILE_LAYOUT_INCLUDE_FILES_WITH_DSC_ATTRIBUTE: u32 = 4096;
pub const QUERY_FILE_LAYOUT_SINGLE_INSTANCED: u32 = 1;
pub const FILE_LAYOUT_NAME_ENTRY_PRIMARY: u32 = 1;
pub const FILE_LAYOUT_NAME_ENTRY_DOS: u32 = 2;
pub const STREAM_LAYOUT_ENTRY_IMMOVABLE: u32 = 1;
pub const STREAM_LAYOUT_ENTRY_PINNED: u32 = 2;
pub const STREAM_LAYOUT_ENTRY_RESIDENT: u32 = 4;
pub const STREAM_LAYOUT_ENTRY_NO_CLUSTERS_ALLOCATED: u32 = 8;
pub const STREAM_LAYOUT_ENTRY_HAS_INFORMATION: u32 = 16;
pub const STREAM_EXTENT_ENTRY_AS_RETRIEVAL_POINTERS: u32 = 1;
pub const STREAM_EXTENT_ENTRY_ALL_EXTENTS: u32 = 2;
pub const CHECKSUM_TYPE_UNCHANGED: i32 = -1;
pub const CHECKSUM_TYPE_NONE: u32 = 0;
pub const CHECKSUM_TYPE_CRC32: u32 = 1;
pub const CHECKSUM_TYPE_CRC64: u32 = 2;
pub const CHECKSUM_TYPE_ECC: u32 = 3;
pub const CHECKSUM_TYPE_FIRST_UNUSED_TYPE: u32 = 4;
pub const FSCTL_INTEGRITY_FLAG_CHECKSUM_ENFORCEMENT_OFF: u32 = 1;
pub const OFFLOAD_READ_FLAG_ALL_ZERO_BEYOND_CURRENT_RANGE: u32 = 1;
pub const SET_PURGE_FAILURE_MODE_ENABLED: u32 = 1;
pub const SET_PURGE_FAILURE_MODE_DISABLED: u32 = 2;
pub const FILE_REGION_USAGE_VALID_CACHED_DATA: u32 = 1;
pub const FILE_REGION_USAGE_VALID_NONCACHED_DATA: u32 = 2;
pub const FILE_REGION_USAGE_OTHER_PAGE_ALIGNMENT: u32 = 4;
pub const FILE_REGION_USAGE_LARGE_PAGE_ALIGNMENT: u32 = 8;
pub const FILE_REGION_USAGE_HUGE_PAGE_ALIGNMENT: u32 = 16;
pub const FILE_REGION_USAGE_QUERY_ALIGNMENT: u32 = 24;
pub const VALID_WRITE_USN_REASON_MASK: u32 = 2147483649;
pub const FILE_STORAGE_TIER_NAME_LENGTH: u32 = 256;
pub const FILE_STORAGE_TIER_DESCRIPTION_LENGTH: u32 = 512;
pub const FILE_STORAGE_TIER_FLAG_NO_SEEK_PENALTY: u32 = 131072;
pub const FILE_STORAGE_TIER_FLAG_WRITE_BACK_CACHE: u32 = 2097152;
pub const FILE_STORAGE_TIER_FLAG_READ_CACHE: u32 = 4194304;
pub const FILE_STORAGE_TIER_FLAG_PARITY: u32 = 8388608;
pub const FILE_STORAGE_TIER_FLAG_SMR: u32 = 16777216;
pub const QUERY_STORAGE_CLASSES_FLAGS_MEASURE_WRITE: u32 = 2147483648;
pub const QUERY_STORAGE_CLASSES_FLAGS_MEASURE_READ: u32 = 1073741824;
pub const QUERY_STORAGE_CLASSES_FLAGS_NO_DEFRAG_VOLUME: u32 = 536870912;
pub const DUPLICATE_EXTENTS_DATA_EX_SOURCE_ATOMIC: u32 = 1;
pub const REFS_SMR_VOLUME_INFO_OUTPUT_VERSION_V1: u32 = 1;
pub const REFS_SMR_VOLUME_GC_PARAMETERS_VERSION_V1: u32 = 1;
pub const STREAMS_INVALID_ID: u32 = 0;
pub const STREAMS_MAX_ID: u32 = 65535;
pub const STREAMS_ASSOCIATE_ID_CLEAR: u32 = 1;
pub const STREAMS_ASSOCIATE_ID_SET: u32 = 2;
pub const DAX_ALLOC_ALIGNMENT_FLAG_MANDATORY: u32 = 1;
pub const DAX_ALLOC_ALIGNMENT_FLAG_FALLBACK_SPECIFIED: u32 = 2;
pub const WOF_CURRENT_VERSION: u32 = 1;
pub const WOF_PROVIDER_WIM: u32 = 1;
pub const WOF_PROVIDER_FILE: u32 = 2;
pub const WOF_PROVIDER_CLOUD: u32 = 3;
pub const WIM_PROVIDER_HASH_SIZE: u32 = 20;
pub const WIM_PROVIDER_CURRENT_VERSION: u32 = 1;
pub const WIM_PROVIDER_EXTERNAL_FLAG_NOT_ACTIVE: u32 = 1;
pub const WIM_PROVIDER_EXTERNAL_FLAG_SUSPENDED: u32 = 2;
pub const WIM_BOOT_OS_WIM: u32 = 1;
pub const WIM_BOOT_NOT_OS_WIM: u32 = 0;
pub const FILE_PROVIDER_CURRENT_VERSION: u32 = 1;
pub const FILE_PROVIDER_SINGLE_FILE: u32 = 1;
pub const FILE_PROVIDER_COMPRESSION_XPRESS4K: u32 = 0;
pub const FILE_PROVIDER_COMPRESSION_LZX: u32 = 1;
pub const FILE_PROVIDER_COMPRESSION_XPRESS8K: u32 = 2;
pub const FILE_PROVIDER_COMPRESSION_XPRESS16K: u32 = 3;
pub const FILE_PROVIDER_COMPRESSION_MAXIMUM: u32 = 4;
pub const FILE_PROVIDER_FLAG_COMPRESS_ON_WRITE: u32 = 1;
pub const CONTAINER_VOLUME_STATE_HOSTING_CONTAINER: u32 = 1;
pub const CONTAINER_ROOT_INFO_FLAG_SCRATCH_ROOT: u32 = 1;
pub const CONTAINER_ROOT_INFO_FLAG_LAYER_ROOT: u32 = 2;
pub const CONTAINER_ROOT_INFO_FLAG_VIRTUALIZATION_ROOT: u32 = 4;
pub const CONTAINER_ROOT_INFO_FLAG_VIRTUALIZATION_TARGET_ROOT: u32 = 8;
pub const CONTAINER_ROOT_INFO_FLAG_VIRTUALIZATION_EXCEPTION_ROOT: u32 = 16;
pub const CONTAINER_ROOT_INFO_FLAG_BIND_ROOT: u32 = 32;
pub const CONTAINER_ROOT_INFO_FLAG_BIND_TARGET_ROOT: u32 = 64;
pub const CONTAINER_ROOT_INFO_FLAG_BIND_EXCEPTION_ROOT: u32 = 128;
pub const CONTAINER_ROOT_INFO_FLAG_BIND_DO_NOT_MAP_NAME: u32 = 256;
pub const CONTAINER_ROOT_INFO_VALID_FLAGS: u32 = 511;
pub const PROJFS_PROTOCOL_VERSION: u32 = 3;
pub const IOCTL_VOLUME_BASE: u32 = 86;
pub const EFS_TRACKED_OFFSET_HEADER_FLAG: u32 = 1;
pub const SPACES_TRACKED_OFFSET_HEADER_FLAG: u32 = 2;
pub const SCARD_ATR_LENGTH: u32 = 33;
pub const SCARD_PROTOCOL_UNDEFINED: u32 = 0;
pub const SCARD_PROTOCOL_T0: u32 = 1;
pub const SCARD_PROTOCOL_T1: u32 = 2;
pub const SCARD_PROTOCOL_RAW: u32 = 65536;
pub const SCARD_PROTOCOL_Tx: u32 = 3;
pub const SCARD_PROTOCOL_DEFAULT: u32 = 2147483648;
pub const SCARD_PROTOCOL_OPTIMAL: u32 = 0;
pub const SCARD_POWER_DOWN: u32 = 0;
pub const SCARD_COLD_RESET: u32 = 1;
pub const SCARD_WARM_RESET: u32 = 2;
pub const MAXIMUM_ATTR_STRING_LENGTH: u32 = 32;
pub const MAXIMUM_SMARTCARD_READERS: u32 = 10;
pub const SCARD_CLASS_VENDOR_INFO: u32 = 1;
pub const SCARD_CLASS_COMMUNICATIONS: u32 = 2;
pub const SCARD_CLASS_PROTOCOL: u32 = 3;
pub const SCARD_CLASS_POWER_MGMT: u32 = 4;
pub const SCARD_CLASS_SECURITY: u32 = 5;
pub const SCARD_CLASS_MECHANICAL: u32 = 6;
pub const SCARD_CLASS_VENDOR_DEFINED: u32 = 7;
pub const SCARD_CLASS_IFD_PROTOCOL: u32 = 8;
pub const SCARD_CLASS_ICC_STATE: u32 = 9;
pub const SCARD_CLASS_PERF: u32 = 32766;
pub const SCARD_CLASS_SYSTEM: u32 = 32767;
pub const SCARD_T0_HEADER_LENGTH: u32 = 7;
pub const SCARD_T0_CMD_LENGTH: u32 = 5;
pub const SCARD_T1_PROLOGUE_LENGTH: u32 = 3;
pub const SCARD_T1_EPILOGUE_LENGTH: u32 = 2;
pub const SCARD_T1_EPILOGUE_LENGTH_LRC: u32 = 1;
pub const SCARD_T1_MAX_IFS: u32 = 254;
pub const SCARD_UNKNOWN: u32 = 0;
pub const SCARD_ABSENT: u32 = 1;
pub const SCARD_PRESENT: u32 = 2;
pub const SCARD_SWALLOWED: u32 = 3;
pub const SCARD_POWERED: u32 = 4;
pub const SCARD_NEGOTIABLE: u32 = 5;
pub const SCARD_SPECIFIC: u32 = 6;
pub const SCARD_READER_SWALLOWS: u32 = 1;
pub const SCARD_READER_EJECTS: u32 = 2;
pub const SCARD_READER_CONFISCATES: u32 = 4;
pub const SCARD_READER_CONTACTLESS: u32 = 8;
pub const SCARD_READER_TYPE_SERIAL: u32 = 1;
pub const SCARD_READER_TYPE_PARALELL: u32 = 2;
pub const SCARD_READER_TYPE_KEYBOARD: u32 = 4;
pub const SCARD_READER_TYPE_SCSI: u32 = 8;
pub const SCARD_READER_TYPE_IDE: u32 = 16;
pub const SCARD_READER_TYPE_USB: u32 = 32;
pub const SCARD_READER_TYPE_PCMCIA: u32 = 64;
pub const SCARD_READER_TYPE_TPM: u32 = 128;
pub const SCARD_READER_TYPE_NFC: u32 = 256;
pub const SCARD_READER_TYPE_UICC: u32 = 512;
pub const SCARD_READER_TYPE_NGC: u32 = 1024;
pub const SCARD_READER_TYPE_EMBEDDEDSE: u32 = 2048;
pub const SCARD_READER_TYPE_VENDOR: u32 = 240;
pub const SCARD_SCOPE_USER: u32 = 0;
pub const SCARD_SCOPE_TERMINAL: u32 = 1;
pub const SCARD_SCOPE_SYSTEM: u32 = 2;
pub const SCARD_PROVIDER_PRIMARY: u32 = 1;
pub const SCARD_PROVIDER_CSP: u32 = 2;
pub const SCARD_PROVIDER_KSP: u32 = 3;
pub const SCARD_STATE_UNAWARE: u32 = 0;
pub const SCARD_STATE_IGNORE: u32 = 1;
pub const SCARD_STATE_CHANGED: u32 = 2;
pub const SCARD_STATE_UNKNOWN: u32 = 4;
pub const SCARD_STATE_UNAVAILABLE: u32 = 8;
pub const SCARD_STATE_EMPTY: u32 = 16;
pub const SCARD_STATE_PRESENT: u32 = 32;
pub const SCARD_STATE_ATRMATCH: u32 = 64;
pub const SCARD_STATE_EXCLUSIVE: u32 = 128;
pub const SCARD_STATE_INUSE: u32 = 256;
pub const SCARD_STATE_MUTE: u32 = 512;
pub const SCARD_STATE_UNPOWERED: u32 = 1024;
pub const SCARD_SHARE_EXCLUSIVE: u32 = 1;
pub const SCARD_SHARE_SHARED: u32 = 2;
pub const SCARD_SHARE_DIRECT: u32 = 3;
pub const SCARD_LEAVE_CARD: u32 = 0;
pub const SCARD_RESET_CARD: u32 = 1;
pub const SCARD_UNPOWER_CARD: u32 = 2;
pub const SCARD_EJECT_CARD: u32 = 3;
pub const SC_DLG_MINIMAL_UI: u32 = 1;
pub const SC_DLG_NO_UI: u32 = 2;
pub const SC_DLG_FORCE_UI: u32 = 4;
pub const SCERR_NOCARDNAME: u32 = 16384;
pub const SCERR_NOGUIDS: u32 = 32768;
pub const SCARD_AUDIT_CHV_FAILURE: u32 = 0;
pub const SCARD_AUDIT_CHV_SUCCESS: u32 = 1;
pub const MAXPROPPAGES: u32 = 100;
pub const PSP_DEFAULT: u32 = 0;
pub const PSP_DLGINDIRECT: u32 = 1;
pub const PSP_USEHICON: u32 = 2;
pub const PSP_USEICONID: u32 = 4;
pub const PSP_USETITLE: u32 = 8;
pub const PSP_RTLREADING: u32 = 16;
pub const PSP_HASHELP: u32 = 32;
pub const PSP_USEREFPARENT: u32 = 64;
pub const PSP_USECALLBACK: u32 = 128;
pub const PSP_PREMATURE: u32 = 1024;
pub const PSP_HIDEHEADER: u32 = 2048;
pub const PSP_USEHEADERTITLE: u32 = 4096;
pub const PSP_USEHEADERSUBTITLE: u32 = 8192;
pub const PSP_USEFUSIONCONTEXT: u32 = 16384;
pub const PSPCB_ADDREF: u32 = 0;
pub const PSPCB_RELEASE: u32 = 1;
pub const PSPCB_CREATE: u32 = 2;
pub const PSH_DEFAULT: u32 = 0;
pub const PSH_PROPTITLE: u32 = 1;
pub const PSH_USEHICON: u32 = 2;
pub const PSH_USEICONID: u32 = 4;
pub const PSH_PROPSHEETPAGE: u32 = 8;
pub const PSH_WIZARDHASFINISH: u32 = 16;
pub const PSH_WIZARD: u32 = 32;
pub const PSH_USEPSTARTPAGE: u32 = 64;
pub const PSH_NOAPPLYNOW: u32 = 128;
pub const PSH_USECALLBACK: u32 = 256;
pub const PSH_HASHELP: u32 = 512;
pub const PSH_MODELESS: u32 = 1024;
pub const PSH_RTLREADING: u32 = 2048;
pub const PSH_WIZARDCONTEXTHELP: u32 = 4096;
pub const PSH_WIZARD97: u32 = 16777216;
pub const PSH_WATERMARK: u32 = 32768;
pub const PSH_USEHBMWATERMARK: u32 = 65536;
pub const PSH_USEHPLWATERMARK: u32 = 131072;
pub const PSH_STRETCHWATERMARK: u32 = 262144;
pub const PSH_HEADER: u32 = 524288;
pub const PSH_USEHBMHEADER: u32 = 1048576;
pub const PSH_USEPAGELANG: u32 = 2097152;
pub const PSH_WIZARD_LITE: u32 = 4194304;
pub const PSH_NOCONTEXTHELP: u32 = 33554432;
pub const PSH_AEROWIZARD: u32 = 16384;
pub const PSH_RESIZABLE: u32 = 67108864;
pub const PSH_HEADERBITMAP: u32 = 134217728;
pub const PSH_NOMARGIN: u32 = 268435456;
pub const PSCB_INITIALIZED: u32 = 1;
pub const PSCB_PRECREATE: u32 = 2;
pub const PSCB_BUTTONPRESSED: u32 = 3;
pub const PSN_FIRST: i32 = -200;
pub const PSN_LAST: i32 = -299;
pub const PSN_SETACTIVE: i32 = -200;
pub const PSN_KILLACTIVE: i32 = -201;
pub const PSN_APPLY: i32 = -202;
pub const PSN_RESET: i32 = -203;
pub const PSN_HELP: i32 = -205;
pub const PSN_WIZBACK: i32 = -206;
pub const PSN_WIZNEXT: i32 = -207;
pub const PSN_WIZFINISH: i32 = -208;
pub const PSN_QUERYCANCEL: i32 = -209;
pub const PSN_GETOBJECT: i32 = -210;
pub const PSN_TRANSLATEACCELERATOR: i32 = -212;
pub const PSN_QUERYINITIALFOCUS: i32 = -213;
pub const PSNRET_NOERROR: u32 = 0;
pub const PSNRET_INVALID: u32 = 1;
pub const PSNRET_INVALID_NOCHANGEPAGE: u32 = 2;
pub const PSNRET_MESSAGEHANDLED: u32 = 3;
pub const PSM_SETCURSEL: u32 = 1125;
pub const PSM_REMOVEPAGE: u32 = 1126;
pub const PSM_ADDPAGE: u32 = 1127;
pub const PSM_CHANGED: u32 = 1128;
pub const PSM_RESTARTWINDOWS: u32 = 1129;
pub const PSM_REBOOTSYSTEM: u32 = 1130;
pub const PSM_CANCELTOCLOSE: u32 = 1131;
pub const PSM_QUERYSIBLINGS: u32 = 1132;
pub const PSM_UNCHANGED: u32 = 1133;
pub const PSM_APPLY: u32 = 1134;
pub const PSM_SETTITLEA: u32 = 1135;
pub const PSM_SETTITLEW: u32 = 1144;
pub const PSM_SETTITLE: u32 = 1135;
pub const PSM_SETWIZBUTTONS: u32 = 1136;
pub const PSWIZB_BACK: u32 = 1;
pub const PSWIZB_NEXT: u32 = 2;
pub const PSWIZB_FINISH: u32 = 4;
pub const PSWIZB_DISABLEDFINISH: u32 = 8;
pub const PSWIZBF_ELEVATIONREQUIRED: u32 = 1;
pub const PSWIZB_CANCEL: u32 = 16;
pub const PSM_PRESSBUTTON: u32 = 1137;
pub const PSBTN_BACK: u32 = 0;
pub const PSBTN_NEXT: u32 = 1;
pub const PSBTN_FINISH: u32 = 2;
pub const PSBTN_OK: u32 = 3;
pub const PSBTN_APPLYNOW: u32 = 4;
pub const PSBTN_CANCEL: u32 = 5;
pub const PSBTN_HELP: u32 = 6;
pub const PSBTN_MAX: u32 = 6;
pub const PSM_SETCURSELID: u32 = 1138;
pub const PSM_SETFINISHTEXTA: u32 = 1139;
pub const PSM_SETFINISHTEXTW: u32 = 1145;
pub const PSM_SETFINISHTEXT: u32 = 1139;
pub const PSM_GETTABCONTROL: u32 = 1140;
pub const PSM_ISDIALOGMESSAGE: u32 = 1141;
pub const PSM_GETCURRENTPAGEHWND: u32 = 1142;
pub const PSM_INSERTPAGE: u32 = 1143;
pub const PSM_SETHEADERTITLEA: u32 = 1149;
pub const PSM_SETHEADERTITLEW: u32 = 1150;
pub const PSM_SETHEADERTITLE: u32 = 1149;
pub const PSM_SETHEADERSUBTITLEA: u32 = 1151;
pub const PSM_SETHEADERSUBTITLEW: u32 = 1152;
pub const PSM_SETHEADERSUBTITLE: u32 = 1151;
pub const PSM_HWNDTOINDEX: u32 = 1153;
pub const PSM_INDEXTOHWND: u32 = 1154;
pub const PSM_PAGETOINDEX: u32 = 1155;
pub const PSM_INDEXTOPAGE: u32 = 1156;
pub const PSM_IDTOINDEX: u32 = 1157;
pub const PSM_INDEXTOID: u32 = 1158;
pub const PSM_GETRESULT: u32 = 1159;
pub const PSM_RECALCPAGESIZES: u32 = 1160;
pub const PSM_SETNEXTTEXTW: u32 = 1161;
pub const PSM_SETNEXTTEXT: u32 = 1161;
pub const PSWIZB_SHOW: u32 = 0;
pub const PSWIZB_RESTORE: u32 = 1;
pub const PSM_SHOWWIZBUTTONS: u32 = 1162;
pub const PSM_ENABLEWIZBUTTONS: u32 = 1163;
pub const PSM_SETBUTTONTEXTW: u32 = 1164;
pub const PSM_SETBUTTONTEXT: u32 = 1164;
pub const ID_PSRESTARTWINDOWS: u32 = 2;
pub const ID_PSREBOOTSYSTEM: u32 = 3;
pub const WIZ_CXDLG: u32 = 276;
pub const WIZ_CYDLG: u32 = 140;
pub const WIZ_CXBMP: u32 = 80;
pub const WIZ_BODYX: u32 = 92;
pub const WIZ_BODYCX: u32 = 184;
pub const PROP_SM_CXDLG: u32 = 212;
pub const PROP_SM_CYDLG: u32 = 188;
pub const PROP_MED_CXDLG: u32 = 227;
pub const PROP_MED_CYDLG: u32 = 215;
pub const PROP_LG_CXDLG: u32 = 252;
pub const PROP_LG_CYDLG: u32 = 218;
pub const DSPRINT_PUBLISH: u32 = 1;
pub const DSPRINT_UPDATE: u32 = 2;
pub const DSPRINT_UNPUBLISH: u32 = 4;
pub const DSPRINT_REPUBLISH: u32 = 8;
pub const DSPRINT_PENDING: u32 = 2147483648;
pub const PRINTER_CONTROL_PAUSE: u32 = 1;
pub const PRINTER_CONTROL_RESUME: u32 = 2;
pub const PRINTER_CONTROL_PURGE: u32 = 3;
pub const PRINTER_CONTROL_SET_STATUS: u32 = 4;
pub const PRINTER_STATUS_PAUSED: u32 = 1;
pub const PRINTER_STATUS_ERROR: u32 = 2;
pub const PRINTER_STATUS_PENDING_DELETION: u32 = 4;
pub const PRINTER_STATUS_PAPER_JAM: u32 = 8;
pub const PRINTER_STATUS_PAPER_OUT: u32 = 16;
pub const PRINTER_STATUS_MANUAL_FEED: u32 = 32;
pub const PRINTER_STATUS_PAPER_PROBLEM: u32 = 64;
pub const PRINTER_STATUS_OFFLINE: u32 = 128;
pub const PRINTER_STATUS_IO_ACTIVE: u32 = 256;
pub const PRINTER_STATUS_BUSY: u32 = 512;
pub const PRINTER_STATUS_PRINTING: u32 = 1024;
pub const PRINTER_STATUS_OUTPUT_BIN_FULL: u32 = 2048;
pub const PRINTER_STATUS_NOT_AVAILABLE: u32 = 4096;
pub const PRINTER_STATUS_WAITING: u32 = 8192;
pub const PRINTER_STATUS_PROCESSING: u32 = 16384;
pub const PRINTER_STATUS_INITIALIZING: u32 = 32768;
pub const PRINTER_STATUS_WARMING_UP: u32 = 65536;
pub const PRINTER_STATUS_TONER_LOW: u32 = 131072;
pub const PRINTER_STATUS_NO_TONER: u32 = 262144;
pub const PRINTER_STATUS_PAGE_PUNT: u32 = 524288;
pub const PRINTER_STATUS_USER_INTERVENTION: u32 = 1048576;
pub const PRINTER_STATUS_OUT_OF_MEMORY: u32 = 2097152;
pub const PRINTER_STATUS_DOOR_OPEN: u32 = 4194304;
pub const PRINTER_STATUS_SERVER_UNKNOWN: u32 = 8388608;
pub const PRINTER_STATUS_POWER_SAVE: u32 = 16777216;
pub const PRINTER_STATUS_SERVER_OFFLINE: u32 = 33554432;
pub const PRINTER_STATUS_DRIVER_UPDATE_NEEDED: u32 = 67108864;
pub const PRINTER_ATTRIBUTE_QUEUED: u32 = 1;
pub const PRINTER_ATTRIBUTE_DIRECT: u32 = 2;
pub const PRINTER_ATTRIBUTE_DEFAULT: u32 = 4;
pub const PRINTER_ATTRIBUTE_SHARED: u32 = 8;
pub const PRINTER_ATTRIBUTE_NETWORK: u32 = 16;
pub const PRINTER_ATTRIBUTE_HIDDEN: u32 = 32;
pub const PRINTER_ATTRIBUTE_LOCAL: u32 = 64;
pub const PRINTER_ATTRIBUTE_ENABLE_DEVQ: u32 = 128;
pub const PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS: u32 = 256;
pub const PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST: u32 = 512;
pub const PRINTER_ATTRIBUTE_WORK_OFFLINE: u32 = 1024;
pub const PRINTER_ATTRIBUTE_ENABLE_BIDI: u32 = 2048;
pub const PRINTER_ATTRIBUTE_RAW_ONLY: u32 = 4096;
pub const PRINTER_ATTRIBUTE_PUBLISHED: u32 = 8192;
pub const PRINTER_ATTRIBUTE_FAX: u32 = 16384;
pub const PRINTER_ATTRIBUTE_TS: u32 = 32768;
pub const PRINTER_ATTRIBUTE_PUSHED_USER: u32 = 131072;
pub const PRINTER_ATTRIBUTE_PUSHED_MACHINE: u32 = 262144;
pub const PRINTER_ATTRIBUTE_MACHINE: u32 = 524288;
pub const PRINTER_ATTRIBUTE_FRIENDLY_NAME: u32 = 1048576;
pub const PRINTER_ATTRIBUTE_TS_GENERIC_DRIVER: u32 = 2097152;
pub const PRINTER_ATTRIBUTE_PER_USER: u32 = 4194304;
pub const PRINTER_ATTRIBUTE_ENTERPRISE_CLOUD: u32 = 8388608;
pub const NO_PRIORITY: u32 = 0;
pub const MAX_PRIORITY: u32 = 99;
pub const MIN_PRIORITY: u32 = 1;
pub const DEF_PRIORITY: u32 = 1;
pub const JOB_CONTROL_PAUSE: u32 = 1;
pub const JOB_CONTROL_RESUME: u32 = 2;
pub const JOB_CONTROL_CANCEL: u32 = 3;
pub const JOB_CONTROL_RESTART: u32 = 4;
pub const JOB_CONTROL_DELETE: u32 = 5;
pub const JOB_CONTROL_SENT_TO_PRINTER: u32 = 6;
pub const JOB_CONTROL_LAST_PAGE_EJECTED: u32 = 7;
pub const JOB_CONTROL_RETAIN: u32 = 8;
pub const JOB_CONTROL_RELEASE: u32 = 9;
pub const JOB_STATUS_PAUSED: u32 = 1;
pub const JOB_STATUS_ERROR: u32 = 2;
pub const JOB_STATUS_DELETING: u32 = 4;
pub const JOB_STATUS_SPOOLING: u32 = 8;
pub const JOB_STATUS_PRINTING: u32 = 16;
pub const JOB_STATUS_OFFLINE: u32 = 32;
pub const JOB_STATUS_PAPEROUT: u32 = 64;
pub const JOB_STATUS_PRINTED: u32 = 128;
pub const JOB_STATUS_DELETED: u32 = 256;
pub const JOB_STATUS_BLOCKED_DEVQ: u32 = 512;
pub const JOB_STATUS_USER_INTERVENTION: u32 = 1024;
pub const JOB_STATUS_RESTART: u32 = 2048;
pub const JOB_STATUS_COMPLETE: u32 = 4096;
pub const JOB_STATUS_RETAINED: u32 = 8192;
pub const JOB_STATUS_RENDERING_LOCALLY: u32 = 16384;
pub const JOB_POSITION_UNSPECIFIED: u32 = 0;
pub const PRINTER_DRIVER_PACKAGE_AWARE: u32 = 1;
pub const PRINTER_DRIVER_XPS: u32 = 2;
pub const PRINTER_DRIVER_SANDBOX_ENABLED: u32 = 4;
pub const PRINTER_DRIVER_CLASS: u32 = 8;
pub const PRINTER_DRIVER_DERIVED: u32 = 16;
pub const PRINTER_DRIVER_NOT_SHAREABLE: u32 = 32;
pub const PRINTER_DRIVER_CATEGORY_FAX: u32 = 64;
pub const PRINTER_DRIVER_CATEGORY_FILE: u32 = 128;
pub const PRINTER_DRIVER_CATEGORY_VIRTUAL: u32 = 256;
pub const PRINTER_DRIVER_CATEGORY_SERVICE: u32 = 512;
pub const PRINTER_DRIVER_SOFT_RESET_REQUIRED: u32 = 1024;
pub const PRINTER_DRIVER_SANDBOX_DISABLED: u32 = 2048;
pub const PRINTER_DRIVER_CATEGORY_3D: u32 = 4096;
pub const PRINTER_DRIVER_CATEGORY_CLOUD: u32 = 8192;
pub const DRIVER_KERNELMODE: u32 = 1;
pub const DRIVER_USERMODE: u32 = 2;
pub const DPD_DELETE_UNUSED_FILES: u32 = 1;
pub const DPD_DELETE_SPECIFIC_VERSION: u32 = 2;
pub const DPD_DELETE_ALL_FILES: u32 = 4;
pub const APD_STRICT_UPGRADE: u32 = 1;
pub const APD_STRICT_DOWNGRADE: u32 = 2;
pub const APD_COPY_ALL_FILES: u32 = 4;
pub const APD_COPY_NEW_FILES: u32 = 8;
pub const APD_COPY_FROM_DIRECTORY: u32 = 16;
pub const STRING_NONE: u32 = 1;
pub const STRING_MUIDLL: u32 = 2;
pub const STRING_LANGPAIR: u32 = 4;
pub const MAX_FORM_KEYWORD_LENGTH: u32 = 64;
pub const DI_CHANNEL: u32 = 1;
pub const DI_READ_SPOOL_JOB: u32 = 3;
pub const DI_MEMORYMAP_WRITE: u32 = 1;
pub const FORM_USER: u32 = 0;
pub const FORM_BUILTIN: u32 = 1;
pub const FORM_PRINTER: u32 = 2;
pub const NORMAL_PRINT: u32 = 0;
pub const REVERSE_PRINT: u32 = 1;
pub const PPCAPS_RIGHT_THEN_DOWN: u32 = 1;
pub const PPCAPS_DOWN_THEN_RIGHT: u32 = 2;
pub const PPCAPS_LEFT_THEN_DOWN: u32 = 4;
pub const PPCAPS_DOWN_THEN_LEFT: u32 = 8;
pub const PPCAPS_BORDER_PRINT: u32 = 1;
pub const PPCAPS_BOOKLET_EDGE: u32 = 1;
pub const PPCAPS_REVERSE_PAGES_FOR_REVERSE_DUPLEX: u32 = 1;
pub const PPCAPS_DONT_SEND_EXTRA_PAGES_FOR_DUPLEX: u32 = 2;
pub const PPCAPS_SQUARE_SCALING: u32 = 1;
pub const PORT_TYPE_WRITE: u32 = 1;
pub const PORT_TYPE_READ: u32 = 2;
pub const PORT_TYPE_REDIRECTED: u32 = 4;
pub const PORT_TYPE_NET_ATTACHED: u32 = 8;
pub const PORT_STATUS_TYPE_ERROR: u32 = 1;
pub const PORT_STATUS_TYPE_WARNING: u32 = 2;
pub const PORT_STATUS_TYPE_INFO: u32 = 3;
pub const PORT_STATUS_OFFLINE: u32 = 1;
pub const PORT_STATUS_PAPER_JAM: u32 = 2;
pub const PORT_STATUS_PAPER_OUT: u32 = 3;
pub const PORT_STATUS_OUTPUT_BIN_FULL: u32 = 4;
pub const PORT_STATUS_PAPER_PROBLEM: u32 = 5;
pub const PORT_STATUS_NO_TONER: u32 = 6;
pub const PORT_STATUS_DOOR_OPEN: u32 = 7;
pub const PORT_STATUS_USER_INTERVENTION: u32 = 8;
pub const PORT_STATUS_OUT_OF_MEMORY: u32 = 9;
pub const PORT_STATUS_TONER_LOW: u32 = 10;
pub const PORT_STATUS_WARMING_UP: u32 = 11;
pub const PORT_STATUS_POWER_SAVE: u32 = 12;
pub const PRINTER_ENUM_DEFAULT: u32 = 1;
pub const PRINTER_ENUM_LOCAL: u32 = 2;
pub const PRINTER_ENUM_CONNECTIONS: u32 = 4;
pub const PRINTER_ENUM_FAVORITE: u32 = 4;
pub const PRINTER_ENUM_NAME: u32 = 8;
pub const PRINTER_ENUM_REMOTE: u32 = 16;
pub const PRINTER_ENUM_SHARED: u32 = 32;
pub const PRINTER_ENUM_NETWORK: u32 = 64;
pub const PRINTER_ENUM_EXPAND: u32 = 16384;
pub const PRINTER_ENUM_CONTAINER: u32 = 32768;
pub const PRINTER_ENUM_ICONMASK: u32 = 16711680;
pub const PRINTER_ENUM_ICON1: u32 = 65536;
pub const PRINTER_ENUM_ICON2: u32 = 131072;
pub const PRINTER_ENUM_ICON3: u32 = 262144;
pub const PRINTER_ENUM_ICON4: u32 = 524288;
pub const PRINTER_ENUM_ICON5: u32 = 1048576;
pub const PRINTER_ENUM_ICON6: u32 = 2097152;
pub const PRINTER_ENUM_ICON7: u32 = 4194304;
pub const PRINTER_ENUM_ICON8: u32 = 8388608;
pub const PRINTER_ENUM_HIDE: u32 = 16777216;
pub const PRINTER_ENUM_CATEGORY_ALL: u32 = 33554432;
pub const PRINTER_ENUM_CATEGORY_3D: u32 = 67108864;
pub const SPOOL_FILE_PERSISTENT: u32 = 1;
pub const SPOOL_FILE_TEMPORARY: u32 = 2;
pub const PRINTER_NOTIFY_TYPE: u32 = 0;
pub const JOB_NOTIFY_TYPE: u32 = 1;
pub const SERVER_NOTIFY_TYPE: u32 = 2;
pub const PRINTER_NOTIFY_FIELD_SERVER_NAME: u32 = 0;
pub const PRINTER_NOTIFY_FIELD_PRINTER_NAME: u32 = 1;
pub const PRINTER_NOTIFY_FIELD_SHARE_NAME: u32 = 2;
pub const PRINTER_NOTIFY_FIELD_PORT_NAME: u32 = 3;
pub const PRINTER_NOTIFY_FIELD_DRIVER_NAME: u32 = 4;
pub const PRINTER_NOTIFY_FIELD_COMMENT: u32 = 5;
pub const PRINTER_NOTIFY_FIELD_LOCATION: u32 = 6;
pub const PRINTER_NOTIFY_FIELD_DEVMODE: u32 = 7;
pub const PRINTER_NOTIFY_FIELD_SEPFILE: u32 = 8;
pub const PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR: u32 = 9;
pub const PRINTER_NOTIFY_FIELD_PARAMETERS: u32 = 10;
pub const PRINTER_NOTIFY_FIELD_DATATYPE: u32 = 11;
pub const PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR: u32 = 12;
pub const PRINTER_NOTIFY_FIELD_ATTRIBUTES: u32 = 13;
pub const PRINTER_NOTIFY_FIELD_PRIORITY: u32 = 14;
pub const PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY: u32 = 15;
pub const PRINTER_NOTIFY_FIELD_START_TIME: u32 = 16;
pub const PRINTER_NOTIFY_FIELD_UNTIL_TIME: u32 = 17;
pub const PRINTER_NOTIFY_FIELD_STATUS: u32 = 18;
pub const PRINTER_NOTIFY_FIELD_STATUS_STRING: u32 = 19;
pub const PRINTER_NOTIFY_FIELD_CJOBS: u32 = 20;
pub const PRINTER_NOTIFY_FIELD_AVERAGE_PPM: u32 = 21;
pub const PRINTER_NOTIFY_FIELD_TOTAL_PAGES: u32 = 22;
pub const PRINTER_NOTIFY_FIELD_PAGES_PRINTED: u32 = 23;
pub const PRINTER_NOTIFY_FIELD_TOTAL_BYTES: u32 = 24;
pub const PRINTER_NOTIFY_FIELD_BYTES_PRINTED: u32 = 25;
pub const PRINTER_NOTIFY_FIELD_OBJECT_GUID: u32 = 26;
pub const PRINTER_NOTIFY_FIELD_FRIENDLY_NAME: u32 = 27;
pub const PRINTER_NOTIFY_FIELD_BRANCH_OFFICE_PRINTING: u32 = 28;
pub const JOB_NOTIFY_FIELD_PRINTER_NAME: u32 = 0;
pub const JOB_NOTIFY_FIELD_MACHINE_NAME: u32 = 1;
pub const JOB_NOTIFY_FIELD_PORT_NAME: u32 = 2;
pub const JOB_NOTIFY_FIELD_USER_NAME: u32 = 3;
pub const JOB_NOTIFY_FIELD_NOTIFY_NAME: u32 = 4;
pub const JOB_NOTIFY_FIELD_DATATYPE: u32 = 5;
pub const JOB_NOTIFY_FIELD_PRINT_PROCESSOR: u32 = 6;
pub const JOB_NOTIFY_FIELD_PARAMETERS: u32 = 7;
pub const JOB_NOTIFY_FIELD_DRIVER_NAME: u32 = 8;
pub const JOB_NOTIFY_FIELD_DEVMODE: u32 = 9;
pub const JOB_NOTIFY_FIELD_STATUS: u32 = 10;
pub const JOB_NOTIFY_FIELD_STATUS_STRING: u32 = 11;
pub const JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR: u32 = 12;
pub const JOB_NOTIFY_FIELD_DOCUMENT: u32 = 13;
pub const JOB_NOTIFY_FIELD_PRIORITY: u32 = 14;
pub const JOB_NOTIFY_FIELD_POSITION: u32 = 15;
pub const JOB_NOTIFY_FIELD_SUBMITTED: u32 = 16;
pub const JOB_NOTIFY_FIELD_START_TIME: u32 = 17;
pub const JOB_NOTIFY_FIELD_UNTIL_TIME: u32 = 18;
pub const JOB_NOTIFY_FIELD_TIME: u32 = 19;
pub const JOB_NOTIFY_FIELD_TOTAL_PAGES: u32 = 20;
pub const JOB_NOTIFY_FIELD_PAGES_PRINTED: u32 = 21;
pub const JOB_NOTIFY_FIELD_TOTAL_BYTES: u32 = 22;
pub const JOB_NOTIFY_FIELD_BYTES_PRINTED: u32 = 23;
pub const JOB_NOTIFY_FIELD_REMOTE_JOB_ID: u32 = 24;
pub const SERVER_NOTIFY_FIELD_PRINT_DRIVER_ISOLATION_GROUP: u32 = 0;
pub const PRINTER_NOTIFY_CATEGORY_ALL: u32 = 4096;
pub const PRINTER_NOTIFY_CATEGORY_3D: u32 = 8192;
pub const PRINTER_NOTIFY_OPTIONS_REFRESH: u32 = 1;
pub const PRINTER_NOTIFY_INFO_DISCARDED: u32 = 1;
pub const BIDI_ACTION_ENUM_SCHEMA: &'static [u8; 11usize] = b"EnumSchema\0";
pub const BIDI_ACTION_GET: &'static [u8; 4usize] = b"Get\0";
pub const BIDI_ACTION_SET: &'static [u8; 4usize] = b"Set\0";
pub const BIDI_ACTION_GET_ALL: &'static [u8; 7usize] = b"GetAll\0";
pub const BIDI_ACTION_GET_WITH_ARGUMENT: &'static [u8; 16usize] = b"GetWithArgument\0";
pub const BIDI_ACCESS_ADMINISTRATOR: u32 = 1;
pub const BIDI_ACCESS_USER: u32 = 2;
pub const ERROR_BIDI_STATUS_OK: u32 = 0;
pub const ERROR_BIDI_NOT_SUPPORTED: u32 = 50;
pub const ERROR_BIDI_ERROR_BASE: u32 = 13000;
pub const ERROR_BIDI_STATUS_WARNING: u32 = 13001;
pub const ERROR_BIDI_SCHEMA_READ_ONLY: u32 = 13002;
pub const ERROR_BIDI_SERVER_OFFLINE: u32 = 13003;
pub const ERROR_BIDI_DEVICE_OFFLINE: u32 = 13004;
pub const ERROR_BIDI_SCHEMA_NOT_SUPPORTED: u32 = 13005;
pub const ERROR_BIDI_SET_DIFFERENT_TYPE: u32 = 13006;
pub const ERROR_BIDI_SET_MULTIPLE_SCHEMAPATH: u32 = 13007;
pub const ERROR_BIDI_SET_INVALID_SCHEMAPATH: u32 = 13008;
pub const ERROR_BIDI_SET_UNKNOWN_FAILURE: u32 = 13009;
pub const ERROR_BIDI_SCHEMA_WRITE_ONLY: u32 = 13010;
pub const ERROR_BIDI_GET_REQUIRES_ARGUMENT: u32 = 13011;
pub const ERROR_BIDI_GET_ARGUMENT_NOT_SUPPORTED: u32 = 13012;
pub const ERROR_BIDI_GET_MISSING_ARGUMENT: u32 = 13013;
pub const ERROR_BIDI_DEVICE_CONFIG_UNCHANGED: u32 = 13014;
pub const ERROR_BIDI_NO_LOCALIZED_RESOURCES: u32 = 13015;
pub const ERROR_BIDI_NO_BIDI_SCHEMA_EXTENSIONS: u32 = 13016;
pub const ERROR_BIDI_UNSUPPORTED_CLIENT_LANGUAGE: u32 = 13017;
pub const ERROR_BIDI_UNSUPPORTED_RESOURCE_FORMAT: u32 = 13018;
pub const PRINTER_CHANGE_ADD_PRINTER: u32 = 1;
pub const PRINTER_CHANGE_SET_PRINTER: u32 = 2;
pub const PRINTER_CHANGE_DELETE_PRINTER: u32 = 4;
pub const PRINTER_CHANGE_FAILED_CONNECTION_PRINTER: u32 = 8;
pub const PRINTER_CHANGE_PRINTER: u32 = 255;
pub const PRINTER_CHANGE_ADD_JOB: u32 = 256;
pub const PRINTER_CHANGE_SET_JOB: u32 = 512;
pub const PRINTER_CHANGE_DELETE_JOB: u32 = 1024;
pub const PRINTER_CHANGE_WRITE_JOB: u32 = 2048;
pub const PRINTER_CHANGE_JOB: u32 = 65280;
pub const PRINTER_CHANGE_ADD_FORM: u32 = 65536;
pub const PRINTER_CHANGE_SET_FORM: u32 = 131072;
pub const PRINTER_CHANGE_DELETE_FORM: u32 = 262144;
pub const PRINTER_CHANGE_FORM: u32 = 458752;
pub const PRINTER_CHANGE_ADD_PORT: u32 = 1048576;
pub const PRINTER_CHANGE_CONFIGURE_PORT: u32 = 2097152;
pub const PRINTER_CHANGE_DELETE_PORT: u32 = 4194304;
pub const PRINTER_CHANGE_PORT: u32 = 7340032;
pub const PRINTER_CHANGE_ADD_PRINT_PROCESSOR: u32 = 16777216;
pub const PRINTER_CHANGE_DELETE_PRINT_PROCESSOR: u32 = 67108864;
pub const PRINTER_CHANGE_PRINT_PROCESSOR: u32 = 117440512;
pub const PRINTER_CHANGE_SERVER: u32 = 134217728;
pub const PRINTER_CHANGE_ADD_PRINTER_DRIVER: u32 = 268435456;
pub const PRINTER_CHANGE_SET_PRINTER_DRIVER: u32 = 536870912;
pub const PRINTER_CHANGE_DELETE_PRINTER_DRIVER: u32 = 1073741824;
pub const PRINTER_CHANGE_PRINTER_DRIVER: u32 = 1879048192;
pub const PRINTER_CHANGE_TIMEOUT: u32 = 2147483648;
pub const PRINTER_CHANGE_ALL: u32 = 2138570751;
pub const PRINTER_ERROR_INFORMATION: u32 = 2147483648;
pub const PRINTER_ERROR_WARNING: u32 = 1073741824;
pub const PRINTER_ERROR_SEVERE: u32 = 536870912;
pub const PRINTER_ERROR_OUTOFPAPER: u32 = 1;
pub const PRINTER_ERROR_JAM: u32 = 2;
pub const PRINTER_ERROR_OUTOFTONER: u32 = 4;
pub const SPLREG_PRINT_DRIVER_ISOLATION_GROUPS_SEPARATOR: u8 = 92u8;
pub const SERVER_ACCESS_ADMINISTER: u32 = 1;
pub const SERVER_ACCESS_ENUMERATE: u32 = 2;
pub const PRINTER_ACCESS_ADMINISTER: u32 = 4;
pub const PRINTER_ACCESS_USE: u32 = 8;
pub const JOB_ACCESS_ADMINISTER: u32 = 16;
pub const JOB_ACCESS_READ: u32 = 32;
pub const PRINTER_ACCESS_MANAGE_LIMITED: u32 = 64;
pub const SERVER_ALL_ACCESS: u32 = 983043;
pub const SERVER_READ: u32 = 131074;
pub const SERVER_WRITE: u32 = 131075;
pub const SERVER_EXECUTE: u32 = 131074;
pub const PRINTER_ALL_ACCESS: u32 = 983052;
pub const PRINTER_READ: u32 = 131080;
pub const PRINTER_WRITE: u32 = 131080;
pub const PRINTER_EXECUTE: u32 = 131080;
pub const JOB_ALL_ACCESS: u32 = 983088;
pub const JOB_READ: u32 = 131104;
pub const JOB_WRITE: u32 = 131088;
pub const JOB_EXECUTE: u32 = 131088;
pub const PRINTER_CONNECTION_MISMATCH: u32 = 32;
pub const PRINTER_CONNECTION_NO_UI: u32 = 64;
pub const IPDFP_COPY_ALL_FILES: u32 = 1;
pub const UPDP_SILENT_UPLOAD: u32 = 1;
pub const UPDP_UPLOAD_ALWAYS: u32 = 2;
pub const UPDP_CHECK_DRIVERSTORE: u32 = 4;
pub const MS_PRINT_JOB_OUTPUT_FILE: &'static [u8; 21usize] = b"MsPrintJobOutputFile\0";
pub const _MAX_ITOSTR_BASE16_COUNT: u32 = 9;
pub const _MAX_ITOSTR_BASE10_COUNT: u32 = 12;
pub const _MAX_ITOSTR_BASE8_COUNT: u32 = 12;
pub const _MAX_ITOSTR_BASE2_COUNT: u32 = 33;
pub const _MAX_LTOSTR_BASE16_COUNT: u32 = 9;
pub const _MAX_LTOSTR_BASE10_COUNT: u32 = 12;
pub const _MAX_LTOSTR_BASE8_COUNT: u32 = 12;
pub const _MAX_LTOSTR_BASE2_COUNT: u32 = 33;
pub const _MAX_ULTOSTR_BASE16_COUNT: u32 = 9;
pub const _MAX_ULTOSTR_BASE10_COUNT: u32 = 11;
pub const _MAX_ULTOSTR_BASE8_COUNT: u32 = 12;
pub const _MAX_ULTOSTR_BASE2_COUNT: u32 = 33;
pub const _MAX_I64TOSTR_BASE16_COUNT: u32 = 17;
pub const _MAX_I64TOSTR_BASE10_COUNT: u32 = 21;
pub const _MAX_I64TOSTR_BASE8_COUNT: u32 = 23;
pub const _MAX_I64TOSTR_BASE2_COUNT: u32 = 65;
pub const _MAX_U64TOSTR_BASE16_COUNT: u32 = 17;
pub const _MAX_U64TOSTR_BASE10_COUNT: u32 = 21;
pub const _MAX_U64TOSTR_BASE8_COUNT: u32 = 23;
pub const _MAX_U64TOSTR_BASE2_COUNT: u32 = 65;
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 EXIT_SUCCESS: u32 = 0;
pub const EXIT_FAILURE: u32 = 1;
pub const _WRITE_ABORT_MSG: u32 = 1;
pub const _CALL_REPORTFAULT: u32 = 2;
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 RAND_MAX: u32 = 32767;
pub const _CVTBUFSIZE: u32 = 349;
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 _MAX_ENV: u32 = 32767;
pub const _CRT_INTERNAL_COMBASE_SYMBOL_PREFIX: &'static [u8; 1usize] = b"\0";
pub const COM_RIGHTS_EXECUTE: u32 = 1;
pub const COM_RIGHTS_EXECUTE_LOCAL: u32 = 2;
pub const COM_RIGHTS_EXECUTE_REMOTE: u32 = 4;
pub const COM_RIGHTS_ACTIVATE_LOCAL: u32 = 8;
pub const COM_RIGHTS_ACTIVATE_REMOTE: u32 = 16;
pub const COM_RIGHTS_RESERVED1: u32 = 32;
pub const COM_RIGHTS_RESERVED2: u32 = 64;
pub const CWMO_MAX_HANDLES: u32 = 56;
pub const FADF_AUTO: u32 = 1;
pub const FADF_STATIC: u32 = 2;
pub const FADF_EMBEDDED: u32 = 4;
pub const FADF_FIXEDSIZE: u32 = 16;
pub const FADF_RECORD: u32 = 32;
pub const FADF_HAVEIID: u32 = 64;
pub const FADF_HAVEVARTYPE: u32 = 128;
pub const FADF_BSTR: u32 = 256;
pub const FADF_UNKNOWN: u32 = 512;
pub const FADF_DISPATCH: u32 = 1024;
pub const FADF_VARIANT: u32 = 2048;
pub const FADF_RESERVED: u32 = 61448;
pub const PARAMFLAG_NONE: u32 = 0;
pub const PARAMFLAG_FIN: u32 = 1;
pub const PARAMFLAG_FOUT: u32 = 2;
pub const PARAMFLAG_FLCID: u32 = 4;
pub const PARAMFLAG_FRETVAL: u32 = 8;
pub const PARAMFLAG_FOPT: u32 = 16;
pub const PARAMFLAG_FHASDEFAULT: u32 = 32;
pub const PARAMFLAG_FHASCUSTDATA: u32 = 64;
pub const IDLFLAG_NONE: u32 = 0;
pub const IDLFLAG_FIN: u32 = 1;
pub const IDLFLAG_FOUT: u32 = 2;
pub const IDLFLAG_FLCID: u32 = 4;
pub const IDLFLAG_FRETVAL: u32 = 8;
pub const IMPLTYPEFLAG_FDEFAULT: u32 = 1;
pub const IMPLTYPEFLAG_FSOURCE: u32 = 2;
pub const IMPLTYPEFLAG_FRESTRICTED: u32 = 4;
pub const IMPLTYPEFLAG_FDEFAULTVTABLE: u32 = 8;
pub const DISPID_UNKNOWN: i32 = -1;
pub const DISPID_VALUE: u32 = 0;
pub const DISPID_PROPERTYPUT: i32 = -3;
pub const DISPID_NEWENUM: i32 = -4;
pub const DISPID_EVALUATE: i32 = -5;
pub const DISPID_CONSTRUCTOR: i32 = -6;
pub const DISPID_DESTRUCTOR: i32 = -7;
pub const DISPID_COLLECT: i32 = -8;
pub const PROPSETFLAG_DEFAULT: u32 = 0;
pub const PROPSETFLAG_NONSIMPLE: u32 = 1;
pub const PROPSETFLAG_ANSI: u32 = 2;
pub const PROPSETFLAG_UNBUFFERED: u32 = 4;
pub const PROPSETFLAG_CASE_SENSITIVE: u32 = 8;
pub const PROPSET_BEHAVIOR_CASE_SENSITIVE: u32 = 1;
pub const PID_DICTIONARY: u32 = 0;
pub const PID_CODEPAGE: u32 = 1;
pub const PID_FIRST_USABLE: u32 = 2;
pub const PID_FIRST_NAME_DEFAULT: u32 = 4095;
pub const PID_LOCALE: u32 = 2147483648;
pub const PID_MODIFY_TIME: u32 = 2147483649;
pub const PID_SECURITY: u32 = 2147483650;
pub const PID_BEHAVIOR: u32 = 2147483651;
pub const PID_ILLEGAL: u32 = 4294967295;
pub const PID_MIN_READONLY: u32 = 2147483648;
pub const PID_MAX_READONLY: u32 = 3221225471;
pub const PRSPEC_INVALID: u32 = 4294967295;
pub const PRSPEC_LPWSTR: u32 = 0;
pub const PRSPEC_PROPID: u32 = 1;
pub const PROPSETHDR_OSVERSION_UNKNOWN: u32 = 4294967295;
pub const CWCSTORAGENAME: u32 = 32;
pub const STGM_DIRECT: u32 = 0;
pub const STGM_TRANSACTED: u32 = 65536;
pub const STGM_SIMPLE: u32 = 134217728;
pub const STGM_READ: u32 = 0;
pub const STGM_WRITE: u32 = 1;
pub const STGM_READWRITE: u32 = 2;
pub const STGM_SHARE_DENY_NONE: u32 = 64;
pub const STGM_SHARE_DENY_READ: u32 = 48;
pub const STGM_SHARE_DENY_WRITE: u32 = 32;
pub const STGM_SHARE_EXCLUSIVE: u32 = 16;
pub const STGM_PRIORITY: u32 = 262144;
pub const STGM_DELETEONRELEASE: u32 = 67108864;
pub const STGM_NOSCRATCH: u32 = 1048576;
pub const STGM_CREATE: u32 = 4096;
pub const STGM_CONVERT: u32 = 131072;
pub const STGM_FAILIFTHERE: u32 = 0;
pub const STGM_NOSNAPSHOT: u32 = 2097152;
pub const STGM_DIRECT_SWMR: u32 = 4194304;
pub const STGFMT_STORAGE: u32 = 0;
pub const STGFMT_NATIVE: u32 = 1;
pub const STGFMT_FILE: u32 = 3;
pub const STGFMT_ANY: u32 = 4;
pub const STGFMT_DOCFILE: u32 = 5;
pub const STGFMT_DOCUMENT: u32 = 0;
pub const STGOPTIONS_VERSION: u32 = 2;
pub const CCH_MAX_PROPSTG_NAME: u32 = 31;
pub const MARSHALINTERFACE_MIN: u32 = 500;
pub const ASYNC_MODE_COMPATIBILITY: u32 = 1;
pub const ASYNC_MODE_DEFAULT: u32 = 0;
pub const STGTY_REPEAT: u32 = 256;
pub const STG_TOEND: u32 = 4294967295;
pub const STG_LAYOUT_SEQUENTIAL: u32 = 0;
pub const STG_LAYOUT_INTERLEAVED: u32 = 1;
pub const UPDFCACHE_NODATACACHE: u32 = 1;
pub const UPDFCACHE_ONSAVECACHE: u32 = 2;
pub const UPDFCACHE_ONSTOPCACHE: u32 = 4;
pub const UPDFCACHE_NORMALCACHE: u32 = 8;
pub const UPDFCACHE_IFBLANK: u32 = 16;
pub const UPDFCACHE_ONLYIFBLANK: u32 = 2147483648;
pub const UPDFCACHE_IFBLANKORONSAVECACHE: u32 = 18;
pub const MK_ALT: u32 = 32;
pub const DROPEFFECT_NONE: u32 = 0;
pub const DROPEFFECT_COPY: u32 = 1;
pub const DROPEFFECT_MOVE: u32 = 2;
pub const DROPEFFECT_LINK: u32 = 4;
pub const DROPEFFECT_SCROLL: u32 = 2147483648;
pub const DD_DEFSCROLLINSET: u32 = 11;
pub const DD_DEFSCROLLDELAY: u32 = 50;
pub const DD_DEFSCROLLINTERVAL: u32 = 50;
pub const DD_DEFDRAGDELAY: u32 = 200;
pub const DD_DEFDRAGMINDIST: u32 = 2;
pub const MKSYS_URLMONIKER: u32 = 6;
pub const URL_MK_LEGACY: u32 = 0;
pub const URL_MK_UNIFORM: u32 = 1;
pub const URL_MK_NO_CANONICALIZE: u32 = 2;
pub const FIEF_FLAG_FORCE_JITUI: u32 = 1;
pub const FIEF_FLAG_PEEK: u32 = 2;
pub const FIEF_FLAG_SKIP_INSTALLED_VERSION_CHECK: u32 = 4;
pub const FIEF_FLAG_RESERVED_0: u32 = 8;
pub const FMFD_DEFAULT: u32 = 0;
pub const FMFD_URLASFILENAME: u32 = 1;
pub const FMFD_ENABLEMIMESNIFFING: u32 = 2;
pub const FMFD_IGNOREMIMETEXTPLAIN: u32 = 4;
pub const FMFD_SERVERMIME: u32 = 8;
pub const FMFD_RESPECTTEXTPLAIN: u32 = 16;
pub const FMFD_RETURNUPDATEDIMGMIMES: u32 = 32;
pub const FMFD_RESERVED_1: u32 = 64;
pub const UAS_EXACTLEGACY: u32 = 4096;
pub const URLMON_OPTION_USERAGENT: u32 = 268435457;
pub const URLMON_OPTION_USERAGENT_REFRESH: u32 = 268435458;
pub const URLMON_OPTION_URL_ENCODING: u32 = 268435460;
pub const URLMON_OPTION_USE_BINDSTRINGCREDS: u32 = 268435464;
pub const URLMON_OPTION_USE_BROWSERAPPSDOCUMENTS: u32 = 268435472;
pub const CF_NULL: u32 = 0;
pub const Uri_CREATE_ALLOW_RELATIVE: u32 = 1;
pub const Uri_CREATE_ALLOW_IMPLICIT_WILDCARD_SCHEME: u32 = 2;
pub const Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME: u32 = 4;
pub const Uri_CREATE_NOFRAG: u32 = 8;
pub const Uri_CREATE_NO_CANONICALIZE: u32 = 16;
pub const Uri_CREATE_CANONICALIZE: u32 = 256;
pub const Uri_CREATE_FILE_USE_DOS_PATH: u32 = 32;
pub const Uri_CREATE_DECODE_EXTRA_INFO: u32 = 64;
pub const Uri_CREATE_NO_DECODE_EXTRA_INFO: u32 = 128;
pub const Uri_CREATE_CRACK_UNKNOWN_SCHEMES: u32 = 512;
pub const Uri_CREATE_NO_CRACK_UNKNOWN_SCHEMES: u32 = 1024;
pub const Uri_CREATE_PRE_PROCESS_HTML_URI: u32 = 2048;
pub const Uri_CREATE_NO_PRE_PROCESS_HTML_URI: u32 = 4096;
pub const Uri_CREATE_IE_SETTINGS: u32 = 8192;
pub const Uri_CREATE_NO_IE_SETTINGS: u32 = 16384;
pub const Uri_CREATE_NO_ENCODE_FORBIDDEN_CHARACTERS: u32 = 32768;
pub const Uri_CREATE_NORMALIZE_INTL_CHARACTERS: u32 = 65536;
pub const Uri_CREATE_CANONICALIZE_ABSOLUTE: u32 = 131072;
pub const Uri_DISPLAY_NO_FRAGMENT: u32 = 1;
pub const Uri_PUNYCODE_IDN_HOST: u32 = 2;
pub const Uri_DISPLAY_IDN_HOST: u32 = 4;
pub const Uri_DISPLAY_NO_PUNYCODE: u32 = 8;
pub const Uri_ENCODING_USER_INFO_AND_PATH_IS_PERCENT_ENCODED_UTF8: u32 = 1;
pub const Uri_ENCODING_USER_INFO_AND_PATH_IS_CP: u32 = 2;
pub const Uri_ENCODING_HOST_IS_IDN: u32 = 4;
pub const Uri_ENCODING_HOST_IS_PERCENT_ENCODED_UTF8: u32 = 8;
pub const Uri_ENCODING_HOST_IS_PERCENT_ENCODED_CP: u32 = 16;
pub const Uri_ENCODING_QUERY_AND_FRAGMENT_IS_PERCENT_ENCODED_UTF8: u32 = 32;
pub const Uri_ENCODING_QUERY_AND_FRAGMENT_IS_CP: u32 = 64;
pub const Uri_ENCODING_RFC: u32 = 41;
pub const UriBuilder_USE_ORIGINAL_FLAGS: u32 = 1;
pub const WININETINFO_OPTION_LOCK_HANDLE: u32 = 65534;
pub const URLOSTRM_USECACHEDCOPY_ONLY: u32 = 1;
pub const URLOSTRM_USECACHEDCOPY: u32 = 2;
pub const URLOSTRM_GETNEWESTVERSION: u32 = 3;
pub const SET_FEATURE_ON_THREAD: u32 = 1;
pub const SET_FEATURE_ON_PROCESS: u32 = 2;
pub const SET_FEATURE_IN_REGISTRY: u32 = 4;
pub const SET_FEATURE_ON_THREAD_LOCALMACHINE: u32 = 8;
pub const SET_FEATURE_ON_THREAD_INTRANET: u32 = 16;
pub const SET_FEATURE_ON_THREAD_TRUSTED: u32 = 32;
pub const SET_FEATURE_ON_THREAD_INTERNET: u32 = 64;
pub const SET_FEATURE_ON_THREAD_RESTRICTED: u32 = 128;
pub const GET_FEATURE_FROM_THREAD: u32 = 1;
pub const GET_FEATURE_FROM_PROCESS: u32 = 2;
pub const GET_FEATURE_FROM_REGISTRY: u32 = 4;
pub const GET_FEATURE_FROM_THREAD_LOCALMACHINE: u32 = 8;
pub const GET_FEATURE_FROM_THREAD_INTRANET: u32 = 16;
pub const GET_FEATURE_FROM_THREAD_TRUSTED: u32 = 32;
pub const GET_FEATURE_FROM_THREAD_INTERNET: u32 = 64;
pub const GET_FEATURE_FROM_THREAD_RESTRICTED: u32 = 128;
pub const PROTOCOLFLAG_NO_PICS_CHECK: u32 = 1;
pub const MUTZ_NOSAVEDFILECHECK: u32 = 1;
pub const MUTZ_ISFILE: u32 = 2;
pub const MUTZ_ACCEPT_WILDCARD_SCHEME: u32 = 128;
pub const MUTZ_ENFORCERESTRICTED: u32 = 256;
pub const MUTZ_RESERVED: u32 = 512;
pub const MUTZ_REQUIRESAVEDFILECHECK: u32 = 1024;
pub const MUTZ_DONT_UNESCAPE: u32 = 2048;
pub const MUTZ_DONT_USE_CACHE: u32 = 4096;
pub const MUTZ_FORCE_INTRANET_FLAGS: u32 = 8192;
pub const MUTZ_IGNORE_ZONE_MAPPINGS: u32 = 16384;
pub const MAX_SIZE_SECURITY_ID: u32 = 512;
pub const URLACTION_MIN: u32 = 4096;
pub const URLACTION_DOWNLOAD_MIN: u32 = 4096;
pub const URLACTION_DOWNLOAD_SIGNED_ACTIVEX: u32 = 4097;
pub const URLACTION_DOWNLOAD_UNSIGNED_ACTIVEX: u32 = 4100;
pub const URLACTION_DOWNLOAD_CURR_MAX: u32 = 4100;
pub const URLACTION_DOWNLOAD_MAX: u32 = 4607;
pub const URLACTION_ACTIVEX_MIN: u32 = 4608;
pub const URLACTION_ACTIVEX_RUN: u32 = 4608;
pub const URLPOLICY_ACTIVEX_CHECK_LIST: u32 = 65536;
pub const URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY: u32 = 4609;
pub const URLACTION_ACTIVEX_OVERRIDE_DATA_SAFETY: u32 = 4610;
pub const URLACTION_ACTIVEX_OVERRIDE_SCRIPT_SAFETY: u32 = 4611;
pub const URLACTION_SCRIPT_OVERRIDE_SAFETY: u32 = 5121;
pub const URLACTION_ACTIVEX_CONFIRM_NOOBJECTSAFETY: u32 = 4612;
pub const URLACTION_ACTIVEX_TREATASUNTRUSTED: u32 = 4613;
pub const URLACTION_ACTIVEX_NO_WEBOC_SCRIPT: u32 = 4614;
pub const URLACTION_ACTIVEX_OVERRIDE_REPURPOSEDETECTION: u32 = 4615;
pub const URLACTION_ACTIVEX_OVERRIDE_OPTIN: u32 = 4616;
pub const URLACTION_ACTIVEX_SCRIPTLET_RUN: u32 = 4617;
pub const URLACTION_ACTIVEX_DYNSRC_VIDEO_AND_ANIMATION: u32 = 4618;
pub const URLACTION_ACTIVEX_OVERRIDE_DOMAINLIST: u32 = 4619;
pub const URLACTION_ACTIVEX_ALLOW_TDC: u32 = 4620;
pub const URLACTION_ACTIVEX_CURR_MAX: u32 = 4620;
pub const URLACTION_ACTIVEX_MAX: u32 = 5119;
pub const URLACTION_SCRIPT_MIN: u32 = 5120;
pub const URLACTION_SCRIPT_RUN: u32 = 5120;
pub const URLACTION_SCRIPT_JAVA_USE: u32 = 5122;
pub const URLACTION_SCRIPT_SAFE_ACTIVEX: u32 = 5125;
pub const URLACTION_CROSS_DOMAIN_DATA: u32 = 5126;
pub const URLACTION_SCRIPT_PASTE: u32 = 5127;
pub const URLACTION_ALLOW_XDOMAIN_SUBFRAME_RESIZE: u32 = 5128;
pub const URLACTION_SCRIPT_XSSFILTER: u32 = 5129;
pub const URLACTION_SCRIPT_NAVIGATE: u32 = 5130;
pub const URLACTION_PLUGGABLE_PROTOCOL_XHR: u32 = 5131;
pub const URLACTION_ALLOW_VBSCRIPT_IE: u32 = 5132;
pub const URLACTION_SCRIPT_CURR_MAX: u32 = 5132;
pub const URLACTION_SCRIPT_MAX: u32 = 5631;
pub const URLACTION_HTML_MIN: u32 = 5632;
pub const URLACTION_HTML_SUBMIT_FORMS: u32 = 5633;
pub const URLACTION_HTML_SUBMIT_FORMS_FROM: u32 = 5634;
pub const URLACTION_HTML_SUBMIT_FORMS_TO: u32 = 5635;
pub const URLACTION_HTML_FONT_DOWNLOAD: u32 = 5636;
pub const URLACTION_HTML_JAVA_RUN: u32 = 5637;
pub const URLACTION_HTML_USERDATA_SAVE: u32 = 5638;
pub const URLACTION_HTML_SUBFRAME_NAVIGATE: u32 = 5639;
pub const URLACTION_HTML_META_REFRESH: u32 = 5640;
pub const URLACTION_HTML_MIXED_CONTENT: u32 = 5641;
pub const URLACTION_HTML_INCLUDE_FILE_PATH: u32 = 5642;
pub const URLACTION_HTML_ALLOW_INJECTED_DYNAMIC_HTML: u32 = 5643;
pub const URLACTION_HTML_REQUIRE_UTF8_DOCUMENT_CODEPAGE: u32 = 5644;
pub const URLACTION_HTML_ALLOW_CROSS_DOMAIN_CANVAS: u32 = 5645;
pub const URLACTION_HTML_ALLOW_WINDOW_CLOSE: u32 = 5646;
pub const URLACTION_HTML_ALLOW_CROSS_DOMAIN_WEBWORKER: u32 = 5647;
pub const URLACTION_HTML_ALLOW_CROSS_DOMAIN_TEXTTRACK: u32 = 5648;
pub const URLACTION_HTML_ALLOW_INDEXEDDB: u32 = 5649;
pub const URLACTION_HTML_MAX: u32 = 6143;
pub const URLACTION_SHELL_MIN: u32 = 6144;
pub const URLACTION_SHELL_INSTALL_DTITEMS: u32 = 6144;
pub const URLACTION_SHELL_MOVE_OR_COPY: u32 = 6146;
pub const URLACTION_SHELL_FILE_DOWNLOAD: u32 = 6147;
pub const URLACTION_SHELL_VERB: u32 = 6148;
pub const URLACTION_SHELL_WEBVIEW_VERB: u32 = 6149;
pub const URLACTION_SHELL_SHELLEXECUTE: u32 = 6150;
pub const URLACTION_SHELL_EXECUTE_HIGHRISK: u32 = 6150;
pub const URLACTION_SHELL_EXECUTE_MODRISK: u32 = 6151;
pub const URLACTION_SHELL_EXECUTE_LOWRISK: u32 = 6152;
pub const URLACTION_SHELL_POPUPMGR: u32 = 6153;
pub const URLACTION_SHELL_RTF_OBJECTS_LOAD: u32 = 6154;
pub const URLACTION_SHELL_ENHANCED_DRAGDROP_SECURITY: u32 = 6155;
pub const URLACTION_SHELL_EXTENSIONSECURITY: u32 = 6156;
pub const URLACTION_SHELL_SECURE_DRAGSOURCE: u32 = 6157;
pub const URLACTION_SHELL_REMOTEQUERY: u32 = 6158;
pub const URLACTION_SHELL_PREVIEW: u32 = 6159;
pub const URLACTION_SHELL_SHARE: u32 = 6160;
pub const URLACTION_SHELL_ALLOW_CROSS_SITE_SHARE: u32 = 6161;
pub const URLACTION_SHELL_TOCTOU_RISK: u32 = 6162;
pub const URLACTION_SHELL_CURR_MAX: u32 = 6162;
pub const URLACTION_SHELL_MAX: u32 = 6655;
pub const URLACTION_NETWORK_MIN: u32 = 6656;
pub const URLACTION_CREDENTIALS_USE: u32 = 6656;
pub const URLPOLICY_CREDENTIALS_SILENT_LOGON_OK: u32 = 0;
pub const URLPOLICY_CREDENTIALS_MUST_PROMPT_USER: u32 = 65536;
pub const URLPOLICY_CREDENTIALS_CONDITIONAL_PROMPT: u32 = 131072;
pub const URLPOLICY_CREDENTIALS_ANONYMOUS_ONLY: u32 = 196608;
pub const URLACTION_AUTHENTICATE_CLIENT: u32 = 6657;
pub const URLPOLICY_AUTHENTICATE_CLEARTEXT_OK: u32 = 0;
pub const URLPOLICY_AUTHENTICATE_CHALLENGE_RESPONSE: u32 = 65536;
pub const URLPOLICY_AUTHENTICATE_MUTUAL_ONLY: u32 = 196608;
pub const URLACTION_COOKIES: u32 = 6658;
pub const URLACTION_COOKIES_SESSION: u32 = 6659;
pub const URLACTION_CLIENT_CERT_PROMPT: u32 = 6660;
pub const URLACTION_COOKIES_THIRD_PARTY: u32 = 6661;
pub const URLACTION_COOKIES_SESSION_THIRD_PARTY: u32 = 6662;
pub const URLACTION_COOKIES_ENABLED: u32 = 6672;
pub const URLACTION_NETWORK_CURR_MAX: u32 = 6672;
pub const URLACTION_NETWORK_MAX: u32 = 7167;
pub const URLACTION_JAVA_MIN: u32 = 7168;
pub const URLACTION_JAVA_PERMISSIONS: u32 = 7168;
pub const URLPOLICY_JAVA_PROHIBIT: u32 = 0;
pub const URLPOLICY_JAVA_HIGH: u32 = 65536;
pub const URLPOLICY_JAVA_MEDIUM: u32 = 131072;
pub const URLPOLICY_JAVA_LOW: u32 = 196608;
pub const URLPOLICY_JAVA_CUSTOM: u32 = 8388608;
pub const URLACTION_JAVA_CURR_MAX: u32 = 7168;
pub const URLACTION_JAVA_MAX: u32 = 7423;
pub const URLACTION_INFODELIVERY_MIN: u32 = 7424;
pub const URLACTION_INFODELIVERY_NO_ADDING_CHANNELS: u32 = 7424;
pub const URLACTION_INFODELIVERY_NO_EDITING_CHANNELS: u32 = 7425;
pub const URLACTION_INFODELIVERY_NO_REMOVING_CHANNELS: u32 = 7426;
pub const URLACTION_INFODELIVERY_NO_ADDING_SUBSCRIPTIONS: u32 = 7427;
pub const URLACTION_INFODELIVERY_NO_EDITING_SUBSCRIPTIONS: u32 = 7428;
pub const URLACTION_INFODELIVERY_NO_REMOVING_SUBSCRIPTIONS: u32 = 7429;
pub const URLACTION_INFODELIVERY_NO_CHANNEL_LOGGING: u32 = 7430;
pub const URLACTION_INFODELIVERY_CURR_MAX: u32 = 7430;
pub const URLACTION_INFODELIVERY_MAX: u32 = 7679;
pub const URLACTION_CHANNEL_SOFTDIST_MIN: u32 = 7680;
pub const URLACTION_CHANNEL_SOFTDIST_PERMISSIONS: u32 = 7685;
pub const URLPOLICY_CHANNEL_SOFTDIST_PROHIBIT: u32 = 65536;
pub const URLPOLICY_CHANNEL_SOFTDIST_PRECACHE: u32 = 131072;
pub const URLPOLICY_CHANNEL_SOFTDIST_AUTOINSTALL: u32 = 196608;
pub const URLACTION_CHANNEL_SOFTDIST_MAX: u32 = 7935;
pub const URLACTION_DOTNET_USERCONTROLS: u32 = 8197;
pub const URLACTION_BEHAVIOR_MIN: u32 = 8192;
pub const URLACTION_BEHAVIOR_RUN: u32 = 8192;
pub const URLPOLICY_BEHAVIOR_CHECK_LIST: u32 = 65536;
pub const URLACTION_FEATURE_MIN: u32 = 8448;
pub const URLACTION_FEATURE_MIME_SNIFFING: u32 = 8448;
pub const URLACTION_FEATURE_ZONE_ELEVATION: u32 = 8449;
pub const URLACTION_FEATURE_WINDOW_RESTRICTIONS: u32 = 8450;
pub const URLACTION_FEATURE_SCRIPT_STATUS_BAR: u32 = 8451;
pub const URLACTION_FEATURE_FORCE_ADDR_AND_STATUS: u32 = 8452;
pub const URLACTION_FEATURE_BLOCK_INPUT_PROMPTS: u32 = 8453;
pub const URLACTION_FEATURE_DATA_BINDING: u32 = 8454;
pub const URLACTION_FEATURE_CROSSDOMAIN_FOCUS_CHANGE: u32 = 8455;
pub const URLACTION_AUTOMATIC_DOWNLOAD_UI_MIN: u32 = 8704;
pub const URLACTION_AUTOMATIC_DOWNLOAD_UI: u32 = 8704;
pub const URLACTION_AUTOMATIC_ACTIVEX_UI: u32 = 8705;
pub const URLACTION_ALLOW_RESTRICTEDPROTOCOLS: u32 = 8960;
pub const URLACTION_ALLOW_APEVALUATION: u32 = 8961;
pub const URLACTION_ALLOW_XHR_EVALUATION: u32 = 8962;
pub const URLACTION_WINDOWS_BROWSER_APPLICATIONS: u32 = 9216;
pub const URLACTION_XPS_DOCUMENTS: u32 = 9217;
pub const URLACTION_LOOSE_XAML: u32 = 9218;
pub const URLACTION_LOWRIGHTS: u32 = 9472;
pub const URLACTION_WINFX_SETUP: u32 = 9728;
pub const URLACTION_INPRIVATE_BLOCKING: u32 = 9984;
pub const URLACTION_ALLOW_AUDIO_VIDEO: u32 = 9985;
pub const URLACTION_ALLOW_ACTIVEX_FILTERING: u32 = 9986;
pub const URLACTION_ALLOW_STRUCTURED_STORAGE_SNIFFING: u32 = 9987;
pub const URLACTION_ALLOW_AUDIO_VIDEO_PLUGINS: u32 = 9988;
pub const URLACTION_ALLOW_ZONE_ELEVATION_VIA_OPT_OUT: u32 = 9989;
pub const URLACTION_ALLOW_ZONE_ELEVATION_OPT_OUT_ADDITION: u32 = 9990;
pub const URLACTION_ALLOW_CROSSDOMAIN_DROP_WITHIN_WINDOW: u32 = 9992;
pub const URLACTION_ALLOW_CROSSDOMAIN_DROP_ACROSS_WINDOWS: u32 = 9993;
pub const URLACTION_ALLOW_CROSSDOMAIN_APPCACHE_MANIFEST: u32 = 9994;
pub const URLACTION_ALLOW_RENDER_LEGACY_DXTFILTERS: u32 = 9995;
pub const URLACTION_ALLOW_ANTIMALWARE_SCANNING_OF_ACTIVEX: u32 = 9996;
pub const URLACTION_ALLOW_CSS_EXPRESSIONS: u32 = 9997;
pub const URLPOLICY_ALLOW: u32 = 0;
pub const URLPOLICY_QUERY: u32 = 1;
pub const URLPOLICY_DISALLOW: u32 = 3;
pub const URLPOLICY_NOTIFY_ON_ALLOW: u32 = 16;
pub const URLPOLICY_NOTIFY_ON_DISALLOW: u32 = 32;
pub const URLPOLICY_LOG_ON_ALLOW: u32 = 64;
pub const URLPOLICY_LOG_ON_DISALLOW: u32 = 128;
pub const URLPOLICY_MASK_PERMISSIONS: u32 = 15;
pub const URLPOLICY_DONTCHECKDLGBOX: u32 = 256;
pub const URLZONE_ESC_FLAG: u32 = 256;
pub const SECURITY_IE_STATE_GREEN: u32 = 0;
pub const SECURITY_IE_STATE_RED: u32 = 1;
pub const SOFTDIST_FLAG_USAGE_EMAIL: u32 = 1;
pub const SOFTDIST_FLAG_USAGE_PRECACHE: u32 = 2;
pub const SOFTDIST_FLAG_USAGE_AUTOINSTALL: u32 = 4;
pub const SOFTDIST_FLAG_DELETE_SUBSCRIPTION: u32 = 8;
pub const SOFTDIST_ADSTATE_NONE: u32 = 0;
pub const SOFTDIST_ADSTATE_AVAILABLE: u32 = 1;
pub const SOFTDIST_ADSTATE_DOWNLOADED: u32 = 2;
pub const SOFTDIST_ADSTATE_INSTALLED: u32 = 3;
pub const CONFIRMSAFETYACTION_LOADOBJECT: u32 = 1;
pub const PIDDI_THUMBNAIL: u32 = 2;
pub const PIDSI_TITLE: u32 = 2;
pub const PIDSI_SUBJECT: u32 = 3;
pub const PIDSI_AUTHOR: u32 = 4;
pub const PIDSI_KEYWORDS: u32 = 5;
pub const PIDSI_COMMENTS: u32 = 6;
pub const PIDSI_TEMPLATE: u32 = 7;
pub const PIDSI_LASTAUTHOR: u32 = 8;
pub const PIDSI_REVNUMBER: u32 = 9;
pub const PIDSI_EDITTIME: u32 = 10;
pub const PIDSI_LASTPRINTED: u32 = 11;
pub const PIDSI_CREATE_DTM: u32 = 12;
pub const PIDSI_LASTSAVE_DTM: u32 = 13;
pub const PIDSI_PAGECOUNT: u32 = 14;
pub const PIDSI_WORDCOUNT: u32 = 15;
pub const PIDSI_CHARCOUNT: u32 = 16;
pub const PIDSI_THUMBNAIL: u32 = 17;
pub const PIDSI_APPNAME: u32 = 18;
pub const PIDSI_DOC_SECURITY: u32 = 19;
pub const PIDDSI_CATEGORY: u32 = 2;
pub const PIDDSI_PRESFORMAT: u32 = 3;
pub const PIDDSI_BYTECOUNT: u32 = 4;
pub const PIDDSI_LINECOUNT: u32 = 5;
pub const PIDDSI_PARCOUNT: u32 = 6;
pub const PIDDSI_SLIDECOUNT: u32 = 7;
pub const PIDDSI_NOTECOUNT: u32 = 8;
pub const PIDDSI_HIDDENCOUNT: u32 = 9;
pub const PIDDSI_MMCLIPCOUNT: u32 = 10;
pub const PIDDSI_SCALE: u32 = 11;
pub const PIDDSI_HEADINGPAIR: u32 = 12;
pub const PIDDSI_DOCPARTS: u32 = 13;
pub const PIDDSI_MANAGER: u32 = 14;
pub const PIDDSI_COMPANY: u32 = 15;
pub const PIDDSI_LINKSDIRTY: u32 = 16;
pub const PIDMSI_EDITOR: u32 = 2;
pub const PIDMSI_SUPPLIER: u32 = 3;
pub const PIDMSI_SOURCE: u32 = 4;
pub const PIDMSI_SEQUENCE_NO: u32 = 5;
pub const PIDMSI_PROJECT: u32 = 6;
pub const PIDMSI_STATUS: u32 = 7;
pub const PIDMSI_OWNER: u32 = 8;
pub const PIDMSI_RATING: u32 = 9;
pub const PIDMSI_PRODUCTION: u32 = 10;
pub const PIDMSI_COPYRIGHT: u32 = 11;
pub const STDOLE_MAJORVERNUM: u32 = 1;
pub const STDOLE_MINORVERNUM: u32 = 0;
pub const STDOLE_LCID: u32 = 0;
pub const STDOLE2_MAJORVERNUM: u32 = 2;
pub const STDOLE2_MINORVERNUM: u32 = 0;
pub const STDOLE2_LCID: u32 = 0;
pub const VARIANT_NOVALUEPROP: u32 = 1;
pub const VARIANT_ALPHABOOL: u32 = 2;
pub const VARIANT_NOUSEROVERRIDE: u32 = 4;
pub const VARIANT_CALENDAR_HIJRI: u32 = 8;
pub const VARIANT_LOCALBOOL: u32 = 16;
pub const VARIANT_CALENDAR_THAI: u32 = 32;
pub const VARIANT_CALENDAR_GREGORIAN: u32 = 64;
pub const VARIANT_USE_NLS: u32 = 128;
pub const LOCALE_USE_NLS: u32 = 268435456;
pub const VTDATEGRE_MAX: u32 = 2958465;
pub const VTDATEGRE_MIN: i32 = -657434;
pub const NUMPRS_LEADING_WHITE: u32 = 1;
pub const NUMPRS_TRAILING_WHITE: u32 = 2;
pub const NUMPRS_LEADING_PLUS: u32 = 4;
pub const NUMPRS_TRAILING_PLUS: u32 = 8;
pub const NUMPRS_LEADING_MINUS: u32 = 16;
pub const NUMPRS_TRAILING_MINUS: u32 = 32;
pub const NUMPRS_HEX_OCT: u32 = 64;
pub const NUMPRS_PARENS: u32 = 128;
pub const NUMPRS_DECIMAL: u32 = 256;
pub const NUMPRS_THOUSANDS: u32 = 512;
pub const NUMPRS_CURRENCY: u32 = 1024;
pub const NUMPRS_EXPONENT: u32 = 2048;
pub const NUMPRS_USE_ALL: u32 = 4096;
pub const NUMPRS_STD: u32 = 8191;
pub const NUMPRS_NEG: u32 = 65536;
pub const NUMPRS_INEXACT: u32 = 131072;
pub const VARCMP_LT: u32 = 0;
pub const VARCMP_EQ: u32 = 1;
pub const VARCMP_GT: u32 = 2;
pub const VARCMP_NULL: u32 = 3;
pub const MEMBERID_NIL: i32 = -1;
pub const ID_DEFAULTINST: i32 = -2;
pub const DISPATCH_METHOD: u32 = 1;
pub const DISPATCH_PROPERTYGET: u32 = 2;
pub const DISPATCH_PROPERTYPUT: u32 = 4;
pub const DISPATCH_PROPERTYPUTREF: u32 = 8;
pub const LOAD_TLB_AS_32BIT: u32 = 32;
pub const LOAD_TLB_AS_64BIT: u32 = 64;
pub const MASK_TO_RESET_TLB_BITS: i32 = -97;
pub const ACTIVEOBJECT_STRONG: u32 = 0;
pub const ACTIVEOBJECT_WEAK: u32 = 1;
pub const OLEIVERB_PRIMARY: u32 = 0;
pub const OLEIVERB_SHOW: i32 = -1;
pub const OLEIVERB_OPEN: i32 = -2;
pub const OLEIVERB_HIDE: i32 = -3;
pub const OLEIVERB_UIACTIVATE: i32 = -4;
pub const OLEIVERB_INPLACEACTIVATE: i32 = -5;
pub const OLEIVERB_DISCARDUNDOSTATE: i32 = -6;
pub const EMBDHLP_INPROC_HANDLER: u32 = 0;
pub const EMBDHLP_INPROC_SERVER: u32 = 1;
pub const EMBDHLP_CREATENOW: u32 = 0;
pub const EMBDHLP_DELAYCREATE: u32 = 65536;
pub const OLECREATE_LEAVERUNNING: u32 = 1;
pub const OFN_READONLY: u32 = 1;
pub const OFN_OVERWRITEPROMPT: u32 = 2;
pub const OFN_HIDEREADONLY: u32 = 4;
pub const OFN_NOCHANGEDIR: u32 = 8;
pub const OFN_SHOWHELP: u32 = 16;
pub const OFN_ENABLEHOOK: u32 = 32;
pub const OFN_ENABLETEMPLATE: u32 = 64;
pub const OFN_ENABLETEMPLATEHANDLE: u32 = 128;
pub const OFN_NOVALIDATE: u32 = 256;
pub const OFN_ALLOWMULTISELECT: u32 = 512;
pub const OFN_EXTENSIONDIFFERENT: u32 = 1024;
pub const OFN_PATHMUSTEXIST: u32 = 2048;
pub const OFN_FILEMUSTEXIST: u32 = 4096;
pub const OFN_CREATEPROMPT: u32 = 8192;
pub const OFN_SHAREAWARE: u32 = 16384;
pub const OFN_NOREADONLYRETURN: u32 = 32768;
pub const OFN_NOTESTFILECREATE: u32 = 65536;
pub const OFN_NONETWORKBUTTON: u32 = 131072;
pub const OFN_NOLONGNAMES: u32 = 262144;
pub const OFN_EXPLORER: u32 = 524288;
pub const OFN_NODEREFERENCELINKS: u32 = 1048576;
pub const OFN_LONGNAMES: u32 = 2097152;
pub const OFN_ENABLEINCLUDENOTIFY: u32 = 4194304;
pub const OFN_ENABLESIZING: u32 = 8388608;
pub const OFN_DONTADDTORECENT: u32 = 33554432;
pub const OFN_FORCESHOWHIDDEN: u32 = 268435456;
pub const OFN_EX_NOPLACESBAR: u32 = 1;
pub const OFN_SHAREFALLTHROUGH: u32 = 2;
pub const OFN_SHARENOWARN: u32 = 1;
pub const OFN_SHAREWARN: u32 = 0;
pub const CDN_FIRST: i32 = -601;
pub const CDN_LAST: i32 = -699;
pub const CDN_INITDONE: i32 = -601;
pub const CDN_SELCHANGE: i32 = -602;
pub const CDN_FOLDERCHANGE: i32 = -603;
pub const CDN_SHAREVIOLATION: i32 = -604;
pub const CDN_HELP: i32 = -605;
pub const CDN_FILEOK: i32 = -606;
pub const CDN_TYPECHANGE: i32 = -607;
pub const CDN_INCLUDEITEM: i32 = -608;
pub const CDM_FIRST: u32 = 1124;
pub const CDM_LAST: u32 = 1224;
pub const CDM_GETSPEC: u32 = 1124;
pub const CDM_GETFILEPATH: u32 = 1125;
pub const CDM_GETFOLDERPATH: u32 = 1126;
pub const CDM_GETFOLDERIDLIST: u32 = 1127;
pub const CDM_SETCONTROLTEXT: u32 = 1128;
pub const CDM_HIDECONTROL: u32 = 1129;
pub const CDM_SETDEFEXT: u32 = 1130;
pub const CC_RGBINIT: u32 = 1;
pub const CC_FULLOPEN: u32 = 2;
pub const CC_PREVENTFULLOPEN: u32 = 4;
pub const CC_SHOWHELP: u32 = 8;
pub const CC_ENABLEHOOK: u32 = 16;
pub const CC_ENABLETEMPLATE: u32 = 32;
pub const CC_ENABLETEMPLATEHANDLE: u32 = 64;
pub const CC_SOLIDCOLOR: u32 = 128;
pub const CC_ANYCOLOR: u32 = 256;
pub const FR_DOWN: u32 = 1;
pub const FR_WHOLEWORD: u32 = 2;
pub const FR_MATCHCASE: u32 = 4;
pub const FR_FINDNEXT: u32 = 8;
pub const FR_REPLACE: u32 = 16;
pub const FR_REPLACEALL: u32 = 32;
pub const FR_DIALOGTERM: u32 = 64;
pub const FR_SHOWHELP: u32 = 128;
pub const FR_ENABLEHOOK: u32 = 256;
pub const FR_ENABLETEMPLATE: u32 = 512;
pub const FR_NOUPDOWN: u32 = 1024;
pub const FR_NOMATCHCASE: u32 = 2048;
pub const FR_NOWHOLEWORD: u32 = 4096;
pub const FR_ENABLETEMPLATEHANDLE: u32 = 8192;
pub const FR_HIDEUPDOWN: u32 = 16384;
pub const FR_HIDEMATCHCASE: u32 = 32768;
pub const FR_HIDEWHOLEWORD: u32 = 65536;
pub const FR_RAW: u32 = 131072;
pub const FR_SHOWWRAPAROUND: u32 = 262144;
pub const FR_NOWRAPAROUND: u32 = 524288;
pub const FR_WRAPAROUND: u32 = 1048576;
pub const FR_MATCHDIAC: u32 = 536870912;
pub const FR_MATCHKASHIDA: u32 = 1073741824;
pub const FR_MATCHALEFHAMZA: u32 = 2147483648;
pub const FRM_FIRST: u32 = 1124;
pub const FRM_LAST: u32 = 1224;
pub const FRM_SETOPERATIONRESULT: u32 = 1124;
pub const FRM_SETOPERATIONRESULTTEXT: u32 = 1125;
pub const CF_SCREENFONTS: u32 = 1;
pub const CF_PRINTERFONTS: u32 = 2;
pub const CF_BOTH: u32 = 3;
pub const CF_SHOWHELP: u32 = 4;
pub const CF_ENABLEHOOK: u32 = 8;
pub const CF_ENABLETEMPLATE: u32 = 16;
pub const CF_ENABLETEMPLATEHANDLE: u32 = 32;
pub const CF_INITTOLOGFONTSTRUCT: u32 = 64;
pub const CF_USESTYLE: u32 = 128;
pub const CF_EFFECTS: u32 = 256;
pub const CF_APPLY: u32 = 512;
pub const CF_ANSIONLY: u32 = 1024;
pub const CF_SCRIPTSONLY: u32 = 1024;
pub const CF_NOVECTORFONTS: u32 = 2048;
pub const CF_NOOEMFONTS: u32 = 2048;
pub const CF_NOSIMULATIONS: u32 = 4096;
pub const CF_LIMITSIZE: u32 = 8192;
pub const CF_FIXEDPITCHONLY: u32 = 16384;
pub const CF_WYSIWYG: u32 = 32768;
pub const CF_FORCEFONTEXIST: u32 = 65536;
pub const CF_SCALABLEONLY: u32 = 131072;
pub const CF_TTONLY: u32 = 262144;
pub const CF_NOFACESEL: u32 = 524288;
pub const CF_NOSTYLESEL: u32 = 1048576;
pub const CF_NOSIZESEL: u32 = 2097152;
pub const CF_SELECTSCRIPT: u32 = 4194304;
pub const CF_NOSCRIPTSEL: u32 = 8388608;
pub const CF_NOVERTFONTS: u32 = 16777216;
pub const CF_INACTIVEFONTS: u32 = 33554432;
pub const SIMULATED_FONTTYPE: u32 = 32768;
pub const PRINTER_FONTTYPE: u32 = 16384;
pub const SCREEN_FONTTYPE: u32 = 8192;
pub const BOLD_FONTTYPE: u32 = 256;
pub const ITALIC_FONTTYPE: u32 = 512;
pub const REGULAR_FONTTYPE: u32 = 1024;
pub const PS_OPENTYPE_FONTTYPE: u32 = 65536;
pub const TT_OPENTYPE_FONTTYPE: u32 = 131072;
pub const TYPE1_FONTTYPE: u32 = 262144;
pub const SYMBOL_FONTTYPE: u32 = 524288;
pub const WM_CHOOSEFONT_GETLOGFONT: u32 = 1025;
pub const WM_CHOOSEFONT_SETLOGFONT: u32 = 1125;
pub const WM_CHOOSEFONT_SETFLAGS: u32 = 1126;
pub const LBSELCHSTRINGA: &'static [u8; 27usize] = b"commdlg_LBSelChangedNotify\0";
pub const SHAREVISTRINGA: &'static [u8; 23usize] = b"commdlg_ShareViolation\0";
pub const FILEOKSTRINGA: &'static [u8; 19usize] = b"commdlg_FileNameOK\0";
pub const COLOROKSTRINGA: &'static [u8; 16usize] = b"commdlg_ColorOK\0";
pub const SETRGBSTRINGA: &'static [u8; 20usize] = b"commdlg_SetRGBColor\0";
pub const HELPMSGSTRINGA: &'static [u8; 13usize] = b"commdlg_help\0";
pub const FINDMSGSTRINGA: &'static [u8; 20usize] = b"commdlg_FindReplace\0";
pub const LBSELCHSTRINGW: &'static [u8; 27usize] = b"commdlg_LBSelChangedNotify\0";
pub const SHAREVISTRINGW: &'static [u8; 23usize] = b"commdlg_ShareViolation\0";
pub const FILEOKSTRINGW: &'static [u8; 19usize] = b"commdlg_FileNameOK\0";
pub const COLOROKSTRINGW: &'static [u8; 16usize] = b"commdlg_ColorOK\0";
pub const SETRGBSTRINGW: &'static [u8; 20usize] = b"commdlg_SetRGBColor\0";
pub const HELPMSGSTRINGW: &'static [u8; 13usize] = b"commdlg_help\0";
pub const FINDMSGSTRINGW: &'static [u8; 20usize] = b"commdlg_FindReplace\0";
pub const LBSELCHSTRING: &'static [u8; 27usize] = b"commdlg_LBSelChangedNotify\0";
pub const SHAREVISTRING: &'static [u8; 23usize] = b"commdlg_ShareViolation\0";
pub const FILEOKSTRING: &'static [u8; 19usize] = b"commdlg_FileNameOK\0";
pub const COLOROKSTRING: &'static [u8; 16usize] = b"commdlg_ColorOK\0";
pub const SETRGBSTRING: &'static [u8; 20usize] = b"commdlg_SetRGBColor\0";
pub const HELPMSGSTRING: &'static [u8; 13usize] = b"commdlg_help\0";
pub const FINDMSGSTRING: &'static [u8; 20usize] = b"commdlg_FindReplace\0";
pub const CD_LBSELNOITEMS: i32 = -1;
pub const CD_LBSELCHANGE: u32 = 0;
pub const CD_LBSELSUB: u32 = 1;
pub const CD_LBSELADD: u32 = 2;
pub const PD_ALLPAGES: u32 = 0;
pub const PD_SELECTION: u32 = 1;
pub const PD_PAGENUMS: u32 = 2;
pub const PD_NOSELECTION: u32 = 4;
pub const PD_NOPAGENUMS: u32 = 8;
pub const PD_COLLATE: u32 = 16;
pub const PD_PRINTTOFILE: u32 = 32;
pub const PD_PRINTSETUP: u32 = 64;
pub const PD_NOWARNING: u32 = 128;
pub const PD_RETURNDC: u32 = 256;
pub const PD_RETURNIC: u32 = 512;
pub const PD_RETURNDEFAULT: u32 = 1024;
pub const PD_SHOWHELP: u32 = 2048;
pub const PD_ENABLEPRINTHOOK: u32 = 4096;
pub const PD_ENABLESETUPHOOK: u32 = 8192;
pub const PD_ENABLEPRINTTEMPLATE: u32 = 16384;
pub const PD_ENABLESETUPTEMPLATE: u32 = 32768;
pub const PD_ENABLEPRINTTEMPLATEHANDLE: u32 = 65536;
pub const PD_ENABLESETUPTEMPLATEHANDLE: u32 = 131072;
pub const PD_USEDEVMODECOPIES: u32 = 262144;
pub const PD_USEDEVMODECOPIESANDCOLLATE: u32 = 262144;
pub const PD_DISABLEPRINTTOFILE: u32 = 524288;
pub const PD_HIDEPRINTTOFILE: u32 = 1048576;
pub const PD_NONETWORKBUTTON: u32 = 2097152;
pub const PD_CURRENTPAGE: u32 = 4194304;
pub const PD_NOCURRENTPAGE: u32 = 8388608;
pub const PD_EXCLUSIONFLAGS: u32 = 16777216;
pub const PD_USELARGETEMPLATE: u32 = 268435456;
pub const PD_EXCL_COPIESANDCOLLATE: u32 = 33024;
pub const START_PAGE_GENERAL: u32 = 4294967295;
pub const PD_RESULT_CANCEL: u32 = 0;
pub const PD_RESULT_PRINT: u32 = 1;
pub const PD_RESULT_APPLY: u32 = 2;
pub const DN_DEFAULTPRN: u32 = 1;
pub const WM_PSD_PAGESETUPDLG: u32 = 1024;
pub const WM_PSD_FULLPAGERECT: u32 = 1025;
pub const WM_PSD_MINMARGINRECT: u32 = 1026;
pub const WM_PSD_MARGINRECT: u32 = 1027;
pub const WM_PSD_GREEKTEXTRECT: u32 = 1028;
pub const WM_PSD_ENVSTAMPRECT: u32 = 1029;
pub const WM_PSD_YAFULLPAGERECT: u32 = 1030;
pub const PSD_DEFAULTMINMARGINS: u32 = 0;
pub const PSD_INWININIINTLMEASURE: u32 = 0;
pub const PSD_MINMARGINS: u32 = 1;
pub const PSD_MARGINS: u32 = 2;
pub const PSD_INTHOUSANDTHSOFINCHES: u32 = 4;
pub const PSD_INHUNDREDTHSOFMILLIMETERS: u32 = 8;
pub const PSD_DISABLEMARGINS: u32 = 16;
pub const PSD_DISABLEPRINTER: u32 = 32;
pub const PSD_NOWARNING: u32 = 128;
pub const PSD_DISABLEORIENTATION: u32 = 256;
pub const PSD_RETURNDEFAULT: u32 = 1024;
pub const PSD_DISABLEPAPER: u32 = 512;
pub const PSD_SHOWHELP: u32 = 2048;
pub const PSD_ENABLEPAGESETUPHOOK: u32 = 8192;
pub const PSD_ENABLEPAGESETUPTEMPLATE: u32 = 32768;
pub const PSD_ENABLEPAGESETUPTEMPLATEHANDLE: u32 = 131072;
pub const PSD_ENABLEPAGEPAINTHOOK: u32 = 262144;
pub const PSD_DISABLEPAGEPAINTING: u32 = 524288;
pub const PSD_NONETWORKBUTTON: u32 = 2097152;
pub const _STRALIGN_USE_SECURE_CRT: u32 = 1;
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 SERVICES_ACTIVE_DATABASE: &'static [u8; 15usize] = b"ServicesActive\0";
pub const SERVICES_FAILED_DATABASE: &'static [u8; 15usize] = b"ServicesFailed\0";
pub const SC_GROUP_IDENTIFIER: 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_CONTROL_PRESHUTDOWN: u32 = 15;
pub const SERVICE_CONTROL_TIMECHANGE: u32 = 16;
pub const SERVICE_CONTROL_TRIGGEREVENT: u32 = 32;
pub const SERVICE_CONTROL_LOWRESOURCES: u32 = 96;
pub const SERVICE_CONTROL_SYSTEMLOWRESOURCES: u32 = 97;
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 SERVICE_ACCEPT_PRESHUTDOWN: u32 = 256;
pub const SERVICE_ACCEPT_TIMECHANGE: u32 = 512;
pub const SERVICE_ACCEPT_TRIGGEREVENT: u32 = 1024;
pub const SERVICE_ACCEPT_USER_LOGOFF: u32 = 2048;
pub const SERVICE_ACCEPT_LOWRESOURCES: u32 = 8192;
pub const SERVICE_ACCEPT_SYSTEMLOWRESOURCES: u32 = 16384;
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 SC_MANAGER_ALL_ACCESS: u32 = 983103;
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_ALL_ACCESS: u32 = 983551;
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 SERVICE_CONFIG_DELAYED_AUTO_START_INFO: u32 = 3;
pub const SERVICE_CONFIG_FAILURE_ACTIONS_FLAG: u32 = 4;
pub const SERVICE_CONFIG_SERVICE_SID_INFO: u32 = 5;
pub const SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO: u32 = 6;
pub const SERVICE_CONFIG_PRESHUTDOWN_INFO: u32 = 7;
pub const SERVICE_CONFIG_TRIGGER_INFO: u32 = 8;
pub const SERVICE_CONFIG_PREFERRED_NODE: u32 = 9;
pub const SERVICE_CONFIG_LAUNCH_PROTECTED: u32 = 12;
pub const SERVICE_NOTIFY_STATUS_CHANGE_1: u32 = 1;
pub const SERVICE_NOTIFY_STATUS_CHANGE_2: u32 = 2;
pub const SERVICE_NOTIFY_STATUS_CHANGE: u32 = 2;
pub const SERVICE_NOTIFY_STOPPED: u32 = 1;
pub const SERVICE_NOTIFY_START_PENDING: u32 = 2;
pub const SERVICE_NOTIFY_STOP_PENDING: u32 = 4;
pub const SERVICE_NOTIFY_RUNNING: u32 = 8;
pub const SERVICE_NOTIFY_CONTINUE_PENDING: u32 = 16;
pub const SERVICE_NOTIFY_PAUSE_PENDING: u32 = 32;
pub const SERVICE_NOTIFY_PAUSED: u32 = 64;
pub const SERVICE_NOTIFY_CREATED: u32 = 128;
pub const SERVICE_NOTIFY_DELETED: u32 = 256;
pub const SERVICE_NOTIFY_DELETE_PENDING: u32 = 512;
pub const SERVICE_STOP_REASON_FLAG_MIN: u32 = 0;
pub const SERVICE_STOP_REASON_FLAG_UNPLANNED: u32 = 268435456;
pub const SERVICE_STOP_REASON_FLAG_CUSTOM: u32 = 536870912;
pub const SERVICE_STOP_REASON_FLAG_PLANNED: u32 = 1073741824;
pub const SERVICE_STOP_REASON_FLAG_MAX: u32 = 2147483648;
pub const SERVICE_STOP_REASON_MAJOR_MIN: u32 = 0;
pub const SERVICE_STOP_REASON_MAJOR_OTHER: u32 = 65536;
pub const SERVICE_STOP_REASON_MAJOR_HARDWARE: u32 = 131072;
pub const SERVICE_STOP_REASON_MAJOR_OPERATINGSYSTEM: u32 = 196608;
pub const SERVICE_STOP_REASON_MAJOR_SOFTWARE: u32 = 262144;
pub const SERVICE_STOP_REASON_MAJOR_APPLICATION: u32 = 327680;
pub const SERVICE_STOP_REASON_MAJOR_NONE: u32 = 393216;
pub const SERVICE_STOP_REASON_MAJOR_MAX: u32 = 458752;
pub const SERVICE_STOP_REASON_MAJOR_MIN_CUSTOM: u32 = 4194304;
pub const SERVICE_STOP_REASON_MAJOR_MAX_CUSTOM: u32 = 16711680;
pub const SERVICE_STOP_REASON_MINOR_MIN: u32 = 0;
pub const SERVICE_STOP_REASON_MINOR_OTHER: u32 = 1;
pub const SERVICE_STOP_REASON_MINOR_MAINTENANCE: u32 = 2;
pub const SERVICE_STOP_REASON_MINOR_INSTALLATION: u32 = 3;
pub const SERVICE_STOP_REASON_MINOR_UPGRADE: u32 = 4;
pub const SERVICE_STOP_REASON_MINOR_RECONFIG: u32 = 5;
pub const SERVICE_STOP_REASON_MINOR_HUNG: u32 = 6;
pub const SERVICE_STOP_REASON_MINOR_UNSTABLE: u32 = 7;
pub const SERVICE_STOP_REASON_MINOR_DISK: u32 = 8;
pub const SERVICE_STOP_REASON_MINOR_NETWORKCARD: u32 = 9;
pub const SERVICE_STOP_REASON_MINOR_ENVIRONMENT: u32 = 10;
pub const SERVICE_STOP_REASON_MINOR_HARDWARE_DRIVER: u32 = 11;
pub const SERVICE_STOP_REASON_MINOR_OTHERDRIVER: u32 = 12;
pub const SERVICE_STOP_REASON_MINOR_SERVICEPACK: u32 = 13;
pub const SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE: u32 = 14;
pub const SERVICE_STOP_REASON_MINOR_SECURITYFIX: u32 = 15;
pub const SERVICE_STOP_REASON_MINOR_SECURITY: u32 = 16;
pub const SERVICE_STOP_REASON_MINOR_NETWORK_CONNECTIVITY: u32 = 17;
pub const SERVICE_STOP_REASON_MINOR_WMI: u32 = 18;
pub const SERVICE_STOP_REASON_MINOR_SERVICEPACK_UNINSTALL: u32 = 19;
pub const SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE_UNINSTALL: u32 = 20;
pub const SERVICE_STOP_REASON_MINOR_SECURITYFIX_UNINSTALL: u32 = 21;
pub const SERVICE_STOP_REASON_MINOR_MMC: u32 = 22;
pub const SERVICE_STOP_REASON_MINOR_NONE: u32 = 23;
pub const SERVICE_STOP_REASON_MINOR_MEMOTYLIMIT: u32 = 24;
pub const SERVICE_STOP_REASON_MINOR_MAX: u32 = 25;
pub const SERVICE_STOP_REASON_MINOR_MIN_CUSTOM: u32 = 256;
pub const SERVICE_STOP_REASON_MINOR_MAX_CUSTOM: u32 = 65535;
pub const SERVICE_CONTROL_STATUS_REASON_INFO: u32 = 1;
pub const SERVICE_SID_TYPE_NONE: u32 = 0;
pub const SERVICE_SID_TYPE_UNRESTRICTED: u32 = 1;
pub const SERVICE_SID_TYPE_RESTRICTED: u32 = 3;
pub const SERVICE_TRIGGER_TYPE_DEVICE_INTERFACE_ARRIVAL: u32 = 1;
pub const SERVICE_TRIGGER_TYPE_IP_ADDRESS_AVAILABILITY: u32 = 2;
pub const SERVICE_TRIGGER_TYPE_DOMAIN_JOIN: u32 = 3;
pub const SERVICE_TRIGGER_TYPE_FIREWALL_PORT_EVENT: u32 = 4;
pub const SERVICE_TRIGGER_TYPE_GROUP_POLICY: u32 = 5;
pub const SERVICE_TRIGGER_TYPE_NETWORK_ENDPOINT: u32 = 6;
pub const SERVICE_TRIGGER_TYPE_CUSTOM_SYSTEM_STATE_CHANGE: u32 = 7;
pub const SERVICE_TRIGGER_TYPE_CUSTOM: u32 = 20;
pub const SERVICE_TRIGGER_TYPE_AGGREGATE: u32 = 30;
pub const SERVICE_TRIGGER_DATA_TYPE_BINARY: u32 = 1;
pub const SERVICE_TRIGGER_DATA_TYPE_STRING: u32 = 2;
pub const SERVICE_TRIGGER_DATA_TYPE_LEVEL: u32 = 3;
pub const SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ANY: u32 = 4;
pub const SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ALL: u32 = 5;
pub const SERVICE_START_REASON_DEMAND: u32 = 1;
pub const SERVICE_START_REASON_AUTO: u32 = 2;
pub const SERVICE_START_REASON_TRIGGER: u32 = 4;
pub const SERVICE_START_REASON_RESTART_ON_FAILURE: u32 = 8;
pub const SERVICE_START_REASON_DELAYEDAUTO: u32 = 16;
pub const SERVICE_DYNAMIC_INFORMATION_LEVEL_START_REASON: u32 = 1;
pub const SERVICE_LAUNCH_PROTECTED_NONE: u32 = 0;
pub const SERVICE_LAUNCH_PROTECTED_WINDOWS: u32 = 1;
pub const SERVICE_LAUNCH_PROTECTED_WINDOWS_LIGHT: u32 = 2;
pub const SERVICE_LAUNCH_PROTECTED_ANTIMALWARE_LIGHT: u32 = 3;
pub const SERVICE_TRIGGER_ACTION_SERVICE_START: u32 = 1;
pub const SERVICE_TRIGGER_ACTION_SERVICE_STOP: u32 = 2;
pub const SERVICE_TRIGGER_STARTED_ARGUMENT: &'static [u8; 15usize] = b"TriggerStarted\0";
pub const SC_AGGREGATE_STORAGE_KEY: &'static [u8; 57usize] =
    b"System\\CurrentControlSet\\Control\\ServiceAggregatedEvents\0";
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_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_NATIVESYMBOL: u32 = 128;
pub const IME_CMODE_HANGEUL: u32 = 1;
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 IMFS_GRAYED: u32 = 3;
pub const IMFS_DISABLED: u32 = 3;
pub const IMFS_CHECKED: u32 = 8;
pub const IMFS_HILITE: u32 = 128;
pub const IMFS_ENABLED: u32 = 0;
pub const IMFS_UNCHECKED: u32 = 0;
pub const IMFS_UNHILITE: u32 = 0;
pub const IMFS_DEFAULT: u32 = 4096;
pub const SOFTKEYBOARD_TYPE_T1: u32 = 1;
pub const SOFTKEYBOARD_TYPE_C1: u32 = 2;
pub const SQL_CMP_NA_ERRORS: u32 = 1;
pub const SQL_CMP_ROWS_AFFECTED: u32 = 2;
pub const SQL_CMP_STMTS_COMPLETED: u32 = 3;
pub const SQL_CMP_REF_INT_ROWS: u32 = 4;
pub const SQL_CONNECT_DB_APP2DB_CONVFACTOR: u32 = 0;
pub const SQL_CONNECT_DB_DB2APP_CONVFACTOR: u32 = 1;
pub const SQL_CONNECT_DB_UPDATEABILITY_IN_UOW: u32 = 2;
pub const SQL_CONNECT_DB_COMMIT_TYPE: u32 = 3;
pub const SQL_DB_UPDATEABLE: u32 = 1;
pub const SQL_DB_READ_ONLY: u32 = 2;
pub const SQL_DB_ONE_PHASE_COMMIT: u32 = 1;
pub const SQL_DB_ONE_PHASE_READ_ONLY: u32 = 2;
pub const SQL_DB_TWO_PHASE_COMMIT: u32 = 3;
pub const SQL_ERRD_NODE_NUM: u32 = 1;
pub const DB2CLI_VER: u32 = 784;
pub const SQL_MAX_MESSAGE_LENGTH: u32 = 1024;
pub const SQL_MAX_ID_LENGTH: u32 = 128;
pub const SQL_DATE_LEN: u32 = 10;
pub const SQL_TIME_LEN: u32 = 8;
pub const SQL_TIMESTAMP_LEN: u32 = 19;
pub const SQL_TIMESTAMPTZ_LEN: u32 = 25;
pub const SQL_HANDLE_ENV: u32 = 1;
pub const SQL_HANDLE_DBC: u32 = 2;
pub const SQL_HANDLE_STMT: u32 = 3;
pub const SQL_HANDLE_DESC: u32 = 4;
pub const SQL_SUCCESS: u32 = 0;
pub const SQL_SUCCESS_WITH_INFO: u32 = 1;
pub const SQL_NEED_DATA: u32 = 99;
pub const SQL_NO_DATA: u32 = 100;
pub const SQL_STILL_EXECUTING: u32 = 2;
pub const SQL_ERROR: i32 = -1;
pub const SQL_INVALID_HANDLE: i32 = -2;
pub const SQL_CLOSE: u32 = 0;
pub const SQL_DROP: u32 = 1;
pub const SQL_UNBIND: u32 = 2;
pub const SQL_RESET_PARAMS: u32 = 3;
pub const SQL_COMMIT: u32 = 0;
pub const SQL_ROLLBACK: u32 = 1;
pub const SQL_UNKNOWN_TYPE: u32 = 0;
pub const SQL_CHAR: u32 = 1;
pub const SQL_NUMERIC: u32 = 2;
pub const SQL_DECIMAL: u32 = 3;
pub const SQL_INTEGER: u32 = 4;
pub const SQL_SMALLINT: u32 = 5;
pub const SQL_FLOAT: u32 = 6;
pub const SQL_REAL: u32 = 7;
pub const SQL_DOUBLE: u32 = 8;
pub const SQL_DATETIME: u32 = 9;
pub const SQL_VARCHAR: u32 = 12;
pub const SQL_BOOLEAN: u32 = 16;
pub const SQL_ROW: u32 = 19;
pub const SQL_WCHAR: i32 = -8;
pub const SQL_WVARCHAR: i32 = -9;
pub const SQL_WLONGVARCHAR: i32 = -10;
pub const SQL_DECFLOAT: i32 = -360;
pub const SQL_TYPE_DATE: u32 = 91;
pub const SQL_TYPE_TIME: u32 = 92;
pub const SQL_TYPE_TIMESTAMP: u32 = 93;
pub const SQL_TYPE_TIMESTAMP_WITH_TIMEZONE: u32 = 95;
pub const SQL_UNSPECIFIED: u32 = 0;
pub const SQL_INSENSITIVE: u32 = 1;
pub const SQL_SENSITIVE: u32 = 2;
pub const SQL_DEFAULT: u32 = 99;
pub const SQL_ARD_TYPE: i32 = -99;
pub const SQL_CODE_DATE: u32 = 1;
pub const SQL_CODE_TIME: u32 = 2;
pub const SQL_CODE_TIMESTAMP: u32 = 3;
pub const SQL_CODE_TIMESTAMP_WITH_TIMEZONE: u32 = 4;
pub const SQL_GRAPHIC: i32 = -95;
pub const SQL_VARGRAPHIC: i32 = -96;
pub const SQL_LONGVARGRAPHIC: i32 = -97;
pub const SQL_BLOB: i32 = -98;
pub const SQL_CLOB: i32 = -99;
pub const SQL_DBCLOB: i32 = -350;
pub const SQL_XML: i32 = -370;
pub const SQL_CURSORHANDLE: i32 = -380;
pub const SQL_DATALINK: i32 = -400;
pub const SQL_USER_DEFINED_TYPE: i32 = -450;
pub const SQL_C_DBCHAR: i32 = -350;
pub const SQL_C_DECIMAL_IBM: u32 = 3;
pub const SQL_C_PTR: u32 = 2463;
pub const SQL_C_DECIMAL_OLEDB: u32 = 2514;
pub const SQL_C_DECIMAL64: i32 = -360;
pub const SQL_C_DECIMAL128: i32 = -361;
pub const SQL_C_TIMESTAMP_EXT: i32 = -362;
pub const SQL_C_TYPE_TIMESTAMP_EXT: i32 = -362;
pub const SQL_C_BINARYXML: i32 = -363;
pub const SQL_C_TIMESTAMP_EXT_TZ: i32 = -364;
pub const SQL_C_TYPE_TIMESTAMP_EXT_TZ: i32 = -364;
pub const SQL_C_CURSORHANDLE: i32 = -365;
pub const SQL_BLOB_LOCATOR: u32 = 31;
pub const SQL_CLOB_LOCATOR: u32 = 41;
pub const SQL_DBCLOB_LOCATOR: i32 = -351;
pub const SQL_C_BLOB_LOCATOR: u32 = 31;
pub const SQL_C_CLOB_LOCATOR: u32 = 41;
pub const SQL_C_DBCLOB_LOCATOR: i32 = -351;
pub const SQL_NO_NULLS: u32 = 0;
pub const SQL_NULLABLE: u32 = 1;
pub const SQL_NULLABLE_UNKNOWN: u32 = 2;
pub const SQL_NAMED: u32 = 0;
pub const SQL_UNNAMED: u32 = 1;
pub const SQL_DESC_ALLOC_AUTO: u32 = 1;
pub const SQL_DESC_ALLOC_USER: u32 = 2;
pub const SQL_TYPE_BASE: u32 = 0;
pub const SQL_TYPE_DISTINCT: u32 = 1;
pub const SQL_TYPE_STRUCTURED: u32 = 2;
pub const SQL_TYPE_REFERENCE: u32 = 3;
pub const SQL_NULL_DATA: i32 = -1;
pub const SQL_DATA_AT_EXEC: i32 = -2;
pub const SQL_NTS: i32 = -3;
pub const SQL_NTSL: i32 = -3;
pub const SQL_COLUMN_SCHEMA_NAME: u32 = 16;
pub const SQL_COLUMN_CATALOG_NAME: u32 = 17;
pub const SQL_COLUMN_DISTINCT_TYPE: u32 = 1250;
pub const SQL_DESC_DISTINCT_TYPE: u32 = 1250;
pub const SQL_COLUMN_REFERENCE_TYPE: u32 = 1251;
pub const SQL_DESC_REFERENCE_TYPE: u32 = 1251;
pub const SQL_DESC_STRUCTURED_TYPE: u32 = 1252;
pub const SQL_DESC_USER_TYPE: u32 = 1253;
pub const SQL_DESC_BASE_TYPE: u32 = 1254;
pub const SQL_DESC_KEY_TYPE: u32 = 1255;
pub const SQL_DESC_KEY_MEMBER: u32 = 1266;
pub const SQL_DESC_IDENTITY_VALUE: u32 = 1267;
pub const SQL_DESC_CODEPAGE: u32 = 1268;
pub const SQL_DESC_COUNT: u32 = 1001;
pub const SQL_DESC_TYPE: u32 = 1002;
pub const SQL_DESC_LENGTH: u32 = 1003;
pub const SQL_DESC_OCTET_LENGTH_PTR: u32 = 1004;
pub const SQL_DESC_PRECISION: u32 = 1005;
pub const SQL_DESC_SCALE: u32 = 1006;
pub const SQL_DESC_DATETIME_INTERVAL_CODE: u32 = 1007;
pub const SQL_DESC_NULLABLE: u32 = 1008;
pub const SQL_DESC_INDICATOR_PTR: u32 = 1009;
pub const SQL_DESC_DATA_PTR: u32 = 1010;
pub const SQL_DESC_NAME: u32 = 1011;
pub const SQL_DESC_UNNAMED: u32 = 1012;
pub const SQL_DESC_OCTET_LENGTH: u32 = 1013;
pub const SQL_DESC_ALLOC_TYPE: u32 = 1099;
pub const SQL_DESC_USER_DEFINED_TYPE_CODE: u32 = 1098;
pub const SQL_DESC_CARDINALITY: u32 = 1040;
pub const SQL_DESC_CARDINALITY_PTR: u32 = 1043;
pub const SQL_DESC_ROW_DESC: u32 = 1044;
pub const SQL_KEYTYPE_NONE: u32 = 0;
pub const SQL_KEYTYPE_PRIMARYKEY: u32 = 1;
pub const SQL_KEYTYPE_UNIQUEINDEX: u32 = 2;
pub const SQL_UPDT_READONLY: u32 = 0;
pub const SQL_UPDT_WRITE: u32 = 1;
pub const SQL_UPDT_READWRITE_UNKNOWN: u32 = 2;
pub const SQL_PRED_NONE: u32 = 0;
pub const SQL_PRED_CHAR: u32 = 1;
pub const SQL_PRED_BASIC: u32 = 2;
pub const SQL_NULL_HENV: u32 = 0;
pub const SQL_NULL_HDBC: u32 = 0;
pub const SQL_NULL_HSTMT: u32 = 0;
pub const SQL_NULL_HDESC: u32 = 0;
pub const SQL_NULL_HANDLE: u32 = 0;
pub const SQL_DIAG_RETURNCODE: u32 = 1;
pub const SQL_DIAG_NUMBER: u32 = 2;
pub const SQL_DIAG_ROW_COUNT: u32 = 3;
pub const SQL_DIAG_SQLSTATE: u32 = 4;
pub const SQL_DIAG_NATIVE: u32 = 5;
pub const SQL_DIAG_MESSAGE_TEXT: u32 = 6;
pub const SQL_DIAG_DYNAMIC_FUNCTION: u32 = 7;
pub const SQL_DIAG_CLASS_ORIGIN: u32 = 8;
pub const SQL_DIAG_SUBCLASS_ORIGIN: u32 = 9;
pub const SQL_DIAG_CONNECTION_NAME: u32 = 10;
pub const SQL_DIAG_SERVER_NAME: u32 = 11;
pub const SQL_DIAG_DYNAMIC_FUNCTION_CODE: u32 = 12;
pub const SQL_DIAG_ISAM_ERROR: u32 = 13;
pub const SQL_DIAG_SYSPLEX_STATISTICS: u32 = 2528;
pub const SQL_DIAG_DB2ZLOAD_RETCODE: u32 = 2529;
pub const SQL_DIAG_DB2ZLOAD_LOAD_MSGS: u32 = 2530;
pub const SQL_DIAG_LOG_FILENAME: u32 = 2531;
pub const SQL_DIAG_BAD_FILENAME: u32 = 2532;
pub const SQL_DIAG_ALTER_TABLE: u32 = 4;
pub const SQL_DIAG_CALL: u32 = 7;
pub const SQL_DIAG_CREATE_INDEX: i32 = -1;
pub const SQL_DIAG_CREATE_TABLE: u32 = 77;
pub const SQL_DIAG_CREATE_VIEW: u32 = 84;
pub const SQL_DIAG_DELETE_WHERE: u32 = 19;
pub const SQL_DIAG_DROP_INDEX: i32 = -2;
pub const SQL_DIAG_DROP_TABLE: u32 = 32;
pub const SQL_DIAG_DROP_VIEW: u32 = 36;
pub const SQL_DIAG_DYNAMIC_DELETE_CURSOR: u32 = 38;
pub const SQL_DIAG_DYNAMIC_UPDATE_CURSOR: u32 = 81;
pub const SQL_DIAG_GRANT: u32 = 48;
pub const SQL_DIAG_INSERT: u32 = 50;
pub const SQL_DIAG_MERGE: u32 = 128;
pub const SQL_DIAG_REVOKE: u32 = 59;
pub const SQL_DIAG_SELECT_CURSOR: u32 = 85;
pub const SQL_DIAG_UNKNOWN_STATEMENT: u32 = 0;
pub const SQL_DIAG_UPDATE_WHERE: u32 = 82;
pub const SQL_DIAG_DEFERRED_PREPARE_ERROR: u32 = 1279;
pub const SQL_ROW_NO_ROW_NUMBER: i32 = -1;
pub const SQL_ROW_NUMBER_UNKNOWN: i32 = -2;
pub const SQL_COLUMN_NO_COLUMN_NUMBER: i32 = -1;
pub const SQL_COLUMN_NUMBER_UNKNOWN: i32 = -2;
pub const SQL_MAX_C_NUMERIC_PRECISION: u32 = 38;
pub const SQL_MAX_NUMERIC_LEN: u32 = 16;
pub const SQL_DECIMAL64_LEN: u32 = 8;
pub const SQL_DECIMAL128_LEN: u32 = 16;
pub const ODBCVER: u32 = 896;
pub const SQL_SPEC_MAJOR: u32 = 3;
pub const SQL_SPEC_MINOR: u32 = 80;
pub const SQL_SPEC_STRING: &'static [u8; 6usize] = b"03.80\0";
pub const SQL_SQLSTATE_SIZE: u32 = 5;
pub const SQL_MAX_DSN_LENGTH: u32 = 32;
pub const SQL_MAX_OPTION_STRING_LENGTH: u32 = 256;
pub const SQL_NO_DATA_FOUND: u32 = 100;
pub const SQL_HANDLE_SENV: u32 = 5;
pub const SQL_ATTR_ODBC_VERSION: u32 = 200;
pub const SQL_ATTR_CONNECTION_POOLING: u32 = 201;
pub const SQL_ATTR_CP_MATCH: u32 = 202;
pub const SQL_CP_OFF: u32 = 0;
pub const SQL_CP_ONE_PER_DRIVER: u32 = 1;
pub const SQL_CP_ONE_PER_HENV: u32 = 2;
pub const SQL_CP_DEFAULT: u32 = 0;
pub const SQL_CP_STRICT_MATCH: u32 = 0;
pub const SQL_CP_RELAXED_MATCH: u32 = 1;
pub const SQL_CP_MATCH_DEFAULT: u32 = 0;
pub const SQL_OV_ODBC2: u32 = 2;
pub const SQL_OV_ODBC3: u32 = 3;
pub const SQL_OV_ODBC3_80: u32 = 380;
pub const SQL_ACCESS_MODE: u32 = 101;
pub const SQL_AUTOCOMMIT: u32 = 102;
pub const SQL_LOGIN_TIMEOUT: u32 = 103;
pub const SQL_OPT_TRACE: u32 = 104;
pub const SQL_OPT_TRACEFILE: u32 = 105;
pub const SQL_TRANSLATE_DLL: u32 = 106;
pub const SQL_TRANSLATE_OPTION: u32 = 107;
pub const SQL_TXN_ISOLATION: u32 = 108;
pub const SQL_CURRENT_QUALIFIER: u32 = 109;
pub const SQL_ODBC_CURSORS: u32 = 110;
pub const SQL_QUIET_MODE: u32 = 111;
pub const SQL_PACKET_SIZE: u32 = 112;
pub const SQL_ATTR_ACCESS_MODE: u32 = 101;
pub const SQL_ATTR_AUTOCOMMIT: u32 = 102;
pub const SQL_ATTR_CONNECTION_TIMEOUT: u32 = 113;
pub const SQL_ATTR_CURRENT_CATALOG: u32 = 109;
pub const SQL_ATTR_DISCONNECT_BEHAVIOR: u32 = 114;
pub const SQL_ATTR_ENLIST_IN_DTC: u32 = 1207;
pub const SQL_ATTR_ENLIST_IN_XA: u32 = 1208;
pub const SQL_ATTR_LOGIN_TIMEOUT: u32 = 103;
pub const SQL_ATTR_ODBC_CURSORS: u32 = 110;
pub const SQL_ATTR_PACKET_SIZE: u32 = 112;
pub const SQL_ATTR_QUIET_MODE: u32 = 111;
pub const SQL_ATTR_TRACE: u32 = 104;
pub const SQL_ATTR_TRACEFILE: u32 = 105;
pub const SQL_ATTR_TRANSLATE_LIB: u32 = 106;
pub const SQL_ATTR_TRANSLATE_OPTION: u32 = 107;
pub const SQL_ATTR_TXN_ISOLATION: u32 = 108;
pub const SQL_ATTR_CONNECTION_DEAD: u32 = 1209;
pub const SQL_ATTR_ANSI_APP: u32 = 115;
pub const SQL_ATTR_RESET_CONNECTION: u32 = 116;
pub const SQL_ATTR_ASYNC_DBC_FUNCTIONS_ENABLE: u32 = 117;
pub const SQL_MODE_READ_WRITE: u32 = 0;
pub const SQL_MODE_READ_ONLY: u32 = 1;
pub const SQL_MODE_DEFAULT: u32 = 0;
pub const SQL_AUTOCOMMIT_OFF: u32 = 0;
pub const SQL_AUTOCOMMIT_ON: u32 = 1;
pub const SQL_AUTOCOMMIT_DEFERRED: u32 = 2;
pub const SQL_AUTOCOMMIT_DEFAULT: u32 = 1;
pub const SQL_LOGIN_TIMEOUT_DEFAULT: u32 = 15;
pub const SQL_OPT_TRACE_OFF: u32 = 0;
pub const SQL_OPT_TRACE_ON: u32 = 1;
pub const SQL_OPT_TRACE_DEFAULT: u32 = 0;
pub const SQL_OPT_TRACE_FILE_DEFAULT: &'static [u8; 9usize] = b"\\SQL.LOG\0";
pub const SQL_CUR_USE_IF_NEEDED: u32 = 0;
pub const SQL_CUR_USE_ODBC: u32 = 1;
pub const SQL_CUR_USE_DRIVER: u32 = 2;
pub const SQL_CUR_DEFAULT: u32 = 2;
pub const SQL_DB_RETURN_TO_POOL: u32 = 0;
pub const SQL_DB_DISCONNECT: u32 = 1;
pub const SQL_DB_DEFAULT: u32 = 0;
pub const SQL_DTC_DONE: u32 = 0;
pub const SQL_CD_TRUE: u32 = 1;
pub const SQL_CD_FALSE: u32 = 0;
pub const SQL_AA_TRUE: u32 = 1;
pub const SQL_AA_FALSE: u32 = 0;
pub const SQL_RESET_CONNECTION_YES: u32 = 1;
pub const SQL_ASYNC_DBC_ENABLE_ON: u32 = 1;
pub const SQL_ASYNC_DBC_ENABLE_OFF: u32 = 0;
pub const SQL_ASYNC_DBC_ENABLE_DEFAULT: u32 = 0;
pub const SQL_QUERY_TIMEOUT: u32 = 0;
pub const SQL_MAX_ROWS: u32 = 1;
pub const SQL_NOSCAN: u32 = 2;
pub const SQL_MAX_LENGTH: u32 = 3;
pub const SQL_ASYNC_ENABLE: u32 = 4;
pub const SQL_BIND_TYPE: u32 = 5;
pub const SQL_CURSOR_TYPE: u32 = 6;
pub const SQL_CONCURRENCY: u32 = 7;
pub const SQL_KEYSET_SIZE: u32 = 8;
pub const SQL_ROWSET_SIZE: u32 = 9;
pub const SQL_SIMULATE_CURSOR: u32 = 10;
pub const SQL_RETRIEVE_DATA: u32 = 11;
pub const SQL_USE_BOOKMARKS: u32 = 12;
pub const SQL_GET_BOOKMARK: u32 = 13;
pub const SQL_ROW_NUMBER: u32 = 14;
pub const SQL_ATTR_ASYNC_ENABLE: u32 = 4;
pub const SQL_ATTR_CONCURRENCY: u32 = 7;
pub const SQL_ATTR_CURSOR_TYPE: u32 = 6;
pub const SQL_ATTR_ENABLE_AUTO_IPD: u32 = 15;
pub const SQL_ATTR_FETCH_BOOKMARK_PTR: u32 = 16;
pub const SQL_ATTR_KEYSET_SIZE: u32 = 8;
pub const SQL_ATTR_MAX_LENGTH: u32 = 3;
pub const SQL_ATTR_MAX_ROWS: u32 = 1;
pub const SQL_ATTR_NOSCAN: u32 = 2;
pub const SQL_ATTR_PARAM_BIND_OFFSET_PTR: u32 = 17;
pub const SQL_ATTR_PARAM_BIND_TYPE: u32 = 18;
pub const SQL_ATTR_PARAM_OPERATION_PTR: u32 = 19;
pub const SQL_ATTR_PARAM_STATUS_PTR: u32 = 20;
pub const SQL_ATTR_PARAMS_PROCESSED_PTR: u32 = 21;
pub const SQL_ATTR_PARAMSET_SIZE: u32 = 22;
pub const SQL_ATTR_QUERY_TIMEOUT: u32 = 0;
pub const SQL_ATTR_RETRIEVE_DATA: u32 = 11;
pub const SQL_ATTR_ROW_BIND_OFFSET_PTR: u32 = 23;
pub const SQL_ATTR_ROW_BIND_TYPE: u32 = 5;
pub const SQL_ATTR_ROW_NUMBER: u32 = 14;
pub const SQL_ATTR_ROW_OPERATION_PTR: u32 = 24;
pub const SQL_ATTR_ROW_STATUS_PTR: u32 = 25;
pub const SQL_ATTR_ROWS_FETCHED_PTR: u32 = 26;
pub const SQL_ATTR_ROW_ARRAY_SIZE: u32 = 27;
pub const SQL_ATTR_SIMULATE_CURSOR: u32 = 10;
pub const SQL_ATTR_USE_BOOKMARKS: u32 = 12;
pub const SQL_IS_POINTER: i32 = -4;
pub const SQL_IS_UINTEGER: i32 = -5;
pub const SQL_IS_INTEGER: i32 = -6;
pub const SQL_IS_USMALLINT: i32 = -7;
pub const SQL_IS_SMALLINT: i32 = -8;
pub const SQL_PARAM_BIND_BY_COLUMN: u32 = 0;
pub const SQL_PARAM_BIND_TYPE_DEFAULT: u32 = 0;
pub const SQL_QUERY_TIMEOUT_DEFAULT: u32 = 0;
pub const SQL_MAX_ROWS_DEFAULT: u32 = 0;
pub const SQL_NOSCAN_OFF: u32 = 0;
pub const SQL_NOSCAN_ON: u32 = 1;
pub const SQL_NOSCAN_DEFAULT: u32 = 0;
pub const SQL_MAX_LENGTH_DEFAULT: u32 = 0;
pub const SQL_ASYNC_ENABLE_OFF: u32 = 0;
pub const SQL_ASYNC_ENABLE_ON: u32 = 1;
pub const SQL_ASYNC_ENABLE_DEFAULT: u32 = 0;
pub const SQL_BIND_BY_COLUMN: u32 = 0;
pub const SQL_BIND_TYPE_DEFAULT: u32 = 0;
pub const SQL_CONCUR_READ_ONLY: u32 = 1;
pub const SQL_CONCUR_LOCK: u32 = 2;
pub const SQL_CONCUR_ROWVER: u32 = 3;
pub const SQL_CONCUR_VALUES: u32 = 4;
pub const SQL_CONCUR_DEFAULT: u32 = 1;
pub const SQL_CURSOR_FORWARD_ONLY: u32 = 0;
pub const SQL_CURSOR_KEYSET_DRIVEN: u32 = 1;
pub const SQL_CURSOR_DYNAMIC: u32 = 2;
pub const SQL_CURSOR_STATIC: u32 = 3;
pub const SQL_CURSOR_TYPE_DEFAULT: u32 = 0;
pub const SQL_ROWSET_SIZE_DEFAULT: u32 = 1;
pub const SQL_KEYSET_SIZE_DEFAULT: u32 = 0;
pub const SQL_SC_NON_UNIQUE: u32 = 0;
pub const SQL_SC_TRY_UNIQUE: u32 = 1;
pub const SQL_SC_UNIQUE: u32 = 2;
pub const SQL_RD_OFF: u32 = 0;
pub const SQL_RD_ON: u32 = 1;
pub const SQL_RD_DEFAULT: u32 = 1;
pub const SQL_UB_OFF: u32 = 0;
pub const SQL_UB_ON: u32 = 1;
pub const SQL_UB_DEFAULT: u32 = 0;
pub const SQL_UB_FIXED: u32 = 1;
pub const SQL_UB_VARIABLE: u32 = 2;
pub const SQL_DESC_ARRAY_SIZE: u32 = 20;
pub const SQL_DESC_ARRAY_STATUS_PTR: u32 = 21;
pub const SQL_DESC_BASE_COLUMN_NAME: u32 = 22;
pub const SQL_DESC_BASE_TABLE_NAME: u32 = 23;
pub const SQL_DESC_BIND_OFFSET_PTR: u32 = 24;
pub const SQL_DESC_BIND_TYPE: u32 = 25;
pub const SQL_DESC_DATETIME_INTERVAL_PRECISION: u32 = 26;
pub const SQL_DESC_LITERAL_PREFIX: u32 = 27;
pub const SQL_DESC_LITERAL_SUFFIX: u32 = 28;
pub const SQL_DESC_LOCAL_TYPE_NAME: u32 = 29;
pub const SQL_DESC_MAXIMUM_SCALE: u32 = 30;
pub const SQL_DESC_MINIMUM_SCALE: u32 = 31;
pub const SQL_DESC_NUM_PREC_RADIX: u32 = 32;
pub const SQL_DESC_PARAMETER_TYPE: u32 = 33;
pub const SQL_DESC_ROWS_PROCESSED_PTR: u32 = 34;
pub const SQL_DESC_ROWVER: u32 = 35;
pub const SQL_DIAG_CURSOR_ROW_COUNT: i32 = -1249;
pub const SQL_DIAG_ROW_NUMBER: i32 = -1248;
pub const SQL_DIAG_COLUMN_NUMBER: i32 = -1247;
pub const SQL_DATE: u32 = 9;
pub const SQL_INTERVAL: u32 = 10;
pub const SQL_TIME: u32 = 10;
pub const SQL_TIMESTAMP: u32 = 11;
pub const SQL_LONGVARCHAR: i32 = -1;
pub const SQL_BINARY: i32 = -2;
pub const SQL_VARBINARY: i32 = -3;
pub const SQL_LONGVARBINARY: i32 = -4;
pub const SQL_BIGINT: i32 = -5;
pub const SQL_TINYINT: i32 = -6;
pub const SQL_BIT: i32 = -7;
pub const SQL_GUID: i32 = -11;
pub const SQL_CODE_YEAR: u32 = 1;
pub const SQL_CODE_MONTH: u32 = 2;
pub const SQL_CODE_DAY: u32 = 3;
pub const SQL_CODE_HOUR: u32 = 4;
pub const SQL_CODE_MINUTE: u32 = 5;
pub const SQL_CODE_SECOND: u32 = 6;
pub const SQL_CODE_YEAR_TO_MONTH: u32 = 7;
pub const SQL_CODE_DAY_TO_HOUR: u32 = 8;
pub const SQL_CODE_DAY_TO_MINUTE: u32 = 9;
pub const SQL_CODE_DAY_TO_SECOND: u32 = 10;
pub const SQL_CODE_HOUR_TO_MINUTE: u32 = 11;
pub const SQL_CODE_HOUR_TO_SECOND: u32 = 12;
pub const SQL_CODE_MINUTE_TO_SECOND: u32 = 13;
pub const SQL_INTERVAL_YEAR: u32 = 101;
pub const SQL_INTERVAL_MONTH: u32 = 102;
pub const SQL_INTERVAL_DAY: u32 = 103;
pub const SQL_INTERVAL_HOUR: u32 = 104;
pub const SQL_INTERVAL_MINUTE: u32 = 105;
pub const SQL_INTERVAL_SECOND: u32 = 106;
pub const SQL_INTERVAL_YEAR_TO_MONTH: u32 = 107;
pub const SQL_INTERVAL_DAY_TO_HOUR: u32 = 108;
pub const SQL_INTERVAL_DAY_TO_MINUTE: u32 = 109;
pub const SQL_INTERVAL_DAY_TO_SECOND: u32 = 110;
pub const SQL_INTERVAL_HOUR_TO_MINUTE: u32 = 111;
pub const SQL_INTERVAL_HOUR_TO_SECOND: u32 = 112;
pub const SQL_INTERVAL_MINUTE_TO_SECOND: u32 = 113;
pub const SQL_UNICODE: i32 = -8;
pub const SQL_UNICODE_VARCHAR: i32 = -9;
pub const SQL_UNICODE_LONGVARCHAR: i32 = -10;
pub const SQL_UNICODE_CHAR: i32 = -8;
pub const SQL_C_CHAR: u32 = 1;
pub const SQL_C_LONG: u32 = 4;
pub const SQL_C_SHORT: u32 = 5;
pub const SQL_C_FLOAT: u32 = 7;
pub const SQL_C_DOUBLE: u32 = 8;
pub const SQL_C_NUMERIC: u32 = 2;
pub const SQL_C_DEFAULT: u32 = 99;
pub const SQL_SIGNED_OFFSET: i32 = -20;
pub const SQL_UNSIGNED_OFFSET: i32 = -22;
pub const SQL_C_DATE: u32 = 9;
pub const SQL_C_TIME: u32 = 10;
pub const SQL_C_TIMESTAMP: u32 = 11;
pub const SQL_C_TYPE_DATE: u32 = 91;
pub const SQL_C_TYPE_TIME: u32 = 92;
pub const SQL_C_TYPE_TIMESTAMP: u32 = 93;
pub const SQL_C_INTERVAL_YEAR: u32 = 101;
pub const SQL_C_INTERVAL_MONTH: u32 = 102;
pub const SQL_C_INTERVAL_DAY: u32 = 103;
pub const SQL_C_INTERVAL_HOUR: u32 = 104;
pub const SQL_C_INTERVAL_MINUTE: u32 = 105;
pub const SQL_C_INTERVAL_SECOND: u32 = 106;
pub const SQL_C_INTERVAL_YEAR_TO_MONTH: u32 = 107;
pub const SQL_C_INTERVAL_DAY_TO_HOUR: u32 = 108;
pub const SQL_C_INTERVAL_DAY_TO_MINUTE: u32 = 109;
pub const SQL_C_INTERVAL_DAY_TO_SECOND: u32 = 110;
pub const SQL_C_INTERVAL_HOUR_TO_MINUTE: u32 = 111;
pub const SQL_C_INTERVAL_HOUR_TO_SECOND: u32 = 112;
pub const SQL_C_INTERVAL_MINUTE_TO_SECOND: u32 = 113;
pub const SQL_C_BINARY: i32 = -2;
pub const SQL_C_BIT: i32 = -7;
pub const SQL_C_SBIGINT: i32 = -25;
pub const SQL_C_UBIGINT: i32 = -27;
pub const SQL_C_TINYINT: i32 = -6;
pub const SQL_C_SLONG: i32 = -16;
pub const SQL_C_SSHORT: i32 = -15;
pub const SQL_C_STINYINT: i32 = -26;
pub const SQL_C_ULONG: i32 = -18;
pub const SQL_C_USHORT: i32 = -17;
pub const SQL_C_UTINYINT: i32 = -28;
pub const SQL_C_BOOKMARK: i32 = -27;
pub const SQL_C_GUID: i32 = -11;
pub const SQL_TYPE_NULL: u32 = 0;
pub const SQL_DRIVER_C_TYPE_BASE: u32 = 16384;
pub const SQL_DRIVER_SQL_TYPE_BASE: u32 = 16384;
pub const SQL_DRIVER_DESC_FIELD_BASE: u32 = 16384;
pub const SQL_DRIVER_DIAG_FIELD_BASE: u32 = 16384;
pub const SQL_DRIVER_INFO_TYPE_BASE: u32 = 16384;
pub const SQL_DRIVER_CONN_ATTR_BASE: u32 = 16384;
pub const SQL_DRIVER_STMT_ATTR_BASE: u32 = 16384;
pub const SQL_C_VARBOOKMARK: i32 = -2;
pub const SQL_NO_ROW_NUMBER: i32 = -1;
pub const SQL_NO_COLUMN_NUMBER: i32 = -1;
pub const SQL_DEFAULT_PARAM: i32 = -5;
pub const SQL_IGNORE: i32 = -6;
pub const SQL_COLUMN_IGNORE: i32 = -6;
pub const SQL_LEN_DATA_AT_EXEC_OFFSET: i32 = -100;
pub const SQL_LEN_BINARY_ATTR_OFFSET: i32 = -100;
pub const SQL_SETPARAM_VALUE_MAX: i32 = -1;
pub const SQL_COLUMN_COUNT: u32 = 0;
pub const SQL_COLUMN_NAME: u32 = 1;
pub const SQL_COLUMN_TYPE: u32 = 2;
pub const SQL_COLUMN_LENGTH: u32 = 3;
pub const SQL_COLUMN_PRECISION: u32 = 4;
pub const SQL_COLUMN_SCALE: u32 = 5;
pub const SQL_COLUMN_DISPLAY_SIZE: u32 = 6;
pub const SQL_COLUMN_NULLABLE: u32 = 7;
pub const SQL_COLUMN_UNSIGNED: u32 = 8;
pub const SQL_COLUMN_MONEY: u32 = 9;
pub const SQL_COLUMN_UPDATABLE: u32 = 10;
pub const SQL_COLUMN_AUTO_INCREMENT: u32 = 11;
pub const SQL_COLUMN_CASE_SENSITIVE: u32 = 12;
pub const SQL_COLUMN_SEARCHABLE: u32 = 13;
pub const SQL_COLUMN_TYPE_NAME: u32 = 14;
pub const SQL_COLUMN_TABLE_NAME: u32 = 15;
pub const SQL_COLUMN_OWNER_NAME: u32 = 16;
pub const SQL_COLUMN_QUALIFIER_NAME: u32 = 17;
pub const SQL_COLUMN_LABEL: u32 = 18;
pub const SQL_COLATT_OPT_MAX: u32 = 18;
pub const SQL_COLATT_OPT_MIN: u32 = 0;
pub const SQL_ATTR_READONLY: u32 = 0;
pub const SQL_ATTR_WRITE: u32 = 1;
pub const SQL_ATTR_READWRITE_UNKNOWN: u32 = 2;
pub const SQL_UNSEARCHABLE: u32 = 0;
pub const SQL_LIKE_ONLY: u32 = 1;
pub const SQL_ALL_EXCEPT_LIKE: u32 = 2;
pub const SQL_SEARCHABLE: u32 = 3;
pub const SQL_PRED_SEARCHABLE: u32 = 3;
pub const SQL_NO_TOTAL: i32 = -4;
pub const SQL_API_SQLALLOCHANDLESTD: u32 = 73;
pub const SQL_API_SQLBULKOPERATIONS: u32 = 24;
pub const SQL_API_SQLBINDPARAMETER: u32 = 72;
pub const SQL_API_SQLBROWSECONNECT: u32 = 55;
pub const SQL_API_SQLCOLATTRIBUTES: u32 = 6;
pub const SQL_API_SQLCOLUMNPRIVILEGES: u32 = 56;
pub const SQL_API_SQLDESCRIBEPARAM: u32 = 58;
pub const SQL_API_SQLDRIVERCONNECT: u32 = 41;
pub const SQL_API_SQLDRIVERS: u32 = 71;
pub const SQL_API_SQLEXTENDEDFETCH: u32 = 59;
pub const SQL_API_SQLFOREIGNKEYS: u32 = 60;
pub const SQL_API_SQLMORERESULTS: u32 = 61;
pub const SQL_API_SQLNATIVESQL: u32 = 62;
pub const SQL_API_SQLNUMPARAMS: u32 = 63;
pub const SQL_API_SQLPARAMOPTIONS: u32 = 64;
pub const SQL_API_SQLPRIMARYKEYS: u32 = 65;
pub const SQL_API_SQLPROCEDURECOLUMNS: u32 = 66;
pub const SQL_API_SQLPROCEDURES: u32 = 67;
pub const SQL_API_SQLSETPOS: u32 = 68;
pub const SQL_API_SQLSETSCROLLOPTIONS: u32 = 69;
pub const SQL_API_SQLTABLEPRIVILEGES: u32 = 70;
pub const SQL_API_ALL_FUNCTIONS: u32 = 0;
pub const SQL_API_LOADBYORDINAL: u32 = 199;
pub const SQL_API_ODBC3_ALL_FUNCTIONS: u32 = 999;
pub const SQL_API_ODBC3_ALL_FUNCTIONS_SIZE: u32 = 250;
pub const SQL_INFO_FIRST: u32 = 0;
pub const SQL_ACTIVE_CONNECTIONS: u32 = 0;
pub const SQL_ACTIVE_STATEMENTS: u32 = 1;
pub const SQL_DRIVER_HDBC: u32 = 3;
pub const SQL_DRIVER_HENV: u32 = 4;
pub const SQL_DRIVER_HSTMT: u32 = 5;
pub const SQL_DRIVER_NAME: u32 = 6;
pub const SQL_DRIVER_VER: u32 = 7;
pub const SQL_ODBC_API_CONFORMANCE: u32 = 9;
pub const SQL_ODBC_VER: u32 = 10;
pub const SQL_ROW_UPDATES: u32 = 11;
pub const SQL_ODBC_SAG_CLI_CONFORMANCE: u32 = 12;
pub const SQL_ODBC_SQL_CONFORMANCE: u32 = 15;
pub const SQL_PROCEDURES: u32 = 21;
pub const SQL_CONCAT_NULL_BEHAVIOR: u32 = 22;
pub const SQL_CURSOR_ROLLBACK_BEHAVIOR: u32 = 24;
pub const SQL_EXPRESSIONS_IN_ORDERBY: u32 = 27;
pub const SQL_MAX_OWNER_NAME_LEN: u32 = 32;
pub const SQL_MAX_PROCEDURE_NAME_LEN: u32 = 33;
pub const SQL_MAX_QUALIFIER_NAME_LEN: u32 = 34;
pub const SQL_MULT_RESULT_SETS: u32 = 36;
pub const SQL_MULTIPLE_ACTIVE_TXN: u32 = 37;
pub const SQL_OUTER_JOINS: u32 = 38;
pub const SQL_OWNER_TERM: u32 = 39;
pub const SQL_PROCEDURE_TERM: u32 = 40;
pub const SQL_QUALIFIER_NAME_SEPARATOR: u32 = 41;
pub const SQL_QUALIFIER_TERM: u32 = 42;
pub const SQL_SCROLL_OPTIONS: u32 = 44;
pub const SQL_TABLE_TERM: u32 = 45;
pub const SQL_CONVERT_FUNCTIONS: u32 = 48;
pub const SQL_NUMERIC_FUNCTIONS: u32 = 49;
pub const SQL_STRING_FUNCTIONS: u32 = 50;
pub const SQL_SYSTEM_FUNCTIONS: u32 = 51;
pub const SQL_TIMEDATE_FUNCTIONS: u32 = 52;
pub const SQL_CONVERT_BIGINT: u32 = 53;
pub const SQL_CONVERT_BINARY: u32 = 54;
pub const SQL_CONVERT_BIT: u32 = 55;
pub const SQL_CONVERT_CHAR: u32 = 56;
pub const SQL_CONVERT_DATE: u32 = 57;
pub const SQL_CONVERT_DECIMAL: u32 = 58;
pub const SQL_CONVERT_DOUBLE: u32 = 59;
pub const SQL_CONVERT_FLOAT: u32 = 60;
pub const SQL_CONVERT_INTEGER: u32 = 61;
pub const SQL_CONVERT_LONGVARCHAR: u32 = 62;
pub const SQL_CONVERT_NUMERIC: u32 = 63;
pub const SQL_CONVERT_REAL: u32 = 64;
pub const SQL_CONVERT_SMALLINT: u32 = 65;
pub const SQL_CONVERT_TIME: u32 = 66;
pub const SQL_CONVERT_TIMESTAMP: u32 = 67;
pub const SQL_CONVERT_TINYINT: u32 = 68;
pub const SQL_CONVERT_VARBINARY: u32 = 69;
pub const SQL_CONVERT_VARCHAR: u32 = 70;
pub const SQL_CONVERT_LONGVARBINARY: u32 = 71;
pub const SQL_ODBC_SQL_OPT_IEF: u32 = 73;
pub const SQL_CORRELATION_NAME: u32 = 74;
pub const SQL_NON_NULLABLE_COLUMNS: u32 = 75;
pub const SQL_DRIVER_HLIB: u32 = 76;
pub const SQL_DRIVER_ODBC_VER: u32 = 77;
pub const SQL_LOCK_TYPES: u32 = 78;
pub const SQL_POS_OPERATIONS: u32 = 79;
pub const SQL_POSITIONED_STATEMENTS: u32 = 80;
pub const SQL_BOOKMARK_PERSISTENCE: u32 = 82;
pub const SQL_STATIC_SENSITIVITY: u32 = 83;
pub const SQL_FILE_USAGE: u32 = 84;
pub const SQL_COLUMN_ALIAS: u32 = 87;
pub const SQL_GROUP_BY: u32 = 88;
pub const SQL_KEYWORDS: u32 = 89;
pub const SQL_OWNER_USAGE: u32 = 91;
pub const SQL_QUALIFIER_USAGE: u32 = 92;
pub const SQL_QUOTED_IDENTIFIER_CASE: u32 = 93;
pub const SQL_SUBQUERIES: u32 = 95;
pub const SQL_UNION: u32 = 96;
pub const SQL_MAX_ROW_SIZE_INCLUDES_LONG: u32 = 103;
pub const SQL_MAX_CHAR_LITERAL_LEN: u32 = 108;
pub const SQL_TIMEDATE_ADD_INTERVALS: u32 = 109;
pub const SQL_TIMEDATE_DIFF_INTERVALS: u32 = 110;
pub const SQL_NEED_LONG_DATA_LEN: u32 = 111;
pub const SQL_MAX_BINARY_LITERAL_LEN: u32 = 112;
pub const SQL_LIKE_ESCAPE_CLAUSE: u32 = 113;
pub const SQL_QUALIFIER_LOCATION: u32 = 114;
pub const SQL_ACTIVE_ENVIRONMENTS: u32 = 116;
pub const SQL_ALTER_DOMAIN: u32 = 117;
pub const SQL_SQL_CONFORMANCE: u32 = 118;
pub const SQL_DATETIME_LITERALS: u32 = 119;
pub const SQL_ASYNC_MODE: u32 = 10021;
pub const SQL_BATCH_ROW_COUNT: u32 = 120;
pub const SQL_BATCH_SUPPORT: u32 = 121;
pub const SQL_CATALOG_LOCATION: u32 = 114;
pub const SQL_CATALOG_NAME_SEPARATOR: u32 = 41;
pub const SQL_CATALOG_TERM: u32 = 42;
pub const SQL_CATALOG_USAGE: u32 = 92;
pub const SQL_CONVERT_WCHAR: u32 = 122;
pub const SQL_CONVERT_INTERVAL_DAY_TIME: u32 = 123;
pub const SQL_CONVERT_INTERVAL_YEAR_MONTH: u32 = 124;
pub const SQL_CONVERT_WLONGVARCHAR: u32 = 125;
pub const SQL_CONVERT_WVARCHAR: u32 = 126;
pub const SQL_CREATE_ASSERTION: u32 = 127;
pub const SQL_CREATE_CHARACTER_SET: u32 = 128;
pub const SQL_CREATE_COLLATION: u32 = 129;
pub const SQL_CREATE_DOMAIN: u32 = 130;
pub const SQL_CREATE_SCHEMA: u32 = 131;
pub const SQL_CREATE_TABLE: u32 = 132;
pub const SQL_CREATE_TRANSLATION: u32 = 133;
pub const SQL_CREATE_VIEW: u32 = 134;
pub const SQL_DRIVER_HDESC: u32 = 135;
pub const SQL_DROP_ASSERTION: u32 = 136;
pub const SQL_DROP_CHARACTER_SET: u32 = 137;
pub const SQL_DROP_COLLATION: u32 = 138;
pub const SQL_DROP_DOMAIN: u32 = 139;
pub const SQL_DROP_SCHEMA: u32 = 140;
pub const SQL_DROP_TABLE: u32 = 141;
pub const SQL_DROP_TRANSLATION: u32 = 142;
pub const SQL_DROP_VIEW: u32 = 143;
pub const SQL_DYNAMIC_CURSOR_ATTRIBUTES1: u32 = 144;
pub const SQL_DYNAMIC_CURSOR_ATTRIBUTES2: u32 = 145;
pub const SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1: u32 = 146;
pub const SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2: u32 = 147;
pub const SQL_INDEX_KEYWORDS: u32 = 148;
pub const SQL_INFO_SCHEMA_VIEWS: u32 = 149;
pub const SQL_KEYSET_CURSOR_ATTRIBUTES1: u32 = 150;
pub const SQL_KEYSET_CURSOR_ATTRIBUTES2: u32 = 151;
pub const SQL_MAX_ASYNC_CONCURRENT_STATEMENTS: u32 = 10022;
pub const SQL_ODBC_INTERFACE_CONFORMANCE: u32 = 152;
pub const SQL_PARAM_ARRAY_ROW_COUNTS: u32 = 153;
pub const SQL_PARAM_ARRAY_SELECTS: u32 = 154;
pub const SQL_SCHEMA_TERM: u32 = 39;
pub const SQL_SCHEMA_USAGE: u32 = 91;
pub const SQL_SQL92_DATETIME_FUNCTIONS: u32 = 155;
pub const SQL_SQL92_FOREIGN_KEY_DELETE_RULE: u32 = 156;
pub const SQL_SQL92_FOREIGN_KEY_UPDATE_RULE: u32 = 157;
pub const SQL_SQL92_GRANT: u32 = 158;
pub const SQL_SQL92_NUMERIC_VALUE_FUNCTIONS: u32 = 159;
pub const SQL_SQL92_PREDICATES: u32 = 160;
pub const SQL_SQL92_RELATIONAL_JOIN_OPERATORS: u32 = 161;
pub const SQL_SQL92_REVOKE: u32 = 162;
pub const SQL_SQL92_ROW_VALUE_CONSTRUCTOR: u32 = 163;
pub const SQL_SQL92_STRING_FUNCTIONS: u32 = 164;
pub const SQL_SQL92_VALUE_EXPRESSIONS: u32 = 165;
pub const SQL_STANDARD_CLI_CONFORMANCE: u32 = 166;
pub const SQL_STATIC_CURSOR_ATTRIBUTES1: u32 = 167;
pub const SQL_STATIC_CURSOR_ATTRIBUTES2: u32 = 168;
pub const SQL_AGGREGATE_FUNCTIONS: u32 = 169;
pub const SQL_DDL_INDEX: u32 = 170;
pub const SQL_DM_VER: u32 = 171;
pub const SQL_INSERT_STATEMENT: u32 = 172;
pub const SQL_CONVERT_GUID: u32 = 173;
pub const SQL_UNION_STATEMENT: u32 = 96;
pub const SQL_ASYNC_DBC_FUNCTIONS: u32 = 10023;
pub const SQL_DTC_TRANSITION_COST: u32 = 1750;
pub const SQL_AT_ADD_COLUMN_SINGLE: u32 = 32;
pub const SQL_AT_ADD_COLUMN_DEFAULT: u32 = 64;
pub const SQL_AT_ADD_COLUMN_COLLATION: u32 = 128;
pub const SQL_AT_SET_COLUMN_DEFAULT: u32 = 256;
pub const SQL_AT_DROP_COLUMN_DEFAULT: u32 = 512;
pub const SQL_AT_DROP_COLUMN_CASCADE: u32 = 1024;
pub const SQL_AT_DROP_COLUMN_RESTRICT: u32 = 2048;
pub const SQL_AT_ADD_TABLE_CONSTRAINT: u32 = 4096;
pub const SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE: u32 = 8192;
pub const SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT: u32 = 16384;
pub const SQL_AT_CONSTRAINT_NAME_DEFINITION: u32 = 32768;
pub const SQL_AT_CONSTRAINT_INITIALLY_DEFERRED: u32 = 65536;
pub const SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE: u32 = 131072;
pub const SQL_AT_CONSTRAINT_DEFERRABLE: u32 = 262144;
pub const SQL_AT_CONSTRAINT_NON_DEFERRABLE: u32 = 524288;
pub const SQL_CVT_CHAR: u32 = 1;
pub const SQL_CVT_NUMERIC: u32 = 2;
pub const SQL_CVT_DECIMAL: u32 = 4;
pub const SQL_CVT_INTEGER: u32 = 8;
pub const SQL_CVT_SMALLINT: u32 = 16;
pub const SQL_CVT_FLOAT: u32 = 32;
pub const SQL_CVT_REAL: u32 = 64;
pub const SQL_CVT_DOUBLE: u32 = 128;
pub const SQL_CVT_VARCHAR: u32 = 256;
pub const SQL_CVT_LONGVARCHAR: u32 = 512;
pub const SQL_CVT_BINARY: u32 = 1024;
pub const SQL_CVT_VARBINARY: u32 = 2048;
pub const SQL_CVT_BIT: u32 = 4096;
pub const SQL_CVT_TINYINT: u32 = 8192;
pub const SQL_CVT_BIGINT: u32 = 16384;
pub const SQL_CVT_DATE: u32 = 32768;
pub const SQL_CVT_TIME: u32 = 65536;
pub const SQL_CVT_TIMESTAMP: u32 = 131072;
pub const SQL_CVT_LONGVARBINARY: u32 = 262144;
pub const SQL_CVT_INTERVAL_YEAR_MONTH: u32 = 524288;
pub const SQL_CVT_INTERVAL_DAY_TIME: u32 = 1048576;
pub const SQL_CVT_WCHAR: u32 = 2097152;
pub const SQL_CVT_WLONGVARCHAR: u32 = 4194304;
pub const SQL_CVT_WVARCHAR: u32 = 8388608;
pub const SQL_CVT_GUID: u32 = 16777216;
pub const SQL_FN_CVT_CONVERT: u32 = 1;
pub const SQL_FN_CVT_CAST: u32 = 2;
pub const SQL_FN_STR_CONCAT: u32 = 1;
pub const SQL_FN_STR_INSERT: u32 = 2;
pub const SQL_FN_STR_LEFT: u32 = 4;
pub const SQL_FN_STR_LTRIM: u32 = 8;
pub const SQL_FN_STR_LENGTH: u32 = 16;
pub const SQL_FN_STR_LOCATE: u32 = 32;
pub const SQL_FN_STR_LCASE: u32 = 64;
pub const SQL_FN_STR_REPEAT: u32 = 128;
pub const SQL_FN_STR_REPLACE: u32 = 256;
pub const SQL_FN_STR_RIGHT: u32 = 512;
pub const SQL_FN_STR_RTRIM: u32 = 1024;
pub const SQL_FN_STR_SUBSTRING: u32 = 2048;
pub const SQL_FN_STR_UCASE: u32 = 4096;
pub const SQL_FN_STR_ASCII: u32 = 8192;
pub const SQL_FN_STR_CHAR: u32 = 16384;
pub const SQL_FN_STR_DIFFERENCE: u32 = 32768;
pub const SQL_FN_STR_LOCATE_2: u32 = 65536;
pub const SQL_FN_STR_SOUNDEX: u32 = 131072;
pub const SQL_FN_STR_SPACE: u32 = 262144;
pub const SQL_FN_STR_BIT_LENGTH: u32 = 524288;
pub const SQL_FN_STR_CHAR_LENGTH: u32 = 1048576;
pub const SQL_FN_STR_CHARACTER_LENGTH: u32 = 2097152;
pub const SQL_FN_STR_OCTET_LENGTH: u32 = 4194304;
pub const SQL_FN_STR_POSITION: u32 = 8388608;
pub const SQL_SSF_CONVERT: u32 = 1;
pub const SQL_SSF_LOWER: u32 = 2;
pub const SQL_SSF_UPPER: u32 = 4;
pub const SQL_SSF_SUBSTRING: u32 = 8;
pub const SQL_SSF_TRANSLATE: u32 = 16;
pub const SQL_SSF_TRIM_BOTH: u32 = 32;
pub const SQL_SSF_TRIM_LEADING: u32 = 64;
pub const SQL_SSF_TRIM_TRAILING: u32 = 128;
pub const SQL_FN_NUM_ABS: u32 = 1;
pub const SQL_FN_NUM_ACOS: u32 = 2;
pub const SQL_FN_NUM_ASIN: u32 = 4;
pub const SQL_FN_NUM_ATAN: u32 = 8;
pub const SQL_FN_NUM_ATAN2: u32 = 16;
pub const SQL_FN_NUM_CEILING: u32 = 32;
pub const SQL_FN_NUM_COS: u32 = 64;
pub const SQL_FN_NUM_COT: u32 = 128;
pub const SQL_FN_NUM_EXP: u32 = 256;
pub const SQL_FN_NUM_FLOOR: u32 = 512;
pub const SQL_FN_NUM_LOG: u32 = 1024;
pub const SQL_FN_NUM_MOD: u32 = 2048;
pub const SQL_FN_NUM_SIGN: u32 = 4096;
pub const SQL_FN_NUM_SIN: u32 = 8192;
pub const SQL_FN_NUM_SQRT: u32 = 16384;
pub const SQL_FN_NUM_TAN: u32 = 32768;
pub const SQL_FN_NUM_PI: u32 = 65536;
pub const SQL_FN_NUM_RAND: u32 = 131072;
pub const SQL_FN_NUM_DEGREES: u32 = 262144;
pub const SQL_FN_NUM_LOG10: u32 = 524288;
pub const SQL_FN_NUM_POWER: u32 = 1048576;
pub const SQL_FN_NUM_RADIANS: u32 = 2097152;
pub const SQL_FN_NUM_ROUND: u32 = 4194304;
pub const SQL_FN_NUM_TRUNCATE: u32 = 8388608;
pub const SQL_SNVF_BIT_LENGTH: u32 = 1;
pub const SQL_SNVF_CHAR_LENGTH: u32 = 2;
pub const SQL_SNVF_CHARACTER_LENGTH: u32 = 4;
pub const SQL_SNVF_EXTRACT: u32 = 8;
pub const SQL_SNVF_OCTET_LENGTH: u32 = 16;
pub const SQL_SNVF_POSITION: u32 = 32;
pub const SQL_FN_TD_NOW: u32 = 1;
pub const SQL_FN_TD_CURDATE: u32 = 2;
pub const SQL_FN_TD_DAYOFMONTH: u32 = 4;
pub const SQL_FN_TD_DAYOFWEEK: u32 = 8;
pub const SQL_FN_TD_DAYOFYEAR: u32 = 16;
pub const SQL_FN_TD_MONTH: u32 = 32;
pub const SQL_FN_TD_QUARTER: u32 = 64;
pub const SQL_FN_TD_WEEK: u32 = 128;
pub const SQL_FN_TD_YEAR: u32 = 256;
pub const SQL_FN_TD_CURTIME: u32 = 512;
pub const SQL_FN_TD_HOUR: u32 = 1024;
pub const SQL_FN_TD_MINUTE: u32 = 2048;
pub const SQL_FN_TD_SECOND: u32 = 4096;
pub const SQL_FN_TD_TIMESTAMPADD: u32 = 8192;
pub const SQL_FN_TD_TIMESTAMPDIFF: u32 = 16384;
pub const SQL_FN_TD_DAYNAME: u32 = 32768;
pub const SQL_FN_TD_MONTHNAME: u32 = 65536;
pub const SQL_FN_TD_CURRENT_DATE: u32 = 131072;
pub const SQL_FN_TD_CURRENT_TIME: u32 = 262144;
pub const SQL_FN_TD_CURRENT_TIMESTAMP: u32 = 524288;
pub const SQL_FN_TD_EXTRACT: u32 = 1048576;
pub const SQL_SDF_CURRENT_DATE: u32 = 1;
pub const SQL_SDF_CURRENT_TIME: u32 = 2;
pub const SQL_SDF_CURRENT_TIMESTAMP: u32 = 4;
pub const SQL_FN_SYS_USERNAME: u32 = 1;
pub const SQL_FN_SYS_DBNAME: u32 = 2;
pub const SQL_FN_SYS_IFNULL: u32 = 4;
pub const SQL_FN_TSI_FRAC_SECOND: u32 = 1;
pub const SQL_FN_TSI_SECOND: u32 = 2;
pub const SQL_FN_TSI_MINUTE: u32 = 4;
pub const SQL_FN_TSI_HOUR: u32 = 8;
pub const SQL_FN_TSI_DAY: u32 = 16;
pub const SQL_FN_TSI_WEEK: u32 = 32;
pub const SQL_FN_TSI_MONTH: u32 = 64;
pub const SQL_FN_TSI_QUARTER: u32 = 128;
pub const SQL_FN_TSI_YEAR: u32 = 256;
pub const SQL_CA1_NEXT: u32 = 1;
pub const SQL_CA1_ABSOLUTE: u32 = 2;
pub const SQL_CA1_RELATIVE: u32 = 4;
pub const SQL_CA1_BOOKMARK: u32 = 8;
pub const SQL_CA1_LOCK_NO_CHANGE: u32 = 64;
pub const SQL_CA1_LOCK_EXCLUSIVE: u32 = 128;
pub const SQL_CA1_LOCK_UNLOCK: u32 = 256;
pub const SQL_CA1_POS_POSITION: u32 = 512;
pub const SQL_CA1_POS_UPDATE: u32 = 1024;
pub const SQL_CA1_POS_DELETE: u32 = 2048;
pub const SQL_CA1_POS_REFRESH: u32 = 4096;
pub const SQL_CA1_POSITIONED_UPDATE: u32 = 8192;
pub const SQL_CA1_POSITIONED_DELETE: u32 = 16384;
pub const SQL_CA1_SELECT_FOR_UPDATE: u32 = 32768;
pub const SQL_CA1_BULK_ADD: u32 = 65536;
pub const SQL_CA1_BULK_UPDATE_BY_BOOKMARK: u32 = 131072;
pub const SQL_CA1_BULK_DELETE_BY_BOOKMARK: u32 = 262144;
pub const SQL_CA1_BULK_FETCH_BY_BOOKMARK: u32 = 524288;
pub const SQL_CA2_READ_ONLY_CONCURRENCY: u32 = 1;
pub const SQL_CA2_LOCK_CONCURRENCY: u32 = 2;
pub const SQL_CA2_OPT_ROWVER_CONCURRENCY: u32 = 4;
pub const SQL_CA2_OPT_VALUES_CONCURRENCY: u32 = 8;
pub const SQL_CA2_SENSITIVITY_ADDITIONS: u32 = 16;
pub const SQL_CA2_SENSITIVITY_DELETIONS: u32 = 32;
pub const SQL_CA2_SENSITIVITY_UPDATES: u32 = 64;
pub const SQL_CA2_MAX_ROWS_SELECT: u32 = 128;
pub const SQL_CA2_MAX_ROWS_INSERT: u32 = 256;
pub const SQL_CA2_MAX_ROWS_DELETE: u32 = 512;
pub const SQL_CA2_MAX_ROWS_UPDATE: u32 = 1024;
pub const SQL_CA2_MAX_ROWS_CATALOG: u32 = 2048;
pub const SQL_CA2_MAX_ROWS_AFFECTS_ALL: u32 = 3968;
pub const SQL_CA2_CRC_EXACT: u32 = 4096;
pub const SQL_CA2_CRC_APPROXIMATE: u32 = 8192;
pub const SQL_CA2_SIMULATE_NON_UNIQUE: u32 = 16384;
pub const SQL_CA2_SIMULATE_TRY_UNIQUE: u32 = 32768;
pub const SQL_CA2_SIMULATE_UNIQUE: u32 = 65536;
pub const SQL_OAC_NONE: u32 = 0;
pub const SQL_OAC_LEVEL1: u32 = 1;
pub const SQL_OAC_LEVEL2: u32 = 2;
pub const SQL_OSCC_NOT_COMPLIANT: u32 = 0;
pub const SQL_OSCC_COMPLIANT: u32 = 1;
pub const SQL_OSC_MINIMUM: u32 = 0;
pub const SQL_OSC_CORE: u32 = 1;
pub const SQL_OSC_EXTENDED: u32 = 2;
pub const SQL_CB_NULL: u32 = 0;
pub const SQL_CB_NON_NULL: u32 = 1;
pub const SQL_SO_FORWARD_ONLY: u32 = 1;
pub const SQL_SO_KEYSET_DRIVEN: u32 = 2;
pub const SQL_SO_DYNAMIC: u32 = 4;
pub const SQL_SO_MIXED: u32 = 8;
pub const SQL_SO_STATIC: u32 = 16;
pub const SQL_FD_FETCH_BOOKMARK: u32 = 128;
pub const SQL_CN_NONE: u32 = 0;
pub const SQL_CN_DIFFERENT: u32 = 1;
pub const SQL_CN_ANY: u32 = 2;
pub const SQL_NNC_NULL: u32 = 0;
pub const SQL_NNC_NON_NULL: u32 = 1;
pub const SQL_NC_START: u32 = 2;
pub const SQL_NC_END: u32 = 4;
pub const SQL_FILE_NOT_SUPPORTED: u32 = 0;
pub const SQL_FILE_TABLE: u32 = 1;
pub const SQL_FILE_QUALIFIER: u32 = 2;
pub const SQL_FILE_CATALOG: u32 = 2;
pub const SQL_GD_BLOCK: u32 = 4;
pub const SQL_GD_BOUND: u32 = 8;
pub const SQL_GD_OUTPUT_PARAMS: u32 = 16;
pub const SQL_PS_POSITIONED_DELETE: u32 = 1;
pub const SQL_PS_POSITIONED_UPDATE: u32 = 2;
pub const SQL_PS_SELECT_FOR_UPDATE: u32 = 4;
pub const SQL_GB_NOT_SUPPORTED: u32 = 0;
pub const SQL_GB_GROUP_BY_EQUALS_SELECT: u32 = 1;
pub const SQL_GB_GROUP_BY_CONTAINS_SELECT: u32 = 2;
pub const SQL_GB_NO_RELATION: u32 = 3;
pub const SQL_GB_COLLATE: u32 = 4;
pub const SQL_OU_DML_STATEMENTS: u32 = 1;
pub const SQL_OU_PROCEDURE_INVOCATION: u32 = 2;
pub const SQL_OU_TABLE_DEFINITION: u32 = 4;
pub const SQL_OU_INDEX_DEFINITION: u32 = 8;
pub const SQL_OU_PRIVILEGE_DEFINITION: u32 = 16;
pub const SQL_SU_DML_STATEMENTS: u32 = 1;
pub const SQL_SU_PROCEDURE_INVOCATION: u32 = 2;
pub const SQL_SU_TABLE_DEFINITION: u32 = 4;
pub const SQL_SU_INDEX_DEFINITION: u32 = 8;
pub const SQL_SU_PRIVILEGE_DEFINITION: u32 = 16;
pub const SQL_QU_DML_STATEMENTS: u32 = 1;
pub const SQL_QU_PROCEDURE_INVOCATION: u32 = 2;
pub const SQL_QU_TABLE_DEFINITION: u32 = 4;
pub const SQL_QU_INDEX_DEFINITION: u32 = 8;
pub const SQL_QU_PRIVILEGE_DEFINITION: u32 = 16;
pub const SQL_CU_DML_STATEMENTS: u32 = 1;
pub const SQL_CU_PROCEDURE_INVOCATION: u32 = 2;
pub const SQL_CU_TABLE_DEFINITION: u32 = 4;
pub const SQL_CU_INDEX_DEFINITION: u32 = 8;
pub const SQL_CU_PRIVILEGE_DEFINITION: u32 = 16;
pub const SQL_SQ_COMPARISON: u32 = 1;
pub const SQL_SQ_EXISTS: u32 = 2;
pub const SQL_SQ_IN: u32 = 4;
pub const SQL_SQ_QUANTIFIED: u32 = 8;
pub const SQL_SQ_CORRELATED_SUBQUERIES: u32 = 16;
pub const SQL_U_UNION: u32 = 1;
pub const SQL_U_UNION_ALL: u32 = 2;
pub const SQL_BP_CLOSE: u32 = 1;
pub const SQL_BP_DELETE: u32 = 2;
pub const SQL_BP_DROP: u32 = 4;
pub const SQL_BP_TRANSACTION: u32 = 8;
pub const SQL_BP_UPDATE: u32 = 16;
pub const SQL_BP_OTHER_HSTMT: u32 = 32;
pub const SQL_BP_SCROLL: u32 = 64;
pub const SQL_SS_ADDITIONS: u32 = 1;
pub const SQL_SS_DELETIONS: u32 = 2;
pub const SQL_SS_UPDATES: u32 = 4;
pub const SQL_CV_CREATE_VIEW: u32 = 1;
pub const SQL_CV_CHECK_OPTION: u32 = 2;
pub const SQL_CV_CASCADED: u32 = 4;
pub const SQL_CV_LOCAL: u32 = 8;
pub const SQL_LCK_NO_CHANGE: u32 = 1;
pub const SQL_LCK_EXCLUSIVE: u32 = 2;
pub const SQL_LCK_UNLOCK: u32 = 4;
pub const SQL_POS_POSITION: u32 = 1;
pub const SQL_POS_REFRESH: u32 = 2;
pub const SQL_POS_UPDATE: u32 = 4;
pub const SQL_POS_DELETE: u32 = 8;
pub const SQL_POS_ADD: u32 = 16;
pub const SQL_QL_START: u32 = 1;
pub const SQL_QL_END: u32 = 2;
pub const SQL_AF_AVG: u32 = 1;
pub const SQL_AF_COUNT: u32 = 2;
pub const SQL_AF_MAX: u32 = 4;
pub const SQL_AF_MIN: u32 = 8;
pub const SQL_AF_SUM: u32 = 16;
pub const SQL_AF_DISTINCT: u32 = 32;
pub const SQL_AF_ALL: u32 = 64;
pub const SQL_SC_SQL92_ENTRY: u32 = 1;
pub const SQL_SC_FIPS127_2_TRANSITIONAL: u32 = 2;
pub const SQL_SC_SQL92_INTERMEDIATE: u32 = 4;
pub const SQL_SC_SQL92_FULL: u32 = 8;
pub const SQL_DL_SQL92_DATE: u32 = 1;
pub const SQL_DL_SQL92_TIME: u32 = 2;
pub const SQL_DL_SQL92_TIMESTAMP: u32 = 4;
pub const SQL_DL_SQL92_INTERVAL_YEAR: u32 = 8;
pub const SQL_DL_SQL92_INTERVAL_MONTH: u32 = 16;
pub const SQL_DL_SQL92_INTERVAL_DAY: u32 = 32;
pub const SQL_DL_SQL92_INTERVAL_HOUR: u32 = 64;
pub const SQL_DL_SQL92_INTERVAL_MINUTE: u32 = 128;
pub const SQL_DL_SQL92_INTERVAL_SECOND: u32 = 256;
pub const SQL_DL_SQL92_INTERVAL_YEAR_TO_MONTH: u32 = 512;
pub const SQL_DL_SQL92_INTERVAL_DAY_TO_HOUR: u32 = 1024;
pub const SQL_DL_SQL92_INTERVAL_DAY_TO_MINUTE: u32 = 2048;
pub const SQL_DL_SQL92_INTERVAL_DAY_TO_SECOND: u32 = 4096;
pub const SQL_DL_SQL92_INTERVAL_HOUR_TO_MINUTE: u32 = 8192;
pub const SQL_DL_SQL92_INTERVAL_HOUR_TO_SECOND: u32 = 16384;
pub const SQL_DL_SQL92_INTERVAL_MINUTE_TO_SECOND: u32 = 32768;
pub const SQL_CL_START: u32 = 1;
pub const SQL_CL_END: u32 = 2;
pub const SQL_BRC_PROCEDURES: u32 = 1;
pub const SQL_BRC_EXPLICIT: u32 = 2;
pub const SQL_BRC_ROLLED_UP: u32 = 4;
pub const SQL_BS_SELECT_EXPLICIT: u32 = 1;
pub const SQL_BS_ROW_COUNT_EXPLICIT: u32 = 2;
pub const SQL_BS_SELECT_PROC: u32 = 4;
pub const SQL_BS_ROW_COUNT_PROC: u32 = 8;
pub const SQL_PARC_BATCH: u32 = 1;
pub const SQL_PARC_NO_BATCH: u32 = 2;
pub const SQL_PAS_BATCH: u32 = 1;
pub const SQL_PAS_NO_BATCH: u32 = 2;
pub const SQL_PAS_NO_SELECT: u32 = 3;
pub const SQL_IK_NONE: u32 = 0;
pub const SQL_IK_ASC: u32 = 1;
pub const SQL_IK_DESC: u32 = 2;
pub const SQL_IK_ALL: u32 = 3;
pub const SQL_ISV_ASSERTIONS: u32 = 1;
pub const SQL_ISV_CHARACTER_SETS: u32 = 2;
pub const SQL_ISV_CHECK_CONSTRAINTS: u32 = 4;
pub const SQL_ISV_COLLATIONS: u32 = 8;
pub const SQL_ISV_COLUMN_DOMAIN_USAGE: u32 = 16;
pub const SQL_ISV_COLUMN_PRIVILEGES: u32 = 32;
pub const SQL_ISV_COLUMNS: u32 = 64;
pub const SQL_ISV_CONSTRAINT_COLUMN_USAGE: u32 = 128;
pub const SQL_ISV_CONSTRAINT_TABLE_USAGE: u32 = 256;
pub const SQL_ISV_DOMAIN_CONSTRAINTS: u32 = 512;
pub const SQL_ISV_DOMAINS: u32 = 1024;
pub const SQL_ISV_KEY_COLUMN_USAGE: u32 = 2048;
pub const SQL_ISV_REFERENTIAL_CONSTRAINTS: u32 = 4096;
pub const SQL_ISV_SCHEMATA: u32 = 8192;
pub const SQL_ISV_SQL_LANGUAGES: u32 = 16384;
pub const SQL_ISV_TABLE_CONSTRAINTS: u32 = 32768;
pub const SQL_ISV_TABLE_PRIVILEGES: u32 = 65536;
pub const SQL_ISV_TABLES: u32 = 131072;
pub const SQL_ISV_TRANSLATIONS: u32 = 262144;
pub const SQL_ISV_USAGE_PRIVILEGES: u32 = 524288;
pub const SQL_ISV_VIEW_COLUMN_USAGE: u32 = 1048576;
pub const SQL_ISV_VIEW_TABLE_USAGE: u32 = 2097152;
pub const SQL_ISV_VIEWS: u32 = 4194304;
pub const SQL_AM_NONE: u32 = 0;
pub const SQL_AM_CONNECTION: u32 = 1;
pub const SQL_AM_STATEMENT: u32 = 2;
pub const SQL_AD_CONSTRAINT_NAME_DEFINITION: u32 = 1;
pub const SQL_AD_ADD_DOMAIN_CONSTRAINT: u32 = 2;
pub const SQL_AD_DROP_DOMAIN_CONSTRAINT: u32 = 4;
pub const SQL_AD_ADD_DOMAIN_DEFAULT: u32 = 8;
pub const SQL_AD_DROP_DOMAIN_DEFAULT: u32 = 16;
pub const SQL_AD_ADD_CONSTRAINT_INITIALLY_DEFERRED: u32 = 32;
pub const SQL_AD_ADD_CONSTRAINT_INITIALLY_IMMEDIATE: u32 = 64;
pub const SQL_AD_ADD_CONSTRAINT_DEFERRABLE: u32 = 128;
pub const SQL_AD_ADD_CONSTRAINT_NON_DEFERRABLE: u32 = 256;
pub const SQL_CS_CREATE_SCHEMA: u32 = 1;
pub const SQL_CS_AUTHORIZATION: u32 = 2;
pub const SQL_CS_DEFAULT_CHARACTER_SET: u32 = 4;
pub const SQL_CTR_CREATE_TRANSLATION: u32 = 1;
pub const SQL_CA_CREATE_ASSERTION: u32 = 1;
pub const SQL_CA_CONSTRAINT_INITIALLY_DEFERRED: u32 = 16;
pub const SQL_CA_CONSTRAINT_INITIALLY_IMMEDIATE: u32 = 32;
pub const SQL_CA_CONSTRAINT_DEFERRABLE: u32 = 64;
pub const SQL_CA_CONSTRAINT_NON_DEFERRABLE: u32 = 128;
pub const SQL_CCS_CREATE_CHARACTER_SET: u32 = 1;
pub const SQL_CCS_COLLATE_CLAUSE: u32 = 2;
pub const SQL_CCS_LIMITED_COLLATION: u32 = 4;
pub const SQL_CCOL_CREATE_COLLATION: u32 = 1;
pub const SQL_CDO_CREATE_DOMAIN: u32 = 1;
pub const SQL_CDO_DEFAULT: u32 = 2;
pub const SQL_CDO_CONSTRAINT: u32 = 4;
pub const SQL_CDO_COLLATION: u32 = 8;
pub const SQL_CDO_CONSTRAINT_NAME_DEFINITION: u32 = 16;
pub const SQL_CDO_CONSTRAINT_INITIALLY_DEFERRED: u32 = 32;
pub const SQL_CDO_CONSTRAINT_INITIALLY_IMMEDIATE: u32 = 64;
pub const SQL_CDO_CONSTRAINT_DEFERRABLE: u32 = 128;
pub const SQL_CDO_CONSTRAINT_NON_DEFERRABLE: u32 = 256;
pub const SQL_CT_CREATE_TABLE: u32 = 1;
pub const SQL_CT_COMMIT_PRESERVE: u32 = 2;
pub const SQL_CT_COMMIT_DELETE: u32 = 4;
pub const SQL_CT_GLOBAL_TEMPORARY: u32 = 8;
pub const SQL_CT_LOCAL_TEMPORARY: u32 = 16;
pub const SQL_CT_CONSTRAINT_INITIALLY_DEFERRED: u32 = 32;
pub const SQL_CT_CONSTRAINT_INITIALLY_IMMEDIATE: u32 = 64;
pub const SQL_CT_CONSTRAINT_DEFERRABLE: u32 = 128;
pub const SQL_CT_CONSTRAINT_NON_DEFERRABLE: u32 = 256;
pub const SQL_CT_COLUMN_CONSTRAINT: u32 = 512;
pub const SQL_CT_COLUMN_DEFAULT: u32 = 1024;
pub const SQL_CT_COLUMN_COLLATION: u32 = 2048;
pub const SQL_CT_TABLE_CONSTRAINT: u32 = 4096;
pub const SQL_CT_CONSTRAINT_NAME_DEFINITION: u32 = 8192;
pub const SQL_DI_CREATE_INDEX: u32 = 1;
pub const SQL_DI_DROP_INDEX: u32 = 2;
pub const SQL_DC_DROP_COLLATION: u32 = 1;
pub const SQL_DD_DROP_DOMAIN: u32 = 1;
pub const SQL_DD_RESTRICT: u32 = 2;
pub const SQL_DD_CASCADE: u32 = 4;
pub const SQL_DS_DROP_SCHEMA: u32 = 1;
pub const SQL_DS_RESTRICT: u32 = 2;
pub const SQL_DS_CASCADE: u32 = 4;
pub const SQL_DCS_DROP_CHARACTER_SET: u32 = 1;
pub const SQL_DA_DROP_ASSERTION: u32 = 1;
pub const SQL_DT_DROP_TABLE: u32 = 1;
pub const SQL_DT_RESTRICT: u32 = 2;
pub const SQL_DT_CASCADE: u32 = 4;
pub const SQL_DTR_DROP_TRANSLATION: u32 = 1;
pub const SQL_DV_DROP_VIEW: u32 = 1;
pub const SQL_DV_RESTRICT: u32 = 2;
pub const SQL_DV_CASCADE: u32 = 4;
pub const SQL_IS_INSERT_LITERALS: u32 = 1;
pub const SQL_IS_INSERT_SEARCHED: u32 = 2;
pub const SQL_IS_SELECT_INTO: u32 = 4;
pub const SQL_OIC_CORE: u32 = 1;
pub const SQL_OIC_LEVEL1: u32 = 2;
pub const SQL_OIC_LEVEL2: u32 = 3;
pub const SQL_SFKD_CASCADE: u32 = 1;
pub const SQL_SFKD_NO_ACTION: u32 = 2;
pub const SQL_SFKD_SET_DEFAULT: u32 = 4;
pub const SQL_SFKD_SET_NULL: u32 = 8;
pub const SQL_SFKU_CASCADE: u32 = 1;
pub const SQL_SFKU_NO_ACTION: u32 = 2;
pub const SQL_SFKU_SET_DEFAULT: u32 = 4;
pub const SQL_SFKU_SET_NULL: u32 = 8;
pub const SQL_SG_USAGE_ON_DOMAIN: u32 = 1;
pub const SQL_SG_USAGE_ON_CHARACTER_SET: u32 = 2;
pub const SQL_SG_USAGE_ON_COLLATION: u32 = 4;
pub const SQL_SG_USAGE_ON_TRANSLATION: u32 = 8;
pub const SQL_SG_WITH_GRANT_OPTION: u32 = 16;
pub const SQL_SG_DELETE_TABLE: u32 = 32;
pub const SQL_SG_INSERT_TABLE: u32 = 64;
pub const SQL_SG_INSERT_COLUMN: u32 = 128;
pub const SQL_SG_REFERENCES_TABLE: u32 = 256;
pub const SQL_SG_REFERENCES_COLUMN: u32 = 512;
pub const SQL_SG_SELECT_TABLE: u32 = 1024;
pub const SQL_SG_UPDATE_TABLE: u32 = 2048;
pub const SQL_SG_UPDATE_COLUMN: u32 = 4096;
pub const SQL_SP_EXISTS: u32 = 1;
pub const SQL_SP_ISNOTNULL: u32 = 2;
pub const SQL_SP_ISNULL: u32 = 4;
pub const SQL_SP_MATCH_FULL: u32 = 8;
pub const SQL_SP_MATCH_PARTIAL: u32 = 16;
pub const SQL_SP_MATCH_UNIQUE_FULL: u32 = 32;
pub const SQL_SP_MATCH_UNIQUE_PARTIAL: u32 = 64;
pub const SQL_SP_OVERLAPS: u32 = 128;
pub const SQL_SP_UNIQUE: u32 = 256;
pub const SQL_SP_LIKE: u32 = 512;
pub const SQL_SP_IN: u32 = 1024;
pub const SQL_SP_BETWEEN: u32 = 2048;
pub const SQL_SP_COMPARISON: u32 = 4096;
pub const SQL_SP_QUANTIFIED_COMPARISON: u32 = 8192;
pub const SQL_SRJO_CORRESPONDING_CLAUSE: u32 = 1;
pub const SQL_SRJO_CROSS_JOIN: u32 = 2;
pub const SQL_SRJO_EXCEPT_JOIN: u32 = 4;
pub const SQL_SRJO_FULL_OUTER_JOIN: u32 = 8;
pub const SQL_SRJO_INNER_JOIN: u32 = 16;
pub const SQL_SRJO_INTERSECT_JOIN: u32 = 32;
pub const SQL_SRJO_LEFT_OUTER_JOIN: u32 = 64;
pub const SQL_SRJO_NATURAL_JOIN: u32 = 128;
pub const SQL_SRJO_RIGHT_OUTER_JOIN: u32 = 256;
pub const SQL_SRJO_UNION_JOIN: u32 = 512;
pub const SQL_SR_USAGE_ON_DOMAIN: u32 = 1;
pub const SQL_SR_USAGE_ON_CHARACTER_SET: u32 = 2;
pub const SQL_SR_USAGE_ON_COLLATION: u32 = 4;
pub const SQL_SR_USAGE_ON_TRANSLATION: u32 = 8;
pub const SQL_SR_GRANT_OPTION_FOR: u32 = 16;
pub const SQL_SR_CASCADE: u32 = 32;
pub const SQL_SR_RESTRICT: u32 = 64;
pub const SQL_SR_DELETE_TABLE: u32 = 128;
pub const SQL_SR_INSERT_TABLE: u32 = 256;
pub const SQL_SR_INSERT_COLUMN: u32 = 512;
pub const SQL_SR_REFERENCES_TABLE: u32 = 1024;
pub const SQL_SR_REFERENCES_COLUMN: u32 = 2048;
pub const SQL_SR_SELECT_TABLE: u32 = 4096;
pub const SQL_SR_UPDATE_TABLE: u32 = 8192;
pub const SQL_SR_UPDATE_COLUMN: u32 = 16384;
pub const SQL_SRVC_VALUE_EXPRESSION: u32 = 1;
pub const SQL_SRVC_NULL: u32 = 2;
pub const SQL_SRVC_DEFAULT: u32 = 4;
pub const SQL_SRVC_ROW_SUBQUERY: u32 = 8;
pub const SQL_SVE_CASE: u32 = 1;
pub const SQL_SVE_CAST: u32 = 2;
pub const SQL_SVE_COALESCE: u32 = 4;
pub const SQL_SVE_NULLIF: u32 = 8;
pub const SQL_SCC_XOPEN_CLI_VERSION1: u32 = 1;
pub const SQL_SCC_ISO92_CLI: u32 = 2;
pub const SQL_US_UNION: u32 = 1;
pub const SQL_US_UNION_ALL: u32 = 2;
pub const SQL_DTC_ENLIST_EXPENSIVE: u32 = 1;
pub const SQL_DTC_UNENLIST_EXPENSIVE: u32 = 2;
pub const SQL_ASYNC_DBC_NOT_CAPABLE: u32 = 0;
pub const SQL_ASYNC_DBC_CAPABLE: u32 = 1;
pub const SQL_FETCH_FIRST_USER: u32 = 31;
pub const SQL_FETCH_FIRST_SYSTEM: u32 = 32;
pub const SQL_ENTIRE_ROWSET: u32 = 0;
pub const SQL_POSITION: u32 = 0;
pub const SQL_REFRESH: u32 = 1;
pub const SQL_UPDATE: u32 = 2;
pub const SQL_DELETE: u32 = 3;
pub const SQL_ADD: u32 = 4;
pub const SQL_SETPOS_MAX_OPTION_VALUE: u32 = 4;
pub const SQL_UPDATE_BY_BOOKMARK: u32 = 5;
pub const SQL_DELETE_BY_BOOKMARK: u32 = 6;
pub const SQL_FETCH_BY_BOOKMARK: u32 = 7;
pub const SQL_LOCK_NO_CHANGE: u32 = 0;
pub const SQL_LOCK_EXCLUSIVE: u32 = 1;
pub const SQL_LOCK_UNLOCK: u32 = 2;
pub const SQL_SETPOS_MAX_LOCK_VALUE: u32 = 2;
pub const SQL_BEST_ROWID: u32 = 1;
pub const SQL_ROWVER: u32 = 2;
pub const SQL_PC_NOT_PSEUDO: u32 = 1;
pub const SQL_QUICK: u32 = 0;
pub const SQL_ENSURE: u32 = 1;
pub const SQL_TABLE_STAT: u32 = 0;
pub const SQL_ALL_CATALOGS: &'static [u8; 2usize] = b"%\0";
pub const SQL_ALL_SCHEMAS: &'static [u8; 2usize] = b"%\0";
pub const SQL_ALL_TABLE_TYPES: &'static [u8; 2usize] = b"%\0";
pub const SQL_DRIVER_NOPROMPT: u32 = 0;
pub const SQL_DRIVER_COMPLETE: u32 = 1;
pub const SQL_DRIVER_PROMPT: u32 = 2;
pub const SQL_DRIVER_COMPLETE_REQUIRED: u32 = 3;
pub const SQL_FETCH_BOOKMARK: u32 = 8;
pub const SQL_ROW_SUCCESS: u32 = 0;
pub const SQL_ROW_DELETED: u32 = 1;
pub const SQL_ROW_UPDATED: u32 = 2;
pub const SQL_ROW_NOROW: u32 = 3;
pub const SQL_ROW_ADDED: u32 = 4;
pub const SQL_ROW_ERROR: u32 = 5;
pub const SQL_ROW_SUCCESS_WITH_INFO: u32 = 6;
pub const SQL_ROW_PROCEED: u32 = 0;
pub const SQL_ROW_IGNORE: u32 = 1;
pub const SQL_PARAM_SUCCESS: u32 = 0;
pub const SQL_PARAM_SUCCESS_WITH_INFO: u32 = 6;
pub const SQL_PARAM_ERROR: u32 = 5;
pub const SQL_PARAM_UNUSED: u32 = 7;
pub const SQL_PARAM_DIAG_UNAVAILABLE: u32 = 1;
pub const SQL_PARAM_PROCEED: u32 = 0;
pub const SQL_PARAM_IGNORE: u32 = 1;
pub const SQL_CASCADE: u32 = 0;
pub const SQL_RESTRICT: u32 = 1;
pub const SQL_SET_NULL: u32 = 2;
pub const SQL_NO_ACTION: u32 = 3;
pub const SQL_SET_DEFAULT: u32 = 4;
pub const SQL_INITIALLY_DEFERRED: u32 = 5;
pub const SQL_INITIALLY_IMMEDIATE: u32 = 6;
pub const SQL_NOT_DEFERRABLE: u32 = 7;
pub const SQL_PARAM_TYPE_UNKNOWN: u32 = 0;
pub const SQL_PARAM_INPUT: u32 = 1;
pub const SQL_PARAM_INPUT_OUTPUT: u32 = 2;
pub const SQL_RESULT_COL: u32 = 3;
pub const SQL_PARAM_OUTPUT: u32 = 4;
pub const SQL_RETURN_VALUE: u32 = 5;
pub const SQL_PARAM_INPUT_OUTPUT_STREAM: u32 = 8;
pub const SQL_PARAM_OUTPUT_STREAM: u32 = 16;
pub const SQL_PT_UNKNOWN: u32 = 0;
pub const SQL_PT_PROCEDURE: u32 = 1;
pub const SQL_PT_FUNCTION: u32 = 2;
pub const SQL_DATABASE_NAME: u32 = 16;
pub const SQL_CONCUR_TIMESTAMP: u32 = 3;
pub const SQL_SCROLL_FORWARD_ONLY: u32 = 0;
pub const SQL_SCROLL_KEYSET_DRIVEN: i32 = -1;
pub const SQL_SCROLL_DYNAMIC: i32 = -2;
pub const SQL_SCROLL_STATIC: i32 = -3;
pub const TRACE_VERSION: u32 = 1000;
pub const TRACE_ON: u32 = 1;
pub const TRACE_VS_EVENT_ON: u32 = 2;
pub const ODBC_VS_FLAG_UNICODE_ARG: u32 = 1;
pub const ODBC_VS_FLAG_UNICODE_COR: u32 = 2;
pub const ODBC_VS_FLAG_RETCODE: u32 = 4;
pub const ODBC_VS_FLAG_STOP: u32 = 8;
pub const SQL_API_SQLALLOCCONNECT: u32 = 1;
pub const SQL_API_SQLALLOCENV: u32 = 2;
pub const SQL_API_SQLALLOCSTMT: u32 = 3;
pub const SQL_API_SQLBINDCOL: u32 = 4;
pub const SQL_API_SQLBINDPARAM: u32 = 1002;
pub const SQL_API_SQLCANCEL: u32 = 5;
pub const SQL_API_SQLCONNECT: u32 = 7;
pub const SQL_API_SQLCOPYDESC: u32 = 1004;
pub const SQL_API_SQLDESCRIBECOL: u32 = 8;
pub const SQL_API_SQLDISCONNECT: u32 = 9;
pub const SQL_API_SQLERROR: u32 = 10;
pub const SQL_API_SQLEXECDIRECT: u32 = 11;
pub const SQL_API_SQLEXECUTE: u32 = 12;
pub const SQL_API_SQLFETCH: u32 = 13;
pub const SQL_API_SQLFREECONNECT: u32 = 14;
pub const SQL_API_SQLFREEENV: u32 = 15;
pub const SQL_API_SQLFREESTMT: u32 = 16;
pub const SQL_API_SQLGETCURSORNAME: u32 = 17;
pub const SQL_API_SQLNUMRESULTCOLS: u32 = 18;
pub const SQL_API_SQLPREPARE: u32 = 19;
pub const SQL_API_SQLROWCOUNT: u32 = 20;
pub const SQL_API_SQLSETCURSORNAME: u32 = 21;
pub const SQL_API_SQLSETDESCFIELD: u32 = 1017;
pub const SQL_API_SQLSETDESCREC: u32 = 1018;
pub const SQL_API_SQLSETENVATTR: u32 = 1019;
pub const SQL_API_SQLSETPARAM: u32 = 22;
pub const SQL_API_SQLTRANSACT: u32 = 23;
pub const SQL_API_SQLCOLUMNS: u32 = 40;
pub const SQL_API_SQLGETCONNECTOPTION: u32 = 42;
pub const SQL_API_SQLGETDATA: u32 = 43;
pub const SQL_API_SQLGETDATAINTERNAL: u32 = 174;
pub const SQL_API_SQLGETDESCFIELD: u32 = 1008;
pub const SQL_API_SQLGETDESCREC: u32 = 1009;
pub const SQL_API_SQLGETDIAGFIELD: u32 = 1010;
pub const SQL_API_SQLGETDIAGREC: u32 = 1011;
pub const SQL_API_SQLGETENVATTR: u32 = 1012;
pub const SQL_API_SQLGETFUNCTIONS: u32 = 44;
pub const SQL_API_SQLGETINFO: u32 = 45;
pub const SQL_API_SQLGETSTMTOPTION: u32 = 46;
pub const SQL_API_SQLGETTYPEINFO: u32 = 47;
pub const SQL_API_SQLPARAMDATA: u32 = 48;
pub const SQL_API_SQLPUTDATA: u32 = 49;
pub const SQL_API_SQLSETCONNECTOPTION: u32 = 50;
pub const SQL_API_SQLSETSTMTOPTION: u32 = 51;
pub const SQL_API_SQLSPECIALCOLUMNS: u32 = 52;
pub const SQL_API_SQLSTATISTICS: u32 = 53;
pub const SQL_API_SQLTABLES: u32 = 54;
pub const SQL_API_SQLDATASOURCES: u32 = 57;
pub const SQL_API_SQLSETCONNECTATTR: u32 = 1016;
pub const SQL_API_SQLSETSTMTATTR: u32 = 1020;
pub const SQL_API_SQLBINDFILETOCOL: u32 = 1250;
pub const SQL_API_SQLBINDFILETOPARAM: u32 = 1251;
pub const SQL_API_SQLSETCOLATTRIBUTES: u32 = 1252;
pub const SQL_API_SQLGETSQLCA: u32 = 1253;
pub const SQL_API_SQLSETCONNECTION: u32 = 1254;
pub const SQL_API_SQLGETDATALINKATTR: u32 = 1255;
pub const SQL_API_SQLBUILDDATALINK: u32 = 1256;
pub const SQL_API_SQLNEXTRESULT: u32 = 1257;
pub const SQL_API_SQLCREATEDB: u32 = 1258;
pub const SQL_API_SQLDROPDB: u32 = 1259;
pub const SQL_API_SQLCREATEPKG: u32 = 1260;
pub const SQL_API_SQLDROPPKG: u32 = 1261;
pub const SQL_API_SQLEXTENDEDPREPARE: u32 = 1296;
pub const SQL_API_SQLEXTENDEDBIND: u32 = 1297;
pub const SQL_API_SQLEXTENDEDDESCRIBE: u32 = 1298;
pub const SQL_API_SQLRELOADCONFIG: u32 = 1299;
pub const SQL_API_SQLFETCHSCROLL: u32 = 1021;
pub const SQL_API_SQLGETLENGTH: u32 = 1022;
pub const SQL_API_SQLGETPOSITION: u32 = 1023;
pub const SQL_API_SQLGETSUBSTRING: u32 = 1024;
pub const SQL_API_SQLEXTENDEDPROCEDURES: u32 = 1025;
pub const SQL_API_SQLEXTENDEDPROCEDURECOLUMNS: u32 = 1026;
pub const SQL_API_SQLALLOCHANDLE: u32 = 1001;
pub const SQL_API_SQLFREEHANDLE: u32 = 1006;
pub const SQL_API_SQLCLOSECURSOR: u32 = 1003;
pub const SQL_API_SQLENDTRAN: u32 = 1005;
pub const SQL_API_SQLCOLATTRIBUTE: u32 = 6;
pub const SQL_API_SQLGETSTMTATTR: u32 = 1014;
pub const SQL_API_SQLGETCONNECTATTR: u32 = 1007;
pub const SQL_EXT_API_LAST: u32 = 72;
pub const SQL_MAX_DRIVER_CONNECTIONS: u32 = 0;
pub const SQL_MAXIMUM_DRIVER_CONNECTIONS: u32 = 0;
pub const SQL_MAX_CONCURRENT_ACTIVITIES: u32 = 1;
pub const SQL_MAXIMUM_CONCURRENT_ACTIVITIES: u32 = 1;
pub const SQL_DROP_MODULE: u32 = 2600;
pub const SQL_MODULE_USAGE: u32 = 2601;
pub const SQL_CREATE_MODULE: u32 = 2602;
pub const SQL_MAX_MODULE_NAME_LEN: u32 = 2603;
pub const SQL_DRIVER_BLDLEVEL: u32 = 2604;
pub const SQL_DATALINK_URL: &'static [u8; 4usize] = b"URL\0";
pub const SQL_ATTR_DATALINK_COMMENT: u32 = 1;
pub const SQL_ATTR_DATALINK_LINKTYPE: u32 = 2;
pub const SQL_ATTR_DATALINK_URLCOMPLETE: u32 = 3;
pub const SQL_ATTR_DATALINK_URLPATH: u32 = 4;
pub const SQL_ATTR_DATALINK_URLPATHONLY: u32 = 5;
pub const SQL_ATTR_DATALINK_URLSCHEME: u32 = 6;
pub const SQL_ATTR_DATALINK_URLSERVER: u32 = 7;
pub const SQL_DATA_SOURCE_NAME: u32 = 2;
pub const SQL_FETCH_DIRECTION: u32 = 8;
pub const SQL_SERVER_NAME: u32 = 13;
pub const SQL_SEARCH_PATTERN_ESCAPE: u32 = 14;
pub const SQL_DBMS_NAME: u32 = 17;
pub const SQL_DBMS_VER: u32 = 18;
pub const SQL_ACCESSIBLE_TABLES: u32 = 19;
pub const SQL_ACCESSIBLE_PROCEDURES: u32 = 20;
pub const SQL_CURSOR_COMMIT_BEHAVIOR: u32 = 23;
pub const SQL_DATA_SOURCE_READ_ONLY: u32 = 25;
pub const SQL_DEFAULT_TXN_ISOLATION: u32 = 26;
pub const SQL_IDENTIFIER_CASE: u32 = 28;
pub const SQL_IDENTIFIER_QUOTE_CHAR: u32 = 29;
pub const SQL_MAX_COLUMN_NAME_LEN: u32 = 30;
pub const SQL_MAXIMUM_COLUMN_NAME_LENGTH: u32 = 30;
pub const SQL_MAX_CURSOR_NAME_LEN: u32 = 31;
pub const SQL_MAXIMUM_CURSOR_NAME_LENGTH: u32 = 31;
pub const SQL_MAX_TABLE_NAME_LEN: u32 = 35;
pub const SQL_SCROLL_CONCURRENCY: u32 = 43;
pub const SQL_TXN_CAPABLE: u32 = 46;
pub const SQL_TRANSACTION_CAPABLE: u32 = 46;
pub const SQL_USER_NAME: u32 = 47;
pub const SQL_TXN_ISOLATION_OPTION: u32 = 72;
pub const SQL_TRANSACTION_ISOLATION_OPTION: u32 = 72;
pub const SQL_GETDATA_EXTENSIONS: u32 = 81;
pub const SQL_NULL_COLLATION: u32 = 85;
pub const SQL_ALTER_TABLE: u32 = 86;
pub const SQL_ORDER_BY_COLUMNS_IN_SELECT: u32 = 90;
pub const SQL_SPECIAL_CHARACTERS: u32 = 94;
pub const SQL_MAX_COLUMNS_IN_GROUP_BY: u32 = 97;
pub const SQL_MAXIMUM_COLUMNS_IN_GROUP_BY: u32 = 97;
pub const SQL_MAX_COLUMNS_IN_INDEX: u32 = 98;
pub const SQL_MAXIMUM_COLUMNS_IN_INDEX: u32 = 98;
pub const SQL_MAX_COLUMNS_IN_ORDER_BY: u32 = 99;
pub const SQL_MAXIMUM_COLUMNS_IN_ORDER_BY: u32 = 99;
pub const SQL_MAX_COLUMNS_IN_SELECT: u32 = 100;
pub const SQL_MAXIMUM_COLUMNS_IN_SELECT: u32 = 100;
pub const SQL_MAX_COLUMNS_IN_TABLE: u32 = 101;
pub const SQL_MAX_INDEX_SIZE: u32 = 102;
pub const SQL_MAXIMUM_INDEX_SIZE: u32 = 102;
pub const SQL_MAX_ROW_SIZE: u32 = 104;
pub const SQL_MAXIMUM_ROW_SIZE: u32 = 104;
pub const SQL_MAX_STATEMENT_LEN: u32 = 105;
pub const SQL_MAXIMUM_STATEMENT_LENGTH: u32 = 105;
pub const SQL_MAX_TABLES_IN_SELECT: u32 = 106;
pub const SQL_MAXIMUM_TABLES_IN_SELECT: u32 = 106;
pub const SQL_MAX_USER_NAME_LEN: u32 = 107;
pub const SQL_MAXIMUM_USER_NAME_LENGTH: u32 = 107;
pub const SQL_MAX_SCHEMA_NAME_LEN: u32 = 32;
pub const SQL_MAXIMUM_SCHEMA_NAME_LENGTH: u32 = 32;
pub const SQL_MAX_CATALOG_NAME_LEN: u32 = 34;
pub const SQL_MAXIMUM_CATALOG_NAME_LENGTH: u32 = 34;
pub const SQL_OJ_CAPABILITIES: u32 = 115;
pub const SQL_CONFIG_KEYWORDS: u32 = 174;
pub const SQL_OUTER_JOIN_CAPABILITIES: u32 = 115;
pub const SQL_XOPEN_CLI_YEAR: u32 = 10000;
pub const SQL_CURSOR_SENSITIVITY: u32 = 10001;
pub const SQL_DESCRIBE_PARAMETER: u32 = 10002;
pub const SQL_CATALOG_NAME: u32 = 10003;
pub const SQL_COLLATION_SEQ: u32 = 10004;
pub const SQL_MAX_IDENTIFIER_LEN: u32 = 10005;
pub const SQL_MAXIMUM_IDENTIFIER_LENGTH: u32 = 10005;
pub const SQL_INTEGRITY: u32 = 73;
pub const SQL_DATABASE_CODEPAGE: u32 = 2519;
pub const SQL_APPLICATION_CODEPAGE: u32 = 2520;
pub const SQL_CONNECT_CODEPAGE: u32 = 2521;
pub const SQL_ATTR_DB2_APPLICATION_ID: u32 = 2532;
pub const SQL_ATTR_DB2_APPLICATION_HANDLE: u32 = 2533;
pub const SQL_ATTR_HANDLE_XA_ASSOCIATED: u32 = 2535;
pub const SQL_DB2_DRIVER_VER: u32 = 2550;
pub const SQL_ATTR_XML_DECLARATION: u32 = 2552;
pub const SQL_ATTR_CURRENT_IMPLICIT_XMLPARSE_OPTION: u32 = 2553;
pub const SQL_ATTR_XQUERY_STATEMENT: u32 = 2557;
pub const SQL_DB2_DRIVER_TYPE: u32 = 2567;
pub const SQL_INPUT_CHAR_CONVFACTOR: u32 = 2581;
pub const SQL_OUTPUT_CHAR_CONVFACTOR: u32 = 2582;
pub const SQL_ATTR_REPLACE_QUOTED_LITERALS: u32 = 2586;
pub const SQL_ATTR_REPORT_TIMESTAMP_TRUNC_AS_WARN: u32 = 2587;
pub const SQL_ATTR_CLIENT_ENCALG: u32 = 2589;
pub const SQL_ATTR_CONCURRENT_ACCESS_RESOLUTION: u32 = 2595;
pub const SQL_ATTR_REPORT_SEAMLESSFAILOVER_WARNING: u32 = 2605;
pub const SQL_CONCURRENT_ACCESS_RESOLUTION_UNSET: u32 = 0;
pub const SQL_USE_CURRENTLY_COMMITTED: u32 = 1;
pub const SQL_WAIT_FOR_OUTCOME: u32 = 2;
pub const SQL_SKIP_LOCKED_DATA: u32 = 3;
pub const SQL_DBMS_FUNCTIONLVL: u32 = 203;
pub const SQL_CLI_STMT_UNDEFINED: u32 = 0;
pub const SQL_CLI_STMT_ALTER_TABLE: u32 = 1;
pub const SQL_CLI_STMT_CREATE_INDEX: u32 = 5;
pub const SQL_CLI_STMT_CREATE_TABLE: u32 = 6;
pub const SQL_CLI_STMT_CREATE_VIEW: u32 = 7;
pub const SQL_CLI_STMT_DELETE_SEARCHED: u32 = 8;
pub const SQL_CLI_STMT_DELETE_POSITIONED: u32 = 9;
pub const SQL_CLI_STMT_DROP_PACKAGE: u32 = 10;
pub const SQL_CLI_STMT_DROP_INDEX: u32 = 11;
pub const SQL_CLI_STMT_DROP_TABLE: u32 = 12;
pub const SQL_CLI_STMT_DROP_VIEW: u32 = 13;
pub const SQL_CLI_STMT_GRANT: u32 = 14;
pub const SQL_CLI_STMT_INSERT: u32 = 15;
pub const SQL_CLI_STMT_REVOKE: u32 = 16;
pub const SQL_CLI_STMT_SELECT: u32 = 18;
pub const SQL_CLI_STMT_UPDATE_SEARCHED: u32 = 19;
pub const SQL_CLI_STMT_UPDATE_POSITIONED: u32 = 20;
pub const SQL_CLI_STMT_CALL: u32 = 24;
pub const SQL_CLI_STMT_SELECT_FOR_UPDATE: u32 = 29;
pub const SQL_CLI_STMT_WITH: u32 = 30;
pub const SQL_CLI_STMT_SELECT_FOR_FETCH: u32 = 31;
pub const SQL_CLI_STMT_VALUES: u32 = 32;
pub const SQL_CLI_STMT_CREATE_TRIGGER: u32 = 34;
pub const SQL_CLI_STMT_SELECT_OPTIMIZE_FOR_NROWS: u32 = 39;
pub const SQL_CLI_STMT_SELECT_INTO: u32 = 40;
pub const SQL_CLI_STMT_CREATE_PROCEDURE: u32 = 41;
pub const SQL_CLI_STMT_CREATE_FUNCTION: u32 = 42;
pub const SQL_CLI_STMT_INSERT_VALUES: u32 = 45;
pub const SQL_CLI_STMT_SET_CURRENT_QUERY_OPT: u32 = 46;
pub const SQL_CLI_STMT_MERGE: u32 = 56;
pub const SQL_CLI_STMT_XQUERY: u32 = 59;
pub const SQL_CLI_STMT_SET: u32 = 62;
pub const SQL_CLI_STMT_ALTER_PROCEDURE: u32 = 63;
pub const SQL_CLI_STMT_CLOSE_DATABASE: u32 = 64;
pub const SQL_CLI_STMT_CREATE_DATABASE: u32 = 65;
pub const SQL_CLI_STMT_DROP_DATABASE: u32 = 66;
pub const SQL_CLI_STMT_ANONYMOUS_BLOCK: u32 = 72;
pub const SQL_IBM_ALTERTABLEVARCHAR: u32 = 1000;
pub const SQL_AT_ADD_COLUMN: u32 = 1;
pub const SQL_AT_DROP_COLUMN: u32 = 2;
pub const SQL_AT_ADD_CONSTRAINT: u32 = 8;
pub const SQL_CB_DELETE: u32 = 0;
pub const SQL_CB_CLOSE: u32 = 1;
pub const SQL_CB_PRESERVE: u32 = 2;
pub const SQL_IC_UPPER: u32 = 1;
pub const SQL_IC_LOWER: u32 = 2;
pub const SQL_IC_SENSITIVE: u32 = 3;
pub const SQL_IC_MIXED: u32 = 4;
pub const SQL_TC_NONE: u32 = 0;
pub const SQL_TC_DML: u32 = 1;
pub const SQL_TC_ALL: u32 = 2;
pub const SQL_TC_DDL_COMMIT: u32 = 3;
pub const SQL_TC_DDL_IGNORE: u32 = 4;
pub const SQL_SCCO_READ_ONLY: u32 = 1;
pub const SQL_SCCO_LOCK: u32 = 2;
pub const SQL_SCCO_OPT_ROWVER: u32 = 4;
pub const SQL_SCCO_OPT_VALUES: u32 = 8;
pub const SQL_FD_FETCH_NEXT: u32 = 1;
pub const SQL_FD_FETCH_FIRST: u32 = 2;
pub const SQL_FD_FETCH_LAST: u32 = 4;
pub const SQL_FD_FETCH_PRIOR: u32 = 8;
pub const SQL_FD_FETCH_ABSOLUTE: u32 = 16;
pub const SQL_FD_FETCH_RELATIVE: u32 = 32;
pub const SQL_FD_FETCH_RESUME: u32 = 64;
pub const SQL_TXN_READ_UNCOMMITTED: u32 = 1;
pub const SQL_TRANSACTION_READ_UNCOMMITTED: u32 = 1;
pub const SQL_TXN_READ_COMMITTED: u32 = 2;
pub const SQL_TRANSACTION_READ_COMMITTED: u32 = 2;
pub const SQL_TXN_REPEATABLE_READ: u32 = 4;
pub const SQL_TRANSACTION_REPEATABLE_READ: u32 = 4;
pub const SQL_TXN_SERIALIZABLE: u32 = 8;
pub const SQL_TRANSACTION_SERIALIZABLE: u32 = 8;
pub const SQL_TXN_NOCOMMIT: u32 = 32;
pub const SQL_TRANSACTION_NOCOMMIT: u32 = 32;
pub const SQL_TXN_IDS_CURSOR_STABILITY: u32 = 64;
pub const SQL_TRANSACTION_IDS_CURSOR_STABILITY: u32 = 64;
pub const SQL_TXN_IDS_LAST_COMMITTED: u32 = 128;
pub const SQL_TRANSACTION_IDS_LAST_COMMITTED: u32 = 128;
pub const SQL_GD_ANY_COLUMN: u32 = 1;
pub const SQL_GD_ANY_ORDER: u32 = 2;
pub const SQL_OJ_LEFT: u32 = 1;
pub const SQL_OJ_RIGHT: u32 = 2;
pub const SQL_OJ_FULL: u32 = 4;
pub const SQL_OJ_NESTED: u32 = 8;
pub const SQL_OJ_NOT_ORDERED: u32 = 16;
pub const SQL_OJ_INNER: u32 = 32;
pub const SQL_OJ_ALL_COMPARISON_OPS: u32 = 64;
pub const SQL_CLI_DRIVER_TYPE_UNDEFINED: u32 = 0;
pub const SQL_CLI_DRIVER_RUNTIME_CLIENT: u32 = 1;
pub const SQL_CLI_DRIVER_CLI_DRIVER: u32 = 2;
pub const SQL_ALL_TYPES: u32 = 0;
pub const SQL_ATTR_AUTO_IPD: u32 = 10001;
pub const SQL_ATTR_APP_ROW_DESC: u32 = 10010;
pub const SQL_ATTR_APP_PARAM_DESC: u32 = 10011;
pub const SQL_ATTR_IMP_ROW_DESC: u32 = 10012;
pub const SQL_ATTR_IMP_PARAM_DESC: u32 = 10013;
pub const SQL_ATTR_METADATA_ID: u32 = 10014;
pub const SQL_ATTR_CURSOR_SCROLLABLE: i32 = -1;
pub const SQL_ATTR_CURSOR_SENSITIVITY: i32 = -2;
pub const SQL_NONSCROLLABLE: u32 = 0;
pub const SQL_SCROLLABLE: u32 = 1;
pub const SQL_CURSOR_HOLD: u32 = 1250;
pub const SQL_ATTR_CURSOR_HOLD: u32 = 1250;
pub const SQL_NODESCRIBE_OUTPUT: u32 = 1251;
pub const SQL_ATTR_NODESCRIBE_OUTPUT: u32 = 1251;
pub const SQL_NODESCRIBE_INPUT: u32 = 1264;
pub const SQL_ATTR_NODESCRIBE_INPUT: u32 = 1264;
pub const SQL_NODESCRIBE: u32 = 1251;
pub const SQL_ATTR_NODESCRIBE: u32 = 1251;
pub const SQL_CLOSE_BEHAVIOR: u32 = 1257;
pub const SQL_ATTR_CLOSE_BEHAVIOR: u32 = 1257;
pub const SQL_ATTR_CLOSEOPEN: u32 = 1265;
pub const SQL_ATTR_CURRENT_PACKAGE_SET: u32 = 1276;
pub const SQL_ATTR_DEFERRED_PREPARE: u32 = 1277;
pub const SQL_ATTR_EARLYCLOSE: u32 = 1268;
pub const SQL_ATTR_PROCESSCTL: u32 = 1278;
pub const SQL_ATTR_PREFETCH: u32 = 1285;
pub const SQL_ATTR_ENABLE_IPD_SETTING: u32 = 1286;
pub const SQL_ATTR_RETRYONERROR: u32 = 121;
pub const SQL_DESC_DESCRIPTOR_TYPE: u32 = 1287;
pub const SQL_ATTR_OPTIMIZE_SQLCOLUMNS: u32 = 1288;
pub const SQL_ATTR_MEM_DEBUG_DUMP: u32 = 1289;
pub const SQL_ATTR_CONNECT_NODE: u32 = 1290;
pub const SQL_ATTR_CONNECT_WITH_XA: u32 = 1291;
pub const SQL_ATTR_GET_XA_RESOURCE: u32 = 1292;
pub const SQL_ATTR_DB2_SQLERRP: u32 = 2451;
pub const SQL_ATTR_SERVER_MSGTXT_SP: u32 = 2452;
pub const SQL_ATTR_OPTIMIZE_FOR_NROWS: u32 = 2450;
pub const SQL_ATTR_QUERY_OPTIMIZATION_LEVEL: u32 = 1293;
pub const SQL_ATTR_USE_LIGHT_OUTPUT_SQLDA: u32 = 1298;
pub const SQL_ATTR_CURSOR_BLOCK_NUM_ROWS: u32 = 2453;
pub const SQL_ATTR_CURSOR_BLOCK_EARLY_CLOSE: u32 = 2454;
pub const SQL_ATTR_SERVER_MSGTXT_MASK: u32 = 2455;
pub const SQL_ATTR_USE_LIGHT_INPUT_SQLDA: u32 = 2458;
pub const SQL_ATTR_BLOCK_FOR_NROWS: u32 = 2459;
pub const SQL_ATTR_OPTIMIZE_ROWS_FOR_BLOCKING: u32 = 2460;
pub const SQL_ATTR_STATICMODE: u32 = 2467;
pub const SQL_ATTR_DB2_MESSAGE_PREFIX: u32 = 2468;
pub const SQL_ATTR_CALL_RETVAL_AS_PARM: u32 = 2469;
pub const SQL_ATTR_CALL_RETURN: u32 = 2470;
pub const SQL_ATTR_RETURN_USER_DEFINED_TYPES: u32 = 2471;
pub const SQL_ATTR_ENABLE_EXTENDED_PARAMDATA: u32 = 2472;
pub const SQL_ATTR_APP_TYPE: u32 = 2473;
pub const SQL_ATTR_TRANSFORM_GROUP: u32 = 2474;
pub const SQL_ATTR_DESCRIBE_CALL: u32 = 2476;
pub const SQL_ATTR_AUTOCOMMCLEANUP: u32 = 2477;
pub const SQL_ATTR_USEMALLOC: u32 = 2478;
pub const SQL_ATTR_PRESERVE_LOCALE: u32 = 2479;
pub const SQL_ATTR_MAPGRAPHIC: u32 = 2480;
pub const SQL_ATTR_INSERT_BUFFERING: u32 = 2481;
pub const SQL_ATTR_USE_LOAD_API: u32 = 2482;
pub const SQL_ATTR_LOAD_RECOVERABLE: u32 = 2483;
pub const SQL_ATTR_LOAD_COPY_LOCATION: u32 = 2484;
pub const SQL_ATTR_LOAD_MESSAGE_FILE: u32 = 2485;
pub const SQL_ATTR_LOAD_SAVECOUNT: u32 = 2486;
pub const SQL_ATTR_LOAD_CPU_PARALLELISM: u32 = 2487;
pub const SQL_ATTR_LOAD_DISK_PARALLELISM: u32 = 2488;
pub const SQL_ATTR_LOAD_INDEXING_MODE: u32 = 2489;
pub const SQL_ATTR_LOAD_STATS_MODE: u32 = 2490;
pub const SQL_ATTR_LOAD_TEMP_FILES_PATH: u32 = 2491;
pub const SQL_ATTR_LOAD_DATA_BUFFER_SIZE: u32 = 2492;
pub const SQL_ATTR_LOAD_MODIFIED_BY: u32 = 2493;
pub const SQL_ATTR_DB2_RESERVED_2494: u32 = 2494;
pub const SQL_ATTR_DESCRIBE_BEHAVIOR: u32 = 2495;
pub const SQL_ATTR_FETCH_SENSITIVITY: u32 = 2496;
pub const SQL_ATTR_DB2_RESERVED_2497: u32 = 2497;
pub const SQL_ATTR_CLIENT_LOB_BUFFERING: u32 = 2498;
pub const SQL_ATTR_SKIP_TRACE: u32 = 2499;
pub const SQL_ATTR_LOAD_INFO: u32 = 2501;
pub const SQL_ATTR_DESCRIBE_INPUT_ON_PREPARE: u32 = 2505;
pub const SQL_ATTR_DESCRIBE_OUTPUT_LEVEL: u32 = 2506;
pub const SQL_ATTR_CURRENT_PACKAGE_PATH: u32 = 2509;
pub const SQL_ATTR_INFO_PROGRAMID: u32 = 2511;
pub const SQL_ATTR_INFO_PROGRAMNAME: u32 = 2516;
pub const SQL_ATTR_FREE_LOCATORS_ON_FETCH: u32 = 2518;
pub const SQL_ATTR_KEEP_DYNAMIC: u32 = 2522;
pub const SQL_ATTR_LOAD_ROWS_READ_PTR: u32 = 2524;
pub const SQL_ATTR_LOAD_ROWS_SKIPPED_PTR: u32 = 2525;
pub const SQL_ATTR_LOAD_ROWS_COMMITTED_PTR: u32 = 2526;
pub const SQL_ATTR_LOAD_ROWS_LOADED_PTR: u32 = 2527;
pub const SQL_ATTR_LOAD_ROWS_REJECTED_PTR: u32 = 2528;
pub const SQL_ATTR_LOAD_ROWS_DELETED_PTR: u32 = 2529;
pub const SQL_ATTR_LOAD_INFO_VER: u32 = 2530;
pub const SQL_ATTR_SET_SSA: u32 = 2531;
pub const SQL_ATTR_BLOCK_LOBS: u32 = 2534;
pub const SQL_ATTR_LOAD_ACCESS_LEVEL: u32 = 2536;
pub const SQL_ATTR_MAPCHAR: u32 = 2546;
pub const SQL_ATTR_ARM_CORRELATOR: u32 = 2554;
pub const SQL_ATTR_CLIENT_DEBUGINFO: u32 = 2556;
pub const SQL_ATTR_GET_GENERATED_VALUE: u32 = 2583;
pub const SQL_ATTR_GET_SERIAL_VALUE: u32 = 2584;
pub const SQL_ATTR_INTERLEAVED_PUTDATA: u32 = 2591;
pub const SQL_ATTR_FORCE_ROLLBACK: u32 = 2596;
pub const SQL_ATTR_STMT_CONCENTRATOR: u32 = 2597;
pub const SQL_ATTR_LOAD_REPLACE_OPTION: u32 = 3036;
pub const SQL_ATTR_SESSION_GLOBAL_VAR: u32 = 3044;
pub const SQL_ATTR_SPECIAL_REGISTER: u32 = 3049;
pub const SQL_STMT_CONCENTRATOR_OFF: u32 = 1;
pub const SQL_STMT_CONCENTRATOR_WITH_LITERALS: u32 = 2;
pub const SQL_INFO_LAST: u32 = 174;
pub const SQL_INFO_DRIVER_START: u32 = 1000;
pub const SQL_FORCE_ROLLBACK_ON: u32 = 1;
pub const SQL_FORCE_ROLLBACK_OFF: u32 = 0;
pub const SQL_FORCE_ROLLBACK_DEFAULT: u32 = 0;
pub const SQL_DESCRIBE_NONE: u32 = 0;
pub const SQL_DESCRIBE_LIGHT: u32 = 1;
pub const SQL_DESCRIBE_REGULAR: u32 = 2;
pub const SQL_DESCRIBE_EXTENDED: u32 = 3;
pub const SQL_USE_LOAD_OFF: u32 = 0;
pub const SQL_USE_LOAD_INSERT: u32 = 1;
pub const SQL_USE_LOAD_REPLACE: u32 = 2;
pub const SQL_USE_LOAD_RESTART: u32 = 3;
pub const SQL_USE_LOAD_TERMINATE: u32 = 4;
pub const SQL_LOAD_REPLACE_DEFAULT: u32 = 0;
pub const SQL_LOAD_KEEPDICTIONARY: u32 = 1;
pub const SQL_LOAD_RESETDICTIONARY: u32 = 2;
pub const SQL_LOAD_RESETDICTIONARYONLY: u32 = 3;
pub const SQL_PREFETCH_ON: u32 = 1;
pub const SQL_PREFETCH_OFF: u32 = 0;
pub const SQL_PREFETCH_DEFAULT: u32 = 0;
pub const SQL_CC_NO_RELEASE: u32 = 0;
pub const SQL_CC_RELEASE: u32 = 1;
pub const SQL_CC_DEFAULT: u32 = 0;
pub const SQL_RETRYONERROR_OFF: u32 = 0;
pub const SQL_RETRYONERROR_ON: u32 = 1;
pub const SQL_RETRYONERROR_DEFAULT: u32 = 1;
pub const SQL_RETRYBINDONERROR_OFF: u32 = 0;
pub const SQL_RETRYBINDONERROR_ON: u32 = 1;
pub const SQL_RETRYBINDONERROR_DEFAULT: u32 = 1;
pub const SQL_ALLOW_INTERLEAVED_GETDATA_OFF: u32 = 0;
pub const SQL_ALLOW_INTERLEAVED_GETDATA_ON: u32 = 1;
pub const SQL_ALLOW_INTERLEAVED_GETDATA_DEFAULT: u32 = 0;
pub const SQL_INTERLEAVED_STREAM_PUTDATA_OFF: u32 = 0;
pub const SQL_INTERLEAVED_STREAM_PUTDATA_ON: u32 = 1;
pub const SQL_OVERRIDE_CODEPAGE_ON: u32 = 1;
pub const SQL_OVERRIDE_CODEPAGE_OFF: u32 = 0;
pub const SQL_DEFERRED_PREPARE_ON: u32 = 1;
pub const SQL_DEFERRED_PREPARE_OFF: u32 = 0;
pub const SQL_DEFERRED_PREPARE_DEFAULT: u32 = 1;
pub const SQL_EARLYCLOSE_ON: u32 = 1;
pub const SQL_EARLYCLOSE_OFF: u32 = 0;
pub const SQL_EARLYCLOSE_SERVER: u32 = 2;
pub const SQL_EARLYCLOSE_DEFAULT: u32 = 1;
pub const SQL_APP_TYPE_ODBC: u32 = 1;
pub const SQL_APP_TYPE_OLEDB: u32 = 2;
pub const SQL_APP_TYPE_JDBC: u32 = 3;
pub const SQL_APP_TYPE_ADONET: u32 = 4;
pub const SQL_APP_TYPE_DRDAWRAPPER: u32 = 5;
pub const SQL_APP_TYPE_OCI: u32 = 6;
pub const SQL_APP_TYPE_DEFAULT: u32 = 1;
pub const SQL_PROCESSCTL_NOTHREAD: u32 = 1;
pub const SQL_PROCESSCTL_NOFORK: u32 = 2;
pub const SQL_PROCESSCTL_SHARESTMTDESC: u32 = 4;
pub const SQL_PROCESSCTL_MULTICONNECT3: u32 = 8;
pub const SQL_FALSE: u32 = 0;
pub const SQL_TRUE: u32 = 1;
pub const SQL_CURSOR_HOLD_ON: u32 = 1;
pub const SQL_CURSOR_HOLD_OFF: u32 = 0;
pub const SQL_CURSOR_HOLD_DEFAULT: u32 = 1;
pub const SQL_NODESCRIBE_ON: u32 = 1;
pub const SQL_NODESCRIBE_OFF: u32 = 0;
pub const SQL_NODESCRIBE_DEFAULT: u32 = 0;
pub const SQL_DESCRIBE_CALL_NEVER: u32 = 0;
pub const SQL_DESCRIBE_CALL_BEFORE: u32 = 1;
pub const SQL_DESCRIBE_CALL_ON_ERROR: u32 = 2;
pub const SQL_DESCRIBE_CALL_DEFAULT: i32 = -1;
pub const SQL_CLIENTLOB_USE_LOCATORS: u32 = 0;
pub const SQL_CLIENTLOB_BUFFER_UNBOUND_LOBS: u32 = 1;
pub const SQL_CLIENTLOB_DEFAULT: u32 = 0;
pub const SQL_CLIENT_ENCALG_NOT_SET: u32 = 0;
pub const SQL_CLIENT_ENCALG_ANY: u32 = 1;
pub const SQL_CLIENT_ENCALG_AES_ONLY: u32 = 2;
pub const SQL_COMMITONEOF_OFF: u32 = 0;
pub const SQL_COMMITONEOF_ON: u32 = 1;
pub const SQL_WCHARTYPE: u32 = 1252;
pub const SQL_LONGDATA_COMPAT: u32 = 1253;
pub const SQL_CURRENT_SCHEMA: u32 = 1254;
pub const SQL_DB2EXPLAIN: u32 = 1258;
pub const SQL_DB2ESTIMATE: u32 = 1259;
pub const SQL_PARAMOPT_ATOMIC: u32 = 1260;
pub const SQL_STMTTXN_ISOLATION: u32 = 1261;
pub const SQL_MAXCONN: u32 = 1262;
pub const SQL_ATTR_CLISCHEMA: u32 = 1280;
pub const SQL_ATTR_INFO_USERID: u32 = 1281;
pub const SQL_ATTR_INFO_WRKSTNNAME: u32 = 1282;
pub const SQL_ATTR_INFO_APPLNAME: u32 = 1283;
pub const SQL_ATTR_INFO_ACCTSTR: u32 = 1284;
pub const SQL_ATTR_AUTOCOMMIT_NOCOMMIT: u32 = 2462;
pub const SQL_ATTR_QUERY_PATROLLER: u32 = 2466;
pub const SQL_ATTR_CHAINING_BEGIN: u32 = 2464;
pub const SQL_ATTR_CHAINING_END: u32 = 2465;
pub const SQL_ATTR_EXTENDEDBIND: u32 = 2475;
pub const SQL_ATTR_GRAPHIC_UNICODESERVER: u32 = 2503;
pub const SQL_ATTR_RETURN_CHAR_AS_WCHAR_OLEDB: u32 = 2517;
pub const SQL_ATTR_GATEWAY_CONNECTED: u32 = 2537;
pub const SQL_ATTR_SQLCOLUMNS_SORT_BY_ORDINAL_OLEDB: u32 = 2542;
pub const SQL_ATTR_REPORT_ISLONG_FOR_LONGTYPES_OLEDB: u32 = 2543;
pub const SQL_ATTR_PING_DB: u32 = 2545;
pub const SQL_ATTR_RECEIVE_TIMEOUT: u32 = 2547;
pub const SQL_ATTR_REOPT: u32 = 2548;
pub const SQL_ATTR_LOB_CACHE_SIZE: u32 = 2555;
pub const SQL_ATTR_STREAM_GETDATA: u32 = 2558;
pub const SQL_ATTR_APP_USES_LOB_LOCATOR: u32 = 2559;
pub const SQL_ATTR_MAX_LOB_BLOCK_SIZE: u32 = 2560;
pub const SQL_ATTR_USE_TRUSTED_CONTEXT: u32 = 2561;
pub const SQL_ATTR_TRUSTED_CONTEXT_USERID: u32 = 2562;
pub const SQL_ATTR_TRUSTED_CONTEXT_PASSWORD: u32 = 2563;
pub const SQL_ATTR_USER_REGISTRY_NAME: u32 = 2564;
pub const SQL_ATTR_DECFLOAT_ROUNDING_MODE: u32 = 2565;
pub const SQL_ATTR_APPEND_FOR_FETCH_ONLY: u32 = 2573;
pub const SQL_ATTR_ONLY_USE_BIG_PACKAGES: u32 = 2577;
pub const SQL_ATTR_NONATMOIC_BUFFER_INSERT: u32 = 2588;
pub const SQL_ATTR_ROWCOUNT_PREFETCH: u32 = 2592;
pub const SQL_ATTR_PING_REQUEST_PACKET_SIZE: u32 = 2593;
pub const SQL_ATTR_PING_NTIMES: u32 = 2594;
pub const SQL_ATTR_ALLOW_INTERLEAVED_GETDATA: u32 = 2599;
pub const SQL_ATTR_INTERLEAVED_STREAM_PUTDATA: u32 = 3000;
pub const SQL_ATTR_FET_BUF_SIZE: u32 = 3001;
pub const SQL_ATTR_CLIENT_CODEPAGE: u32 = 3002;
pub const SQL_ATTR_EXTENDED_INDICATORS: u32 = 3003;
pub const SQL_ATTR_SESSION_TIME_ZONE: u32 = 3004;
pub const SQL_ATTR_CLIENT_TIME_ZONE: u32 = 3005;
pub const SQL_ATTR_NETWORK_STATISTICS: u32 = 3006;
pub const SQL_ATTR_OVERRIDE_CHARACTER_CODEPAGE: u32 = 3007;
pub const SQL_ATTR_GET_LATEST_MEMBER: u32 = 3008;
pub const SQL_ATTR_CO_CAPTUREONPREPARE: u32 = 3009;
pub const SQL_ATTR_RETRYBINDONERROR: u32 = 3010;
pub const SQL_ATTR_COMMITONEOF: u32 = 3011;
pub const SQL_ATTR_PARC_BATCH: u32 = 3012;
pub const SQL_ATTR_COLUMNWISE_MRI: u32 = 3013;
pub const SQL_ATTR_OVERRIDE_CODEPAGE: u32 = 3014;
pub const SQL_ATTR_SQLCODEMAP: u32 = 3015;
pub const SQL_ATTR_ISREADONLYSQL: u32 = 3016;
pub const SQL_ATTR_DBC_SYS_NAMING: u32 = 3017;
pub const SQL_ATTR_FREE_MEMORY_ON_STMTCLOSE: u32 = 3018;
pub const SQL_ATTR_OVERRIDE_PRIMARY_AFFINITY: u32 = 3020;
pub const SQL_ATTR_STREAM_OUTPUTLOB_ON_CALL: u32 = 3021;
pub const SQL_ATTR_CACHE_USRLIBL: u32 = 3022;
pub const SQL_ATTR_GET_LATEST_MEMBER_NAME: u32 = 3023;
pub const SQL_ATTR_INFO_CRRTKN: u32 = 3024;
pub const SQL_ATTR_DATE_FMT: u32 = 3025;
pub const SQL_ATTR_DATE_SEP: u32 = 3026;
pub const SQL_ATTR_TIME_FMT: u32 = 3027;
pub const SQL_ATTR_TIME_SEP: u32 = 3028;
pub const SQL_ATTR_DECIMAL_SEP: u32 = 3029;
pub const SQL_ATTR_READ_ONLY_CONNECTION: u32 = 3030;
pub const SQL_ATTR_CONFIG_KEYWORDS_ARRAY_SIZE: u32 = 3031;
pub const SQL_ATTR_CONFIG_KEYWORDS_MAXLEN: u32 = 3032;
pub const SQL_ATTR_RETRY_ON_MERGE: u32 = 3033;
pub const SQL_ATTR_DETECT_READ_ONLY_TXN: u32 = 3034;
pub const SQL_ATTR_IGNORE_SERVER_LIST: u32 = 3035;
pub const SQL_ATTR_DB2ZLOAD_LOADSTMT: u32 = 3037;
pub const SQL_ATTR_DB2ZLOAD_RECDELIM: u32 = 3038;
pub const SQL_ATTR_DB2ZLOAD_BEGIN: u32 = 3039;
pub const SQL_ATTR_DB2ZLOAD_END: u32 = 3040;
pub const SQL_ATTR_DB2ZLOAD_FILETYPE: u32 = 3041;
pub const SQL_ATTR_DB2ZLOAD_MSGFILE: u32 = 3042;
pub const SQL_ATTR_DB2ZLOAD_UTILITYID: u32 = 3043;
pub const SQL_ATTR_CONNECT_PASSIVE: u32 = 3045;
pub const SQL_ATTR_CLIENT_APPLCOMPAT: u32 = 3046;
pub const SQL_ATTR_DB2ZLOAD_LOADFILE: u32 = 3047;
pub const SQL_ATTR_PREFETCH_NROWS: u32 = 3048;
pub const SQL_ATTR_CLIENT_USERID: u32 = 1281;
pub const SQL_ATTR_CLIENT_WRKSTNNAME: u32 = 1282;
pub const SQL_ATTR_CLIENT_APPLNAME: u32 = 1283;
pub const SQL_ATTR_CLIENT_ACCTSTR: u32 = 1284;
pub const SQL_ATTR_CLIENT_PROGINFO: u32 = 2516;
pub const SQL_DM_DROP_MODULE: u32 = 1;
pub const SQL_DM_RESTRICT: u32 = 2;
pub const SQL_MU_PROCEDURE_INVOCATION: u32 = 1;
pub const SQL_CM_CREATE_MODULE: u32 = 1;
pub const SQL_CM_AUTHORIZATION: u32 = 2;
pub const SQL_ATTR_WCHARTYPE: u32 = 1252;
pub const SQL_ATTR_LONGDATA_COMPAT: u32 = 1253;
pub const SQL_ATTR_CURRENT_SCHEMA: u32 = 1254;
pub const SQL_ATTR_DB2EXPLAIN: u32 = 1258;
pub const SQL_ATTR_DB2ESTIMATE: u32 = 1259;
pub const SQL_ATTR_PARAMOPT_ATOMIC: u32 = 1260;
pub const SQL_ATTR_STMTTXN_ISOLATION: u32 = 1261;
pub const SQL_ATTR_MAXCONN: u32 = 1262;
pub const SQL_CONNECTTYPE: u32 = 1255;
pub const SQL_SYNC_POINT: u32 = 1256;
pub const SQL_MINMEMORY_USAGE: u32 = 1263;
pub const SQL_CONN_CONTEXT: u32 = 1269;
pub const SQL_ATTR_INHERIT_NULL_CONNECT: u32 = 1270;
pub const SQL_ATTR_FORCE_CONVERSION_ON_CLIENT: u32 = 1275;
pub const SQL_ATTR_INFO_KEYWORDLIST: u32 = 2500;
pub const SQL_ATTR_DISABLE_SYSPLEX: u32 = 2590;
pub const SQL_ATTR_CONNECTTYPE: u32 = 1255;
pub const SQL_ATTR_SYNC_POINT: u32 = 1256;
pub const SQL_ATTR_MINMEMORY_USAGE: u32 = 1263;
pub const SQL_ATTR_CONN_CONTEXT: u32 = 1269;
pub const SQL_LD_COMPAT_YES: u32 = 1;
pub const SQL_LD_COMPAT_NO: u32 = 0;
pub const SQL_LD_COMPAT_DEFAULT: u32 = 0;
pub const SQL_ATTR_EXTENDEDBIND_COPY: u32 = 1;
pub const SQL_ATTR_EXTENDEDBIND_NOCOPY: u32 = 0;
pub const SQL_ATTR_EXTENDEDBIND_DEFAULT: u32 = 0;
pub const SQL_NC_HIGH: u32 = 0;
pub const SQL_NC_LOW: u32 = 1;
pub const SQL_PARC_BATCH_ENABLE: u32 = 1;
pub const SQL_PARC_BATCH_DISABLE: u32 = 0;
pub const SQL_SQLCODEMAP_NOMAP: u32 = 1;
pub const SQL_SQLCODEMAP_MAP: u32 = 2;
pub const SQL_CONNECT_PASSIVE_YES: u32 = 1;
pub const SQL_CONNECT_PASSIVE_NO: u32 = 0;
pub const SQL_CONNECT_PASSIVE_DEFAULT: u32 = 0;
pub const CLI_MAX_LONGVARCHAR: u32 = 1250;
pub const CLI_MAX_VARCHAR: u32 = 1251;
pub const CLI_MAX_CHAR: u32 = 1252;
pub const CLI_MAX_LONGVARGRAPHIC: u32 = 1253;
pub const CLI_MAX_VARGRAPHIC: u32 = 1254;
pub const CLI_MAX_GRAPHIC: u32 = 1255;
pub const SQL_DIAG_MESSAGE_TEXT_PTR: u32 = 2456;
pub const SQL_DIAG_LINE_NUMBER: u32 = 2461;
pub const SQL_DIAG_ERRMC: u32 = 2467;
pub const SQL_DIAG_SQLCA: u32 = 3037;
pub const SQL_DIAG_BYTES_PROCESSED: u32 = 2477;
pub const SQL_DIAG_RELATIVE_COST_ESTIMATE: u32 = 2504;
pub const SQL_DIAG_ROW_COUNT_ESTIMATE: u32 = 2507;
pub const SQL_DIAG_ELAPSED_SERVER_TIME: u32 = 2538;
pub const SQL_DIAG_ELAPSED_NETWORK_TIME: u32 = 2539;
pub const SQL_DIAG_ACCUMULATED_SERVER_TIME: u32 = 2540;
pub const SQL_DIAG_ACCUMULATED_NETWORK_TIME: u32 = 2541;
pub const SQL_DIAG_QUIESCE: u32 = 2549;
pub const SQL_DIAG_TOLERATED_ERROR: u32 = 2559;
pub const SQL_DIAG_NETWORK_STATISTICS: u32 = 2560;
pub const SQL_DIAG_QUIESCE_NO: u32 = 0;
pub const SQL_DIAG_QUIESCE_DATABASE: u32 = 1;
pub const SQL_DIAG_QUIESCE_INSTANCE: u32 = 2;
pub const SQL_ATTR_LITTLE_ENDIAN_UNICODE: u32 = 2457;
pub const SQL_ATTR_DIAGLEVEL: u32 = 2574;
pub const SQL_ATTR_NOTIFYLEVEL: u32 = 2575;
pub const SQL_ATTR_DIAGPATH: u32 = 2576;
pub const SQL_ATTR_MESSAGE_LINE_LENGTH: u32 = 2580;
pub const SQL_ATTR_ENABLE_IFXENV: u32 = 2585;
pub const SQL_ATTR_TRACENOHEADER: u32 = 2598;
pub const SQL_ATTR_DB2TRC_STARTUP_SIZE: u32 = 3019;
pub const SQL_ATOMIC_YES: u32 = 1;
pub const SQL_ATOMIC_NO: u32 = 0;
pub const SQL_ATOMIC_DEFAULT: u32 = 1;
pub const SQL_CONCURRENT_TRANS: u32 = 1;
pub const SQL_COORDINATED_TRANS: u32 = 2;
pub const SQL_CONNECTTYPE_DEFAULT: u32 = 1;
pub const SQL_ONEPHASE: u32 = 1;
pub const SQL_TWOPHASE: u32 = 2;
pub const SQL_SYNCPOINT_DEFAULT: u32 = 1;
pub const SQL_DB2ESTIMATE_ON: u32 = 1;
pub const SQL_DB2ESTIMATE_OFF: u32 = 0;
pub const SQL_DB2ESTIMATE_DEFAULT: u32 = 0;
pub const SQL_DB2EXPLAIN_OFF: u32 = 0;
pub const SQL_DB2EXPLAIN_SNAPSHOT_ON: u32 = 1;
pub const SQL_DB2EXPLAIN_MODE_ON: u32 = 2;
pub const SQL_DB2EXPLAIN_SNAPSHOT_MODE_ON: u32 = 3;
pub const SQL_DB2EXPLAIN_ON: u32 = 1;
pub const SQL_DB2EXPLAIN_DEFAULT: u32 = 0;
pub const SQL_WCHARTYPE_NOCONVERT: u32 = 0;
pub const SQL_WCHARTYPE_DEFAULT: u32 = 0;
pub const SQL_OPTIMIZE_SQLCOLUMNS_OFF: u32 = 0;
pub const SQL_OPTIMIZE_SQLCOLUMNS_ON: u32 = 1;
pub const SQL_OPTIMIZE_SQLCOLUMNS_DEFAULT: u32 = 0;
pub const SQL_CONNECT_WITH_XA_OFF: u32 = 0;
pub const SQL_CONNECT_WITH_XA_ON: u32 = 1;
pub const SQL_CONNECT_WITH_XA_DEFAULT: u32 = 0;
pub const SQL_ATTR_SERVER_MSGTXT_MASK_LOCAL_FIRST: u32 = 0;
pub const SQL_ATTR_SERVER_MSGTXT_MASK_WARNINGS: u32 = 1;
pub const SQL_ATTR_SERVER_MSGTXT_MASK_ERRORS: u32 = 4294967294;
pub const SQL_ATTR_SERVER_MSGTXT_MASK_ALL: u32 = 4294967295;
pub const SQL_ATTR_SERVER_MSGTXT_MASK_DEFAULT: u32 = 0;
pub const SQL_ATTR_QUERY_PATROLLER_DISABLE: u32 = 1;
pub const SQL_ATTR_QUERY_PATROLLER_ENABLE: u32 = 2;
pub const SQL_ATTR_QUERY_PATROLLER_BYPASS: u32 = 3;
pub const SQL_STATICMODE_DISABLED: u32 = 0;
pub const SQL_STATICMODE_CAPTURE: u32 = 1;
pub const SQL_STATICMODE_MATCH: u32 = 2;
pub const SQL_ATTR_DB2_MESSAGE_PREFIX_OFF: u32 = 0;
pub const SQL_ATTR_DB2_MESSAGE_PREFIX_ON: u32 = 1;
pub const SQL_ATTR_DB2_MESSAGE_PREFIX_DEFAULT: u32 = 1;
pub const SQL_ATTR_INSERT_BUFFERING_OFF: u32 = 0;
pub const SQL_ATTR_INSERT_BUFFERING_ON: u32 = 1;
pub const SQL_ATTR_INSERT_BUFFERING_IGD: u32 = 2;
pub const SQL_ROWCOUNT_PREFETCH_OFF: u32 = 0;
pub const SQL_ROWCOUNT_PREFETCH_ON: u32 = 1;
pub const SQL_SCOPE_CURROW: u32 = 0;
pub const SQL_SCOPE_TRANSACTION: u32 = 1;
pub const SQL_SCOPE_SESSION: u32 = 2;
pub const SQL_INDEX_UNIQUE: u32 = 0;
pub const SQL_INDEX_ALL: u32 = 1;
pub const SQL_INDEX_CLUSTERED: u32 = 1;
pub const SQL_INDEX_HASHED: u32 = 2;
pub const SQL_INDEX_OTHER: u32 = 3;
pub const SQL_PC_UNKNOWN: u32 = 0;
pub const SQL_PC_NON_PSEUDO: u32 = 1;
pub const SQL_PC_PSEUDO: u32 = 2;
pub const SQL_ROW_IDENTIFIER: u32 = 1;
pub const SQL_MAPGRAPHIC_DEFAULT: i32 = -1;
pub const SQL_MAPGRAPHIC_GRAPHIC: u32 = 0;
pub const SQL_MAPGRAPHIC_WCHAR: u32 = 1;
pub const SQL_MAPCHAR_DEFAULT: u32 = 0;
pub const SQL_MAPCHAR_WCHAR: u32 = 1;
pub const SQL_FETCH_NEXT: u32 = 1;
pub const SQL_FETCH_FIRST: u32 = 2;
pub const SQL_FETCH_LAST: u32 = 3;
pub const SQL_FETCH_PRIOR: u32 = 4;
pub const SQL_FETCH_ABSOLUTE: u32 = 5;
pub const SQL_FETCH_RELATIVE: u32 = 6;
pub const SQL_EXTENDED_INDICATOR_NOT_SET: u32 = 0;
pub const SQL_EXTENDED_INDICATOR_ENABLE: u32 = 1;
pub const SQL_EXTENDED_INDICATOR_DISABLE: u32 = 2;
pub const SQL_COLUMNWISE_MRI_ON: u32 = 1;
pub const SQL_COLUMNWISE_MRI_OFF: u32 = 0;
pub const SQL_ISREADONLYSQL_YES: u32 = 1;
pub const SQL_ISREADONLYSQL_NO: u32 = 0;
pub const SQL_FREE_MEMORY_ON_STMTCLOSE_YES: u32 = 1;
pub const SQL_FREE_MEMORY_ON_STMTCLOSE_NO: u32 = 0;
pub const SQL_ATTR_CACHE_USRLIBL_YES: u32 = 0;
pub const SQL_ATTR_CACHE_USRLIBL_NO: u32 = 1;
pub const SQL_ATTR_CACHE_USRLIBL_REFRESH: u32 = 2;
pub const SQL_IBMi_FMT_ISO: u32 = 1;
pub const SQL_IBMi_FMT_USA: u32 = 2;
pub const SQL_IBMi_FMT_EUR: u32 = 3;
pub const SQL_IBMi_FMT_JIS: u32 = 4;
pub const SQL_IBMi_FMT_MDY: u32 = 5;
pub const SQL_IBMi_FMT_DMY: u32 = 6;
pub const SQL_IBMi_FMT_YMD: u32 = 7;
pub const SQL_IBMi_FMT_JUL: u32 = 8;
pub const SQL_IBMi_FMT_HMS: u32 = 9;
pub const SQL_IBMi_FMT_JOB: u32 = 10;
pub const SQL_SEP_SLASH: u32 = 1;
pub const SQL_SEP_DASH: u32 = 2;
pub const SQL_SEP_PERIOD: u32 = 3;
pub const SQL_SEP_COMMA: u32 = 4;
pub const SQL_SEP_BLANK: u32 = 5;
pub const SQL_SEP_COLON: u32 = 6;
pub const SQL_SEP_JOB: u32 = 7;
pub const SQL_XML_DECLARATION_NONE: u32 = 0;
pub const SQL_XML_DECLARATION_BOM: u32 = 1;
pub const SQL_XML_DECLARATION_BASE: u32 = 2;
pub const SQL_XML_DECLARATION_ENCATTR: u32 = 4;
pub const SQL_DB2ZLOAD_RECDELIM_NONE: u32 = 0;
pub const SQL_DB2ZLOAD_RECDELIM_ALF: u32 = 1;
pub const SQL_DB2ZLOAD_RECDELIM_ENL: u32 = 2;
pub const SQL_DB2ZLOAD_RECDELIM_CRLF: u32 = 3;
pub const SQL_DB2ZLOAD_FILETYPE_DEL: u32 = 1;
pub const SQL_DB2ZLOAD_FILETYPE_INT: u32 = 2;
pub const SQL_DB2ZLOAD_FILETYPE_SPANNED: u32 = 3;
pub const DSD_ACR_AFFINITY: u32 = 1;
pub const SQL_ATTR_OUTPUT_NTS: u32 = 10001;
pub const SQL_FILE_READ: u32 = 2;
pub const SQL_FILE_CREATE: u32 = 8;
pub const SQL_FILE_OVERWRITE: u32 = 16;
pub const SQL_FILE_APPEND: u32 = 32;
pub const SQL_FROM_LOCATOR: u32 = 2;
pub const SQL_FROM_LITERAL: u32 = 3;
pub const SQL_ROUND_HALF_EVEN: u32 = 0;
pub const SQL_ROUND_HALF_UP: u32 = 1;
pub const SQL_ROUND_DOWN: u32 = 2;
pub const SQL_ROUND_CEILING: u32 = 3;
pub const SQL_ROUND_FLOOR: u32 = 4;
pub const SQL_NETWORK_STATISTICS_ON_SKIP_NOSERVER: u32 = 2;
pub const SQL_NETWORK_STATISTICS_ON: u32 = 1;
pub const SQL_NETWORK_STATISTICS_OFF: u32 = 0;
pub const SQL_NETWORK_STATISTICS_DEFAULT: u32 = 0;
pub const SQL_READ_ONLY_CONNECTION_ON: u32 = 1;
pub const SQL_READ_ONLY_CONNECTION_OFF: u32 = 0;
pub const SQL_READ_ONLY_CONNECTION_DEFAULT: u32 = 0;
pub const SQL_UNASSIGNED: i32 = -7;
pub const SQL_DETECT_READ_ONLY_TXN_ENABLE: u32 = 1;
pub const SQL_DETECT_READ_ONLY_TXN_DISABLE: u32 = 0;
pub const SQL_C_WCHAR: i32 = -8;
pub const SQL_C_TCHAR: u32 = 1;
pub type sqlint8 = ::std::os::raw::c_char;
pub type sqluint8 = ::std::os::raw::c_uchar;
pub type sqlint16 = ::std::os::raw::c_short;
pub type sqluint16 = ::std::os::raw::c_ushort;
pub type sqlint32 = ::std::os::raw::c_long;
pub type sqluint32 = ::std::os::raw::c_ulong;
pub type sqlint64 = ::std::os::raw::c_longlong;
pub type sqluint64 = ::std::os::raw::c_ulonglong;
pub type sqlintptr = sqlint64;
pub type sqluintptr = sqluint64;
pub type va_list = *mut ::std::os::raw::c_char;
extern "C" {
    pub fn __va_start(arg1: *mut *mut ::std::os::raw::c_char, ...);
}
pub type size_t = ::std::os::raw::c_ulonglong;
pub type __vcrt_bool = bool;
pub type wchar_t = ::std::os::raw::c_ushort;
extern "C" {
    pub fn __security_init_cookie();
}
extern "C" {
    pub fn __security_check_cookie(_StackCookie: usize);
}
extern "C" {
    pub fn __report_gsfailure(_StackCookie: usize);
}
extern "C" {
    pub static mut __security_cookie: usize;
}
pub const _EXCEPTION_DISPOSITION_ExceptionContinueExecution: _EXCEPTION_DISPOSITION = 0;
pub const _EXCEPTION_DISPOSITION_ExceptionContinueSearch: _EXCEPTION_DISPOSITION = 1;
pub const _EXCEPTION_DISPOSITION_ExceptionNestedException: _EXCEPTION_DISPOSITION = 2;
pub const _EXCEPTION_DISPOSITION_ExceptionCollidedUnwind: _EXCEPTION_DISPOSITION = 3;
pub type _EXCEPTION_DISPOSITION = ::std::os::raw::c_int;
pub use self::_EXCEPTION_DISPOSITION as EXCEPTION_DISPOSITION;
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,
    ) -> EXCEPTION_DISPOSITION;
}
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 __gnuc_va_list = __builtin_va_list;
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 DWORD = ::std::os::raw::c_ulong;
pub type BOOL = ::std::os::raw::c_int;
pub type BYTE = ::std::os::raw::c_uchar;
pub type WORD = ::std::os::raw::c_ushort;
pub type FLOAT = f32;
pub type PFLOAT = *mut FLOAT;
pub type PBOOL = *mut BOOL;
pub type LPBOOL = *mut BOOL;
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;
pub type __crt_bool = bool;
extern "C" {
    pub fn _invalid_parameter_noinfo();
}
extern "C" {
    pub fn _invalid_parameter_noinfo_noreturn();
}
extern "C" {
    pub fn _invoke_watson(
        _Expression: *const wchar_t,
        _FunctionName: *const wchar_t,
        _FileName: *const wchar_t,
        _LineNo: ::std::os::raw::c_uint,
        _Reserved: usize,
    );
}
pub type errno_t = ::std::os::raw::c_int;
pub type wint_t = ::std::os::raw::c_ushort;
pub type wctype_t = ::std::os::raw::c_ushort;
pub type __time32_t = ::std::os::raw::c_long;
pub type __time64_t = ::std::os::raw::c_longlong;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __crt_locale_data_public {
    pub _locale_pctype: *const ::std::os::raw::c_ushort,
    pub _locale_mb_cur_max: ::std::os::raw::c_int,
    pub _locale_lc_codepage: ::std::os::raw::c_uint,
}
#[test]
fn bindgen_test_layout___crt_locale_data_public() {
    assert_eq!(
        ::std::mem::size_of::<__crt_locale_data_public>(),
        16usize,
        concat!("Size of: ", stringify!(__crt_locale_data_public))
    );
    assert_eq!(
        ::std::mem::align_of::<__crt_locale_data_public>(),
        8usize,
        concat!("Alignment of ", stringify!(__crt_locale_data_public))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__crt_locale_data_public>()))._locale_pctype as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__crt_locale_data_public),
            "::",
            stringify!(_locale_pctype)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__crt_locale_data_public>()))._locale_mb_cur_max as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(__crt_locale_data_public),
            "::",
            stringify!(_locale_mb_cur_max)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__crt_locale_data_public>()))._locale_lc_codepage as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(__crt_locale_data_public),
            "::",
            stringify!(_locale_lc_codepage)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __crt_locale_pointers {
    pub locinfo: *mut __crt_locale_data,
    pub mbcinfo: *mut __crt_multibyte_data,
}
#[test]
fn bindgen_test_layout___crt_locale_pointers() {
    assert_eq!(
        ::std::mem::size_of::<__crt_locale_pointers>(),
        16usize,
        concat!("Size of: ", stringify!(__crt_locale_pointers))
    );
    assert_eq!(
        ::std::mem::align_of::<__crt_locale_pointers>(),
        8usize,
        concat!("Alignment of ", stringify!(__crt_locale_pointers))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<__crt_locale_pointers>())).locinfo as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__crt_locale_pointers),
            "::",
            stringify!(locinfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<__crt_locale_pointers>())).mbcinfo as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(__crt_locale_pointers),
            "::",
            stringify!(mbcinfo)
        )
    );
}
pub type _locale_t = *mut __crt_locale_pointers;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _Mbstatet {
    pub _Wchar: ::std::os::raw::c_ulong,
    pub _Byte: ::std::os::raw::c_ushort,
    pub _State: ::std::os::raw::c_ushort,
}
#[test]
fn bindgen_test_layout__Mbstatet() {
    assert_eq!(
        ::std::mem::size_of::<_Mbstatet>(),
        8usize,
        concat!("Size of: ", stringify!(_Mbstatet))
    );
    assert_eq!(
        ::std::mem::align_of::<_Mbstatet>(),
        4usize,
        concat!("Alignment of ", stringify!(_Mbstatet))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_Mbstatet>()))._Wchar as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_Mbstatet),
            "::",
            stringify!(_Wchar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_Mbstatet>()))._Byte as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_Mbstatet),
            "::",
            stringify!(_Byte)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_Mbstatet>()))._State as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_Mbstatet),
            "::",
            stringify!(_State)
        )
    );
}
pub type mbstate_t = _Mbstatet;
pub type time_t = __time64_t;
pub type rsize_t = size_t;
extern "C" {
    pub fn __pctype_func() -> *const ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn __pwctype_func() -> *const wctype_t;
}
extern "C" {
    pub fn iswalnum(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswalpha(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswascii(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswblank(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswcntrl(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswdigit(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswgraph(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswlower(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswprint(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswpunct(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswspace(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswupper(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iswxdigit(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __iswcsymf(_C: wint_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __iswcsym(_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 _iswalpha_l(_C: wint_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _iswblank_l(_C: wint_t, _Locale: _locale_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 _iswdigit_l(_C: wint_t, _Locale: _locale_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 _iswlower_l(_C: wint_t, _Locale: _locale_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 _iswpunct_l(_C: wint_t, _Locale: _locale_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 _iswupper_l(_C: wint_t, _Locale: _locale_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 _iswcsymf_l(_C: wint_t, _Locale: _locale_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 towupper(_C: wint_t) -> wint_t;
}
extern "C" {
    pub fn towlower(_C: wint_t) -> wint_t;
}
extern "C" {
    pub fn iswctype(_C: wint_t, _Type: wctype_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _towupper_l(_C: wint_t, _Locale: _locale_t) -> wint_t;
}
extern "C" {
    pub fn _towlower_l(_C: wint_t, _Locale: _locale_t) -> wint_t;
}
extern "C" {
    pub fn _iswctype_l(_C: wint_t, _Type: wctype_t, _Locale: _locale_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 is_wctype(_C: wint_t, _Type: wctype_t) -> ::std::os::raw::c_int;
}
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 isblank(_C: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _isblank_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 ___mb_cur_max_func() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ___mb_cur_max_l_func(_Locale: _locale_t) -> ::std::os::raw::c_int;
}
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 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 PCZPCWSTR = *const 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 LPCWCHAR = *const WCHAR;
pub type PCWCHAR = *const WCHAR;
pub type LPCUWCHAR = *const WCHAR;
pub type PCUWCHAR = *const WCHAR;
pub type UCSCHAR = ::std::os::raw::c_ulong;
pub type PUCSCHAR = *mut UCSCHAR;
pub type PCUCSCHAR = *const UCSCHAR;
pub type PUCSSTR = *mut UCSCHAR;
pub type PUUCSSTR = *mut UCSCHAR;
pub type PCUCSSTR = *const UCSCHAR;
pub type PCUUCSSTR = *const UCSCHAR;
pub type PUUCSCHAR = *mut UCSCHAR;
pub type PCUUCSCHAR = *const UCSCHAR;
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 PCZPCSTR = *const 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 = LPCH;
pub type PTCH = LPCH;
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 _PROCESSOR_NUMBER {
    pub Group: WORD,
    pub Number: BYTE,
    pub Reserved: BYTE,
}
#[test]
fn bindgen_test_layout__PROCESSOR_NUMBER() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESSOR_NUMBER>(),
        4usize,
        concat!("Size of: ", stringify!(_PROCESSOR_NUMBER))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESSOR_NUMBER>(),
        2usize,
        concat!("Alignment of ", stringify!(_PROCESSOR_NUMBER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROCESSOR_NUMBER>())).Group as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESSOR_NUMBER),
            "::",
            stringify!(Group)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROCESSOR_NUMBER>())).Number as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESSOR_NUMBER),
            "::",
            stringify!(Number)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROCESSOR_NUMBER>())).Reserved as *const _ as usize },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESSOR_NUMBER),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type PROCESSOR_NUMBER = _PROCESSOR_NUMBER;
pub type PPROCESSOR_NUMBER = *mut _PROCESSOR_NUMBER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _GROUP_AFFINITY {
    pub Mask: KAFFINITY,
    pub Group: WORD,
    pub Reserved: [WORD; 3usize],
}
#[test]
fn bindgen_test_layout__GROUP_AFFINITY() {
    assert_eq!(
        ::std::mem::size_of::<_GROUP_AFFINITY>(),
        16usize,
        concat!("Size of: ", stringify!(_GROUP_AFFINITY))
    );
    assert_eq!(
        ::std::mem::align_of::<_GROUP_AFFINITY>(),
        8usize,
        concat!("Alignment of ", stringify!(_GROUP_AFFINITY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GROUP_AFFINITY>())).Mask as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_GROUP_AFFINITY),
            "::",
            stringify!(Mask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GROUP_AFFINITY>())).Group as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_GROUP_AFFINITY),
            "::",
            stringify!(Group)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GROUP_AFFINITY>())).Reserved as *const _ as usize },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_GROUP_AFFINITY),
            "::",
            stringify!(Reserved)
        )
    );
}
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 = ::std::os::raw::c_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 = ::std::os::raw::c_int;
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,
}
#[test]
fn bindgen_test_layout__FLOAT128() {
    assert_eq!(
        ::std::mem::size_of::<_FLOAT128>(),
        16usize,
        concat!("Size of: ", stringify!(_FLOAT128))
    );
    assert_eq!(
        ::std::mem::align_of::<_FLOAT128>(),
        8usize,
        concat!("Alignment of ", stringify!(_FLOAT128))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FLOAT128>())).LowPart as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FLOAT128),
            "::",
            stringify!(LowPart)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FLOAT128>())).HighPart as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FLOAT128),
            "::",
            stringify!(HighPart)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__LARGE_INTEGER__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_LARGE_INTEGER__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_LARGE_INTEGER__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_LARGE_INTEGER__bindgen_ty_1>(),
        4usize,
        concat!("Alignment of ", stringify!(_LARGE_INTEGER__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_LARGE_INTEGER__bindgen_ty_1>())).LowPart as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_LARGE_INTEGER__bindgen_ty_1),
            "::",
            stringify!(LowPart)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_LARGE_INTEGER__bindgen_ty_1>())).HighPart as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_LARGE_INTEGER__bindgen_ty_1),
            "::",
            stringify!(HighPart)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _LARGE_INTEGER__bindgen_ty_2 {
    pub LowPart: DWORD,
    pub HighPart: LONG,
}
#[test]
fn bindgen_test_layout__LARGE_INTEGER__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_LARGE_INTEGER__bindgen_ty_2>(),
        8usize,
        concat!("Size of: ", stringify!(_LARGE_INTEGER__bindgen_ty_2))
    );
    assert_eq!(
        ::std::mem::align_of::<_LARGE_INTEGER__bindgen_ty_2>(),
        4usize,
        concat!("Alignment of ", stringify!(_LARGE_INTEGER__bindgen_ty_2))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_LARGE_INTEGER__bindgen_ty_2>())).LowPart as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_LARGE_INTEGER__bindgen_ty_2),
            "::",
            stringify!(LowPart)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_LARGE_INTEGER__bindgen_ty_2>())).HighPart as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_LARGE_INTEGER__bindgen_ty_2),
            "::",
            stringify!(HighPart)
        )
    );
}
#[test]
fn bindgen_test_layout__LARGE_INTEGER() {
    assert_eq!(
        ::std::mem::size_of::<_LARGE_INTEGER>(),
        8usize,
        concat!("Size of: ", stringify!(_LARGE_INTEGER))
    );
    assert_eq!(
        ::std::mem::align_of::<_LARGE_INTEGER>(),
        8usize,
        concat!("Alignment of ", stringify!(_LARGE_INTEGER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_LARGE_INTEGER>())).u as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_LARGE_INTEGER),
            "::",
            stringify!(u)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_LARGE_INTEGER>())).QuadPart as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_LARGE_INTEGER),
            "::",
            stringify!(QuadPart)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__ULARGE_INTEGER__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_ULARGE_INTEGER__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_ULARGE_INTEGER__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_ULARGE_INTEGER__bindgen_ty_1>(),
        4usize,
        concat!("Alignment of ", stringify!(_ULARGE_INTEGER__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ULARGE_INTEGER__bindgen_ty_1>())).LowPart as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ULARGE_INTEGER__bindgen_ty_1),
            "::",
            stringify!(LowPart)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ULARGE_INTEGER__bindgen_ty_1>())).HighPart as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ULARGE_INTEGER__bindgen_ty_1),
            "::",
            stringify!(HighPart)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ULARGE_INTEGER__bindgen_ty_2 {
    pub LowPart: DWORD,
    pub HighPart: DWORD,
}
#[test]
fn bindgen_test_layout__ULARGE_INTEGER__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_ULARGE_INTEGER__bindgen_ty_2>(),
        8usize,
        concat!("Size of: ", stringify!(_ULARGE_INTEGER__bindgen_ty_2))
    );
    assert_eq!(
        ::std::mem::align_of::<_ULARGE_INTEGER__bindgen_ty_2>(),
        4usize,
        concat!("Alignment of ", stringify!(_ULARGE_INTEGER__bindgen_ty_2))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ULARGE_INTEGER__bindgen_ty_2>())).LowPart as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ULARGE_INTEGER__bindgen_ty_2),
            "::",
            stringify!(LowPart)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ULARGE_INTEGER__bindgen_ty_2>())).HighPart as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ULARGE_INTEGER__bindgen_ty_2),
            "::",
            stringify!(HighPart)
        )
    );
}
#[test]
fn bindgen_test_layout__ULARGE_INTEGER() {
    assert_eq!(
        ::std::mem::size_of::<_ULARGE_INTEGER>(),
        8usize,
        concat!("Size of: ", stringify!(_ULARGE_INTEGER))
    );
    assert_eq!(
        ::std::mem::align_of::<_ULARGE_INTEGER>(),
        8usize,
        concat!("Alignment of ", stringify!(_ULARGE_INTEGER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ULARGE_INTEGER>())).u as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ULARGE_INTEGER),
            "::",
            stringify!(u)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ULARGE_INTEGER>())).QuadPart as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ULARGE_INTEGER),
            "::",
            stringify!(QuadPart)
        )
    );
}
pub type ULARGE_INTEGER = _ULARGE_INTEGER;
pub type PULARGE_INTEGER = *mut ULARGE_INTEGER;
pub type RTL_REFERENCE_COUNT = LONG_PTR;
pub type PRTL_REFERENCE_COUNT = *mut LONG_PTR;
pub type RTL_REFERENCE_COUNT32 = LONG;
pub type PRTL_REFERENCE_COUNT32 = *mut LONG;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _LUID {
    pub LowPart: DWORD,
    pub HighPart: LONG,
}
#[test]
fn bindgen_test_layout__LUID() {
    assert_eq!(
        ::std::mem::size_of::<_LUID>(),
        8usize,
        concat!("Size of: ", stringify!(_LUID))
    );
    assert_eq!(
        ::std::mem::align_of::<_LUID>(),
        4usize,
        concat!("Alignment of ", stringify!(_LUID))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_LUID>())).LowPart as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_LUID),
            "::",
            stringify!(LowPart)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_LUID>())).HighPart as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_LUID),
            "::",
            stringify!(HighPart)
        )
    );
}
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;
}
extern "C" {
    pub fn _rotl(
        Value: ::std::os::raw::c_uint,
        Shift: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn _rotl64(
        Value: ::std::os::raw::c_ulonglong,
        Shift: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn _rotr(
        Value: ::std::os::raw::c_uint,
        Shift: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn _rotr64(
        Value: ::std::os::raw::c_ulonglong,
        Shift: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_ulonglong;
}
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,
}
#[test]
fn bindgen_test_layout__LIST_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_LIST_ENTRY>(),
        16usize,
        concat!("Size of: ", stringify!(_LIST_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_LIST_ENTRY>(),
        8usize,
        concat!("Alignment of ", stringify!(_LIST_ENTRY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_LIST_ENTRY>())).Flink as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_LIST_ENTRY),
            "::",
            stringify!(Flink)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_LIST_ENTRY>())).Blink as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_LIST_ENTRY),
            "::",
            stringify!(Blink)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__SINGLE_LIST_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_SINGLE_LIST_ENTRY>(),
        8usize,
        concat!("Size of: ", stringify!(_SINGLE_LIST_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_SINGLE_LIST_ENTRY>(),
        8usize,
        concat!("Alignment of ", stringify!(_SINGLE_LIST_ENTRY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SINGLE_LIST_ENTRY>())).Next as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SINGLE_LIST_ENTRY),
            "::",
            stringify!(Next)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_LIST_ENTRY32() {
    assert_eq!(
        ::std::mem::size_of::<LIST_ENTRY32>(),
        8usize,
        concat!("Size of: ", stringify!(LIST_ENTRY32))
    );
    assert_eq!(
        ::std::mem::align_of::<LIST_ENTRY32>(),
        4usize,
        concat!("Alignment of ", stringify!(LIST_ENTRY32))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<LIST_ENTRY32>())).Flink as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(LIST_ENTRY32),
            "::",
            stringify!(Flink)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<LIST_ENTRY32>())).Blink as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(LIST_ENTRY32),
            "::",
            stringify!(Blink)
        )
    );
}
pub type PLIST_ENTRY32 = *mut LIST_ENTRY32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct LIST_ENTRY64 {
    pub Flink: ULONGLONG,
    pub Blink: ULONGLONG,
}
#[test]
fn bindgen_test_layout_LIST_ENTRY64() {
    assert_eq!(
        ::std::mem::size_of::<LIST_ENTRY64>(),
        16usize,
        concat!("Size of: ", stringify!(LIST_ENTRY64))
    );
    assert_eq!(
        ::std::mem::align_of::<LIST_ENTRY64>(),
        8usize,
        concat!("Alignment of ", stringify!(LIST_ENTRY64))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<LIST_ENTRY64>())).Flink as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(LIST_ENTRY64),
            "::",
            stringify!(Flink)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<LIST_ENTRY64>())).Blink as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(LIST_ENTRY64),
            "::",
            stringify!(Blink)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__GUID() {
    assert_eq!(
        ::std::mem::size_of::<_GUID>(),
        16usize,
        concat!("Size of: ", stringify!(_GUID))
    );
    assert_eq!(
        ::std::mem::align_of::<_GUID>(),
        4usize,
        concat!("Alignment of ", stringify!(_GUID))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GUID>())).Data1 as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_GUID),
            "::",
            stringify!(Data1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GUID>())).Data2 as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_GUID),
            "::",
            stringify!(Data2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GUID>())).Data3 as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_GUID),
            "::",
            stringify!(Data3)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GUID>())).Data4 as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_GUID),
            "::",
            stringify!(Data4)
        )
    );
}
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;
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 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 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 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 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 strchr(
        _Str: *const ::std::os::raw::c_char,
        _Val: ::std::os::raw::c_int,
    ) -> *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 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 wcschr(
        _Str: *const ::std::os::raw::c_ushort,
        _Ch: ::std::os::raw::c_ushort,
    ) -> *mut ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn wcsrchr(_Str: *const wchar_t, _Ch: wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsstr(_Str: *const wchar_t, _SubStr: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _memicmp(
        _Buf1: *const ::std::os::raw::c_void,
        _Buf2: *const ::std::os::raw::c_void,
        _Size: size_t,
    ) -> ::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: size_t,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
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: ::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: size_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wcscat_s(
        _Destination: *mut wchar_t,
        _SizeInWords: rsize_t,
        _Source: *const wchar_t,
    ) -> errno_t;
}
extern "C" {
    pub fn wcscpy_s(
        _Destination: *mut wchar_t,
        _SizeInWords: rsize_t,
        _Source: *const wchar_t,
    ) -> errno_t;
}
extern "C" {
    pub fn wcsncat_s(
        _Destination: *mut wchar_t,
        _SizeInWords: rsize_t,
        _Source: *const wchar_t,
        _MaxCount: rsize_t,
    ) -> errno_t;
}
extern "C" {
    pub fn wcsncpy_s(
        _Destination: *mut wchar_t,
        _SizeInWords: rsize_t,
        _Source: *const wchar_t,
        _MaxCount: rsize_t,
    ) -> errno_t;
}
extern "C" {
    pub fn wcstok_s(
        _String: *mut wchar_t,
        _Delimiter: *const wchar_t,
        _Context: *mut *mut wchar_t,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcsdup(_String: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcscat(_Destination: *mut wchar_t, _Source: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcscmp(
        _String1: *const ::std::os::raw::c_ushort,
        _String2: *const ::std::os::raw::c_ushort,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wcscpy(_Destination: *mut wchar_t, _Source: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcscspn(_String: *const wchar_t, _Control: *const wchar_t) -> size_t;
}
extern "C" {
    pub fn wcslen(_String: *const ::std::os::raw::c_ushort) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn wcsnlen(_Source: *const wchar_t, _MaxCount: size_t) -> size_t;
}
extern "C" {
    pub fn wcsncat(
        _Destination: *mut wchar_t,
        _Source: *const wchar_t,
        _Count: size_t,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsncmp(
        _String1: *const ::std::os::raw::c_ushort,
        _String2: *const ::std::os::raw::c_ushort,
        _MaxCount: ::std::os::raw::c_ulonglong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wcsncpy(
        _Destination: *mut wchar_t,
        _Source: *const wchar_t,
        _Count: size_t,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn wcspbrk(_String: *const wchar_t, _Control: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsspn(_String: *const wchar_t, _Control: *const wchar_t) -> size_t;
}
extern "C" {
    pub fn wcstok(
        _String: *mut wchar_t,
        _Delimiter: *const wchar_t,
        _Context: *mut *mut wchar_t,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcserror(_ErrorNumber: ::std::os::raw::c_int) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcserror_s(
        _Buffer: *mut wchar_t,
        _SizeInWords: size_t,
        _ErrorNumber: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn __wcserror(_String: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn __wcserror_s(
        _Buffer: *mut wchar_t,
        _SizeInWords: size_t,
        _ErrorMessage: *const wchar_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _wcsicmp(_String1: *const wchar_t, _String2: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsicmp_l(
        _String1: *const wchar_t,
        _String2: *const wchar_t,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsnicmp(
        _String1: *const wchar_t,
        _String2: *const wchar_t,
        _MaxCount: size_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsnicmp_l(
        _String1: *const wchar_t,
        _String2: *const wchar_t,
        _MaxCount: size_t,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsnset_s(
        _Destination: *mut wchar_t,
        _SizeInWords: size_t,
        _Value: wchar_t,
        _MaxCount: size_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _wcsnset(_String: *mut wchar_t, _Value: wchar_t, _MaxCount: size_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcsrev(_String: *mut wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcsset_s(_Destination: *mut wchar_t, _SizeInWords: size_t, _Value: wchar_t) -> errno_t;
}
extern "C" {
    pub fn _wcsset(_String: *mut wchar_t, _Value: wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcslwr_s(_String: *mut wchar_t, _SizeInWords: size_t) -> errno_t;
}
extern "C" {
    pub fn _wcslwr(_String: *mut wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcslwr_s_l(_String: *mut wchar_t, _SizeInWords: size_t, _Locale: _locale_t) -> errno_t;
}
extern "C" {
    pub fn _wcslwr_l(_String: *mut wchar_t, _Locale: _locale_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcsupr_s(_String: *mut wchar_t, _Size: size_t) -> errno_t;
}
extern "C" {
    pub fn _wcsupr(_String: *mut wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wcsupr_s_l(_String: *mut wchar_t, _Size: size_t, _Locale: _locale_t) -> errno_t;
}
extern "C" {
    pub fn _wcsupr_l(_String: *mut wchar_t, _Locale: _locale_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsxfrm(
        _Destination: *mut wchar_t,
        _Source: *const wchar_t,
        _MaxCount: size_t,
    ) -> size_t;
}
extern "C" {
    pub fn _wcsxfrm_l(
        _Destination: *mut wchar_t,
        _Source: *const wchar_t,
        _MaxCount: size_t,
        _Locale: _locale_t,
    ) -> size_t;
}
extern "C" {
    pub fn wcscoll(_String1: *const wchar_t, _String2: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcscoll_l(
        _String1: *const wchar_t,
        _String2: *const wchar_t,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsicoll(_String1: *const wchar_t, _String2: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsicoll_l(
        _String1: *const wchar_t,
        _String2: *const wchar_t,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsncoll(
        _String1: *const wchar_t,
        _String2: *const wchar_t,
        _MaxCount: size_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsncoll_l(
        _String1: *const wchar_t,
        _String2: *const wchar_t,
        _MaxCount: size_t,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsnicoll(
        _String1: *const wchar_t,
        _String2: *const wchar_t,
        _MaxCount: size_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wcsnicoll_l(
        _String1: *const wchar_t,
        _String2: *const wchar_t,
        _MaxCount: size_t,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wcsdup(_String: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsicmp(_String1: *const wchar_t, _String2: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wcsnicmp(
        _String1: *const wchar_t,
        _String2: *const wchar_t,
        _MaxCount: size_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wcsnset(_String: *mut wchar_t, _Value: wchar_t, _MaxCount: size_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsrev(_String: *mut wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsset(_String: *mut wchar_t, _Value: wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcslwr(_String: *mut wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsupr(_String: *mut wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn wcsicoll(_String1: *const wchar_t, _String2: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strcpy_s(
        _Destination: *mut ::std::os::raw::c_char,
        _SizeInBytes: rsize_t,
        _Source: *const ::std::os::raw::c_char,
    ) -> errno_t;
}
extern "C" {
    pub fn strcat_s(
        _Destination: *mut ::std::os::raw::c_char,
        _SizeInBytes: rsize_t,
        _Source: *const ::std::os::raw::c_char,
    ) -> errno_t;
}
extern "C" {
    pub fn strerror_s(
        _Buffer: *mut ::std::os::raw::c_char,
        _SizeInBytes: size_t,
        _ErrorNumber: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn strncat_s(
        _Destination: *mut ::std::os::raw::c_char,
        _SizeInBytes: rsize_t,
        _Source: *const ::std::os::raw::c_char,
        _MaxCount: rsize_t,
    ) -> errno_t;
}
extern "C" {
    pub fn strncpy_s(
        _Destination: *mut ::std::os::raw::c_char,
        _SizeInBytes: rsize_t,
        _Source: *const ::std::os::raw::c_char,
        _MaxCount: rsize_t,
    ) -> errno_t;
}
extern "C" {
    pub fn strtok_s(
        _String: *mut ::std::os::raw::c_char,
        _Delimiter: *const ::std::os::raw::c_char,
        _Context: *mut *mut ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
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: size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn strcat(
        _Destination: *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 _strcmpi(
        _String1: *const ::std::os::raw::c_char,
        _String2: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strcoll(
        _String1: *const ::std::os::raw::c_char,
        _String2: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _strcoll_l(
        _String1: *const ::std::os::raw::c_char,
        _String2: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strcpy(
        _Destination: *mut ::std::os::raw::c_char,
        _Source: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
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 _strdup(_Source: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _strerror(_ErrorMessage: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _strerror_s(
        _Buffer: *mut ::std::os::raw::c_char,
        _SizeInBytes: size_t,
        _ErrorMessage: *const ::std::os::raw::c_char,
    ) -> errno_t;
}
extern "C" {
    pub fn strerror(_ErrorMessage: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _stricmp(
        _String1: *const ::std::os::raw::c_char,
        _String2: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _stricoll(
        _String1: *const ::std::os::raw::c_char,
        _String2: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _stricoll_l(
        _String1: *const ::std::os::raw::c_char,
        _String2: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _stricmp_l(
        _String1: *const ::std::os::raw::c_char,
        _String2: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> ::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 _strlwr_s(_String: *mut ::std::os::raw::c_char, _Size: size_t) -> errno_t;
}
extern "C" {
    pub fn _strlwr(_String: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _strlwr_s_l(
        _String: *mut ::std::os::raw::c_char,
        _Size: size_t,
        _Locale: _locale_t,
    ) -> errno_t;
}
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(
        _Destination: *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(
        _String1: *const ::std::os::raw::c_char,
        _String2: *const ::std::os::raw::c_char,
        _MaxCount: size_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _strnicmp_l(
        _String1: *const ::std::os::raw::c_char,
        _String2: *const ::std::os::raw::c_char,
        _MaxCount: size_t,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _strnicoll(
        _String1: *const ::std::os::raw::c_char,
        _String2: *const ::std::os::raw::c_char,
        _MaxCount: size_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _strnicoll_l(
        _String1: *const ::std::os::raw::c_char,
        _String2: *const ::std::os::raw::c_char,
        _MaxCount: size_t,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _strncoll(
        _String1: *const ::std::os::raw::c_char,
        _String2: *const ::std::os::raw::c_char,
        _MaxCount: size_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _strncoll_l(
        _String1: *const ::std::os::raw::c_char,
        _String2: *const ::std::os::raw::c_char,
        _MaxCount: size_t,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __strncnt(_String: *const ::std::os::raw::c_char, _Count: size_t) -> size_t;
}
extern "C" {
    pub fn strncpy(
        _Destination: *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 strnlen(_String: *const ::std::os::raw::c_char, _MaxCount: size_t) -> size_t;
}
extern "C" {
    pub fn _strnset_s(
        _String: *mut ::std::os::raw::c_char,
        _SizeInBytes: size_t,
        _Value: ::std::os::raw::c_int,
        _MaxCount: size_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _strnset(
        _Destination: *mut ::std::os::raw::c_char,
        _Value: ::std::os::raw::c_int,
        _Count: size_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 _strrev(_Str: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _strset_s(
        _Destination: *mut ::std::os::raw::c_char,
        _DestinationSize: size_t,
        _Value: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _strset(
        _Destination: *mut ::std::os::raw::c_char,
        _Value: ::std::os::raw::c_int,
    ) -> *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 strtok(
        _String: *mut ::std::os::raw::c_char,
        _Delimiter: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _strupr_s(_String: *mut ::std::os::raw::c_char, _Size: size_t) -> errno_t;
}
extern "C" {
    pub fn _strupr(_String: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _strupr_s_l(
        _String: *mut ::std::os::raw::c_char,
        _Size: size_t,
        _Locale: _locale_t,
    ) -> errno_t;
}
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(
        _Destination: *mut ::std::os::raw::c_char,
        _Source: *const ::std::os::raw::c_char,
        _MaxCount: ::std::os::raw::c_ulonglong,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn _strxfrm_l(
        _Destination: *mut ::std::os::raw::c_char,
        _Source: *const ::std::os::raw::c_char,
        _MaxCount: size_t,
        _Locale: _locale_t,
    ) -> size_t;
}
extern "C" {
    pub fn strdup(_String: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strcmpi(
        _String1: *const ::std::os::raw::c_char,
        _String2: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn stricmp(
        _String1: *const ::std::os::raw::c_char,
        _String2: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strlwr(_String: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strnicmp(
        _String1: *const ::std::os::raw::c_char,
        _String2: *const ::std::os::raw::c_char,
        _MaxCount: size_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strnset(
        _String: *mut ::std::os::raw::c_char,
        _Value: ::std::os::raw::c_int,
        _MaxCount: size_t,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strrev(_String: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strset(
        _String: *mut ::std::os::raw::c_char,
        _Value: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strupr(_String: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _OBJECTID {
    pub Lineage: GUID,
    pub Uniquifier: DWORD,
}
#[test]
fn bindgen_test_layout__OBJECTID() {
    assert_eq!(
        ::std::mem::size_of::<_OBJECTID>(),
        20usize,
        concat!("Size of: ", stringify!(_OBJECTID))
    );
    assert_eq!(
        ::std::mem::align_of::<_OBJECTID>(),
        4usize,
        concat!("Alignment of ", stringify!(_OBJECTID))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OBJECTID>())).Lineage as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OBJECTID),
            "::",
            stringify!(Lineage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OBJECTID>())).Uniquifier as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_OBJECTID),
            "::",
            stringify!(Uniquifier)
        )
    );
}
pub type OBJECTID = _OBJECTID;
pub type PEXCEPTION_ROUTINE = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: *mut _EXCEPTION_RECORD,
        arg2: PVOID,
        arg3: *mut _CONTEXT,
        arg4: PVOID,
    ) -> EXCEPTION_DISPOSITION,
>;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _bindgen_ty_1 {
    pub x: ::std::os::raw::c_char,
    pub test: LARGE_INTEGER,
}
#[test]
fn bindgen_test_layout__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_bindgen_ty_1>(),
        16usize,
        concat!("Size of: ", stringify!(_bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(_bindgen_ty_1))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_bindgen_ty_1>())).x as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_bindgen_ty_1),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_bindgen_ty_1>())).test as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_bindgen_ty_1),
            "::",
            stringify!(test)
        )
    );
}
pub type __C_ASSERT__ = [::std::os::raw::c_char; 1usize];
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,
}
#[test]
fn bindgen_test_layout__M128A() {
    assert_eq!(
        ::std::mem::size_of::<_M128A>(),
        16usize,
        concat!("Size of: ", stringify!(_M128A))
    );
    assert_eq!(
        ::std::mem::align_of::<_M128A>(),
        16usize,
        concat!("Alignment of ", stringify!(_M128A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_M128A>())).Low as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_M128A),
            "::",
            stringify!(Low)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_M128A>())).High as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_M128A),
            "::",
            stringify!(High)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__XSAVE_FORMAT() {
    assert_eq!(
        ::std::mem::size_of::<_XSAVE_FORMAT>(),
        512usize,
        concat!("Size of: ", stringify!(_XSAVE_FORMAT))
    );
    assert_eq!(
        ::std::mem::align_of::<_XSAVE_FORMAT>(),
        16usize,
        concat!("Alignment of ", stringify!(_XSAVE_FORMAT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_XSAVE_FORMAT>())).ControlWord as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSAVE_FORMAT),
            "::",
            stringify!(ControlWord)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_XSAVE_FORMAT>())).StatusWord as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSAVE_FORMAT),
            "::",
            stringify!(StatusWord)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_XSAVE_FORMAT>())).TagWord as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSAVE_FORMAT),
            "::",
            stringify!(TagWord)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_XSAVE_FORMAT>())).Reserved1 as *const _ as usize },
        5usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSAVE_FORMAT),
            "::",
            stringify!(Reserved1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_XSAVE_FORMAT>())).ErrorOpcode as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSAVE_FORMAT),
            "::",
            stringify!(ErrorOpcode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_XSAVE_FORMAT>())).ErrorOffset as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSAVE_FORMAT),
            "::",
            stringify!(ErrorOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_XSAVE_FORMAT>())).ErrorSelector as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSAVE_FORMAT),
            "::",
            stringify!(ErrorSelector)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_XSAVE_FORMAT>())).Reserved2 as *const _ as usize },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSAVE_FORMAT),
            "::",
            stringify!(Reserved2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_XSAVE_FORMAT>())).DataOffset as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSAVE_FORMAT),
            "::",
            stringify!(DataOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_XSAVE_FORMAT>())).DataSelector as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSAVE_FORMAT),
            "::",
            stringify!(DataSelector)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_XSAVE_FORMAT>())).Reserved3 as *const _ as usize },
        22usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSAVE_FORMAT),
            "::",
            stringify!(Reserved3)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_XSAVE_FORMAT>())).MxCsr as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSAVE_FORMAT),
            "::",
            stringify!(MxCsr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_XSAVE_FORMAT>())).MxCsr_Mask as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSAVE_FORMAT),
            "::",
            stringify!(MxCsr_Mask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_XSAVE_FORMAT>())).FloatRegisters as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSAVE_FORMAT),
            "::",
            stringify!(FloatRegisters)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_XSAVE_FORMAT>())).XmmRegisters as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSAVE_FORMAT),
            "::",
            stringify!(XmmRegisters)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_XSAVE_FORMAT>())).Reserved4 as *const _ as usize },
        416usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSAVE_FORMAT),
            "::",
            stringify!(Reserved4)
        )
    );
}
pub type XSAVE_FORMAT = _XSAVE_FORMAT;
pub type PXSAVE_FORMAT = *mut _XSAVE_FORMAT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _XSAVE_CET_U_FORMAT {
    pub Ia32CetUMsr: DWORD64,
    pub Ia32Pl3SspMsr: DWORD64,
}
#[test]
fn bindgen_test_layout__XSAVE_CET_U_FORMAT() {
    assert_eq!(
        ::std::mem::size_of::<_XSAVE_CET_U_FORMAT>(),
        16usize,
        concat!("Size of: ", stringify!(_XSAVE_CET_U_FORMAT))
    );
    assert_eq!(
        ::std::mem::align_of::<_XSAVE_CET_U_FORMAT>(),
        8usize,
        concat!("Alignment of ", stringify!(_XSAVE_CET_U_FORMAT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_XSAVE_CET_U_FORMAT>())).Ia32CetUMsr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSAVE_CET_U_FORMAT),
            "::",
            stringify!(Ia32CetUMsr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_XSAVE_CET_U_FORMAT>())).Ia32Pl3SspMsr as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSAVE_CET_U_FORMAT),
            "::",
            stringify!(Ia32Pl3SspMsr)
        )
    );
}
pub type XSAVE_CET_U_FORMAT = _XSAVE_CET_U_FORMAT;
pub type PXSAVE_CET_U_FORMAT = *mut _XSAVE_CET_U_FORMAT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _XSAVE_AREA_HEADER {
    pub Mask: DWORD64,
    pub CompactionMask: DWORD64,
    pub Reserved2: [DWORD64; 6usize],
}
#[test]
fn bindgen_test_layout__XSAVE_AREA_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<_XSAVE_AREA_HEADER>(),
        64usize,
        concat!("Size of: ", stringify!(_XSAVE_AREA_HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<_XSAVE_AREA_HEADER>(),
        8usize,
        concat!("Alignment of ", stringify!(_XSAVE_AREA_HEADER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_XSAVE_AREA_HEADER>())).Mask as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSAVE_AREA_HEADER),
            "::",
            stringify!(Mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_XSAVE_AREA_HEADER>())).CompactionMask as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSAVE_AREA_HEADER),
            "::",
            stringify!(CompactionMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_XSAVE_AREA_HEADER>())).Reserved2 as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSAVE_AREA_HEADER),
            "::",
            stringify!(Reserved2)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__XSAVE_AREA() {
    assert_eq!(
        ::std::mem::size_of::<_XSAVE_AREA>(),
        576usize,
        concat!("Size of: ", stringify!(_XSAVE_AREA))
    );
    assert_eq!(
        ::std::mem::align_of::<_XSAVE_AREA>(),
        16usize,
        concat!("Alignment of ", stringify!(_XSAVE_AREA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_XSAVE_AREA>())).LegacyState as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSAVE_AREA),
            "::",
            stringify!(LegacyState)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_XSAVE_AREA>())).Header as *const _ as usize },
        512usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSAVE_AREA),
            "::",
            stringify!(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,
}
#[test]
fn bindgen_test_layout__XSTATE_CONTEXT() {
    assert_eq!(
        ::std::mem::size_of::<_XSTATE_CONTEXT>(),
        32usize,
        concat!("Size of: ", stringify!(_XSTATE_CONTEXT))
    );
    assert_eq!(
        ::std::mem::align_of::<_XSTATE_CONTEXT>(),
        8usize,
        concat!("Alignment of ", stringify!(_XSTATE_CONTEXT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_XSTATE_CONTEXT>())).Mask as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSTATE_CONTEXT),
            "::",
            stringify!(Mask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_XSTATE_CONTEXT>())).Length as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSTATE_CONTEXT),
            "::",
            stringify!(Length)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_XSTATE_CONTEXT>())).Reserved1 as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSTATE_CONTEXT),
            "::",
            stringify!(Reserved1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_XSTATE_CONTEXT>())).Area as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSTATE_CONTEXT),
            "::",
            stringify!(Area)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_XSTATE_CONTEXT>())).Buffer as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSTATE_CONTEXT),
            "::",
            stringify!(Buffer)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__SCOPE_TABLE_AMD64__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_SCOPE_TABLE_AMD64__bindgen_ty_1>(),
        16usize,
        concat!("Size of: ", stringify!(_SCOPE_TABLE_AMD64__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCOPE_TABLE_AMD64__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_SCOPE_TABLE_AMD64__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCOPE_TABLE_AMD64__bindgen_ty_1>())).BeginAddress as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCOPE_TABLE_AMD64__bindgen_ty_1),
            "::",
            stringify!(BeginAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCOPE_TABLE_AMD64__bindgen_ty_1>())).EndAddress as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCOPE_TABLE_AMD64__bindgen_ty_1),
            "::",
            stringify!(EndAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCOPE_TABLE_AMD64__bindgen_ty_1>())).HandlerAddress as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCOPE_TABLE_AMD64__bindgen_ty_1),
            "::",
            stringify!(HandlerAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCOPE_TABLE_AMD64__bindgen_ty_1>())).JumpTarget as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCOPE_TABLE_AMD64__bindgen_ty_1),
            "::",
            stringify!(JumpTarget)
        )
    );
}
#[test]
fn bindgen_test_layout__SCOPE_TABLE_AMD64() {
    assert_eq!(
        ::std::mem::size_of::<_SCOPE_TABLE_AMD64>(),
        20usize,
        concat!("Size of: ", stringify!(_SCOPE_TABLE_AMD64))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCOPE_TABLE_AMD64>(),
        4usize,
        concat!("Alignment of ", stringify!(_SCOPE_TABLE_AMD64))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCOPE_TABLE_AMD64>())).Count as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCOPE_TABLE_AMD64),
            "::",
            stringify!(Count)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCOPE_TABLE_AMD64>())).ScopeRecord as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCOPE_TABLE_AMD64),
            "::",
            stringify!(ScopeRecord)
        )
    );
}
pub type SCOPE_TABLE_AMD64 = _SCOPE_TABLE_AMD64;
pub type PSCOPE_TABLE_AMD64 = *mut _SCOPE_TABLE_AMD64;
extern "C" {
    pub fn _bittest(
        Base: *const ::std::os::raw::c_long,
        Offset: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn _bittestandcomplement(
        Base: *mut ::std::os::raw::c_long,
        Offset: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn _bittestandset(
        Base: *mut ::std::os::raw::c_long,
        Offset: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn _bittestandreset(
        Base: *mut ::std::os::raw::c_long,
        Offset: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn _interlockedbittestandset(
        Base: *mut ::std::os::raw::c_long,
        Offset: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn _interlockedbittestandreset(
        Base: *mut ::std::os::raw::c_long,
        Offset: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn _bittest64(
        Base: *const ::std::os::raw::c_longlong,
        Offset: ::std::os::raw::c_longlong,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn _bittestandcomplement64(
        Base: *mut ::std::os::raw::c_longlong,
        Offset: ::std::os::raw::c_longlong,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn _bittestandset64(
        Base: *mut ::std::os::raw::c_longlong,
        Offset: ::std::os::raw::c_longlong,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn _bittestandreset64(
        Base: *mut ::std::os::raw::c_longlong,
        Offset: ::std::os::raw::c_longlong,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn _interlockedbittestandset64(
        Base: *mut ::std::os::raw::c_longlong,
        Offset: ::std::os::raw::c_longlong,
    ) -> ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn _interlockedbittestandreset64(
        Base: *mut ::std::os::raw::c_longlong,
        Offset: ::std::os::raw::c_longlong,
    ) -> ::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 _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 _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 _InterlockedAnd(
        Destination: *mut ::std::os::raw::c_long,
        Value: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _InterlockedOr(
        Destination: *mut ::std::os::raw::c_long,
        Value: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _InterlockedXor(
        Destination: *mut ::std::os::raw::c_long,
        Value: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _InterlockedAnd64(
        Destination: *mut ::std::os::raw::c_longlong,
        Value: ::std::os::raw::c_longlong,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _InterlockedOr64(
        Destination: *mut ::std::os::raw::c_longlong,
        Value: ::std::os::raw::c_longlong,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _InterlockedXor64(
        Destination: *mut ::std::os::raw::c_longlong,
        Value: ::std::os::raw::c_longlong,
    ) -> ::std::os::raw::c_longlong;
}
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 _InterlockedExchange(
        Target: *mut ::std::os::raw::c_long,
        Value: ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_long;
}
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 _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 _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 _InterlockedCompareExchange128(
        Destination: *mut ::std::os::raw::c_longlong,
        ExchangeHigh: ::std::os::raw::c_longlong,
        ExchangeLow: ::std::os::raw::c_longlong,
        ComparandResult: *mut ::std::os::raw::c_longlong,
    ) -> ::std::os::raw::c_uchar;
}
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 _InterlockedExchange8(
        Target: *mut ::std::os::raw::c_char,
        Value: ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_char;
}
extern "C" {
    pub fn _InterlockedExchange16(
        Destination: *mut ::std::os::raw::c_short,
        ExChange: ::std::os::raw::c_short,
    ) -> ::std::os::raw::c_short;
}
extern "C" {
    pub fn _InterlockedExchangeAdd8(
        _Addend: *mut ::std::os::raw::c_char,
        _Value: ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_char;
}
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 ::std::os::raw::c_short,
        Value: ::std::os::raw::c_short,
    ) -> ::std::os::raw::c_short;
}
extern "C" {
    pub fn _InterlockedOr16(
        Destination: *mut ::std::os::raw::c_short,
        Value: ::std::os::raw::c_short,
    ) -> ::std::os::raw::c_short;
}
extern "C" {
    pub fn _InterlockedXor16(
        Destination: *mut ::std::os::raw::c_short,
        Value: ::std::os::raw::c_short,
    ) -> ::std::os::raw::c_short;
}
extern "C" {
    pub fn __cpuidex(
        CPUInfo: *mut ::std::os::raw::c_int,
        Function: ::std::os::raw::c_int,
        SubLeaf: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn _mm_clflush(Address: *const ::std::os::raw::c_void);
}
extern "C" {
    pub fn _ReadWriteBarrier();
}
extern "C" {
    pub fn __faststorefence();
}
extern "C" {
    pub fn _mm_lfence();
}
extern "C" {
    pub fn _mm_mfence();
}
extern "C" {
    pub fn _mm_sfence();
}
extern "C" {
    pub fn _mm_pause();
}
extern "C" {
    pub fn _mm_prefetch(a: *const ::std::os::raw::c_char, sel: ::std::os::raw::c_int);
}
extern "C" {
    pub fn _m_prefetchw(Source: *const ::std::os::raw::c_void);
}
extern "C" {
    pub fn _mm_getcsr() -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn _mm_setcsr(MxCsr: ::std::os::raw::c_uint);
}
extern "C" {
    pub fn __getcallerseflags() -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn __segmentlimit(Selector: DWORD) -> DWORD;
}
extern "C" {
    pub fn __readpmc(Counter: DWORD) -> DWORD64;
}
extern "C" {
    pub fn __rdtsc() -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn __movsb(Destination: PBYTE, Source: *const BYTE, Count: SIZE_T);
}
extern "C" {
    pub fn __movsw(Destination: PWORD, Source: *const WORD, Count: SIZE_T);
}
extern "C" {
    pub fn __movsd(Destination: PDWORD, Source: *const DWORD, Count: SIZE_T);
}
extern "C" {
    pub fn __movsq(Destination: PDWORD64, Source: *const DWORD64, Count: SIZE_T);
}
extern "C" {
    pub fn __stosb(
        Destination: *mut ::std::os::raw::c_uchar,
        Value: ::std::os::raw::c_uchar,
        Count: ::std::os::raw::c_ulonglong,
    );
}
extern "C" {
    pub fn __stosw(Destination: PWORD, Value: WORD, Count: SIZE_T);
}
extern "C" {
    pub fn __stosd(Destination: PDWORD, Value: DWORD, Count: SIZE_T);
}
extern "C" {
    pub fn __stosq(Destination: PDWORD64, Value: DWORD64, Count: SIZE_T);
}
extern "C" {
    pub fn __mulh(
        Multiplier: ::std::os::raw::c_longlong,
        Multiplicand: ::std::os::raw::c_longlong,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn __umulh(
        Multiplier: ::std::os::raw::c_ulonglong,
        Multiplicand: ::std::os::raw::c_ulonglong,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn __popcnt64(operand: ::std::os::raw::c_ulonglong) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn __shiftleft128(
        LowPart: ::std::os::raw::c_ulonglong,
        HighPart: ::std::os::raw::c_ulonglong,
        Shift: ::std::os::raw::c_uchar,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn __shiftright128(
        LowPart: ::std::os::raw::c_ulonglong,
        HighPart: ::std::os::raw::c_ulonglong,
        Shift: ::std::os::raw::c_uchar,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn _mul128(
        Multiplier: ::std::os::raw::c_longlong,
        Multiplicand: ::std::os::raw::c_longlong,
        HighProduct: *mut ::std::os::raw::c_longlong,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _umul128(
        Multiplier: ::std::os::raw::c_ulonglong,
        Multiplicand: ::std::os::raw::c_ulonglong,
        HighProduct: *mut ::std::os::raw::c_ulonglong,
    ) -> ::std::os::raw::c_ulonglong;
}
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: DWORD, Data: BYTE);
}
extern "C" {
    pub fn __writegsword(Offset: DWORD, Data: WORD);
}
extern "C" {
    pub fn __writegsdword(Offset: DWORD, Data: DWORD);
}
extern "C" {
    pub fn __writegsqword(Offset: DWORD, Data: DWORD64);
}
extern "C" {
    pub fn __incgsbyte(Offset: DWORD);
}
extern "C" {
    pub fn __addgsbyte(Offset: DWORD, Value: BYTE);
}
extern "C" {
    pub fn __incgsword(Offset: DWORD);
}
extern "C" {
    pub fn __addgsword(Offset: DWORD, Value: WORD);
}
extern "C" {
    pub fn __incgsdword(Offset: DWORD);
}
extern "C" {
    pub fn __addgsdword(Offset: DWORD, Value: DWORD);
}
extern "C" {
    pub fn __incgsqword(Offset: DWORD);
}
extern "C" {
    pub fn __addgsqword(Offset: DWORD, Value: DWORD64);
}
pub type XMM_SAVE_AREA32 = XSAVE_FORMAT;
pub type PXMM_SAVE_AREA32 = *mut XSAVE_FORMAT;
#[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 __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,
}
#[test]
fn bindgen_test_layout__CONTEXT__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_CONTEXT__bindgen_ty_1__bindgen_ty_1>(),
        416usize,
        concat!(
            "Size of: ",
            stringify!(_CONTEXT__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CONTEXT__bindgen_ty_1__bindgen_ty_1>(),
        16usize,
        concat!(
            "Alignment of ",
            stringify!(_CONTEXT__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONTEXT__bindgen_ty_1__bindgen_ty_1>())).Header as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Header)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONTEXT__bindgen_ty_1__bindgen_ty_1>())).Legacy as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Legacy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONTEXT__bindgen_ty_1__bindgen_ty_1>())).Xmm0 as *const _
                as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Xmm0)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONTEXT__bindgen_ty_1__bindgen_ty_1>())).Xmm1 as *const _
                as usize
        },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Xmm1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONTEXT__bindgen_ty_1__bindgen_ty_1>())).Xmm2 as *const _
                as usize
        },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Xmm2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONTEXT__bindgen_ty_1__bindgen_ty_1>())).Xmm3 as *const _
                as usize
        },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Xmm3)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONTEXT__bindgen_ty_1__bindgen_ty_1>())).Xmm4 as *const _
                as usize
        },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Xmm4)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONTEXT__bindgen_ty_1__bindgen_ty_1>())).Xmm5 as *const _
                as usize
        },
        240usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Xmm5)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONTEXT__bindgen_ty_1__bindgen_ty_1>())).Xmm6 as *const _
                as usize
        },
        256usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Xmm6)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONTEXT__bindgen_ty_1__bindgen_ty_1>())).Xmm7 as *const _
                as usize
        },
        272usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Xmm7)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONTEXT__bindgen_ty_1__bindgen_ty_1>())).Xmm8 as *const _
                as usize
        },
        288usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Xmm8)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONTEXT__bindgen_ty_1__bindgen_ty_1>())).Xmm9 as *const _
                as usize
        },
        304usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Xmm9)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONTEXT__bindgen_ty_1__bindgen_ty_1>())).Xmm10 as *const _
                as usize
        },
        320usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Xmm10)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONTEXT__bindgen_ty_1__bindgen_ty_1>())).Xmm11 as *const _
                as usize
        },
        336usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Xmm11)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONTEXT__bindgen_ty_1__bindgen_ty_1>())).Xmm12 as *const _
                as usize
        },
        352usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Xmm12)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONTEXT__bindgen_ty_1__bindgen_ty_1>())).Xmm13 as *const _
                as usize
        },
        368usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Xmm13)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONTEXT__bindgen_ty_1__bindgen_ty_1>())).Xmm14 as *const _
                as usize
        },
        384usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Xmm14)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONTEXT__bindgen_ty_1__bindgen_ty_1>())).Xmm15 as *const _
                as usize
        },
        400usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Xmm15)
        )
    );
}
#[test]
fn bindgen_test_layout__CONTEXT__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_CONTEXT__bindgen_ty_1>(),
        512usize,
        concat!("Size of: ", stringify!(_CONTEXT__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_CONTEXT__bindgen_ty_1>(),
        16usize,
        concat!("Alignment of ", stringify!(_CONTEXT__bindgen_ty_1))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT__bindgen_ty_1>())).FltSave as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT__bindgen_ty_1),
            "::",
            stringify!(FltSave)
        )
    );
}
#[test]
fn bindgen_test_layout__CONTEXT() {
    assert_eq!(
        ::std::mem::size_of::<_CONTEXT>(),
        1232usize,
        concat!("Size of: ", stringify!(_CONTEXT))
    );
    assert_eq!(
        ::std::mem::align_of::<_CONTEXT>(),
        16usize,
        concat!("Alignment of ", stringify!(_CONTEXT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).P1Home as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(P1Home)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).P2Home as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(P2Home)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).P3Home as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(P3Home)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).P4Home as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(P4Home)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).P5Home as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(P5Home)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).P6Home as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(P6Home)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).ContextFlags as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(ContextFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).MxCsr as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(MxCsr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).SegCs as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(SegCs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).SegDs as *const _ as usize },
        58usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(SegDs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).SegEs as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(SegEs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).SegFs as *const _ as usize },
        62usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(SegFs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).SegGs as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(SegGs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).SegSs as *const _ as usize },
        66usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(SegSs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).EFlags as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(EFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).Dr0 as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(Dr0)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).Dr1 as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(Dr1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).Dr2 as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(Dr2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).Dr3 as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(Dr3)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).Dr6 as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(Dr6)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).Dr7 as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(Dr7)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).Rax as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(Rax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).Rcx as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(Rcx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).Rdx as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(Rdx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).Rbx as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(Rbx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).Rsp as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(Rsp)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).Rbp as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(Rbp)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).Rsi as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(Rsi)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).Rdi as *const _ as usize },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(Rdi)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).R8 as *const _ as usize },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(R8)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).R9 as *const _ as usize },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(R9)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).R10 as *const _ as usize },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(R10)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).R11 as *const _ as usize },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(R11)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).R12 as *const _ as usize },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(R12)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).R13 as *const _ as usize },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(R13)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).R14 as *const _ as usize },
        232usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(R14)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).R15 as *const _ as usize },
        240usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(R15)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).Rip as *const _ as usize },
        248usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(Rip)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).VectorRegister as *const _ as usize },
        768usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(VectorRegister)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).VectorControl as *const _ as usize },
        1184usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(VectorControl)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).DebugControl as *const _ as usize },
        1192usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(DebugControl)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).LastBranchToRip as *const _ as usize },
        1200usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(LastBranchToRip)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).LastBranchFromRip as *const _ as usize },
        1208usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(LastBranchFromRip)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).LastExceptionToRip as *const _ as usize },
        1216usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(LastExceptionToRip)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTEXT>())).LastExceptionFromRip as *const _ as usize },
        1224usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTEXT),
            "::",
            stringify!(LastExceptionFromRip)
        )
    );
}
pub type CONTEXT = _CONTEXT;
pub type PCONTEXT = *mut _CONTEXT;
pub type RUNTIME_FUNCTION = _IMAGE_RUNTIME_FUNCTION_ENTRY;
pub type PRUNTIME_FUNCTION = *mut _IMAGE_RUNTIME_FUNCTION_ENTRY;
pub type SCOPE_TABLE = SCOPE_TABLE_AMD64;
pub type PSCOPE_TABLE = *mut SCOPE_TABLE_AMD64;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _UNWIND_HISTORY_TABLE_ENTRY {
    pub ImageBase: DWORD64,
    pub FunctionEntry: PRUNTIME_FUNCTION,
}
#[test]
fn bindgen_test_layout__UNWIND_HISTORY_TABLE_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_UNWIND_HISTORY_TABLE_ENTRY>(),
        16usize,
        concat!("Size of: ", stringify!(_UNWIND_HISTORY_TABLE_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_UNWIND_HISTORY_TABLE_ENTRY>(),
        8usize,
        concat!("Alignment of ", stringify!(_UNWIND_HISTORY_TABLE_ENTRY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_UNWIND_HISTORY_TABLE_ENTRY>())).ImageBase as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_UNWIND_HISTORY_TABLE_ENTRY),
            "::",
            stringify!(ImageBase)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_UNWIND_HISTORY_TABLE_ENTRY>())).FunctionEntry as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_UNWIND_HISTORY_TABLE_ENTRY),
            "::",
            stringify!(FunctionEntry)
        )
    );
}
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: DWORD,
    pub LocalHint: BYTE,
    pub GlobalHint: BYTE,
    pub Search: BYTE,
    pub Once: BYTE,
    pub LowAddress: DWORD64,
    pub HighAddress: DWORD64,
    pub Entry: [UNWIND_HISTORY_TABLE_ENTRY; 12usize],
}
#[test]
fn bindgen_test_layout__UNWIND_HISTORY_TABLE() {
    assert_eq!(
        ::std::mem::size_of::<_UNWIND_HISTORY_TABLE>(),
        216usize,
        concat!("Size of: ", stringify!(_UNWIND_HISTORY_TABLE))
    );
    assert_eq!(
        ::std::mem::align_of::<_UNWIND_HISTORY_TABLE>(),
        8usize,
        concat!("Alignment of ", stringify!(_UNWIND_HISTORY_TABLE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_UNWIND_HISTORY_TABLE>())).Count as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_UNWIND_HISTORY_TABLE),
            "::",
            stringify!(Count)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_UNWIND_HISTORY_TABLE>())).LocalHint as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_UNWIND_HISTORY_TABLE),
            "::",
            stringify!(LocalHint)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_UNWIND_HISTORY_TABLE>())).GlobalHint as *const _ as usize
        },
        5usize,
        concat!(
            "Offset of field: ",
            stringify!(_UNWIND_HISTORY_TABLE),
            "::",
            stringify!(GlobalHint)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_UNWIND_HISTORY_TABLE>())).Search as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_UNWIND_HISTORY_TABLE),
            "::",
            stringify!(Search)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_UNWIND_HISTORY_TABLE>())).Once as *const _ as usize },
        7usize,
        concat!(
            "Offset of field: ",
            stringify!(_UNWIND_HISTORY_TABLE),
            "::",
            stringify!(Once)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_UNWIND_HISTORY_TABLE>())).LowAddress as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_UNWIND_HISTORY_TABLE),
            "::",
            stringify!(LowAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_UNWIND_HISTORY_TABLE>())).HighAddress as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_UNWIND_HISTORY_TABLE),
            "::",
            stringify!(HighAddress)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_UNWIND_HISTORY_TABLE>())).Entry as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_UNWIND_HISTORY_TABLE),
            "::",
            stringify!(Entry)
        )
    );
}
pub type UNWIND_HISTORY_TABLE = _UNWIND_HISTORY_TABLE;
pub type PUNWIND_HISTORY_TABLE = *mut _UNWIND_HISTORY_TABLE;
pub type GET_RUNTIME_FUNCTION_CALLBACK = ::std::option::Option<
    unsafe extern "C" fn(ControlPc: DWORD64, Context: PVOID) -> PRUNTIME_FUNCTION,
>;
pub type PGET_RUNTIME_FUNCTION_CALLBACK = GET_RUNTIME_FUNCTION_CALLBACK;
pub type OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK = ::std::option::Option<
    unsafe extern "C" fn(
        Process: HANDLE,
        TableAddress: PVOID,
        Entries: PDWORD,
        Functions: *mut PRUNTIME_FUNCTION,
    ) -> DWORD,
>;
pub type POUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK = OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DISPATCHER_CONTEXT {
    pub ControlPc: DWORD64,
    pub ImageBase: DWORD64,
    pub FunctionEntry: PRUNTIME_FUNCTION,
    pub EstablisherFrame: DWORD64,
    pub TargetIp: DWORD64,
    pub ContextRecord: PCONTEXT,
    pub LanguageHandler: PEXCEPTION_ROUTINE,
    pub HandlerData: PVOID,
    pub HistoryTable: PUNWIND_HISTORY_TABLE,
    pub ScopeIndex: DWORD,
    pub Fill0: DWORD,
}
#[test]
fn bindgen_test_layout__DISPATCHER_CONTEXT() {
    assert_eq!(
        ::std::mem::size_of::<_DISPATCHER_CONTEXT>(),
        80usize,
        concat!("Size of: ", stringify!(_DISPATCHER_CONTEXT))
    );
    assert_eq!(
        ::std::mem::align_of::<_DISPATCHER_CONTEXT>(),
        8usize,
        concat!("Alignment of ", stringify!(_DISPATCHER_CONTEXT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISPATCHER_CONTEXT>())).ControlPc as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISPATCHER_CONTEXT),
            "::",
            stringify!(ControlPc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISPATCHER_CONTEXT>())).ImageBase as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISPATCHER_CONTEXT),
            "::",
            stringify!(ImageBase)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISPATCHER_CONTEXT>())).FunctionEntry as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISPATCHER_CONTEXT),
            "::",
            stringify!(FunctionEntry)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISPATCHER_CONTEXT>())).EstablisherFrame as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISPATCHER_CONTEXT),
            "::",
            stringify!(EstablisherFrame)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISPATCHER_CONTEXT>())).TargetIp as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISPATCHER_CONTEXT),
            "::",
            stringify!(TargetIp)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISPATCHER_CONTEXT>())).ContextRecord as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISPATCHER_CONTEXT),
            "::",
            stringify!(ContextRecord)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISPATCHER_CONTEXT>())).LanguageHandler as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISPATCHER_CONTEXT),
            "::",
            stringify!(LanguageHandler)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISPATCHER_CONTEXT>())).HandlerData as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISPATCHER_CONTEXT),
            "::",
            stringify!(HandlerData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISPATCHER_CONTEXT>())).HistoryTable as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISPATCHER_CONTEXT),
            "::",
            stringify!(HistoryTable)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISPATCHER_CONTEXT>())).ScopeIndex as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISPATCHER_CONTEXT),
            "::",
            stringify!(ScopeIndex)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISPATCHER_CONTEXT>())).Fill0 as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISPATCHER_CONTEXT),
            "::",
            stringify!(Fill0)
        )
    );
}
pub type DISPATCHER_CONTEXT = _DISPATCHER_CONTEXT;
pub type PDISPATCHER_CONTEXT = *mut _DISPATCHER_CONTEXT;
pub type PEXCEPTION_FILTER = ::std::option::Option<
    unsafe extern "C" fn(
        ExceptionPointers: *mut _EXCEPTION_POINTERS,
        EstablisherFrame: PVOID,
    ) -> LONG,
>;
pub type PTERMINATION_HANDLER = ::std::option::Option<
    unsafe extern "C" fn(_abnormal_termination: BOOLEAN, EstablisherFrame: PVOID),
>;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _KNONVOLATILE_CONTEXT_POINTERS {
    pub __bindgen_anon_1: _KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1,
    pub __bindgen_anon_2: _KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1 {
    pub FloatingContext: [PM128A; 16usize],
    pub __bindgen_anon_1: _KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: [u64; 16usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1 {
    pub Xmm0: PM128A,
    pub Xmm1: PM128A,
    pub Xmm2: PM128A,
    pub Xmm3: PM128A,
    pub Xmm4: PM128A,
    pub Xmm5: PM128A,
    pub Xmm6: PM128A,
    pub Xmm7: PM128A,
    pub Xmm8: PM128A,
    pub Xmm9: PM128A,
    pub Xmm10: PM128A,
    pub Xmm11: PM128A,
    pub Xmm12: PM128A,
    pub Xmm13: PM128A,
    pub Xmm14: PM128A,
    pub Xmm15: PM128A,
}
#[test]
fn bindgen_test_layout__KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1>(),
        128usize,
        concat!(
            "Size of: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1>()))
                .Xmm0 as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Xmm0)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1>()))
                .Xmm1 as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Xmm1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1>()))
                .Xmm2 as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Xmm2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1>()))
                .Xmm3 as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Xmm3)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1>()))
                .Xmm4 as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Xmm4)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1>()))
                .Xmm5 as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Xmm5)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1>()))
                .Xmm6 as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Xmm6)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1>()))
                .Xmm7 as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Xmm7)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1>()))
                .Xmm8 as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Xmm8)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1>()))
                .Xmm9 as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Xmm9)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1>()))
                .Xmm10 as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Xmm10)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1>()))
                .Xmm11 as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Xmm11)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1>()))
                .Xmm12 as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Xmm12)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1>()))
                .Xmm13 as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Xmm13)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1>()))
                .Xmm14 as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Xmm14)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1>()))
                .Xmm15 as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Xmm15)
        )
    );
}
#[test]
fn bindgen_test_layout__KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1>(),
        128usize,
        concat!(
            "Size of: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1>())).FloatingContext
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_1),
            "::",
            stringify!(FloatingContext)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2 {
    pub IntegerContext: [PDWORD64; 16usize],
    pub __bindgen_anon_1: _KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1,
    _bindgen_union_align: [u64; 16usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1 {
    pub Rax: PDWORD64,
    pub Rcx: PDWORD64,
    pub Rdx: PDWORD64,
    pub Rbx: PDWORD64,
    pub Rsp: PDWORD64,
    pub Rbp: PDWORD64,
    pub Rsi: PDWORD64,
    pub Rdi: PDWORD64,
    pub R8: PDWORD64,
    pub R9: PDWORD64,
    pub R10: PDWORD64,
    pub R11: PDWORD64,
    pub R12: PDWORD64,
    pub R13: PDWORD64,
    pub R14: PDWORD64,
    pub R15: PDWORD64,
}
#[test]
fn bindgen_test_layout__KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1>(),
        128usize,
        concat!(
            "Size of: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1>()))
                .Rax as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1),
            "::",
            stringify!(Rax)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1>()))
                .Rcx as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1),
            "::",
            stringify!(Rcx)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1>()))
                .Rdx as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1),
            "::",
            stringify!(Rdx)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1>()))
                .Rbx as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1),
            "::",
            stringify!(Rbx)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1>()))
                .Rsp as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1),
            "::",
            stringify!(Rsp)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1>()))
                .Rbp as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1),
            "::",
            stringify!(Rbp)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1>()))
                .Rsi as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1),
            "::",
            stringify!(Rsi)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1>()))
                .Rdi as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1),
            "::",
            stringify!(Rdi)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1>()))
                .R8 as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1),
            "::",
            stringify!(R8)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1>()))
                .R9 as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1),
            "::",
            stringify!(R9)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1>()))
                .R10 as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1),
            "::",
            stringify!(R10)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1>()))
                .R11 as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1),
            "::",
            stringify!(R11)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1>()))
                .R12 as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1),
            "::",
            stringify!(R12)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1>()))
                .R13 as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1),
            "::",
            stringify!(R13)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1>()))
                .R14 as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1),
            "::",
            stringify!(R14)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1>()))
                .R15 as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2__bindgen_ty_1),
            "::",
            stringify!(R15)
        )
    );
}
#[test]
fn bindgen_test_layout__KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2>(),
        128usize,
        concat!(
            "Size of: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2>())).IntegerContext
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS__bindgen_ty_2),
            "::",
            stringify!(IntegerContext)
        )
    );
}
#[test]
fn bindgen_test_layout__KNONVOLATILE_CONTEXT_POINTERS() {
    assert_eq!(
        ::std::mem::size_of::<_KNONVOLATILE_CONTEXT_POINTERS>(),
        256usize,
        concat!("Size of: ", stringify!(_KNONVOLATILE_CONTEXT_POINTERS))
    );
    assert_eq!(
        ::std::mem::align_of::<_KNONVOLATILE_CONTEXT_POINTERS>(),
        8usize,
        concat!("Alignment of ", stringify!(_KNONVOLATILE_CONTEXT_POINTERS))
    );
}
pub type KNONVOLATILE_CONTEXT_POINTERS = _KNONVOLATILE_CONTEXT_POINTERS;
pub type PKNONVOLATILE_CONTEXT_POINTERS = *mut _KNONVOLATILE_CONTEXT_POINTERS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCOPE_TABLE_ARM {
    pub Count: DWORD,
    pub ScopeRecord: [_SCOPE_TABLE_ARM__bindgen_ty_1; 1usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCOPE_TABLE_ARM__bindgen_ty_1 {
    pub BeginAddress: DWORD,
    pub EndAddress: DWORD,
    pub HandlerAddress: DWORD,
    pub JumpTarget: DWORD,
}
#[test]
fn bindgen_test_layout__SCOPE_TABLE_ARM__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_SCOPE_TABLE_ARM__bindgen_ty_1>(),
        16usize,
        concat!("Size of: ", stringify!(_SCOPE_TABLE_ARM__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCOPE_TABLE_ARM__bindgen_ty_1>(),
        4usize,
        concat!("Alignment of ", stringify!(_SCOPE_TABLE_ARM__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCOPE_TABLE_ARM__bindgen_ty_1>())).BeginAddress as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCOPE_TABLE_ARM__bindgen_ty_1),
            "::",
            stringify!(BeginAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCOPE_TABLE_ARM__bindgen_ty_1>())).EndAddress as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCOPE_TABLE_ARM__bindgen_ty_1),
            "::",
            stringify!(EndAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCOPE_TABLE_ARM__bindgen_ty_1>())).HandlerAddress as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCOPE_TABLE_ARM__bindgen_ty_1),
            "::",
            stringify!(HandlerAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCOPE_TABLE_ARM__bindgen_ty_1>())).JumpTarget as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCOPE_TABLE_ARM__bindgen_ty_1),
            "::",
            stringify!(JumpTarget)
        )
    );
}
#[test]
fn bindgen_test_layout__SCOPE_TABLE_ARM() {
    assert_eq!(
        ::std::mem::size_of::<_SCOPE_TABLE_ARM>(),
        20usize,
        concat!("Size of: ", stringify!(_SCOPE_TABLE_ARM))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCOPE_TABLE_ARM>(),
        4usize,
        concat!("Alignment of ", stringify!(_SCOPE_TABLE_ARM))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCOPE_TABLE_ARM>())).Count as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCOPE_TABLE_ARM),
            "::",
            stringify!(Count)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCOPE_TABLE_ARM>())).ScopeRecord as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCOPE_TABLE_ARM),
            "::",
            stringify!(ScopeRecord)
        )
    );
}
pub type SCOPE_TABLE_ARM = _SCOPE_TABLE_ARM;
pub type PSCOPE_TABLE_ARM = *mut _SCOPE_TABLE_ARM;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCOPE_TABLE_ARM64 {
    pub Count: DWORD,
    pub ScopeRecord: [_SCOPE_TABLE_ARM64__bindgen_ty_1; 1usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCOPE_TABLE_ARM64__bindgen_ty_1 {
    pub BeginAddress: DWORD,
    pub EndAddress: DWORD,
    pub HandlerAddress: DWORD,
    pub JumpTarget: DWORD,
}
#[test]
fn bindgen_test_layout__SCOPE_TABLE_ARM64__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_SCOPE_TABLE_ARM64__bindgen_ty_1>(),
        16usize,
        concat!("Size of: ", stringify!(_SCOPE_TABLE_ARM64__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCOPE_TABLE_ARM64__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_SCOPE_TABLE_ARM64__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCOPE_TABLE_ARM64__bindgen_ty_1>())).BeginAddress as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCOPE_TABLE_ARM64__bindgen_ty_1),
            "::",
            stringify!(BeginAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCOPE_TABLE_ARM64__bindgen_ty_1>())).EndAddress as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCOPE_TABLE_ARM64__bindgen_ty_1),
            "::",
            stringify!(EndAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCOPE_TABLE_ARM64__bindgen_ty_1>())).HandlerAddress as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCOPE_TABLE_ARM64__bindgen_ty_1),
            "::",
            stringify!(HandlerAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCOPE_TABLE_ARM64__bindgen_ty_1>())).JumpTarget as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCOPE_TABLE_ARM64__bindgen_ty_1),
            "::",
            stringify!(JumpTarget)
        )
    );
}
#[test]
fn bindgen_test_layout__SCOPE_TABLE_ARM64() {
    assert_eq!(
        ::std::mem::size_of::<_SCOPE_TABLE_ARM64>(),
        20usize,
        concat!("Size of: ", stringify!(_SCOPE_TABLE_ARM64))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCOPE_TABLE_ARM64>(),
        4usize,
        concat!("Alignment of ", stringify!(_SCOPE_TABLE_ARM64))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCOPE_TABLE_ARM64>())).Count as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCOPE_TABLE_ARM64),
            "::",
            stringify!(Count)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCOPE_TABLE_ARM64>())).ScopeRecord as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCOPE_TABLE_ARM64),
            "::",
            stringify!(ScopeRecord)
        )
    );
}
pub type SCOPE_TABLE_ARM64 = _SCOPE_TABLE_ARM64;
pub type PSCOPE_TABLE_ARM64 = *mut _SCOPE_TABLE_ARM64;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _KNONVOLATILE_CONTEXT_POINTERS_ARM64 {
    pub X19: PDWORD64,
    pub X20: PDWORD64,
    pub X21: PDWORD64,
    pub X22: PDWORD64,
    pub X23: PDWORD64,
    pub X24: PDWORD64,
    pub X25: PDWORD64,
    pub X26: PDWORD64,
    pub X27: PDWORD64,
    pub X28: PDWORD64,
    pub Fp: PDWORD64,
    pub Lr: PDWORD64,
    pub D8: PDWORD64,
    pub D9: PDWORD64,
    pub D10: PDWORD64,
    pub D11: PDWORD64,
    pub D12: PDWORD64,
    pub D13: PDWORD64,
    pub D14: PDWORD64,
    pub D15: PDWORD64,
}
#[test]
fn bindgen_test_layout__KNONVOLATILE_CONTEXT_POINTERS_ARM64() {
    assert_eq!(
        ::std::mem::size_of::<_KNONVOLATILE_CONTEXT_POINTERS_ARM64>(),
        160usize,
        concat!(
            "Size of: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS_ARM64)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_KNONVOLATILE_CONTEXT_POINTERS_ARM64>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS_ARM64)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS_ARM64>())).X19 as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS_ARM64),
            "::",
            stringify!(X19)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS_ARM64>())).X20 as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS_ARM64),
            "::",
            stringify!(X20)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS_ARM64>())).X21 as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS_ARM64),
            "::",
            stringify!(X21)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS_ARM64>())).X22 as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS_ARM64),
            "::",
            stringify!(X22)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS_ARM64>())).X23 as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS_ARM64),
            "::",
            stringify!(X23)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS_ARM64>())).X24 as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS_ARM64),
            "::",
            stringify!(X24)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS_ARM64>())).X25 as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS_ARM64),
            "::",
            stringify!(X25)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS_ARM64>())).X26 as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS_ARM64),
            "::",
            stringify!(X26)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS_ARM64>())).X27 as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS_ARM64),
            "::",
            stringify!(X27)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS_ARM64>())).X28 as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS_ARM64),
            "::",
            stringify!(X28)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS_ARM64>())).Fp as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS_ARM64),
            "::",
            stringify!(Fp)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS_ARM64>())).Lr as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS_ARM64),
            "::",
            stringify!(Lr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS_ARM64>())).D8 as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS_ARM64),
            "::",
            stringify!(D8)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS_ARM64>())).D9 as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS_ARM64),
            "::",
            stringify!(D9)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS_ARM64>())).D10 as *const _
                as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS_ARM64),
            "::",
            stringify!(D10)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS_ARM64>())).D11 as *const _
                as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS_ARM64),
            "::",
            stringify!(D11)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS_ARM64>())).D12 as *const _
                as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS_ARM64),
            "::",
            stringify!(D12)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS_ARM64>())).D13 as *const _
                as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS_ARM64),
            "::",
            stringify!(D13)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS_ARM64>())).D14 as *const _
                as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS_ARM64),
            "::",
            stringify!(D14)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KNONVOLATILE_CONTEXT_POINTERS_ARM64>())).D15 as *const _
                as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(_KNONVOLATILE_CONTEXT_POINTERS_ARM64),
            "::",
            stringify!(D15)
        )
    );
}
pub type KNONVOLATILE_CONTEXT_POINTERS_ARM64 = _KNONVOLATILE_CONTEXT_POINTERS_ARM64;
pub type PKNONVOLATILE_CONTEXT_POINTERS_ARM64 = *mut _KNONVOLATILE_CONTEXT_POINTERS_ARM64;
extern "C" {
    pub fn __int2c();
}
#[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,
}
#[test]
fn bindgen_test_layout__LDT_ENTRY__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_LDT_ENTRY__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_LDT_ENTRY__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_LDT_ENTRY__bindgen_ty_1__bindgen_ty_1>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(_LDT_ENTRY__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_LDT_ENTRY__bindgen_ty_1__bindgen_ty_1>())).BaseMid as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_LDT_ENTRY__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(BaseMid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_LDT_ENTRY__bindgen_ty_1__bindgen_ty_1>())).Flags1 as *const _
                as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_LDT_ENTRY__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Flags1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_LDT_ENTRY__bindgen_ty_1__bindgen_ty_1>())).Flags2 as *const _
                as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_LDT_ENTRY__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Flags2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_LDT_ENTRY__bindgen_ty_1__bindgen_ty_1>())).BaseHi as *const _
                as usize
        },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(_LDT_ENTRY__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(BaseHi)
        )
    );
}
#[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>,
}
#[test]
fn bindgen_test_layout__LDT_ENTRY__bindgen_ty_1__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_LDT_ENTRY__bindgen_ty_1__bindgen_ty_2>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_LDT_ENTRY__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_LDT_ENTRY__bindgen_ty_1__bindgen_ty_2>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_LDT_ENTRY__bindgen_ty_1__bindgen_ty_2)
        )
    );
}
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
    }
}
#[test]
fn bindgen_test_layout__LDT_ENTRY__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_LDT_ENTRY__bindgen_ty_1>(),
        4usize,
        concat!("Size of: ", stringify!(_LDT_ENTRY__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_LDT_ENTRY__bindgen_ty_1>(),
        4usize,
        concat!("Alignment of ", stringify!(_LDT_ENTRY__bindgen_ty_1))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_LDT_ENTRY__bindgen_ty_1>())).Bytes as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_LDT_ENTRY__bindgen_ty_1),
            "::",
            stringify!(Bytes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_LDT_ENTRY__bindgen_ty_1>())).Bits as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_LDT_ENTRY__bindgen_ty_1),
            "::",
            stringify!(Bits)
        )
    );
}
#[test]
fn bindgen_test_layout__LDT_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_LDT_ENTRY>(),
        8usize,
        concat!("Size of: ", stringify!(_LDT_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_LDT_ENTRY>(),
        4usize,
        concat!("Alignment of ", stringify!(_LDT_ENTRY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_LDT_ENTRY>())).LimitLow as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_LDT_ENTRY),
            "::",
            stringify!(LimitLow)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_LDT_ENTRY>())).BaseLow as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_LDT_ENTRY),
            "::",
            stringify!(BaseLow)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_LDT_ENTRY>())).HighWord as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_LDT_ENTRY),
            "::",
            stringify!(HighWord)
        )
    );
}
pub type LDT_ENTRY = _LDT_ENTRY;
pub type PLDT_ENTRY = *mut _LDT_ENTRY;
#[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,
}
#[test]
fn bindgen_test_layout__WOW64_FLOATING_SAVE_AREA() {
    assert_eq!(
        ::std::mem::size_of::<_WOW64_FLOATING_SAVE_AREA>(),
        112usize,
        concat!("Size of: ", stringify!(_WOW64_FLOATING_SAVE_AREA))
    );
    assert_eq!(
        ::std::mem::align_of::<_WOW64_FLOATING_SAVE_AREA>(),
        4usize,
        concat!("Alignment of ", stringify!(_WOW64_FLOATING_SAVE_AREA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WOW64_FLOATING_SAVE_AREA>())).ControlWord as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_FLOATING_SAVE_AREA),
            "::",
            stringify!(ControlWord)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WOW64_FLOATING_SAVE_AREA>())).StatusWord as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_FLOATING_SAVE_AREA),
            "::",
            stringify!(StatusWord)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WOW64_FLOATING_SAVE_AREA>())).TagWord as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_FLOATING_SAVE_AREA),
            "::",
            stringify!(TagWord)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WOW64_FLOATING_SAVE_AREA>())).ErrorOffset as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_FLOATING_SAVE_AREA),
            "::",
            stringify!(ErrorOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WOW64_FLOATING_SAVE_AREA>())).ErrorSelector as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_FLOATING_SAVE_AREA),
            "::",
            stringify!(ErrorSelector)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WOW64_FLOATING_SAVE_AREA>())).DataOffset as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_FLOATING_SAVE_AREA),
            "::",
            stringify!(DataOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WOW64_FLOATING_SAVE_AREA>())).DataSelector as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_FLOATING_SAVE_AREA),
            "::",
            stringify!(DataSelector)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WOW64_FLOATING_SAVE_AREA>())).RegisterArea as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_FLOATING_SAVE_AREA),
            "::",
            stringify!(RegisterArea)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WOW64_FLOATING_SAVE_AREA>())).Cr0NpxState as *const _ as usize
        },
        108usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_FLOATING_SAVE_AREA),
            "::",
            stringify!(Cr0NpxState)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__WOW64_CONTEXT() {
    assert_eq!(
        ::std::mem::size_of::<_WOW64_CONTEXT>(),
        716usize,
        concat!("Size of: ", stringify!(_WOW64_CONTEXT))
    );
    assert_eq!(
        ::std::mem::align_of::<_WOW64_CONTEXT>(),
        4usize,
        concat!("Alignment of ", stringify!(_WOW64_CONTEXT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WOW64_CONTEXT>())).ContextFlags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_CONTEXT),
            "::",
            stringify!(ContextFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WOW64_CONTEXT>())).Dr0 as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_CONTEXT),
            "::",
            stringify!(Dr0)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WOW64_CONTEXT>())).Dr1 as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_CONTEXT),
            "::",
            stringify!(Dr1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WOW64_CONTEXT>())).Dr2 as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_CONTEXT),
            "::",
            stringify!(Dr2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WOW64_CONTEXT>())).Dr3 as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_CONTEXT),
            "::",
            stringify!(Dr3)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WOW64_CONTEXT>())).Dr6 as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_CONTEXT),
            "::",
            stringify!(Dr6)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WOW64_CONTEXT>())).Dr7 as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_CONTEXT),
            "::",
            stringify!(Dr7)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WOW64_CONTEXT>())).FloatSave as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_CONTEXT),
            "::",
            stringify!(FloatSave)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WOW64_CONTEXT>())).SegGs as *const _ as usize },
        140usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_CONTEXT),
            "::",
            stringify!(SegGs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WOW64_CONTEXT>())).SegFs as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_CONTEXT),
            "::",
            stringify!(SegFs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WOW64_CONTEXT>())).SegEs as *const _ as usize },
        148usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_CONTEXT),
            "::",
            stringify!(SegEs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WOW64_CONTEXT>())).SegDs as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_CONTEXT),
            "::",
            stringify!(SegDs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WOW64_CONTEXT>())).Edi as *const _ as usize },
        156usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_CONTEXT),
            "::",
            stringify!(Edi)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WOW64_CONTEXT>())).Esi as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_CONTEXT),
            "::",
            stringify!(Esi)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WOW64_CONTEXT>())).Ebx as *const _ as usize },
        164usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_CONTEXT),
            "::",
            stringify!(Ebx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WOW64_CONTEXT>())).Edx as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_CONTEXT),
            "::",
            stringify!(Edx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WOW64_CONTEXT>())).Ecx as *const _ as usize },
        172usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_CONTEXT),
            "::",
            stringify!(Ecx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WOW64_CONTEXT>())).Eax as *const _ as usize },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_CONTEXT),
            "::",
            stringify!(Eax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WOW64_CONTEXT>())).Ebp as *const _ as usize },
        180usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_CONTEXT),
            "::",
            stringify!(Ebp)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WOW64_CONTEXT>())).Eip as *const _ as usize },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_CONTEXT),
            "::",
            stringify!(Eip)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WOW64_CONTEXT>())).SegCs as *const _ as usize },
        188usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_CONTEXT),
            "::",
            stringify!(SegCs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WOW64_CONTEXT>())).EFlags as *const _ as usize },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_CONTEXT),
            "::",
            stringify!(EFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WOW64_CONTEXT>())).Esp as *const _ as usize },
        196usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_CONTEXT),
            "::",
            stringify!(Esp)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WOW64_CONTEXT>())).SegSs as *const _ as usize },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_CONTEXT),
            "::",
            stringify!(SegSs)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WOW64_CONTEXT>())).ExtendedRegisters as *const _ as usize
        },
        204usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_CONTEXT),
            "::",
            stringify!(ExtendedRegisters)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__WOW64_LDT_ENTRY__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_WOW64_LDT_ENTRY__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_WOW64_LDT_ENTRY__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_WOW64_LDT_ENTRY__bindgen_ty_1__bindgen_ty_1>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(_WOW64_LDT_ENTRY__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WOW64_LDT_ENTRY__bindgen_ty_1__bindgen_ty_1>())).BaseMid
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_LDT_ENTRY__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(BaseMid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WOW64_LDT_ENTRY__bindgen_ty_1__bindgen_ty_1>())).Flags1
                as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_LDT_ENTRY__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Flags1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WOW64_LDT_ENTRY__bindgen_ty_1__bindgen_ty_1>())).Flags2
                as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_LDT_ENTRY__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Flags2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WOW64_LDT_ENTRY__bindgen_ty_1__bindgen_ty_1>())).BaseHi
                as *const _ as usize
        },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_LDT_ENTRY__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(BaseHi)
        )
    );
}
#[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>,
}
#[test]
fn bindgen_test_layout__WOW64_LDT_ENTRY__bindgen_ty_1__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_WOW64_LDT_ENTRY__bindgen_ty_1__bindgen_ty_2>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_WOW64_LDT_ENTRY__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_WOW64_LDT_ENTRY__bindgen_ty_1__bindgen_ty_2>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_WOW64_LDT_ENTRY__bindgen_ty_1__bindgen_ty_2)
        )
    );
}
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
    }
}
#[test]
fn bindgen_test_layout__WOW64_LDT_ENTRY__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_WOW64_LDT_ENTRY__bindgen_ty_1>(),
        4usize,
        concat!("Size of: ", stringify!(_WOW64_LDT_ENTRY__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_WOW64_LDT_ENTRY__bindgen_ty_1>(),
        4usize,
        concat!("Alignment of ", stringify!(_WOW64_LDT_ENTRY__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WOW64_LDT_ENTRY__bindgen_ty_1>())).Bytes as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_LDT_ENTRY__bindgen_ty_1),
            "::",
            stringify!(Bytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WOW64_LDT_ENTRY__bindgen_ty_1>())).Bits as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_LDT_ENTRY__bindgen_ty_1),
            "::",
            stringify!(Bits)
        )
    );
}
#[test]
fn bindgen_test_layout__WOW64_LDT_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_WOW64_LDT_ENTRY>(),
        8usize,
        concat!("Size of: ", stringify!(_WOW64_LDT_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_WOW64_LDT_ENTRY>(),
        4usize,
        concat!("Alignment of ", stringify!(_WOW64_LDT_ENTRY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WOW64_LDT_ENTRY>())).LimitLow as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_LDT_ENTRY),
            "::",
            stringify!(LimitLow)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WOW64_LDT_ENTRY>())).BaseLow as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_LDT_ENTRY),
            "::",
            stringify!(BaseLow)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WOW64_LDT_ENTRY>())).HighWord as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_LDT_ENTRY),
            "::",
            stringify!(HighWord)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__WOW64_DESCRIPTOR_TABLE_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_WOW64_DESCRIPTOR_TABLE_ENTRY>(),
        12usize,
        concat!("Size of: ", stringify!(_WOW64_DESCRIPTOR_TABLE_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_WOW64_DESCRIPTOR_TABLE_ENTRY>(),
        4usize,
        concat!("Alignment of ", stringify!(_WOW64_DESCRIPTOR_TABLE_ENTRY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WOW64_DESCRIPTOR_TABLE_ENTRY>())).Selector as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_DESCRIPTOR_TABLE_ENTRY),
            "::",
            stringify!(Selector)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WOW64_DESCRIPTOR_TABLE_ENTRY>())).Descriptor as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOW64_DESCRIPTOR_TABLE_ENTRY),
            "::",
            stringify!(Descriptor)
        )
    );
}
pub type WOW64_DESCRIPTOR_TABLE_ENTRY = _WOW64_DESCRIPTOR_TABLE_ENTRY;
pub type PWOW64_DESCRIPTOR_TABLE_ENTRY = *mut _WOW64_DESCRIPTOR_TABLE_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],
}
#[test]
fn bindgen_test_layout__EXCEPTION_RECORD() {
    assert_eq!(
        ::std::mem::size_of::<_EXCEPTION_RECORD>(),
        152usize,
        concat!("Size of: ", stringify!(_EXCEPTION_RECORD))
    );
    assert_eq!(
        ::std::mem::align_of::<_EXCEPTION_RECORD>(),
        8usize,
        concat!("Alignment of ", stringify!(_EXCEPTION_RECORD))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EXCEPTION_RECORD>())).ExceptionCode as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXCEPTION_RECORD),
            "::",
            stringify!(ExceptionCode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXCEPTION_RECORD>())).ExceptionFlags as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXCEPTION_RECORD),
            "::",
            stringify!(ExceptionFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXCEPTION_RECORD>())).ExceptionRecord as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXCEPTION_RECORD),
            "::",
            stringify!(ExceptionRecord)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXCEPTION_RECORD>())).ExceptionAddress as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXCEPTION_RECORD),
            "::",
            stringify!(ExceptionAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXCEPTION_RECORD>())).NumberParameters as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXCEPTION_RECORD),
            "::",
            stringify!(NumberParameters)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXCEPTION_RECORD>())).ExceptionInformation as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXCEPTION_RECORD),
            "::",
            stringify!(ExceptionInformation)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__EXCEPTION_RECORD32() {
    assert_eq!(
        ::std::mem::size_of::<_EXCEPTION_RECORD32>(),
        80usize,
        concat!("Size of: ", stringify!(_EXCEPTION_RECORD32))
    );
    assert_eq!(
        ::std::mem::align_of::<_EXCEPTION_RECORD32>(),
        4usize,
        concat!("Alignment of ", stringify!(_EXCEPTION_RECORD32))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXCEPTION_RECORD32>())).ExceptionCode as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXCEPTION_RECORD32),
            "::",
            stringify!(ExceptionCode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXCEPTION_RECORD32>())).ExceptionFlags as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXCEPTION_RECORD32),
            "::",
            stringify!(ExceptionFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXCEPTION_RECORD32>())).ExceptionRecord as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXCEPTION_RECORD32),
            "::",
            stringify!(ExceptionRecord)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXCEPTION_RECORD32>())).ExceptionAddress as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXCEPTION_RECORD32),
            "::",
            stringify!(ExceptionAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXCEPTION_RECORD32>())).NumberParameters as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXCEPTION_RECORD32),
            "::",
            stringify!(NumberParameters)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXCEPTION_RECORD32>())).ExceptionInformation as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXCEPTION_RECORD32),
            "::",
            stringify!(ExceptionInformation)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__EXCEPTION_RECORD64() {
    assert_eq!(
        ::std::mem::size_of::<_EXCEPTION_RECORD64>(),
        152usize,
        concat!("Size of: ", stringify!(_EXCEPTION_RECORD64))
    );
    assert_eq!(
        ::std::mem::align_of::<_EXCEPTION_RECORD64>(),
        8usize,
        concat!("Alignment of ", stringify!(_EXCEPTION_RECORD64))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXCEPTION_RECORD64>())).ExceptionCode as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXCEPTION_RECORD64),
            "::",
            stringify!(ExceptionCode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXCEPTION_RECORD64>())).ExceptionFlags as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXCEPTION_RECORD64),
            "::",
            stringify!(ExceptionFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXCEPTION_RECORD64>())).ExceptionRecord as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXCEPTION_RECORD64),
            "::",
            stringify!(ExceptionRecord)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXCEPTION_RECORD64>())).ExceptionAddress as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXCEPTION_RECORD64),
            "::",
            stringify!(ExceptionAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXCEPTION_RECORD64>())).NumberParameters as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXCEPTION_RECORD64),
            "::",
            stringify!(NumberParameters)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXCEPTION_RECORD64>())).__unusedAlignment as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXCEPTION_RECORD64),
            "::",
            stringify!(__unusedAlignment)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXCEPTION_RECORD64>())).ExceptionInformation as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXCEPTION_RECORD64),
            "::",
            stringify!(ExceptionInformation)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__EXCEPTION_POINTERS() {
    assert_eq!(
        ::std::mem::size_of::<_EXCEPTION_POINTERS>(),
        16usize,
        concat!("Size of: ", stringify!(_EXCEPTION_POINTERS))
    );
    assert_eq!(
        ::std::mem::align_of::<_EXCEPTION_POINTERS>(),
        8usize,
        concat!("Alignment of ", stringify!(_EXCEPTION_POINTERS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXCEPTION_POINTERS>())).ExceptionRecord as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXCEPTION_POINTERS),
            "::",
            stringify!(ExceptionRecord)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXCEPTION_POINTERS>())).ContextRecord as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXCEPTION_POINTERS),
            "::",
            stringify!(ContextRecord)
        )
    );
}
pub type EXCEPTION_POINTERS = _EXCEPTION_POINTERS;
pub type PEXCEPTION_POINTERS = *mut _EXCEPTION_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,
}
#[test]
fn bindgen_test_layout__GENERIC_MAPPING() {
    assert_eq!(
        ::std::mem::size_of::<_GENERIC_MAPPING>(),
        16usize,
        concat!("Size of: ", stringify!(_GENERIC_MAPPING))
    );
    assert_eq!(
        ::std::mem::align_of::<_GENERIC_MAPPING>(),
        4usize,
        concat!("Alignment of ", stringify!(_GENERIC_MAPPING))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GENERIC_MAPPING>())).GenericRead as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_GENERIC_MAPPING),
            "::",
            stringify!(GenericRead)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GENERIC_MAPPING>())).GenericWrite as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_GENERIC_MAPPING),
            "::",
            stringify!(GenericWrite)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GENERIC_MAPPING>())).GenericExecute as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_GENERIC_MAPPING),
            "::",
            stringify!(GenericExecute)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GENERIC_MAPPING>())).GenericAll as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_GENERIC_MAPPING),
            "::",
            stringify!(GenericAll)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__LUID_AND_ATTRIBUTES() {
    assert_eq!(
        ::std::mem::size_of::<_LUID_AND_ATTRIBUTES>(),
        12usize,
        concat!("Size of: ", stringify!(_LUID_AND_ATTRIBUTES))
    );
    assert_eq!(
        ::std::mem::align_of::<_LUID_AND_ATTRIBUTES>(),
        4usize,
        concat!("Alignment of ", stringify!(_LUID_AND_ATTRIBUTES))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_LUID_AND_ATTRIBUTES>())).Luid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_LUID_AND_ATTRIBUTES),
            "::",
            stringify!(Luid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_LUID_AND_ATTRIBUTES>())).Attributes as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_LUID_AND_ATTRIBUTES),
            "::",
            stringify!(Attributes)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__SID_IDENTIFIER_AUTHORITY() {
    assert_eq!(
        ::std::mem::size_of::<_SID_IDENTIFIER_AUTHORITY>(),
        6usize,
        concat!("Size of: ", stringify!(_SID_IDENTIFIER_AUTHORITY))
    );
    assert_eq!(
        ::std::mem::align_of::<_SID_IDENTIFIER_AUTHORITY>(),
        1usize,
        concat!("Alignment of ", stringify!(_SID_IDENTIFIER_AUTHORITY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SID_IDENTIFIER_AUTHORITY>())).Value as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SID_IDENTIFIER_AUTHORITY),
            "::",
            stringify!(Value)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__SID() {
    assert_eq!(
        ::std::mem::size_of::<_SID>(),
        12usize,
        concat!("Size of: ", stringify!(_SID))
    );
    assert_eq!(
        ::std::mem::align_of::<_SID>(),
        4usize,
        concat!("Alignment of ", stringify!(_SID))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SID>())).Revision as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SID),
            "::",
            stringify!(Revision)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SID>())).SubAuthorityCount as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_SID),
            "::",
            stringify!(SubAuthorityCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SID>())).IdentifierAuthority as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_SID),
            "::",
            stringify!(IdentifierAuthority)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SID>())).SubAuthority as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SID),
            "::",
            stringify!(SubAuthority)
        )
    );
}
pub type SID = _SID;
pub type PISID = *mut _SID;
#[repr(C)]
#[derive(Copy, Clone)]
pub union _SE_SID {
    pub Sid: SID,
    pub Buffer: [BYTE; 68usize],
    _bindgen_union_align: [u32; 17usize],
}
#[test]
fn bindgen_test_layout__SE_SID() {
    assert_eq!(
        ::std::mem::size_of::<_SE_SID>(),
        68usize,
        concat!("Size of: ", stringify!(_SE_SID))
    );
    assert_eq!(
        ::std::mem::align_of::<_SE_SID>(),
        4usize,
        concat!("Alignment of ", stringify!(_SE_SID))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SE_SID>())).Sid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SE_SID),
            "::",
            stringify!(Sid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SE_SID>())).Buffer as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SE_SID),
            "::",
            stringify!(Buffer)
        )
    );
}
pub type SE_SID = _SE_SID;
pub type PSE_SID = *mut _SE_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 = ::std::os::raw::c_int;
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,
}
#[test]
fn bindgen_test_layout__SID_AND_ATTRIBUTES() {
    assert_eq!(
        ::std::mem::size_of::<_SID_AND_ATTRIBUTES>(),
        16usize,
        concat!("Size of: ", stringify!(_SID_AND_ATTRIBUTES))
    );
    assert_eq!(
        ::std::mem::align_of::<_SID_AND_ATTRIBUTES>(),
        8usize,
        concat!("Alignment of ", stringify!(_SID_AND_ATTRIBUTES))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SID_AND_ATTRIBUTES>())).Sid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SID_AND_ATTRIBUTES),
            "::",
            stringify!(Sid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SID_AND_ATTRIBUTES>())).Attributes as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SID_AND_ATTRIBUTES),
            "::",
            stringify!(Attributes)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__SID_AND_ATTRIBUTES_HASH() {
    assert_eq!(
        ::std::mem::size_of::<_SID_AND_ATTRIBUTES_HASH>(),
        272usize,
        concat!("Size of: ", stringify!(_SID_AND_ATTRIBUTES_HASH))
    );
    assert_eq!(
        ::std::mem::align_of::<_SID_AND_ATTRIBUTES_HASH>(),
        8usize,
        concat!("Alignment of ", stringify!(_SID_AND_ATTRIBUTES_HASH))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SID_AND_ATTRIBUTES_HASH>())).SidCount as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SID_AND_ATTRIBUTES_HASH),
            "::",
            stringify!(SidCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SID_AND_ATTRIBUTES_HASH>())).SidAttr as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SID_AND_ATTRIBUTES_HASH),
            "::",
            stringify!(SidAttr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SID_AND_ATTRIBUTES_HASH>())).Hash as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SID_AND_ATTRIBUTES_HASH),
            "::",
            stringify!(Hash)
        )
    );
}
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 const WELL_KNOWN_SID_TYPE_WinAuthenticationFreshKeyAuthSid: WELL_KNOWN_SID_TYPE = 118;
pub const WELL_KNOWN_SID_TYPE_WinBuiltinDeviceOwnersSid: WELL_KNOWN_SID_TYPE = 119;
pub type WELL_KNOWN_SID_TYPE = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ACL {
    pub AclRevision: BYTE,
    pub Sbz1: BYTE,
    pub AclSize: WORD,
    pub AceCount: WORD,
    pub Sbz2: WORD,
}
#[test]
fn bindgen_test_layout__ACL() {
    assert_eq!(
        ::std::mem::size_of::<_ACL>(),
        8usize,
        concat!("Size of: ", stringify!(_ACL))
    );
    assert_eq!(
        ::std::mem::align_of::<_ACL>(),
        2usize,
        concat!("Alignment of ", stringify!(_ACL))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ACL>())).AclRevision as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACL),
            "::",
            stringify!(AclRevision)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ACL>())).Sbz1 as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACL),
            "::",
            stringify!(Sbz1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ACL>())).AclSize as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACL),
            "::",
            stringify!(AclSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ACL>())).AceCount as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACL),
            "::",
            stringify!(AceCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ACL>())).Sbz2 as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACL),
            "::",
            stringify!(Sbz2)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__ACE_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<_ACE_HEADER>(),
        4usize,
        concat!("Size of: ", stringify!(_ACE_HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<_ACE_HEADER>(),
        2usize,
        concat!("Alignment of ", stringify!(_ACE_HEADER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ACE_HEADER>())).AceType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACE_HEADER),
            "::",
            stringify!(AceType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ACE_HEADER>())).AceFlags as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACE_HEADER),
            "::",
            stringify!(AceFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ACE_HEADER>())).AceSize as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACE_HEADER),
            "::",
            stringify!(AceSize)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__ACCESS_ALLOWED_ACE() {
    assert_eq!(
        ::std::mem::size_of::<_ACCESS_ALLOWED_ACE>(),
        12usize,
        concat!("Size of: ", stringify!(_ACCESS_ALLOWED_ACE))
    );
    assert_eq!(
        ::std::mem::align_of::<_ACCESS_ALLOWED_ACE>(),
        4usize,
        concat!("Alignment of ", stringify!(_ACCESS_ALLOWED_ACE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ACCESS_ALLOWED_ACE>())).Header as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_ALLOWED_ACE),
            "::",
            stringify!(Header)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ACCESS_ALLOWED_ACE>())).Mask as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_ALLOWED_ACE),
            "::",
            stringify!(Mask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ACCESS_ALLOWED_ACE>())).SidStart as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_ALLOWED_ACE),
            "::",
            stringify!(SidStart)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__ACCESS_DENIED_ACE() {
    assert_eq!(
        ::std::mem::size_of::<_ACCESS_DENIED_ACE>(),
        12usize,
        concat!("Size of: ", stringify!(_ACCESS_DENIED_ACE))
    );
    assert_eq!(
        ::std::mem::align_of::<_ACCESS_DENIED_ACE>(),
        4usize,
        concat!("Alignment of ", stringify!(_ACCESS_DENIED_ACE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ACCESS_DENIED_ACE>())).Header as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_DENIED_ACE),
            "::",
            stringify!(Header)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ACCESS_DENIED_ACE>())).Mask as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_DENIED_ACE),
            "::",
            stringify!(Mask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ACCESS_DENIED_ACE>())).SidStart as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_DENIED_ACE),
            "::",
            stringify!(SidStart)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__SYSTEM_AUDIT_ACE() {
    assert_eq!(
        ::std::mem::size_of::<_SYSTEM_AUDIT_ACE>(),
        12usize,
        concat!("Size of: ", stringify!(_SYSTEM_AUDIT_ACE))
    );
    assert_eq!(
        ::std::mem::align_of::<_SYSTEM_AUDIT_ACE>(),
        4usize,
        concat!("Alignment of ", stringify!(_SYSTEM_AUDIT_ACE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEM_AUDIT_ACE>())).Header as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_AUDIT_ACE),
            "::",
            stringify!(Header)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEM_AUDIT_ACE>())).Mask as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_AUDIT_ACE),
            "::",
            stringify!(Mask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEM_AUDIT_ACE>())).SidStart as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_AUDIT_ACE),
            "::",
            stringify!(SidStart)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__SYSTEM_ALARM_ACE() {
    assert_eq!(
        ::std::mem::size_of::<_SYSTEM_ALARM_ACE>(),
        12usize,
        concat!("Size of: ", stringify!(_SYSTEM_ALARM_ACE))
    );
    assert_eq!(
        ::std::mem::align_of::<_SYSTEM_ALARM_ACE>(),
        4usize,
        concat!("Alignment of ", stringify!(_SYSTEM_ALARM_ACE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEM_ALARM_ACE>())).Header as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_ALARM_ACE),
            "::",
            stringify!(Header)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEM_ALARM_ACE>())).Mask as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_ALARM_ACE),
            "::",
            stringify!(Mask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEM_ALARM_ACE>())).SidStart as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_ALARM_ACE),
            "::",
            stringify!(SidStart)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__SYSTEM_RESOURCE_ATTRIBUTE_ACE() {
    assert_eq!(
        ::std::mem::size_of::<_SYSTEM_RESOURCE_ATTRIBUTE_ACE>(),
        12usize,
        concat!("Size of: ", stringify!(_SYSTEM_RESOURCE_ATTRIBUTE_ACE))
    );
    assert_eq!(
        ::std::mem::align_of::<_SYSTEM_RESOURCE_ATTRIBUTE_ACE>(),
        4usize,
        concat!("Alignment of ", stringify!(_SYSTEM_RESOURCE_ATTRIBUTE_ACE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_RESOURCE_ATTRIBUTE_ACE>())).Header as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_RESOURCE_ATTRIBUTE_ACE),
            "::",
            stringify!(Header)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_RESOURCE_ATTRIBUTE_ACE>())).Mask as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_RESOURCE_ATTRIBUTE_ACE),
            "::",
            stringify!(Mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_RESOURCE_ATTRIBUTE_ACE>())).SidStart as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_RESOURCE_ATTRIBUTE_ACE),
            "::",
            stringify!(SidStart)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__SYSTEM_SCOPED_POLICY_ID_ACE() {
    assert_eq!(
        ::std::mem::size_of::<_SYSTEM_SCOPED_POLICY_ID_ACE>(),
        12usize,
        concat!("Size of: ", stringify!(_SYSTEM_SCOPED_POLICY_ID_ACE))
    );
    assert_eq!(
        ::std::mem::align_of::<_SYSTEM_SCOPED_POLICY_ID_ACE>(),
        4usize,
        concat!("Alignment of ", stringify!(_SYSTEM_SCOPED_POLICY_ID_ACE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_SCOPED_POLICY_ID_ACE>())).Header as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_SCOPED_POLICY_ID_ACE),
            "::",
            stringify!(Header)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_SCOPED_POLICY_ID_ACE>())).Mask as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_SCOPED_POLICY_ID_ACE),
            "::",
            stringify!(Mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_SCOPED_POLICY_ID_ACE>())).SidStart as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_SCOPED_POLICY_ID_ACE),
            "::",
            stringify!(SidStart)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__SYSTEM_MANDATORY_LABEL_ACE() {
    assert_eq!(
        ::std::mem::size_of::<_SYSTEM_MANDATORY_LABEL_ACE>(),
        12usize,
        concat!("Size of: ", stringify!(_SYSTEM_MANDATORY_LABEL_ACE))
    );
    assert_eq!(
        ::std::mem::align_of::<_SYSTEM_MANDATORY_LABEL_ACE>(),
        4usize,
        concat!("Alignment of ", stringify!(_SYSTEM_MANDATORY_LABEL_ACE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_MANDATORY_LABEL_ACE>())).Header as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_MANDATORY_LABEL_ACE),
            "::",
            stringify!(Header)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_MANDATORY_LABEL_ACE>())).Mask as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_MANDATORY_LABEL_ACE),
            "::",
            stringify!(Mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_MANDATORY_LABEL_ACE>())).SidStart as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_MANDATORY_LABEL_ACE),
            "::",
            stringify!(SidStart)
        )
    );
}
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 _SYSTEM_PROCESS_TRUST_LABEL_ACE {
    pub Header: ACE_HEADER,
    pub Mask: ACCESS_MASK,
    pub SidStart: DWORD,
}
#[test]
fn bindgen_test_layout__SYSTEM_PROCESS_TRUST_LABEL_ACE() {
    assert_eq!(
        ::std::mem::size_of::<_SYSTEM_PROCESS_TRUST_LABEL_ACE>(),
        12usize,
        concat!("Size of: ", stringify!(_SYSTEM_PROCESS_TRUST_LABEL_ACE))
    );
    assert_eq!(
        ::std::mem::align_of::<_SYSTEM_PROCESS_TRUST_LABEL_ACE>(),
        4usize,
        concat!("Alignment of ", stringify!(_SYSTEM_PROCESS_TRUST_LABEL_ACE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_PROCESS_TRUST_LABEL_ACE>())).Header as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_PROCESS_TRUST_LABEL_ACE),
            "::",
            stringify!(Header)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_PROCESS_TRUST_LABEL_ACE>())).Mask as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_PROCESS_TRUST_LABEL_ACE),
            "::",
            stringify!(Mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_PROCESS_TRUST_LABEL_ACE>())).SidStart as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_PROCESS_TRUST_LABEL_ACE),
            "::",
            stringify!(SidStart)
        )
    );
}
pub type SYSTEM_PROCESS_TRUST_LABEL_ACE = _SYSTEM_PROCESS_TRUST_LABEL_ACE;
pub type PSYSTEM_PROCESS_TRUST_LABEL_ACE = *mut _SYSTEM_PROCESS_TRUST_LABEL_ACE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SYSTEM_ACCESS_FILTER_ACE {
    pub Header: ACE_HEADER,
    pub Mask: ACCESS_MASK,
    pub SidStart: DWORD,
}
#[test]
fn bindgen_test_layout__SYSTEM_ACCESS_FILTER_ACE() {
    assert_eq!(
        ::std::mem::size_of::<_SYSTEM_ACCESS_FILTER_ACE>(),
        12usize,
        concat!("Size of: ", stringify!(_SYSTEM_ACCESS_FILTER_ACE))
    );
    assert_eq!(
        ::std::mem::align_of::<_SYSTEM_ACCESS_FILTER_ACE>(),
        4usize,
        concat!("Alignment of ", stringify!(_SYSTEM_ACCESS_FILTER_ACE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_ACCESS_FILTER_ACE>())).Header as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_ACCESS_FILTER_ACE),
            "::",
            stringify!(Header)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEM_ACCESS_FILTER_ACE>())).Mask as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_ACCESS_FILTER_ACE),
            "::",
            stringify!(Mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_ACCESS_FILTER_ACE>())).SidStart as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_ACCESS_FILTER_ACE),
            "::",
            stringify!(SidStart)
        )
    );
}
pub type SYSTEM_ACCESS_FILTER_ACE = _SYSTEM_ACCESS_FILTER_ACE;
pub type PSYSTEM_ACCESS_FILTER_ACE = *mut _SYSTEM_ACCESS_FILTER_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,
}
#[test]
fn bindgen_test_layout__ACCESS_ALLOWED_OBJECT_ACE() {
    assert_eq!(
        ::std::mem::size_of::<_ACCESS_ALLOWED_OBJECT_ACE>(),
        48usize,
        concat!("Size of: ", stringify!(_ACCESS_ALLOWED_OBJECT_ACE))
    );
    assert_eq!(
        ::std::mem::align_of::<_ACCESS_ALLOWED_OBJECT_ACE>(),
        4usize,
        concat!("Alignment of ", stringify!(_ACCESS_ALLOWED_OBJECT_ACE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACCESS_ALLOWED_OBJECT_ACE>())).Header as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_ALLOWED_OBJECT_ACE),
            "::",
            stringify!(Header)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ACCESS_ALLOWED_OBJECT_ACE>())).Mask as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_ALLOWED_OBJECT_ACE),
            "::",
            stringify!(Mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACCESS_ALLOWED_OBJECT_ACE>())).Flags as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_ALLOWED_OBJECT_ACE),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACCESS_ALLOWED_OBJECT_ACE>())).ObjectType as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_ALLOWED_OBJECT_ACE),
            "::",
            stringify!(ObjectType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACCESS_ALLOWED_OBJECT_ACE>())).InheritedObjectType as *const _
                as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_ALLOWED_OBJECT_ACE),
            "::",
            stringify!(InheritedObjectType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACCESS_ALLOWED_OBJECT_ACE>())).SidStart as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_ALLOWED_OBJECT_ACE),
            "::",
            stringify!(SidStart)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__ACCESS_DENIED_OBJECT_ACE() {
    assert_eq!(
        ::std::mem::size_of::<_ACCESS_DENIED_OBJECT_ACE>(),
        48usize,
        concat!("Size of: ", stringify!(_ACCESS_DENIED_OBJECT_ACE))
    );
    assert_eq!(
        ::std::mem::align_of::<_ACCESS_DENIED_OBJECT_ACE>(),
        4usize,
        concat!("Alignment of ", stringify!(_ACCESS_DENIED_OBJECT_ACE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACCESS_DENIED_OBJECT_ACE>())).Header as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_DENIED_OBJECT_ACE),
            "::",
            stringify!(Header)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ACCESS_DENIED_OBJECT_ACE>())).Mask as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_DENIED_OBJECT_ACE),
            "::",
            stringify!(Mask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ACCESS_DENIED_OBJECT_ACE>())).Flags as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_DENIED_OBJECT_ACE),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACCESS_DENIED_OBJECT_ACE>())).ObjectType as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_DENIED_OBJECT_ACE),
            "::",
            stringify!(ObjectType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACCESS_DENIED_OBJECT_ACE>())).InheritedObjectType as *const _
                as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_DENIED_OBJECT_ACE),
            "::",
            stringify!(InheritedObjectType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACCESS_DENIED_OBJECT_ACE>())).SidStart as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_DENIED_OBJECT_ACE),
            "::",
            stringify!(SidStart)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__SYSTEM_AUDIT_OBJECT_ACE() {
    assert_eq!(
        ::std::mem::size_of::<_SYSTEM_AUDIT_OBJECT_ACE>(),
        48usize,
        concat!("Size of: ", stringify!(_SYSTEM_AUDIT_OBJECT_ACE))
    );
    assert_eq!(
        ::std::mem::align_of::<_SYSTEM_AUDIT_OBJECT_ACE>(),
        4usize,
        concat!("Alignment of ", stringify!(_SYSTEM_AUDIT_OBJECT_ACE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEM_AUDIT_OBJECT_ACE>())).Header as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_AUDIT_OBJECT_ACE),
            "::",
            stringify!(Header)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEM_AUDIT_OBJECT_ACE>())).Mask as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_AUDIT_OBJECT_ACE),
            "::",
            stringify!(Mask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEM_AUDIT_OBJECT_ACE>())).Flags as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_AUDIT_OBJECT_ACE),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_AUDIT_OBJECT_ACE>())).ObjectType as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_AUDIT_OBJECT_ACE),
            "::",
            stringify!(ObjectType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_AUDIT_OBJECT_ACE>())).InheritedObjectType as *const _
                as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_AUDIT_OBJECT_ACE),
            "::",
            stringify!(InheritedObjectType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_AUDIT_OBJECT_ACE>())).SidStart as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_AUDIT_OBJECT_ACE),
            "::",
            stringify!(SidStart)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__SYSTEM_ALARM_OBJECT_ACE() {
    assert_eq!(
        ::std::mem::size_of::<_SYSTEM_ALARM_OBJECT_ACE>(),
        48usize,
        concat!("Size of: ", stringify!(_SYSTEM_ALARM_OBJECT_ACE))
    );
    assert_eq!(
        ::std::mem::align_of::<_SYSTEM_ALARM_OBJECT_ACE>(),
        4usize,
        concat!("Alignment of ", stringify!(_SYSTEM_ALARM_OBJECT_ACE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEM_ALARM_OBJECT_ACE>())).Header as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_ALARM_OBJECT_ACE),
            "::",
            stringify!(Header)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEM_ALARM_OBJECT_ACE>())).Mask as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_ALARM_OBJECT_ACE),
            "::",
            stringify!(Mask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEM_ALARM_OBJECT_ACE>())).Flags as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_ALARM_OBJECT_ACE),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_ALARM_OBJECT_ACE>())).ObjectType as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_ALARM_OBJECT_ACE),
            "::",
            stringify!(ObjectType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_ALARM_OBJECT_ACE>())).InheritedObjectType as *const _
                as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_ALARM_OBJECT_ACE),
            "::",
            stringify!(InheritedObjectType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_ALARM_OBJECT_ACE>())).SidStart as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_ALARM_OBJECT_ACE),
            "::",
            stringify!(SidStart)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__ACCESS_ALLOWED_CALLBACK_ACE() {
    assert_eq!(
        ::std::mem::size_of::<_ACCESS_ALLOWED_CALLBACK_ACE>(),
        12usize,
        concat!("Size of: ", stringify!(_ACCESS_ALLOWED_CALLBACK_ACE))
    );
    assert_eq!(
        ::std::mem::align_of::<_ACCESS_ALLOWED_CALLBACK_ACE>(),
        4usize,
        concat!("Alignment of ", stringify!(_ACCESS_ALLOWED_CALLBACK_ACE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACCESS_ALLOWED_CALLBACK_ACE>())).Header as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_ALLOWED_CALLBACK_ACE),
            "::",
            stringify!(Header)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACCESS_ALLOWED_CALLBACK_ACE>())).Mask as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_ALLOWED_CALLBACK_ACE),
            "::",
            stringify!(Mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACCESS_ALLOWED_CALLBACK_ACE>())).SidStart as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_ALLOWED_CALLBACK_ACE),
            "::",
            stringify!(SidStart)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__ACCESS_DENIED_CALLBACK_ACE() {
    assert_eq!(
        ::std::mem::size_of::<_ACCESS_DENIED_CALLBACK_ACE>(),
        12usize,
        concat!("Size of: ", stringify!(_ACCESS_DENIED_CALLBACK_ACE))
    );
    assert_eq!(
        ::std::mem::align_of::<_ACCESS_DENIED_CALLBACK_ACE>(),
        4usize,
        concat!("Alignment of ", stringify!(_ACCESS_DENIED_CALLBACK_ACE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACCESS_DENIED_CALLBACK_ACE>())).Header as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_DENIED_CALLBACK_ACE),
            "::",
            stringify!(Header)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACCESS_DENIED_CALLBACK_ACE>())).Mask as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_DENIED_CALLBACK_ACE),
            "::",
            stringify!(Mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACCESS_DENIED_CALLBACK_ACE>())).SidStart as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_DENIED_CALLBACK_ACE),
            "::",
            stringify!(SidStart)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__SYSTEM_AUDIT_CALLBACK_ACE() {
    assert_eq!(
        ::std::mem::size_of::<_SYSTEM_AUDIT_CALLBACK_ACE>(),
        12usize,
        concat!("Size of: ", stringify!(_SYSTEM_AUDIT_CALLBACK_ACE))
    );
    assert_eq!(
        ::std::mem::align_of::<_SYSTEM_AUDIT_CALLBACK_ACE>(),
        4usize,
        concat!("Alignment of ", stringify!(_SYSTEM_AUDIT_CALLBACK_ACE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_AUDIT_CALLBACK_ACE>())).Header as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_AUDIT_CALLBACK_ACE),
            "::",
            stringify!(Header)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEM_AUDIT_CALLBACK_ACE>())).Mask as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_AUDIT_CALLBACK_ACE),
            "::",
            stringify!(Mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_AUDIT_CALLBACK_ACE>())).SidStart as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_AUDIT_CALLBACK_ACE),
            "::",
            stringify!(SidStart)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__SYSTEM_ALARM_CALLBACK_ACE() {
    assert_eq!(
        ::std::mem::size_of::<_SYSTEM_ALARM_CALLBACK_ACE>(),
        12usize,
        concat!("Size of: ", stringify!(_SYSTEM_ALARM_CALLBACK_ACE))
    );
    assert_eq!(
        ::std::mem::align_of::<_SYSTEM_ALARM_CALLBACK_ACE>(),
        4usize,
        concat!("Alignment of ", stringify!(_SYSTEM_ALARM_CALLBACK_ACE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_ALARM_CALLBACK_ACE>())).Header as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_ALARM_CALLBACK_ACE),
            "::",
            stringify!(Header)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEM_ALARM_CALLBACK_ACE>())).Mask as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_ALARM_CALLBACK_ACE),
            "::",
            stringify!(Mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_ALARM_CALLBACK_ACE>())).SidStart as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_ALARM_CALLBACK_ACE),
            "::",
            stringify!(SidStart)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__ACCESS_ALLOWED_CALLBACK_OBJECT_ACE() {
    assert_eq!(
        ::std::mem::size_of::<_ACCESS_ALLOWED_CALLBACK_OBJECT_ACE>(),
        48usize,
        concat!("Size of: ", stringify!(_ACCESS_ALLOWED_CALLBACK_OBJECT_ACE))
    );
    assert_eq!(
        ::std::mem::align_of::<_ACCESS_ALLOWED_CALLBACK_OBJECT_ACE>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_ACCESS_ALLOWED_CALLBACK_OBJECT_ACE)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACCESS_ALLOWED_CALLBACK_OBJECT_ACE>())).Header as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_ALLOWED_CALLBACK_OBJECT_ACE),
            "::",
            stringify!(Header)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACCESS_ALLOWED_CALLBACK_OBJECT_ACE>())).Mask as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_ALLOWED_CALLBACK_OBJECT_ACE),
            "::",
            stringify!(Mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACCESS_ALLOWED_CALLBACK_OBJECT_ACE>())).Flags as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_ALLOWED_CALLBACK_OBJECT_ACE),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACCESS_ALLOWED_CALLBACK_OBJECT_ACE>())).ObjectType as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_ALLOWED_CALLBACK_OBJECT_ACE),
            "::",
            stringify!(ObjectType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACCESS_ALLOWED_CALLBACK_OBJECT_ACE>())).InheritedObjectType
                as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_ALLOWED_CALLBACK_OBJECT_ACE),
            "::",
            stringify!(InheritedObjectType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACCESS_ALLOWED_CALLBACK_OBJECT_ACE>())).SidStart as *const _
                as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_ALLOWED_CALLBACK_OBJECT_ACE),
            "::",
            stringify!(SidStart)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__ACCESS_DENIED_CALLBACK_OBJECT_ACE() {
    assert_eq!(
        ::std::mem::size_of::<_ACCESS_DENIED_CALLBACK_OBJECT_ACE>(),
        48usize,
        concat!("Size of: ", stringify!(_ACCESS_DENIED_CALLBACK_OBJECT_ACE))
    );
    assert_eq!(
        ::std::mem::align_of::<_ACCESS_DENIED_CALLBACK_OBJECT_ACE>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_ACCESS_DENIED_CALLBACK_OBJECT_ACE)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACCESS_DENIED_CALLBACK_OBJECT_ACE>())).Header as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_DENIED_CALLBACK_OBJECT_ACE),
            "::",
            stringify!(Header)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACCESS_DENIED_CALLBACK_OBJECT_ACE>())).Mask as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_DENIED_CALLBACK_OBJECT_ACE),
            "::",
            stringify!(Mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACCESS_DENIED_CALLBACK_OBJECT_ACE>())).Flags as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_DENIED_CALLBACK_OBJECT_ACE),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACCESS_DENIED_CALLBACK_OBJECT_ACE>())).ObjectType as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_DENIED_CALLBACK_OBJECT_ACE),
            "::",
            stringify!(ObjectType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACCESS_DENIED_CALLBACK_OBJECT_ACE>())).InheritedObjectType
                as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_DENIED_CALLBACK_OBJECT_ACE),
            "::",
            stringify!(InheritedObjectType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACCESS_DENIED_CALLBACK_OBJECT_ACE>())).SidStart as *const _
                as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_DENIED_CALLBACK_OBJECT_ACE),
            "::",
            stringify!(SidStart)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__SYSTEM_AUDIT_CALLBACK_OBJECT_ACE() {
    assert_eq!(
        ::std::mem::size_of::<_SYSTEM_AUDIT_CALLBACK_OBJECT_ACE>(),
        48usize,
        concat!("Size of: ", stringify!(_SYSTEM_AUDIT_CALLBACK_OBJECT_ACE))
    );
    assert_eq!(
        ::std::mem::align_of::<_SYSTEM_AUDIT_CALLBACK_OBJECT_ACE>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_SYSTEM_AUDIT_CALLBACK_OBJECT_ACE)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_AUDIT_CALLBACK_OBJECT_ACE>())).Header as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_AUDIT_CALLBACK_OBJECT_ACE),
            "::",
            stringify!(Header)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_AUDIT_CALLBACK_OBJECT_ACE>())).Mask as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_AUDIT_CALLBACK_OBJECT_ACE),
            "::",
            stringify!(Mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_AUDIT_CALLBACK_OBJECT_ACE>())).Flags as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_AUDIT_CALLBACK_OBJECT_ACE),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_AUDIT_CALLBACK_OBJECT_ACE>())).ObjectType as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_AUDIT_CALLBACK_OBJECT_ACE),
            "::",
            stringify!(ObjectType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_AUDIT_CALLBACK_OBJECT_ACE>())).InheritedObjectType
                as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_AUDIT_CALLBACK_OBJECT_ACE),
            "::",
            stringify!(InheritedObjectType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_AUDIT_CALLBACK_OBJECT_ACE>())).SidStart as *const _
                as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_AUDIT_CALLBACK_OBJECT_ACE),
            "::",
            stringify!(SidStart)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__SYSTEM_ALARM_CALLBACK_OBJECT_ACE() {
    assert_eq!(
        ::std::mem::size_of::<_SYSTEM_ALARM_CALLBACK_OBJECT_ACE>(),
        48usize,
        concat!("Size of: ", stringify!(_SYSTEM_ALARM_CALLBACK_OBJECT_ACE))
    );
    assert_eq!(
        ::std::mem::align_of::<_SYSTEM_ALARM_CALLBACK_OBJECT_ACE>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_SYSTEM_ALARM_CALLBACK_OBJECT_ACE)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_ALARM_CALLBACK_OBJECT_ACE>())).Header as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_ALARM_CALLBACK_OBJECT_ACE),
            "::",
            stringify!(Header)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_ALARM_CALLBACK_OBJECT_ACE>())).Mask as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_ALARM_CALLBACK_OBJECT_ACE),
            "::",
            stringify!(Mask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_ALARM_CALLBACK_OBJECT_ACE>())).Flags as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_ALARM_CALLBACK_OBJECT_ACE),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_ALARM_CALLBACK_OBJECT_ACE>())).ObjectType as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_ALARM_CALLBACK_OBJECT_ACE),
            "::",
            stringify!(ObjectType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_ALARM_CALLBACK_OBJECT_ACE>())).InheritedObjectType
                as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_ALARM_CALLBACK_OBJECT_ACE),
            "::",
            stringify!(InheritedObjectType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_ALARM_CALLBACK_OBJECT_ACE>())).SidStart as *const _
                as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_ALARM_CALLBACK_OBJECT_ACE),
            "::",
            stringify!(SidStart)
        )
    );
}
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 = ::std::os::raw::c_int;
pub use self::_ACL_INFORMATION_CLASS as ACL_INFORMATION_CLASS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ACL_REVISION_INFORMATION {
    pub AclRevision: DWORD,
}
#[test]
fn bindgen_test_layout__ACL_REVISION_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_ACL_REVISION_INFORMATION>(),
        4usize,
        concat!("Size of: ", stringify!(_ACL_REVISION_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_ACL_REVISION_INFORMATION>(),
        4usize,
        concat!("Alignment of ", stringify!(_ACL_REVISION_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACL_REVISION_INFORMATION>())).AclRevision as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACL_REVISION_INFORMATION),
            "::",
            stringify!(AclRevision)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__ACL_SIZE_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_ACL_SIZE_INFORMATION>(),
        12usize,
        concat!("Size of: ", stringify!(_ACL_SIZE_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_ACL_SIZE_INFORMATION>(),
        4usize,
        concat!("Alignment of ", stringify!(_ACL_SIZE_INFORMATION))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ACL_SIZE_INFORMATION>())).AceCount as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACL_SIZE_INFORMATION),
            "::",
            stringify!(AceCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACL_SIZE_INFORMATION>())).AclBytesInUse as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACL_SIZE_INFORMATION),
            "::",
            stringify!(AclBytesInUse)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACL_SIZE_INFORMATION>())).AclBytesFree as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACL_SIZE_INFORMATION),
            "::",
            stringify!(AclBytesFree)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__SECURITY_DESCRIPTOR_RELATIVE() {
    assert_eq!(
        ::std::mem::size_of::<_SECURITY_DESCRIPTOR_RELATIVE>(),
        20usize,
        concat!("Size of: ", stringify!(_SECURITY_DESCRIPTOR_RELATIVE))
    );
    assert_eq!(
        ::std::mem::align_of::<_SECURITY_DESCRIPTOR_RELATIVE>(),
        4usize,
        concat!("Alignment of ", stringify!(_SECURITY_DESCRIPTOR_RELATIVE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SECURITY_DESCRIPTOR_RELATIVE>())).Revision as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SECURITY_DESCRIPTOR_RELATIVE),
            "::",
            stringify!(Revision)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SECURITY_DESCRIPTOR_RELATIVE>())).Sbz1 as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_SECURITY_DESCRIPTOR_RELATIVE),
            "::",
            stringify!(Sbz1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SECURITY_DESCRIPTOR_RELATIVE>())).Control as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_SECURITY_DESCRIPTOR_RELATIVE),
            "::",
            stringify!(Control)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SECURITY_DESCRIPTOR_RELATIVE>())).Owner as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SECURITY_DESCRIPTOR_RELATIVE),
            "::",
            stringify!(Owner)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SECURITY_DESCRIPTOR_RELATIVE>())).Group as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SECURITY_DESCRIPTOR_RELATIVE),
            "::",
            stringify!(Group)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SECURITY_DESCRIPTOR_RELATIVE>())).Sacl as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_SECURITY_DESCRIPTOR_RELATIVE),
            "::",
            stringify!(Sacl)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SECURITY_DESCRIPTOR_RELATIVE>())).Dacl as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SECURITY_DESCRIPTOR_RELATIVE),
            "::",
            stringify!(Dacl)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__SECURITY_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_SECURITY_DESCRIPTOR>(),
        40usize,
        concat!("Size of: ", stringify!(_SECURITY_DESCRIPTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<_SECURITY_DESCRIPTOR>(),
        8usize,
        concat!("Alignment of ", stringify!(_SECURITY_DESCRIPTOR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SECURITY_DESCRIPTOR>())).Revision as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SECURITY_DESCRIPTOR),
            "::",
            stringify!(Revision)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SECURITY_DESCRIPTOR>())).Sbz1 as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_SECURITY_DESCRIPTOR),
            "::",
            stringify!(Sbz1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SECURITY_DESCRIPTOR>())).Control as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_SECURITY_DESCRIPTOR),
            "::",
            stringify!(Control)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SECURITY_DESCRIPTOR>())).Owner as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SECURITY_DESCRIPTOR),
            "::",
            stringify!(Owner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SECURITY_DESCRIPTOR>())).Group as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SECURITY_DESCRIPTOR),
            "::",
            stringify!(Group)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SECURITY_DESCRIPTOR>())).Sacl as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_SECURITY_DESCRIPTOR),
            "::",
            stringify!(Sacl)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SECURITY_DESCRIPTOR>())).Dacl as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_SECURITY_DESCRIPTOR),
            "::",
            stringify!(Dacl)
        )
    );
}
pub type SECURITY_DESCRIPTOR = _SECURITY_DESCRIPTOR;
pub type PISECURITY_DESCRIPTOR = *mut _SECURITY_DESCRIPTOR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SECURITY_OBJECT_AI_PARAMS {
    pub Size: DWORD,
    pub ConstraintMask: DWORD,
}
#[test]
fn bindgen_test_layout__SECURITY_OBJECT_AI_PARAMS() {
    assert_eq!(
        ::std::mem::size_of::<_SECURITY_OBJECT_AI_PARAMS>(),
        8usize,
        concat!("Size of: ", stringify!(_SECURITY_OBJECT_AI_PARAMS))
    );
    assert_eq!(
        ::std::mem::align_of::<_SECURITY_OBJECT_AI_PARAMS>(),
        4usize,
        concat!("Alignment of ", stringify!(_SECURITY_OBJECT_AI_PARAMS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SECURITY_OBJECT_AI_PARAMS>())).Size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SECURITY_OBJECT_AI_PARAMS),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SECURITY_OBJECT_AI_PARAMS>())).ConstraintMask as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SECURITY_OBJECT_AI_PARAMS),
            "::",
            stringify!(ConstraintMask)
        )
    );
}
pub type SECURITY_OBJECT_AI_PARAMS = _SECURITY_OBJECT_AI_PARAMS;
pub type PSECURITY_OBJECT_AI_PARAMS = *mut _SECURITY_OBJECT_AI_PARAMS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _OBJECT_TYPE_LIST {
    pub Level: WORD,
    pub Sbz: WORD,
    pub ObjectType: *mut GUID,
}
#[test]
fn bindgen_test_layout__OBJECT_TYPE_LIST() {
    assert_eq!(
        ::std::mem::size_of::<_OBJECT_TYPE_LIST>(),
        16usize,
        concat!("Size of: ", stringify!(_OBJECT_TYPE_LIST))
    );
    assert_eq!(
        ::std::mem::align_of::<_OBJECT_TYPE_LIST>(),
        8usize,
        concat!("Alignment of ", stringify!(_OBJECT_TYPE_LIST))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OBJECT_TYPE_LIST>())).Level as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OBJECT_TYPE_LIST),
            "::",
            stringify!(Level)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OBJECT_TYPE_LIST>())).Sbz as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_OBJECT_TYPE_LIST),
            "::",
            stringify!(Sbz)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OBJECT_TYPE_LIST>())).ObjectType as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_OBJECT_TYPE_LIST),
            "::",
            stringify!(ObjectType)
        )
    );
}
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 = ::std::os::raw::c_int;
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],
}
#[test]
fn bindgen_test_layout__PRIVILEGE_SET() {
    assert_eq!(
        ::std::mem::size_of::<_PRIVILEGE_SET>(),
        20usize,
        concat!("Size of: ", stringify!(_PRIVILEGE_SET))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRIVILEGE_SET>(),
        4usize,
        concat!("Alignment of ", stringify!(_PRIVILEGE_SET))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRIVILEGE_SET>())).PrivilegeCount as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRIVILEGE_SET),
            "::",
            stringify!(PrivilegeCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRIVILEGE_SET>())).Control as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRIVILEGE_SET),
            "::",
            stringify!(Control)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRIVILEGE_SET>())).Privilege as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRIVILEGE_SET),
            "::",
            stringify!(Privilege)
        )
    );
}
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 const _ACCESS_REASON_TYPE_AccessReasonTrustLabel: _ACCESS_REASON_TYPE = 9437184;
pub const _ACCESS_REASON_TYPE_AccessReasonFilterAce: _ACCESS_REASON_TYPE = 10485760;
pub type _ACCESS_REASON_TYPE = ::std::os::raw::c_int;
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],
}
#[test]
fn bindgen_test_layout__ACCESS_REASONS() {
    assert_eq!(
        ::std::mem::size_of::<_ACCESS_REASONS>(),
        128usize,
        concat!("Size of: ", stringify!(_ACCESS_REASONS))
    );
    assert_eq!(
        ::std::mem::align_of::<_ACCESS_REASONS>(),
        4usize,
        concat!("Alignment of ", stringify!(_ACCESS_REASONS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ACCESS_REASONS>())).Data as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACCESS_REASONS),
            "::",
            stringify!(Data)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__SE_SECURITY_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_SE_SECURITY_DESCRIPTOR>(),
        16usize,
        concat!("Size of: ", stringify!(_SE_SECURITY_DESCRIPTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<_SE_SECURITY_DESCRIPTOR>(),
        8usize,
        concat!("Alignment of ", stringify!(_SE_SECURITY_DESCRIPTOR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SE_SECURITY_DESCRIPTOR>())).Size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SE_SECURITY_DESCRIPTOR),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SE_SECURITY_DESCRIPTOR>())).Flags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SE_SECURITY_DESCRIPTOR),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SE_SECURITY_DESCRIPTOR>())).SecurityDescriptor as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SE_SECURITY_DESCRIPTOR),
            "::",
            stringify!(SecurityDescriptor)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__SE_ACCESS_REQUEST() {
    assert_eq!(
        ::std::mem::size_of::<_SE_ACCESS_REQUEST>(),
        56usize,
        concat!("Size of: ", stringify!(_SE_ACCESS_REQUEST))
    );
    assert_eq!(
        ::std::mem::align_of::<_SE_ACCESS_REQUEST>(),
        8usize,
        concat!("Alignment of ", stringify!(_SE_ACCESS_REQUEST))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SE_ACCESS_REQUEST>())).Size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SE_ACCESS_REQUEST),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SE_ACCESS_REQUEST>())).SeSecurityDescriptor as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SE_ACCESS_REQUEST),
            "::",
            stringify!(SeSecurityDescriptor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SE_ACCESS_REQUEST>())).DesiredAccess as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SE_ACCESS_REQUEST),
            "::",
            stringify!(DesiredAccess)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SE_ACCESS_REQUEST>())).PreviouslyGrantedAccess as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_SE_ACCESS_REQUEST),
            "::",
            stringify!(PreviouslyGrantedAccess)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SE_ACCESS_REQUEST>())).PrincipalSelfSid as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_SE_ACCESS_REQUEST),
            "::",
            stringify!(PrincipalSelfSid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SE_ACCESS_REQUEST>())).GenericMapping as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_SE_ACCESS_REQUEST),
            "::",
            stringify!(GenericMapping)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SE_ACCESS_REQUEST>())).ObjectTypeListCount as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_SE_ACCESS_REQUEST),
            "::",
            stringify!(ObjectTypeListCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SE_ACCESS_REQUEST>())).ObjectTypeList as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_SE_ACCESS_REQUEST),
            "::",
            stringify!(ObjectTypeList)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__SE_ACCESS_REPLY() {
    assert_eq!(
        ::std::mem::size_of::<_SE_ACCESS_REPLY>(),
        40usize,
        concat!("Size of: ", stringify!(_SE_ACCESS_REPLY))
    );
    assert_eq!(
        ::std::mem::align_of::<_SE_ACCESS_REPLY>(),
        8usize,
        concat!("Alignment of ", stringify!(_SE_ACCESS_REPLY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SE_ACCESS_REPLY>())).Size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SE_ACCESS_REPLY),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SE_ACCESS_REPLY>())).ResultListCount as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SE_ACCESS_REPLY),
            "::",
            stringify!(ResultListCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SE_ACCESS_REPLY>())).GrantedAccess as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SE_ACCESS_REPLY),
            "::",
            stringify!(GrantedAccess)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SE_ACCESS_REPLY>())).AccessStatus as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SE_ACCESS_REPLY),
            "::",
            stringify!(AccessStatus)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SE_ACCESS_REPLY>())).AccessReason as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_SE_ACCESS_REPLY),
            "::",
            stringify!(AccessReason)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SE_ACCESS_REPLY>())).Privileges as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_SE_ACCESS_REPLY),
            "::",
            stringify!(Privileges)
        )
    );
}
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 = ::std::os::raw::c_int;
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 = ::std::os::raw::c_int;
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 = ::std::os::raw::c_int;
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_TokenProcessTrustLevel: _TOKEN_INFORMATION_CLASS = 41;
pub const _TOKEN_INFORMATION_CLASS_TokenPrivateNameSpace: _TOKEN_INFORMATION_CLASS = 42;
pub const _TOKEN_INFORMATION_CLASS_TokenSingletonAttributes: _TOKEN_INFORMATION_CLASS = 43;
pub const _TOKEN_INFORMATION_CLASS_TokenBnoIsolation: _TOKEN_INFORMATION_CLASS = 44;
pub const _TOKEN_INFORMATION_CLASS_TokenChildProcessFlags: _TOKEN_INFORMATION_CLASS = 45;
pub const _TOKEN_INFORMATION_CLASS_TokenIsLessPrivilegedAppContainer: _TOKEN_INFORMATION_CLASS = 46;
pub const _TOKEN_INFORMATION_CLASS_TokenIsSandboxed: _TOKEN_INFORMATION_CLASS = 47;
pub const _TOKEN_INFORMATION_CLASS_TokenOriginatingProcessTrustLevel: _TOKEN_INFORMATION_CLASS = 48;
pub const _TOKEN_INFORMATION_CLASS_MaxTokenInfoClass: _TOKEN_INFORMATION_CLASS = 49;
pub type _TOKEN_INFORMATION_CLASS = ::std::os::raw::c_int;
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,
}
#[test]
fn bindgen_test_layout__TOKEN_USER() {
    assert_eq!(
        ::std::mem::size_of::<_TOKEN_USER>(),
        16usize,
        concat!("Size of: ", stringify!(_TOKEN_USER))
    );
    assert_eq!(
        ::std::mem::align_of::<_TOKEN_USER>(),
        8usize,
        concat!("Alignment of ", stringify!(_TOKEN_USER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TOKEN_USER>())).User as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_USER),
            "::",
            stringify!(User)
        )
    );
}
pub type TOKEN_USER = _TOKEN_USER;
pub type PTOKEN_USER = *mut _TOKEN_USER;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _SE_TOKEN_USER {
    pub __bindgen_anon_1: _SE_TOKEN_USER__bindgen_ty_1,
    pub __bindgen_anon_2: _SE_TOKEN_USER__bindgen_ty_2,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _SE_TOKEN_USER__bindgen_ty_1 {
    pub TokenUser: TOKEN_USER,
    pub User: SID_AND_ATTRIBUTES,
    _bindgen_union_align: [u64; 2usize],
}
#[test]
fn bindgen_test_layout__SE_TOKEN_USER__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_SE_TOKEN_USER__bindgen_ty_1>(),
        16usize,
        concat!("Size of: ", stringify!(_SE_TOKEN_USER__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_SE_TOKEN_USER__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(_SE_TOKEN_USER__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SE_TOKEN_USER__bindgen_ty_1>())).TokenUser as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SE_TOKEN_USER__bindgen_ty_1),
            "::",
            stringify!(TokenUser)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SE_TOKEN_USER__bindgen_ty_1>())).User as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SE_TOKEN_USER__bindgen_ty_1),
            "::",
            stringify!(User)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _SE_TOKEN_USER__bindgen_ty_2 {
    pub Sid: SID,
    pub Buffer: [BYTE; 68usize],
    _bindgen_union_align: [u32; 17usize],
}
#[test]
fn bindgen_test_layout__SE_TOKEN_USER__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_SE_TOKEN_USER__bindgen_ty_2>(),
        68usize,
        concat!("Size of: ", stringify!(_SE_TOKEN_USER__bindgen_ty_2))
    );
    assert_eq!(
        ::std::mem::align_of::<_SE_TOKEN_USER__bindgen_ty_2>(),
        4usize,
        concat!("Alignment of ", stringify!(_SE_TOKEN_USER__bindgen_ty_2))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SE_TOKEN_USER__bindgen_ty_2>())).Sid as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SE_TOKEN_USER__bindgen_ty_2),
            "::",
            stringify!(Sid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SE_TOKEN_USER__bindgen_ty_2>())).Buffer as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SE_TOKEN_USER__bindgen_ty_2),
            "::",
            stringify!(Buffer)
        )
    );
}
#[test]
fn bindgen_test_layout__SE_TOKEN_USER() {
    assert_eq!(
        ::std::mem::size_of::<_SE_TOKEN_USER>(),
        88usize,
        concat!("Size of: ", stringify!(_SE_TOKEN_USER))
    );
    assert_eq!(
        ::std::mem::align_of::<_SE_TOKEN_USER>(),
        8usize,
        concat!("Alignment of ", stringify!(_SE_TOKEN_USER))
    );
}
pub type SE_TOKEN_USER = _SE_TOKEN_USER;
pub type PSE_TOKEN_USER = _SE_TOKEN_USER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TOKEN_GROUPS {
    pub GroupCount: DWORD,
    pub Groups: [SID_AND_ATTRIBUTES; 1usize],
}
#[test]
fn bindgen_test_layout__TOKEN_GROUPS() {
    assert_eq!(
        ::std::mem::size_of::<_TOKEN_GROUPS>(),
        24usize,
        concat!("Size of: ", stringify!(_TOKEN_GROUPS))
    );
    assert_eq!(
        ::std::mem::align_of::<_TOKEN_GROUPS>(),
        8usize,
        concat!("Alignment of ", stringify!(_TOKEN_GROUPS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TOKEN_GROUPS>())).GroupCount as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_GROUPS),
            "::",
            stringify!(GroupCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TOKEN_GROUPS>())).Groups as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_GROUPS),
            "::",
            stringify!(Groups)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__TOKEN_PRIVILEGES() {
    assert_eq!(
        ::std::mem::size_of::<_TOKEN_PRIVILEGES>(),
        16usize,
        concat!("Size of: ", stringify!(_TOKEN_PRIVILEGES))
    );
    assert_eq!(
        ::std::mem::align_of::<_TOKEN_PRIVILEGES>(),
        4usize,
        concat!("Alignment of ", stringify!(_TOKEN_PRIVILEGES))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_PRIVILEGES>())).PrivilegeCount as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_PRIVILEGES),
            "::",
            stringify!(PrivilegeCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TOKEN_PRIVILEGES>())).Privileges as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_PRIVILEGES),
            "::",
            stringify!(Privileges)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TOKEN_OWNER() {
    assert_eq!(
        ::std::mem::size_of::<_TOKEN_OWNER>(),
        8usize,
        concat!("Size of: ", stringify!(_TOKEN_OWNER))
    );
    assert_eq!(
        ::std::mem::align_of::<_TOKEN_OWNER>(),
        8usize,
        concat!("Alignment of ", stringify!(_TOKEN_OWNER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TOKEN_OWNER>())).Owner as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_OWNER),
            "::",
            stringify!(Owner)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TOKEN_PRIMARY_GROUP() {
    assert_eq!(
        ::std::mem::size_of::<_TOKEN_PRIMARY_GROUP>(),
        8usize,
        concat!("Size of: ", stringify!(_TOKEN_PRIMARY_GROUP))
    );
    assert_eq!(
        ::std::mem::align_of::<_TOKEN_PRIMARY_GROUP>(),
        8usize,
        concat!("Alignment of ", stringify!(_TOKEN_PRIMARY_GROUP))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_PRIMARY_GROUP>())).PrimaryGroup as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_PRIMARY_GROUP),
            "::",
            stringify!(PrimaryGroup)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TOKEN_DEFAULT_DACL() {
    assert_eq!(
        ::std::mem::size_of::<_TOKEN_DEFAULT_DACL>(),
        8usize,
        concat!("Size of: ", stringify!(_TOKEN_DEFAULT_DACL))
    );
    assert_eq!(
        ::std::mem::align_of::<_TOKEN_DEFAULT_DACL>(),
        8usize,
        concat!("Alignment of ", stringify!(_TOKEN_DEFAULT_DACL))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TOKEN_DEFAULT_DACL>())).DefaultDacl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_DEFAULT_DACL),
            "::",
            stringify!(DefaultDacl)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TOKEN_USER_CLAIMS() {
    assert_eq!(
        ::std::mem::size_of::<_TOKEN_USER_CLAIMS>(),
        8usize,
        concat!("Size of: ", stringify!(_TOKEN_USER_CLAIMS))
    );
    assert_eq!(
        ::std::mem::align_of::<_TOKEN_USER_CLAIMS>(),
        8usize,
        concat!("Alignment of ", stringify!(_TOKEN_USER_CLAIMS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TOKEN_USER_CLAIMS>())).UserClaims as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_USER_CLAIMS),
            "::",
            stringify!(UserClaims)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TOKEN_DEVICE_CLAIMS() {
    assert_eq!(
        ::std::mem::size_of::<_TOKEN_DEVICE_CLAIMS>(),
        8usize,
        concat!("Size of: ", stringify!(_TOKEN_DEVICE_CLAIMS))
    );
    assert_eq!(
        ::std::mem::align_of::<_TOKEN_DEVICE_CLAIMS>(),
        8usize,
        concat!("Alignment of ", stringify!(_TOKEN_DEVICE_CLAIMS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_DEVICE_CLAIMS>())).DeviceClaims as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_DEVICE_CLAIMS),
            "::",
            stringify!(DeviceClaims)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TOKEN_GROUPS_AND_PRIVILEGES() {
    assert_eq!(
        ::std::mem::size_of::<_TOKEN_GROUPS_AND_PRIVILEGES>(),
        56usize,
        concat!("Size of: ", stringify!(_TOKEN_GROUPS_AND_PRIVILEGES))
    );
    assert_eq!(
        ::std::mem::align_of::<_TOKEN_GROUPS_AND_PRIVILEGES>(),
        8usize,
        concat!("Alignment of ", stringify!(_TOKEN_GROUPS_AND_PRIVILEGES))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_GROUPS_AND_PRIVILEGES>())).SidCount as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_GROUPS_AND_PRIVILEGES),
            "::",
            stringify!(SidCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_GROUPS_AND_PRIVILEGES>())).SidLength as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_GROUPS_AND_PRIVILEGES),
            "::",
            stringify!(SidLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_GROUPS_AND_PRIVILEGES>())).Sids as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_GROUPS_AND_PRIVILEGES),
            "::",
            stringify!(Sids)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_GROUPS_AND_PRIVILEGES>())).RestrictedSidCount as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_GROUPS_AND_PRIVILEGES),
            "::",
            stringify!(RestrictedSidCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_GROUPS_AND_PRIVILEGES>())).RestrictedSidLength as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_GROUPS_AND_PRIVILEGES),
            "::",
            stringify!(RestrictedSidLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_GROUPS_AND_PRIVILEGES>())).RestrictedSids as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_GROUPS_AND_PRIVILEGES),
            "::",
            stringify!(RestrictedSids)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_GROUPS_AND_PRIVILEGES>())).PrivilegeCount as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_GROUPS_AND_PRIVILEGES),
            "::",
            stringify!(PrivilegeCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_GROUPS_AND_PRIVILEGES>())).PrivilegeLength as *const _
                as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_GROUPS_AND_PRIVILEGES),
            "::",
            stringify!(PrivilegeLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_GROUPS_AND_PRIVILEGES>())).Privileges as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_GROUPS_AND_PRIVILEGES),
            "::",
            stringify!(Privileges)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_GROUPS_AND_PRIVILEGES>())).AuthenticationId as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_GROUPS_AND_PRIVILEGES),
            "::",
            stringify!(AuthenticationId)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TOKEN_LINKED_TOKEN() {
    assert_eq!(
        ::std::mem::size_of::<_TOKEN_LINKED_TOKEN>(),
        8usize,
        concat!("Size of: ", stringify!(_TOKEN_LINKED_TOKEN))
    );
    assert_eq!(
        ::std::mem::align_of::<_TOKEN_LINKED_TOKEN>(),
        8usize,
        concat!("Alignment of ", stringify!(_TOKEN_LINKED_TOKEN))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TOKEN_LINKED_TOKEN>())).LinkedToken as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_LINKED_TOKEN),
            "::",
            stringify!(LinkedToken)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TOKEN_ELEVATION() {
    assert_eq!(
        ::std::mem::size_of::<_TOKEN_ELEVATION>(),
        4usize,
        concat!("Size of: ", stringify!(_TOKEN_ELEVATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_TOKEN_ELEVATION>(),
        4usize,
        concat!("Alignment of ", stringify!(_TOKEN_ELEVATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_ELEVATION>())).TokenIsElevated as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_ELEVATION),
            "::",
            stringify!(TokenIsElevated)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TOKEN_MANDATORY_LABEL() {
    assert_eq!(
        ::std::mem::size_of::<_TOKEN_MANDATORY_LABEL>(),
        16usize,
        concat!("Size of: ", stringify!(_TOKEN_MANDATORY_LABEL))
    );
    assert_eq!(
        ::std::mem::align_of::<_TOKEN_MANDATORY_LABEL>(),
        8usize,
        concat!("Alignment of ", stringify!(_TOKEN_MANDATORY_LABEL))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TOKEN_MANDATORY_LABEL>())).Label as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_MANDATORY_LABEL),
            "::",
            stringify!(Label)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TOKEN_MANDATORY_POLICY() {
    assert_eq!(
        ::std::mem::size_of::<_TOKEN_MANDATORY_POLICY>(),
        4usize,
        concat!("Size of: ", stringify!(_TOKEN_MANDATORY_POLICY))
    );
    assert_eq!(
        ::std::mem::align_of::<_TOKEN_MANDATORY_POLICY>(),
        4usize,
        concat!("Alignment of ", stringify!(_TOKEN_MANDATORY_POLICY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TOKEN_MANDATORY_POLICY>())).Policy as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_MANDATORY_POLICY),
            "::",
            stringify!(Policy)
        )
    );
}
pub type TOKEN_MANDATORY_POLICY = _TOKEN_MANDATORY_POLICY;
pub type PTOKEN_MANDATORY_POLICY = *mut _TOKEN_MANDATORY_POLICY;
pub type PSECURITY_ATTRIBUTES_OPAQUE = PVOID;
#[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 TrustLevelSid: PSID,
    pub SecurityAttributes: PSECURITY_ATTRIBUTES_OPAQUE,
}
#[test]
fn bindgen_test_layout__TOKEN_ACCESS_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_TOKEN_ACCESS_INFORMATION>(),
        88usize,
        concat!("Size of: ", stringify!(_TOKEN_ACCESS_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_TOKEN_ACCESS_INFORMATION>(),
        8usize,
        concat!("Alignment of ", stringify!(_TOKEN_ACCESS_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_ACCESS_INFORMATION>())).SidHash as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_ACCESS_INFORMATION),
            "::",
            stringify!(SidHash)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_ACCESS_INFORMATION>())).RestrictedSidHash as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_ACCESS_INFORMATION),
            "::",
            stringify!(RestrictedSidHash)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_ACCESS_INFORMATION>())).Privileges as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_ACCESS_INFORMATION),
            "::",
            stringify!(Privileges)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_ACCESS_INFORMATION>())).AuthenticationId as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_ACCESS_INFORMATION),
            "::",
            stringify!(AuthenticationId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_ACCESS_INFORMATION>())).TokenType as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_ACCESS_INFORMATION),
            "::",
            stringify!(TokenType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_ACCESS_INFORMATION>())).ImpersonationLevel as *const _
                as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_ACCESS_INFORMATION),
            "::",
            stringify!(ImpersonationLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_ACCESS_INFORMATION>())).MandatoryPolicy as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_ACCESS_INFORMATION),
            "::",
            stringify!(MandatoryPolicy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TOKEN_ACCESS_INFORMATION>())).Flags as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_ACCESS_INFORMATION),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_ACCESS_INFORMATION>())).AppContainerNumber as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_ACCESS_INFORMATION),
            "::",
            stringify!(AppContainerNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_ACCESS_INFORMATION>())).PackageSid as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_ACCESS_INFORMATION),
            "::",
            stringify!(PackageSid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_ACCESS_INFORMATION>())).CapabilitiesHash as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_ACCESS_INFORMATION),
            "::",
            stringify!(CapabilitiesHash)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_ACCESS_INFORMATION>())).TrustLevelSid as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_ACCESS_INFORMATION),
            "::",
            stringify!(TrustLevelSid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_ACCESS_INFORMATION>())).SecurityAttributes as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_ACCESS_INFORMATION),
            "::",
            stringify!(SecurityAttributes)
        )
    );
}
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: [BYTE; 30usize],
}
#[test]
fn bindgen_test_layout__TOKEN_AUDIT_POLICY() {
    assert_eq!(
        ::std::mem::size_of::<_TOKEN_AUDIT_POLICY>(),
        30usize,
        concat!("Size of: ", stringify!(_TOKEN_AUDIT_POLICY))
    );
    assert_eq!(
        ::std::mem::align_of::<_TOKEN_AUDIT_POLICY>(),
        1usize,
        concat!("Alignment of ", stringify!(_TOKEN_AUDIT_POLICY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_AUDIT_POLICY>())).PerUserPolicy as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_AUDIT_POLICY),
            "::",
            stringify!(PerUserPolicy)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TOKEN_SOURCE() {
    assert_eq!(
        ::std::mem::size_of::<_TOKEN_SOURCE>(),
        16usize,
        concat!("Size of: ", stringify!(_TOKEN_SOURCE))
    );
    assert_eq!(
        ::std::mem::align_of::<_TOKEN_SOURCE>(),
        4usize,
        concat!("Alignment of ", stringify!(_TOKEN_SOURCE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TOKEN_SOURCE>())).SourceName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_SOURCE),
            "::",
            stringify!(SourceName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TOKEN_SOURCE>())).SourceIdentifier as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_SOURCE),
            "::",
            stringify!(SourceIdentifier)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TOKEN_STATISTICS() {
    assert_eq!(
        ::std::mem::size_of::<_TOKEN_STATISTICS>(),
        56usize,
        concat!("Size of: ", stringify!(_TOKEN_STATISTICS))
    );
    assert_eq!(
        ::std::mem::align_of::<_TOKEN_STATISTICS>(),
        8usize,
        concat!("Alignment of ", stringify!(_TOKEN_STATISTICS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TOKEN_STATISTICS>())).TokenId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_STATISTICS),
            "::",
            stringify!(TokenId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_STATISTICS>())).AuthenticationId as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_STATISTICS),
            "::",
            stringify!(AuthenticationId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_STATISTICS>())).ExpirationTime as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_STATISTICS),
            "::",
            stringify!(ExpirationTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TOKEN_STATISTICS>())).TokenType as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_STATISTICS),
            "::",
            stringify!(TokenType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_STATISTICS>())).ImpersonationLevel as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_STATISTICS),
            "::",
            stringify!(ImpersonationLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_STATISTICS>())).DynamicCharged as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_STATISTICS),
            "::",
            stringify!(DynamicCharged)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_STATISTICS>())).DynamicAvailable as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_STATISTICS),
            "::",
            stringify!(DynamicAvailable)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TOKEN_STATISTICS>())).GroupCount as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_STATISTICS),
            "::",
            stringify!(GroupCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_STATISTICS>())).PrivilegeCount as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_STATISTICS),
            "::",
            stringify!(PrivilegeCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TOKEN_STATISTICS>())).ModifiedId as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_STATISTICS),
            "::",
            stringify!(ModifiedId)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TOKEN_CONTROL() {
    assert_eq!(
        ::std::mem::size_of::<_TOKEN_CONTROL>(),
        40usize,
        concat!("Size of: ", stringify!(_TOKEN_CONTROL))
    );
    assert_eq!(
        ::std::mem::align_of::<_TOKEN_CONTROL>(),
        4usize,
        concat!("Alignment of ", stringify!(_TOKEN_CONTROL))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TOKEN_CONTROL>())).TokenId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_CONTROL),
            "::",
            stringify!(TokenId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TOKEN_CONTROL>())).AuthenticationId as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_CONTROL),
            "::",
            stringify!(AuthenticationId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TOKEN_CONTROL>())).ModifiedId as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_CONTROL),
            "::",
            stringify!(ModifiedId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TOKEN_CONTROL>())).TokenSource as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_CONTROL),
            "::",
            stringify!(TokenSource)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TOKEN_ORIGIN() {
    assert_eq!(
        ::std::mem::size_of::<_TOKEN_ORIGIN>(),
        8usize,
        concat!("Size of: ", stringify!(_TOKEN_ORIGIN))
    );
    assert_eq!(
        ::std::mem::align_of::<_TOKEN_ORIGIN>(),
        4usize,
        concat!("Alignment of ", stringify!(_TOKEN_ORIGIN))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_ORIGIN>())).OriginatingLogonSession as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_ORIGIN),
            "::",
            stringify!(OriginatingLogonSession)
        )
    );
}
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 = ::std::os::raw::c_int;
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,
}
#[test]
fn bindgen_test_layout__TOKEN_APPCONTAINER_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_TOKEN_APPCONTAINER_INFORMATION>(),
        8usize,
        concat!("Size of: ", stringify!(_TOKEN_APPCONTAINER_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_TOKEN_APPCONTAINER_INFORMATION>(),
        8usize,
        concat!("Alignment of ", stringify!(_TOKEN_APPCONTAINER_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_APPCONTAINER_INFORMATION>())).TokenAppContainer
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_APPCONTAINER_INFORMATION),
            "::",
            stringify!(TokenAppContainer)
        )
    );
}
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 _TOKEN_SID_INFORMATION {
    pub Sid: PSID,
}
#[test]
fn bindgen_test_layout__TOKEN_SID_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_TOKEN_SID_INFORMATION>(),
        8usize,
        concat!("Size of: ", stringify!(_TOKEN_SID_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_TOKEN_SID_INFORMATION>(),
        8usize,
        concat!("Alignment of ", stringify!(_TOKEN_SID_INFORMATION))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TOKEN_SID_INFORMATION>())).Sid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_SID_INFORMATION),
            "::",
            stringify!(Sid)
        )
    );
}
pub type TOKEN_SID_INFORMATION = _TOKEN_SID_INFORMATION;
pub type PTOKEN_SID_INFORMATION = *mut _TOKEN_SID_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TOKEN_BNO_ISOLATION_INFORMATION {
    pub IsolationPrefix: PWSTR,
    pub IsolationEnabled: BOOLEAN,
}
#[test]
fn bindgen_test_layout__TOKEN_BNO_ISOLATION_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_TOKEN_BNO_ISOLATION_INFORMATION>(),
        16usize,
        concat!("Size of: ", stringify!(_TOKEN_BNO_ISOLATION_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_TOKEN_BNO_ISOLATION_INFORMATION>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_TOKEN_BNO_ISOLATION_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_BNO_ISOLATION_INFORMATION>())).IsolationPrefix as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_BNO_ISOLATION_INFORMATION),
            "::",
            stringify!(IsolationPrefix)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TOKEN_BNO_ISOLATION_INFORMATION>())).IsolationEnabled
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_TOKEN_BNO_ISOLATION_INFORMATION),
            "::",
            stringify!(IsolationEnabled)
        )
    );
}
pub type TOKEN_BNO_ISOLATION_INFORMATION = _TOKEN_BNO_ISOLATION_INFORMATION;
pub type PTOKEN_BNO_ISOLATION_INFORMATION = *mut _TOKEN_BNO_ISOLATION_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE {
    pub Version: DWORD64,
    pub Name: PWSTR,
}
#[test]
fn bindgen_test_layout__CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE() {
    assert_eq!(
        ::std::mem::size_of::<_CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE>())).Name as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE),
            "::",
            stringify!(Name)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE() {
    assert_eq!(
        ::std::mem::size_of::<_CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE>())).pValue
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE),
            "::",
            stringify!(pValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE>())).ValueLength
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE),
            "::",
            stringify!(ValueLength)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__CLAIM_SECURITY_ATTRIBUTE_V1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_CLAIM_SECURITY_ATTRIBUTE_V1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_V1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CLAIM_SECURITY_ATTRIBUTE_V1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_V1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLAIM_SECURITY_ATTRIBUTE_V1__bindgen_ty_1>())).pInt64
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_V1__bindgen_ty_1),
            "::",
            stringify!(pInt64)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLAIM_SECURITY_ATTRIBUTE_V1__bindgen_ty_1>())).pUint64
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_V1__bindgen_ty_1),
            "::",
            stringify!(pUint64)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLAIM_SECURITY_ATTRIBUTE_V1__bindgen_ty_1>())).ppString
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_V1__bindgen_ty_1),
            "::",
            stringify!(ppString)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLAIM_SECURITY_ATTRIBUTE_V1__bindgen_ty_1>())).pFqbn as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_V1__bindgen_ty_1),
            "::",
            stringify!(pFqbn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLAIM_SECURITY_ATTRIBUTE_V1__bindgen_ty_1>())).pOctetString
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_V1__bindgen_ty_1),
            "::",
            stringify!(pOctetString)
        )
    );
}
#[test]
fn bindgen_test_layout__CLAIM_SECURITY_ATTRIBUTE_V1() {
    assert_eq!(
        ::std::mem::size_of::<_CLAIM_SECURITY_ATTRIBUTE_V1>(),
        32usize,
        concat!("Size of: ", stringify!(_CLAIM_SECURITY_ATTRIBUTE_V1))
    );
    assert_eq!(
        ::std::mem::align_of::<_CLAIM_SECURITY_ATTRIBUTE_V1>(),
        8usize,
        concat!("Alignment of ", stringify!(_CLAIM_SECURITY_ATTRIBUTE_V1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLAIM_SECURITY_ATTRIBUTE_V1>())).Name as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_V1),
            "::",
            stringify!(Name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLAIM_SECURITY_ATTRIBUTE_V1>())).ValueType as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_V1),
            "::",
            stringify!(ValueType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLAIM_SECURITY_ATTRIBUTE_V1>())).Reserved as *const _ as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_V1),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLAIM_SECURITY_ATTRIBUTE_V1>())).Flags as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_V1),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLAIM_SECURITY_ATTRIBUTE_V1>())).ValueCount as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_V1),
            "::",
            stringify!(ValueCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLAIM_SECURITY_ATTRIBUTE_V1>())).Values as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_V1),
            "::",
            stringify!(Values)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1__bindgen_ty_1>())).pInt64
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1__bindgen_ty_1),
            "::",
            stringify!(pInt64)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1__bindgen_ty_1>())).pUint64
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1__bindgen_ty_1),
            "::",
            stringify!(pUint64)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1__bindgen_ty_1>())).ppString
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1__bindgen_ty_1),
            "::",
            stringify!(ppString)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1__bindgen_ty_1>())).pFqbn
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1__bindgen_ty_1),
            "::",
            stringify!(pFqbn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1__bindgen_ty_1>()))
                .pOctetString as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1__bindgen_ty_1),
            "::",
            stringify!(pOctetString)
        )
    );
}
#[test]
fn bindgen_test_layout__CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1() {
    assert_eq!(
        ::std::mem::size_of::<_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1>(),
        20usize,
        concat!(
            "Size of: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1>())).Name as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1),
            "::",
            stringify!(Name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1>())).ValueType as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1),
            "::",
            stringify!(ValueType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1>())).Reserved as *const _
                as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1>())).Flags as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1>())).ValueCount as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1),
            "::",
            stringify!(ValueCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1>())).Values as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1),
            "::",
            stringify!(Values)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__CLAIM_SECURITY_ATTRIBUTES_INFORMATION__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_CLAIM_SECURITY_ATTRIBUTES_INFORMATION__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTES_INFORMATION__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CLAIM_SECURITY_ATTRIBUTES_INFORMATION__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTES_INFORMATION__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLAIM_SECURITY_ATTRIBUTES_INFORMATION__bindgen_ty_1>()))
                .pAttributeV1 as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTES_INFORMATION__bindgen_ty_1),
            "::",
            stringify!(pAttributeV1)
        )
    );
}
#[test]
fn bindgen_test_layout__CLAIM_SECURITY_ATTRIBUTES_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_CLAIM_SECURITY_ATTRIBUTES_INFORMATION>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTES_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CLAIM_SECURITY_ATTRIBUTES_INFORMATION>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTES_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLAIM_SECURITY_ATTRIBUTES_INFORMATION>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTES_INFORMATION),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLAIM_SECURITY_ATTRIBUTES_INFORMATION>())).Reserved as *const _
                as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTES_INFORMATION),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLAIM_SECURITY_ATTRIBUTES_INFORMATION>())).AttributeCount
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTES_INFORMATION),
            "::",
            stringify!(AttributeCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLAIM_SECURITY_ATTRIBUTES_INFORMATION>())).Attribute as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLAIM_SECURITY_ATTRIBUTES_INFORMATION),
            "::",
            stringify!(Attribute)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__SECURITY_QUALITY_OF_SERVICE() {
    assert_eq!(
        ::std::mem::size_of::<_SECURITY_QUALITY_OF_SERVICE>(),
        12usize,
        concat!("Size of: ", stringify!(_SECURITY_QUALITY_OF_SERVICE))
    );
    assert_eq!(
        ::std::mem::align_of::<_SECURITY_QUALITY_OF_SERVICE>(),
        4usize,
        concat!("Alignment of ", stringify!(_SECURITY_QUALITY_OF_SERVICE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SECURITY_QUALITY_OF_SERVICE>())).Length as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SECURITY_QUALITY_OF_SERVICE),
            "::",
            stringify!(Length)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SECURITY_QUALITY_OF_SERVICE>())).ImpersonationLevel as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SECURITY_QUALITY_OF_SERVICE),
            "::",
            stringify!(ImpersonationLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SECURITY_QUALITY_OF_SERVICE>())).ContextTrackingMode as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SECURITY_QUALITY_OF_SERVICE),
            "::",
            stringify!(ContextTrackingMode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SECURITY_QUALITY_OF_SERVICE>())).EffectiveOnly as *const _
                as usize
        },
        9usize,
        concat!(
            "Offset of field: ",
            stringify!(_SECURITY_QUALITY_OF_SERVICE),
            "::",
            stringify!(EffectiveOnly)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__SE_IMPERSONATION_STATE() {
    assert_eq!(
        ::std::mem::size_of::<_SE_IMPERSONATION_STATE>(),
        16usize,
        concat!("Size of: ", stringify!(_SE_IMPERSONATION_STATE))
    );
    assert_eq!(
        ::std::mem::align_of::<_SE_IMPERSONATION_STATE>(),
        8usize,
        concat!("Alignment of ", stringify!(_SE_IMPERSONATION_STATE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SE_IMPERSONATION_STATE>())).Token as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SE_IMPERSONATION_STATE),
            "::",
            stringify!(Token)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SE_IMPERSONATION_STATE>())).CopyOnOpen as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SE_IMPERSONATION_STATE),
            "::",
            stringify!(CopyOnOpen)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SE_IMPERSONATION_STATE>())).EffectiveOnly as *const _ as usize
        },
        9usize,
        concat!(
            "Offset of field: ",
            stringify!(_SE_IMPERSONATION_STATE),
            "::",
            stringify!(EffectiveOnly)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SE_IMPERSONATION_STATE>())).Level as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_SE_IMPERSONATION_STATE),
            "::",
            stringify!(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 type SE_SIGNING_LEVEL = BYTE;
pub type PSE_SIGNING_LEVEL = *mut BYTE;
pub const _SE_IMAGE_SIGNATURE_TYPE_SeImageSignatureNone: _SE_IMAGE_SIGNATURE_TYPE = 0;
pub const _SE_IMAGE_SIGNATURE_TYPE_SeImageSignatureEmbedded: _SE_IMAGE_SIGNATURE_TYPE = 1;
pub const _SE_IMAGE_SIGNATURE_TYPE_SeImageSignatureCache: _SE_IMAGE_SIGNATURE_TYPE = 2;
pub const _SE_IMAGE_SIGNATURE_TYPE_SeImageSignatureCatalogCached: _SE_IMAGE_SIGNATURE_TYPE = 3;
pub const _SE_IMAGE_SIGNATURE_TYPE_SeImageSignatureCatalogNotCached: _SE_IMAGE_SIGNATURE_TYPE = 4;
pub const _SE_IMAGE_SIGNATURE_TYPE_SeImageSignatureCatalogHint: _SE_IMAGE_SIGNATURE_TYPE = 5;
pub const _SE_IMAGE_SIGNATURE_TYPE_SeImageSignaturePackageCatalog: _SE_IMAGE_SIGNATURE_TYPE = 6;
pub type _SE_IMAGE_SIGNATURE_TYPE = ::std::os::raw::c_int;
pub use self::_SE_IMAGE_SIGNATURE_TYPE as SE_IMAGE_SIGNATURE_TYPE;
pub type PSE_IMAGE_SIGNATURE_TYPE = *mut _SE_IMAGE_SIGNATURE_TYPE;
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 = ::std::os::raw::c_int;
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,
}
#[test]
fn bindgen_test_layout__SECURITY_CAPABILITIES() {
    assert_eq!(
        ::std::mem::size_of::<_SECURITY_CAPABILITIES>(),
        24usize,
        concat!("Size of: ", stringify!(_SECURITY_CAPABILITIES))
    );
    assert_eq!(
        ::std::mem::align_of::<_SECURITY_CAPABILITIES>(),
        8usize,
        concat!("Alignment of ", stringify!(_SECURITY_CAPABILITIES))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SECURITY_CAPABILITIES>())).AppContainerSid as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SECURITY_CAPABILITIES),
            "::",
            stringify!(AppContainerSid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SECURITY_CAPABILITIES>())).Capabilities as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SECURITY_CAPABILITIES),
            "::",
            stringify!(Capabilities)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SECURITY_CAPABILITIES>())).CapabilityCount as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SECURITY_CAPABILITIES),
            "::",
            stringify!(CapabilityCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SECURITY_CAPABILITIES>())).Reserved as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_SECURITY_CAPABILITIES),
            "::",
            stringify!(Reserved)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__JOB_SET_ARRAY() {
    assert_eq!(
        ::std::mem::size_of::<_JOB_SET_ARRAY>(),
        16usize,
        concat!("Size of: ", stringify!(_JOB_SET_ARRAY))
    );
    assert_eq!(
        ::std::mem::align_of::<_JOB_SET_ARRAY>(),
        8usize,
        concat!("Alignment of ", stringify!(_JOB_SET_ARRAY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_SET_ARRAY>())).JobHandle as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_SET_ARRAY),
            "::",
            stringify!(JobHandle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_SET_ARRAY>())).MemberLevel as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_SET_ARRAY),
            "::",
            stringify!(MemberLevel)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_SET_ARRAY>())).Flags as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_SET_ARRAY),
            "::",
            stringify!(Flags)
        )
    );
}
pub type JOB_SET_ARRAY = _JOB_SET_ARRAY;
pub type PJOB_SET_ARRAY = *mut _JOB_SET_ARRAY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _EXCEPTION_REGISTRATION_RECORD {
    pub Next: *mut _EXCEPTION_REGISTRATION_RECORD,
    pub Handler: PEXCEPTION_ROUTINE,
}
#[test]
fn bindgen_test_layout__EXCEPTION_REGISTRATION_RECORD() {
    assert_eq!(
        ::std::mem::size_of::<_EXCEPTION_REGISTRATION_RECORD>(),
        16usize,
        concat!("Size of: ", stringify!(_EXCEPTION_REGISTRATION_RECORD))
    );
    assert_eq!(
        ::std::mem::align_of::<_EXCEPTION_REGISTRATION_RECORD>(),
        8usize,
        concat!("Alignment of ", stringify!(_EXCEPTION_REGISTRATION_RECORD))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXCEPTION_REGISTRATION_RECORD>())).Next as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXCEPTION_REGISTRATION_RECORD),
            "::",
            stringify!(Next)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXCEPTION_REGISTRATION_RECORD>())).Handler as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXCEPTION_REGISTRATION_RECORD),
            "::",
            stringify!(Handler)
        )
    );
}
pub type EXCEPTION_REGISTRATION_RECORD = _EXCEPTION_REGISTRATION_RECORD;
pub type PEXCEPTION_REGISTRATION_RECORD = *mut EXCEPTION_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,
}
#[test]
fn bindgen_test_layout__NT_TIB__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_NT_TIB__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_NT_TIB__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_NT_TIB__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(_NT_TIB__bindgen_ty_1))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NT_TIB__bindgen_ty_1>())).FiberData as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NT_TIB__bindgen_ty_1),
            "::",
            stringify!(FiberData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NT_TIB__bindgen_ty_1>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NT_TIB__bindgen_ty_1),
            "::",
            stringify!(Version)
        )
    );
}
#[test]
fn bindgen_test_layout__NT_TIB() {
    assert_eq!(
        ::std::mem::size_of::<_NT_TIB>(),
        56usize,
        concat!("Size of: ", stringify!(_NT_TIB))
    );
    assert_eq!(
        ::std::mem::align_of::<_NT_TIB>(),
        8usize,
        concat!("Alignment of ", stringify!(_NT_TIB))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NT_TIB>())).ExceptionList as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NT_TIB),
            "::",
            stringify!(ExceptionList)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NT_TIB>())).StackBase as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NT_TIB),
            "::",
            stringify!(StackBase)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NT_TIB>())).StackLimit as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_NT_TIB),
            "::",
            stringify!(StackLimit)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NT_TIB>())).SubSystemTib as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_NT_TIB),
            "::",
            stringify!(SubSystemTib)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NT_TIB>())).ArbitraryUserPointer as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_NT_TIB),
            "::",
            stringify!(ArbitraryUserPointer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NT_TIB>())).Self_ as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_NT_TIB),
            "::",
            stringify!(Self_)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__NT_TIB32__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_NT_TIB32__bindgen_ty_1>(),
        4usize,
        concat!("Size of: ", stringify!(_NT_TIB32__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_NT_TIB32__bindgen_ty_1>(),
        4usize,
        concat!("Alignment of ", stringify!(_NT_TIB32__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NT_TIB32__bindgen_ty_1>())).FiberData as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NT_TIB32__bindgen_ty_1),
            "::",
            stringify!(FiberData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NT_TIB32__bindgen_ty_1>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NT_TIB32__bindgen_ty_1),
            "::",
            stringify!(Version)
        )
    );
}
#[test]
fn bindgen_test_layout__NT_TIB32() {
    assert_eq!(
        ::std::mem::size_of::<_NT_TIB32>(),
        28usize,
        concat!("Size of: ", stringify!(_NT_TIB32))
    );
    assert_eq!(
        ::std::mem::align_of::<_NT_TIB32>(),
        4usize,
        concat!("Alignment of ", stringify!(_NT_TIB32))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NT_TIB32>())).ExceptionList as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NT_TIB32),
            "::",
            stringify!(ExceptionList)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NT_TIB32>())).StackBase as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_NT_TIB32),
            "::",
            stringify!(StackBase)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NT_TIB32>())).StackLimit as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NT_TIB32),
            "::",
            stringify!(StackLimit)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NT_TIB32>())).SubSystemTib as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_NT_TIB32),
            "::",
            stringify!(SubSystemTib)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NT_TIB32>())).ArbitraryUserPointer as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_NT_TIB32),
            "::",
            stringify!(ArbitraryUserPointer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NT_TIB32>())).Self_ as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_NT_TIB32),
            "::",
            stringify!(Self_)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__NT_TIB64__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_NT_TIB64__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_NT_TIB64__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_NT_TIB64__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(_NT_TIB64__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NT_TIB64__bindgen_ty_1>())).FiberData as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NT_TIB64__bindgen_ty_1),
            "::",
            stringify!(FiberData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NT_TIB64__bindgen_ty_1>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NT_TIB64__bindgen_ty_1),
            "::",
            stringify!(Version)
        )
    );
}
#[test]
fn bindgen_test_layout__NT_TIB64() {
    assert_eq!(
        ::std::mem::size_of::<_NT_TIB64>(),
        56usize,
        concat!("Size of: ", stringify!(_NT_TIB64))
    );
    assert_eq!(
        ::std::mem::align_of::<_NT_TIB64>(),
        8usize,
        concat!("Alignment of ", stringify!(_NT_TIB64))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NT_TIB64>())).ExceptionList as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NT_TIB64),
            "::",
            stringify!(ExceptionList)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NT_TIB64>())).StackBase as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NT_TIB64),
            "::",
            stringify!(StackBase)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NT_TIB64>())).StackLimit as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_NT_TIB64),
            "::",
            stringify!(StackLimit)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NT_TIB64>())).SubSystemTib as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_NT_TIB64),
            "::",
            stringify!(SubSystemTib)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NT_TIB64>())).ArbitraryUserPointer as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_NT_TIB64),
            "::",
            stringify!(ArbitraryUserPointer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NT_TIB64>())).Self_ as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_NT_TIB64),
            "::",
            stringify!(Self_)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__UMS_CREATE_THREAD_ATTRIBUTES() {
    assert_eq!(
        ::std::mem::size_of::<_UMS_CREATE_THREAD_ATTRIBUTES>(),
        24usize,
        concat!("Size of: ", stringify!(_UMS_CREATE_THREAD_ATTRIBUTES))
    );
    assert_eq!(
        ::std::mem::align_of::<_UMS_CREATE_THREAD_ATTRIBUTES>(),
        8usize,
        concat!("Alignment of ", stringify!(_UMS_CREATE_THREAD_ATTRIBUTES))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_UMS_CREATE_THREAD_ATTRIBUTES>())).UmsVersion as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_UMS_CREATE_THREAD_ATTRIBUTES),
            "::",
            stringify!(UmsVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_UMS_CREATE_THREAD_ATTRIBUTES>())).UmsContext as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_UMS_CREATE_THREAD_ATTRIBUTES),
            "::",
            stringify!(UmsContext)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_UMS_CREATE_THREAD_ATTRIBUTES>())).UmsCompletionList as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_UMS_CREATE_THREAD_ATTRIBUTES),
            "::",
            stringify!(UmsCompletionList)
        )
    );
}
pub type UMS_CREATE_THREAD_ATTRIBUTES = _UMS_CREATE_THREAD_ATTRIBUTES;
pub type PUMS_CREATE_THREAD_ATTRIBUTES = *mut _UMS_CREATE_THREAD_ATTRIBUTES;
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _WOW64_ARCHITECTURE_INFORMATION {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u16>,
}
#[test]
fn bindgen_test_layout__WOW64_ARCHITECTURE_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_WOW64_ARCHITECTURE_INFORMATION>(),
        4usize,
        concat!("Size of: ", stringify!(_WOW64_ARCHITECTURE_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_WOW64_ARCHITECTURE_INFORMATION>(),
        4usize,
        concat!("Alignment of ", stringify!(_WOW64_ARCHITECTURE_INFORMATION))
    );
}
impl _WOW64_ARCHITECTURE_INFORMATION {
    #[inline]
    pub fn Machine(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 16u8) as u32) }
    }
    #[inline]
    pub fn set_Machine(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 16u8, val as u64)
        }
    }
    #[inline]
    pub fn KernelMode(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_KernelMode(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(16usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn UserMode(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_UserMode(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(17usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn Native(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_Native(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(18usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn Process(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_Process(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(19usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn ReservedZero0(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(20usize, 12u8) as u32) }
    }
    #[inline]
    pub fn set_ReservedZero0(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(20usize, 12u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        Machine: DWORD,
        KernelMode: DWORD,
        UserMode: DWORD,
        Native: DWORD,
        Process: DWORD,
        ReservedZero0: DWORD,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u16> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u16> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 16u8, {
            let Machine: u32 = unsafe { ::std::mem::transmute(Machine) };
            Machine as u64
        });
        __bindgen_bitfield_unit.set(16usize, 1u8, {
            let KernelMode: u32 = unsafe { ::std::mem::transmute(KernelMode) };
            KernelMode as u64
        });
        __bindgen_bitfield_unit.set(17usize, 1u8, {
            let UserMode: u32 = unsafe { ::std::mem::transmute(UserMode) };
            UserMode as u64
        });
        __bindgen_bitfield_unit.set(18usize, 1u8, {
            let Native: u32 = unsafe { ::std::mem::transmute(Native) };
            Native as u64
        });
        __bindgen_bitfield_unit.set(19usize, 1u8, {
            let Process: u32 = unsafe { ::std::mem::transmute(Process) };
            Process as u64
        });
        __bindgen_bitfield_unit.set(20usize, 12u8, {
            let ReservedZero0: u32 = unsafe { ::std::mem::transmute(ReservedZero0) };
            ReservedZero0 as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type WOW64_ARCHITECTURE_INFORMATION = _WOW64_ARCHITECTURE_INFORMATION;
#[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,
}
#[test]
fn bindgen_test_layout__QUOTA_LIMITS() {
    assert_eq!(
        ::std::mem::size_of::<_QUOTA_LIMITS>(),
        48usize,
        concat!("Size of: ", stringify!(_QUOTA_LIMITS))
    );
    assert_eq!(
        ::std::mem::align_of::<_QUOTA_LIMITS>(),
        8usize,
        concat!("Alignment of ", stringify!(_QUOTA_LIMITS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_QUOTA_LIMITS>())).PagedPoolLimit as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUOTA_LIMITS),
            "::",
            stringify!(PagedPoolLimit)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_QUOTA_LIMITS>())).NonPagedPoolLimit as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUOTA_LIMITS),
            "::",
            stringify!(NonPagedPoolLimit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUOTA_LIMITS>())).MinimumWorkingSetSize as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUOTA_LIMITS),
            "::",
            stringify!(MinimumWorkingSetSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUOTA_LIMITS>())).MaximumWorkingSetSize as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUOTA_LIMITS),
            "::",
            stringify!(MaximumWorkingSetSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_QUOTA_LIMITS>())).PagefileLimit as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUOTA_LIMITS),
            "::",
            stringify!(PagefileLimit)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_QUOTA_LIMITS>())).TimeLimit as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUOTA_LIMITS),
            "::",
            stringify!(TimeLimit)
        )
    );
}
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>,
}
#[test]
fn bindgen_test_layout__RATE_QUOTA_LIMIT__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_RATE_QUOTA_LIMIT__bindgen_ty_1>(),
        4usize,
        concat!("Size of: ", stringify!(_RATE_QUOTA_LIMIT__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_RATE_QUOTA_LIMIT__bindgen_ty_1>(),
        4usize,
        concat!("Alignment of ", stringify!(_RATE_QUOTA_LIMIT__bindgen_ty_1))
    );
}
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
    }
}
#[test]
fn bindgen_test_layout__RATE_QUOTA_LIMIT() {
    assert_eq!(
        ::std::mem::size_of::<_RATE_QUOTA_LIMIT>(),
        4usize,
        concat!("Size of: ", stringify!(_RATE_QUOTA_LIMIT))
    );
    assert_eq!(
        ::std::mem::align_of::<_RATE_QUOTA_LIMIT>(),
        4usize,
        concat!("Alignment of ", stringify!(_RATE_QUOTA_LIMIT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RATE_QUOTA_LIMIT>())).RateData as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RATE_QUOTA_LIMIT),
            "::",
            stringify!(RateData)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__QUOTA_LIMITS_EX() {
    assert_eq!(
        ::std::mem::size_of::<_QUOTA_LIMITS_EX>(),
        88usize,
        concat!("Size of: ", stringify!(_QUOTA_LIMITS_EX))
    );
    assert_eq!(
        ::std::mem::align_of::<_QUOTA_LIMITS_EX>(),
        8usize,
        concat!("Alignment of ", stringify!(_QUOTA_LIMITS_EX))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_QUOTA_LIMITS_EX>())).PagedPoolLimit as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUOTA_LIMITS_EX),
            "::",
            stringify!(PagedPoolLimit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUOTA_LIMITS_EX>())).NonPagedPoolLimit as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUOTA_LIMITS_EX),
            "::",
            stringify!(NonPagedPoolLimit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUOTA_LIMITS_EX>())).MinimumWorkingSetSize as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUOTA_LIMITS_EX),
            "::",
            stringify!(MinimumWorkingSetSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUOTA_LIMITS_EX>())).MaximumWorkingSetSize as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUOTA_LIMITS_EX),
            "::",
            stringify!(MaximumWorkingSetSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_QUOTA_LIMITS_EX>())).PagefileLimit as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUOTA_LIMITS_EX),
            "::",
            stringify!(PagefileLimit)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_QUOTA_LIMITS_EX>())).TimeLimit as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUOTA_LIMITS_EX),
            "::",
            stringify!(TimeLimit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUOTA_LIMITS_EX>())).WorkingSetLimit as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUOTA_LIMITS_EX),
            "::",
            stringify!(WorkingSetLimit)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_QUOTA_LIMITS_EX>())).Reserved2 as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUOTA_LIMITS_EX),
            "::",
            stringify!(Reserved2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_QUOTA_LIMITS_EX>())).Reserved3 as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUOTA_LIMITS_EX),
            "::",
            stringify!(Reserved3)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_QUOTA_LIMITS_EX>())).Reserved4 as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUOTA_LIMITS_EX),
            "::",
            stringify!(Reserved4)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_QUOTA_LIMITS_EX>())).Flags as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUOTA_LIMITS_EX),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_QUOTA_LIMITS_EX>())).CpuRateLimit as *const _ as usize },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUOTA_LIMITS_EX),
            "::",
            stringify!(CpuRateLimit)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__IO_COUNTERS() {
    assert_eq!(
        ::std::mem::size_of::<_IO_COUNTERS>(),
        48usize,
        concat!("Size of: ", stringify!(_IO_COUNTERS))
    );
    assert_eq!(
        ::std::mem::align_of::<_IO_COUNTERS>(),
        8usize,
        concat!("Alignment of ", stringify!(_IO_COUNTERS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_COUNTERS>())).ReadOperationCount as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_COUNTERS),
            "::",
            stringify!(ReadOperationCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IO_COUNTERS>())).WriteOperationCount as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_COUNTERS),
            "::",
            stringify!(WriteOperationCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IO_COUNTERS>())).OtherOperationCount as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_COUNTERS),
            "::",
            stringify!(OtherOperationCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_COUNTERS>())).ReadTransferCount as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_COUNTERS),
            "::",
            stringify!(ReadTransferCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_COUNTERS>())).WriteTransferCount as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_COUNTERS),
            "::",
            stringify!(WriteTransferCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IO_COUNTERS>())).OtherTransferCount as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_COUNTERS),
            "::",
            stringify!(OtherTransferCount)
        )
    );
}
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 = ::std::os::raw::c_int;
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_ProcessSystemCallFilterPolicy: _PROCESS_MITIGATION_POLICY = 11;
pub const _PROCESS_MITIGATION_POLICY_ProcessPayloadRestrictionPolicy: _PROCESS_MITIGATION_POLICY =
    12;
pub const _PROCESS_MITIGATION_POLICY_ProcessChildProcessPolicy: _PROCESS_MITIGATION_POLICY = 13;
pub const _PROCESS_MITIGATION_POLICY_ProcessSideChannelIsolationPolicy: _PROCESS_MITIGATION_POLICY =
    14;
pub const _PROCESS_MITIGATION_POLICY_MaxProcessMitigationPolicy: _PROCESS_MITIGATION_POLICY = 15;
pub type _PROCESS_MITIGATION_POLICY = ::std::os::raw::c_int;
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>,
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_ASLR_POLICY__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_ASLR_POLICY__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_ASLR_POLICY__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_ASLR_POLICY__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_ASLR_POLICY__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
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
    }
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_ASLR_POLICY__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_ASLR_POLICY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_ASLR_POLICY__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_ASLR_POLICY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_ASLR_POLICY__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESS_MITIGATION_ASLR_POLICY__bindgen_ty_1>())).Flags
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_MITIGATION_ASLR_POLICY__bindgen_ty_1),
            "::",
            stringify!(Flags)
        )
    );
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_ASLR_POLICY() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_ASLR_POLICY>(),
        4usize,
        concat!("Size of: ", stringify!(_PROCESS_MITIGATION_ASLR_POLICY))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_ASLR_POLICY>(),
        4usize,
        concat!("Alignment of ", stringify!(_PROCESS_MITIGATION_ASLR_POLICY))
    );
}
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>,
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_DEP_POLICY__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_DEP_POLICY__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_DEP_POLICY__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_DEP_POLICY__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_DEP_POLICY__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
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
    }
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_DEP_POLICY__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_DEP_POLICY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_DEP_POLICY__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_DEP_POLICY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_DEP_POLICY__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESS_MITIGATION_DEP_POLICY__bindgen_ty_1>())).Flags
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_MITIGATION_DEP_POLICY__bindgen_ty_1),
            "::",
            stringify!(Flags)
        )
    );
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_DEP_POLICY() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_DEP_POLICY>(),
        8usize,
        concat!("Size of: ", stringify!(_PROCESS_MITIGATION_DEP_POLICY))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_DEP_POLICY>(),
        4usize,
        concat!("Alignment of ", stringify!(_PROCESS_MITIGATION_DEP_POLICY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESS_MITIGATION_DEP_POLICY>())).Permanent as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_MITIGATION_DEP_POLICY),
            "::",
            stringify!(Permanent)
        )
    );
}
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>,
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY__bindgen_ty_1__bindgen_ty_1()
{
    assert_eq!(
        ::std::mem::size_of::<
            _PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY__bindgen_ty_1__bindgen_ty_1,
        >(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<
            _PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY__bindgen_ty_1__bindgen_ty_1,
        >(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
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
    }
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY__bindgen_ty_1>()))
                .Flags as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY__bindgen_ty_1),
            "::",
            stringify!(Flags)
        )
    );
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY)
        )
    );
}
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>,
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY__bindgen_ty_1__bindgen_ty_1()
{
    assert_eq!(
        ::std::mem::size_of::<
            _PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY__bindgen_ty_1__bindgen_ty_1,
        >(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<
            _PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY__bindgen_ty_1__bindgen_ty_1,
        >(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
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 AuditDisallowWin32kSystemCalls(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_AuditDisallowWin32kSystemCalls(&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(
        DisallowWin32kSystemCalls: DWORD,
        AuditDisallowWin32kSystemCalls: 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, 1u8, {
            let AuditDisallowWin32kSystemCalls: u32 =
                unsafe { ::std::mem::transmute(AuditDisallowWin32kSystemCalls) };
            AuditDisallowWin32kSystemCalls as u64
        });
        __bindgen_bitfield_unit.set(2usize, 30u8, {
            let ReservedFlags: u32 = unsafe { ::std::mem::transmute(ReservedFlags) };
            ReservedFlags as u64
        });
        __bindgen_bitfield_unit
    }
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY__bindgen_ty_1>()))
                .Flags as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY__bindgen_ty_1),
            "::",
            stringify!(Flags)
        )
    );
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY)
        )
    );
}
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>,
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY__bindgen_ty_1__bindgen_ty_1(
) {
    assert_eq!(
        ::std::mem::size_of::<
            _PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY__bindgen_ty_1__bindgen_ty_1,
        >(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(
                _PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY__bindgen_ty_1__bindgen_ty_1
            )
        )
    );
    assert_eq!(
        ::std::mem::align_of::<
            _PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY__bindgen_ty_1__bindgen_ty_1,
        >(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(
                _PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY__bindgen_ty_1__bindgen_ty_1
            )
        )
    );
}
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
    }
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            & (* (:: std :: ptr :: null :: < _PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY__bindgen_ty_1 > ())) . Flags as * const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY__bindgen_ty_1),
            "::",
            stringify!(Flags)
        )
    );
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY)
        )
    );
}
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_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,
}
#[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; 4usize], u32>,
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_DYNAMIC_CODE_POLICY__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_DYNAMIC_CODE_POLICY__bindgen_ty_1__bindgen_ty_1>(
        ),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_DYNAMIC_CODE_POLICY__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_DYNAMIC_CODE_POLICY__bindgen_ty_1__bindgen_ty_1>(
        ),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_DYNAMIC_CODE_POLICY__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
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 AuditProhibitDynamicCode(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_AuditProhibitDynamicCode(&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(
        ProhibitDynamicCode: DWORD,
        AllowThreadOptOut: DWORD,
        AllowRemoteDowngrade: DWORD,
        AuditProhibitDynamicCode: 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 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(3usize, 1u8, {
            let AuditProhibitDynamicCode: u32 =
                unsafe { ::std::mem::transmute(AuditProhibitDynamicCode) };
            AuditProhibitDynamicCode as u64
        });
        __bindgen_bitfield_unit.set(4usize, 28u8, {
            let ReservedFlags: u32 = unsafe { ::std::mem::transmute(ReservedFlags) };
            ReservedFlags as u64
        });
        __bindgen_bitfield_unit
    }
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_DYNAMIC_CODE_POLICY__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_DYNAMIC_CODE_POLICY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_DYNAMIC_CODE_POLICY__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_DYNAMIC_CODE_POLICY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_DYNAMIC_CODE_POLICY__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESS_MITIGATION_DYNAMIC_CODE_POLICY__bindgen_ty_1>())).Flags
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_MITIGATION_DYNAMIC_CODE_POLICY__bindgen_ty_1),
            "::",
            stringify!(Flags)
        )
    );
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_DYNAMIC_CODE_POLICY() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_DYNAMIC_CODE_POLICY>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_DYNAMIC_CODE_POLICY)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_DYNAMIC_CODE_POLICY>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_DYNAMIC_CODE_POLICY)
        )
    );
}
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_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>,
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<
            _PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY__bindgen_ty_1__bindgen_ty_1,
        >(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<
            _PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY__bindgen_ty_1__bindgen_ty_1,
        >(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
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
    }
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY__bindgen_ty_1>()))
                .Flags as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY__bindgen_ty_1),
            "::",
            stringify!(Flags)
        )
    );
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY)
        )
    );
}
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>,
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<
            _PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY__bindgen_ty_1__bindgen_ty_1,
        >(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<
            _PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY__bindgen_ty_1__bindgen_ty_1,
        >(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
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 AuditMicrosoftSignedOnly(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_AuditMicrosoftSignedOnly(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(3usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn AuditStoreSignedOnly(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_AuditStoreSignedOnly(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(4usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn ReservedFlags(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 27u8) as u32) }
    }
    #[inline]
    pub fn set_ReservedFlags(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(5usize, 27u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        MicrosoftSignedOnly: DWORD,
        StoreSignedOnly: DWORD,
        MitigationOptIn: DWORD,
        AuditMicrosoftSignedOnly: DWORD,
        AuditStoreSignedOnly: 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, 1u8, {
            let AuditMicrosoftSignedOnly: u32 =
                unsafe { ::std::mem::transmute(AuditMicrosoftSignedOnly) };
            AuditMicrosoftSignedOnly as u64
        });
        __bindgen_bitfield_unit.set(4usize, 1u8, {
            let AuditStoreSignedOnly: u32 = unsafe { ::std::mem::transmute(AuditStoreSignedOnly) };
            AuditStoreSignedOnly as u64
        });
        __bindgen_bitfield_unit.set(5usize, 27u8, {
            let ReservedFlags: u32 = unsafe { ::std::mem::transmute(ReservedFlags) };
            ReservedFlags as u64
        });
        __bindgen_bitfield_unit
    }
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY__bindgen_ty_1>()))
                .Flags as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY__bindgen_ty_1),
            "::",
            stringify!(Flags)
        )
    );
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY)
        )
    );
}
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_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>,
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_FONT_DISABLE_POLICY__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_FONT_DISABLE_POLICY__bindgen_ty_1__bindgen_ty_1>(
        ),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_FONT_DISABLE_POLICY__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_FONT_DISABLE_POLICY__bindgen_ty_1__bindgen_ty_1>(
        ),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_FONT_DISABLE_POLICY__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
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
    }
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_FONT_DISABLE_POLICY__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_FONT_DISABLE_POLICY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_FONT_DISABLE_POLICY__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_FONT_DISABLE_POLICY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_FONT_DISABLE_POLICY__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESS_MITIGATION_FONT_DISABLE_POLICY__bindgen_ty_1>())).Flags
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_MITIGATION_FONT_DISABLE_POLICY__bindgen_ty_1),
            "::",
            stringify!(Flags)
        )
    );
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_FONT_DISABLE_POLICY() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_FONT_DISABLE_POLICY>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_FONT_DISABLE_POLICY)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_FONT_DISABLE_POLICY>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_FONT_DISABLE_POLICY)
        )
    );
}
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>,
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_IMAGE_LOAD_POLICY__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_IMAGE_LOAD_POLICY__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_IMAGE_LOAD_POLICY__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_IMAGE_LOAD_POLICY__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_IMAGE_LOAD_POLICY__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
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 AuditNoRemoteImages(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_AuditNoRemoteImages(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(3usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn AuditNoLowMandatoryLabelImages(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_AuditNoLowMandatoryLabelImages(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(4usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn ReservedFlags(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 27u8) as u32) }
    }
    #[inline]
    pub fn set_ReservedFlags(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(5usize, 27u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        NoRemoteImages: DWORD,
        NoLowMandatoryLabelImages: DWORD,
        PreferSystem32Images: DWORD,
        AuditNoRemoteImages: DWORD,
        AuditNoLowMandatoryLabelImages: 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, 1u8, {
            let AuditNoRemoteImages: u32 = unsafe { ::std::mem::transmute(AuditNoRemoteImages) };
            AuditNoRemoteImages as u64
        });
        __bindgen_bitfield_unit.set(4usize, 1u8, {
            let AuditNoLowMandatoryLabelImages: u32 =
                unsafe { ::std::mem::transmute(AuditNoLowMandatoryLabelImages) };
            AuditNoLowMandatoryLabelImages as u64
        });
        __bindgen_bitfield_unit.set(5usize, 27u8, {
            let ReservedFlags: u32 = unsafe { ::std::mem::transmute(ReservedFlags) };
            ReservedFlags as u64
        });
        __bindgen_bitfield_unit
    }
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_IMAGE_LOAD_POLICY__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_IMAGE_LOAD_POLICY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_IMAGE_LOAD_POLICY__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_IMAGE_LOAD_POLICY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_IMAGE_LOAD_POLICY__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESS_MITIGATION_IMAGE_LOAD_POLICY__bindgen_ty_1>())).Flags
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_MITIGATION_IMAGE_LOAD_POLICY__bindgen_ty_1),
            "::",
            stringify!(Flags)
        )
    );
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_IMAGE_LOAD_POLICY() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_IMAGE_LOAD_POLICY>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_IMAGE_LOAD_POLICY)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_IMAGE_LOAD_POLICY>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_IMAGE_LOAD_POLICY)
        )
    );
}
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 _PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY {
    pub __bindgen_anon_1: _PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY__bindgen_ty_1 {
    pub Flags: DWORD,
    pub __bindgen_anon_1: _PROCESS_MITIGATION_SYSTEM_CALL_FILTER_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_FILTER_POLICY__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<
            _PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY__bindgen_ty_1__bindgen_ty_1,
        >(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<
            _PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY__bindgen_ty_1__bindgen_ty_1,
        >(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
impl _PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn FilterId(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u32) }
    }
    #[inline]
    pub fn set_FilterId(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 4u8, 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(
        FilterId: DWORD,
        ReservedFlags: DWORD,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 4u8, {
            let FilterId: u32 = unsafe { ::std::mem::transmute(FilterId) };
            FilterId as u64
        });
        __bindgen_bitfield_unit.set(4usize, 28u8, {
            let ReservedFlags: u32 = unsafe { ::std::mem::transmute(ReservedFlags) };
            ReservedFlags as u64
        });
        __bindgen_bitfield_unit
    }
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY__bindgen_ty_1>()))
                .Flags as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY__bindgen_ty_1),
            "::",
            stringify!(Flags)
        )
    );
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY)
        )
    );
}
pub type PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY =
    _PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY;
pub type PPROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY =
    *mut _PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY {
    pub __bindgen_anon_1: _PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY__bindgen_ty_1 {
    pub Flags: DWORD,
    pub __bindgen_anon_1:
        _PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY__bindgen_ty_1__bindgen_ty_1()
{
    assert_eq!(
        ::std::mem::size_of::<
            _PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY__bindgen_ty_1__bindgen_ty_1,
        >(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<
            _PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY__bindgen_ty_1__bindgen_ty_1,
        >(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
impl _PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn EnableExportAddressFilter(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_EnableExportAddressFilter(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn AuditExportAddressFilter(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_AuditExportAddressFilter(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn EnableExportAddressFilterPlus(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_EnableExportAddressFilterPlus(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(2usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn AuditExportAddressFilterPlus(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_AuditExportAddressFilterPlus(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(3usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn EnableImportAddressFilter(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_EnableImportAddressFilter(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(4usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn AuditImportAddressFilter(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_AuditImportAddressFilter(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(5usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn EnableRopStackPivot(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_EnableRopStackPivot(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(6usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn AuditRopStackPivot(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_AuditRopStackPivot(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(7usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn EnableRopCallerCheck(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_EnableRopCallerCheck(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(8usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn AuditRopCallerCheck(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_AuditRopCallerCheck(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(9usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn EnableRopSimExec(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_EnableRopSimExec(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(10usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn AuditRopSimExec(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_AuditRopSimExec(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(11usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn ReservedFlags(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 20u8) as u32) }
    }
    #[inline]
    pub fn set_ReservedFlags(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(12usize, 20u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        EnableExportAddressFilter: DWORD,
        AuditExportAddressFilter: DWORD,
        EnableExportAddressFilterPlus: DWORD,
        AuditExportAddressFilterPlus: DWORD,
        EnableImportAddressFilter: DWORD,
        AuditImportAddressFilter: DWORD,
        EnableRopStackPivot: DWORD,
        AuditRopStackPivot: DWORD,
        EnableRopCallerCheck: DWORD,
        AuditRopCallerCheck: DWORD,
        EnableRopSimExec: DWORD,
        AuditRopSimExec: 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 EnableExportAddressFilter: u32 =
                unsafe { ::std::mem::transmute(EnableExportAddressFilter) };
            EnableExportAddressFilter as u64
        });
        __bindgen_bitfield_unit.set(1usize, 1u8, {
            let AuditExportAddressFilter: u32 =
                unsafe { ::std::mem::transmute(AuditExportAddressFilter) };
            AuditExportAddressFilter as u64
        });
        __bindgen_bitfield_unit.set(2usize, 1u8, {
            let EnableExportAddressFilterPlus: u32 =
                unsafe { ::std::mem::transmute(EnableExportAddressFilterPlus) };
            EnableExportAddressFilterPlus as u64
        });
        __bindgen_bitfield_unit.set(3usize, 1u8, {
            let AuditExportAddressFilterPlus: u32 =
                unsafe { ::std::mem::transmute(AuditExportAddressFilterPlus) };
            AuditExportAddressFilterPlus as u64
        });
        __bindgen_bitfield_unit.set(4usize, 1u8, {
            let EnableImportAddressFilter: u32 =
                unsafe { ::std::mem::transmute(EnableImportAddressFilter) };
            EnableImportAddressFilter as u64
        });
        __bindgen_bitfield_unit.set(5usize, 1u8, {
            let AuditImportAddressFilter: u32 =
                unsafe { ::std::mem::transmute(AuditImportAddressFilter) };
            AuditImportAddressFilter as u64
        });
        __bindgen_bitfield_unit.set(6usize, 1u8, {
            let EnableRopStackPivot: u32 = unsafe { ::std::mem::transmute(EnableRopStackPivot) };
            EnableRopStackPivot as u64
        });
        __bindgen_bitfield_unit.set(7usize, 1u8, {
            let AuditRopStackPivot: u32 = unsafe { ::std::mem::transmute(AuditRopStackPivot) };
            AuditRopStackPivot as u64
        });
        __bindgen_bitfield_unit.set(8usize, 1u8, {
            let EnableRopCallerCheck: u32 = unsafe { ::std::mem::transmute(EnableRopCallerCheck) };
            EnableRopCallerCheck as u64
        });
        __bindgen_bitfield_unit.set(9usize, 1u8, {
            let AuditRopCallerCheck: u32 = unsafe { ::std::mem::transmute(AuditRopCallerCheck) };
            AuditRopCallerCheck as u64
        });
        __bindgen_bitfield_unit.set(10usize, 1u8, {
            let EnableRopSimExec: u32 = unsafe { ::std::mem::transmute(EnableRopSimExec) };
            EnableRopSimExec as u64
        });
        __bindgen_bitfield_unit.set(11usize, 1u8, {
            let AuditRopSimExec: u32 = unsafe { ::std::mem::transmute(AuditRopSimExec) };
            AuditRopSimExec as u64
        });
        __bindgen_bitfield_unit.set(12usize, 20u8, {
            let ReservedFlags: u32 = unsafe { ::std::mem::transmute(ReservedFlags) };
            ReservedFlags as u64
        });
        __bindgen_bitfield_unit
    }
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY__bindgen_ty_1>()))
                .Flags as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY__bindgen_ty_1),
            "::",
            stringify!(Flags)
        )
    );
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY)
        )
    );
}
pub type PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY =
    _PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY;
pub type PPROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY =
    *mut _PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PROCESS_MITIGATION_CHILD_PROCESS_POLICY {
    pub __bindgen_anon_1: _PROCESS_MITIGATION_CHILD_PROCESS_POLICY__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROCESS_MITIGATION_CHILD_PROCESS_POLICY__bindgen_ty_1 {
    pub Flags: DWORD,
    pub __bindgen_anon_1: _PROCESS_MITIGATION_CHILD_PROCESS_POLICY__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _PROCESS_MITIGATION_CHILD_PROCESS_POLICY__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_CHILD_PROCESS_POLICY__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_CHILD_PROCESS_POLICY__bindgen_ty_1__bindgen_ty_1>(
        ),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_CHILD_PROCESS_POLICY__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_CHILD_PROCESS_POLICY__bindgen_ty_1__bindgen_ty_1>(
        ),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_CHILD_PROCESS_POLICY__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
impl _PROCESS_MITIGATION_CHILD_PROCESS_POLICY__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn NoChildProcessCreation(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_NoChildProcessCreation(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn AuditNoChildProcessCreation(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_AuditNoChildProcessCreation(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn AllowSecureProcessCreation(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_AllowSecureProcessCreation(&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(
        NoChildProcessCreation: DWORD,
        AuditNoChildProcessCreation: DWORD,
        AllowSecureProcessCreation: 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 NoChildProcessCreation: u32 =
                unsafe { ::std::mem::transmute(NoChildProcessCreation) };
            NoChildProcessCreation as u64
        });
        __bindgen_bitfield_unit.set(1usize, 1u8, {
            let AuditNoChildProcessCreation: u32 =
                unsafe { ::std::mem::transmute(AuditNoChildProcessCreation) };
            AuditNoChildProcessCreation as u64
        });
        __bindgen_bitfield_unit.set(2usize, 1u8, {
            let AllowSecureProcessCreation: u32 =
                unsafe { ::std::mem::transmute(AllowSecureProcessCreation) };
            AllowSecureProcessCreation as u64
        });
        __bindgen_bitfield_unit.set(3usize, 29u8, {
            let ReservedFlags: u32 = unsafe { ::std::mem::transmute(ReservedFlags) };
            ReservedFlags as u64
        });
        __bindgen_bitfield_unit
    }
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_CHILD_PROCESS_POLICY__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_CHILD_PROCESS_POLICY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_CHILD_PROCESS_POLICY__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_CHILD_PROCESS_POLICY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_CHILD_PROCESS_POLICY__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESS_MITIGATION_CHILD_PROCESS_POLICY__bindgen_ty_1>())).Flags
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_MITIGATION_CHILD_PROCESS_POLICY__bindgen_ty_1),
            "::",
            stringify!(Flags)
        )
    );
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_CHILD_PROCESS_POLICY() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_CHILD_PROCESS_POLICY>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_CHILD_PROCESS_POLICY)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_CHILD_PROCESS_POLICY>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_CHILD_PROCESS_POLICY)
        )
    );
}
pub type PROCESS_MITIGATION_CHILD_PROCESS_POLICY = _PROCESS_MITIGATION_CHILD_PROCESS_POLICY;
pub type PPROCESS_MITIGATION_CHILD_PROCESS_POLICY = *mut _PROCESS_MITIGATION_CHILD_PROCESS_POLICY;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY {
    pub __bindgen_anon_1: _PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY__bindgen_ty_1 {
    pub Flags: DWORD,
    pub __bindgen_anon_1:
        _PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY__bindgen_ty_1__bindgen_ty_1(
) {
    assert_eq!(
        ::std::mem::size_of::<
            _PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY__bindgen_ty_1__bindgen_ty_1,
        >(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(
                _PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY__bindgen_ty_1__bindgen_ty_1
            )
        )
    );
    assert_eq!(
        ::std::mem::align_of::<
            _PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY__bindgen_ty_1__bindgen_ty_1,
        >(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(
                _PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY__bindgen_ty_1__bindgen_ty_1
            )
        )
    );
}
impl _PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn SmtBranchTargetIsolation(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_SmtBranchTargetIsolation(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn IsolateSecurityDomain(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_IsolateSecurityDomain(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn DisablePageCombine(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_DisablePageCombine(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(2usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn SpeculativeStoreBypassDisable(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_SpeculativeStoreBypassDisable(&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(
        SmtBranchTargetIsolation: DWORD,
        IsolateSecurityDomain: DWORD,
        DisablePageCombine: DWORD,
        SpeculativeStoreBypassDisable: 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 SmtBranchTargetIsolation: u32 =
                unsafe { ::std::mem::transmute(SmtBranchTargetIsolation) };
            SmtBranchTargetIsolation as u64
        });
        __bindgen_bitfield_unit.set(1usize, 1u8, {
            let IsolateSecurityDomain: u32 =
                unsafe { ::std::mem::transmute(IsolateSecurityDomain) };
            IsolateSecurityDomain as u64
        });
        __bindgen_bitfield_unit.set(2usize, 1u8, {
            let DisablePageCombine: u32 = unsafe { ::std::mem::transmute(DisablePageCombine) };
            DisablePageCombine as u64
        });
        __bindgen_bitfield_unit.set(3usize, 1u8, {
            let SpeculativeStoreBypassDisable: u32 =
                unsafe { ::std::mem::transmute(SpeculativeStoreBypassDisable) };
            SpeculativeStoreBypassDisable as u64
        });
        __bindgen_bitfield_unit.set(4usize, 28u8, {
            let ReservedFlags: u32 = unsafe { ::std::mem::transmute(ReservedFlags) };
            ReservedFlags as u64
        });
        __bindgen_bitfield_unit
    }
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY__bindgen_ty_1>(
            )))
            .Flags as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY__bindgen_ty_1),
            "::",
            stringify!(Flags)
        )
    );
}
#[test]
fn bindgen_test_layout__PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY)
        )
    );
}
pub type PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY =
    _PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY;
pub type PPROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY =
    *mut _PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_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,
}
#[test]
fn bindgen_test_layout__JOBOBJECT_BASIC_ACCOUNTING_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_JOBOBJECT_BASIC_ACCOUNTING_INFORMATION>(),
        48usize,
        concat!(
            "Size of: ",
            stringify!(_JOBOBJECT_BASIC_ACCOUNTING_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_JOBOBJECT_BASIC_ACCOUNTING_INFORMATION>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_JOBOBJECT_BASIC_ACCOUNTING_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_BASIC_ACCOUNTING_INFORMATION>())).TotalUserTime
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_BASIC_ACCOUNTING_INFORMATION),
            "::",
            stringify!(TotalUserTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_BASIC_ACCOUNTING_INFORMATION>())).TotalKernelTime
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_BASIC_ACCOUNTING_INFORMATION),
            "::",
            stringify!(TotalKernelTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_BASIC_ACCOUNTING_INFORMATION>()))
                .ThisPeriodTotalUserTime as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_BASIC_ACCOUNTING_INFORMATION),
            "::",
            stringify!(ThisPeriodTotalUserTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_BASIC_ACCOUNTING_INFORMATION>()))
                .ThisPeriodTotalKernelTime as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_BASIC_ACCOUNTING_INFORMATION),
            "::",
            stringify!(ThisPeriodTotalKernelTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_BASIC_ACCOUNTING_INFORMATION>())).TotalPageFaultCount
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_BASIC_ACCOUNTING_INFORMATION),
            "::",
            stringify!(TotalPageFaultCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_BASIC_ACCOUNTING_INFORMATION>())).TotalProcesses
                as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_BASIC_ACCOUNTING_INFORMATION),
            "::",
            stringify!(TotalProcesses)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_BASIC_ACCOUNTING_INFORMATION>())).ActiveProcesses
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_BASIC_ACCOUNTING_INFORMATION),
            "::",
            stringify!(ActiveProcesses)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_BASIC_ACCOUNTING_INFORMATION>()))
                .TotalTerminatedProcesses as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_BASIC_ACCOUNTING_INFORMATION),
            "::",
            stringify!(TotalTerminatedProcesses)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__JOBOBJECT_BASIC_LIMIT_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_JOBOBJECT_BASIC_LIMIT_INFORMATION>(),
        64usize,
        concat!("Size of: ", stringify!(_JOBOBJECT_BASIC_LIMIT_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_JOBOBJECT_BASIC_LIMIT_INFORMATION>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_JOBOBJECT_BASIC_LIMIT_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_BASIC_LIMIT_INFORMATION>())).PerProcessUserTimeLimit
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_BASIC_LIMIT_INFORMATION),
            "::",
            stringify!(PerProcessUserTimeLimit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_BASIC_LIMIT_INFORMATION>())).PerJobUserTimeLimit
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_BASIC_LIMIT_INFORMATION),
            "::",
            stringify!(PerJobUserTimeLimit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_BASIC_LIMIT_INFORMATION>())).LimitFlags as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_BASIC_LIMIT_INFORMATION),
            "::",
            stringify!(LimitFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_BASIC_LIMIT_INFORMATION>())).MinimumWorkingSetSize
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_BASIC_LIMIT_INFORMATION),
            "::",
            stringify!(MinimumWorkingSetSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_BASIC_LIMIT_INFORMATION>())).MaximumWorkingSetSize
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_BASIC_LIMIT_INFORMATION),
            "::",
            stringify!(MaximumWorkingSetSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_BASIC_LIMIT_INFORMATION>())).ActiveProcessLimit
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_BASIC_LIMIT_INFORMATION),
            "::",
            stringify!(ActiveProcessLimit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_BASIC_LIMIT_INFORMATION>())).Affinity as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_BASIC_LIMIT_INFORMATION),
            "::",
            stringify!(Affinity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_BASIC_LIMIT_INFORMATION>())).PriorityClass as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_BASIC_LIMIT_INFORMATION),
            "::",
            stringify!(PriorityClass)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_BASIC_LIMIT_INFORMATION>())).SchedulingClass
                as *const _ as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_BASIC_LIMIT_INFORMATION),
            "::",
            stringify!(SchedulingClass)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__JOBOBJECT_EXTENDED_LIMIT_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_JOBOBJECT_EXTENDED_LIMIT_INFORMATION>(),
        144usize,
        concat!(
            "Size of: ",
            stringify!(_JOBOBJECT_EXTENDED_LIMIT_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_JOBOBJECT_EXTENDED_LIMIT_INFORMATION>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_JOBOBJECT_EXTENDED_LIMIT_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_EXTENDED_LIMIT_INFORMATION>())).BasicLimitInformation
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_EXTENDED_LIMIT_INFORMATION),
            "::",
            stringify!(BasicLimitInformation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_EXTENDED_LIMIT_INFORMATION>())).IoInfo as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_EXTENDED_LIMIT_INFORMATION),
            "::",
            stringify!(IoInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_EXTENDED_LIMIT_INFORMATION>())).ProcessMemoryLimit
                as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_EXTENDED_LIMIT_INFORMATION),
            "::",
            stringify!(ProcessMemoryLimit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_EXTENDED_LIMIT_INFORMATION>())).JobMemoryLimit
                as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_EXTENDED_LIMIT_INFORMATION),
            "::",
            stringify!(JobMemoryLimit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_EXTENDED_LIMIT_INFORMATION>())).PeakProcessMemoryUsed
                as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_EXTENDED_LIMIT_INFORMATION),
            "::",
            stringify!(PeakProcessMemoryUsed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_EXTENDED_LIMIT_INFORMATION>())).PeakJobMemoryUsed
                as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_EXTENDED_LIMIT_INFORMATION),
            "::",
            stringify!(PeakJobMemoryUsed)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__JOBOBJECT_BASIC_PROCESS_ID_LIST() {
    assert_eq!(
        ::std::mem::size_of::<_JOBOBJECT_BASIC_PROCESS_ID_LIST>(),
        16usize,
        concat!("Size of: ", stringify!(_JOBOBJECT_BASIC_PROCESS_ID_LIST))
    );
    assert_eq!(
        ::std::mem::align_of::<_JOBOBJECT_BASIC_PROCESS_ID_LIST>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_JOBOBJECT_BASIC_PROCESS_ID_LIST)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_BASIC_PROCESS_ID_LIST>())).NumberOfAssignedProcesses
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_BASIC_PROCESS_ID_LIST),
            "::",
            stringify!(NumberOfAssignedProcesses)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_BASIC_PROCESS_ID_LIST>())).NumberOfProcessIdsInList
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_BASIC_PROCESS_ID_LIST),
            "::",
            stringify!(NumberOfProcessIdsInList)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_BASIC_PROCESS_ID_LIST>())).ProcessIdList as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_BASIC_PROCESS_ID_LIST),
            "::",
            stringify!(ProcessIdList)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__JOBOBJECT_BASIC_UI_RESTRICTIONS() {
    assert_eq!(
        ::std::mem::size_of::<_JOBOBJECT_BASIC_UI_RESTRICTIONS>(),
        4usize,
        concat!("Size of: ", stringify!(_JOBOBJECT_BASIC_UI_RESTRICTIONS))
    );
    assert_eq!(
        ::std::mem::align_of::<_JOBOBJECT_BASIC_UI_RESTRICTIONS>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_JOBOBJECT_BASIC_UI_RESTRICTIONS)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_BASIC_UI_RESTRICTIONS>())).UIRestrictionsClass
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_BASIC_UI_RESTRICTIONS),
            "::",
            stringify!(UIRestrictionsClass)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__JOBOBJECT_SECURITY_LIMIT_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_JOBOBJECT_SECURITY_LIMIT_INFORMATION>(),
        40usize,
        concat!(
            "Size of: ",
            stringify!(_JOBOBJECT_SECURITY_LIMIT_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_JOBOBJECT_SECURITY_LIMIT_INFORMATION>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_JOBOBJECT_SECURITY_LIMIT_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_SECURITY_LIMIT_INFORMATION>())).SecurityLimitFlags
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_SECURITY_LIMIT_INFORMATION),
            "::",
            stringify!(SecurityLimitFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_SECURITY_LIMIT_INFORMATION>())).JobToken as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_SECURITY_LIMIT_INFORMATION),
            "::",
            stringify!(JobToken)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_SECURITY_LIMIT_INFORMATION>())).SidsToDisable
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_SECURITY_LIMIT_INFORMATION),
            "::",
            stringify!(SidsToDisable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_SECURITY_LIMIT_INFORMATION>())).PrivilegesToDelete
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_SECURITY_LIMIT_INFORMATION),
            "::",
            stringify!(PrivilegesToDelete)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_SECURITY_LIMIT_INFORMATION>())).RestrictedSids
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_SECURITY_LIMIT_INFORMATION),
            "::",
            stringify!(RestrictedSids)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__JOBOBJECT_END_OF_JOB_TIME_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_JOBOBJECT_END_OF_JOB_TIME_INFORMATION>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_JOBOBJECT_END_OF_JOB_TIME_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_JOBOBJECT_END_OF_JOB_TIME_INFORMATION>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_JOBOBJECT_END_OF_JOB_TIME_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_END_OF_JOB_TIME_INFORMATION>())).EndOfJobTimeAction
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_END_OF_JOB_TIME_INFORMATION),
            "::",
            stringify!(EndOfJobTimeAction)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__JOBOBJECT_ASSOCIATE_COMPLETION_PORT() {
    assert_eq!(
        ::std::mem::size_of::<_JOBOBJECT_ASSOCIATE_COMPLETION_PORT>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_JOBOBJECT_ASSOCIATE_COMPLETION_PORT)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_JOBOBJECT_ASSOCIATE_COMPLETION_PORT>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_JOBOBJECT_ASSOCIATE_COMPLETION_PORT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_ASSOCIATE_COMPLETION_PORT>())).CompletionKey
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_ASSOCIATE_COMPLETION_PORT),
            "::",
            stringify!(CompletionKey)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_ASSOCIATE_COMPLETION_PORT>())).CompletionPort
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_ASSOCIATE_COMPLETION_PORT),
            "::",
            stringify!(CompletionPort)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION>(),
        96usize,
        concat!(
            "Size of: ",
            stringify!(_JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION>())).BasicInfo
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION),
            "::",
            stringify!(BasicInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION>())).IoInfo
                as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION),
            "::",
            stringify!(IoInfo)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__JOBOBJECT_JOBSET_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_JOBOBJECT_JOBSET_INFORMATION>(),
        4usize,
        concat!("Size of: ", stringify!(_JOBOBJECT_JOBSET_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_JOBOBJECT_JOBSET_INFORMATION>(),
        4usize,
        concat!("Alignment of ", stringify!(_JOBOBJECT_JOBSET_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_JOBSET_INFORMATION>())).MemberLevel as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_JOBSET_INFORMATION),
            "::",
            stringify!(MemberLevel)
        )
    );
}
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 = ::std::os::raw::c_int;
pub use self::_JOBOBJECT_RATE_CONTROL_TOLERANCE as JOBOBJECT_RATE_CONTROL_TOLERANCE;
pub type PJOBOBJECT_RATE_CONTROL_TOLERANCE = *mut _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 = ::std::os::raw::c_int;
pub use self::_JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL as JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL;
pub type PJOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL =
    *mut _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,
}
#[test]
fn bindgen_test_layout__JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION>(),
        48usize,
        concat!(
            "Size of: ",
            stringify!(_JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION>())).IoReadBytesLimit
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION),
            "::",
            stringify!(IoReadBytesLimit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION>())).IoWriteBytesLimit
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION),
            "::",
            stringify!(IoWriteBytesLimit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION>()))
                .PerJobUserTimeLimit as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION),
            "::",
            stringify!(PerJobUserTimeLimit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION>())).JobMemoryLimit
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION),
            "::",
            stringify!(JobMemoryLimit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION>()))
                .RateControlTolerance as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION),
            "::",
            stringify!(RateControlTolerance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION>()))
                .RateControlToleranceInterval as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION),
            "::",
            stringify!(RateControlToleranceInterval)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION>())).LimitFlags
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION),
            "::",
            stringify!(LimitFlags)
        )
    );
}
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_NOTIFICATION_LIMIT_INFORMATION_2 {
    pub IoReadBytesLimit: DWORD64,
    pub IoWriteBytesLimit: DWORD64,
    pub PerJobUserTimeLimit: LARGE_INTEGER,
    pub __bindgen_anon_1: JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_1,
    pub __bindgen_anon_2: JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_2,
    pub __bindgen_anon_3: JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_3,
    pub LimitFlags: DWORD,
    pub IoRateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE,
    pub JobLowMemoryLimit: DWORD64,
    pub IoRateControlToleranceInterval: JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL,
    pub NetRateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE,
    pub NetRateControlToleranceInterval: JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_1 {
    pub JobHighMemoryLimit: DWORD64,
    pub JobMemoryLimit: DWORD64,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout_JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_1>()))
                .JobHighMemoryLimit as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_1),
            "::",
            stringify!(JobHighMemoryLimit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_1>()))
                .JobMemoryLimit as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_1),
            "::",
            stringify!(JobMemoryLimit)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_2 {
    pub RateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE,
    pub CpuRateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE,
    _bindgen_union_align: u32,
}
#[test]
fn bindgen_test_layout_JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_2>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_2>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_2>()))
                .RateControlTolerance as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_2),
            "::",
            stringify!(RateControlTolerance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_2>()))
                .CpuRateControlTolerance as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_2),
            "::",
            stringify!(CpuRateControlTolerance)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_3 {
    pub RateControlToleranceInterval: JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL,
    pub CpuRateControlToleranceInterval: JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL,
    _bindgen_union_align: u32,
}
#[test]
fn bindgen_test_layout_JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_3() {
    assert_eq!(
        ::std::mem::size_of::<JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_3>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_3)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_3>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_3)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_3>()))
                .RateControlToleranceInterval as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_3),
            "::",
            stringify!(RateControlToleranceInterval)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_3>()))
                .CpuRateControlToleranceInterval as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2__bindgen_ty_3),
            "::",
            stringify!(CpuRateControlToleranceInterval)
        )
    );
}
#[test]
fn bindgen_test_layout_JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2() {
    assert_eq!(
        ::std::mem::size_of::<JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2>(),
        72usize,
        concat!(
            "Size of: ",
            stringify!(JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2>())).IoReadBytesLimit
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2),
            "::",
            stringify!(IoReadBytesLimit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2>())).IoWriteBytesLimit
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2),
            "::",
            stringify!(IoWriteBytesLimit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2>()))
                .PerJobUserTimeLimit as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2),
            "::",
            stringify!(PerJobUserTimeLimit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2>())).LimitFlags
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2),
            "::",
            stringify!(LimitFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2>()))
                .IoRateControlTolerance as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2),
            "::",
            stringify!(IoRateControlTolerance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2>())).JobLowMemoryLimit
                as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2),
            "::",
            stringify!(JobLowMemoryLimit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2>()))
                .IoRateControlToleranceInterval as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2),
            "::",
            stringify!(IoRateControlToleranceInterval)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2>()))
                .NetRateControlTolerance as *const _ as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2),
            "::",
            stringify!(NetRateControlTolerance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2>()))
                .NetRateControlToleranceInterval as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2),
            "::",
            stringify!(NetRateControlToleranceInterval)
        )
    );
}
#[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,
}
#[test]
fn bindgen_test_layout__JOBOBJECT_LIMIT_VIOLATION_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_JOBOBJECT_LIMIT_VIOLATION_INFORMATION>(),
        80usize,
        concat!(
            "Size of: ",
            stringify!(_JOBOBJECT_LIMIT_VIOLATION_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_JOBOBJECT_LIMIT_VIOLATION_INFORMATION>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_JOBOBJECT_LIMIT_VIOLATION_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_LIMIT_VIOLATION_INFORMATION>())).LimitFlags
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_LIMIT_VIOLATION_INFORMATION),
            "::",
            stringify!(LimitFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_LIMIT_VIOLATION_INFORMATION>())).ViolationLimitFlags
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_LIMIT_VIOLATION_INFORMATION),
            "::",
            stringify!(ViolationLimitFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_LIMIT_VIOLATION_INFORMATION>())).IoReadBytes
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_LIMIT_VIOLATION_INFORMATION),
            "::",
            stringify!(IoReadBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_LIMIT_VIOLATION_INFORMATION>())).IoReadBytesLimit
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_LIMIT_VIOLATION_INFORMATION),
            "::",
            stringify!(IoReadBytesLimit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_LIMIT_VIOLATION_INFORMATION>())).IoWriteBytes
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_LIMIT_VIOLATION_INFORMATION),
            "::",
            stringify!(IoWriteBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_LIMIT_VIOLATION_INFORMATION>())).IoWriteBytesLimit
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_LIMIT_VIOLATION_INFORMATION),
            "::",
            stringify!(IoWriteBytesLimit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_LIMIT_VIOLATION_INFORMATION>())).PerJobUserTime
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_LIMIT_VIOLATION_INFORMATION),
            "::",
            stringify!(PerJobUserTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_LIMIT_VIOLATION_INFORMATION>())).PerJobUserTimeLimit
                as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_LIMIT_VIOLATION_INFORMATION),
            "::",
            stringify!(PerJobUserTimeLimit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_LIMIT_VIOLATION_INFORMATION>())).JobMemory as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_LIMIT_VIOLATION_INFORMATION),
            "::",
            stringify!(JobMemory)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_LIMIT_VIOLATION_INFORMATION>())).JobMemoryLimit
                as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_LIMIT_VIOLATION_INFORMATION),
            "::",
            stringify!(JobMemoryLimit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_LIMIT_VIOLATION_INFORMATION>())).RateControlTolerance
                as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_LIMIT_VIOLATION_INFORMATION),
            "::",
            stringify!(RateControlTolerance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_LIMIT_VIOLATION_INFORMATION>()))
                .RateControlToleranceLimit as *const _ as usize
        },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_LIMIT_VIOLATION_INFORMATION),
            "::",
            stringify!(RateControlToleranceLimit)
        )
    );
}
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_LIMIT_VIOLATION_INFORMATION_2 {
    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 __bindgen_anon_1: JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_1,
    pub __bindgen_anon_2: JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_2,
    pub __bindgen_anon_3: JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_3,
    pub JobLowMemoryLimit: DWORD64,
    pub IoRateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE,
    pub IoRateControlToleranceLimit: JOBOBJECT_RATE_CONTROL_TOLERANCE,
    pub NetRateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE,
    pub NetRateControlToleranceLimit: JOBOBJECT_RATE_CONTROL_TOLERANCE,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_1 {
    pub JobHighMemoryLimit: DWORD64,
    pub JobMemoryLimit: DWORD64,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout_JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_1>()))
                .JobHighMemoryLimit as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_1),
            "::",
            stringify!(JobHighMemoryLimit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_1>()))
                .JobMemoryLimit as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_1),
            "::",
            stringify!(JobMemoryLimit)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_2 {
    pub RateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE,
    pub CpuRateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE,
    _bindgen_union_align: u32,
}
#[test]
fn bindgen_test_layout_JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_2>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_2>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_2>()))
                .RateControlTolerance as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_2),
            "::",
            stringify!(RateControlTolerance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_2>()))
                .CpuRateControlTolerance as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_2),
            "::",
            stringify!(CpuRateControlTolerance)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_3 {
    pub RateControlToleranceLimit: JOBOBJECT_RATE_CONTROL_TOLERANCE,
    pub CpuRateControlToleranceLimit: JOBOBJECT_RATE_CONTROL_TOLERANCE,
    _bindgen_union_align: u32,
}
#[test]
fn bindgen_test_layout_JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_3() {
    assert_eq!(
        ::std::mem::size_of::<JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_3>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_3)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_3>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_3)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_3>()))
                .RateControlToleranceLimit as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_3),
            "::",
            stringify!(RateControlToleranceLimit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_3>()))
                .CpuRateControlToleranceLimit as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2__bindgen_ty_3),
            "::",
            stringify!(CpuRateControlToleranceLimit)
        )
    );
}
#[test]
fn bindgen_test_layout_JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2() {
    assert_eq!(
        ::std::mem::size_of::<JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2>(),
        104usize,
        concat!(
            "Size of: ",
            stringify!(JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2>())).LimitFlags
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2),
            "::",
            stringify!(LimitFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2>())).ViolationLimitFlags
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2),
            "::",
            stringify!(ViolationLimitFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2>())).IoReadBytes
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2),
            "::",
            stringify!(IoReadBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2>())).IoReadBytesLimit
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2),
            "::",
            stringify!(IoReadBytesLimit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2>())).IoWriteBytes
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2),
            "::",
            stringify!(IoWriteBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2>())).IoWriteBytesLimit
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2),
            "::",
            stringify!(IoWriteBytesLimit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2>())).PerJobUserTime
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2),
            "::",
            stringify!(PerJobUserTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2>())).PerJobUserTimeLimit
                as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2),
            "::",
            stringify!(PerJobUserTimeLimit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2>())).JobMemory
                as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2),
            "::",
            stringify!(JobMemory)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2>())).JobLowMemoryLimit
                as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2),
            "::",
            stringify!(JobLowMemoryLimit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2>()))
                .IoRateControlTolerance as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2),
            "::",
            stringify!(IoRateControlTolerance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2>()))
                .IoRateControlToleranceLimit as *const _ as usize
        },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2),
            "::",
            stringify!(IoRateControlToleranceLimit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2>()))
                .NetRateControlTolerance as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2),
            "::",
            stringify!(NetRateControlTolerance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2>()))
                .NetRateControlToleranceLimit as *const _ as usize
        },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2),
            "::",
            stringify!(NetRateControlToleranceLimit)
        )
    );
}
#[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,
    pub __bindgen_anon_1: _JOBOBJECT_CPU_RATE_CONTROL_INFORMATION__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _JOBOBJECT_CPU_RATE_CONTROL_INFORMATION__bindgen_ty_1__bindgen_ty_1 {
    pub MinRate: WORD,
    pub MaxRate: WORD,
}
#[test]
fn bindgen_test_layout__JOBOBJECT_CPU_RATE_CONTROL_INFORMATION__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_JOBOBJECT_CPU_RATE_CONTROL_INFORMATION__bindgen_ty_1__bindgen_ty_1>(
        ),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_JOBOBJECT_CPU_RATE_CONTROL_INFORMATION__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_JOBOBJECT_CPU_RATE_CONTROL_INFORMATION__bindgen_ty_1__bindgen_ty_1>(
        ),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(_JOBOBJECT_CPU_RATE_CONTROL_INFORMATION__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<
                _JOBOBJECT_CPU_RATE_CONTROL_INFORMATION__bindgen_ty_1__bindgen_ty_1,
            >()))
            .MinRate as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_CPU_RATE_CONTROL_INFORMATION__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(MinRate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<
                _JOBOBJECT_CPU_RATE_CONTROL_INFORMATION__bindgen_ty_1__bindgen_ty_1,
            >()))
            .MaxRate as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_CPU_RATE_CONTROL_INFORMATION__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(MaxRate)
        )
    );
}
#[test]
fn bindgen_test_layout__JOBOBJECT_CPU_RATE_CONTROL_INFORMATION__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_JOBOBJECT_CPU_RATE_CONTROL_INFORMATION__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_JOBOBJECT_CPU_RATE_CONTROL_INFORMATION__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_JOBOBJECT_CPU_RATE_CONTROL_INFORMATION__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_JOBOBJECT_CPU_RATE_CONTROL_INFORMATION__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_CPU_RATE_CONTROL_INFORMATION__bindgen_ty_1>()))
                .CpuRate as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_CPU_RATE_CONTROL_INFORMATION__bindgen_ty_1),
            "::",
            stringify!(CpuRate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_CPU_RATE_CONTROL_INFORMATION__bindgen_ty_1>())).Weight
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_CPU_RATE_CONTROL_INFORMATION__bindgen_ty_1),
            "::",
            stringify!(Weight)
        )
    );
}
#[test]
fn bindgen_test_layout__JOBOBJECT_CPU_RATE_CONTROL_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_JOBOBJECT_CPU_RATE_CONTROL_INFORMATION>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_JOBOBJECT_CPU_RATE_CONTROL_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_JOBOBJECT_CPU_RATE_CONTROL_INFORMATION>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_JOBOBJECT_CPU_RATE_CONTROL_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_CPU_RATE_CONTROL_INFORMATION>())).ControlFlags
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_CPU_RATE_CONTROL_INFORMATION),
            "::",
            stringify!(ControlFlags)
        )
    );
}
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 JOB_OBJECT_NET_RATE_CONTROL_FLAGS_JOB_OBJECT_NET_RATE_CONTROL_ENABLE:
    JOB_OBJECT_NET_RATE_CONTROL_FLAGS = 1;
pub const JOB_OBJECT_NET_RATE_CONTROL_FLAGS_JOB_OBJECT_NET_RATE_CONTROL_MAX_BANDWIDTH:
    JOB_OBJECT_NET_RATE_CONTROL_FLAGS = 2;
pub const JOB_OBJECT_NET_RATE_CONTROL_FLAGS_JOB_OBJECT_NET_RATE_CONTROL_DSCP_TAG:
    JOB_OBJECT_NET_RATE_CONTROL_FLAGS = 4;
pub const JOB_OBJECT_NET_RATE_CONTROL_FLAGS_JOB_OBJECT_NET_RATE_CONTROL_VALID_FLAGS:
    JOB_OBJECT_NET_RATE_CONTROL_FLAGS = 7;
pub type JOB_OBJECT_NET_RATE_CONTROL_FLAGS = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct JOBOBJECT_NET_RATE_CONTROL_INFORMATION {
    pub MaxBandwidth: DWORD64,
    pub ControlFlags: JOB_OBJECT_NET_RATE_CONTROL_FLAGS,
    pub DscpTag: BYTE,
}
#[test]
fn bindgen_test_layout_JOBOBJECT_NET_RATE_CONTROL_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<JOBOBJECT_NET_RATE_CONTROL_INFORMATION>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(JOBOBJECT_NET_RATE_CONTROL_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<JOBOBJECT_NET_RATE_CONTROL_INFORMATION>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(JOBOBJECT_NET_RATE_CONTROL_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_NET_RATE_CONTROL_INFORMATION>())).MaxBandwidth
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_NET_RATE_CONTROL_INFORMATION),
            "::",
            stringify!(MaxBandwidth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_NET_RATE_CONTROL_INFORMATION>())).ControlFlags
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_NET_RATE_CONTROL_INFORMATION),
            "::",
            stringify!(ControlFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_NET_RATE_CONTROL_INFORMATION>())).DscpTag as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_NET_RATE_CONTROL_INFORMATION),
            "::",
            stringify!(DscpTag)
        )
    );
}
pub const JOB_OBJECT_IO_RATE_CONTROL_FLAGS_JOB_OBJECT_IO_RATE_CONTROL_ENABLE:
    JOB_OBJECT_IO_RATE_CONTROL_FLAGS = 1;
pub const JOB_OBJECT_IO_RATE_CONTROL_FLAGS_JOB_OBJECT_IO_RATE_CONTROL_STANDALONE_VOLUME:
    JOB_OBJECT_IO_RATE_CONTROL_FLAGS = 2;
pub const JOB_OBJECT_IO_RATE_CONTROL_FLAGS_JOB_OBJECT_IO_RATE_CONTROL_FORCE_UNIT_ACCESS_ALL:
    JOB_OBJECT_IO_RATE_CONTROL_FLAGS = 4;
pub const JOB_OBJECT_IO_RATE_CONTROL_FLAGS_JOB_OBJECT_IO_RATE_CONTROL_FORCE_UNIT_ACCESS_ON_SOFT_CAP : JOB_OBJECT_IO_RATE_CONTROL_FLAGS = 8 ;
pub const JOB_OBJECT_IO_RATE_CONTROL_FLAGS_JOB_OBJECT_IO_RATE_CONTROL_VALID_FLAGS:
    JOB_OBJECT_IO_RATE_CONTROL_FLAGS = 15;
pub type JOB_OBJECT_IO_RATE_CONTROL_FLAGS = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE {
    pub MaxIops: LONG64,
    pub MaxBandwidth: LONG64,
    pub ReservationIops: LONG64,
    pub VolumeName: PWSTR,
    pub BaseIoSize: DWORD,
    pub ControlFlags: JOB_OBJECT_IO_RATE_CONTROL_FLAGS,
    pub VolumeNameLength: WORD,
}
#[test]
fn bindgen_test_layout_JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE() {
    assert_eq!(
        ::std::mem::size_of::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE>(),
        48usize,
        concat!(
            "Size of: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE>())).MaxIops
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE),
            "::",
            stringify!(MaxIops)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE>())).MaxBandwidth
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE),
            "::",
            stringify!(MaxBandwidth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE>())).ReservationIops
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE),
            "::",
            stringify!(ReservationIops)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE>())).VolumeName
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE),
            "::",
            stringify!(VolumeName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE>())).BaseIoSize
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE),
            "::",
            stringify!(BaseIoSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE>())).ControlFlags
                as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE),
            "::",
            stringify!(ControlFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE>()))
                .VolumeNameLength as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE),
            "::",
            stringify!(VolumeNameLength)
        )
    );
}
pub type JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V1 =
    JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2 {
    pub MaxIops: LONG64,
    pub MaxBandwidth: LONG64,
    pub ReservationIops: LONG64,
    pub VolumeName: PWSTR,
    pub BaseIoSize: DWORD,
    pub ControlFlags: JOB_OBJECT_IO_RATE_CONTROL_FLAGS,
    pub VolumeNameLength: WORD,
    pub CriticalReservationIops: LONG64,
    pub ReservationBandwidth: LONG64,
    pub CriticalReservationBandwidth: LONG64,
    pub MaxTimePercent: LONG64,
    pub ReservationTimePercent: LONG64,
    pub CriticalReservationTimePercent: LONG64,
}
#[test]
fn bindgen_test_layout_JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2() {
    assert_eq!(
        ::std::mem::size_of::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2>(),
        96usize,
        concat!(
            "Size of: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2>())).MaxIops
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2),
            "::",
            stringify!(MaxIops)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2>())).MaxBandwidth
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2),
            "::",
            stringify!(MaxBandwidth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2>()))
                .ReservationIops as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2),
            "::",
            stringify!(ReservationIops)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2>())).VolumeName
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2),
            "::",
            stringify!(VolumeName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2>())).BaseIoSize
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2),
            "::",
            stringify!(BaseIoSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2>())).ControlFlags
                as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2),
            "::",
            stringify!(ControlFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2>()))
                .VolumeNameLength as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2),
            "::",
            stringify!(VolumeNameLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2>()))
                .CriticalReservationIops as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2),
            "::",
            stringify!(CriticalReservationIops)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2>()))
                .ReservationBandwidth as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2),
            "::",
            stringify!(ReservationBandwidth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2>()))
                .CriticalReservationBandwidth as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2),
            "::",
            stringify!(CriticalReservationBandwidth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2>()))
                .MaxTimePercent as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2),
            "::",
            stringify!(MaxTimePercent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2>()))
                .ReservationTimePercent as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2),
            "::",
            stringify!(ReservationTimePercent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2>()))
                .CriticalReservationTimePercent as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2),
            "::",
            stringify!(CriticalReservationTimePercent)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3 {
    pub MaxIops: LONG64,
    pub MaxBandwidth: LONG64,
    pub ReservationIops: LONG64,
    pub VolumeName: PWSTR,
    pub BaseIoSize: DWORD,
    pub ControlFlags: JOB_OBJECT_IO_RATE_CONTROL_FLAGS,
    pub VolumeNameLength: WORD,
    pub CriticalReservationIops: LONG64,
    pub ReservationBandwidth: LONG64,
    pub CriticalReservationBandwidth: LONG64,
    pub MaxTimePercent: LONG64,
    pub ReservationTimePercent: LONG64,
    pub CriticalReservationTimePercent: LONG64,
    pub SoftMaxIops: LONG64,
    pub SoftMaxBandwidth: LONG64,
    pub SoftMaxTimePercent: LONG64,
    pub LimitExcessNotifyIops: LONG64,
    pub LimitExcessNotifyBandwidth: LONG64,
    pub LimitExcessNotifyTimePercent: LONG64,
}
#[test]
fn bindgen_test_layout_JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3() {
    assert_eq!(
        ::std::mem::size_of::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3>(),
        144usize,
        concat!(
            "Size of: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3>())).MaxIops
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3),
            "::",
            stringify!(MaxIops)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3>())).MaxBandwidth
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3),
            "::",
            stringify!(MaxBandwidth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3>()))
                .ReservationIops as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3),
            "::",
            stringify!(ReservationIops)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3>())).VolumeName
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3),
            "::",
            stringify!(VolumeName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3>())).BaseIoSize
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3),
            "::",
            stringify!(BaseIoSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3>())).ControlFlags
                as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3),
            "::",
            stringify!(ControlFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3>()))
                .VolumeNameLength as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3),
            "::",
            stringify!(VolumeNameLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3>()))
                .CriticalReservationIops as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3),
            "::",
            stringify!(CriticalReservationIops)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3>()))
                .ReservationBandwidth as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3),
            "::",
            stringify!(ReservationBandwidth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3>()))
                .CriticalReservationBandwidth as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3),
            "::",
            stringify!(CriticalReservationBandwidth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3>()))
                .MaxTimePercent as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3),
            "::",
            stringify!(MaxTimePercent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3>()))
                .ReservationTimePercent as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3),
            "::",
            stringify!(ReservationTimePercent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3>()))
                .CriticalReservationTimePercent as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3),
            "::",
            stringify!(CriticalReservationTimePercent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3>())).SoftMaxIops
                as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3),
            "::",
            stringify!(SoftMaxIops)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3>()))
                .SoftMaxBandwidth as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3),
            "::",
            stringify!(SoftMaxBandwidth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3>()))
                .SoftMaxTimePercent as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3),
            "::",
            stringify!(SoftMaxTimePercent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3>()))
                .LimitExcessNotifyIops as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3),
            "::",
            stringify!(LimitExcessNotifyIops)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3>()))
                .LimitExcessNotifyBandwidth as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3),
            "::",
            stringify!(LimitExcessNotifyBandwidth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3>()))
                .LimitExcessNotifyTimePercent as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3),
            "::",
            stringify!(LimitExcessNotifyTimePercent)
        )
    );
}
pub const JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS_JOBOBJECT_IO_ATTRIBUTION_CONTROL_ENABLE:
    JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS = 1;
pub const JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS_JOBOBJECT_IO_ATTRIBUTION_CONTROL_DISABLE:
    JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS = 2;
pub const JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS_JOBOBJECT_IO_ATTRIBUTION_CONTROL_VALID_FLAGS:
    JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS = 3;
pub type JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _JOBOBJECT_IO_ATTRIBUTION_STATS {
    pub IoCount: ULONG_PTR,
    pub TotalNonOverlappedQueueTime: ULONGLONG,
    pub TotalNonOverlappedServiceTime: ULONGLONG,
    pub TotalSize: ULONGLONG,
}
#[test]
fn bindgen_test_layout__JOBOBJECT_IO_ATTRIBUTION_STATS() {
    assert_eq!(
        ::std::mem::size_of::<_JOBOBJECT_IO_ATTRIBUTION_STATS>(),
        32usize,
        concat!("Size of: ", stringify!(_JOBOBJECT_IO_ATTRIBUTION_STATS))
    );
    assert_eq!(
        ::std::mem::align_of::<_JOBOBJECT_IO_ATTRIBUTION_STATS>(),
        8usize,
        concat!("Alignment of ", stringify!(_JOBOBJECT_IO_ATTRIBUTION_STATS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_IO_ATTRIBUTION_STATS>())).IoCount as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_IO_ATTRIBUTION_STATS),
            "::",
            stringify!(IoCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_IO_ATTRIBUTION_STATS>())).TotalNonOverlappedQueueTime
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_IO_ATTRIBUTION_STATS),
            "::",
            stringify!(TotalNonOverlappedQueueTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_IO_ATTRIBUTION_STATS>()))
                .TotalNonOverlappedServiceTime as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_IO_ATTRIBUTION_STATS),
            "::",
            stringify!(TotalNonOverlappedServiceTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_IO_ATTRIBUTION_STATS>())).TotalSize as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_IO_ATTRIBUTION_STATS),
            "::",
            stringify!(TotalSize)
        )
    );
}
pub type JOBOBJECT_IO_ATTRIBUTION_STATS = _JOBOBJECT_IO_ATTRIBUTION_STATS;
pub type PJOBOBJECT_IO_ATTRIBUTION_STATS = *mut _JOBOBJECT_IO_ATTRIBUTION_STATS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _JOBOBJECT_IO_ATTRIBUTION_INFORMATION {
    pub ControlFlags: DWORD,
    pub ReadStats: JOBOBJECT_IO_ATTRIBUTION_STATS,
    pub WriteStats: JOBOBJECT_IO_ATTRIBUTION_STATS,
}
#[test]
fn bindgen_test_layout__JOBOBJECT_IO_ATTRIBUTION_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_JOBOBJECT_IO_ATTRIBUTION_INFORMATION>(),
        72usize,
        concat!(
            "Size of: ",
            stringify!(_JOBOBJECT_IO_ATTRIBUTION_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_JOBOBJECT_IO_ATTRIBUTION_INFORMATION>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_JOBOBJECT_IO_ATTRIBUTION_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_IO_ATTRIBUTION_INFORMATION>())).ControlFlags
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_IO_ATTRIBUTION_INFORMATION),
            "::",
            stringify!(ControlFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_IO_ATTRIBUTION_INFORMATION>())).ReadStats as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_IO_ATTRIBUTION_INFORMATION),
            "::",
            stringify!(ReadStats)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOBOBJECT_IO_ATTRIBUTION_INFORMATION>())).WriteStats as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOBOBJECT_IO_ATTRIBUTION_INFORMATION),
            "::",
            stringify!(WriteStats)
        )
    );
}
pub type JOBOBJECT_IO_ATTRIBUTION_INFORMATION = _JOBOBJECT_IO_ATTRIBUTION_INFORMATION;
pub type PJOBOBJECT_IO_ATTRIBUTION_INFORMATION = *mut _JOBOBJECT_IO_ATTRIBUTION_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_JobObjectReserved9Information: _JOBOBJECTINFOCLASS = 26;
pub const _JOBOBJECTINFOCLASS_JobObjectReserved10Information: _JOBOBJECTINFOCLASS = 27;
pub const _JOBOBJECTINFOCLASS_JobObjectReserved11Information: _JOBOBJECTINFOCLASS = 28;
pub const _JOBOBJECTINFOCLASS_JobObjectReserved12Information: _JOBOBJECTINFOCLASS = 29;
pub const _JOBOBJECTINFOCLASS_JobObjectReserved13Information: _JOBOBJECTINFOCLASS = 30;
pub const _JOBOBJECTINFOCLASS_JobObjectReserved14Information: _JOBOBJECTINFOCLASS = 31;
pub const _JOBOBJECTINFOCLASS_JobObjectNetRateControlInformation: _JOBOBJECTINFOCLASS = 32;
pub const _JOBOBJECTINFOCLASS_JobObjectNotificationLimitInformation2: _JOBOBJECTINFOCLASS = 33;
pub const _JOBOBJECTINFOCLASS_JobObjectLimitViolationInformation2: _JOBOBJECTINFOCLASS = 34;
pub const _JOBOBJECTINFOCLASS_JobObjectCreateSilo: _JOBOBJECTINFOCLASS = 35;
pub const _JOBOBJECTINFOCLASS_JobObjectSiloBasicInformation: _JOBOBJECTINFOCLASS = 36;
pub const _JOBOBJECTINFOCLASS_JobObjectReserved15Information: _JOBOBJECTINFOCLASS = 37;
pub const _JOBOBJECTINFOCLASS_JobObjectReserved16Information: _JOBOBJECTINFOCLASS = 38;
pub const _JOBOBJECTINFOCLASS_JobObjectReserved17Information: _JOBOBJECTINFOCLASS = 39;
pub const _JOBOBJECTINFOCLASS_JobObjectReserved18Information: _JOBOBJECTINFOCLASS = 40;
pub const _JOBOBJECTINFOCLASS_JobObjectReserved19Information: _JOBOBJECTINFOCLASS = 41;
pub const _JOBOBJECTINFOCLASS_JobObjectReserved20Information: _JOBOBJECTINFOCLASS = 42;
pub const _JOBOBJECTINFOCLASS_JobObjectReserved21Information: _JOBOBJECTINFOCLASS = 43;
pub const _JOBOBJECTINFOCLASS_JobObjectReserved22Information: _JOBOBJECTINFOCLASS = 44;
pub const _JOBOBJECTINFOCLASS_JobObjectReserved23Information: _JOBOBJECTINFOCLASS = 45;
pub const _JOBOBJECTINFOCLASS_JobObjectReserved24Information: _JOBOBJECTINFOCLASS = 46;
pub const _JOBOBJECTINFOCLASS_JobObjectReserved25Information: _JOBOBJECTINFOCLASS = 47;
pub const _JOBOBJECTINFOCLASS_MaxJobObjectInfoClass: _JOBOBJECTINFOCLASS = 48;
pub type _JOBOBJECTINFOCLASS = ::std::os::raw::c_int;
pub use self::_JOBOBJECTINFOCLASS as JOBOBJECTINFOCLASS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SILOOBJECT_BASIC_INFORMATION {
    pub SiloId: DWORD,
    pub SiloParentId: DWORD,
    pub NumberOfProcesses: DWORD,
    pub IsInServerSilo: BOOLEAN,
    pub Reserved: [BYTE; 3usize],
}
#[test]
fn bindgen_test_layout__SILOOBJECT_BASIC_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_SILOOBJECT_BASIC_INFORMATION>(),
        16usize,
        concat!("Size of: ", stringify!(_SILOOBJECT_BASIC_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_SILOOBJECT_BASIC_INFORMATION>(),
        4usize,
        concat!("Alignment of ", stringify!(_SILOOBJECT_BASIC_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SILOOBJECT_BASIC_INFORMATION>())).SiloId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SILOOBJECT_BASIC_INFORMATION),
            "::",
            stringify!(SiloId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SILOOBJECT_BASIC_INFORMATION>())).SiloParentId as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SILOOBJECT_BASIC_INFORMATION),
            "::",
            stringify!(SiloParentId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SILOOBJECT_BASIC_INFORMATION>())).NumberOfProcesses as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SILOOBJECT_BASIC_INFORMATION),
            "::",
            stringify!(NumberOfProcesses)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SILOOBJECT_BASIC_INFORMATION>())).IsInServerSilo as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_SILOOBJECT_BASIC_INFORMATION),
            "::",
            stringify!(IsInServerSilo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SILOOBJECT_BASIC_INFORMATION>())).Reserved as *const _ as usize
        },
        13usize,
        concat!(
            "Offset of field: ",
            stringify!(_SILOOBJECT_BASIC_INFORMATION),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type SILOOBJECT_BASIC_INFORMATION = _SILOOBJECT_BASIC_INFORMATION;
pub type PSILOOBJECT_BASIC_INFORMATION = *mut _SILOOBJECT_BASIC_INFORMATION;
pub const _SERVERSILO_STATE_SERVERSILO_INITING: _SERVERSILO_STATE = 0;
pub const _SERVERSILO_STATE_SERVERSILO_STARTED: _SERVERSILO_STATE = 1;
pub const _SERVERSILO_STATE_SERVERSILO_SHUTTING_DOWN: _SERVERSILO_STATE = 2;
pub const _SERVERSILO_STATE_SERVERSILO_TERMINATING: _SERVERSILO_STATE = 3;
pub const _SERVERSILO_STATE_SERVERSILO_TERMINATED: _SERVERSILO_STATE = 4;
pub type _SERVERSILO_STATE = ::std::os::raw::c_int;
pub use self::_SERVERSILO_STATE as SERVERSILO_STATE;
pub type PSERVERSILO_STATE = *mut _SERVERSILO_STATE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SERVERSILO_BASIC_INFORMATION {
    pub ServiceSessionId: DWORD,
    pub State: SERVERSILO_STATE,
    pub ExitStatus: DWORD,
}
#[test]
fn bindgen_test_layout__SERVERSILO_BASIC_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_SERVERSILO_BASIC_INFORMATION>(),
        12usize,
        concat!("Size of: ", stringify!(_SERVERSILO_BASIC_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_SERVERSILO_BASIC_INFORMATION>(),
        4usize,
        concat!("Alignment of ", stringify!(_SERVERSILO_BASIC_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVERSILO_BASIC_INFORMATION>())).ServiceSessionId as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVERSILO_BASIC_INFORMATION),
            "::",
            stringify!(ServiceSessionId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVERSILO_BASIC_INFORMATION>())).State as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVERSILO_BASIC_INFORMATION),
            "::",
            stringify!(State)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVERSILO_BASIC_INFORMATION>())).ExitStatus as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVERSILO_BASIC_INFORMATION),
            "::",
            stringify!(ExitStatus)
        )
    );
}
pub type SERVERSILO_BASIC_INFORMATION = _SERVERSILO_BASIC_INFORMATION;
pub type PSERVERSILO_BASIC_INFORMATION = *mut _SERVERSILO_BASIC_INFORMATION;
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 = ::std::os::raw::c_int;
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 = ::std::os::raw::c_int;
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 = ::std::os::raw::c_int;
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,
}
#[test]
fn bindgen_test_layout__CACHE_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_CACHE_DESCRIPTOR>(),
        12usize,
        concat!("Size of: ", stringify!(_CACHE_DESCRIPTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<_CACHE_DESCRIPTOR>(),
        4usize,
        concat!("Alignment of ", stringify!(_CACHE_DESCRIPTOR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CACHE_DESCRIPTOR>())).Level as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CACHE_DESCRIPTOR),
            "::",
            stringify!(Level)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CACHE_DESCRIPTOR>())).Associativity as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_CACHE_DESCRIPTOR),
            "::",
            stringify!(Associativity)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CACHE_DESCRIPTOR>())).LineSize as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_CACHE_DESCRIPTOR),
            "::",
            stringify!(LineSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CACHE_DESCRIPTOR>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CACHE_DESCRIPTOR),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CACHE_DESCRIPTOR>())).Type as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CACHE_DESCRIPTOR),
            "::",
            stringify!(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,
}
#[test]
fn bindgen_test_layout__SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1__bindgen_ty_1>(),
        1usize,
        concat!(
            "Size of: ",
            stringify!(_SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1__bindgen_ty_1>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(_SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<
                _SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1__bindgen_ty_1,
            >()))
            .Flags as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Flags)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1__bindgen_ty_2 {
    pub NodeNumber: DWORD,
}
#[test]
fn bindgen_test_layout__SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1__bindgen_ty_2>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1__bindgen_ty_2>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<
                _SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1__bindgen_ty_2,
            >()))
            .NodeNumber as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(NodeNumber)
        )
    );
}
#[test]
fn bindgen_test_layout__SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1>()))
                .ProcessorCore as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1),
            "::",
            stringify!(ProcessorCore)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1>())).NumaNode
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1),
            "::",
            stringify!(NumaNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1>())).Cache
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1),
            "::",
            stringify!(Cache)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1>())).Reserved
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1),
            "::",
            stringify!(Reserved)
        )
    );
}
#[test]
fn bindgen_test_layout__SYSTEM_LOGICAL_PROCESSOR_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_SYSTEM_LOGICAL_PROCESSOR_INFORMATION>(),
        32usize,
        concat!(
            "Size of: ",
            stringify!(_SYSTEM_LOGICAL_PROCESSOR_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_SYSTEM_LOGICAL_PROCESSOR_INFORMATION>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_SYSTEM_LOGICAL_PROCESSOR_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_LOGICAL_PROCESSOR_INFORMATION>())).ProcessorMask
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_LOGICAL_PROCESSOR_INFORMATION),
            "::",
            stringify!(ProcessorMask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_LOGICAL_PROCESSOR_INFORMATION>())).Relationship
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_LOGICAL_PROCESSOR_INFORMATION),
            "::",
            stringify!(Relationship)
        )
    );
}
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 EfficiencyClass: BYTE,
    pub Reserved: [BYTE; 20usize],
    pub GroupCount: WORD,
    pub GroupMask: [GROUP_AFFINITY; 1usize],
}
#[test]
fn bindgen_test_layout__PROCESSOR_RELATIONSHIP() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESSOR_RELATIONSHIP>(),
        40usize,
        concat!("Size of: ", stringify!(_PROCESSOR_RELATIONSHIP))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESSOR_RELATIONSHIP>(),
        8usize,
        concat!("Alignment of ", stringify!(_PROCESSOR_RELATIONSHIP))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROCESSOR_RELATIONSHIP>())).Flags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESSOR_RELATIONSHIP),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESSOR_RELATIONSHIP>())).EfficiencyClass as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESSOR_RELATIONSHIP),
            "::",
            stringify!(EfficiencyClass)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESSOR_RELATIONSHIP>())).Reserved as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESSOR_RELATIONSHIP),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESSOR_RELATIONSHIP>())).GroupCount as *const _ as usize
        },
        22usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESSOR_RELATIONSHIP),
            "::",
            stringify!(GroupCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESSOR_RELATIONSHIP>())).GroupMask as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESSOR_RELATIONSHIP),
            "::",
            stringify!(GroupMask)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__NUMA_NODE_RELATIONSHIP() {
    assert_eq!(
        ::std::mem::size_of::<_NUMA_NODE_RELATIONSHIP>(),
        40usize,
        concat!("Size of: ", stringify!(_NUMA_NODE_RELATIONSHIP))
    );
    assert_eq!(
        ::std::mem::align_of::<_NUMA_NODE_RELATIONSHIP>(),
        8usize,
        concat!("Alignment of ", stringify!(_NUMA_NODE_RELATIONSHIP))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NUMA_NODE_RELATIONSHIP>())).NodeNumber as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NUMA_NODE_RELATIONSHIP),
            "::",
            stringify!(NodeNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NUMA_NODE_RELATIONSHIP>())).Reserved as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_NUMA_NODE_RELATIONSHIP),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NUMA_NODE_RELATIONSHIP>())).GroupMask as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_NUMA_NODE_RELATIONSHIP),
            "::",
            stringify!(GroupMask)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__CACHE_RELATIONSHIP() {
    assert_eq!(
        ::std::mem::size_of::<_CACHE_RELATIONSHIP>(),
        48usize,
        concat!("Size of: ", stringify!(_CACHE_RELATIONSHIP))
    );
    assert_eq!(
        ::std::mem::align_of::<_CACHE_RELATIONSHIP>(),
        8usize,
        concat!("Alignment of ", stringify!(_CACHE_RELATIONSHIP))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CACHE_RELATIONSHIP>())).Level as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CACHE_RELATIONSHIP),
            "::",
            stringify!(Level)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CACHE_RELATIONSHIP>())).Associativity as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_CACHE_RELATIONSHIP),
            "::",
            stringify!(Associativity)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CACHE_RELATIONSHIP>())).LineSize as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_CACHE_RELATIONSHIP),
            "::",
            stringify!(LineSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CACHE_RELATIONSHIP>())).CacheSize as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CACHE_RELATIONSHIP),
            "::",
            stringify!(CacheSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CACHE_RELATIONSHIP>())).Type as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CACHE_RELATIONSHIP),
            "::",
            stringify!(Type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CACHE_RELATIONSHIP>())).Reserved as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_CACHE_RELATIONSHIP),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CACHE_RELATIONSHIP>())).GroupMask as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CACHE_RELATIONSHIP),
            "::",
            stringify!(GroupMask)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__PROCESSOR_GROUP_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESSOR_GROUP_INFO>(),
        48usize,
        concat!("Size of: ", stringify!(_PROCESSOR_GROUP_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESSOR_GROUP_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_PROCESSOR_GROUP_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESSOR_GROUP_INFO>())).MaximumProcessorCount as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESSOR_GROUP_INFO),
            "::",
            stringify!(MaximumProcessorCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESSOR_GROUP_INFO>())).ActiveProcessorCount as *const _
                as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESSOR_GROUP_INFO),
            "::",
            stringify!(ActiveProcessorCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROCESSOR_GROUP_INFO>())).Reserved as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESSOR_GROUP_INFO),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESSOR_GROUP_INFO>())).ActiveProcessorMask as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESSOR_GROUP_INFO),
            "::",
            stringify!(ActiveProcessorMask)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__GROUP_RELATIONSHIP() {
    assert_eq!(
        ::std::mem::size_of::<_GROUP_RELATIONSHIP>(),
        72usize,
        concat!("Size of: ", stringify!(_GROUP_RELATIONSHIP))
    );
    assert_eq!(
        ::std::mem::align_of::<_GROUP_RELATIONSHIP>(),
        8usize,
        concat!("Alignment of ", stringify!(_GROUP_RELATIONSHIP))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GROUP_RELATIONSHIP>())).MaximumGroupCount as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_GROUP_RELATIONSHIP),
            "::",
            stringify!(MaximumGroupCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GROUP_RELATIONSHIP>())).ActiveGroupCount as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_GROUP_RELATIONSHIP),
            "::",
            stringify!(ActiveGroupCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GROUP_RELATIONSHIP>())).Reserved as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_GROUP_RELATIONSHIP),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GROUP_RELATIONSHIP>())).GroupInfo as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_GROUP_RELATIONSHIP),
            "::",
            stringify!(GroupInfo)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX__bindgen_ty_1>(),
        72usize,
        concat!(
            "Size of: ",
            stringify!(_SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX__bindgen_ty_1>()))
                .Processor as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX__bindgen_ty_1),
            "::",
            stringify!(Processor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX__bindgen_ty_1>()))
                .NumaNode as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX__bindgen_ty_1),
            "::",
            stringify!(NumaNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX__bindgen_ty_1>())).Cache
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX__bindgen_ty_1),
            "::",
            stringify!(Cache)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX__bindgen_ty_1>())).Group
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX__bindgen_ty_1),
            "::",
            stringify!(Group)
        )
    );
}
#[test]
fn bindgen_test_layout__SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX() {
    assert_eq!(
        ::std::mem::size_of::<_SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX>(),
        80usize,
        concat!(
            "Size of: ",
            stringify!(_SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX>())).Relationship
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX),
            "::",
            stringify!(Relationship)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX>())).Size as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX),
            "::",
            stringify!(Size)
        )
    );
}
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;
pub const _CPU_SET_INFORMATION_TYPE_CpuSetInformation: _CPU_SET_INFORMATION_TYPE = 0;
pub type _CPU_SET_INFORMATION_TYPE = ::std::os::raw::c_int;
pub use self::_CPU_SET_INFORMATION_TYPE as CPU_SET_INFORMATION_TYPE;
pub type PCPU_SET_INFORMATION_TYPE = *mut _CPU_SET_INFORMATION_TYPE;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _SYSTEM_CPU_SET_INFORMATION {
    pub Size: DWORD,
    pub Type: CPU_SET_INFORMATION_TYPE,
    pub __bindgen_anon_1: _SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1 {
    pub CpuSet: _SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: [u64; 3usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1 {
    pub Id: DWORD,
    pub Group: WORD,
    pub LogicalProcessorIndex: BYTE,
    pub CoreIndex: BYTE,
    pub LastLevelCacheIndex: BYTE,
    pub NumaNodeIndex: BYTE,
    pub EfficiencyClass: BYTE,
    pub __bindgen_anon_1: _SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
    pub __bindgen_anon_2: _SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2,
    pub AllocationTag: DWORD64,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
    pub AllFlags: BYTE,
    pub __bindgen_anon_1:
        _SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: u8,
}
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize], u8>,
}
#[test]
fn bindgen_test_layout__SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1(
) {
    assert_eq!(
        ::std::mem::size_of::<
            _SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
        >(),
        1usize,
        concat!(
            "Size of: ",
            stringify!(
                _SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1
            )
        )
    );
    assert_eq!(
        ::std::mem::align_of::<
            _SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
        >(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(
                _SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1
            )
        )
    );
}
impl _SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn Parked(&self) -> BYTE {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_Parked(&mut self, val: BYTE) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn Allocated(&self) -> BYTE {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_Allocated(&mut self, val: BYTE) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn AllocatedToTargetProcess(&self) -> BYTE {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_AllocatedToTargetProcess(&mut self, val: BYTE) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(2usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn RealTime(&self) -> BYTE {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_RealTime(&mut self, val: BYTE) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(3usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn ReservedFlags(&self) -> BYTE {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_ReservedFlags(&mut self, val: BYTE) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(4usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        Parked: BYTE,
        Allocated: BYTE,
        AllocatedToTargetProcess: BYTE,
        RealTime: BYTE,
        ReservedFlags: BYTE,
    ) -> __BindgenBitfieldUnit<[u8; 1usize], u8> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize], u8> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let Parked: u8 = unsafe { ::std::mem::transmute(Parked) };
            Parked as u64
        });
        __bindgen_bitfield_unit.set(1usize, 1u8, {
            let Allocated: u8 = unsafe { ::std::mem::transmute(Allocated) };
            Allocated as u64
        });
        __bindgen_bitfield_unit.set(2usize, 1u8, {
            let AllocatedToTargetProcess: u8 =
                unsafe { ::std::mem::transmute(AllocatedToTargetProcess) };
            AllocatedToTargetProcess as u64
        });
        __bindgen_bitfield_unit.set(3usize, 1u8, {
            let RealTime: u8 = unsafe { ::std::mem::transmute(RealTime) };
            RealTime as u64
        });
        __bindgen_bitfield_unit.set(4usize, 4u8, {
            let ReservedFlags: u8 = unsafe { ::std::mem::transmute(ReservedFlags) };
            ReservedFlags as u64
        });
        __bindgen_bitfield_unit
    }
}
#[test]
fn bindgen_test_layout__SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>(
        ),
        1usize,
        concat!(
            "Size of: ",
            stringify!(_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>(
        ),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<
                _SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
            >()))
            .AllFlags as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(AllFlags)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2 {
    pub Reserved: DWORD,
    pub SchedulingClass: BYTE,
    _bindgen_union_align: u32,
}
#[test]
fn bindgen_test_layout__SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2>(
        ),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2>(
        ),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<
                _SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2,
            >()))
            .Reserved as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<
                _SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2,
            >()))
            .SchedulingClass as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(SchedulingClass)
        )
    );
}
#[test]
fn bindgen_test_layout__SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1>(),
        24usize,
        concat!(
            "Size of: ",
            stringify!(_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1>())).Id
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1>()))
                .Group as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Group)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1>()))
                .LogicalProcessorIndex as *const _ as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(LogicalProcessorIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1>()))
                .CoreIndex as *const _ as usize
        },
        7usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(CoreIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1>()))
                .LastLevelCacheIndex as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(LastLevelCacheIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1>()))
                .NumaNodeIndex as *const _ as usize
        },
        9usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(NumaNodeIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1>()))
                .EfficiencyClass as *const _ as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(EfficiencyClass)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1>()))
                .AllocationTag as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(AllocationTag)
        )
    );
}
#[test]
fn bindgen_test_layout__SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1>(),
        24usize,
        concat!(
            "Size of: ",
            stringify!(_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1>())).CpuSet as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1),
            "::",
            stringify!(CpuSet)
        )
    );
}
#[test]
fn bindgen_test_layout__SYSTEM_CPU_SET_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_SYSTEM_CPU_SET_INFORMATION>(),
        32usize,
        concat!("Size of: ", stringify!(_SYSTEM_CPU_SET_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_SYSTEM_CPU_SET_INFORMATION>(),
        8usize,
        concat!("Alignment of ", stringify!(_SYSTEM_CPU_SET_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_CPU_SET_INFORMATION>())).Size as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_CPU_SET_INFORMATION),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_CPU_SET_INFORMATION>())).Type as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_CPU_SET_INFORMATION),
            "::",
            stringify!(Type)
        )
    );
}
pub type SYSTEM_CPU_SET_INFORMATION = _SYSTEM_CPU_SET_INFORMATION;
pub type PSYSTEM_CPU_SET_INFORMATION = *mut _SYSTEM_CPU_SET_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION {
    pub CycleTime: DWORD64,
}
#[test]
fn bindgen_test_layout__SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION>())).CycleTime
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION),
            "::",
            stringify!(CycleTime)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__XSTATE_FEATURE() {
    assert_eq!(
        ::std::mem::size_of::<_XSTATE_FEATURE>(),
        8usize,
        concat!("Size of: ", stringify!(_XSTATE_FEATURE))
    );
    assert_eq!(
        ::std::mem::align_of::<_XSTATE_FEATURE>(),
        4usize,
        concat!("Alignment of ", stringify!(_XSTATE_FEATURE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_XSTATE_FEATURE>())).Offset as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSTATE_FEATURE),
            "::",
            stringify!(Offset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_XSTATE_FEATURE>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSTATE_FEATURE),
            "::",
            stringify!(Size)
        )
    );
}
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 __bindgen_anon_1: _XSTATE_CONFIGURATION__bindgen_ty_1,
    pub Features: [XSTATE_FEATURE; 64usize],
    pub EnabledSupervisorFeatures: DWORD64,
    pub AlignedFeatures: DWORD64,
    pub AllFeatureSize: DWORD,
    pub AllFeatures: [DWORD; 64usize],
    pub EnabledUserVisibleSupervisorFeatures: DWORD64,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _XSTATE_CONFIGURATION__bindgen_ty_1 {
    pub ControlFlags: DWORD,
    pub __bindgen_anon_1: _XSTATE_CONFIGURATION__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _XSTATE_CONFIGURATION__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize], u8>,
    pub __bindgen_padding_0: [u8; 3usize],
}
#[test]
fn bindgen_test_layout__XSTATE_CONFIGURATION__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_XSTATE_CONFIGURATION__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_XSTATE_CONFIGURATION__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_XSTATE_CONFIGURATION__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_XSTATE_CONFIGURATION__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
impl _XSTATE_CONFIGURATION__bindgen_ty_1__bindgen_ty_1 {
    #[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 CompactionEnabled(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_CompactionEnabled(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        OptimizedSave: DWORD,
        CompactionEnabled: 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.set(1usize, 1u8, {
            let CompactionEnabled: u32 = unsafe { ::std::mem::transmute(CompactionEnabled) };
            CompactionEnabled as u64
        });
        __bindgen_bitfield_unit
    }
}
#[test]
fn bindgen_test_layout__XSTATE_CONFIGURATION__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_XSTATE_CONFIGURATION__bindgen_ty_1>(),
        4usize,
        concat!("Size of: ", stringify!(_XSTATE_CONFIGURATION__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_XSTATE_CONFIGURATION__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_XSTATE_CONFIGURATION__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_XSTATE_CONFIGURATION__bindgen_ty_1>())).ControlFlags as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSTATE_CONFIGURATION__bindgen_ty_1),
            "::",
            stringify!(ControlFlags)
        )
    );
}
#[test]
fn bindgen_test_layout__XSTATE_CONFIGURATION() {
    assert_eq!(
        ::std::mem::size_of::<_XSTATE_CONFIGURATION>(),
        824usize,
        concat!("Size of: ", stringify!(_XSTATE_CONFIGURATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_XSTATE_CONFIGURATION>(),
        8usize,
        concat!("Alignment of ", stringify!(_XSTATE_CONFIGURATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_XSTATE_CONFIGURATION>())).EnabledFeatures as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSTATE_CONFIGURATION),
            "::",
            stringify!(EnabledFeatures)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_XSTATE_CONFIGURATION>())).EnabledVolatileFeatures as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSTATE_CONFIGURATION),
            "::",
            stringify!(EnabledVolatileFeatures)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_XSTATE_CONFIGURATION>())).Size as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSTATE_CONFIGURATION),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_XSTATE_CONFIGURATION>())).Features as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSTATE_CONFIGURATION),
            "::",
            stringify!(Features)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_XSTATE_CONFIGURATION>())).EnabledSupervisorFeatures as *const _
                as usize
        },
        536usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSTATE_CONFIGURATION),
            "::",
            stringify!(EnabledSupervisorFeatures)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_XSTATE_CONFIGURATION>())).AlignedFeatures as *const _ as usize
        },
        544usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSTATE_CONFIGURATION),
            "::",
            stringify!(AlignedFeatures)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_XSTATE_CONFIGURATION>())).AllFeatureSize as *const _ as usize
        },
        552usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSTATE_CONFIGURATION),
            "::",
            stringify!(AllFeatureSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_XSTATE_CONFIGURATION>())).AllFeatures as *const _ as usize
        },
        556usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSTATE_CONFIGURATION),
            "::",
            stringify!(AllFeatures)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_XSTATE_CONFIGURATION>())).EnabledUserVisibleSupervisorFeatures
                as *const _ as usize
        },
        816usize,
        concat!(
            "Offset of field: ",
            stringify!(_XSTATE_CONFIGURATION),
            "::",
            stringify!(EnabledUserVisibleSupervisorFeatures)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__MEMORY_BASIC_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_MEMORY_BASIC_INFORMATION>(),
        48usize,
        concat!("Size of: ", stringify!(_MEMORY_BASIC_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_MEMORY_BASIC_INFORMATION>(),
        8usize,
        concat!("Alignment of ", stringify!(_MEMORY_BASIC_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MEMORY_BASIC_INFORMATION>())).BaseAddress as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORY_BASIC_INFORMATION),
            "::",
            stringify!(BaseAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MEMORY_BASIC_INFORMATION>())).AllocationBase as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORY_BASIC_INFORMATION),
            "::",
            stringify!(AllocationBase)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MEMORY_BASIC_INFORMATION>())).AllocationProtect as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORY_BASIC_INFORMATION),
            "::",
            stringify!(AllocationProtect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MEMORY_BASIC_INFORMATION>())).RegionSize as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORY_BASIC_INFORMATION),
            "::",
            stringify!(RegionSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MEMORY_BASIC_INFORMATION>())).State as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORY_BASIC_INFORMATION),
            "::",
            stringify!(State)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MEMORY_BASIC_INFORMATION>())).Protect as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORY_BASIC_INFORMATION),
            "::",
            stringify!(Protect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MEMORY_BASIC_INFORMATION>())).Type as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORY_BASIC_INFORMATION),
            "::",
            stringify!(Type)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__MEMORY_BASIC_INFORMATION32() {
    assert_eq!(
        ::std::mem::size_of::<_MEMORY_BASIC_INFORMATION32>(),
        28usize,
        concat!("Size of: ", stringify!(_MEMORY_BASIC_INFORMATION32))
    );
    assert_eq!(
        ::std::mem::align_of::<_MEMORY_BASIC_INFORMATION32>(),
        4usize,
        concat!("Alignment of ", stringify!(_MEMORY_BASIC_INFORMATION32))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MEMORY_BASIC_INFORMATION32>())).BaseAddress as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORY_BASIC_INFORMATION32),
            "::",
            stringify!(BaseAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MEMORY_BASIC_INFORMATION32>())).AllocationBase as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORY_BASIC_INFORMATION32),
            "::",
            stringify!(AllocationBase)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MEMORY_BASIC_INFORMATION32>())).AllocationProtect as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORY_BASIC_INFORMATION32),
            "::",
            stringify!(AllocationProtect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MEMORY_BASIC_INFORMATION32>())).RegionSize as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORY_BASIC_INFORMATION32),
            "::",
            stringify!(RegionSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MEMORY_BASIC_INFORMATION32>())).State as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORY_BASIC_INFORMATION32),
            "::",
            stringify!(State)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MEMORY_BASIC_INFORMATION32>())).Protect as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORY_BASIC_INFORMATION32),
            "::",
            stringify!(Protect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MEMORY_BASIC_INFORMATION32>())).Type as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORY_BASIC_INFORMATION32),
            "::",
            stringify!(Type)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__MEMORY_BASIC_INFORMATION64() {
    assert_eq!(
        ::std::mem::size_of::<_MEMORY_BASIC_INFORMATION64>(),
        48usize,
        concat!("Size of: ", stringify!(_MEMORY_BASIC_INFORMATION64))
    );
    assert_eq!(
        ::std::mem::align_of::<_MEMORY_BASIC_INFORMATION64>(),
        16usize,
        concat!("Alignment of ", stringify!(_MEMORY_BASIC_INFORMATION64))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MEMORY_BASIC_INFORMATION64>())).BaseAddress as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORY_BASIC_INFORMATION64),
            "::",
            stringify!(BaseAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MEMORY_BASIC_INFORMATION64>())).AllocationBase as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORY_BASIC_INFORMATION64),
            "::",
            stringify!(AllocationBase)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MEMORY_BASIC_INFORMATION64>())).AllocationProtect as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORY_BASIC_INFORMATION64),
            "::",
            stringify!(AllocationProtect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MEMORY_BASIC_INFORMATION64>())).__alignment1 as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORY_BASIC_INFORMATION64),
            "::",
            stringify!(__alignment1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MEMORY_BASIC_INFORMATION64>())).RegionSize as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORY_BASIC_INFORMATION64),
            "::",
            stringify!(RegionSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MEMORY_BASIC_INFORMATION64>())).State as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORY_BASIC_INFORMATION64),
            "::",
            stringify!(State)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MEMORY_BASIC_INFORMATION64>())).Protect as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORY_BASIC_INFORMATION64),
            "::",
            stringify!(Protect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MEMORY_BASIC_INFORMATION64>())).Type as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORY_BASIC_INFORMATION64),
            "::",
            stringify!(Type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MEMORY_BASIC_INFORMATION64>())).__alignment2 as *const _
                as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORY_BASIC_INFORMATION64),
            "::",
            stringify!(__alignment2)
        )
    );
}
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 _CFG_CALL_TARGET_INFO {
    pub Offset: ULONG_PTR,
    pub Flags: ULONG_PTR,
}
#[test]
fn bindgen_test_layout__CFG_CALL_TARGET_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CFG_CALL_TARGET_INFO>(),
        16usize,
        concat!("Size of: ", stringify!(_CFG_CALL_TARGET_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CFG_CALL_TARGET_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CFG_CALL_TARGET_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CFG_CALL_TARGET_INFO>())).Offset as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CFG_CALL_TARGET_INFO),
            "::",
            stringify!(Offset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CFG_CALL_TARGET_INFO>())).Flags as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CFG_CALL_TARGET_INFO),
            "::",
            stringify!(Flags)
        )
    );
}
pub type CFG_CALL_TARGET_INFO = _CFG_CALL_TARGET_INFO;
pub type PCFG_CALL_TARGET_INFO = *mut _CFG_CALL_TARGET_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MEM_ADDRESS_REQUIREMENTS {
    pub LowestStartingAddress: PVOID,
    pub HighestEndingAddress: PVOID,
    pub Alignment: SIZE_T,
}
#[test]
fn bindgen_test_layout__MEM_ADDRESS_REQUIREMENTS() {
    assert_eq!(
        ::std::mem::size_of::<_MEM_ADDRESS_REQUIREMENTS>(),
        24usize,
        concat!("Size of: ", stringify!(_MEM_ADDRESS_REQUIREMENTS))
    );
    assert_eq!(
        ::std::mem::align_of::<_MEM_ADDRESS_REQUIREMENTS>(),
        8usize,
        concat!("Alignment of ", stringify!(_MEM_ADDRESS_REQUIREMENTS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MEM_ADDRESS_REQUIREMENTS>())).LowestStartingAddress as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEM_ADDRESS_REQUIREMENTS),
            "::",
            stringify!(LowestStartingAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MEM_ADDRESS_REQUIREMENTS>())).HighestEndingAddress as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEM_ADDRESS_REQUIREMENTS),
            "::",
            stringify!(HighestEndingAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MEM_ADDRESS_REQUIREMENTS>())).Alignment as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEM_ADDRESS_REQUIREMENTS),
            "::",
            stringify!(Alignment)
        )
    );
}
pub type MEM_ADDRESS_REQUIREMENTS = _MEM_ADDRESS_REQUIREMENTS;
pub type PMEM_ADDRESS_REQUIREMENTS = *mut _MEM_ADDRESS_REQUIREMENTS;
pub const MEM_EXTENDED_PARAMETER_TYPE_MemExtendedParameterInvalidType: MEM_EXTENDED_PARAMETER_TYPE =
    0;
pub const MEM_EXTENDED_PARAMETER_TYPE_MemExtendedParameterAddressRequirements:
    MEM_EXTENDED_PARAMETER_TYPE = 1;
pub const MEM_EXTENDED_PARAMETER_TYPE_MemExtendedParameterNumaNode: MEM_EXTENDED_PARAMETER_TYPE = 2;
pub const MEM_EXTENDED_PARAMETER_TYPE_MemExtendedParameterPartitionHandle:
    MEM_EXTENDED_PARAMETER_TYPE = 3;
pub const MEM_EXTENDED_PARAMETER_TYPE_MemExtendedParameterUserPhysicalHandle:
    MEM_EXTENDED_PARAMETER_TYPE = 4;
pub const MEM_EXTENDED_PARAMETER_TYPE_MemExtendedParameterAttributeFlags:
    MEM_EXTENDED_PARAMETER_TYPE = 5;
pub const MEM_EXTENDED_PARAMETER_TYPE_MemExtendedParameterMax: MEM_EXTENDED_PARAMETER_TYPE = 6;
pub type MEM_EXTENDED_PARAMETER_TYPE = ::std::os::raw::c_int;
pub type PMEM_EXTENDED_PARAMETER_TYPE = *mut MEM_EXTENDED_PARAMETER_TYPE;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct MEM_EXTENDED_PARAMETER {
    pub __bindgen_anon_1: MEM_EXTENDED_PARAMETER__bindgen_ty_1,
    pub __bindgen_anon_2: MEM_EXTENDED_PARAMETER__bindgen_ty_2,
}
#[repr(C)]
#[repr(align(8))]
#[derive(Debug, Copy, Clone)]
pub struct MEM_EXTENDED_PARAMETER__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize], u64>,
}
#[test]
fn bindgen_test_layout_MEM_EXTENDED_PARAMETER__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<MEM_EXTENDED_PARAMETER__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(MEM_EXTENDED_PARAMETER__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<MEM_EXTENDED_PARAMETER__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(MEM_EXTENDED_PARAMETER__bindgen_ty_1)
        )
    );
}
impl MEM_EXTENDED_PARAMETER__bindgen_ty_1 {
    #[inline]
    pub fn Type(&self) -> DWORD64 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u64) }
    }
    #[inline]
    pub fn set_Type(&mut self, val: DWORD64) {
        unsafe {
            let val: u64 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 8u8, val as u64)
        }
    }
    #[inline]
    pub fn Reserved(&self) -> DWORD64 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 56u8) as u64) }
    }
    #[inline]
    pub fn set_Reserved(&mut self, val: DWORD64) {
        unsafe {
            let val: u64 = ::std::mem::transmute(val);
            self._bitfield_1.set(8usize, 56u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        Type: DWORD64,
        Reserved: DWORD64,
    ) -> __BindgenBitfieldUnit<[u8; 8usize], u64> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize], u64> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 8u8, {
            let Type: u64 = unsafe { ::std::mem::transmute(Type) };
            Type as u64
        });
        __bindgen_bitfield_unit.set(8usize, 56u8, {
            let Reserved: u64 = unsafe { ::std::mem::transmute(Reserved) };
            Reserved as u64
        });
        __bindgen_bitfield_unit
    }
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union MEM_EXTENDED_PARAMETER__bindgen_ty_2 {
    pub ULong64: DWORD64,
    pub Pointer: PVOID,
    pub Size: SIZE_T,
    pub Handle: HANDLE,
    pub ULong: DWORD,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout_MEM_EXTENDED_PARAMETER__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<MEM_EXTENDED_PARAMETER__bindgen_ty_2>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(MEM_EXTENDED_PARAMETER__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<MEM_EXTENDED_PARAMETER__bindgen_ty_2>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(MEM_EXTENDED_PARAMETER__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<MEM_EXTENDED_PARAMETER__bindgen_ty_2>())).ULong64 as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(MEM_EXTENDED_PARAMETER__bindgen_ty_2),
            "::",
            stringify!(ULong64)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<MEM_EXTENDED_PARAMETER__bindgen_ty_2>())).Pointer as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(MEM_EXTENDED_PARAMETER__bindgen_ty_2),
            "::",
            stringify!(Pointer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<MEM_EXTENDED_PARAMETER__bindgen_ty_2>())).Size as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(MEM_EXTENDED_PARAMETER__bindgen_ty_2),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<MEM_EXTENDED_PARAMETER__bindgen_ty_2>())).Handle as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(MEM_EXTENDED_PARAMETER__bindgen_ty_2),
            "::",
            stringify!(Handle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<MEM_EXTENDED_PARAMETER__bindgen_ty_2>())).ULong as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(MEM_EXTENDED_PARAMETER__bindgen_ty_2),
            "::",
            stringify!(ULong)
        )
    );
}
#[test]
fn bindgen_test_layout_MEM_EXTENDED_PARAMETER() {
    assert_eq!(
        ::std::mem::size_of::<MEM_EXTENDED_PARAMETER>(),
        16usize,
        concat!("Size of: ", stringify!(MEM_EXTENDED_PARAMETER))
    );
    assert_eq!(
        ::std::mem::align_of::<MEM_EXTENDED_PARAMETER>(),
        8usize,
        concat!("Alignment of ", stringify!(MEM_EXTENDED_PARAMETER))
    );
}
pub type PMEM_EXTENDED_PARAMETER = *mut MEM_EXTENDED_PARAMETER;
pub const MEM_SECTION_EXTENDED_PARAMETER_TYPE_MemSectionExtendedParameterInvalidType:
    MEM_SECTION_EXTENDED_PARAMETER_TYPE = 0;
pub const MEM_SECTION_EXTENDED_PARAMETER_TYPE_MemSectionExtendedParameterUserPhysicalFlags:
    MEM_SECTION_EXTENDED_PARAMETER_TYPE = 1;
pub const MEM_SECTION_EXTENDED_PARAMETER_TYPE_MemSectionExtendedParameterNumaNode:
    MEM_SECTION_EXTENDED_PARAMETER_TYPE = 2;
pub const MEM_SECTION_EXTENDED_PARAMETER_TYPE_MemSectionExtendedParameterMax:
    MEM_SECTION_EXTENDED_PARAMETER_TYPE = 3;
pub type MEM_SECTION_EXTENDED_PARAMETER_TYPE = ::std::os::raw::c_int;
pub type PMEM_SECTION_EXTENDED_PARAMETER_TYPE = *mut MEM_SECTION_EXTENDED_PARAMETER_TYPE;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _ENCLAVE_CREATE_INFO_SGX {
    pub Secs: [BYTE; 4096usize],
}
#[test]
fn bindgen_test_layout__ENCLAVE_CREATE_INFO_SGX() {
    assert_eq!(
        ::std::mem::size_of::<_ENCLAVE_CREATE_INFO_SGX>(),
        4096usize,
        concat!("Size of: ", stringify!(_ENCLAVE_CREATE_INFO_SGX))
    );
    assert_eq!(
        ::std::mem::align_of::<_ENCLAVE_CREATE_INFO_SGX>(),
        1usize,
        concat!("Alignment of ", stringify!(_ENCLAVE_CREATE_INFO_SGX))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ENCLAVE_CREATE_INFO_SGX>())).Secs as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCLAVE_CREATE_INFO_SGX),
            "::",
            stringify!(Secs)
        )
    );
}
pub type ENCLAVE_CREATE_INFO_SGX = _ENCLAVE_CREATE_INFO_SGX;
pub type PENCLAVE_CREATE_INFO_SGX = *mut _ENCLAVE_CREATE_INFO_SGX;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _ENCLAVE_INIT_INFO_SGX {
    pub SigStruct: [BYTE; 1808usize],
    pub Reserved1: [BYTE; 240usize],
    pub EInitToken: [BYTE; 304usize],
    pub Reserved2: [BYTE; 1744usize],
}
#[test]
fn bindgen_test_layout__ENCLAVE_INIT_INFO_SGX() {
    assert_eq!(
        ::std::mem::size_of::<_ENCLAVE_INIT_INFO_SGX>(),
        4096usize,
        concat!("Size of: ", stringify!(_ENCLAVE_INIT_INFO_SGX))
    );
    assert_eq!(
        ::std::mem::align_of::<_ENCLAVE_INIT_INFO_SGX>(),
        1usize,
        concat!("Alignment of ", stringify!(_ENCLAVE_INIT_INFO_SGX))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCLAVE_INIT_INFO_SGX>())).SigStruct as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCLAVE_INIT_INFO_SGX),
            "::",
            stringify!(SigStruct)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCLAVE_INIT_INFO_SGX>())).Reserved1 as *const _ as usize
        },
        1808usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCLAVE_INIT_INFO_SGX),
            "::",
            stringify!(Reserved1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCLAVE_INIT_INFO_SGX>())).EInitToken as *const _ as usize
        },
        2048usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCLAVE_INIT_INFO_SGX),
            "::",
            stringify!(EInitToken)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCLAVE_INIT_INFO_SGX>())).Reserved2 as *const _ as usize
        },
        2352usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCLAVE_INIT_INFO_SGX),
            "::",
            stringify!(Reserved2)
        )
    );
}
pub type ENCLAVE_INIT_INFO_SGX = _ENCLAVE_INIT_INFO_SGX;
pub type PENCLAVE_INIT_INFO_SGX = *mut _ENCLAVE_INIT_INFO_SGX;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ENCLAVE_CREATE_INFO_VBS {
    pub Flags: DWORD,
    pub OwnerID: [BYTE; 32usize],
}
#[test]
fn bindgen_test_layout__ENCLAVE_CREATE_INFO_VBS() {
    assert_eq!(
        ::std::mem::size_of::<_ENCLAVE_CREATE_INFO_VBS>(),
        36usize,
        concat!("Size of: ", stringify!(_ENCLAVE_CREATE_INFO_VBS))
    );
    assert_eq!(
        ::std::mem::align_of::<_ENCLAVE_CREATE_INFO_VBS>(),
        4usize,
        concat!("Alignment of ", stringify!(_ENCLAVE_CREATE_INFO_VBS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ENCLAVE_CREATE_INFO_VBS>())).Flags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCLAVE_CREATE_INFO_VBS),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCLAVE_CREATE_INFO_VBS>())).OwnerID as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCLAVE_CREATE_INFO_VBS),
            "::",
            stringify!(OwnerID)
        )
    );
}
pub type ENCLAVE_CREATE_INFO_VBS = _ENCLAVE_CREATE_INFO_VBS;
pub type PENCLAVE_CREATE_INFO_VBS = *mut _ENCLAVE_CREATE_INFO_VBS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ENCLAVE_CREATE_INFO_VBS_BASIC {
    pub Flags: DWORD,
    pub OwnerID: [BYTE; 32usize],
}
#[test]
fn bindgen_test_layout__ENCLAVE_CREATE_INFO_VBS_BASIC() {
    assert_eq!(
        ::std::mem::size_of::<_ENCLAVE_CREATE_INFO_VBS_BASIC>(),
        36usize,
        concat!("Size of: ", stringify!(_ENCLAVE_CREATE_INFO_VBS_BASIC))
    );
    assert_eq!(
        ::std::mem::align_of::<_ENCLAVE_CREATE_INFO_VBS_BASIC>(),
        4usize,
        concat!("Alignment of ", stringify!(_ENCLAVE_CREATE_INFO_VBS_BASIC))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCLAVE_CREATE_INFO_VBS_BASIC>())).Flags as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCLAVE_CREATE_INFO_VBS_BASIC),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCLAVE_CREATE_INFO_VBS_BASIC>())).OwnerID as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCLAVE_CREATE_INFO_VBS_BASIC),
            "::",
            stringify!(OwnerID)
        )
    );
}
pub type ENCLAVE_CREATE_INFO_VBS_BASIC = _ENCLAVE_CREATE_INFO_VBS_BASIC;
pub type PENCLAVE_CREATE_INFO_VBS_BASIC = *mut _ENCLAVE_CREATE_INFO_VBS_BASIC;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ENCLAVE_LOAD_DATA_VBS_BASIC {
    pub PageType: DWORD,
}
#[test]
fn bindgen_test_layout__ENCLAVE_LOAD_DATA_VBS_BASIC() {
    assert_eq!(
        ::std::mem::size_of::<_ENCLAVE_LOAD_DATA_VBS_BASIC>(),
        4usize,
        concat!("Size of: ", stringify!(_ENCLAVE_LOAD_DATA_VBS_BASIC))
    );
    assert_eq!(
        ::std::mem::align_of::<_ENCLAVE_LOAD_DATA_VBS_BASIC>(),
        4usize,
        concat!("Alignment of ", stringify!(_ENCLAVE_LOAD_DATA_VBS_BASIC))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCLAVE_LOAD_DATA_VBS_BASIC>())).PageType as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCLAVE_LOAD_DATA_VBS_BASIC),
            "::",
            stringify!(PageType)
        )
    );
}
pub type ENCLAVE_LOAD_DATA_VBS_BASIC = _ENCLAVE_LOAD_DATA_VBS_BASIC;
pub type PENCLAVE_LOAD_DATA_VBS_BASIC = *mut _ENCLAVE_LOAD_DATA_VBS_BASIC;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _ENCLAVE_INIT_INFO_VBS_BASIC {
    pub FamilyId: [BYTE; 16usize],
    pub ImageId: [BYTE; 16usize],
    pub EnclaveSize: ULONGLONG,
    pub EnclaveSvn: DWORD,
    pub Reserved: DWORD,
    pub __bindgen_anon_1: _ENCLAVE_INIT_INFO_VBS_BASIC__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _ENCLAVE_INIT_INFO_VBS_BASIC__bindgen_ty_1 {
    pub SignatureInfoHandle: HANDLE,
    pub Unused: ULONGLONG,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__ENCLAVE_INIT_INFO_VBS_BASIC__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_ENCLAVE_INIT_INFO_VBS_BASIC__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_ENCLAVE_INIT_INFO_VBS_BASIC__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_ENCLAVE_INIT_INFO_VBS_BASIC__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_ENCLAVE_INIT_INFO_VBS_BASIC__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCLAVE_INIT_INFO_VBS_BASIC__bindgen_ty_1>()))
                .SignatureInfoHandle as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCLAVE_INIT_INFO_VBS_BASIC__bindgen_ty_1),
            "::",
            stringify!(SignatureInfoHandle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCLAVE_INIT_INFO_VBS_BASIC__bindgen_ty_1>())).Unused
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCLAVE_INIT_INFO_VBS_BASIC__bindgen_ty_1),
            "::",
            stringify!(Unused)
        )
    );
}
#[test]
fn bindgen_test_layout__ENCLAVE_INIT_INFO_VBS_BASIC() {
    assert_eq!(
        ::std::mem::size_of::<_ENCLAVE_INIT_INFO_VBS_BASIC>(),
        56usize,
        concat!("Size of: ", stringify!(_ENCLAVE_INIT_INFO_VBS_BASIC))
    );
    assert_eq!(
        ::std::mem::align_of::<_ENCLAVE_INIT_INFO_VBS_BASIC>(),
        8usize,
        concat!("Alignment of ", stringify!(_ENCLAVE_INIT_INFO_VBS_BASIC))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCLAVE_INIT_INFO_VBS_BASIC>())).FamilyId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCLAVE_INIT_INFO_VBS_BASIC),
            "::",
            stringify!(FamilyId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCLAVE_INIT_INFO_VBS_BASIC>())).ImageId as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCLAVE_INIT_INFO_VBS_BASIC),
            "::",
            stringify!(ImageId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCLAVE_INIT_INFO_VBS_BASIC>())).EnclaveSize as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCLAVE_INIT_INFO_VBS_BASIC),
            "::",
            stringify!(EnclaveSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCLAVE_INIT_INFO_VBS_BASIC>())).EnclaveSvn as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCLAVE_INIT_INFO_VBS_BASIC),
            "::",
            stringify!(EnclaveSvn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCLAVE_INIT_INFO_VBS_BASIC>())).Reserved as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCLAVE_INIT_INFO_VBS_BASIC),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type ENCLAVE_INIT_INFO_VBS_BASIC = _ENCLAVE_INIT_INFO_VBS_BASIC;
pub type PENCLAVE_INIT_INFO_VBS_BASIC = *mut _ENCLAVE_INIT_INFO_VBS_BASIC;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ENCLAVE_INIT_INFO_VBS {
    pub Length: DWORD,
    pub ThreadCount: DWORD,
}
#[test]
fn bindgen_test_layout__ENCLAVE_INIT_INFO_VBS() {
    assert_eq!(
        ::std::mem::size_of::<_ENCLAVE_INIT_INFO_VBS>(),
        8usize,
        concat!("Size of: ", stringify!(_ENCLAVE_INIT_INFO_VBS))
    );
    assert_eq!(
        ::std::mem::align_of::<_ENCLAVE_INIT_INFO_VBS>(),
        4usize,
        concat!("Alignment of ", stringify!(_ENCLAVE_INIT_INFO_VBS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ENCLAVE_INIT_INFO_VBS>())).Length as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCLAVE_INIT_INFO_VBS),
            "::",
            stringify!(Length)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCLAVE_INIT_INFO_VBS>())).ThreadCount as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCLAVE_INIT_INFO_VBS),
            "::",
            stringify!(ThreadCount)
        )
    );
}
pub type ENCLAVE_INIT_INFO_VBS = _ENCLAVE_INIT_INFO_VBS;
pub type PENCLAVE_INIT_INFO_VBS = *mut _ENCLAVE_INIT_INFO_VBS;
pub type ENCLAVE_TARGET_FUNCTION =
    ::std::option::Option<unsafe extern "C" fn(arg1: PVOID) -> PVOID>;
pub type PENCLAVE_TARGET_FUNCTION = ENCLAVE_TARGET_FUNCTION;
pub type LPENCLAVE_TARGET_FUNCTION = PENCLAVE_TARGET_FUNCTION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_ID_128 {
    pub Identifier: [BYTE; 16usize],
}
#[test]
fn bindgen_test_layout__FILE_ID_128() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_ID_128>(),
        16usize,
        concat!("Size of: ", stringify!(_FILE_ID_128))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_ID_128>(),
        1usize,
        concat!("Alignment of ", stringify!(_FILE_ID_128))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_ID_128>())).Identifier as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ID_128),
            "::",
            stringify!(Identifier)
        )
    );
}
pub type FILE_ID_128 = _FILE_ID_128;
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],
}
#[test]
fn bindgen_test_layout__FILE_NOTIFY_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_NOTIFY_INFORMATION>(),
        16usize,
        concat!("Size of: ", stringify!(_FILE_NOTIFY_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_NOTIFY_INFORMATION>(),
        4usize,
        concat!("Alignment of ", stringify!(_FILE_NOTIFY_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_NOTIFY_INFORMATION>())).NextEntryOffset as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_NOTIFY_INFORMATION),
            "::",
            stringify!(NextEntryOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_NOTIFY_INFORMATION>())).Action as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_NOTIFY_INFORMATION),
            "::",
            stringify!(Action)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_NOTIFY_INFORMATION>())).FileNameLength as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_NOTIFY_INFORMATION),
            "::",
            stringify!(FileNameLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_NOTIFY_INFORMATION>())).FileName as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_NOTIFY_INFORMATION),
            "::",
            stringify!(FileName)
        )
    );
}
pub type FILE_NOTIFY_INFORMATION = _FILE_NOTIFY_INFORMATION;
pub type PFILE_NOTIFY_INFORMATION = *mut _FILE_NOTIFY_INFORMATION;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _FILE_NOTIFY_EXTENDED_INFORMATION {
    pub NextEntryOffset: DWORD,
    pub Action: DWORD,
    pub CreationTime: LARGE_INTEGER,
    pub LastModificationTime: LARGE_INTEGER,
    pub LastChangeTime: LARGE_INTEGER,
    pub LastAccessTime: LARGE_INTEGER,
    pub AllocatedLength: LARGE_INTEGER,
    pub FileSize: LARGE_INTEGER,
    pub FileAttributes: DWORD,
    pub ReparsePointTag: DWORD,
    pub FileId: LARGE_INTEGER,
    pub ParentFileId: LARGE_INTEGER,
    pub FileNameLength: DWORD,
    pub FileName: [WCHAR; 1usize],
}
#[test]
fn bindgen_test_layout__FILE_NOTIFY_EXTENDED_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_NOTIFY_EXTENDED_INFORMATION>(),
        88usize,
        concat!("Size of: ", stringify!(_FILE_NOTIFY_EXTENDED_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_NOTIFY_EXTENDED_INFORMATION>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_FILE_NOTIFY_EXTENDED_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_NOTIFY_EXTENDED_INFORMATION>())).NextEntryOffset
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_NOTIFY_EXTENDED_INFORMATION),
            "::",
            stringify!(NextEntryOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_NOTIFY_EXTENDED_INFORMATION>())).Action as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_NOTIFY_EXTENDED_INFORMATION),
            "::",
            stringify!(Action)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_NOTIFY_EXTENDED_INFORMATION>())).CreationTime as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_NOTIFY_EXTENDED_INFORMATION),
            "::",
            stringify!(CreationTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_NOTIFY_EXTENDED_INFORMATION>())).LastModificationTime
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_NOTIFY_EXTENDED_INFORMATION),
            "::",
            stringify!(LastModificationTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_NOTIFY_EXTENDED_INFORMATION>())).LastChangeTime as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_NOTIFY_EXTENDED_INFORMATION),
            "::",
            stringify!(LastChangeTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_NOTIFY_EXTENDED_INFORMATION>())).LastAccessTime as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_NOTIFY_EXTENDED_INFORMATION),
            "::",
            stringify!(LastAccessTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_NOTIFY_EXTENDED_INFORMATION>())).AllocatedLength
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_NOTIFY_EXTENDED_INFORMATION),
            "::",
            stringify!(AllocatedLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_NOTIFY_EXTENDED_INFORMATION>())).FileSize as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_NOTIFY_EXTENDED_INFORMATION),
            "::",
            stringify!(FileSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_NOTIFY_EXTENDED_INFORMATION>())).FileAttributes as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_NOTIFY_EXTENDED_INFORMATION),
            "::",
            stringify!(FileAttributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_NOTIFY_EXTENDED_INFORMATION>())).ReparsePointTag
                as *const _ as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_NOTIFY_EXTENDED_INFORMATION),
            "::",
            stringify!(ReparsePointTag)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_NOTIFY_EXTENDED_INFORMATION>())).FileId as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_NOTIFY_EXTENDED_INFORMATION),
            "::",
            stringify!(FileId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_NOTIFY_EXTENDED_INFORMATION>())).ParentFileId as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_NOTIFY_EXTENDED_INFORMATION),
            "::",
            stringify!(ParentFileId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_NOTIFY_EXTENDED_INFORMATION>())).FileNameLength as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_NOTIFY_EXTENDED_INFORMATION),
            "::",
            stringify!(FileNameLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_NOTIFY_EXTENDED_INFORMATION>())).FileName as *const _
                as usize
        },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_NOTIFY_EXTENDED_INFORMATION),
            "::",
            stringify!(FileName)
        )
    );
}
pub type FILE_NOTIFY_EXTENDED_INFORMATION = _FILE_NOTIFY_EXTENDED_INFORMATION;
pub type PFILE_NOTIFY_EXTENDED_INFORMATION = *mut _FILE_NOTIFY_EXTENDED_INFORMATION;
#[repr(C)]
#[derive(Copy, Clone)]
pub union _FILE_SEGMENT_ELEMENT {
    pub Buffer: *mut ::std::os::raw::c_void,
    pub Alignment: ULONGLONG,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__FILE_SEGMENT_ELEMENT() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_SEGMENT_ELEMENT>(),
        8usize,
        concat!("Size of: ", stringify!(_FILE_SEGMENT_ELEMENT))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_SEGMENT_ELEMENT>(),
        8usize,
        concat!("Alignment of ", stringify!(_FILE_SEGMENT_ELEMENT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_SEGMENT_ELEMENT>())).Buffer as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_SEGMENT_ELEMENT),
            "::",
            stringify!(Buffer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_SEGMENT_ELEMENT>())).Alignment as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_SEGMENT_ELEMENT),
            "::",
            stringify!(Alignment)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__REPARSE_GUID_DATA_BUFFER__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_REPARSE_GUID_DATA_BUFFER__bindgen_ty_1>(),
        1usize,
        concat!(
            "Size of: ",
            stringify!(_REPARSE_GUID_DATA_BUFFER__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_REPARSE_GUID_DATA_BUFFER__bindgen_ty_1>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(_REPARSE_GUID_DATA_BUFFER__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REPARSE_GUID_DATA_BUFFER__bindgen_ty_1>())).DataBuffer
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_REPARSE_GUID_DATA_BUFFER__bindgen_ty_1),
            "::",
            stringify!(DataBuffer)
        )
    );
}
#[test]
fn bindgen_test_layout__REPARSE_GUID_DATA_BUFFER() {
    assert_eq!(
        ::std::mem::size_of::<_REPARSE_GUID_DATA_BUFFER>(),
        28usize,
        concat!("Size of: ", stringify!(_REPARSE_GUID_DATA_BUFFER))
    );
    assert_eq!(
        ::std::mem::align_of::<_REPARSE_GUID_DATA_BUFFER>(),
        4usize,
        concat!("Alignment of ", stringify!(_REPARSE_GUID_DATA_BUFFER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REPARSE_GUID_DATA_BUFFER>())).ReparseTag as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_REPARSE_GUID_DATA_BUFFER),
            "::",
            stringify!(ReparseTag)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REPARSE_GUID_DATA_BUFFER>())).ReparseDataLength as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_REPARSE_GUID_DATA_BUFFER),
            "::",
            stringify!(ReparseDataLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REPARSE_GUID_DATA_BUFFER>())).Reserved as *const _ as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_REPARSE_GUID_DATA_BUFFER),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REPARSE_GUID_DATA_BUFFER>())).ReparseGuid as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_REPARSE_GUID_DATA_BUFFER),
            "::",
            stringify!(ReparseGuid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REPARSE_GUID_DATA_BUFFER>())).GenericReparseBuffer as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_REPARSE_GUID_DATA_BUFFER),
            "::",
            stringify!(GenericReparseBuffer)
        )
    );
}
pub type REPARSE_GUID_DATA_BUFFER = _REPARSE_GUID_DATA_BUFFER;
pub type PREPARSE_GUID_DATA_BUFFER = *mut _REPARSE_GUID_DATA_BUFFER;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _SCRUB_DATA_INPUT {
    pub Size: DWORD,
    pub Flags: DWORD,
    pub MaximumIos: DWORD,
    pub ObjectId: [DWORD; 4usize],
    pub Reserved: [DWORD; 25usize],
    pub ResumeContext: [BYTE; 816usize],
}
#[test]
fn bindgen_test_layout__SCRUB_DATA_INPUT() {
    assert_eq!(
        ::std::mem::size_of::<_SCRUB_DATA_INPUT>(),
        944usize,
        concat!("Size of: ", stringify!(_SCRUB_DATA_INPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCRUB_DATA_INPUT>(),
        4usize,
        concat!("Alignment of ", stringify!(_SCRUB_DATA_INPUT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCRUB_DATA_INPUT>())).Size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCRUB_DATA_INPUT),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCRUB_DATA_INPUT>())).Flags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCRUB_DATA_INPUT),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCRUB_DATA_INPUT>())).MaximumIos as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCRUB_DATA_INPUT),
            "::",
            stringify!(MaximumIos)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCRUB_DATA_INPUT>())).ObjectId as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCRUB_DATA_INPUT),
            "::",
            stringify!(ObjectId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCRUB_DATA_INPUT>())).Reserved as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCRUB_DATA_INPUT),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCRUB_DATA_INPUT>())).ResumeContext as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCRUB_DATA_INPUT),
            "::",
            stringify!(ResumeContext)
        )
    );
}
pub type SCRUB_DATA_INPUT = _SCRUB_DATA_INPUT;
pub type PSCRUB_DATA_INPUT = *mut _SCRUB_DATA_INPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCRUB_PARITY_EXTENT {
    pub Offset: LONGLONG,
    pub Length: ULONGLONG,
}
#[test]
fn bindgen_test_layout__SCRUB_PARITY_EXTENT() {
    assert_eq!(
        ::std::mem::size_of::<_SCRUB_PARITY_EXTENT>(),
        16usize,
        concat!("Size of: ", stringify!(_SCRUB_PARITY_EXTENT))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCRUB_PARITY_EXTENT>(),
        8usize,
        concat!("Alignment of ", stringify!(_SCRUB_PARITY_EXTENT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCRUB_PARITY_EXTENT>())).Offset as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCRUB_PARITY_EXTENT),
            "::",
            stringify!(Offset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCRUB_PARITY_EXTENT>())).Length as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCRUB_PARITY_EXTENT),
            "::",
            stringify!(Length)
        )
    );
}
pub type SCRUB_PARITY_EXTENT = _SCRUB_PARITY_EXTENT;
pub type PSCRUB_PARITY_EXTENT = *mut _SCRUB_PARITY_EXTENT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCRUB_PARITY_EXTENT_DATA {
    pub Size: WORD,
    pub Flags: WORD,
    pub NumberOfParityExtents: WORD,
    pub MaximumNumberOfParityExtents: WORD,
    pub ParityExtents: [SCRUB_PARITY_EXTENT; 1usize],
}
#[test]
fn bindgen_test_layout__SCRUB_PARITY_EXTENT_DATA() {
    assert_eq!(
        ::std::mem::size_of::<_SCRUB_PARITY_EXTENT_DATA>(),
        24usize,
        concat!("Size of: ", stringify!(_SCRUB_PARITY_EXTENT_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCRUB_PARITY_EXTENT_DATA>(),
        8usize,
        concat!("Alignment of ", stringify!(_SCRUB_PARITY_EXTENT_DATA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCRUB_PARITY_EXTENT_DATA>())).Size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCRUB_PARITY_EXTENT_DATA),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCRUB_PARITY_EXTENT_DATA>())).Flags as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCRUB_PARITY_EXTENT_DATA),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCRUB_PARITY_EXTENT_DATA>())).NumberOfParityExtents as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCRUB_PARITY_EXTENT_DATA),
            "::",
            stringify!(NumberOfParityExtents)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCRUB_PARITY_EXTENT_DATA>())).MaximumNumberOfParityExtents
                as *const _ as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCRUB_PARITY_EXTENT_DATA),
            "::",
            stringify!(MaximumNumberOfParityExtents)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCRUB_PARITY_EXTENT_DATA>())).ParityExtents as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCRUB_PARITY_EXTENT_DATA),
            "::",
            stringify!(ParityExtents)
        )
    );
}
pub type SCRUB_PARITY_EXTENT_DATA = _SCRUB_PARITY_EXTENT_DATA;
pub type PSCRUB_PARITY_EXTENT_DATA = *mut _SCRUB_PARITY_EXTENT_DATA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _SCRUB_DATA_OUTPUT {
    pub Size: DWORD,
    pub Flags: DWORD,
    pub Status: DWORD,
    pub ErrorFileOffset: ULONGLONG,
    pub ErrorLength: ULONGLONG,
    pub NumberOfBytesRepaired: ULONGLONG,
    pub NumberOfBytesFailed: ULONGLONG,
    pub InternalFileReference: ULONGLONG,
    pub ResumeContextLength: WORD,
    pub ParityExtentDataOffset: WORD,
    pub Reserved: [DWORD; 9usize],
    pub NumberOfMetadataBytesProcessed: ULONGLONG,
    pub NumberOfDataBytesProcessed: ULONGLONG,
    pub TotalNumberOfMetadataBytesInUse: ULONGLONG,
    pub TotalNumberOfDataBytesInUse: ULONGLONG,
    pub ResumeContext: [BYTE; 816usize],
}
#[test]
fn bindgen_test_layout__SCRUB_DATA_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_SCRUB_DATA_OUTPUT>(),
        944usize,
        concat!("Size of: ", stringify!(_SCRUB_DATA_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCRUB_DATA_OUTPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(_SCRUB_DATA_OUTPUT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCRUB_DATA_OUTPUT>())).Size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCRUB_DATA_OUTPUT),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCRUB_DATA_OUTPUT>())).Flags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCRUB_DATA_OUTPUT),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCRUB_DATA_OUTPUT>())).Status as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCRUB_DATA_OUTPUT),
            "::",
            stringify!(Status)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCRUB_DATA_OUTPUT>())).ErrorFileOffset as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCRUB_DATA_OUTPUT),
            "::",
            stringify!(ErrorFileOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCRUB_DATA_OUTPUT>())).ErrorLength as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCRUB_DATA_OUTPUT),
            "::",
            stringify!(ErrorLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCRUB_DATA_OUTPUT>())).NumberOfBytesRepaired as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCRUB_DATA_OUTPUT),
            "::",
            stringify!(NumberOfBytesRepaired)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCRUB_DATA_OUTPUT>())).NumberOfBytesFailed as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCRUB_DATA_OUTPUT),
            "::",
            stringify!(NumberOfBytesFailed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCRUB_DATA_OUTPUT>())).InternalFileReference as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCRUB_DATA_OUTPUT),
            "::",
            stringify!(InternalFileReference)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCRUB_DATA_OUTPUT>())).ResumeContextLength as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCRUB_DATA_OUTPUT),
            "::",
            stringify!(ResumeContextLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCRUB_DATA_OUTPUT>())).ParityExtentDataOffset as *const _
                as usize
        },
        58usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCRUB_DATA_OUTPUT),
            "::",
            stringify!(ParityExtentDataOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCRUB_DATA_OUTPUT>())).Reserved as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCRUB_DATA_OUTPUT),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCRUB_DATA_OUTPUT>())).NumberOfMetadataBytesProcessed
                as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCRUB_DATA_OUTPUT),
            "::",
            stringify!(NumberOfMetadataBytesProcessed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCRUB_DATA_OUTPUT>())).NumberOfDataBytesProcessed as *const _
                as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCRUB_DATA_OUTPUT),
            "::",
            stringify!(NumberOfDataBytesProcessed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCRUB_DATA_OUTPUT>())).TotalNumberOfMetadataBytesInUse
                as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCRUB_DATA_OUTPUT),
            "::",
            stringify!(TotalNumberOfMetadataBytesInUse)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCRUB_DATA_OUTPUT>())).TotalNumberOfDataBytesInUse as *const _
                as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCRUB_DATA_OUTPUT),
            "::",
            stringify!(TotalNumberOfDataBytesInUse)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCRUB_DATA_OUTPUT>())).ResumeContext as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCRUB_DATA_OUTPUT),
            "::",
            stringify!(ResumeContext)
        )
    );
}
pub type SCRUB_DATA_OUTPUT = _SCRUB_DATA_OUTPUT;
pub type PSCRUB_DATA_OUTPUT = *mut _SCRUB_DATA_OUTPUT;
pub const _SharedVirtualDiskSupportType_SharedVirtualDisksUnsupported:
    _SharedVirtualDiskSupportType = 0;
pub const _SharedVirtualDiskSupportType_SharedVirtualDisksSupported: _SharedVirtualDiskSupportType =
    1;
pub const _SharedVirtualDiskSupportType_SharedVirtualDiskSnapshotsSupported:
    _SharedVirtualDiskSupportType = 3;
pub const _SharedVirtualDiskSupportType_SharedVirtualDiskCDPSnapshotsSupported:
    _SharedVirtualDiskSupportType = 7;
pub type _SharedVirtualDiskSupportType = ::std::os::raw::c_int;
pub use self::_SharedVirtualDiskSupportType as SharedVirtualDiskSupportType;
pub const _SharedVirtualDiskHandleState_SharedVirtualDiskHandleStateNone:
    _SharedVirtualDiskHandleState = 0;
pub const _SharedVirtualDiskHandleState_SharedVirtualDiskHandleStateFileShared:
    _SharedVirtualDiskHandleState = 1;
pub const _SharedVirtualDiskHandleState_SharedVirtualDiskHandleStateHandleShared:
    _SharedVirtualDiskHandleState = 3;
pub type _SharedVirtualDiskHandleState = ::std::os::raw::c_int;
pub use self::_SharedVirtualDiskHandleState as SharedVirtualDiskHandleState;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SHARED_VIRTUAL_DISK_SUPPORT {
    pub SharedVirtualDiskSupport: SharedVirtualDiskSupportType,
    pub HandleState: SharedVirtualDiskHandleState,
}
#[test]
fn bindgen_test_layout__SHARED_VIRTUAL_DISK_SUPPORT() {
    assert_eq!(
        ::std::mem::size_of::<_SHARED_VIRTUAL_DISK_SUPPORT>(),
        8usize,
        concat!("Size of: ", stringify!(_SHARED_VIRTUAL_DISK_SUPPORT))
    );
    assert_eq!(
        ::std::mem::align_of::<_SHARED_VIRTUAL_DISK_SUPPORT>(),
        4usize,
        concat!("Alignment of ", stringify!(_SHARED_VIRTUAL_DISK_SUPPORT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SHARED_VIRTUAL_DISK_SUPPORT>())).SharedVirtualDiskSupport
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHARED_VIRTUAL_DISK_SUPPORT),
            "::",
            stringify!(SharedVirtualDiskSupport)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SHARED_VIRTUAL_DISK_SUPPORT>())).HandleState as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHARED_VIRTUAL_DISK_SUPPORT),
            "::",
            stringify!(HandleState)
        )
    );
}
pub type SHARED_VIRTUAL_DISK_SUPPORT = _SHARED_VIRTUAL_DISK_SUPPORT;
pub type PSHARED_VIRTUAL_DISK_SUPPORT = *mut _SHARED_VIRTUAL_DISK_SUPPORT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _REARRANGE_FILE_DATA {
    pub SourceStartingOffset: ULONGLONG,
    pub TargetOffset: ULONGLONG,
    pub SourceFileHandle: HANDLE,
    pub Length: DWORD,
    pub Flags: DWORD,
}
#[test]
fn bindgen_test_layout__REARRANGE_FILE_DATA() {
    assert_eq!(
        ::std::mem::size_of::<_REARRANGE_FILE_DATA>(),
        32usize,
        concat!("Size of: ", stringify!(_REARRANGE_FILE_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<_REARRANGE_FILE_DATA>(),
        8usize,
        concat!("Alignment of ", stringify!(_REARRANGE_FILE_DATA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REARRANGE_FILE_DATA>())).SourceStartingOffset as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_REARRANGE_FILE_DATA),
            "::",
            stringify!(SourceStartingOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REARRANGE_FILE_DATA>())).TargetOffset as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_REARRANGE_FILE_DATA),
            "::",
            stringify!(TargetOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REARRANGE_FILE_DATA>())).SourceFileHandle as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_REARRANGE_FILE_DATA),
            "::",
            stringify!(SourceFileHandle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_REARRANGE_FILE_DATA>())).Length as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_REARRANGE_FILE_DATA),
            "::",
            stringify!(Length)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_REARRANGE_FILE_DATA>())).Flags as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_REARRANGE_FILE_DATA),
            "::",
            stringify!(Flags)
        )
    );
}
pub type REARRANGE_FILE_DATA = _REARRANGE_FILE_DATA;
pub type PREARRANGE_FILE_DATA = *mut _REARRANGE_FILE_DATA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _REARRANGE_FILE_DATA32 {
    pub SourceStartingOffset: ULONGLONG,
    pub TargetOffset: ULONGLONG,
    pub SourceFileHandle: UINT32,
    pub Length: DWORD,
    pub Flags: DWORD,
}
#[test]
fn bindgen_test_layout__REARRANGE_FILE_DATA32() {
    assert_eq!(
        ::std::mem::size_of::<_REARRANGE_FILE_DATA32>(),
        32usize,
        concat!("Size of: ", stringify!(_REARRANGE_FILE_DATA32))
    );
    assert_eq!(
        ::std::mem::align_of::<_REARRANGE_FILE_DATA32>(),
        8usize,
        concat!("Alignment of ", stringify!(_REARRANGE_FILE_DATA32))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REARRANGE_FILE_DATA32>())).SourceStartingOffset as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_REARRANGE_FILE_DATA32),
            "::",
            stringify!(SourceStartingOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REARRANGE_FILE_DATA32>())).TargetOffset as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_REARRANGE_FILE_DATA32),
            "::",
            stringify!(TargetOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REARRANGE_FILE_DATA32>())).SourceFileHandle as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_REARRANGE_FILE_DATA32),
            "::",
            stringify!(SourceFileHandle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_REARRANGE_FILE_DATA32>())).Length as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_REARRANGE_FILE_DATA32),
            "::",
            stringify!(Length)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_REARRANGE_FILE_DATA32>())).Flags as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_REARRANGE_FILE_DATA32),
            "::",
            stringify!(Flags)
        )
    );
}
pub type REARRANGE_FILE_DATA32 = _REARRANGE_FILE_DATA32;
pub type PREARRANGE_FILE_DATA32 = *mut _REARRANGE_FILE_DATA32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SHUFFLE_FILE_DATA {
    pub StartingOffset: LONGLONG,
    pub Length: LONGLONG,
    pub Flags: DWORD,
}
#[test]
fn bindgen_test_layout__SHUFFLE_FILE_DATA() {
    assert_eq!(
        ::std::mem::size_of::<_SHUFFLE_FILE_DATA>(),
        24usize,
        concat!("Size of: ", stringify!(_SHUFFLE_FILE_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<_SHUFFLE_FILE_DATA>(),
        8usize,
        concat!("Alignment of ", stringify!(_SHUFFLE_FILE_DATA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SHUFFLE_FILE_DATA>())).StartingOffset as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHUFFLE_FILE_DATA),
            "::",
            stringify!(StartingOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHUFFLE_FILE_DATA>())).Length as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHUFFLE_FILE_DATA),
            "::",
            stringify!(Length)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHUFFLE_FILE_DATA>())).Flags as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHUFFLE_FILE_DATA),
            "::",
            stringify!(Flags)
        )
    );
}
pub type SHUFFLE_FILE_DATA = _SHUFFLE_FILE_DATA;
pub type PSHUFFLE_FILE_DATA = *mut _SHUFFLE_FILE_DATA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NETWORK_APP_INSTANCE_EA {
    pub AppInstanceID: GUID,
    pub CsvFlags: DWORD,
}
#[test]
fn bindgen_test_layout__NETWORK_APP_INSTANCE_EA() {
    assert_eq!(
        ::std::mem::size_of::<_NETWORK_APP_INSTANCE_EA>(),
        20usize,
        concat!("Size of: ", stringify!(_NETWORK_APP_INSTANCE_EA))
    );
    assert_eq!(
        ::std::mem::align_of::<_NETWORK_APP_INSTANCE_EA>(),
        4usize,
        concat!("Alignment of ", stringify!(_NETWORK_APP_INSTANCE_EA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NETWORK_APP_INSTANCE_EA>())).AppInstanceID as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NETWORK_APP_INSTANCE_EA),
            "::",
            stringify!(AppInstanceID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NETWORK_APP_INSTANCE_EA>())).CsvFlags as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_NETWORK_APP_INSTANCE_EA),
            "::",
            stringify!(CsvFlags)
        )
    );
}
pub type NETWORK_APP_INSTANCE_EA = _NETWORK_APP_INSTANCE_EA;
pub type PNETWORK_APP_INSTANCE_EA = *mut _NETWORK_APP_INSTANCE_EA;
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_DEEP_SLEEP_ENABLED: GUID;
}
extern "C" {
    pub static GUID_DEEP_SLEEP_PLATFORM_STATE: 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_ADVANCED_COLOR_QUALITY_BIAS: 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_ADAPTIVE_INPUT_CONTROLLER_STATE: GUID;
}
extern "C" {
    pub static GUID_DISK_SUBGROUP: GUID;
}
extern "C" {
    pub static GUID_DISK_MAX_POWER: 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_USER_PRESENCE_PREDICTION: GUID;
}
extern "C" {
    pub static GUID_STANDBY_BUDGET_GRACE_PERIOD: GUID;
}
extern "C" {
    pub static GUID_STANDBY_BUDGET_PERCENT: GUID;
}
extern "C" {
    pub static GUID_STANDBY_RESERVE_GRACE_PERIOD: GUID;
}
extern "C" {
    pub static GUID_STANDBY_RESERVE_TIME: GUID;
}
extern "C" {
    pub static GUID_STANDBY_RESET_PERCENT: GUID;
}
extern "C" {
    pub static GUID_ALLOW_STANDBY_STATES: GUID;
}
extern "C" {
    pub static GUID_ALLOW_RTC_WAKE: GUID;
}
extern "C" {
    pub static GUID_LEGACY_RTC_MITIGATION: GUID;
}
extern "C" {
    pub static GUID_ALLOW_SYSTEM_REQUIRED: GUID;
}
extern "C" {
    pub static GUID_POWER_SAVING_STATUS: GUID;
}
extern "C" {
    pub static GUID_ENERGY_SAVER_SUBGROUP: GUID;
}
extern "C" {
    pub static GUID_ENERGY_SAVER_BATTERY_THRESHOLD: GUID;
}
extern "C" {
    pub static GUID_ENERGY_SAVER_BRIGHTNESS: GUID;
}
extern "C" {
    pub static GUID_ENERGY_SAVER_POLICY: 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_MAXIMUM_1: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_THROTTLE_MINIMUM: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_THROTTLE_MINIMUM_1: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_FREQUENCY_LIMIT: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_FREQUENCY_LIMIT_1: 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_INCREASE_THRESHOLD_1: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERF_DECREASE_THRESHOLD: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERF_DECREASE_THRESHOLD_1: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERF_INCREASE_POLICY: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERF_INCREASE_POLICY_1: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERF_DECREASE_POLICY: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERF_DECREASE_POLICY_1: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERF_INCREASE_TIME: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERF_INCREASE_TIME_1: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERF_DECREASE_TIME: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERF_DECREASE_TIME_1: 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_PERF_AUTONOMOUS_MODE: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERF_ENERGY_PERFORMANCE_PREFERENCE: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERF_ENERGY_PERFORMANCE_PREFERENCE_1: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERF_AUTONOMOUS_ACTIVITY_WINDOW: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_DUTY_CYCLING: 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_MAX_CORES_1: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_CORE_PARKING_MIN_CORES: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_CORE_PARKING_MIN_CORES_1: 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_PERF_STATE_1: 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_PARKING_DISTRIBUTION_THRESHOLD: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERF_HISTORY: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERF_HISTORY_1: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERF_INCREASE_HISTORY: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERF_DECREASE_HISTORY: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERF_CORE_PARKING_HISTORY: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERF_LATENCY_HINT: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERF_LATENCY_HINT_PERF: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_PERF_LATENCY_HINT_PERF_1: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_LATENCY_HINT_MIN_UNPARK: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_LATENCY_HINT_MIN_UNPARK_1: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_DISTRIBUTE_UTILITY: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_HETEROGENEOUS_POLICY: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_HETERO_DECREASE_TIME: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_HETERO_INCREASE_TIME: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_HETERO_DECREASE_THRESHOLD: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_HETERO_INCREASE_THRESHOLD: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_CLASS0_FLOOR_PERF: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_CLASS1_INITIAL_PERF: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_THREAD_SCHEDULING_POLICY: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_SHORT_THREAD_SCHEDULING_POLICY: GUID;
}
extern "C" {
    pub static GUID_SYSTEM_COOLING_POLICY: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_RESPONSIVENESS_DISABLE_THRESHOLD: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_RESPONSIVENESS_DISABLE_THRESHOLD_1: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_RESPONSIVENESS_ENABLE_THRESHOLD: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_RESPONSIVENESS_ENABLE_THRESHOLD_1: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_RESPONSIVENESS_DISABLE_TIME: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_RESPONSIVENESS_DISABLE_TIME_1: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_RESPONSIVENESS_ENABLE_TIME: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_RESPONSIVENESS_ENABLE_TIME_1: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_RESPONSIVENESS_EPP_CEILING: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_RESPONSIVENESS_EPP_CEILING_1: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_RESPONSIVENESS_PERF_FLOOR: GUID;
}
extern "C" {
    pub static GUID_PROCESSOR_RESPONSIVENESS_PERF_FLOOR_1: 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_CONNECTIVITY_IN_STANDBY: GUID;
}
extern "C" {
    pub static GUID_DISCONNECTED_STANDBY_MODE: 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_BATTERY_COUNT: 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;
}
extern "C" {
    pub static GUID_INTSTEER_SUBGROUP: GUID;
}
extern "C" {
    pub static GUID_INTSTEER_MODE: GUID;
}
extern "C" {
    pub static GUID_INTSTEER_LOAD_PER_PROC_TRIGGER: GUID;
}
extern "C" {
    pub static GUID_INTSTEER_TIME_UNPARK_TRIGGER: GUID;
}
extern "C" {
    pub static GUID_GRAPHICS_SUBGROUP: GUID;
}
extern "C" {
    pub static GUID_GPU_PREFERENCE_POLICY: GUID;
}
extern "C" {
    pub static GUID_MIXED_REALITY_MODE: GUID;
}
extern "C" {
    pub static GUID_SPR_ACTIVE_SESSION_CHANGE: 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 = ::std::os::raw::c_int;
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 const POWER_ACTION_PowerActionDisplayOff: POWER_ACTION = 8;
pub type POWER_ACTION = ::std::os::raw::c_int;
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 = ::std::os::raw::c_int;
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 = ::std::os::raw::c_int;
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 = ::std::os::raw::c_int;
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 = ::std::os::raw::c_int;
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 = ::std::os::raw::c_int;
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,
}
#[test]
fn bindgen_test_layout_CM_Power_Data_s() {
    assert_eq!(
        ::std::mem::size_of::<CM_Power_Data_s>(),
        56usize,
        concat!("Size of: ", stringify!(CM_Power_Data_s))
    );
    assert_eq!(
        ::std::mem::align_of::<CM_Power_Data_s>(),
        4usize,
        concat!("Alignment of ", stringify!(CM_Power_Data_s))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<CM_Power_Data_s>())).PD_Size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(CM_Power_Data_s),
            "::",
            stringify!(PD_Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<CM_Power_Data_s>())).PD_MostRecentPowerState as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(CM_Power_Data_s),
            "::",
            stringify!(PD_MostRecentPowerState)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<CM_Power_Data_s>())).PD_Capabilities as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(CM_Power_Data_s),
            "::",
            stringify!(PD_Capabilities)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<CM_Power_Data_s>())).PD_D1Latency as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(CM_Power_Data_s),
            "::",
            stringify!(PD_D1Latency)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<CM_Power_Data_s>())).PD_D2Latency as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(CM_Power_Data_s),
            "::",
            stringify!(PD_D2Latency)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<CM_Power_Data_s>())).PD_D3Latency as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(CM_Power_Data_s),
            "::",
            stringify!(PD_D3Latency)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<CM_Power_Data_s>())).PD_PowerStateMapping as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(CM_Power_Data_s),
            "::",
            stringify!(PD_PowerStateMapping)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<CM_Power_Data_s>())).PD_DeepestSystemWake as *const _ as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(CM_Power_Data_s),
            "::",
            stringify!(PD_DeepestSystemWake)
        )
    );
}
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_RegisterSpmPowerSettings: POWER_INFORMATION_LEVEL = 79;
pub const POWER_INFORMATION_LEVEL_PlatformIdleStates: POWER_INFORMATION_LEVEL = 80;
pub const POWER_INFORMATION_LEVEL_ProcessorIdleVeto: POWER_INFORMATION_LEVEL = 81;
pub const POWER_INFORMATION_LEVEL_PlatformIdleVeto: POWER_INFORMATION_LEVEL = 82;
pub const POWER_INFORMATION_LEVEL_SystemBatteryStatePrecise: POWER_INFORMATION_LEVEL = 83;
pub const POWER_INFORMATION_LEVEL_ThermalEvent: POWER_INFORMATION_LEVEL = 84;
pub const POWER_INFORMATION_LEVEL_PowerRequestActionInternal: POWER_INFORMATION_LEVEL = 85;
pub const POWER_INFORMATION_LEVEL_BatteryDeviceState: POWER_INFORMATION_LEVEL = 86;
pub const POWER_INFORMATION_LEVEL_PowerInformationInternal: POWER_INFORMATION_LEVEL = 87;
pub const POWER_INFORMATION_LEVEL_ThermalStandby: POWER_INFORMATION_LEVEL = 88;
pub const POWER_INFORMATION_LEVEL_SystemHiberFileType: POWER_INFORMATION_LEVEL = 89;
pub const POWER_INFORMATION_LEVEL_PhysicalPowerButtonPress: POWER_INFORMATION_LEVEL = 90;
pub const POWER_INFORMATION_LEVEL_QueryPotentialDripsConstraint: POWER_INFORMATION_LEVEL = 91;
pub const POWER_INFORMATION_LEVEL_EnergyTrackerCreate: POWER_INFORMATION_LEVEL = 92;
pub const POWER_INFORMATION_LEVEL_EnergyTrackerQuery: POWER_INFORMATION_LEVEL = 93;
pub const POWER_INFORMATION_LEVEL_UpdateBlackBoxRecorder: POWER_INFORMATION_LEVEL = 94;
pub const POWER_INFORMATION_LEVEL_PowerInformationLevelMaximum: POWER_INFORMATION_LEVEL = 95;
pub type POWER_INFORMATION_LEVEL = ::std::os::raw::c_int;
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 = ::std::os::raw::c_int;
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,
}
#[test]
fn bindgen_test_layout__POWER_USER_PRESENCE() {
    assert_eq!(
        ::std::mem::size_of::<_POWER_USER_PRESENCE>(),
        4usize,
        concat!("Size of: ", stringify!(_POWER_USER_PRESENCE))
    );
    assert_eq!(
        ::std::mem::align_of::<_POWER_USER_PRESENCE>(),
        4usize,
        concat!("Alignment of ", stringify!(_POWER_USER_PRESENCE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_POWER_USER_PRESENCE>())).UserPresence as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_POWER_USER_PRESENCE),
            "::",
            stringify!(UserPresence)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__POWER_SESSION_CONNECT() {
    assert_eq!(
        ::std::mem::size_of::<_POWER_SESSION_CONNECT>(),
        2usize,
        concat!("Size of: ", stringify!(_POWER_SESSION_CONNECT))
    );
    assert_eq!(
        ::std::mem::align_of::<_POWER_SESSION_CONNECT>(),
        1usize,
        concat!("Alignment of ", stringify!(_POWER_SESSION_CONNECT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_POWER_SESSION_CONNECT>())).Connected as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_POWER_SESSION_CONNECT),
            "::",
            stringify!(Connected)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_POWER_SESSION_CONNECT>())).Console as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_POWER_SESSION_CONNECT),
            "::",
            stringify!(Console)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__POWER_SESSION_TIMEOUTS() {
    assert_eq!(
        ::std::mem::size_of::<_POWER_SESSION_TIMEOUTS>(),
        8usize,
        concat!("Size of: ", stringify!(_POWER_SESSION_TIMEOUTS))
    );
    assert_eq!(
        ::std::mem::align_of::<_POWER_SESSION_TIMEOUTS>(),
        4usize,
        concat!("Alignment of ", stringify!(_POWER_SESSION_TIMEOUTS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_POWER_SESSION_TIMEOUTS>())).InputTimeout as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_POWER_SESSION_TIMEOUTS),
            "::",
            stringify!(InputTimeout)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_POWER_SESSION_TIMEOUTS>())).DisplayTimeout as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_POWER_SESSION_TIMEOUTS),
            "::",
            stringify!(DisplayTimeout)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__POWER_SESSION_RIT_STATE() {
    assert_eq!(
        ::std::mem::size_of::<_POWER_SESSION_RIT_STATE>(),
        8usize,
        concat!("Size of: ", stringify!(_POWER_SESSION_RIT_STATE))
    );
    assert_eq!(
        ::std::mem::align_of::<_POWER_SESSION_RIT_STATE>(),
        4usize,
        concat!("Alignment of ", stringify!(_POWER_SESSION_RIT_STATE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_POWER_SESSION_RIT_STATE>())).Active as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_POWER_SESSION_RIT_STATE),
            "::",
            stringify!(Active)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_POWER_SESSION_RIT_STATE>())).LastInputTime as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_POWER_SESSION_RIT_STATE),
            "::",
            stringify!(LastInputTime)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__POWER_SESSION_WINLOGON() {
    assert_eq!(
        ::std::mem::size_of::<_POWER_SESSION_WINLOGON>(),
        8usize,
        concat!("Size of: ", stringify!(_POWER_SESSION_WINLOGON))
    );
    assert_eq!(
        ::std::mem::align_of::<_POWER_SESSION_WINLOGON>(),
        4usize,
        concat!("Alignment of ", stringify!(_POWER_SESSION_WINLOGON))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_POWER_SESSION_WINLOGON>())).SessionId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_POWER_SESSION_WINLOGON),
            "::",
            stringify!(SessionId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_POWER_SESSION_WINLOGON>())).Console as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_POWER_SESSION_WINLOGON),
            "::",
            stringify!(Console)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_POWER_SESSION_WINLOGON>())).Locked as *const _ as usize },
        5usize,
        concat!(
            "Offset of field: ",
            stringify!(_POWER_SESSION_WINLOGON),
            "::",
            stringify!(Locked)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__POWER_IDLE_RESILIENCY() {
    assert_eq!(
        ::std::mem::size_of::<_POWER_IDLE_RESILIENCY>(),
        8usize,
        concat!("Size of: ", stringify!(_POWER_IDLE_RESILIENCY))
    );
    assert_eq!(
        ::std::mem::align_of::<_POWER_IDLE_RESILIENCY>(),
        4usize,
        concat!("Alignment of ", stringify!(_POWER_IDLE_RESILIENCY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_POWER_IDLE_RESILIENCY>())).CoalescingTimeout as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_POWER_IDLE_RESILIENCY),
            "::",
            stringify!(CoalescingTimeout)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_POWER_IDLE_RESILIENCY>())).IdleResiliencyPeriod as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_POWER_IDLE_RESILIENCY),
            "::",
            stringify!(IdleResiliencyPeriod)
        )
    );
}
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_MonitorRequestReasonSleepButton:
    POWER_MONITOR_REQUEST_REASON = 14;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonLid: POWER_MONITOR_REQUEST_REASON = 15;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonBatteryCountChange:
    POWER_MONITOR_REQUEST_REASON = 16;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonGracePeriod:
    POWER_MONITOR_REQUEST_REASON = 17;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonPnP: POWER_MONITOR_REQUEST_REASON = 18;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonDP: POWER_MONITOR_REQUEST_REASON = 19;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonSxTransition:
    POWER_MONITOR_REQUEST_REASON = 20;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonSystemIdle:
    POWER_MONITOR_REQUEST_REASON = 21;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonNearProximity:
    POWER_MONITOR_REQUEST_REASON = 22;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonThermalStandby:
    POWER_MONITOR_REQUEST_REASON = 23;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonResumePdc: POWER_MONITOR_REQUEST_REASON =
    24;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonResumeS4: POWER_MONITOR_REQUEST_REASON =
    25;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonTerminal: POWER_MONITOR_REQUEST_REASON =
    26;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonPdcSignal: POWER_MONITOR_REQUEST_REASON =
    27;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonAcDcDisplayBurstSuppressed:
    POWER_MONITOR_REQUEST_REASON = 28;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonSystemStateEntered:
    POWER_MONITOR_REQUEST_REASON = 29;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonWinrt: POWER_MONITOR_REQUEST_REASON = 30;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonUserInputKeyboard:
    POWER_MONITOR_REQUEST_REASON = 31;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonUserInputMouse:
    POWER_MONITOR_REQUEST_REASON = 32;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonUserInputTouch:
    POWER_MONITOR_REQUEST_REASON = 33;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonUserInputPen:
    POWER_MONITOR_REQUEST_REASON = 34;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonUserInputAccelerometer:
    POWER_MONITOR_REQUEST_REASON = 35;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonUserInputHid:
    POWER_MONITOR_REQUEST_REASON = 36;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonUserInputPoUserPresent:
    POWER_MONITOR_REQUEST_REASON = 37;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonUserInputSessionSwitch:
    POWER_MONITOR_REQUEST_REASON = 38;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonUserInputInitialization:
    POWER_MONITOR_REQUEST_REASON = 39;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonPdcSignalWindowsMobilePwrNotif:
    POWER_MONITOR_REQUEST_REASON = 40;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonPdcSignalWindowsMobileShell:
    POWER_MONITOR_REQUEST_REASON = 41;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonPdcSignalHeyCortana:
    POWER_MONITOR_REQUEST_REASON = 42;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonPdcSignalHolographicShell:
    POWER_MONITOR_REQUEST_REASON = 43;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonPdcSignalFingerprint:
    POWER_MONITOR_REQUEST_REASON = 44;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonDirectedDrips:
    POWER_MONITOR_REQUEST_REASON = 45;
pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonMax: POWER_MONITOR_REQUEST_REASON = 46;
pub type POWER_MONITOR_REQUEST_REASON = ::std::os::raw::c_int;
pub const _POWER_MONITOR_REQUEST_TYPE_MonitorRequestTypeOff: _POWER_MONITOR_REQUEST_TYPE = 0;
pub const _POWER_MONITOR_REQUEST_TYPE_MonitorRequestTypeOnAndPresent: _POWER_MONITOR_REQUEST_TYPE =
    1;
pub const _POWER_MONITOR_REQUEST_TYPE_MonitorRequestTypeToggleOn: _POWER_MONITOR_REQUEST_TYPE = 2;
pub type _POWER_MONITOR_REQUEST_TYPE = ::std::os::raw::c_int;
pub use self::_POWER_MONITOR_REQUEST_TYPE as POWER_MONITOR_REQUEST_TYPE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _POWER_MONITOR_INVOCATION {
    pub Console: BOOLEAN,
    pub RequestReason: POWER_MONITOR_REQUEST_REASON,
}
#[test]
fn bindgen_test_layout__POWER_MONITOR_INVOCATION() {
    assert_eq!(
        ::std::mem::size_of::<_POWER_MONITOR_INVOCATION>(),
        8usize,
        concat!("Size of: ", stringify!(_POWER_MONITOR_INVOCATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_POWER_MONITOR_INVOCATION>(),
        4usize,
        concat!("Alignment of ", stringify!(_POWER_MONITOR_INVOCATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_POWER_MONITOR_INVOCATION>())).Console as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_POWER_MONITOR_INVOCATION),
            "::",
            stringify!(Console)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_POWER_MONITOR_INVOCATION>())).RequestReason as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_POWER_MONITOR_INVOCATION),
            "::",
            stringify!(RequestReason)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__RESUME_PERFORMANCE() {
    assert_eq!(
        ::std::mem::size_of::<_RESUME_PERFORMANCE>(),
        24usize,
        concat!("Size of: ", stringify!(_RESUME_PERFORMANCE))
    );
    assert_eq!(
        ::std::mem::align_of::<_RESUME_PERFORMANCE>(),
        8usize,
        concat!("Alignment of ", stringify!(_RESUME_PERFORMANCE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RESUME_PERFORMANCE>())).PostTimeMs as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RESUME_PERFORMANCE),
            "::",
            stringify!(PostTimeMs)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RESUME_PERFORMANCE>())).TotalResumeTimeMs as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RESUME_PERFORMANCE),
            "::",
            stringify!(TotalResumeTimeMs)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RESUME_PERFORMANCE>())).ResumeCompleteTimestamp as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_RESUME_PERFORMANCE),
            "::",
            stringify!(ResumeCompleteTimestamp)
        )
    );
}
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 = ::std::os::raw::c_int;
#[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],
}
#[test]
fn bindgen_test_layout_SET_POWER_SETTING_VALUE() {
    assert_eq!(
        ::std::mem::size_of::<SET_POWER_SETTING_VALUE>(),
        32usize,
        concat!("Size of: ", stringify!(SET_POWER_SETTING_VALUE))
    );
    assert_eq!(
        ::std::mem::align_of::<SET_POWER_SETTING_VALUE>(),
        4usize,
        concat!("Alignment of ", stringify!(SET_POWER_SETTING_VALUE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SET_POWER_SETTING_VALUE>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(SET_POWER_SETTING_VALUE),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SET_POWER_SETTING_VALUE>())).Guid as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(SET_POWER_SETTING_VALUE),
            "::",
            stringify!(Guid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SET_POWER_SETTING_VALUE>())).PowerCondition as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(SET_POWER_SETTING_VALUE),
            "::",
            stringify!(PowerCondition)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SET_POWER_SETTING_VALUE>())).DataLength as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(SET_POWER_SETTING_VALUE),
            "::",
            stringify!(DataLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SET_POWER_SETTING_VALUE>())).Data as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(SET_POWER_SETTING_VALUE),
            "::",
            stringify!(Data)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_NOTIFY_USER_POWER_SETTING() {
    assert_eq!(
        ::std::mem::size_of::<NOTIFY_USER_POWER_SETTING>(),
        16usize,
        concat!("Size of: ", stringify!(NOTIFY_USER_POWER_SETTING))
    );
    assert_eq!(
        ::std::mem::align_of::<NOTIFY_USER_POWER_SETTING>(),
        4usize,
        concat!("Alignment of ", stringify!(NOTIFY_USER_POWER_SETTING))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<NOTIFY_USER_POWER_SETTING>())).Guid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(NOTIFY_USER_POWER_SETTING),
            "::",
            stringify!(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,
}
#[test]
fn bindgen_test_layout__APPLICATIONLAUNCH_SETTING_VALUE() {
    assert_eq!(
        ::std::mem::size_of::<_APPLICATIONLAUNCH_SETTING_VALUE>(),
        16usize,
        concat!("Size of: ", stringify!(_APPLICATIONLAUNCH_SETTING_VALUE))
    );
    assert_eq!(
        ::std::mem::align_of::<_APPLICATIONLAUNCH_SETTING_VALUE>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_APPLICATIONLAUNCH_SETTING_VALUE)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_APPLICATIONLAUNCH_SETTING_VALUE>())).ActivationTime as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_APPLICATIONLAUNCH_SETTING_VALUE),
            "::",
            stringify!(ActivationTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_APPLICATIONLAUNCH_SETTING_VALUE>())).Flags as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_APPLICATIONLAUNCH_SETTING_VALUE),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_APPLICATIONLAUNCH_SETTING_VALUE>())).ButtonInstanceID
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_APPLICATIONLAUNCH_SETTING_VALUE),
            "::",
            stringify!(ButtonInstanceID)
        )
    );
}
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 = ::std::os::raw::c_int;
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,
}
#[test]
fn bindgen_test_layout__POWER_PLATFORM_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_POWER_PLATFORM_INFORMATION>(),
        1usize,
        concat!("Size of: ", stringify!(_POWER_PLATFORM_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_POWER_PLATFORM_INFORMATION>(),
        1usize,
        concat!("Alignment of ", stringify!(_POWER_PLATFORM_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_POWER_PLATFORM_INFORMATION>())).AoAc as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_POWER_PLATFORM_INFORMATION),
            "::",
            stringify!(AoAc)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_BATTERY_REPORTING_SCALE() {
    assert_eq!(
        ::std::mem::size_of::<BATTERY_REPORTING_SCALE>(),
        8usize,
        concat!("Size of: ", stringify!(BATTERY_REPORTING_SCALE))
    );
    assert_eq!(
        ::std::mem::align_of::<BATTERY_REPORTING_SCALE>(),
        4usize,
        concat!("Alignment of ", stringify!(BATTERY_REPORTING_SCALE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<BATTERY_REPORTING_SCALE>())).Granularity as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(BATTERY_REPORTING_SCALE),
            "::",
            stringify!(Granularity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<BATTERY_REPORTING_SCALE>())).Capacity as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(BATTERY_REPORTING_SCALE),
            "::",
            stringify!(Capacity)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_PPM_WMI_LEGACY_PERFSTATE() {
    assert_eq!(
        ::std::mem::size_of::<PPM_WMI_LEGACY_PERFSTATE>(),
        12usize,
        concat!("Size of: ", stringify!(PPM_WMI_LEGACY_PERFSTATE))
    );
    assert_eq!(
        ::std::mem::align_of::<PPM_WMI_LEGACY_PERFSTATE>(),
        4usize,
        concat!("Alignment of ", stringify!(PPM_WMI_LEGACY_PERFSTATE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_LEGACY_PERFSTATE>())).Frequency as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_LEGACY_PERFSTATE),
            "::",
            stringify!(Frequency)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_LEGACY_PERFSTATE>())).Flags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_LEGACY_PERFSTATE),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_LEGACY_PERFSTATE>())).PercentFrequency as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_LEGACY_PERFSTATE),
            "::",
            stringify!(PercentFrequency)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_PPM_WMI_IDLE_STATE() {
    assert_eq!(
        ::std::mem::size_of::<PPM_WMI_IDLE_STATE>(),
        32usize,
        concat!("Size of: ", stringify!(PPM_WMI_IDLE_STATE))
    );
    assert_eq!(
        ::std::mem::align_of::<PPM_WMI_IDLE_STATE>(),
        4usize,
        concat!("Alignment of ", stringify!(PPM_WMI_IDLE_STATE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_IDLE_STATE>())).Latency as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_IDLE_STATE),
            "::",
            stringify!(Latency)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_IDLE_STATE>())).Power as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_IDLE_STATE),
            "::",
            stringify!(Power)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_IDLE_STATE>())).TimeCheck as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_IDLE_STATE),
            "::",
            stringify!(TimeCheck)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_IDLE_STATE>())).PromotePercent as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_IDLE_STATE),
            "::",
            stringify!(PromotePercent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_IDLE_STATE>())).DemotePercent as *const _ as usize
        },
        13usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_IDLE_STATE),
            "::",
            stringify!(DemotePercent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_IDLE_STATE>())).StateType as *const _ as usize },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_IDLE_STATE),
            "::",
            stringify!(StateType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_IDLE_STATE>())).Reserved as *const _ as usize },
        15usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_IDLE_STATE),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_IDLE_STATE>())).StateFlags as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_IDLE_STATE),
            "::",
            stringify!(StateFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_IDLE_STATE>())).Context as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_IDLE_STATE),
            "::",
            stringify!(Context)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_IDLE_STATE>())).IdleHandler as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_IDLE_STATE),
            "::",
            stringify!(IdleHandler)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_IDLE_STATE>())).Reserved1 as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_IDLE_STATE),
            "::",
            stringify!(Reserved1)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_PPM_WMI_IDLE_STATES() {
    assert_eq!(
        ::std::mem::size_of::<PPM_WMI_IDLE_STATES>(),
        56usize,
        concat!("Size of: ", stringify!(PPM_WMI_IDLE_STATES))
    );
    assert_eq!(
        ::std::mem::align_of::<PPM_WMI_IDLE_STATES>(),
        8usize,
        concat!("Alignment of ", stringify!(PPM_WMI_IDLE_STATES))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_IDLE_STATES>())).Type as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_IDLE_STATES),
            "::",
            stringify!(Type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_IDLE_STATES>())).Count as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_IDLE_STATES),
            "::",
            stringify!(Count)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_IDLE_STATES>())).TargetState as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_IDLE_STATES),
            "::",
            stringify!(TargetState)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_IDLE_STATES>())).OldState as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_IDLE_STATES),
            "::",
            stringify!(OldState)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_IDLE_STATES>())).TargetProcessors as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_IDLE_STATES),
            "::",
            stringify!(TargetProcessors)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_IDLE_STATES>())).State as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_IDLE_STATES),
            "::",
            stringify!(State)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_PPM_WMI_IDLE_STATES_EX() {
    assert_eq!(
        ::std::mem::size_of::<PPM_WMI_IDLE_STATES_EX>(),
        56usize,
        concat!("Size of: ", stringify!(PPM_WMI_IDLE_STATES_EX))
    );
    assert_eq!(
        ::std::mem::align_of::<PPM_WMI_IDLE_STATES_EX>(),
        8usize,
        concat!("Alignment of ", stringify!(PPM_WMI_IDLE_STATES_EX))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_IDLE_STATES_EX>())).Type as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_IDLE_STATES_EX),
            "::",
            stringify!(Type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_IDLE_STATES_EX>())).Count as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_IDLE_STATES_EX),
            "::",
            stringify!(Count)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_IDLE_STATES_EX>())).TargetState as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_IDLE_STATES_EX),
            "::",
            stringify!(TargetState)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_IDLE_STATES_EX>())).OldState as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_IDLE_STATES_EX),
            "::",
            stringify!(OldState)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_IDLE_STATES_EX>())).TargetProcessors as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_IDLE_STATES_EX),
            "::",
            stringify!(TargetProcessors)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_IDLE_STATES_EX>())).State as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_IDLE_STATES_EX),
            "::",
            stringify!(State)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_PPM_WMI_PERF_STATE() {
    assert_eq!(
        ::std::mem::size_of::<PPM_WMI_PERF_STATE>(),
        64usize,
        concat!("Size of: ", stringify!(PPM_WMI_PERF_STATE))
    );
    assert_eq!(
        ::std::mem::align_of::<PPM_WMI_PERF_STATE>(),
        8usize,
        concat!("Alignment of ", stringify!(PPM_WMI_PERF_STATE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_PERF_STATE>())).Frequency as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATE),
            "::",
            stringify!(Frequency)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_PERF_STATE>())).Power as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATE),
            "::",
            stringify!(Power)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATE>())).PercentFrequency as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATE),
            "::",
            stringify!(PercentFrequency)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATE>())).IncreaseLevel as *const _ as usize
        },
        9usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATE),
            "::",
            stringify!(IncreaseLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATE>())).DecreaseLevel as *const _ as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATE),
            "::",
            stringify!(DecreaseLevel)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_PERF_STATE>())).Type as *const _ as usize },
        11usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATE),
            "::",
            stringify!(Type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_PERF_STATE>())).IncreaseTime as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATE),
            "::",
            stringify!(IncreaseTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_PERF_STATE>())).DecreaseTime as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATE),
            "::",
            stringify!(DecreaseTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_PERF_STATE>())).Control as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATE),
            "::",
            stringify!(Control)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_PERF_STATE>())).Status as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATE),
            "::",
            stringify!(Status)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_PERF_STATE>())).HitCount as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATE),
            "::",
            stringify!(HitCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_PERF_STATE>())).Reserved1 as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATE),
            "::",
            stringify!(Reserved1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_PERF_STATE>())).Reserved2 as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATE),
            "::",
            stringify!(Reserved2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_PERF_STATE>())).Reserved3 as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATE),
            "::",
            stringify!(Reserved3)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_PPM_WMI_PERF_STATES() {
    assert_eq!(
        ::std::mem::size_of::<PPM_WMI_PERF_STATES>(),
        144usize,
        concat!("Size of: ", stringify!(PPM_WMI_PERF_STATES))
    );
    assert_eq!(
        ::std::mem::align_of::<PPM_WMI_PERF_STATES>(),
        8usize,
        concat!("Alignment of ", stringify!(PPM_WMI_PERF_STATES))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_PERF_STATES>())).Count as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES),
            "::",
            stringify!(Count)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATES>())).MaxFrequency as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES),
            "::",
            stringify!(MaxFrequency)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATES>())).CurrentState as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES),
            "::",
            stringify!(CurrentState)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATES>())).MaxPerfState as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES),
            "::",
            stringify!(MaxPerfState)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATES>())).MinPerfState as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES),
            "::",
            stringify!(MinPerfState)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATES>())).LowestPerfState as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES),
            "::",
            stringify!(LowestPerfState)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATES>())).ThermalConstraint as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES),
            "::",
            stringify!(ThermalConstraint)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATES>())).BusyAdjThreshold as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES),
            "::",
            stringify!(BusyAdjThreshold)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_PERF_STATES>())).PolicyType as *const _ as usize },
        29usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES),
            "::",
            stringify!(PolicyType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_PERF_STATES>())).Type as *const _ as usize },
        30usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES),
            "::",
            stringify!(Type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_PERF_STATES>())).Reserved as *const _ as usize },
        31usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATES>())).TimerInterval as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES),
            "::",
            stringify!(TimerInterval)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATES>())).TargetProcessors as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES),
            "::",
            stringify!(TargetProcessors)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATES>())).PStateHandler as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES),
            "::",
            stringify!(PStateHandler)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATES>())).PStateContext as *const _ as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES),
            "::",
            stringify!(PStateContext)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATES>())).TStateHandler as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES),
            "::",
            stringify!(TStateHandler)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATES>())).TStateContext as *const _ as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES),
            "::",
            stringify!(TStateContext)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATES>())).FeedbackHandler as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES),
            "::",
            stringify!(FeedbackHandler)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_PERF_STATES>())).Reserved1 as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES),
            "::",
            stringify!(Reserved1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_PERF_STATES>())).Reserved2 as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES),
            "::",
            stringify!(Reserved2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_PERF_STATES>())).State as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES),
            "::",
            stringify!(State)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_PPM_WMI_PERF_STATES_EX() {
    assert_eq!(
        ::std::mem::size_of::<PPM_WMI_PERF_STATES_EX>(),
        144usize,
        concat!("Size of: ", stringify!(PPM_WMI_PERF_STATES_EX))
    );
    assert_eq!(
        ::std::mem::align_of::<PPM_WMI_PERF_STATES_EX>(),
        8usize,
        concat!("Alignment of ", stringify!(PPM_WMI_PERF_STATES_EX))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_PERF_STATES_EX>())).Count as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES_EX),
            "::",
            stringify!(Count)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATES_EX>())).MaxFrequency as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES_EX),
            "::",
            stringify!(MaxFrequency)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATES_EX>())).CurrentState as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES_EX),
            "::",
            stringify!(CurrentState)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATES_EX>())).MaxPerfState as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES_EX),
            "::",
            stringify!(MaxPerfState)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATES_EX>())).MinPerfState as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES_EX),
            "::",
            stringify!(MinPerfState)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATES_EX>())).LowestPerfState as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES_EX),
            "::",
            stringify!(LowestPerfState)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATES_EX>())).ThermalConstraint as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES_EX),
            "::",
            stringify!(ThermalConstraint)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATES_EX>())).BusyAdjThreshold as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES_EX),
            "::",
            stringify!(BusyAdjThreshold)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATES_EX>())).PolicyType as *const _ as usize
        },
        29usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES_EX),
            "::",
            stringify!(PolicyType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_PERF_STATES_EX>())).Type as *const _ as usize },
        30usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES_EX),
            "::",
            stringify!(Type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_PERF_STATES_EX>())).Reserved as *const _ as usize },
        31usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES_EX),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATES_EX>())).TimerInterval as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES_EX),
            "::",
            stringify!(TimerInterval)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATES_EX>())).TargetProcessors as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES_EX),
            "::",
            stringify!(TargetProcessors)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATES_EX>())).PStateHandler as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES_EX),
            "::",
            stringify!(PStateHandler)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATES_EX>())).PStateContext as *const _ as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES_EX),
            "::",
            stringify!(PStateContext)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATES_EX>())).TStateHandler as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES_EX),
            "::",
            stringify!(TStateHandler)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATES_EX>())).TStateContext as *const _ as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES_EX),
            "::",
            stringify!(TStateContext)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATES_EX>())).FeedbackHandler as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES_EX),
            "::",
            stringify!(FeedbackHandler)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATES_EX>())).Reserved1 as *const _ as usize
        },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES_EX),
            "::",
            stringify!(Reserved1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_WMI_PERF_STATES_EX>())).Reserved2 as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES_EX),
            "::",
            stringify!(Reserved2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_WMI_PERF_STATES_EX>())).State as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_WMI_PERF_STATES_EX),
            "::",
            stringify!(State)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_PPM_IDLE_STATE_ACCOUNTING() {
    assert_eq!(
        ::std::mem::size_of::<PPM_IDLE_STATE_ACCOUNTING>(),
        48usize,
        concat!("Size of: ", stringify!(PPM_IDLE_STATE_ACCOUNTING))
    );
    assert_eq!(
        ::std::mem::align_of::<PPM_IDLE_STATE_ACCOUNTING>(),
        8usize,
        concat!("Alignment of ", stringify!(PPM_IDLE_STATE_ACCOUNTING))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_IDLE_STATE_ACCOUNTING>())).IdleTransitions as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_IDLE_STATE_ACCOUNTING),
            "::",
            stringify!(IdleTransitions)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_IDLE_STATE_ACCOUNTING>())).FailedTransitions as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_IDLE_STATE_ACCOUNTING),
            "::",
            stringify!(FailedTransitions)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_IDLE_STATE_ACCOUNTING>())).InvalidBucketIndex as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_IDLE_STATE_ACCOUNTING),
            "::",
            stringify!(InvalidBucketIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_IDLE_STATE_ACCOUNTING>())).TotalTime as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_IDLE_STATE_ACCOUNTING),
            "::",
            stringify!(TotalTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_IDLE_STATE_ACCOUNTING>())).IdleTimeBuckets as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_IDLE_STATE_ACCOUNTING),
            "::",
            stringify!(IdleTimeBuckets)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_PPM_IDLE_ACCOUNTING() {
    assert_eq!(
        ::std::mem::size_of::<PPM_IDLE_ACCOUNTING>(),
        72usize,
        concat!("Size of: ", stringify!(PPM_IDLE_ACCOUNTING))
    );
    assert_eq!(
        ::std::mem::align_of::<PPM_IDLE_ACCOUNTING>(),
        8usize,
        concat!("Alignment of ", stringify!(PPM_IDLE_ACCOUNTING))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_IDLE_ACCOUNTING>())).StateCount as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_IDLE_ACCOUNTING),
            "::",
            stringify!(StateCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_IDLE_ACCOUNTING>())).TotalTransitions as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_IDLE_ACCOUNTING),
            "::",
            stringify!(TotalTransitions)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_IDLE_ACCOUNTING>())).ResetCount as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_IDLE_ACCOUNTING),
            "::",
            stringify!(ResetCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_IDLE_ACCOUNTING>())).StartTime as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_IDLE_ACCOUNTING),
            "::",
            stringify!(StartTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_IDLE_ACCOUNTING>())).State as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_IDLE_ACCOUNTING),
            "::",
            stringify!(State)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_PPM_IDLE_STATE_BUCKET_EX() {
    assert_eq!(
        ::std::mem::size_of::<PPM_IDLE_STATE_BUCKET_EX>(),
        24usize,
        concat!("Size of: ", stringify!(PPM_IDLE_STATE_BUCKET_EX))
    );
    assert_eq!(
        ::std::mem::align_of::<PPM_IDLE_STATE_BUCKET_EX>(),
        8usize,
        concat!("Alignment of ", stringify!(PPM_IDLE_STATE_BUCKET_EX))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_IDLE_STATE_BUCKET_EX>())).TotalTimeUs as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_IDLE_STATE_BUCKET_EX),
            "::",
            stringify!(TotalTimeUs)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_IDLE_STATE_BUCKET_EX>())).MinTimeUs as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_IDLE_STATE_BUCKET_EX),
            "::",
            stringify!(MinTimeUs)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_IDLE_STATE_BUCKET_EX>())).MaxTimeUs as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_IDLE_STATE_BUCKET_EX),
            "::",
            stringify!(MaxTimeUs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_IDLE_STATE_BUCKET_EX>())).Count as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_IDLE_STATE_BUCKET_EX),
            "::",
            stringify!(Count)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_PPM_IDLE_STATE_ACCOUNTING_EX() {
    assert_eq!(
        ::std::mem::size_of::<PPM_IDLE_STATE_ACCOUNTING_EX>(),
        416usize,
        concat!("Size of: ", stringify!(PPM_IDLE_STATE_ACCOUNTING_EX))
    );
    assert_eq!(
        ::std::mem::align_of::<PPM_IDLE_STATE_ACCOUNTING_EX>(),
        8usize,
        concat!("Alignment of ", stringify!(PPM_IDLE_STATE_ACCOUNTING_EX))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_IDLE_STATE_ACCOUNTING_EX>())).TotalTime as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_IDLE_STATE_ACCOUNTING_EX),
            "::",
            stringify!(TotalTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_IDLE_STATE_ACCOUNTING_EX>())).IdleTransitions as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_IDLE_STATE_ACCOUNTING_EX),
            "::",
            stringify!(IdleTransitions)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_IDLE_STATE_ACCOUNTING_EX>())).FailedTransitions as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_IDLE_STATE_ACCOUNTING_EX),
            "::",
            stringify!(FailedTransitions)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_IDLE_STATE_ACCOUNTING_EX>())).InvalidBucketIndex as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_IDLE_STATE_ACCOUNTING_EX),
            "::",
            stringify!(InvalidBucketIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_IDLE_STATE_ACCOUNTING_EX>())).MinTimeUs as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_IDLE_STATE_ACCOUNTING_EX),
            "::",
            stringify!(MinTimeUs)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_IDLE_STATE_ACCOUNTING_EX>())).MaxTimeUs as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_IDLE_STATE_ACCOUNTING_EX),
            "::",
            stringify!(MaxTimeUs)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_IDLE_STATE_ACCOUNTING_EX>())).CancelledTransitions
                as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_IDLE_STATE_ACCOUNTING_EX),
            "::",
            stringify!(CancelledTransitions)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_IDLE_STATE_ACCOUNTING_EX>())).IdleTimeBuckets as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_IDLE_STATE_ACCOUNTING_EX),
            "::",
            stringify!(IdleTimeBuckets)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_PPM_IDLE_ACCOUNTING_EX() {
    assert_eq!(
        ::std::mem::size_of::<PPM_IDLE_ACCOUNTING_EX>(),
        440usize,
        concat!("Size of: ", stringify!(PPM_IDLE_ACCOUNTING_EX))
    );
    assert_eq!(
        ::std::mem::align_of::<PPM_IDLE_ACCOUNTING_EX>(),
        8usize,
        concat!("Alignment of ", stringify!(PPM_IDLE_ACCOUNTING_EX))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_IDLE_ACCOUNTING_EX>())).StateCount as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_IDLE_ACCOUNTING_EX),
            "::",
            stringify!(StateCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_IDLE_ACCOUNTING_EX>())).TotalTransitions as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_IDLE_ACCOUNTING_EX),
            "::",
            stringify!(TotalTransitions)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_IDLE_ACCOUNTING_EX>())).ResetCount as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_IDLE_ACCOUNTING_EX),
            "::",
            stringify!(ResetCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_IDLE_ACCOUNTING_EX>())).AbortCount as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_IDLE_ACCOUNTING_EX),
            "::",
            stringify!(AbortCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_IDLE_ACCOUNTING_EX>())).StartTime as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_IDLE_ACCOUNTING_EX),
            "::",
            stringify!(StartTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_IDLE_ACCOUNTING_EX>())).State as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_IDLE_ACCOUNTING_EX),
            "::",
            stringify!(State)
        )
    );
}
pub type PPPM_IDLE_ACCOUNTING_EX = *mut PPM_IDLE_ACCOUNTING_EX;
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 PPM_PERFSTATE_EVENT {
    pub State: DWORD,
    pub Status: DWORD,
    pub Latency: DWORD,
    pub Speed: DWORD,
    pub Processor: DWORD,
}
#[test]
fn bindgen_test_layout_PPM_PERFSTATE_EVENT() {
    assert_eq!(
        ::std::mem::size_of::<PPM_PERFSTATE_EVENT>(),
        20usize,
        concat!("Size of: ", stringify!(PPM_PERFSTATE_EVENT))
    );
    assert_eq!(
        ::std::mem::align_of::<PPM_PERFSTATE_EVENT>(),
        4usize,
        concat!("Alignment of ", stringify!(PPM_PERFSTATE_EVENT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_PERFSTATE_EVENT>())).State as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_PERFSTATE_EVENT),
            "::",
            stringify!(State)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_PERFSTATE_EVENT>())).Status as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_PERFSTATE_EVENT),
            "::",
            stringify!(Status)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_PERFSTATE_EVENT>())).Latency as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_PERFSTATE_EVENT),
            "::",
            stringify!(Latency)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_PERFSTATE_EVENT>())).Speed as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_PERFSTATE_EVENT),
            "::",
            stringify!(Speed)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_PERFSTATE_EVENT>())).Processor as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_PERFSTATE_EVENT),
            "::",
            stringify!(Processor)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_PPM_PERFSTATE_DOMAIN_EVENT() {
    assert_eq!(
        ::std::mem::size_of::<PPM_PERFSTATE_DOMAIN_EVENT>(),
        24usize,
        concat!("Size of: ", stringify!(PPM_PERFSTATE_DOMAIN_EVENT))
    );
    assert_eq!(
        ::std::mem::align_of::<PPM_PERFSTATE_DOMAIN_EVENT>(),
        8usize,
        concat!("Alignment of ", stringify!(PPM_PERFSTATE_DOMAIN_EVENT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_PERFSTATE_DOMAIN_EVENT>())).State as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_PERFSTATE_DOMAIN_EVENT),
            "::",
            stringify!(State)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_PERFSTATE_DOMAIN_EVENT>())).Latency as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_PERFSTATE_DOMAIN_EVENT),
            "::",
            stringify!(Latency)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_PERFSTATE_DOMAIN_EVENT>())).Speed as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_PERFSTATE_DOMAIN_EVENT),
            "::",
            stringify!(Speed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_PERFSTATE_DOMAIN_EVENT>())).Processors as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_PERFSTATE_DOMAIN_EVENT),
            "::",
            stringify!(Processors)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_PPM_IDLESTATE_EVENT() {
    assert_eq!(
        ::std::mem::size_of::<PPM_IDLESTATE_EVENT>(),
        16usize,
        concat!("Size of: ", stringify!(PPM_IDLESTATE_EVENT))
    );
    assert_eq!(
        ::std::mem::align_of::<PPM_IDLESTATE_EVENT>(),
        8usize,
        concat!("Alignment of ", stringify!(PPM_IDLESTATE_EVENT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_IDLESTATE_EVENT>())).NewState as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_IDLESTATE_EVENT),
            "::",
            stringify!(NewState)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_IDLESTATE_EVENT>())).OldState as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_IDLESTATE_EVENT),
            "::",
            stringify!(OldState)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_IDLESTATE_EVENT>())).Processors as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_IDLESTATE_EVENT),
            "::",
            stringify!(Processors)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_PPM_THERMALCHANGE_EVENT() {
    assert_eq!(
        ::std::mem::size_of::<PPM_THERMALCHANGE_EVENT>(),
        16usize,
        concat!("Size of: ", stringify!(PPM_THERMALCHANGE_EVENT))
    );
    assert_eq!(
        ::std::mem::align_of::<PPM_THERMALCHANGE_EVENT>(),
        8usize,
        concat!("Alignment of ", stringify!(PPM_THERMALCHANGE_EVENT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_THERMALCHANGE_EVENT>())).ThermalConstraint as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_THERMALCHANGE_EVENT),
            "::",
            stringify!(ThermalConstraint)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_THERMALCHANGE_EVENT>())).Processors as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_THERMALCHANGE_EVENT),
            "::",
            stringify!(Processors)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_PPM_THERMAL_POLICY_EVENT() {
    assert_eq!(
        ::std::mem::size_of::<PPM_THERMAL_POLICY_EVENT>(),
        16usize,
        concat!("Size of: ", stringify!(PPM_THERMAL_POLICY_EVENT))
    );
    assert_eq!(
        ::std::mem::align_of::<PPM_THERMAL_POLICY_EVENT>(),
        8usize,
        concat!("Alignment of ", stringify!(PPM_THERMAL_POLICY_EVENT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PPM_THERMAL_POLICY_EVENT>())).Mode as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_THERMAL_POLICY_EVENT),
            "::",
            stringify!(Mode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PPM_THERMAL_POLICY_EVENT>())).Processors as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(PPM_THERMAL_POLICY_EVENT),
            "::",
            stringify!(Processors)
        )
    );
}
pub type PPPM_THERMAL_POLICY_EVENT = *mut PPM_THERMAL_POLICY_EVENT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct POWER_ACTION_POLICY {
    pub Action: POWER_ACTION,
    pub Flags: DWORD,
    pub EventCode: DWORD,
}
#[test]
fn bindgen_test_layout_POWER_ACTION_POLICY() {
    assert_eq!(
        ::std::mem::size_of::<POWER_ACTION_POLICY>(),
        12usize,
        concat!("Size of: ", stringify!(POWER_ACTION_POLICY))
    );
    assert_eq!(
        ::std::mem::align_of::<POWER_ACTION_POLICY>(),
        4usize,
        concat!("Alignment of ", stringify!(POWER_ACTION_POLICY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<POWER_ACTION_POLICY>())).Action as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(POWER_ACTION_POLICY),
            "::",
            stringify!(Action)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<POWER_ACTION_POLICY>())).Flags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(POWER_ACTION_POLICY),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<POWER_ACTION_POLICY>())).EventCode as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(POWER_ACTION_POLICY),
            "::",
            stringify!(EventCode)
        )
    );
}
pub type PPOWER_ACTION_POLICY = *mut POWER_ACTION_POLICY;
#[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,
}
#[test]
fn bindgen_test_layout_SYSTEM_POWER_LEVEL() {
    assert_eq!(
        ::std::mem::size_of::<SYSTEM_POWER_LEVEL>(),
        24usize,
        concat!("Size of: ", stringify!(SYSTEM_POWER_LEVEL))
    );
    assert_eq!(
        ::std::mem::align_of::<SYSTEM_POWER_LEVEL>(),
        4usize,
        concat!("Alignment of ", stringify!(SYSTEM_POWER_LEVEL))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SYSTEM_POWER_LEVEL>())).Enable as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_LEVEL),
            "::",
            stringify!(Enable)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SYSTEM_POWER_LEVEL>())).Spare as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_LEVEL),
            "::",
            stringify!(Spare)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SYSTEM_POWER_LEVEL>())).BatteryLevel as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_LEVEL),
            "::",
            stringify!(BatteryLevel)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SYSTEM_POWER_LEVEL>())).PowerPolicy as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_LEVEL),
            "::",
            stringify!(PowerPolicy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_LEVEL>())).MinSystemState as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_LEVEL),
            "::",
            stringify!(MinSystemState)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__SYSTEM_POWER_POLICY() {
    assert_eq!(
        ::std::mem::size_of::<_SYSTEM_POWER_POLICY>(),
        232usize,
        concat!("Size of: ", stringify!(_SYSTEM_POWER_POLICY))
    );
    assert_eq!(
        ::std::mem::align_of::<_SYSTEM_POWER_POLICY>(),
        4usize,
        concat!("Alignment of ", stringify!(_SYSTEM_POWER_POLICY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEM_POWER_POLICY>())).Revision as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_POLICY),
            "::",
            stringify!(Revision)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_POWER_POLICY>())).PowerButton as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_POLICY),
            "::",
            stringify!(PowerButton)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_POWER_POLICY>())).SleepButton as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_POLICY),
            "::",
            stringify!(SleepButton)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEM_POWER_POLICY>())).LidClose as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_POLICY),
            "::",
            stringify!(LidClose)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_POWER_POLICY>())).LidOpenWake as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_POLICY),
            "::",
            stringify!(LidOpenWake)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEM_POWER_POLICY>())).Reserved as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_POLICY),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEM_POWER_POLICY>())).Idle as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_POLICY),
            "::",
            stringify!(Idle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_POWER_POLICY>())).IdleTimeout as *const _ as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_POLICY),
            "::",
            stringify!(IdleTimeout)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_POWER_POLICY>())).IdleSensitivity as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_POLICY),
            "::",
            stringify!(IdleSensitivity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_POWER_POLICY>())).DynamicThrottle as *const _ as usize
        },
        65usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_POLICY),
            "::",
            stringify!(DynamicThrottle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEM_POWER_POLICY>())).Spare2 as *const _ as usize },
        66usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_POLICY),
            "::",
            stringify!(Spare2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEM_POWER_POLICY>())).MinSleep as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_POLICY),
            "::",
            stringify!(MinSleep)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEM_POWER_POLICY>())).MaxSleep as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_POLICY),
            "::",
            stringify!(MaxSleep)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_POWER_POLICY>())).ReducedLatencySleep as *const _
                as usize
        },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_POLICY),
            "::",
            stringify!(ReducedLatencySleep)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_POWER_POLICY>())).WinLogonFlags as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_POLICY),
            "::",
            stringify!(WinLogonFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEM_POWER_POLICY>())).Spare3 as *const _ as usize },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_POLICY),
            "::",
            stringify!(Spare3)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_POWER_POLICY>())).DozeS4Timeout as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_POLICY),
            "::",
            stringify!(DozeS4Timeout)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_POWER_POLICY>())).BroadcastCapacityResolution as *const _
                as usize
        },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_POLICY),
            "::",
            stringify!(BroadcastCapacityResolution)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_POWER_POLICY>())).DischargePolicy as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_POLICY),
            "::",
            stringify!(DischargePolicy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_POWER_POLICY>())).VideoTimeout as *const _ as usize
        },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_POLICY),
            "::",
            stringify!(VideoTimeout)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_POWER_POLICY>())).VideoDimDisplay as *const _ as usize
        },
        196usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_POLICY),
            "::",
            stringify!(VideoDimDisplay)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_POWER_POLICY>())).VideoReserved as *const _ as usize
        },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_POLICY),
            "::",
            stringify!(VideoReserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_POWER_POLICY>())).SpindownTimeout as *const _ as usize
        },
        212usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_POLICY),
            "::",
            stringify!(SpindownTimeout)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_POWER_POLICY>())).OptimizeForPower as *const _ as usize
        },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_POLICY),
            "::",
            stringify!(OptimizeForPower)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_POWER_POLICY>())).FanThrottleTolerance as *const _
                as usize
        },
        217usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_POLICY),
            "::",
            stringify!(FanThrottleTolerance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_POWER_POLICY>())).ForcedThrottle as *const _ as usize
        },
        218usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_POLICY),
            "::",
            stringify!(ForcedThrottle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_POWER_POLICY>())).MinThrottle as *const _ as usize
        },
        219usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_POLICY),
            "::",
            stringify!(MinThrottle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_POWER_POLICY>())).OverThrottled as *const _ as usize
        },
        220usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_POLICY),
            "::",
            stringify!(OverThrottled)
        )
    );
}
pub type SYSTEM_POWER_POLICY = _SYSTEM_POWER_POLICY;
pub type PSYSTEM_POWER_POLICY = *mut _SYSTEM_POWER_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],
}
#[test]
fn bindgen_test_layout_PROCESSOR_IDLESTATE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<PROCESSOR_IDLESTATE_INFO>(),
        8usize,
        concat!("Size of: ", stringify!(PROCESSOR_IDLESTATE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<PROCESSOR_IDLESTATE_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(PROCESSOR_IDLESTATE_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PROCESSOR_IDLESTATE_INFO>())).TimeCheck as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PROCESSOR_IDLESTATE_INFO),
            "::",
            stringify!(TimeCheck)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PROCESSOR_IDLESTATE_INFO>())).DemotePercent as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(PROCESSOR_IDLESTATE_INFO),
            "::",
            stringify!(DemotePercent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PROCESSOR_IDLESTATE_INFO>())).PromotePercent as *const _ as usize
        },
        5usize,
        concat!(
            "Offset of field: ",
            stringify!(PROCESSOR_IDLESTATE_INFO),
            "::",
            stringify!(PromotePercent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PROCESSOR_IDLESTATE_INFO>())).Spare as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(PROCESSOR_IDLESTATE_INFO),
            "::",
            stringify!(Spare)
        )
    );
}
pub type PPROCESSOR_IDLESTATE_INFO = *mut PROCESSOR_IDLESTATE_INFO;
#[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>,
}
#[test]
fn bindgen_test_layout_PROCESSOR_IDLESTATE_POLICY__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<PROCESSOR_IDLESTATE_POLICY__bindgen_ty_1__bindgen_ty_1>(),
        2usize,
        concat!(
            "Size of: ",
            stringify!(PROCESSOR_IDLESTATE_POLICY__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<PROCESSOR_IDLESTATE_POLICY__bindgen_ty_1__bindgen_ty_1>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(PROCESSOR_IDLESTATE_POLICY__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
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
    }
}
#[test]
fn bindgen_test_layout_PROCESSOR_IDLESTATE_POLICY__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<PROCESSOR_IDLESTATE_POLICY__bindgen_ty_1>(),
        2usize,
        concat!(
            "Size of: ",
            stringify!(PROCESSOR_IDLESTATE_POLICY__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<PROCESSOR_IDLESTATE_POLICY__bindgen_ty_1>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(PROCESSOR_IDLESTATE_POLICY__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PROCESSOR_IDLESTATE_POLICY__bindgen_ty_1>())).AsWORD as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PROCESSOR_IDLESTATE_POLICY__bindgen_ty_1),
            "::",
            stringify!(AsWORD)
        )
    );
}
#[test]
fn bindgen_test_layout_PROCESSOR_IDLESTATE_POLICY() {
    assert_eq!(
        ::std::mem::size_of::<PROCESSOR_IDLESTATE_POLICY>(),
        32usize,
        concat!("Size of: ", stringify!(PROCESSOR_IDLESTATE_POLICY))
    );
    assert_eq!(
        ::std::mem::align_of::<PROCESSOR_IDLESTATE_POLICY>(),
        4usize,
        concat!("Alignment of ", stringify!(PROCESSOR_IDLESTATE_POLICY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PROCESSOR_IDLESTATE_POLICY>())).Revision as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PROCESSOR_IDLESTATE_POLICY),
            "::",
            stringify!(Revision)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PROCESSOR_IDLESTATE_POLICY>())).Flags as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(PROCESSOR_IDLESTATE_POLICY),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PROCESSOR_IDLESTATE_POLICY>())).PolicyCount as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(PROCESSOR_IDLESTATE_POLICY),
            "::",
            stringify!(PolicyCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PROCESSOR_IDLESTATE_POLICY>())).Policy as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(PROCESSOR_IDLESTATE_POLICY),
            "::",
            stringify!(Policy)
        )
    );
}
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>,
}
#[test]
fn bindgen_test_layout__PROCESSOR_POWER_POLICY_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESSOR_POWER_POLICY_INFO>(),
        20usize,
        concat!("Size of: ", stringify!(_PROCESSOR_POWER_POLICY_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESSOR_POWER_POLICY_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_PROCESSOR_POWER_POLICY_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESSOR_POWER_POLICY_INFO>())).TimeCheck as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESSOR_POWER_POLICY_INFO),
            "::",
            stringify!(TimeCheck)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESSOR_POWER_POLICY_INFO>())).DemoteLimit as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESSOR_POWER_POLICY_INFO),
            "::",
            stringify!(DemoteLimit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESSOR_POWER_POLICY_INFO>())).PromoteLimit as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESSOR_POWER_POLICY_INFO),
            "::",
            stringify!(PromoteLimit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESSOR_POWER_POLICY_INFO>())).DemotePercent as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESSOR_POWER_POLICY_INFO),
            "::",
            stringify!(DemotePercent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESSOR_POWER_POLICY_INFO>())).PromotePercent as *const _
                as usize
        },
        13usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESSOR_POWER_POLICY_INFO),
            "::",
            stringify!(PromotePercent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESSOR_POWER_POLICY_INFO>())).Spare as *const _ as usize
        },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESSOR_POWER_POLICY_INFO),
            "::",
            stringify!(Spare)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__PROCESSOR_POWER_POLICY() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESSOR_POWER_POLICY>(),
        76usize,
        concat!("Size of: ", stringify!(_PROCESSOR_POWER_POLICY))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESSOR_POWER_POLICY>(),
        4usize,
        concat!("Alignment of ", stringify!(_PROCESSOR_POWER_POLICY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESSOR_POWER_POLICY>())).Revision as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESSOR_POWER_POLICY),
            "::",
            stringify!(Revision)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESSOR_POWER_POLICY>())).DynamicThrottle as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESSOR_POWER_POLICY),
            "::",
            stringify!(DynamicThrottle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROCESSOR_POWER_POLICY>())).Spare as *const _ as usize },
        5usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESSOR_POWER_POLICY),
            "::",
            stringify!(Spare)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESSOR_POWER_POLICY>())).PolicyCount as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESSOR_POWER_POLICY),
            "::",
            stringify!(PolicyCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROCESSOR_POWER_POLICY>())).Policy as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESSOR_POWER_POLICY),
            "::",
            stringify!(Policy)
        )
    );
}
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>,
}
#[test]
fn bindgen_test_layout_PROCESSOR_PERFSTATE_POLICY__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<PROCESSOR_PERFSTATE_POLICY__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>(
        ),
        1usize,
        concat!(
            "Size of: ",
            stringify!(PROCESSOR_PERFSTATE_POLICY__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<PROCESSOR_PERFSTATE_POLICY__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>(
        ),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(PROCESSOR_PERFSTATE_POLICY__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
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
    }
}
#[test]
fn bindgen_test_layout_PROCESSOR_PERFSTATE_POLICY__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<PROCESSOR_PERFSTATE_POLICY__bindgen_ty_1__bindgen_ty_1>(),
        1usize,
        concat!(
            "Size of: ",
            stringify!(PROCESSOR_PERFSTATE_POLICY__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<PROCESSOR_PERFSTATE_POLICY__bindgen_ty_1__bindgen_ty_1>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(PROCESSOR_PERFSTATE_POLICY__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PROCESSOR_PERFSTATE_POLICY__bindgen_ty_1__bindgen_ty_1>()))
                .AsBYTE as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PROCESSOR_PERFSTATE_POLICY__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(AsBYTE)
        )
    );
}
#[test]
fn bindgen_test_layout_PROCESSOR_PERFSTATE_POLICY__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<PROCESSOR_PERFSTATE_POLICY__bindgen_ty_1>(),
        1usize,
        concat!(
            "Size of: ",
            stringify!(PROCESSOR_PERFSTATE_POLICY__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<PROCESSOR_PERFSTATE_POLICY__bindgen_ty_1>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(PROCESSOR_PERFSTATE_POLICY__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PROCESSOR_PERFSTATE_POLICY__bindgen_ty_1>())).Spare as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PROCESSOR_PERFSTATE_POLICY__bindgen_ty_1),
            "::",
            stringify!(Spare)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PROCESSOR_PERFSTATE_POLICY__bindgen_ty_1>())).Flags as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PROCESSOR_PERFSTATE_POLICY__bindgen_ty_1),
            "::",
            stringify!(Flags)
        )
    );
}
#[test]
fn bindgen_test_layout_PROCESSOR_PERFSTATE_POLICY() {
    assert_eq!(
        ::std::mem::size_of::<PROCESSOR_PERFSTATE_POLICY>(),
        28usize,
        concat!("Size of: ", stringify!(PROCESSOR_PERFSTATE_POLICY))
    );
    assert_eq!(
        ::std::mem::align_of::<PROCESSOR_PERFSTATE_POLICY>(),
        4usize,
        concat!("Alignment of ", stringify!(PROCESSOR_PERFSTATE_POLICY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PROCESSOR_PERFSTATE_POLICY>())).Revision as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PROCESSOR_PERFSTATE_POLICY),
            "::",
            stringify!(Revision)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PROCESSOR_PERFSTATE_POLICY>())).MaxThrottle as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(PROCESSOR_PERFSTATE_POLICY),
            "::",
            stringify!(MaxThrottle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PROCESSOR_PERFSTATE_POLICY>())).MinThrottle as *const _ as usize
        },
        5usize,
        concat!(
            "Offset of field: ",
            stringify!(PROCESSOR_PERFSTATE_POLICY),
            "::",
            stringify!(MinThrottle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PROCESSOR_PERFSTATE_POLICY>())).BusyAdjThreshold as *const _
                as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(PROCESSOR_PERFSTATE_POLICY),
            "::",
            stringify!(BusyAdjThreshold)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PROCESSOR_PERFSTATE_POLICY>())).TimeCheck as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(PROCESSOR_PERFSTATE_POLICY),
            "::",
            stringify!(TimeCheck)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PROCESSOR_PERFSTATE_POLICY>())).IncreaseTime as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(PROCESSOR_PERFSTATE_POLICY),
            "::",
            stringify!(IncreaseTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PROCESSOR_PERFSTATE_POLICY>())).DecreaseTime as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(PROCESSOR_PERFSTATE_POLICY),
            "::",
            stringify!(DecreaseTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PROCESSOR_PERFSTATE_POLICY>())).IncreasePercent as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(PROCESSOR_PERFSTATE_POLICY),
            "::",
            stringify!(IncreasePercent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PROCESSOR_PERFSTATE_POLICY>())).DecreasePercent as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(PROCESSOR_PERFSTATE_POLICY),
            "::",
            stringify!(DecreasePercent)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__ADMINISTRATOR_POWER_POLICY() {
    assert_eq!(
        ::std::mem::size_of::<_ADMINISTRATOR_POWER_POLICY>(),
        24usize,
        concat!("Size of: ", stringify!(_ADMINISTRATOR_POWER_POLICY))
    );
    assert_eq!(
        ::std::mem::align_of::<_ADMINISTRATOR_POWER_POLICY>(),
        4usize,
        concat!("Alignment of ", stringify!(_ADMINISTRATOR_POWER_POLICY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ADMINISTRATOR_POWER_POLICY>())).MinSleep as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADMINISTRATOR_POWER_POLICY),
            "::",
            stringify!(MinSleep)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ADMINISTRATOR_POWER_POLICY>())).MaxSleep as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADMINISTRATOR_POWER_POLICY),
            "::",
            stringify!(MaxSleep)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ADMINISTRATOR_POWER_POLICY>())).MinVideoTimeout as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADMINISTRATOR_POWER_POLICY),
            "::",
            stringify!(MinVideoTimeout)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ADMINISTRATOR_POWER_POLICY>())).MaxVideoTimeout as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADMINISTRATOR_POWER_POLICY),
            "::",
            stringify!(MaxVideoTimeout)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ADMINISTRATOR_POWER_POLICY>())).MinSpindownTimeout as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADMINISTRATOR_POWER_POLICY),
            "::",
            stringify!(MinSpindownTimeout)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ADMINISTRATOR_POWER_POLICY>())).MaxSpindownTimeout as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADMINISTRATOR_POWER_POLICY),
            "::",
            stringify!(MaxSpindownTimeout)
        )
    );
}
pub type ADMINISTRATOR_POWER_POLICY = _ADMINISTRATOR_POWER_POLICY;
pub type PADMINISTRATOR_POWER_POLICY = *mut _ADMINISTRATOR_POWER_POLICY;
pub const _HIBERFILE_BUCKET_SIZE_HiberFileBucket1GB: _HIBERFILE_BUCKET_SIZE = 0;
pub const _HIBERFILE_BUCKET_SIZE_HiberFileBucket2GB: _HIBERFILE_BUCKET_SIZE = 1;
pub const _HIBERFILE_BUCKET_SIZE_HiberFileBucket4GB: _HIBERFILE_BUCKET_SIZE = 2;
pub const _HIBERFILE_BUCKET_SIZE_HiberFileBucket8GB: _HIBERFILE_BUCKET_SIZE = 3;
pub const _HIBERFILE_BUCKET_SIZE_HiberFileBucket16GB: _HIBERFILE_BUCKET_SIZE = 4;
pub const _HIBERFILE_BUCKET_SIZE_HiberFileBucket32GB: _HIBERFILE_BUCKET_SIZE = 5;
pub const _HIBERFILE_BUCKET_SIZE_HiberFileBucketUnlimited: _HIBERFILE_BUCKET_SIZE = 6;
pub const _HIBERFILE_BUCKET_SIZE_HiberFileBucketMax: _HIBERFILE_BUCKET_SIZE = 7;
pub type _HIBERFILE_BUCKET_SIZE = ::std::os::raw::c_int;
pub use self::_HIBERFILE_BUCKET_SIZE as HIBERFILE_BUCKET_SIZE;
pub type PHIBERFILE_BUCKET_SIZE = *mut _HIBERFILE_BUCKET_SIZE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _HIBERFILE_BUCKET {
    pub MaxPhysicalMemory: DWORD64,
    pub PhysicalMemoryPercent: [DWORD; 3usize],
}
#[test]
fn bindgen_test_layout__HIBERFILE_BUCKET() {
    assert_eq!(
        ::std::mem::size_of::<_HIBERFILE_BUCKET>(),
        24usize,
        concat!("Size of: ", stringify!(_HIBERFILE_BUCKET))
    );
    assert_eq!(
        ::std::mem::align_of::<_HIBERFILE_BUCKET>(),
        8usize,
        concat!("Alignment of ", stringify!(_HIBERFILE_BUCKET))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_HIBERFILE_BUCKET>())).MaxPhysicalMemory as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_HIBERFILE_BUCKET),
            "::",
            stringify!(MaxPhysicalMemory)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_HIBERFILE_BUCKET>())).PhysicalMemoryPercent as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_HIBERFILE_BUCKET),
            "::",
            stringify!(PhysicalMemoryPercent)
        )
    );
}
pub type HIBERFILE_BUCKET = _HIBERFILE_BUCKET;
pub type PHIBERFILE_BUCKET = *mut _HIBERFILE_BUCKET;
#[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 Hiberboot: BOOLEAN,
    pub WakeAlarmPresent: BOOLEAN,
    pub AoAc: BOOLEAN,
    pub DiskSpinDown: BOOLEAN,
    pub HiberFileType: BYTE,
    pub AoAcConnectivitySupported: BOOLEAN,
    pub spare3: [BYTE; 6usize],
    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,
}
#[test]
fn bindgen_test_layout_SYSTEM_POWER_CAPABILITIES() {
    assert_eq!(
        ::std::mem::size_of::<SYSTEM_POWER_CAPABILITIES>(),
        76usize,
        concat!("Size of: ", stringify!(SYSTEM_POWER_CAPABILITIES))
    );
    assert_eq!(
        ::std::mem::align_of::<SYSTEM_POWER_CAPABILITIES>(),
        4usize,
        concat!("Alignment of ", stringify!(SYSTEM_POWER_CAPABILITIES))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).PowerButtonPresent as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(PowerButtonPresent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).SleepButtonPresent as *const _
                as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(SleepButtonPresent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).LidPresent as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(LidPresent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).SystemS1 as *const _ as usize
        },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(SystemS1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).SystemS2 as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(SystemS2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).SystemS3 as *const _ as usize
        },
        5usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(SystemS3)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).SystemS4 as *const _ as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(SystemS4)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).SystemS5 as *const _ as usize
        },
        7usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(SystemS5)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).HiberFilePresent as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(HiberFilePresent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).FullWake as *const _ as usize
        },
        9usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(FullWake)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).VideoDimPresent as *const _
                as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(VideoDimPresent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).ApmPresent as *const _ as usize
        },
        11usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(ApmPresent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).UpsPresent as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(UpsPresent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).ThermalControl as *const _
                as usize
        },
        13usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(ThermalControl)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).ProcessorThrottle as *const _
                as usize
        },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(ProcessorThrottle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).ProcessorMinThrottle as *const _
                as usize
        },
        15usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(ProcessorMinThrottle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).ProcessorMaxThrottle as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(ProcessorMaxThrottle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).FastSystemS4 as *const _ as usize
        },
        17usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(FastSystemS4)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).Hiberboot as *const _ as usize
        },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(Hiberboot)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).WakeAlarmPresent as *const _
                as usize
        },
        19usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(WakeAlarmPresent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).AoAc as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(AoAc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).DiskSpinDown as *const _ as usize
        },
        21usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(DiskSpinDown)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).HiberFileType as *const _ as usize
        },
        22usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(HiberFileType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).AoAcConnectivitySupported
                as *const _ as usize
        },
        23usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(AoAcConnectivitySupported)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).spare3 as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(spare3)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).SystemBatteriesPresent as *const _
                as usize
        },
        30usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(SystemBatteriesPresent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).BatteriesAreShortTerm as *const _
                as usize
        },
        31usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(BatteriesAreShortTerm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).BatteryScale as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(BatteryScale)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).AcOnLineWake as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(AcOnLineWake)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).SoftLidWake as *const _ as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(SoftLidWake)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).RtcWake as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(RtcWake)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).MinDeviceWakeState as *const _
                as usize
        },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(MinDeviceWakeState)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_POWER_CAPABILITIES>())).DefaultLowLatencyWake as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_POWER_CAPABILITIES),
            "::",
            stringify!(DefaultLowLatencyWake)
        )
    );
}
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; 3usize],
    pub Tag: BYTE,
    pub MaxCapacity: DWORD,
    pub RemainingCapacity: DWORD,
    pub Rate: DWORD,
    pub EstimatedTime: DWORD,
    pub DefaultAlert1: DWORD,
    pub DefaultAlert2: DWORD,
}
#[test]
fn bindgen_test_layout_SYSTEM_BATTERY_STATE() {
    assert_eq!(
        ::std::mem::size_of::<SYSTEM_BATTERY_STATE>(),
        32usize,
        concat!("Size of: ", stringify!(SYSTEM_BATTERY_STATE))
    );
    assert_eq!(
        ::std::mem::align_of::<SYSTEM_BATTERY_STATE>(),
        4usize,
        concat!("Alignment of ", stringify!(SYSTEM_BATTERY_STATE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SYSTEM_BATTERY_STATE>())).AcOnLine as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_BATTERY_STATE),
            "::",
            stringify!(AcOnLine)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_BATTERY_STATE>())).BatteryPresent as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_BATTERY_STATE),
            "::",
            stringify!(BatteryPresent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SYSTEM_BATTERY_STATE>())).Charging as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_BATTERY_STATE),
            "::",
            stringify!(Charging)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_BATTERY_STATE>())).Discharging as *const _ as usize
        },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_BATTERY_STATE),
            "::",
            stringify!(Discharging)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SYSTEM_BATTERY_STATE>())).Spare1 as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_BATTERY_STATE),
            "::",
            stringify!(Spare1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SYSTEM_BATTERY_STATE>())).Tag as *const _ as usize },
        7usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_BATTERY_STATE),
            "::",
            stringify!(Tag)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_BATTERY_STATE>())).MaxCapacity as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_BATTERY_STATE),
            "::",
            stringify!(MaxCapacity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_BATTERY_STATE>())).RemainingCapacity as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_BATTERY_STATE),
            "::",
            stringify!(RemainingCapacity)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SYSTEM_BATTERY_STATE>())).Rate as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_BATTERY_STATE),
            "::",
            stringify!(Rate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_BATTERY_STATE>())).EstimatedTime as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_BATTERY_STATE),
            "::",
            stringify!(EstimatedTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_BATTERY_STATE>())).DefaultAlert1 as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_BATTERY_STATE),
            "::",
            stringify!(DefaultAlert1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SYSTEM_BATTERY_STATE>())).DefaultAlert2 as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(SYSTEM_BATTERY_STATE),
            "::",
            stringify!(DefaultAlert2)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__IMAGE_DOS_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_DOS_HEADER>(),
        64usize,
        concat!("Size of: ", stringify!(_IMAGE_DOS_HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_DOS_HEADER>(),
        2usize,
        concat!("Alignment of ", stringify!(_IMAGE_DOS_HEADER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_DOS_HEADER>())).e_magic as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DOS_HEADER),
            "::",
            stringify!(e_magic)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_DOS_HEADER>())).e_cblp as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DOS_HEADER),
            "::",
            stringify!(e_cblp)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_DOS_HEADER>())).e_cp as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DOS_HEADER),
            "::",
            stringify!(e_cp)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_DOS_HEADER>())).e_crlc as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DOS_HEADER),
            "::",
            stringify!(e_crlc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_DOS_HEADER>())).e_cparhdr as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DOS_HEADER),
            "::",
            stringify!(e_cparhdr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_DOS_HEADER>())).e_minalloc as *const _ as usize },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DOS_HEADER),
            "::",
            stringify!(e_minalloc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_DOS_HEADER>())).e_maxalloc as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DOS_HEADER),
            "::",
            stringify!(e_maxalloc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_DOS_HEADER>())).e_ss as *const _ as usize },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DOS_HEADER),
            "::",
            stringify!(e_ss)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_DOS_HEADER>())).e_sp as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DOS_HEADER),
            "::",
            stringify!(e_sp)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_DOS_HEADER>())).e_csum as *const _ as usize },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DOS_HEADER),
            "::",
            stringify!(e_csum)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_DOS_HEADER>())).e_ip as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DOS_HEADER),
            "::",
            stringify!(e_ip)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_DOS_HEADER>())).e_cs as *const _ as usize },
        22usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DOS_HEADER),
            "::",
            stringify!(e_cs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_DOS_HEADER>())).e_lfarlc as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DOS_HEADER),
            "::",
            stringify!(e_lfarlc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_DOS_HEADER>())).e_ovno as *const _ as usize },
        26usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DOS_HEADER),
            "::",
            stringify!(e_ovno)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_DOS_HEADER>())).e_res as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DOS_HEADER),
            "::",
            stringify!(e_res)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_DOS_HEADER>())).e_oemid as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DOS_HEADER),
            "::",
            stringify!(e_oemid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_DOS_HEADER>())).e_oeminfo as *const _ as usize },
        38usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DOS_HEADER),
            "::",
            stringify!(e_oeminfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_DOS_HEADER>())).e_res2 as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DOS_HEADER),
            "::",
            stringify!(e_res2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_DOS_HEADER>())).e_lfanew as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DOS_HEADER),
            "::",
            stringify!(e_lfanew)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__IMAGE_OS2_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_OS2_HEADER>(),
        64usize,
        concat!("Size of: ", stringify!(_IMAGE_OS2_HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_OS2_HEADER>(),
        2usize,
        concat!("Alignment of ", stringify!(_IMAGE_OS2_HEADER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_OS2_HEADER>())).ne_magic as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OS2_HEADER),
            "::",
            stringify!(ne_magic)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_OS2_HEADER>())).ne_ver as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OS2_HEADER),
            "::",
            stringify!(ne_ver)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_OS2_HEADER>())).ne_rev as *const _ as usize },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OS2_HEADER),
            "::",
            stringify!(ne_rev)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_OS2_HEADER>())).ne_enttab as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OS2_HEADER),
            "::",
            stringify!(ne_enttab)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_OS2_HEADER>())).ne_cbenttab as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OS2_HEADER),
            "::",
            stringify!(ne_cbenttab)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_OS2_HEADER>())).ne_crc as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OS2_HEADER),
            "::",
            stringify!(ne_crc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_OS2_HEADER>())).ne_flags as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OS2_HEADER),
            "::",
            stringify!(ne_flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_OS2_HEADER>())).ne_autodata as *const _ as usize },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OS2_HEADER),
            "::",
            stringify!(ne_autodata)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_OS2_HEADER>())).ne_heap as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OS2_HEADER),
            "::",
            stringify!(ne_heap)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_OS2_HEADER>())).ne_stack as *const _ as usize },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OS2_HEADER),
            "::",
            stringify!(ne_stack)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_OS2_HEADER>())).ne_csip as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OS2_HEADER),
            "::",
            stringify!(ne_csip)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_OS2_HEADER>())).ne_sssp as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OS2_HEADER),
            "::",
            stringify!(ne_sssp)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_OS2_HEADER>())).ne_cseg as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OS2_HEADER),
            "::",
            stringify!(ne_cseg)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_OS2_HEADER>())).ne_cmod as *const _ as usize },
        30usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OS2_HEADER),
            "::",
            stringify!(ne_cmod)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_OS2_HEADER>())).ne_cbnrestab as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OS2_HEADER),
            "::",
            stringify!(ne_cbnrestab)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_OS2_HEADER>())).ne_segtab as *const _ as usize },
        34usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OS2_HEADER),
            "::",
            stringify!(ne_segtab)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_OS2_HEADER>())).ne_rsrctab as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OS2_HEADER),
            "::",
            stringify!(ne_rsrctab)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_OS2_HEADER>())).ne_restab as *const _ as usize },
        38usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OS2_HEADER),
            "::",
            stringify!(ne_restab)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_OS2_HEADER>())).ne_modtab as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OS2_HEADER),
            "::",
            stringify!(ne_modtab)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_OS2_HEADER>())).ne_imptab as *const _ as usize },
        42usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OS2_HEADER),
            "::",
            stringify!(ne_imptab)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_OS2_HEADER>())).ne_nrestab as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OS2_HEADER),
            "::",
            stringify!(ne_nrestab)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_OS2_HEADER>())).ne_cmovent as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OS2_HEADER),
            "::",
            stringify!(ne_cmovent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_OS2_HEADER>())).ne_align as *const _ as usize },
        50usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OS2_HEADER),
            "::",
            stringify!(ne_align)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_OS2_HEADER>())).ne_cres as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OS2_HEADER),
            "::",
            stringify!(ne_cres)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_OS2_HEADER>())).ne_exetyp as *const _ as usize },
        54usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OS2_HEADER),
            "::",
            stringify!(ne_exetyp)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OS2_HEADER>())).ne_flagsothers as *const _ as usize
        },
        55usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OS2_HEADER),
            "::",
            stringify!(ne_flagsothers)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_OS2_HEADER>())).ne_pretthunks as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OS2_HEADER),
            "::",
            stringify!(ne_pretthunks)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OS2_HEADER>())).ne_psegrefbytes as *const _ as usize
        },
        58usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OS2_HEADER),
            "::",
            stringify!(ne_psegrefbytes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_OS2_HEADER>())).ne_swaparea as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OS2_HEADER),
            "::",
            stringify!(ne_swaparea)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_OS2_HEADER>())).ne_expver as *const _ as usize },
        62usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OS2_HEADER),
            "::",
            stringify!(ne_expver)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__IMAGE_VXD_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_VXD_HEADER>(),
        196usize,
        concat!("Size of: ", stringify!(_IMAGE_VXD_HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_VXD_HEADER>(),
        2usize,
        concat!("Alignment of ", stringify!(_IMAGE_VXD_HEADER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_magic as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_magic)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_border as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_border)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_worder as *const _ as usize },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_worder)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_level as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_level)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_cpu as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_cpu)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_os as *const _ as usize },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_os)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_ver as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_ver)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_mflags as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_mflags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_mpages as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_mpages)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_startobj as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_startobj)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_eip as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_eip)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_stackobj as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_stackobj)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_esp as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_esp)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_pagesize as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_pagesize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_lastpagesize as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_lastpagesize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_fixupsize as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_fixupsize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_fixupsum as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_fixupsum)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_ldrsize as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_ldrsize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_ldrsum as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_ldrsum)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_objtab as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_objtab)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_objcnt as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_objcnt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_objmap as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_objmap)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_itermap as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_itermap)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_rsrctab as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_rsrctab)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_rsrccnt as *const _ as usize },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_rsrccnt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_restab as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_restab)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_enttab as *const _ as usize },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_enttab)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_dirtab as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_dirtab)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_dircnt as *const _ as usize },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_dircnt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_fpagetab as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_fpagetab)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_frectab as *const _ as usize },
        108usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_frectab)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_impmod as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_impmod)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_impmodcnt as *const _ as usize },
        116usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_impmodcnt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_impproc as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_impproc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_pagesum as *const _ as usize },
        124usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_pagesum)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_datapage as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_datapage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_preload as *const _ as usize },
        132usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_preload)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_nrestab as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_nrestab)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_cbnrestab as *const _ as usize },
        140usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_cbnrestab)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_nressum as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_nressum)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_autodata as *const _ as usize },
        148usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_autodata)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_debuginfo as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_debuginfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_debuglen as *const _ as usize },
        156usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_debuglen)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_instpreload as *const _ as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_instpreload)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_instdemand as *const _ as usize
        },
        164usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_instdemand)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_heapsize as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_heapsize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_res3 as *const _ as usize },
        172usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_res3)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_winresoff as *const _ as usize },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_winresoff)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_winreslen as *const _ as usize },
        188usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_winreslen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_devid as *const _ as usize },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_devid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_VXD_HEADER>())).e32_ddkver as *const _ as usize },
        194usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_VXD_HEADER),
            "::",
            stringify!(e32_ddkver)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__IMAGE_FILE_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_FILE_HEADER>(),
        20usize,
        concat!("Size of: ", stringify!(_IMAGE_FILE_HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_FILE_HEADER>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_FILE_HEADER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_FILE_HEADER>())).Machine as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_FILE_HEADER),
            "::",
            stringify!(Machine)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_FILE_HEADER>())).NumberOfSections as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_FILE_HEADER),
            "::",
            stringify!(NumberOfSections)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_FILE_HEADER>())).TimeDateStamp as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_FILE_HEADER),
            "::",
            stringify!(TimeDateStamp)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_FILE_HEADER>())).PointerToSymbolTable as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_FILE_HEADER),
            "::",
            stringify!(PointerToSymbolTable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_FILE_HEADER>())).NumberOfSymbols as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_FILE_HEADER),
            "::",
            stringify!(NumberOfSymbols)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_FILE_HEADER>())).SizeOfOptionalHeader as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_FILE_HEADER),
            "::",
            stringify!(SizeOfOptionalHeader)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_FILE_HEADER>())).Characteristics as *const _ as usize
        },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_FILE_HEADER),
            "::",
            stringify!(Characteristics)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__IMAGE_DATA_DIRECTORY() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_DATA_DIRECTORY>(),
        8usize,
        concat!("Size of: ", stringify!(_IMAGE_DATA_DIRECTORY))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_DATA_DIRECTORY>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_DATA_DIRECTORY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DATA_DIRECTORY>())).VirtualAddress as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DATA_DIRECTORY),
            "::",
            stringify!(VirtualAddress)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_DATA_DIRECTORY>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DATA_DIRECTORY),
            "::",
            stringify!(Size)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__IMAGE_OPTIONAL_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_OPTIONAL_HEADER>(),
        224usize,
        concat!("Size of: ", stringify!(_IMAGE_OPTIONAL_HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_OPTIONAL_HEADER>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_OPTIONAL_HEADER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER>())).Magic as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER),
            "::",
            stringify!(Magic)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER>())).MajorLinkerVersion as *const _
                as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER),
            "::",
            stringify!(MajorLinkerVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER>())).MinorLinkerVersion as *const _
                as usize
        },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER),
            "::",
            stringify!(MinorLinkerVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER>())).SizeOfCode as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER),
            "::",
            stringify!(SizeOfCode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER>())).SizeOfInitializedData as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER),
            "::",
            stringify!(SizeOfInitializedData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER>())).SizeOfUninitializedData as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER),
            "::",
            stringify!(SizeOfUninitializedData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER>())).AddressOfEntryPoint as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER),
            "::",
            stringify!(AddressOfEntryPoint)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER>())).BaseOfCode as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER),
            "::",
            stringify!(BaseOfCode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER>())).BaseOfData as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER),
            "::",
            stringify!(BaseOfData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER>())).ImageBase as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER),
            "::",
            stringify!(ImageBase)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER>())).SectionAlignment as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER),
            "::",
            stringify!(SectionAlignment)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER>())).FileAlignment as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER),
            "::",
            stringify!(FileAlignment)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER>())).MajorOperatingSystemVersion
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER),
            "::",
            stringify!(MajorOperatingSystemVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER>())).MinorOperatingSystemVersion
                as *const _ as usize
        },
        42usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER),
            "::",
            stringify!(MinorOperatingSystemVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER>())).MajorImageVersion as *const _
                as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER),
            "::",
            stringify!(MajorImageVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER>())).MinorImageVersion as *const _
                as usize
        },
        46usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER),
            "::",
            stringify!(MinorImageVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER>())).MajorSubsystemVersion as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER),
            "::",
            stringify!(MajorSubsystemVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER>())).MinorSubsystemVersion as *const _
                as usize
        },
        50usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER),
            "::",
            stringify!(MinorSubsystemVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER>())).Win32VersionValue as *const _
                as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER),
            "::",
            stringify!(Win32VersionValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER>())).SizeOfImage as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER),
            "::",
            stringify!(SizeOfImage)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER>())).SizeOfHeaders as *const _ as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER),
            "::",
            stringify!(SizeOfHeaders)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER>())).CheckSum as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER),
            "::",
            stringify!(CheckSum)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER>())).Subsystem as *const _ as usize
        },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER),
            "::",
            stringify!(Subsystem)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER>())).DllCharacteristics as *const _
                as usize
        },
        70usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER),
            "::",
            stringify!(DllCharacteristics)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER>())).SizeOfStackReserve as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER),
            "::",
            stringify!(SizeOfStackReserve)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER>())).SizeOfStackCommit as *const _
                as usize
        },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER),
            "::",
            stringify!(SizeOfStackCommit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER>())).SizeOfHeapReserve as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER),
            "::",
            stringify!(SizeOfHeapReserve)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER>())).SizeOfHeapCommit as *const _ as usize
        },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER),
            "::",
            stringify!(SizeOfHeapCommit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER>())).LoaderFlags as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER),
            "::",
            stringify!(LoaderFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER>())).NumberOfRvaAndSizes as *const _
                as usize
        },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER),
            "::",
            stringify!(NumberOfRvaAndSizes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER>())).DataDirectory as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER),
            "::",
            stringify!(DataDirectory)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__IMAGE_ROM_OPTIONAL_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_ROM_OPTIONAL_HEADER>(),
        56usize,
        concat!("Size of: ", stringify!(_IMAGE_ROM_OPTIONAL_HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_ROM_OPTIONAL_HEADER>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_ROM_OPTIONAL_HEADER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ROM_OPTIONAL_HEADER>())).Magic as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ROM_OPTIONAL_HEADER),
            "::",
            stringify!(Magic)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ROM_OPTIONAL_HEADER>())).MajorLinkerVersion as *const _
                as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ROM_OPTIONAL_HEADER),
            "::",
            stringify!(MajorLinkerVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ROM_OPTIONAL_HEADER>())).MinorLinkerVersion as *const _
                as usize
        },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ROM_OPTIONAL_HEADER),
            "::",
            stringify!(MinorLinkerVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ROM_OPTIONAL_HEADER>())).SizeOfCode as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ROM_OPTIONAL_HEADER),
            "::",
            stringify!(SizeOfCode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ROM_OPTIONAL_HEADER>())).SizeOfInitializedData as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ROM_OPTIONAL_HEADER),
            "::",
            stringify!(SizeOfInitializedData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ROM_OPTIONAL_HEADER>())).SizeOfUninitializedData
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ROM_OPTIONAL_HEADER),
            "::",
            stringify!(SizeOfUninitializedData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ROM_OPTIONAL_HEADER>())).AddressOfEntryPoint as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ROM_OPTIONAL_HEADER),
            "::",
            stringify!(AddressOfEntryPoint)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ROM_OPTIONAL_HEADER>())).BaseOfCode as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ROM_OPTIONAL_HEADER),
            "::",
            stringify!(BaseOfCode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ROM_OPTIONAL_HEADER>())).BaseOfData as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ROM_OPTIONAL_HEADER),
            "::",
            stringify!(BaseOfData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ROM_OPTIONAL_HEADER>())).BaseOfBss as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ROM_OPTIONAL_HEADER),
            "::",
            stringify!(BaseOfBss)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ROM_OPTIONAL_HEADER>())).GprMask as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ROM_OPTIONAL_HEADER),
            "::",
            stringify!(GprMask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ROM_OPTIONAL_HEADER>())).CprMask as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ROM_OPTIONAL_HEADER),
            "::",
            stringify!(CprMask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ROM_OPTIONAL_HEADER>())).GpValue as *const _ as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ROM_OPTIONAL_HEADER),
            "::",
            stringify!(GpValue)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__IMAGE_OPTIONAL_HEADER64() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_OPTIONAL_HEADER64>(),
        240usize,
        concat!("Size of: ", stringify!(_IMAGE_OPTIONAL_HEADER64))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_OPTIONAL_HEADER64>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_OPTIONAL_HEADER64))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER64>())).Magic as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER64),
            "::",
            stringify!(Magic)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER64>())).MajorLinkerVersion as *const _
                as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER64),
            "::",
            stringify!(MajorLinkerVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER64>())).MinorLinkerVersion as *const _
                as usize
        },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER64),
            "::",
            stringify!(MinorLinkerVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER64>())).SizeOfCode as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER64),
            "::",
            stringify!(SizeOfCode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER64>())).SizeOfInitializedData as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER64),
            "::",
            stringify!(SizeOfInitializedData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER64>())).SizeOfUninitializedData as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER64),
            "::",
            stringify!(SizeOfUninitializedData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER64>())).AddressOfEntryPoint as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER64),
            "::",
            stringify!(AddressOfEntryPoint)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER64>())).BaseOfCode as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER64),
            "::",
            stringify!(BaseOfCode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER64>())).ImageBase as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER64),
            "::",
            stringify!(ImageBase)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER64>())).SectionAlignment as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER64),
            "::",
            stringify!(SectionAlignment)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER64>())).FileAlignment as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER64),
            "::",
            stringify!(FileAlignment)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER64>())).MajorOperatingSystemVersion
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER64),
            "::",
            stringify!(MajorOperatingSystemVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER64>())).MinorOperatingSystemVersion
                as *const _ as usize
        },
        42usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER64),
            "::",
            stringify!(MinorOperatingSystemVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER64>())).MajorImageVersion as *const _
                as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER64),
            "::",
            stringify!(MajorImageVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER64>())).MinorImageVersion as *const _
                as usize
        },
        46usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER64),
            "::",
            stringify!(MinorImageVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER64>())).MajorSubsystemVersion as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER64),
            "::",
            stringify!(MajorSubsystemVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER64>())).MinorSubsystemVersion as *const _
                as usize
        },
        50usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER64),
            "::",
            stringify!(MinorSubsystemVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER64>())).Win32VersionValue as *const _
                as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER64),
            "::",
            stringify!(Win32VersionValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER64>())).SizeOfImage as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER64),
            "::",
            stringify!(SizeOfImage)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER64>())).SizeOfHeaders as *const _ as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER64),
            "::",
            stringify!(SizeOfHeaders)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER64>())).CheckSum as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER64),
            "::",
            stringify!(CheckSum)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER64>())).Subsystem as *const _ as usize
        },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER64),
            "::",
            stringify!(Subsystem)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER64>())).DllCharacteristics as *const _
                as usize
        },
        70usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER64),
            "::",
            stringify!(DllCharacteristics)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER64>())).SizeOfStackReserve as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER64),
            "::",
            stringify!(SizeOfStackReserve)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER64>())).SizeOfStackCommit as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER64),
            "::",
            stringify!(SizeOfStackCommit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER64>())).SizeOfHeapReserve as *const _
                as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER64),
            "::",
            stringify!(SizeOfHeapReserve)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER64>())).SizeOfHeapCommit as *const _
                as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER64),
            "::",
            stringify!(SizeOfHeapCommit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER64>())).LoaderFlags as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER64),
            "::",
            stringify!(LoaderFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER64>())).NumberOfRvaAndSizes as *const _
                as usize
        },
        108usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER64),
            "::",
            stringify!(NumberOfRvaAndSizes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_OPTIONAL_HEADER64>())).DataDirectory as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_OPTIONAL_HEADER64),
            "::",
            stringify!(DataDirectory)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__IMAGE_NT_HEADERS64() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_NT_HEADERS64>(),
        264usize,
        concat!("Size of: ", stringify!(_IMAGE_NT_HEADERS64))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_NT_HEADERS64>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_NT_HEADERS64))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_NT_HEADERS64>())).Signature as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_NT_HEADERS64),
            "::",
            stringify!(Signature)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_NT_HEADERS64>())).FileHeader as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_NT_HEADERS64),
            "::",
            stringify!(FileHeader)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_NT_HEADERS64>())).OptionalHeader as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_NT_HEADERS64),
            "::",
            stringify!(OptionalHeader)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__IMAGE_NT_HEADERS() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_NT_HEADERS>(),
        248usize,
        concat!("Size of: ", stringify!(_IMAGE_NT_HEADERS))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_NT_HEADERS>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_NT_HEADERS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_NT_HEADERS>())).Signature as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_NT_HEADERS),
            "::",
            stringify!(Signature)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_NT_HEADERS>())).FileHeader as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_NT_HEADERS),
            "::",
            stringify!(FileHeader)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_NT_HEADERS>())).OptionalHeader as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_NT_HEADERS),
            "::",
            stringify!(OptionalHeader)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__IMAGE_ROM_HEADERS() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_ROM_HEADERS>(),
        76usize,
        concat!("Size of: ", stringify!(_IMAGE_ROM_HEADERS))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_ROM_HEADERS>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_ROM_HEADERS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_ROM_HEADERS>())).FileHeader as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ROM_HEADERS),
            "::",
            stringify!(FileHeader)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ROM_HEADERS>())).OptionalHeader as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ROM_HEADERS),
            "::",
            stringify!(OptionalHeader)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_ANON_OBJECT_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<ANON_OBJECT_HEADER>(),
        32usize,
        concat!("Size of: ", stringify!(ANON_OBJECT_HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<ANON_OBJECT_HEADER>(),
        4usize,
        concat!("Alignment of ", stringify!(ANON_OBJECT_HEADER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ANON_OBJECT_HEADER>())).Sig1 as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ANON_OBJECT_HEADER),
            "::",
            stringify!(Sig1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ANON_OBJECT_HEADER>())).Sig2 as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(ANON_OBJECT_HEADER),
            "::",
            stringify!(Sig2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ANON_OBJECT_HEADER>())).Version as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(ANON_OBJECT_HEADER),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ANON_OBJECT_HEADER>())).Machine as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(ANON_OBJECT_HEADER),
            "::",
            stringify!(Machine)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ANON_OBJECT_HEADER>())).TimeDateStamp as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ANON_OBJECT_HEADER),
            "::",
            stringify!(TimeDateStamp)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ANON_OBJECT_HEADER>())).ClassID as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(ANON_OBJECT_HEADER),
            "::",
            stringify!(ClassID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ANON_OBJECT_HEADER>())).SizeOfData as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(ANON_OBJECT_HEADER),
            "::",
            stringify!(SizeOfData)
        )
    );
}
#[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,
}
#[test]
fn bindgen_test_layout_ANON_OBJECT_HEADER_V2() {
    assert_eq!(
        ::std::mem::size_of::<ANON_OBJECT_HEADER_V2>(),
        44usize,
        concat!("Size of: ", stringify!(ANON_OBJECT_HEADER_V2))
    );
    assert_eq!(
        ::std::mem::align_of::<ANON_OBJECT_HEADER_V2>(),
        4usize,
        concat!("Alignment of ", stringify!(ANON_OBJECT_HEADER_V2))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ANON_OBJECT_HEADER_V2>())).Sig1 as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ANON_OBJECT_HEADER_V2),
            "::",
            stringify!(Sig1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ANON_OBJECT_HEADER_V2>())).Sig2 as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(ANON_OBJECT_HEADER_V2),
            "::",
            stringify!(Sig2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ANON_OBJECT_HEADER_V2>())).Version as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(ANON_OBJECT_HEADER_V2),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ANON_OBJECT_HEADER_V2>())).Machine as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(ANON_OBJECT_HEADER_V2),
            "::",
            stringify!(Machine)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ANON_OBJECT_HEADER_V2>())).TimeDateStamp as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ANON_OBJECT_HEADER_V2),
            "::",
            stringify!(TimeDateStamp)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ANON_OBJECT_HEADER_V2>())).ClassID as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(ANON_OBJECT_HEADER_V2),
            "::",
            stringify!(ClassID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ANON_OBJECT_HEADER_V2>())).SizeOfData as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(ANON_OBJECT_HEADER_V2),
            "::",
            stringify!(SizeOfData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ANON_OBJECT_HEADER_V2>())).Flags as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ANON_OBJECT_HEADER_V2),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ANON_OBJECT_HEADER_V2>())).MetaDataSize as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(ANON_OBJECT_HEADER_V2),
            "::",
            stringify!(MetaDataSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ANON_OBJECT_HEADER_V2>())).MetaDataOffset as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(ANON_OBJECT_HEADER_V2),
            "::",
            stringify!(MetaDataOffset)
        )
    );
}
#[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,
}
#[test]
fn bindgen_test_layout_ANON_OBJECT_HEADER_BIGOBJ() {
    assert_eq!(
        ::std::mem::size_of::<ANON_OBJECT_HEADER_BIGOBJ>(),
        56usize,
        concat!("Size of: ", stringify!(ANON_OBJECT_HEADER_BIGOBJ))
    );
    assert_eq!(
        ::std::mem::align_of::<ANON_OBJECT_HEADER_BIGOBJ>(),
        4usize,
        concat!("Alignment of ", stringify!(ANON_OBJECT_HEADER_BIGOBJ))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ANON_OBJECT_HEADER_BIGOBJ>())).Sig1 as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ANON_OBJECT_HEADER_BIGOBJ),
            "::",
            stringify!(Sig1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ANON_OBJECT_HEADER_BIGOBJ>())).Sig2 as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(ANON_OBJECT_HEADER_BIGOBJ),
            "::",
            stringify!(Sig2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ANON_OBJECT_HEADER_BIGOBJ>())).Version as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(ANON_OBJECT_HEADER_BIGOBJ),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ANON_OBJECT_HEADER_BIGOBJ>())).Machine as *const _ as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(ANON_OBJECT_HEADER_BIGOBJ),
            "::",
            stringify!(Machine)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ANON_OBJECT_HEADER_BIGOBJ>())).TimeDateStamp as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ANON_OBJECT_HEADER_BIGOBJ),
            "::",
            stringify!(TimeDateStamp)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ANON_OBJECT_HEADER_BIGOBJ>())).ClassID as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(ANON_OBJECT_HEADER_BIGOBJ),
            "::",
            stringify!(ClassID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ANON_OBJECT_HEADER_BIGOBJ>())).SizeOfData as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(ANON_OBJECT_HEADER_BIGOBJ),
            "::",
            stringify!(SizeOfData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ANON_OBJECT_HEADER_BIGOBJ>())).Flags as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ANON_OBJECT_HEADER_BIGOBJ),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ANON_OBJECT_HEADER_BIGOBJ>())).MetaDataSize as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(ANON_OBJECT_HEADER_BIGOBJ),
            "::",
            stringify!(MetaDataSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ANON_OBJECT_HEADER_BIGOBJ>())).MetaDataOffset as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(ANON_OBJECT_HEADER_BIGOBJ),
            "::",
            stringify!(MetaDataOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ANON_OBJECT_HEADER_BIGOBJ>())).NumberOfSections as *const _
                as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(ANON_OBJECT_HEADER_BIGOBJ),
            "::",
            stringify!(NumberOfSections)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ANON_OBJECT_HEADER_BIGOBJ>())).PointerToSymbolTable as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(ANON_OBJECT_HEADER_BIGOBJ),
            "::",
            stringify!(PointerToSymbolTable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ANON_OBJECT_HEADER_BIGOBJ>())).NumberOfSymbols as *const _
                as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(ANON_OBJECT_HEADER_BIGOBJ),
            "::",
            stringify!(NumberOfSymbols)
        )
    );
}
#[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,
}
#[test]
fn bindgen_test_layout__IMAGE_SECTION_HEADER__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_SECTION_HEADER__bindgen_ty_1>(),
        4usize,
        concat!("Size of: ", stringify!(_IMAGE_SECTION_HEADER__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_SECTION_HEADER__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_SECTION_HEADER__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SECTION_HEADER__bindgen_ty_1>())).PhysicalAddress
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SECTION_HEADER__bindgen_ty_1),
            "::",
            stringify!(PhysicalAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SECTION_HEADER__bindgen_ty_1>())).VirtualSize as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SECTION_HEADER__bindgen_ty_1),
            "::",
            stringify!(VirtualSize)
        )
    );
}
#[test]
fn bindgen_test_layout__IMAGE_SECTION_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_SECTION_HEADER>(),
        40usize,
        concat!("Size of: ", stringify!(_IMAGE_SECTION_HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_SECTION_HEADER>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_SECTION_HEADER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_SECTION_HEADER>())).Name as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SECTION_HEADER),
            "::",
            stringify!(Name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_SECTION_HEADER>())).Misc as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SECTION_HEADER),
            "::",
            stringify!(Misc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SECTION_HEADER>())).VirtualAddress as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SECTION_HEADER),
            "::",
            stringify!(VirtualAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SECTION_HEADER>())).SizeOfRawData as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SECTION_HEADER),
            "::",
            stringify!(SizeOfRawData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SECTION_HEADER>())).PointerToRawData as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SECTION_HEADER),
            "::",
            stringify!(PointerToRawData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SECTION_HEADER>())).PointerToRelocations as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SECTION_HEADER),
            "::",
            stringify!(PointerToRelocations)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SECTION_HEADER>())).PointerToLinenumbers as *const _
                as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SECTION_HEADER),
            "::",
            stringify!(PointerToLinenumbers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SECTION_HEADER>())).NumberOfRelocations as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SECTION_HEADER),
            "::",
            stringify!(NumberOfRelocations)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SECTION_HEADER>())).NumberOfLinenumbers as *const _
                as usize
        },
        34usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SECTION_HEADER),
            "::",
            stringify!(NumberOfLinenumbers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SECTION_HEADER>())).Characteristics as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SECTION_HEADER),
            "::",
            stringify!(Characteristics)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__IMAGE_SYMBOL__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_SYMBOL__bindgen_ty_1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_IMAGE_SYMBOL__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_SYMBOL__bindgen_ty_1__bindgen_ty_1>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_SYMBOL__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SYMBOL__bindgen_ty_1__bindgen_ty_1>())).Short as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SYMBOL__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Short)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SYMBOL__bindgen_ty_1__bindgen_ty_1>())).Long as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SYMBOL__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Long)
        )
    );
}
#[test]
fn bindgen_test_layout__IMAGE_SYMBOL__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_SYMBOL__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_IMAGE_SYMBOL__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_SYMBOL__bindgen_ty_1>(),
        2usize,
        concat!("Alignment of ", stringify!(_IMAGE_SYMBOL__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SYMBOL__bindgen_ty_1>())).ShortName as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SYMBOL__bindgen_ty_1),
            "::",
            stringify!(ShortName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SYMBOL__bindgen_ty_1>())).Name as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SYMBOL__bindgen_ty_1),
            "::",
            stringify!(Name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SYMBOL__bindgen_ty_1>())).LongName as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SYMBOL__bindgen_ty_1),
            "::",
            stringify!(LongName)
        )
    );
}
#[test]
fn bindgen_test_layout__IMAGE_SYMBOL() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_SYMBOL>(),
        18usize,
        concat!("Size of: ", stringify!(_IMAGE_SYMBOL))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_SYMBOL>(),
        2usize,
        concat!("Alignment of ", stringify!(_IMAGE_SYMBOL))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_SYMBOL>())).N as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SYMBOL),
            "::",
            stringify!(N)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_SYMBOL>())).Value as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SYMBOL),
            "::",
            stringify!(Value)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_SYMBOL>())).SectionNumber as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SYMBOL),
            "::",
            stringify!(SectionNumber)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_SYMBOL>())).Type as *const _ as usize },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SYMBOL),
            "::",
            stringify!(Type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_SYMBOL>())).StorageClass as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SYMBOL),
            "::",
            stringify!(StorageClass)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SYMBOL>())).NumberOfAuxSymbols as *const _ as usize
        },
        17usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SYMBOL),
            "::",
            stringify!(NumberOfAuxSymbols)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__IMAGE_SYMBOL_EX__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_SYMBOL_EX__bindgen_ty_1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_IMAGE_SYMBOL_EX__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_SYMBOL_EX__bindgen_ty_1__bindgen_ty_1>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_SYMBOL_EX__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SYMBOL_EX__bindgen_ty_1__bindgen_ty_1>())).Short
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SYMBOL_EX__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Short)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SYMBOL_EX__bindgen_ty_1__bindgen_ty_1>())).Long
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SYMBOL_EX__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Long)
        )
    );
}
#[test]
fn bindgen_test_layout__IMAGE_SYMBOL_EX__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_SYMBOL_EX__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_IMAGE_SYMBOL_EX__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_SYMBOL_EX__bindgen_ty_1>(),
        2usize,
        concat!("Alignment of ", stringify!(_IMAGE_SYMBOL_EX__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SYMBOL_EX__bindgen_ty_1>())).ShortName as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SYMBOL_EX__bindgen_ty_1),
            "::",
            stringify!(ShortName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SYMBOL_EX__bindgen_ty_1>())).Name as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SYMBOL_EX__bindgen_ty_1),
            "::",
            stringify!(Name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SYMBOL_EX__bindgen_ty_1>())).LongName as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SYMBOL_EX__bindgen_ty_1),
            "::",
            stringify!(LongName)
        )
    );
}
#[test]
fn bindgen_test_layout__IMAGE_SYMBOL_EX() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_SYMBOL_EX>(),
        20usize,
        concat!("Size of: ", stringify!(_IMAGE_SYMBOL_EX))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_SYMBOL_EX>(),
        2usize,
        concat!("Alignment of ", stringify!(_IMAGE_SYMBOL_EX))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_SYMBOL_EX>())).N as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SYMBOL_EX),
            "::",
            stringify!(N)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_SYMBOL_EX>())).Value as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SYMBOL_EX),
            "::",
            stringify!(Value)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_SYMBOL_EX>())).SectionNumber as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SYMBOL_EX),
            "::",
            stringify!(SectionNumber)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_SYMBOL_EX>())).Type as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SYMBOL_EX),
            "::",
            stringify!(Type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_SYMBOL_EX>())).StorageClass as *const _ as usize },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SYMBOL_EX),
            "::",
            stringify!(StorageClass)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SYMBOL_EX>())).NumberOfAuxSymbols as *const _ as usize
        },
        19usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SYMBOL_EX),
            "::",
            stringify!(NumberOfAuxSymbols)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_IMAGE_AUX_SYMBOL_TOKEN_DEF() {
    assert_eq!(
        ::std::mem::size_of::<IMAGE_AUX_SYMBOL_TOKEN_DEF>(),
        18usize,
        concat!("Size of: ", stringify!(IMAGE_AUX_SYMBOL_TOKEN_DEF))
    );
    assert_eq!(
        ::std::mem::align_of::<IMAGE_AUX_SYMBOL_TOKEN_DEF>(),
        2usize,
        concat!("Alignment of ", stringify!(IMAGE_AUX_SYMBOL_TOKEN_DEF))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IMAGE_AUX_SYMBOL_TOKEN_DEF>())).bAuxType as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IMAGE_AUX_SYMBOL_TOKEN_DEF),
            "::",
            stringify!(bAuxType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IMAGE_AUX_SYMBOL_TOKEN_DEF>())).bReserved as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(IMAGE_AUX_SYMBOL_TOKEN_DEF),
            "::",
            stringify!(bReserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IMAGE_AUX_SYMBOL_TOKEN_DEF>())).SymbolTableIndex as *const _
                as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(IMAGE_AUX_SYMBOL_TOKEN_DEF),
            "::",
            stringify!(SymbolTableIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IMAGE_AUX_SYMBOL_TOKEN_DEF>())).rgbReserved as *const _ as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(IMAGE_AUX_SYMBOL_TOKEN_DEF),
            "::",
            stringify!(rgbReserved)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .Linenumber as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Linenumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .Size as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Size)
        )
    );
}
#[test]
fn bindgen_test_layout__IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_1>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_1>())).LnSz
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(LnSz)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_1>())).TotalSize
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(TotalSize)
        )
    );
}
#[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,
}
#[test]
fn bindgen_test_layout__IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1>()))
                .PointerToLinenumber as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1),
            "::",
            stringify!(PointerToLinenumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1>()))
                .PointerToNextFunction as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1),
            "::",
            stringify!(PointerToNextFunction)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_2__bindgen_ty_2 {
    pub Dimension: [WORD; 4usize],
}
#[test]
fn bindgen_test_layout__IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_2__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_2__bindgen_ty_2>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_2__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_2__bindgen_ty_2>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_2__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_2__bindgen_ty_2>()))
                .Dimension as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_2__bindgen_ty_2),
            "::",
            stringify!(Dimension)
        )
    );
}
#[test]
fn bindgen_test_layout__IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_2>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_2>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_2>())).Function
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(Function)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_2>())).Array
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(Array)
        )
    );
}
#[test]
fn bindgen_test_layout__IMAGE_AUX_SYMBOL__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_AUX_SYMBOL__bindgen_ty_1>(),
        18usize,
        concat!("Size of: ", stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_AUX_SYMBOL__bindgen_ty_1>(),
        2usize,
        concat!("Alignment of ", stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL__bindgen_ty_1>())).TagIndex as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_1),
            "::",
            stringify!(TagIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL__bindgen_ty_1>())).Misc as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_1),
            "::",
            stringify!(Misc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL__bindgen_ty_1>())).FcnAry as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_1),
            "::",
            stringify!(FcnAry)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL__bindgen_ty_1>())).TvIndex as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_1),
            "::",
            stringify!(TvIndex)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_AUX_SYMBOL__bindgen_ty_2 {
    pub Name: [BYTE; 18usize],
}
#[test]
fn bindgen_test_layout__IMAGE_AUX_SYMBOL__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_AUX_SYMBOL__bindgen_ty_2>(),
        18usize,
        concat!("Size of: ", stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_2))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_AUX_SYMBOL__bindgen_ty_2>(),
        1usize,
        concat!("Alignment of ", stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_2))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL__bindgen_ty_2>())).Name as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_2),
            "::",
            stringify!(Name)
        )
    );
}
#[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,
    pub bReserved: BYTE,
    pub HighNumber: SHORT,
}
#[test]
fn bindgen_test_layout__IMAGE_AUX_SYMBOL__bindgen_ty_3() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_AUX_SYMBOL__bindgen_ty_3>(),
        18usize,
        concat!("Size of: ", stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_3))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_AUX_SYMBOL__bindgen_ty_3>(),
        2usize,
        concat!("Alignment of ", stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_3))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL__bindgen_ty_3>())).Length as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_3),
            "::",
            stringify!(Length)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL__bindgen_ty_3>())).NumberOfRelocations
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_3),
            "::",
            stringify!(NumberOfRelocations)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL__bindgen_ty_3>())).NumberOfLinenumbers
                as *const _ as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_3),
            "::",
            stringify!(NumberOfLinenumbers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL__bindgen_ty_3>())).CheckSum as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_3),
            "::",
            stringify!(CheckSum)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL__bindgen_ty_3>())).Number as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_3),
            "::",
            stringify!(Number)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL__bindgen_ty_3>())).Selection as *const _
                as usize
        },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_3),
            "::",
            stringify!(Selection)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL__bindgen_ty_3>())).bReserved as *const _
                as usize
        },
        15usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_3),
            "::",
            stringify!(bReserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL__bindgen_ty_3>())).HighNumber as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_3),
            "::",
            stringify!(HighNumber)
        )
    );
}
#[repr(C, packed(2))]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_AUX_SYMBOL__bindgen_ty_4 {
    pub crc: DWORD,
    pub rgbReserved: [BYTE; 14usize],
}
#[test]
fn bindgen_test_layout__IMAGE_AUX_SYMBOL__bindgen_ty_4() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_AUX_SYMBOL__bindgen_ty_4>(),
        18usize,
        concat!("Size of: ", stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_4))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_AUX_SYMBOL__bindgen_ty_4>(),
        2usize,
        concat!("Alignment of ", stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_4))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL__bindgen_ty_4>())).crc as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_4),
            "::",
            stringify!(crc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL__bindgen_ty_4>())).rgbReserved as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL__bindgen_ty_4),
            "::",
            stringify!(rgbReserved)
        )
    );
}
#[test]
fn bindgen_test_layout__IMAGE_AUX_SYMBOL() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_AUX_SYMBOL>(),
        18usize,
        concat!("Size of: ", stringify!(_IMAGE_AUX_SYMBOL))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_AUX_SYMBOL>(),
        2usize,
        concat!("Alignment of ", stringify!(_IMAGE_AUX_SYMBOL))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL>())).Sym as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL),
            "::",
            stringify!(Sym)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL>())).File as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL),
            "::",
            stringify!(File)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL>())).Section as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL),
            "::",
            stringify!(Section)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL>())).TokenDef as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL),
            "::",
            stringify!(TokenDef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL>())).CRC as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL),
            "::",
            stringify!(CRC)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__IMAGE_AUX_SYMBOL_EX__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_AUX_SYMBOL_EX__bindgen_ty_1>(),
        20usize,
        concat!("Size of: ", stringify!(_IMAGE_AUX_SYMBOL_EX__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_AUX_SYMBOL_EX__bindgen_ty_1>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_AUX_SYMBOL_EX__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL_EX__bindgen_ty_1>())).WeakDefaultSymIndex
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL_EX__bindgen_ty_1),
            "::",
            stringify!(WeakDefaultSymIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL_EX__bindgen_ty_1>())).WeakSearchType
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL_EX__bindgen_ty_1),
            "::",
            stringify!(WeakSearchType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL_EX__bindgen_ty_1>())).rgbReserved as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL_EX__bindgen_ty_1),
            "::",
            stringify!(rgbReserved)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_AUX_SYMBOL_EX__bindgen_ty_2 {
    pub Name: [BYTE; 20usize],
}
#[test]
fn bindgen_test_layout__IMAGE_AUX_SYMBOL_EX__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_AUX_SYMBOL_EX__bindgen_ty_2>(),
        20usize,
        concat!("Size of: ", stringify!(_IMAGE_AUX_SYMBOL_EX__bindgen_ty_2))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_AUX_SYMBOL_EX__bindgen_ty_2>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_AUX_SYMBOL_EX__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL_EX__bindgen_ty_2>())).Name as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL_EX__bindgen_ty_2),
            "::",
            stringify!(Name)
        )
    );
}
#[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],
}
#[test]
fn bindgen_test_layout__IMAGE_AUX_SYMBOL_EX__bindgen_ty_3() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_AUX_SYMBOL_EX__bindgen_ty_3>(),
        20usize,
        concat!("Size of: ", stringify!(_IMAGE_AUX_SYMBOL_EX__bindgen_ty_3))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_AUX_SYMBOL_EX__bindgen_ty_3>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_AUX_SYMBOL_EX__bindgen_ty_3)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL_EX__bindgen_ty_3>())).Length as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL_EX__bindgen_ty_3),
            "::",
            stringify!(Length)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL_EX__bindgen_ty_3>())).NumberOfRelocations
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL_EX__bindgen_ty_3),
            "::",
            stringify!(NumberOfRelocations)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL_EX__bindgen_ty_3>())).NumberOfLinenumbers
                as *const _ as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL_EX__bindgen_ty_3),
            "::",
            stringify!(NumberOfLinenumbers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL_EX__bindgen_ty_3>())).CheckSum as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL_EX__bindgen_ty_3),
            "::",
            stringify!(CheckSum)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL_EX__bindgen_ty_3>())).Number as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL_EX__bindgen_ty_3),
            "::",
            stringify!(Number)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL_EX__bindgen_ty_3>())).Selection as *const _
                as usize
        },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL_EX__bindgen_ty_3),
            "::",
            stringify!(Selection)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL_EX__bindgen_ty_3>())).bReserved as *const _
                as usize
        },
        15usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL_EX__bindgen_ty_3),
            "::",
            stringify!(bReserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL_EX__bindgen_ty_3>())).HighNumber as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL_EX__bindgen_ty_3),
            "::",
            stringify!(HighNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL_EX__bindgen_ty_3>())).rgbReserved as *const _
                as usize
        },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL_EX__bindgen_ty_3),
            "::",
            stringify!(rgbReserved)
        )
    );
}
#[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],
}
#[test]
fn bindgen_test_layout__IMAGE_AUX_SYMBOL_EX__bindgen_ty_4() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_AUX_SYMBOL_EX__bindgen_ty_4>(),
        20usize,
        concat!("Size of: ", stringify!(_IMAGE_AUX_SYMBOL_EX__bindgen_ty_4))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_AUX_SYMBOL_EX__bindgen_ty_4>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_AUX_SYMBOL_EX__bindgen_ty_4)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL_EX__bindgen_ty_4>())).TokenDef as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL_EX__bindgen_ty_4),
            "::",
            stringify!(TokenDef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL_EX__bindgen_ty_4>())).rgbReserved as *const _
                as usize
        },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL_EX__bindgen_ty_4),
            "::",
            stringify!(rgbReserved)
        )
    );
}
#[repr(C, packed(2))]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_AUX_SYMBOL_EX__bindgen_ty_5 {
    pub crc: DWORD,
    pub rgbReserved: [BYTE; 16usize],
}
#[test]
fn bindgen_test_layout__IMAGE_AUX_SYMBOL_EX__bindgen_ty_5() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_AUX_SYMBOL_EX__bindgen_ty_5>(),
        20usize,
        concat!("Size of: ", stringify!(_IMAGE_AUX_SYMBOL_EX__bindgen_ty_5))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_AUX_SYMBOL_EX__bindgen_ty_5>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_AUX_SYMBOL_EX__bindgen_ty_5)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL_EX__bindgen_ty_5>())).crc as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL_EX__bindgen_ty_5),
            "::",
            stringify!(crc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL_EX__bindgen_ty_5>())).rgbReserved as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL_EX__bindgen_ty_5),
            "::",
            stringify!(rgbReserved)
        )
    );
}
#[test]
fn bindgen_test_layout__IMAGE_AUX_SYMBOL_EX() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_AUX_SYMBOL_EX>(),
        20usize,
        concat!("Size of: ", stringify!(_IMAGE_AUX_SYMBOL_EX))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_AUX_SYMBOL_EX>(),
        2usize,
        concat!("Alignment of ", stringify!(_IMAGE_AUX_SYMBOL_EX))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL_EX>())).Sym as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL_EX),
            "::",
            stringify!(Sym)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL_EX>())).File as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL_EX),
            "::",
            stringify!(File)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL_EX>())).Section as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL_EX),
            "::",
            stringify!(Section)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_AUX_SYMBOL_EX>())).CRC as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_AUX_SYMBOL_EX),
            "::",
            stringify!(CRC)
        )
    );
}
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 = ::std::os::raw::c_int;
#[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],
}
#[test]
fn bindgen_test_layout__IMAGE_RELOCATION__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_RELOCATION__bindgen_ty_1>(),
        4usize,
        concat!("Size of: ", stringify!(_IMAGE_RELOCATION__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_RELOCATION__bindgen_ty_1>(),
        2usize,
        concat!("Alignment of ", stringify!(_IMAGE_RELOCATION__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_RELOCATION__bindgen_ty_1>())).VirtualAddress as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_RELOCATION__bindgen_ty_1),
            "::",
            stringify!(VirtualAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_RELOCATION__bindgen_ty_1>())).RelocCount as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_RELOCATION__bindgen_ty_1),
            "::",
            stringify!(RelocCount)
        )
    );
}
#[test]
fn bindgen_test_layout__IMAGE_RELOCATION() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_RELOCATION>(),
        10usize,
        concat!("Size of: ", stringify!(_IMAGE_RELOCATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_RELOCATION>(),
        2usize,
        concat!("Alignment of ", stringify!(_IMAGE_RELOCATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_RELOCATION>())).SymbolTableIndex as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_RELOCATION),
            "::",
            stringify!(SymbolTableIndex)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_RELOCATION>())).Type as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_RELOCATION),
            "::",
            stringify!(Type)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__IMAGE_LINENUMBER__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_LINENUMBER__bindgen_ty_1>(),
        4usize,
        concat!("Size of: ", stringify!(_IMAGE_LINENUMBER__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_LINENUMBER__bindgen_ty_1>(),
        2usize,
        concat!("Alignment of ", stringify!(_IMAGE_LINENUMBER__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LINENUMBER__bindgen_ty_1>())).SymbolTableIndex as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LINENUMBER__bindgen_ty_1),
            "::",
            stringify!(SymbolTableIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LINENUMBER__bindgen_ty_1>())).VirtualAddress as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LINENUMBER__bindgen_ty_1),
            "::",
            stringify!(VirtualAddress)
        )
    );
}
#[test]
fn bindgen_test_layout__IMAGE_LINENUMBER() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_LINENUMBER>(),
        6usize,
        concat!("Size of: ", stringify!(_IMAGE_LINENUMBER))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_LINENUMBER>(),
        2usize,
        concat!("Alignment of ", stringify!(_IMAGE_LINENUMBER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_LINENUMBER>())).Type as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LINENUMBER),
            "::",
            stringify!(Type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_LINENUMBER>())).Linenumber as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LINENUMBER),
            "::",
            stringify!(Linenumber)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__IMAGE_BASE_RELOCATION() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_BASE_RELOCATION>(),
        8usize,
        concat!("Size of: ", stringify!(_IMAGE_BASE_RELOCATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_BASE_RELOCATION>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_BASE_RELOCATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_BASE_RELOCATION>())).VirtualAddress as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_BASE_RELOCATION),
            "::",
            stringify!(VirtualAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_BASE_RELOCATION>())).SizeOfBlock as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_BASE_RELOCATION),
            "::",
            stringify!(SizeOfBlock)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__IMAGE_ARCHIVE_MEMBER_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_ARCHIVE_MEMBER_HEADER>(),
        60usize,
        concat!("Size of: ", stringify!(_IMAGE_ARCHIVE_MEMBER_HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_ARCHIVE_MEMBER_HEADER>(),
        1usize,
        concat!("Alignment of ", stringify!(_IMAGE_ARCHIVE_MEMBER_HEADER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ARCHIVE_MEMBER_HEADER>())).Name as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ARCHIVE_MEMBER_HEADER),
            "::",
            stringify!(Name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ARCHIVE_MEMBER_HEADER>())).Date as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ARCHIVE_MEMBER_HEADER),
            "::",
            stringify!(Date)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ARCHIVE_MEMBER_HEADER>())).UserID as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ARCHIVE_MEMBER_HEADER),
            "::",
            stringify!(UserID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ARCHIVE_MEMBER_HEADER>())).GroupID as *const _ as usize
        },
        34usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ARCHIVE_MEMBER_HEADER),
            "::",
            stringify!(GroupID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ARCHIVE_MEMBER_HEADER>())).Mode as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ARCHIVE_MEMBER_HEADER),
            "::",
            stringify!(Mode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ARCHIVE_MEMBER_HEADER>())).Size as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ARCHIVE_MEMBER_HEADER),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ARCHIVE_MEMBER_HEADER>())).EndHeader as *const _ as usize
        },
        58usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ARCHIVE_MEMBER_HEADER),
            "::",
            stringify!(EndHeader)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__IMAGE_EXPORT_DIRECTORY() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_EXPORT_DIRECTORY>(),
        40usize,
        concat!("Size of: ", stringify!(_IMAGE_EXPORT_DIRECTORY))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_EXPORT_DIRECTORY>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_EXPORT_DIRECTORY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_EXPORT_DIRECTORY>())).Characteristics as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_EXPORT_DIRECTORY),
            "::",
            stringify!(Characteristics)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_EXPORT_DIRECTORY>())).TimeDateStamp as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_EXPORT_DIRECTORY),
            "::",
            stringify!(TimeDateStamp)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_EXPORT_DIRECTORY>())).MajorVersion as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_EXPORT_DIRECTORY),
            "::",
            stringify!(MajorVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_EXPORT_DIRECTORY>())).MinorVersion as *const _ as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_EXPORT_DIRECTORY),
            "::",
            stringify!(MinorVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_EXPORT_DIRECTORY>())).Name as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_EXPORT_DIRECTORY),
            "::",
            stringify!(Name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_EXPORT_DIRECTORY>())).Base as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_EXPORT_DIRECTORY),
            "::",
            stringify!(Base)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_EXPORT_DIRECTORY>())).NumberOfFunctions as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_EXPORT_DIRECTORY),
            "::",
            stringify!(NumberOfFunctions)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_EXPORT_DIRECTORY>())).NumberOfNames as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_EXPORT_DIRECTORY),
            "::",
            stringify!(NumberOfNames)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_EXPORT_DIRECTORY>())).AddressOfFunctions as *const _
                as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_EXPORT_DIRECTORY),
            "::",
            stringify!(AddressOfFunctions)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_EXPORT_DIRECTORY>())).AddressOfNames as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_EXPORT_DIRECTORY),
            "::",
            stringify!(AddressOfNames)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_EXPORT_DIRECTORY>())).AddressOfNameOrdinals as *const _
                as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_EXPORT_DIRECTORY),
            "::",
            stringify!(AddressOfNameOrdinals)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__IMAGE_IMPORT_BY_NAME() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_IMPORT_BY_NAME>(),
        4usize,
        concat!("Size of: ", stringify!(_IMAGE_IMPORT_BY_NAME))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_IMPORT_BY_NAME>(),
        2usize,
        concat!("Alignment of ", stringify!(_IMAGE_IMPORT_BY_NAME))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_IMPORT_BY_NAME>())).Hint as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_IMPORT_BY_NAME),
            "::",
            stringify!(Hint)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_IMPORT_BY_NAME>())).Name as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_IMPORT_BY_NAME),
            "::",
            stringify!(Name)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__IMAGE_THUNK_DATA64__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_THUNK_DATA64__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_IMAGE_THUNK_DATA64__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_THUNK_DATA64__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_THUNK_DATA64__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_THUNK_DATA64__bindgen_ty_1>())).ForwarderString
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_THUNK_DATA64__bindgen_ty_1),
            "::",
            stringify!(ForwarderString)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_THUNK_DATA64__bindgen_ty_1>())).Function as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_THUNK_DATA64__bindgen_ty_1),
            "::",
            stringify!(Function)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_THUNK_DATA64__bindgen_ty_1>())).Ordinal as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_THUNK_DATA64__bindgen_ty_1),
            "::",
            stringify!(Ordinal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_THUNK_DATA64__bindgen_ty_1>())).AddressOfData as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_THUNK_DATA64__bindgen_ty_1),
            "::",
            stringify!(AddressOfData)
        )
    );
}
#[test]
fn bindgen_test_layout__IMAGE_THUNK_DATA64() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_THUNK_DATA64>(),
        8usize,
        concat!("Size of: ", stringify!(_IMAGE_THUNK_DATA64))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_THUNK_DATA64>(),
        8usize,
        concat!("Alignment of ", stringify!(_IMAGE_THUNK_DATA64))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_THUNK_DATA64>())).u1 as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_THUNK_DATA64),
            "::",
            stringify!(u1)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__IMAGE_THUNK_DATA32__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_THUNK_DATA32__bindgen_ty_1>(),
        4usize,
        concat!("Size of: ", stringify!(_IMAGE_THUNK_DATA32__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_THUNK_DATA32__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_THUNK_DATA32__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_THUNK_DATA32__bindgen_ty_1>())).ForwarderString
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_THUNK_DATA32__bindgen_ty_1),
            "::",
            stringify!(ForwarderString)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_THUNK_DATA32__bindgen_ty_1>())).Function as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_THUNK_DATA32__bindgen_ty_1),
            "::",
            stringify!(Function)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_THUNK_DATA32__bindgen_ty_1>())).Ordinal as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_THUNK_DATA32__bindgen_ty_1),
            "::",
            stringify!(Ordinal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_THUNK_DATA32__bindgen_ty_1>())).AddressOfData as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_THUNK_DATA32__bindgen_ty_1),
            "::",
            stringify!(AddressOfData)
        )
    );
}
#[test]
fn bindgen_test_layout__IMAGE_THUNK_DATA32() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_THUNK_DATA32>(),
        4usize,
        concat!("Size of: ", stringify!(_IMAGE_THUNK_DATA32))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_THUNK_DATA32>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_THUNK_DATA32))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_THUNK_DATA32>())).u1 as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_THUNK_DATA32),
            "::",
            stringify!(u1)
        )
    );
}
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(Copy, Clone)]
pub struct _IMAGE_TLS_DIRECTORY64 {
    pub StartAddressOfRawData: ULONGLONG,
    pub EndAddressOfRawData: ULONGLONG,
    pub AddressOfIndex: ULONGLONG,
    pub AddressOfCallBacks: ULONGLONG,
    pub SizeOfZeroFill: DWORD,
    pub __bindgen_anon_1: _IMAGE_TLS_DIRECTORY64__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _IMAGE_TLS_DIRECTORY64__bindgen_ty_1 {
    pub Characteristics: DWORD,
    pub __bindgen_anon_1: _IMAGE_TLS_DIRECTORY64__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_TLS_DIRECTORY64__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
#[test]
fn bindgen_test_layout__IMAGE_TLS_DIRECTORY64__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_TLS_DIRECTORY64__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_IMAGE_TLS_DIRECTORY64__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_TLS_DIRECTORY64__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_TLS_DIRECTORY64__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
impl _IMAGE_TLS_DIRECTORY64__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn Reserved0(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 20u8) as u32) }
    }
    #[inline]
    pub fn set_Reserved0(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 20u8, val as u64)
        }
    }
    #[inline]
    pub fn Alignment(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(20usize, 4u8) as u32) }
    }
    #[inline]
    pub fn set_Alignment(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(20usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub fn Reserved1(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(24usize, 8u8) as u32) }
    }
    #[inline]
    pub fn set_Reserved1(&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(
        Reserved0: DWORD,
        Alignment: DWORD,
        Reserved1: DWORD,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 20u8, {
            let Reserved0: u32 = unsafe { ::std::mem::transmute(Reserved0) };
            Reserved0 as u64
        });
        __bindgen_bitfield_unit.set(20usize, 4u8, {
            let Alignment: u32 = unsafe { ::std::mem::transmute(Alignment) };
            Alignment as u64
        });
        __bindgen_bitfield_unit.set(24usize, 8u8, {
            let Reserved1: u32 = unsafe { ::std::mem::transmute(Reserved1) };
            Reserved1 as u64
        });
        __bindgen_bitfield_unit
    }
}
#[test]
fn bindgen_test_layout__IMAGE_TLS_DIRECTORY64__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_TLS_DIRECTORY64__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_IMAGE_TLS_DIRECTORY64__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_TLS_DIRECTORY64__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_TLS_DIRECTORY64__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_TLS_DIRECTORY64__bindgen_ty_1>())).Characteristics
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_TLS_DIRECTORY64__bindgen_ty_1),
            "::",
            stringify!(Characteristics)
        )
    );
}
#[test]
fn bindgen_test_layout__IMAGE_TLS_DIRECTORY64() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_TLS_DIRECTORY64>(),
        40usize,
        concat!("Size of: ", stringify!(_IMAGE_TLS_DIRECTORY64))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_TLS_DIRECTORY64>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_TLS_DIRECTORY64))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_TLS_DIRECTORY64>())).StartAddressOfRawData as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_TLS_DIRECTORY64),
            "::",
            stringify!(StartAddressOfRawData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_TLS_DIRECTORY64>())).EndAddressOfRawData as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_TLS_DIRECTORY64),
            "::",
            stringify!(EndAddressOfRawData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_TLS_DIRECTORY64>())).AddressOfIndex as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_TLS_DIRECTORY64),
            "::",
            stringify!(AddressOfIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_TLS_DIRECTORY64>())).AddressOfCallBacks as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_TLS_DIRECTORY64),
            "::",
            stringify!(AddressOfCallBacks)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_TLS_DIRECTORY64>())).SizeOfZeroFill as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_TLS_DIRECTORY64),
            "::",
            stringify!(SizeOfZeroFill)
        )
    );
}
pub type IMAGE_TLS_DIRECTORY64 = _IMAGE_TLS_DIRECTORY64;
pub type PIMAGE_TLS_DIRECTORY64 = *mut IMAGE_TLS_DIRECTORY64;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _IMAGE_TLS_DIRECTORY32 {
    pub StartAddressOfRawData: DWORD,
    pub EndAddressOfRawData: DWORD,
    pub AddressOfIndex: DWORD,
    pub AddressOfCallBacks: DWORD,
    pub SizeOfZeroFill: DWORD,
    pub __bindgen_anon_1: _IMAGE_TLS_DIRECTORY32__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _IMAGE_TLS_DIRECTORY32__bindgen_ty_1 {
    pub Characteristics: DWORD,
    pub __bindgen_anon_1: _IMAGE_TLS_DIRECTORY32__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_TLS_DIRECTORY32__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
#[test]
fn bindgen_test_layout__IMAGE_TLS_DIRECTORY32__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_TLS_DIRECTORY32__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_IMAGE_TLS_DIRECTORY32__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_TLS_DIRECTORY32__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_TLS_DIRECTORY32__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
impl _IMAGE_TLS_DIRECTORY32__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn Reserved0(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 20u8) as u32) }
    }
    #[inline]
    pub fn set_Reserved0(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 20u8, val as u64)
        }
    }
    #[inline]
    pub fn Alignment(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(20usize, 4u8) as u32) }
    }
    #[inline]
    pub fn set_Alignment(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(20usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub fn Reserved1(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(24usize, 8u8) as u32) }
    }
    #[inline]
    pub fn set_Reserved1(&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(
        Reserved0: DWORD,
        Alignment: DWORD,
        Reserved1: DWORD,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 20u8, {
            let Reserved0: u32 = unsafe { ::std::mem::transmute(Reserved0) };
            Reserved0 as u64
        });
        __bindgen_bitfield_unit.set(20usize, 4u8, {
            let Alignment: u32 = unsafe { ::std::mem::transmute(Alignment) };
            Alignment as u64
        });
        __bindgen_bitfield_unit.set(24usize, 8u8, {
            let Reserved1: u32 = unsafe { ::std::mem::transmute(Reserved1) };
            Reserved1 as u64
        });
        __bindgen_bitfield_unit
    }
}
#[test]
fn bindgen_test_layout__IMAGE_TLS_DIRECTORY32__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_TLS_DIRECTORY32__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_IMAGE_TLS_DIRECTORY32__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_TLS_DIRECTORY32__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_TLS_DIRECTORY32__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_TLS_DIRECTORY32__bindgen_ty_1>())).Characteristics
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_TLS_DIRECTORY32__bindgen_ty_1),
            "::",
            stringify!(Characteristics)
        )
    );
}
#[test]
fn bindgen_test_layout__IMAGE_TLS_DIRECTORY32() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_TLS_DIRECTORY32>(),
        24usize,
        concat!("Size of: ", stringify!(_IMAGE_TLS_DIRECTORY32))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_TLS_DIRECTORY32>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_TLS_DIRECTORY32))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_TLS_DIRECTORY32>())).StartAddressOfRawData as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_TLS_DIRECTORY32),
            "::",
            stringify!(StartAddressOfRawData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_TLS_DIRECTORY32>())).EndAddressOfRawData as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_TLS_DIRECTORY32),
            "::",
            stringify!(EndAddressOfRawData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_TLS_DIRECTORY32>())).AddressOfIndex as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_TLS_DIRECTORY32),
            "::",
            stringify!(AddressOfIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_TLS_DIRECTORY32>())).AddressOfCallBacks as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_TLS_DIRECTORY32),
            "::",
            stringify!(AddressOfCallBacks)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_TLS_DIRECTORY32>())).SizeOfZeroFill as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_TLS_DIRECTORY32),
            "::",
            stringify!(SizeOfZeroFill)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__IMAGE_IMPORT_DESCRIPTOR__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_IMPORT_DESCRIPTOR__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_IMAGE_IMPORT_DESCRIPTOR__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_IMPORT_DESCRIPTOR__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_IMPORT_DESCRIPTOR__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_IMPORT_DESCRIPTOR__bindgen_ty_1>())).Characteristics
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_IMPORT_DESCRIPTOR__bindgen_ty_1),
            "::",
            stringify!(Characteristics)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_IMPORT_DESCRIPTOR__bindgen_ty_1>())).OriginalFirstThunk
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_IMPORT_DESCRIPTOR__bindgen_ty_1),
            "::",
            stringify!(OriginalFirstThunk)
        )
    );
}
#[test]
fn bindgen_test_layout__IMAGE_IMPORT_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_IMPORT_DESCRIPTOR>(),
        20usize,
        concat!("Size of: ", stringify!(_IMAGE_IMPORT_DESCRIPTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_IMPORT_DESCRIPTOR>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_IMPORT_DESCRIPTOR))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_IMPORT_DESCRIPTOR>())).TimeDateStamp as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_IMPORT_DESCRIPTOR),
            "::",
            stringify!(TimeDateStamp)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_IMPORT_DESCRIPTOR>())).ForwarderChain as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_IMPORT_DESCRIPTOR),
            "::",
            stringify!(ForwarderChain)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_IMPORT_DESCRIPTOR>())).Name as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_IMPORT_DESCRIPTOR),
            "::",
            stringify!(Name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_IMPORT_DESCRIPTOR>())).FirstThunk as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_IMPORT_DESCRIPTOR),
            "::",
            stringify!(FirstThunk)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__IMAGE_BOUND_IMPORT_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_BOUND_IMPORT_DESCRIPTOR>(),
        8usize,
        concat!("Size of: ", stringify!(_IMAGE_BOUND_IMPORT_DESCRIPTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_BOUND_IMPORT_DESCRIPTOR>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_BOUND_IMPORT_DESCRIPTOR))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_BOUND_IMPORT_DESCRIPTOR>())).TimeDateStamp as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_BOUND_IMPORT_DESCRIPTOR),
            "::",
            stringify!(TimeDateStamp)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_BOUND_IMPORT_DESCRIPTOR>())).OffsetModuleName as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_BOUND_IMPORT_DESCRIPTOR),
            "::",
            stringify!(OffsetModuleName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_BOUND_IMPORT_DESCRIPTOR>())).NumberOfModuleForwarderRefs
                as *const _ as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_BOUND_IMPORT_DESCRIPTOR),
            "::",
            stringify!(NumberOfModuleForwarderRefs)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__IMAGE_BOUND_FORWARDER_REF() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_BOUND_FORWARDER_REF>(),
        8usize,
        concat!("Size of: ", stringify!(_IMAGE_BOUND_FORWARDER_REF))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_BOUND_FORWARDER_REF>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_BOUND_FORWARDER_REF))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_BOUND_FORWARDER_REF>())).TimeDateStamp as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_BOUND_FORWARDER_REF),
            "::",
            stringify!(TimeDateStamp)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_BOUND_FORWARDER_REF>())).OffsetModuleName as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_BOUND_FORWARDER_REF),
            "::",
            stringify!(OffsetModuleName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_BOUND_FORWARDER_REF>())).Reserved as *const _ as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_BOUND_FORWARDER_REF),
            "::",
            stringify!(Reserved)
        )
    );
}
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>,
}
#[test]
fn bindgen_test_layout__IMAGE_DELAYLOAD_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_DELAYLOAD_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_IMAGE_DELAYLOAD_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_DELAYLOAD_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_DELAYLOAD_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
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
    }
}
#[test]
fn bindgen_test_layout__IMAGE_DELAYLOAD_DESCRIPTOR__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_DELAYLOAD_DESCRIPTOR__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_IMAGE_DELAYLOAD_DESCRIPTOR__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_DELAYLOAD_DESCRIPTOR__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_DELAYLOAD_DESCRIPTOR__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DELAYLOAD_DESCRIPTOR__bindgen_ty_1>())).AllAttributes
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DELAYLOAD_DESCRIPTOR__bindgen_ty_1),
            "::",
            stringify!(AllAttributes)
        )
    );
}
#[test]
fn bindgen_test_layout__IMAGE_DELAYLOAD_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_DELAYLOAD_DESCRIPTOR>(),
        32usize,
        concat!("Size of: ", stringify!(_IMAGE_DELAYLOAD_DESCRIPTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_DELAYLOAD_DESCRIPTOR>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_DELAYLOAD_DESCRIPTOR))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DELAYLOAD_DESCRIPTOR>())).Attributes as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DELAYLOAD_DESCRIPTOR),
            "::",
            stringify!(Attributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DELAYLOAD_DESCRIPTOR>())).DllNameRVA as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DELAYLOAD_DESCRIPTOR),
            "::",
            stringify!(DllNameRVA)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DELAYLOAD_DESCRIPTOR>())).ModuleHandleRVA as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DELAYLOAD_DESCRIPTOR),
            "::",
            stringify!(ModuleHandleRVA)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DELAYLOAD_DESCRIPTOR>())).ImportAddressTableRVA
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DELAYLOAD_DESCRIPTOR),
            "::",
            stringify!(ImportAddressTableRVA)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DELAYLOAD_DESCRIPTOR>())).ImportNameTableRVA as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DELAYLOAD_DESCRIPTOR),
            "::",
            stringify!(ImportNameTableRVA)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DELAYLOAD_DESCRIPTOR>())).BoundImportAddressTableRVA
                as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DELAYLOAD_DESCRIPTOR),
            "::",
            stringify!(BoundImportAddressTableRVA)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DELAYLOAD_DESCRIPTOR>())).UnloadInformationTableRVA
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DELAYLOAD_DESCRIPTOR),
            "::",
            stringify!(UnloadInformationTableRVA)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DELAYLOAD_DESCRIPTOR>())).TimeDateStamp as *const _
                as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DELAYLOAD_DESCRIPTOR),
            "::",
            stringify!(TimeDateStamp)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__IMAGE_RESOURCE_DIRECTORY() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_RESOURCE_DIRECTORY>(),
        16usize,
        concat!("Size of: ", stringify!(_IMAGE_RESOURCE_DIRECTORY))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_RESOURCE_DIRECTORY>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_RESOURCE_DIRECTORY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_RESOURCE_DIRECTORY>())).Characteristics as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_RESOURCE_DIRECTORY),
            "::",
            stringify!(Characteristics)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_RESOURCE_DIRECTORY>())).TimeDateStamp as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_RESOURCE_DIRECTORY),
            "::",
            stringify!(TimeDateStamp)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_RESOURCE_DIRECTORY>())).MajorVersion as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_RESOURCE_DIRECTORY),
            "::",
            stringify!(MajorVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_RESOURCE_DIRECTORY>())).MinorVersion as *const _ as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_RESOURCE_DIRECTORY),
            "::",
            stringify!(MinorVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_RESOURCE_DIRECTORY>())).NumberOfNamedEntries as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_RESOURCE_DIRECTORY),
            "::",
            stringify!(NumberOfNamedEntries)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_RESOURCE_DIRECTORY>())).NumberOfIdEntries as *const _
                as usize
        },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_RESOURCE_DIRECTORY),
            "::",
            stringify!(NumberOfIdEntries)
        )
    );
}
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>,
}
#[test]
fn bindgen_test_layout__IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
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
    }
}
#[test]
fn bindgen_test_layout__IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_1>())).Name
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_1),
            "::",
            stringify!(Name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_1>())).Id as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_1),
            "::",
            stringify!(Id)
        )
    );
}
#[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>,
}
#[test]
fn bindgen_test_layout__IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_2__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_2__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_2__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_2__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_2__bindgen_ty_1)
        )
    );
}
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
    }
}
#[test]
fn bindgen_test_layout__IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_2>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_2>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_2>())).OffsetToData
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_RESOURCE_DIRECTORY_ENTRY__bindgen_ty_2),
            "::",
            stringify!(OffsetToData)
        )
    );
}
#[test]
fn bindgen_test_layout__IMAGE_RESOURCE_DIRECTORY_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_RESOURCE_DIRECTORY_ENTRY>(),
        8usize,
        concat!("Size of: ", stringify!(_IMAGE_RESOURCE_DIRECTORY_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_RESOURCE_DIRECTORY_ENTRY>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_RESOURCE_DIRECTORY_ENTRY))
    );
}
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],
}
#[test]
fn bindgen_test_layout__IMAGE_RESOURCE_DIRECTORY_STRING() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_RESOURCE_DIRECTORY_STRING>(),
        4usize,
        concat!("Size of: ", stringify!(_IMAGE_RESOURCE_DIRECTORY_STRING))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_RESOURCE_DIRECTORY_STRING>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_RESOURCE_DIRECTORY_STRING)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_RESOURCE_DIRECTORY_STRING>())).Length as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_RESOURCE_DIRECTORY_STRING),
            "::",
            stringify!(Length)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_RESOURCE_DIRECTORY_STRING>())).NameString as *const _
                as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_RESOURCE_DIRECTORY_STRING),
            "::",
            stringify!(NameString)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__IMAGE_RESOURCE_DIR_STRING_U() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_RESOURCE_DIR_STRING_U>(),
        4usize,
        concat!("Size of: ", stringify!(_IMAGE_RESOURCE_DIR_STRING_U))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_RESOURCE_DIR_STRING_U>(),
        2usize,
        concat!("Alignment of ", stringify!(_IMAGE_RESOURCE_DIR_STRING_U))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_RESOURCE_DIR_STRING_U>())).Length as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_RESOURCE_DIR_STRING_U),
            "::",
            stringify!(Length)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_RESOURCE_DIR_STRING_U>())).NameString as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_RESOURCE_DIR_STRING_U),
            "::",
            stringify!(NameString)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__IMAGE_RESOURCE_DATA_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_RESOURCE_DATA_ENTRY>(),
        16usize,
        concat!("Size of: ", stringify!(_IMAGE_RESOURCE_DATA_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_RESOURCE_DATA_ENTRY>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_RESOURCE_DATA_ENTRY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_RESOURCE_DATA_ENTRY>())).OffsetToData as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_RESOURCE_DATA_ENTRY),
            "::",
            stringify!(OffsetToData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_RESOURCE_DATA_ENTRY>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_RESOURCE_DATA_ENTRY),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_RESOURCE_DATA_ENTRY>())).CodePage as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_RESOURCE_DATA_ENTRY),
            "::",
            stringify!(CodePage)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_RESOURCE_DATA_ENTRY>())).Reserved as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_RESOURCE_DATA_ENTRY),
            "::",
            stringify!(Reserved)
        )
    );
}
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_CODE_INTEGRITY {
    pub Flags: WORD,
    pub Catalog: WORD,
    pub CatalogOffset: DWORD,
    pub Reserved: DWORD,
}
#[test]
fn bindgen_test_layout__IMAGE_LOAD_CONFIG_CODE_INTEGRITY() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_LOAD_CONFIG_CODE_INTEGRITY>(),
        12usize,
        concat!("Size of: ", stringify!(_IMAGE_LOAD_CONFIG_CODE_INTEGRITY))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_LOAD_CONFIG_CODE_INTEGRITY>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_LOAD_CONFIG_CODE_INTEGRITY)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_CODE_INTEGRITY>())).Flags as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_CODE_INTEGRITY),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_CODE_INTEGRITY>())).Catalog as *const _
                as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_CODE_INTEGRITY),
            "::",
            stringify!(Catalog)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_CODE_INTEGRITY>())).CatalogOffset as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_CODE_INTEGRITY),
            "::",
            stringify!(CatalogOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_CODE_INTEGRITY>())).Reserved as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_CODE_INTEGRITY),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type IMAGE_LOAD_CONFIG_CODE_INTEGRITY = _IMAGE_LOAD_CONFIG_CODE_INTEGRITY;
pub type PIMAGE_LOAD_CONFIG_CODE_INTEGRITY = *mut _IMAGE_LOAD_CONFIG_CODE_INTEGRITY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_DYNAMIC_RELOCATION_TABLE {
    pub Version: DWORD,
    pub Size: DWORD,
}
#[test]
fn bindgen_test_layout__IMAGE_DYNAMIC_RELOCATION_TABLE() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_DYNAMIC_RELOCATION_TABLE>(),
        8usize,
        concat!("Size of: ", stringify!(_IMAGE_DYNAMIC_RELOCATION_TABLE))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_DYNAMIC_RELOCATION_TABLE>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_DYNAMIC_RELOCATION_TABLE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DYNAMIC_RELOCATION_TABLE>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DYNAMIC_RELOCATION_TABLE),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DYNAMIC_RELOCATION_TABLE>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DYNAMIC_RELOCATION_TABLE),
            "::",
            stringify!(Size)
        )
    );
}
pub type IMAGE_DYNAMIC_RELOCATION_TABLE = _IMAGE_DYNAMIC_RELOCATION_TABLE;
pub type PIMAGE_DYNAMIC_RELOCATION_TABLE = *mut _IMAGE_DYNAMIC_RELOCATION_TABLE;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_DYNAMIC_RELOCATION32 {
    pub Symbol: DWORD,
    pub BaseRelocSize: DWORD,
}
#[test]
fn bindgen_test_layout__IMAGE_DYNAMIC_RELOCATION32() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_DYNAMIC_RELOCATION32>(),
        8usize,
        concat!("Size of: ", stringify!(_IMAGE_DYNAMIC_RELOCATION32))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_DYNAMIC_RELOCATION32>(),
        1usize,
        concat!("Alignment of ", stringify!(_IMAGE_DYNAMIC_RELOCATION32))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DYNAMIC_RELOCATION32>())).Symbol as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DYNAMIC_RELOCATION32),
            "::",
            stringify!(Symbol)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DYNAMIC_RELOCATION32>())).BaseRelocSize as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DYNAMIC_RELOCATION32),
            "::",
            stringify!(BaseRelocSize)
        )
    );
}
pub type IMAGE_DYNAMIC_RELOCATION32 = _IMAGE_DYNAMIC_RELOCATION32;
pub type PIMAGE_DYNAMIC_RELOCATION32 = *mut _IMAGE_DYNAMIC_RELOCATION32;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_DYNAMIC_RELOCATION64 {
    pub Symbol: ULONGLONG,
    pub BaseRelocSize: DWORD,
}
#[test]
fn bindgen_test_layout__IMAGE_DYNAMIC_RELOCATION64() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_DYNAMIC_RELOCATION64>(),
        12usize,
        concat!("Size of: ", stringify!(_IMAGE_DYNAMIC_RELOCATION64))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_DYNAMIC_RELOCATION64>(),
        1usize,
        concat!("Alignment of ", stringify!(_IMAGE_DYNAMIC_RELOCATION64))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DYNAMIC_RELOCATION64>())).Symbol as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DYNAMIC_RELOCATION64),
            "::",
            stringify!(Symbol)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DYNAMIC_RELOCATION64>())).BaseRelocSize as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DYNAMIC_RELOCATION64),
            "::",
            stringify!(BaseRelocSize)
        )
    );
}
pub type IMAGE_DYNAMIC_RELOCATION64 = _IMAGE_DYNAMIC_RELOCATION64;
pub type PIMAGE_DYNAMIC_RELOCATION64 = *mut _IMAGE_DYNAMIC_RELOCATION64;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_DYNAMIC_RELOCATION32_V2 {
    pub HeaderSize: DWORD,
    pub FixupInfoSize: DWORD,
    pub Symbol: DWORD,
    pub SymbolGroup: DWORD,
    pub Flags: DWORD,
}
#[test]
fn bindgen_test_layout__IMAGE_DYNAMIC_RELOCATION32_V2() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_DYNAMIC_RELOCATION32_V2>(),
        20usize,
        concat!("Size of: ", stringify!(_IMAGE_DYNAMIC_RELOCATION32_V2))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_DYNAMIC_RELOCATION32_V2>(),
        1usize,
        concat!("Alignment of ", stringify!(_IMAGE_DYNAMIC_RELOCATION32_V2))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DYNAMIC_RELOCATION32_V2>())).HeaderSize as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DYNAMIC_RELOCATION32_V2),
            "::",
            stringify!(HeaderSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DYNAMIC_RELOCATION32_V2>())).FixupInfoSize as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DYNAMIC_RELOCATION32_V2),
            "::",
            stringify!(FixupInfoSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DYNAMIC_RELOCATION32_V2>())).Symbol as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DYNAMIC_RELOCATION32_V2),
            "::",
            stringify!(Symbol)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DYNAMIC_RELOCATION32_V2>())).SymbolGroup as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DYNAMIC_RELOCATION32_V2),
            "::",
            stringify!(SymbolGroup)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DYNAMIC_RELOCATION32_V2>())).Flags as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DYNAMIC_RELOCATION32_V2),
            "::",
            stringify!(Flags)
        )
    );
}
pub type IMAGE_DYNAMIC_RELOCATION32_V2 = _IMAGE_DYNAMIC_RELOCATION32_V2;
pub type PIMAGE_DYNAMIC_RELOCATION32_V2 = *mut _IMAGE_DYNAMIC_RELOCATION32_V2;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_DYNAMIC_RELOCATION64_V2 {
    pub HeaderSize: DWORD,
    pub FixupInfoSize: DWORD,
    pub Symbol: ULONGLONG,
    pub SymbolGroup: DWORD,
    pub Flags: DWORD,
}
#[test]
fn bindgen_test_layout__IMAGE_DYNAMIC_RELOCATION64_V2() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_DYNAMIC_RELOCATION64_V2>(),
        24usize,
        concat!("Size of: ", stringify!(_IMAGE_DYNAMIC_RELOCATION64_V2))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_DYNAMIC_RELOCATION64_V2>(),
        1usize,
        concat!("Alignment of ", stringify!(_IMAGE_DYNAMIC_RELOCATION64_V2))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DYNAMIC_RELOCATION64_V2>())).HeaderSize as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DYNAMIC_RELOCATION64_V2),
            "::",
            stringify!(HeaderSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DYNAMIC_RELOCATION64_V2>())).FixupInfoSize as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DYNAMIC_RELOCATION64_V2),
            "::",
            stringify!(FixupInfoSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DYNAMIC_RELOCATION64_V2>())).Symbol as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DYNAMIC_RELOCATION64_V2),
            "::",
            stringify!(Symbol)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DYNAMIC_RELOCATION64_V2>())).SymbolGroup as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DYNAMIC_RELOCATION64_V2),
            "::",
            stringify!(SymbolGroup)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DYNAMIC_RELOCATION64_V2>())).Flags as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DYNAMIC_RELOCATION64_V2),
            "::",
            stringify!(Flags)
        )
    );
}
pub type IMAGE_DYNAMIC_RELOCATION64_V2 = _IMAGE_DYNAMIC_RELOCATION64_V2;
pub type PIMAGE_DYNAMIC_RELOCATION64_V2 = *mut _IMAGE_DYNAMIC_RELOCATION64_V2;
pub type IMAGE_DYNAMIC_RELOCATION = IMAGE_DYNAMIC_RELOCATION64;
pub type PIMAGE_DYNAMIC_RELOCATION = PIMAGE_DYNAMIC_RELOCATION64;
pub type IMAGE_DYNAMIC_RELOCATION_V2 = IMAGE_DYNAMIC_RELOCATION64_V2;
pub type PIMAGE_DYNAMIC_RELOCATION_V2 = PIMAGE_DYNAMIC_RELOCATION64_V2;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_PROLOGUE_DYNAMIC_RELOCATION_HEADER {
    pub PrologueByteCount: BYTE,
}
#[test]
fn bindgen_test_layout__IMAGE_PROLOGUE_DYNAMIC_RELOCATION_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_PROLOGUE_DYNAMIC_RELOCATION_HEADER>(),
        1usize,
        concat!(
            "Size of: ",
            stringify!(_IMAGE_PROLOGUE_DYNAMIC_RELOCATION_HEADER)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_PROLOGUE_DYNAMIC_RELOCATION_HEADER>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_PROLOGUE_DYNAMIC_RELOCATION_HEADER)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_PROLOGUE_DYNAMIC_RELOCATION_HEADER>())).PrologueByteCount
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_PROLOGUE_DYNAMIC_RELOCATION_HEADER),
            "::",
            stringify!(PrologueByteCount)
        )
    );
}
pub type IMAGE_PROLOGUE_DYNAMIC_RELOCATION_HEADER = _IMAGE_PROLOGUE_DYNAMIC_RELOCATION_HEADER;
pub type PIMAGE_PROLOGUE_DYNAMIC_RELOCATION_HEADER = *mut IMAGE_PROLOGUE_DYNAMIC_RELOCATION_HEADER;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_EPILOGUE_DYNAMIC_RELOCATION_HEADER {
    pub EpilogueCount: DWORD,
    pub EpilogueByteCount: BYTE,
    pub BranchDescriptorElementSize: BYTE,
    pub BranchDescriptorCount: WORD,
}
#[test]
fn bindgen_test_layout__IMAGE_EPILOGUE_DYNAMIC_RELOCATION_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_EPILOGUE_DYNAMIC_RELOCATION_HEADER>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_IMAGE_EPILOGUE_DYNAMIC_RELOCATION_HEADER)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_EPILOGUE_DYNAMIC_RELOCATION_HEADER>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_EPILOGUE_DYNAMIC_RELOCATION_HEADER)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_EPILOGUE_DYNAMIC_RELOCATION_HEADER>())).EpilogueCount
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_EPILOGUE_DYNAMIC_RELOCATION_HEADER),
            "::",
            stringify!(EpilogueCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_EPILOGUE_DYNAMIC_RELOCATION_HEADER>())).EpilogueByteCount
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_EPILOGUE_DYNAMIC_RELOCATION_HEADER),
            "::",
            stringify!(EpilogueByteCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_EPILOGUE_DYNAMIC_RELOCATION_HEADER>()))
                .BranchDescriptorElementSize as *const _ as usize
        },
        5usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_EPILOGUE_DYNAMIC_RELOCATION_HEADER),
            "::",
            stringify!(BranchDescriptorElementSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_EPILOGUE_DYNAMIC_RELOCATION_HEADER>()))
                .BranchDescriptorCount as *const _ as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_EPILOGUE_DYNAMIC_RELOCATION_HEADER),
            "::",
            stringify!(BranchDescriptorCount)
        )
    );
}
pub type IMAGE_EPILOGUE_DYNAMIC_RELOCATION_HEADER = _IMAGE_EPILOGUE_DYNAMIC_RELOCATION_HEADER;
pub type PIMAGE_EPILOGUE_DYNAMIC_RELOCATION_HEADER = *mut IMAGE_EPILOGUE_DYNAMIC_RELOCATION_HEADER;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_IMPORT_CONTROL_TRANSFER_DYNAMIC_RELOCATION {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
#[test]
fn bindgen_test_layout__IMAGE_IMPORT_CONTROL_TRANSFER_DYNAMIC_RELOCATION() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_IMPORT_CONTROL_TRANSFER_DYNAMIC_RELOCATION>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_IMAGE_IMPORT_CONTROL_TRANSFER_DYNAMIC_RELOCATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_IMPORT_CONTROL_TRANSFER_DYNAMIC_RELOCATION>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_IMPORT_CONTROL_TRANSFER_DYNAMIC_RELOCATION)
        )
    );
}
impl _IMAGE_IMPORT_CONTROL_TRANSFER_DYNAMIC_RELOCATION {
    #[inline]
    pub fn PageRelativeOffset(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 12u8) as u32) }
    }
    #[inline]
    pub fn set_PageRelativeOffset(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 12u8, val as u64)
        }
    }
    #[inline]
    pub fn IndirectCall(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_IndirectCall(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(12usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn IATIndex(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 19u8) as u32) }
    }
    #[inline]
    pub fn set_IATIndex(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(13usize, 19u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        PageRelativeOffset: DWORD,
        IndirectCall: DWORD,
        IATIndex: DWORD,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 12u8, {
            let PageRelativeOffset: u32 = unsafe { ::std::mem::transmute(PageRelativeOffset) };
            PageRelativeOffset as u64
        });
        __bindgen_bitfield_unit.set(12usize, 1u8, {
            let IndirectCall: u32 = unsafe { ::std::mem::transmute(IndirectCall) };
            IndirectCall as u64
        });
        __bindgen_bitfield_unit.set(13usize, 19u8, {
            let IATIndex: u32 = unsafe { ::std::mem::transmute(IATIndex) };
            IATIndex as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type IMAGE_IMPORT_CONTROL_TRANSFER_DYNAMIC_RELOCATION =
    _IMAGE_IMPORT_CONTROL_TRANSFER_DYNAMIC_RELOCATION;
pub type PIMAGE_IMPORT_CONTROL_TRANSFER_DYNAMIC_RELOCATION =
    *mut IMAGE_IMPORT_CONTROL_TRANSFER_DYNAMIC_RELOCATION;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_INDIR_CONTROL_TRANSFER_DYNAMIC_RELOCATION {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize], u16>,
}
#[test]
fn bindgen_test_layout__IMAGE_INDIR_CONTROL_TRANSFER_DYNAMIC_RELOCATION() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_INDIR_CONTROL_TRANSFER_DYNAMIC_RELOCATION>(),
        2usize,
        concat!(
            "Size of: ",
            stringify!(_IMAGE_INDIR_CONTROL_TRANSFER_DYNAMIC_RELOCATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_INDIR_CONTROL_TRANSFER_DYNAMIC_RELOCATION>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_INDIR_CONTROL_TRANSFER_DYNAMIC_RELOCATION)
        )
    );
}
impl _IMAGE_INDIR_CONTROL_TRANSFER_DYNAMIC_RELOCATION {
    #[inline]
    pub fn PageRelativeOffset(&self) -> WORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 12u8) as u16) }
    }
    #[inline]
    pub fn set_PageRelativeOffset(&mut self, val: WORD) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 12u8, val as u64)
        }
    }
    #[inline]
    pub fn IndirectCall(&self) -> WORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) }
    }
    #[inline]
    pub fn set_IndirectCall(&mut self, val: WORD) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(12usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn RexWPrefix(&self) -> WORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) }
    }
    #[inline]
    pub fn set_RexWPrefix(&mut self, val: WORD) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(13usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn CfgCheck(&self) -> WORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u16) }
    }
    #[inline]
    pub fn set_CfgCheck(&mut self, val: WORD) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(14usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn Reserved(&self) -> WORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u16) }
    }
    #[inline]
    pub fn set_Reserved(&mut self, val: WORD) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(15usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        PageRelativeOffset: WORD,
        IndirectCall: WORD,
        RexWPrefix: WORD,
        CfgCheck: WORD,
        Reserved: WORD,
    ) -> __BindgenBitfieldUnit<[u8; 2usize], u16> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize], u16> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 12u8, {
            let PageRelativeOffset: u16 = unsafe { ::std::mem::transmute(PageRelativeOffset) };
            PageRelativeOffset as u64
        });
        __bindgen_bitfield_unit.set(12usize, 1u8, {
            let IndirectCall: u16 = unsafe { ::std::mem::transmute(IndirectCall) };
            IndirectCall as u64
        });
        __bindgen_bitfield_unit.set(13usize, 1u8, {
            let RexWPrefix: u16 = unsafe { ::std::mem::transmute(RexWPrefix) };
            RexWPrefix as u64
        });
        __bindgen_bitfield_unit.set(14usize, 1u8, {
            let CfgCheck: u16 = unsafe { ::std::mem::transmute(CfgCheck) };
            CfgCheck as u64
        });
        __bindgen_bitfield_unit.set(15usize, 1u8, {
            let Reserved: u16 = unsafe { ::std::mem::transmute(Reserved) };
            Reserved as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type IMAGE_INDIR_CONTROL_TRANSFER_DYNAMIC_RELOCATION =
    _IMAGE_INDIR_CONTROL_TRANSFER_DYNAMIC_RELOCATION;
pub type PIMAGE_INDIR_CONTROL_TRANSFER_DYNAMIC_RELOCATION =
    *mut IMAGE_INDIR_CONTROL_TRANSFER_DYNAMIC_RELOCATION;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_SWITCHTABLE_BRANCH_DYNAMIC_RELOCATION {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize], u16>,
}
#[test]
fn bindgen_test_layout__IMAGE_SWITCHTABLE_BRANCH_DYNAMIC_RELOCATION() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_SWITCHTABLE_BRANCH_DYNAMIC_RELOCATION>(),
        2usize,
        concat!(
            "Size of: ",
            stringify!(_IMAGE_SWITCHTABLE_BRANCH_DYNAMIC_RELOCATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_SWITCHTABLE_BRANCH_DYNAMIC_RELOCATION>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_SWITCHTABLE_BRANCH_DYNAMIC_RELOCATION)
        )
    );
}
impl _IMAGE_SWITCHTABLE_BRANCH_DYNAMIC_RELOCATION {
    #[inline]
    pub fn PageRelativeOffset(&self) -> WORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 12u8) as u16) }
    }
    #[inline]
    pub fn set_PageRelativeOffset(&mut self, val: WORD) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 12u8, val as u64)
        }
    }
    #[inline]
    pub fn RegisterNumber(&self) -> WORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u16) }
    }
    #[inline]
    pub fn set_RegisterNumber(&mut self, val: WORD) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(12usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        PageRelativeOffset: WORD,
        RegisterNumber: WORD,
    ) -> __BindgenBitfieldUnit<[u8; 2usize], u16> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize], u16> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 12u8, {
            let PageRelativeOffset: u16 = unsafe { ::std::mem::transmute(PageRelativeOffset) };
            PageRelativeOffset as u64
        });
        __bindgen_bitfield_unit.set(12usize, 4u8, {
            let RegisterNumber: u16 = unsafe { ::std::mem::transmute(RegisterNumber) };
            RegisterNumber as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type IMAGE_SWITCHTABLE_BRANCH_DYNAMIC_RELOCATION = _IMAGE_SWITCHTABLE_BRANCH_DYNAMIC_RELOCATION;
pub type PIMAGE_SWITCHTABLE_BRANCH_DYNAMIC_RELOCATION =
    *mut IMAGE_SWITCHTABLE_BRANCH_DYNAMIC_RELOCATION;
#[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 DependentLoadFlags: WORD,
    pub EditList: DWORD,
    pub SecurityCookie: DWORD,
    pub SEHandlerTable: DWORD,
    pub SEHandlerCount: DWORD,
    pub GuardCFCheckFunctionPointer: DWORD,
    pub GuardCFDispatchFunctionPointer: DWORD,
    pub GuardCFFunctionTable: DWORD,
    pub GuardCFFunctionCount: DWORD,
    pub GuardFlags: DWORD,
    pub CodeIntegrity: IMAGE_LOAD_CONFIG_CODE_INTEGRITY,
    pub GuardAddressTakenIatEntryTable: DWORD,
    pub GuardAddressTakenIatEntryCount: DWORD,
    pub GuardLongJumpTargetTable: DWORD,
    pub GuardLongJumpTargetCount: DWORD,
    pub DynamicValueRelocTable: DWORD,
    pub CHPEMetadataPointer: DWORD,
    pub GuardRFFailureRoutine: DWORD,
    pub GuardRFFailureRoutineFunctionPointer: DWORD,
    pub DynamicValueRelocTableOffset: DWORD,
    pub DynamicValueRelocTableSection: WORD,
    pub Reserved2: WORD,
    pub GuardRFVerifyStackPointerFunctionPointer: DWORD,
    pub HotPatchTableOffset: DWORD,
    pub Reserved3: DWORD,
    pub EnclaveConfigurationPointer: DWORD,
    pub VolatileMetadataPointer: DWORD,
}
#[test]
fn bindgen_test_layout__IMAGE_LOAD_CONFIG_DIRECTORY32() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_LOAD_CONFIG_DIRECTORY32>(),
        164usize,
        concat!("Size of: ", stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_LOAD_CONFIG_DIRECTORY32>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).Size as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).TimeDateStamp as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(TimeDateStamp)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).MajorVersion as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(MajorVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).MinorVersion as *const _
                as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(MinorVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).GlobalFlagsClear as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(GlobalFlagsClear)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).GlobalFlagsSet as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(GlobalFlagsSet)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).CriticalSectionDefaultTimeout
                as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(CriticalSectionDefaultTimeout)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).DeCommitFreeBlockThreshold
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(DeCommitFreeBlockThreshold)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).DeCommitTotalFreeThreshold
                as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(DeCommitTotalFreeThreshold)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).LockPrefixTable as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(LockPrefixTable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).MaximumAllocationSize
                as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(MaximumAllocationSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).VirtualMemoryThreshold
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(VirtualMemoryThreshold)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).ProcessHeapFlags as *const _
                as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(ProcessHeapFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).ProcessAffinityMask
                as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(ProcessAffinityMask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).CSDVersion as *const _
                as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(CSDVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).DependentLoadFlags
                as *const _ as usize
        },
        54usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(DependentLoadFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).EditList as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(EditList)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).SecurityCookie as *const _
                as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(SecurityCookie)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).SEHandlerTable as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(SEHandlerTable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).SEHandlerCount as *const _
                as usize
        },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(SEHandlerCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).GuardCFCheckFunctionPointer
                as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(GuardCFCheckFunctionPointer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>()))
                .GuardCFDispatchFunctionPointer as *const _ as usize
        },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(GuardCFDispatchFunctionPointer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).GuardCFFunctionTable
                as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(GuardCFFunctionTable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).GuardCFFunctionCount
                as *const _ as usize
        },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(GuardCFFunctionCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).GuardFlags as *const _
                as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(GuardFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).CodeIntegrity as *const _
                as usize
        },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(CodeIntegrity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>()))
                .GuardAddressTakenIatEntryTable as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(GuardAddressTakenIatEntryTable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>()))
                .GuardAddressTakenIatEntryCount as *const _ as usize
        },
        108usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(GuardAddressTakenIatEntryCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).GuardLongJumpTargetTable
                as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(GuardLongJumpTargetTable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).GuardLongJumpTargetCount
                as *const _ as usize
        },
        116usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(GuardLongJumpTargetCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).DynamicValueRelocTable
                as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(DynamicValueRelocTable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).CHPEMetadataPointer
                as *const _ as usize
        },
        124usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(CHPEMetadataPointer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).GuardRFFailureRoutine
                as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(GuardRFFailureRoutine)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>()))
                .GuardRFFailureRoutineFunctionPointer as *const _ as usize
        },
        132usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(GuardRFFailureRoutineFunctionPointer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).DynamicValueRelocTableOffset
                as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(DynamicValueRelocTableOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).DynamicValueRelocTableSection
                as *const _ as usize
        },
        140usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(DynamicValueRelocTableSection)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).Reserved2 as *const _
                as usize
        },
        142usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(Reserved2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>()))
                .GuardRFVerifyStackPointerFunctionPointer as *const _ as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(GuardRFVerifyStackPointerFunctionPointer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).HotPatchTableOffset
                as *const _ as usize
        },
        148usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(HotPatchTableOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).Reserved3 as *const _
                as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(Reserved3)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).EnclaveConfigurationPointer
                as *const _ as usize
        },
        156usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(EnclaveConfigurationPointer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY32>())).VolatileMetadataPointer
                as *const _ as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32),
            "::",
            stringify!(VolatileMetadataPointer)
        )
    );
}
pub type IMAGE_LOAD_CONFIG_DIRECTORY32 = _IMAGE_LOAD_CONFIG_DIRECTORY32;
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 DependentLoadFlags: WORD,
    pub EditList: ULONGLONG,
    pub SecurityCookie: ULONGLONG,
    pub SEHandlerTable: ULONGLONG,
    pub SEHandlerCount: ULONGLONG,
    pub GuardCFCheckFunctionPointer: ULONGLONG,
    pub GuardCFDispatchFunctionPointer: ULONGLONG,
    pub GuardCFFunctionTable: ULONGLONG,
    pub GuardCFFunctionCount: ULONGLONG,
    pub GuardFlags: DWORD,
    pub CodeIntegrity: IMAGE_LOAD_CONFIG_CODE_INTEGRITY,
    pub GuardAddressTakenIatEntryTable: ULONGLONG,
    pub GuardAddressTakenIatEntryCount: ULONGLONG,
    pub GuardLongJumpTargetTable: ULONGLONG,
    pub GuardLongJumpTargetCount: ULONGLONG,
    pub DynamicValueRelocTable: ULONGLONG,
    pub CHPEMetadataPointer: ULONGLONG,
    pub GuardRFFailureRoutine: ULONGLONG,
    pub GuardRFFailureRoutineFunctionPointer: ULONGLONG,
    pub DynamicValueRelocTableOffset: DWORD,
    pub DynamicValueRelocTableSection: WORD,
    pub Reserved2: WORD,
    pub GuardRFVerifyStackPointerFunctionPointer: ULONGLONG,
    pub HotPatchTableOffset: DWORD,
    pub Reserved3: DWORD,
    pub EnclaveConfigurationPointer: ULONGLONG,
    pub VolatileMetadataPointer: ULONGLONG,
}
#[test]
fn bindgen_test_layout__IMAGE_LOAD_CONFIG_DIRECTORY64() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_LOAD_CONFIG_DIRECTORY64>(),
        264usize,
        concat!("Size of: ", stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_LOAD_CONFIG_DIRECTORY64>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).Size as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).TimeDateStamp as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(TimeDateStamp)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).MajorVersion as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(MajorVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).MinorVersion as *const _
                as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(MinorVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).GlobalFlagsClear as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(GlobalFlagsClear)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).GlobalFlagsSet as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(GlobalFlagsSet)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).CriticalSectionDefaultTimeout
                as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(CriticalSectionDefaultTimeout)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).DeCommitFreeBlockThreshold
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(DeCommitFreeBlockThreshold)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).DeCommitTotalFreeThreshold
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(DeCommitTotalFreeThreshold)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).LockPrefixTable as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(LockPrefixTable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).MaximumAllocationSize
                as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(MaximumAllocationSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).VirtualMemoryThreshold
                as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(VirtualMemoryThreshold)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).ProcessAffinityMask
                as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(ProcessAffinityMask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).ProcessHeapFlags as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(ProcessHeapFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).CSDVersion as *const _
                as usize
        },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(CSDVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).DependentLoadFlags
                as *const _ as usize
        },
        78usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(DependentLoadFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).EditList as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(EditList)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).SecurityCookie as *const _
                as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(SecurityCookie)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).SEHandlerTable as *const _
                as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(SEHandlerTable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).SEHandlerCount as *const _
                as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(SEHandlerCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).GuardCFCheckFunctionPointer
                as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(GuardCFCheckFunctionPointer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>()))
                .GuardCFDispatchFunctionPointer as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(GuardCFDispatchFunctionPointer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).GuardCFFunctionTable
                as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(GuardCFFunctionTable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).GuardCFFunctionCount
                as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(GuardCFFunctionCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).GuardFlags as *const _
                as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(GuardFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).CodeIntegrity as *const _
                as usize
        },
        148usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(CodeIntegrity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>()))
                .GuardAddressTakenIatEntryTable as *const _ as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(GuardAddressTakenIatEntryTable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>()))
                .GuardAddressTakenIatEntryCount as *const _ as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(GuardAddressTakenIatEntryCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).GuardLongJumpTargetTable
                as *const _ as usize
        },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(GuardLongJumpTargetTable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).GuardLongJumpTargetCount
                as *const _ as usize
        },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(GuardLongJumpTargetCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).DynamicValueRelocTable
                as *const _ as usize
        },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(DynamicValueRelocTable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).CHPEMetadataPointer
                as *const _ as usize
        },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(CHPEMetadataPointer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).GuardRFFailureRoutine
                as *const _ as usize
        },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(GuardRFFailureRoutine)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>()))
                .GuardRFFailureRoutineFunctionPointer as *const _ as usize
        },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(GuardRFFailureRoutineFunctionPointer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).DynamicValueRelocTableOffset
                as *const _ as usize
        },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(DynamicValueRelocTableOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).DynamicValueRelocTableSection
                as *const _ as usize
        },
        228usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(DynamicValueRelocTableSection)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).Reserved2 as *const _
                as usize
        },
        230usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(Reserved2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>()))
                .GuardRFVerifyStackPointerFunctionPointer as *const _ as usize
        },
        232usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(GuardRFVerifyStackPointerFunctionPointer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).HotPatchTableOffset
                as *const _ as usize
        },
        240usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(HotPatchTableOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).Reserved3 as *const _
                as usize
        },
        244usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(Reserved3)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).EnclaveConfigurationPointer
                as *const _ as usize
        },
        248usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(EnclaveConfigurationPointer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_LOAD_CONFIG_DIRECTORY64>())).VolatileMetadataPointer
                as *const _ as usize
        },
        256usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64),
            "::",
            stringify!(VolatileMetadataPointer)
        )
    );
}
pub type IMAGE_LOAD_CONFIG_DIRECTORY64 = _IMAGE_LOAD_CONFIG_DIRECTORY64;
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_HOT_PATCH_INFO {
    pub Version: DWORD,
    pub Size: DWORD,
    pub SequenceNumber: DWORD,
    pub BaseImageList: DWORD,
    pub BaseImageCount: DWORD,
    pub BufferOffset: DWORD,
    pub ExtraPatchSize: DWORD,
}
#[test]
fn bindgen_test_layout__IMAGE_HOT_PATCH_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_HOT_PATCH_INFO>(),
        28usize,
        concat!("Size of: ", stringify!(_IMAGE_HOT_PATCH_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_HOT_PATCH_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_HOT_PATCH_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_HOT_PATCH_INFO>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_HOT_PATCH_INFO),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_HOT_PATCH_INFO>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_HOT_PATCH_INFO),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_HOT_PATCH_INFO>())).SequenceNumber as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_HOT_PATCH_INFO),
            "::",
            stringify!(SequenceNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_HOT_PATCH_INFO>())).BaseImageList as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_HOT_PATCH_INFO),
            "::",
            stringify!(BaseImageList)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_HOT_PATCH_INFO>())).BaseImageCount as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_HOT_PATCH_INFO),
            "::",
            stringify!(BaseImageCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_HOT_PATCH_INFO>())).BufferOffset as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_HOT_PATCH_INFO),
            "::",
            stringify!(BufferOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_HOT_PATCH_INFO>())).ExtraPatchSize as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_HOT_PATCH_INFO),
            "::",
            stringify!(ExtraPatchSize)
        )
    );
}
pub type IMAGE_HOT_PATCH_INFO = _IMAGE_HOT_PATCH_INFO;
pub type PIMAGE_HOT_PATCH_INFO = *mut _IMAGE_HOT_PATCH_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_HOT_PATCH_BASE {
    pub SequenceNumber: DWORD,
    pub Flags: DWORD,
    pub OriginalTimeDateStamp: DWORD,
    pub OriginalCheckSum: DWORD,
    pub CodeIntegrityInfo: DWORD,
    pub CodeIntegritySize: DWORD,
    pub PatchTable: DWORD,
    pub BufferOffset: DWORD,
}
#[test]
fn bindgen_test_layout__IMAGE_HOT_PATCH_BASE() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_HOT_PATCH_BASE>(),
        32usize,
        concat!("Size of: ", stringify!(_IMAGE_HOT_PATCH_BASE))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_HOT_PATCH_BASE>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_HOT_PATCH_BASE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_HOT_PATCH_BASE>())).SequenceNumber as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_HOT_PATCH_BASE),
            "::",
            stringify!(SequenceNumber)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_HOT_PATCH_BASE>())).Flags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_HOT_PATCH_BASE),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_HOT_PATCH_BASE>())).OriginalTimeDateStamp as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_HOT_PATCH_BASE),
            "::",
            stringify!(OriginalTimeDateStamp)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_HOT_PATCH_BASE>())).OriginalCheckSum as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_HOT_PATCH_BASE),
            "::",
            stringify!(OriginalCheckSum)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_HOT_PATCH_BASE>())).CodeIntegrityInfo as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_HOT_PATCH_BASE),
            "::",
            stringify!(CodeIntegrityInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_HOT_PATCH_BASE>())).CodeIntegritySize as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_HOT_PATCH_BASE),
            "::",
            stringify!(CodeIntegritySize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_HOT_PATCH_BASE>())).PatchTable as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_HOT_PATCH_BASE),
            "::",
            stringify!(PatchTable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_HOT_PATCH_BASE>())).BufferOffset as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_HOT_PATCH_BASE),
            "::",
            stringify!(BufferOffset)
        )
    );
}
pub type IMAGE_HOT_PATCH_BASE = _IMAGE_HOT_PATCH_BASE;
pub type PIMAGE_HOT_PATCH_BASE = *mut _IMAGE_HOT_PATCH_BASE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_HOT_PATCH_HASHES {
    pub SHA256: [BYTE; 32usize],
    pub SHA1: [BYTE; 20usize],
}
#[test]
fn bindgen_test_layout__IMAGE_HOT_PATCH_HASHES() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_HOT_PATCH_HASHES>(),
        52usize,
        concat!("Size of: ", stringify!(_IMAGE_HOT_PATCH_HASHES))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_HOT_PATCH_HASHES>(),
        1usize,
        concat!("Alignment of ", stringify!(_IMAGE_HOT_PATCH_HASHES))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_HOT_PATCH_HASHES>())).SHA256 as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_HOT_PATCH_HASHES),
            "::",
            stringify!(SHA256)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_HOT_PATCH_HASHES>())).SHA1 as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_HOT_PATCH_HASHES),
            "::",
            stringify!(SHA1)
        )
    );
}
pub type IMAGE_HOT_PATCH_HASHES = _IMAGE_HOT_PATCH_HASHES;
pub type PIMAGE_HOT_PATCH_HASHES = *mut _IMAGE_HOT_PATCH_HASHES;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_CE_RUNTIME_FUNCTION_ENTRY {
    pub FuncStart: DWORD,
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
#[test]
fn bindgen_test_layout__IMAGE_CE_RUNTIME_FUNCTION_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_CE_RUNTIME_FUNCTION_ENTRY>(),
        8usize,
        concat!("Size of: ", stringify!(_IMAGE_CE_RUNTIME_FUNCTION_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_CE_RUNTIME_FUNCTION_ENTRY>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_CE_RUNTIME_FUNCTION_ENTRY)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_CE_RUNTIME_FUNCTION_ENTRY>())).FuncStart as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_CE_RUNTIME_FUNCTION_ENTRY),
            "::",
            stringify!(FuncStart)
        )
    );
}
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)]
#[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>,
}
#[test]
fn bindgen_test_layout__IMAGE_ARM_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_ARM_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_IMAGE_ARM_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_ARM_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_ARM_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
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
    }
}
#[test]
fn bindgen_test_layout__IMAGE_ARM_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_ARM_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_IMAGE_ARM_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_ARM_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_ARM_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ARM_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1>())).UnwindData
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ARM_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1),
            "::",
            stringify!(UnwindData)
        )
    );
}
#[test]
fn bindgen_test_layout__IMAGE_ARM_RUNTIME_FUNCTION_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_ARM_RUNTIME_FUNCTION_ENTRY>(),
        8usize,
        concat!("Size of: ", stringify!(_IMAGE_ARM_RUNTIME_FUNCTION_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_ARM_RUNTIME_FUNCTION_ENTRY>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_ARM_RUNTIME_FUNCTION_ENTRY)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ARM_RUNTIME_FUNCTION_ENTRY>())).BeginAddress as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ARM_RUNTIME_FUNCTION_ENTRY),
            "::",
            stringify!(BeginAddress)
        )
    );
}
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>,
}
#[test]
fn bindgen_test_layout__IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
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
    }
}
#[test]
fn bindgen_test_layout__IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1>())).UnwindData
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1),
            "::",
            stringify!(UnwindData)
        )
    );
}
#[test]
fn bindgen_test_layout__IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY>(),
        8usize,
        concat!("Size of: ", stringify!(_IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY>())).BeginAddress as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY),
            "::",
            stringify!(BeginAddress)
        )
    );
}
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, 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,
}
#[test]
fn bindgen_test_layout__IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY>(),
        40usize,
        concat!(
            "Size of: ",
            stringify!(_IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY>())).BeginAddress
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY),
            "::",
            stringify!(BeginAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY>())).EndAddress as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY),
            "::",
            stringify!(EndAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY>())).ExceptionHandler
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY),
            "::",
            stringify!(ExceptionHandler)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY>())).HandlerData
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY),
            "::",
            stringify!(HandlerData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY>())).PrologEndAddress
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY),
            "::",
            stringify!(PrologEndAddress)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY>(),
        20usize,
        concat!("Size of: ", stringify!(_IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY>())).BeginAddress as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY),
            "::",
            stringify!(BeginAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY>())).EndAddress as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY),
            "::",
            stringify!(EndAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY>())).ExceptionHandler
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY),
            "::",
            stringify!(ExceptionHandler)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY>())).HandlerData as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY),
            "::",
            stringify!(HandlerData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY>())).PrologEndAddress
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY),
            "::",
            stringify!(PrologEndAddress)
        )
    );
}
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_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,
}
#[test]
fn bindgen_test_layout__IMAGE_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_IMAGE_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1>()))
                .UnwindInfoAddress as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1),
            "::",
            stringify!(UnwindInfoAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1>())).UnwindData
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_RUNTIME_FUNCTION_ENTRY__bindgen_ty_1),
            "::",
            stringify!(UnwindData)
        )
    );
}
#[test]
fn bindgen_test_layout__IMAGE_RUNTIME_FUNCTION_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_RUNTIME_FUNCTION_ENTRY>(),
        12usize,
        concat!("Size of: ", stringify!(_IMAGE_RUNTIME_FUNCTION_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_RUNTIME_FUNCTION_ENTRY>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_RUNTIME_FUNCTION_ENTRY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_RUNTIME_FUNCTION_ENTRY>())).BeginAddress as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_RUNTIME_FUNCTION_ENTRY),
            "::",
            stringify!(BeginAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_RUNTIME_FUNCTION_ENTRY>())).EndAddress as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_RUNTIME_FUNCTION_ENTRY),
            "::",
            stringify!(EndAddress)
        )
    );
}
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_ENCLAVE_CONFIG32 {
    pub Size: DWORD,
    pub MinimumRequiredConfigSize: DWORD,
    pub PolicyFlags: DWORD,
    pub NumberOfImports: DWORD,
    pub ImportList: DWORD,
    pub ImportEntrySize: DWORD,
    pub FamilyID: [BYTE; 16usize],
    pub ImageID: [BYTE; 16usize],
    pub ImageVersion: DWORD,
    pub SecurityVersion: DWORD,
    pub EnclaveSize: DWORD,
    pub NumberOfThreads: DWORD,
    pub EnclaveFlags: DWORD,
}
#[test]
fn bindgen_test_layout__IMAGE_ENCLAVE_CONFIG32() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_ENCLAVE_CONFIG32>(),
        76usize,
        concat!("Size of: ", stringify!(_IMAGE_ENCLAVE_CONFIG32))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_ENCLAVE_CONFIG32>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_ENCLAVE_CONFIG32))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_ENCLAVE_CONFIG32>())).Size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_CONFIG32),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ENCLAVE_CONFIG32>())).MinimumRequiredConfigSize
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_CONFIG32),
            "::",
            stringify!(MinimumRequiredConfigSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ENCLAVE_CONFIG32>())).PolicyFlags as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_CONFIG32),
            "::",
            stringify!(PolicyFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ENCLAVE_CONFIG32>())).NumberOfImports as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_CONFIG32),
            "::",
            stringify!(NumberOfImports)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ENCLAVE_CONFIG32>())).ImportList as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_CONFIG32),
            "::",
            stringify!(ImportList)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ENCLAVE_CONFIG32>())).ImportEntrySize as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_CONFIG32),
            "::",
            stringify!(ImportEntrySize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ENCLAVE_CONFIG32>())).FamilyID as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_CONFIG32),
            "::",
            stringify!(FamilyID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_ENCLAVE_CONFIG32>())).ImageID as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_CONFIG32),
            "::",
            stringify!(ImageID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ENCLAVE_CONFIG32>())).ImageVersion as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_CONFIG32),
            "::",
            stringify!(ImageVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ENCLAVE_CONFIG32>())).SecurityVersion as *const _ as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_CONFIG32),
            "::",
            stringify!(SecurityVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ENCLAVE_CONFIG32>())).EnclaveSize as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_CONFIG32),
            "::",
            stringify!(EnclaveSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ENCLAVE_CONFIG32>())).NumberOfThreads as *const _ as usize
        },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_CONFIG32),
            "::",
            stringify!(NumberOfThreads)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ENCLAVE_CONFIG32>())).EnclaveFlags as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_CONFIG32),
            "::",
            stringify!(EnclaveFlags)
        )
    );
}
pub type IMAGE_ENCLAVE_CONFIG32 = _IMAGE_ENCLAVE_CONFIG32;
pub type PIMAGE_ENCLAVE_CONFIG32 = *mut _IMAGE_ENCLAVE_CONFIG32;
#[repr(C, packed(4))]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_ENCLAVE_CONFIG64 {
    pub Size: DWORD,
    pub MinimumRequiredConfigSize: DWORD,
    pub PolicyFlags: DWORD,
    pub NumberOfImports: DWORD,
    pub ImportList: DWORD,
    pub ImportEntrySize: DWORD,
    pub FamilyID: [BYTE; 16usize],
    pub ImageID: [BYTE; 16usize],
    pub ImageVersion: DWORD,
    pub SecurityVersion: DWORD,
    pub EnclaveSize: ULONGLONG,
    pub NumberOfThreads: DWORD,
    pub EnclaveFlags: DWORD,
}
#[test]
fn bindgen_test_layout__IMAGE_ENCLAVE_CONFIG64() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_ENCLAVE_CONFIG64>(),
        80usize,
        concat!("Size of: ", stringify!(_IMAGE_ENCLAVE_CONFIG64))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_ENCLAVE_CONFIG64>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_ENCLAVE_CONFIG64))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_ENCLAVE_CONFIG64>())).Size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_CONFIG64),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ENCLAVE_CONFIG64>())).MinimumRequiredConfigSize
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_CONFIG64),
            "::",
            stringify!(MinimumRequiredConfigSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ENCLAVE_CONFIG64>())).PolicyFlags as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_CONFIG64),
            "::",
            stringify!(PolicyFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ENCLAVE_CONFIG64>())).NumberOfImports as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_CONFIG64),
            "::",
            stringify!(NumberOfImports)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ENCLAVE_CONFIG64>())).ImportList as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_CONFIG64),
            "::",
            stringify!(ImportList)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ENCLAVE_CONFIG64>())).ImportEntrySize as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_CONFIG64),
            "::",
            stringify!(ImportEntrySize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ENCLAVE_CONFIG64>())).FamilyID as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_CONFIG64),
            "::",
            stringify!(FamilyID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_ENCLAVE_CONFIG64>())).ImageID as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_CONFIG64),
            "::",
            stringify!(ImageID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ENCLAVE_CONFIG64>())).ImageVersion as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_CONFIG64),
            "::",
            stringify!(ImageVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ENCLAVE_CONFIG64>())).SecurityVersion as *const _ as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_CONFIG64),
            "::",
            stringify!(SecurityVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ENCLAVE_CONFIG64>())).EnclaveSize as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_CONFIG64),
            "::",
            stringify!(EnclaveSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ENCLAVE_CONFIG64>())).NumberOfThreads as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_CONFIG64),
            "::",
            stringify!(NumberOfThreads)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ENCLAVE_CONFIG64>())).EnclaveFlags as *const _ as usize
        },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_CONFIG64),
            "::",
            stringify!(EnclaveFlags)
        )
    );
}
pub type IMAGE_ENCLAVE_CONFIG64 = _IMAGE_ENCLAVE_CONFIG64;
pub type PIMAGE_ENCLAVE_CONFIG64 = *mut _IMAGE_ENCLAVE_CONFIG64;
pub type IMAGE_ENCLAVE_CONFIG = IMAGE_ENCLAVE_CONFIG64;
pub type PIMAGE_ENCLAVE_CONFIG = PIMAGE_ENCLAVE_CONFIG64;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IMAGE_ENCLAVE_IMPORT {
    pub MatchType: DWORD,
    pub MinimumSecurityVersion: DWORD,
    pub UniqueOrAuthorID: [BYTE; 32usize],
    pub FamilyID: [BYTE; 16usize],
    pub ImageID: [BYTE; 16usize],
    pub ImportName: DWORD,
    pub Reserved: DWORD,
}
#[test]
fn bindgen_test_layout__IMAGE_ENCLAVE_IMPORT() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_ENCLAVE_IMPORT>(),
        80usize,
        concat!("Size of: ", stringify!(_IMAGE_ENCLAVE_IMPORT))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_ENCLAVE_IMPORT>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_ENCLAVE_IMPORT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_ENCLAVE_IMPORT>())).MatchType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_IMPORT),
            "::",
            stringify!(MatchType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ENCLAVE_IMPORT>())).MinimumSecurityVersion as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_IMPORT),
            "::",
            stringify!(MinimumSecurityVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ENCLAVE_IMPORT>())).UniqueOrAuthorID as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_IMPORT),
            "::",
            stringify!(UniqueOrAuthorID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_ENCLAVE_IMPORT>())).FamilyID as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_IMPORT),
            "::",
            stringify!(FamilyID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_ENCLAVE_IMPORT>())).ImageID as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_IMPORT),
            "::",
            stringify!(ImageID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_ENCLAVE_IMPORT>())).ImportName as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_IMPORT),
            "::",
            stringify!(ImportName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_ENCLAVE_IMPORT>())).Reserved as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_ENCLAVE_IMPORT),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type IMAGE_ENCLAVE_IMPORT = _IMAGE_ENCLAVE_IMPORT;
pub type PIMAGE_ENCLAVE_IMPORT = *mut _IMAGE_ENCLAVE_IMPORT;
#[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,
}
#[test]
fn bindgen_test_layout__IMAGE_DEBUG_DIRECTORY() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_DEBUG_DIRECTORY>(),
        28usize,
        concat!("Size of: ", stringify!(_IMAGE_DEBUG_DIRECTORY))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_DEBUG_DIRECTORY>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_DEBUG_DIRECTORY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DEBUG_DIRECTORY>())).Characteristics as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DEBUG_DIRECTORY),
            "::",
            stringify!(Characteristics)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DEBUG_DIRECTORY>())).TimeDateStamp as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DEBUG_DIRECTORY),
            "::",
            stringify!(TimeDateStamp)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DEBUG_DIRECTORY>())).MajorVersion as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DEBUG_DIRECTORY),
            "::",
            stringify!(MajorVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DEBUG_DIRECTORY>())).MinorVersion as *const _ as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DEBUG_DIRECTORY),
            "::",
            stringify!(MinorVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_DEBUG_DIRECTORY>())).Type as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DEBUG_DIRECTORY),
            "::",
            stringify!(Type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DEBUG_DIRECTORY>())).SizeOfData as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DEBUG_DIRECTORY),
            "::",
            stringify!(SizeOfData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DEBUG_DIRECTORY>())).AddressOfRawData as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DEBUG_DIRECTORY),
            "::",
            stringify!(AddressOfRawData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_DEBUG_DIRECTORY>())).PointerToRawData as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DEBUG_DIRECTORY),
            "::",
            stringify!(PointerToRawData)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__IMAGE_COFF_SYMBOLS_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_COFF_SYMBOLS_HEADER>(),
        32usize,
        concat!("Size of: ", stringify!(_IMAGE_COFF_SYMBOLS_HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_COFF_SYMBOLS_HEADER>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_COFF_SYMBOLS_HEADER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_COFF_SYMBOLS_HEADER>())).NumberOfSymbols as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_COFF_SYMBOLS_HEADER),
            "::",
            stringify!(NumberOfSymbols)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_COFF_SYMBOLS_HEADER>())).LvaToFirstSymbol as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_COFF_SYMBOLS_HEADER),
            "::",
            stringify!(LvaToFirstSymbol)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_COFF_SYMBOLS_HEADER>())).NumberOfLinenumbers as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_COFF_SYMBOLS_HEADER),
            "::",
            stringify!(NumberOfLinenumbers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_COFF_SYMBOLS_HEADER>())).LvaToFirstLinenumber as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_COFF_SYMBOLS_HEADER),
            "::",
            stringify!(LvaToFirstLinenumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_COFF_SYMBOLS_HEADER>())).RvaToFirstByteOfCode as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_COFF_SYMBOLS_HEADER),
            "::",
            stringify!(RvaToFirstByteOfCode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_COFF_SYMBOLS_HEADER>())).RvaToLastByteOfCode as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_COFF_SYMBOLS_HEADER),
            "::",
            stringify!(RvaToLastByteOfCode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_COFF_SYMBOLS_HEADER>())).RvaToFirstByteOfData as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_COFF_SYMBOLS_HEADER),
            "::",
            stringify!(RvaToFirstByteOfData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_COFF_SYMBOLS_HEADER>())).RvaToLastByteOfData as *const _
                as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_COFF_SYMBOLS_HEADER),
            "::",
            stringify!(RvaToLastByteOfData)
        )
    );
}
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>,
}
#[test]
fn bindgen_test_layout__FPO_DATA() {
    assert_eq!(
        ::std::mem::size_of::<_FPO_DATA>(),
        16usize,
        concat!("Size of: ", stringify!(_FPO_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<_FPO_DATA>(),
        4usize,
        concat!("Alignment of ", stringify!(_FPO_DATA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FPO_DATA>())).ulOffStart as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FPO_DATA),
            "::",
            stringify!(ulOffStart)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FPO_DATA>())).cbProcSize as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FPO_DATA),
            "::",
            stringify!(cbProcSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FPO_DATA>())).cdwLocals as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FPO_DATA),
            "::",
            stringify!(cdwLocals)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FPO_DATA>())).cdwParams as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_FPO_DATA),
            "::",
            stringify!(cdwParams)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__IMAGE_DEBUG_MISC() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_DEBUG_MISC>(),
        16usize,
        concat!("Size of: ", stringify!(_IMAGE_DEBUG_MISC))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_DEBUG_MISC>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_DEBUG_MISC))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_DEBUG_MISC>())).DataType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DEBUG_MISC),
            "::",
            stringify!(DataType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_DEBUG_MISC>())).Length as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DEBUG_MISC),
            "::",
            stringify!(Length)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_DEBUG_MISC>())).Unicode as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DEBUG_MISC),
            "::",
            stringify!(Unicode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_DEBUG_MISC>())).Reserved as *const _ as usize },
        9usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DEBUG_MISC),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_DEBUG_MISC>())).Data as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_DEBUG_MISC),
            "::",
            stringify!(Data)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__IMAGE_FUNCTION_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_FUNCTION_ENTRY>(),
        12usize,
        concat!("Size of: ", stringify!(_IMAGE_FUNCTION_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_FUNCTION_ENTRY>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_FUNCTION_ENTRY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_FUNCTION_ENTRY>())).StartingAddress as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_FUNCTION_ENTRY),
            "::",
            stringify!(StartingAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_FUNCTION_ENTRY>())).EndingAddress as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_FUNCTION_ENTRY),
            "::",
            stringify!(EndingAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_FUNCTION_ENTRY>())).EndOfPrologue as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_FUNCTION_ENTRY),
            "::",
            stringify!(EndOfPrologue)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__IMAGE_FUNCTION_ENTRY64__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_FUNCTION_ENTRY64__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_IMAGE_FUNCTION_ENTRY64__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_FUNCTION_ENTRY64__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_FUNCTION_ENTRY64__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_FUNCTION_ENTRY64__bindgen_ty_1>())).EndOfPrologue
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_FUNCTION_ENTRY64__bindgen_ty_1),
            "::",
            stringify!(EndOfPrologue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_FUNCTION_ENTRY64__bindgen_ty_1>())).UnwindInfoAddress
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_FUNCTION_ENTRY64__bindgen_ty_1),
            "::",
            stringify!(UnwindInfoAddress)
        )
    );
}
#[test]
fn bindgen_test_layout__IMAGE_FUNCTION_ENTRY64() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_FUNCTION_ENTRY64>(),
        24usize,
        concat!("Size of: ", stringify!(_IMAGE_FUNCTION_ENTRY64))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_FUNCTION_ENTRY64>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_FUNCTION_ENTRY64))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_FUNCTION_ENTRY64>())).StartingAddress as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_FUNCTION_ENTRY64),
            "::",
            stringify!(StartingAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_FUNCTION_ENTRY64>())).EndingAddress as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_FUNCTION_ENTRY64),
            "::",
            stringify!(EndingAddress)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__IMAGE_SEPARATE_DEBUG_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_SEPARATE_DEBUG_HEADER>(),
        48usize,
        concat!("Size of: ", stringify!(_IMAGE_SEPARATE_DEBUG_HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_SEPARATE_DEBUG_HEADER>(),
        4usize,
        concat!("Alignment of ", stringify!(_IMAGE_SEPARATE_DEBUG_HEADER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SEPARATE_DEBUG_HEADER>())).Signature as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SEPARATE_DEBUG_HEADER),
            "::",
            stringify!(Signature)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SEPARATE_DEBUG_HEADER>())).Flags as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SEPARATE_DEBUG_HEADER),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SEPARATE_DEBUG_HEADER>())).Machine as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SEPARATE_DEBUG_HEADER),
            "::",
            stringify!(Machine)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SEPARATE_DEBUG_HEADER>())).Characteristics as *const _
                as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SEPARATE_DEBUG_HEADER),
            "::",
            stringify!(Characteristics)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SEPARATE_DEBUG_HEADER>())).TimeDateStamp as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SEPARATE_DEBUG_HEADER),
            "::",
            stringify!(TimeDateStamp)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SEPARATE_DEBUG_HEADER>())).CheckSum as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SEPARATE_DEBUG_HEADER),
            "::",
            stringify!(CheckSum)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SEPARATE_DEBUG_HEADER>())).ImageBase as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SEPARATE_DEBUG_HEADER),
            "::",
            stringify!(ImageBase)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SEPARATE_DEBUG_HEADER>())).SizeOfImage as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SEPARATE_DEBUG_HEADER),
            "::",
            stringify!(SizeOfImage)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SEPARATE_DEBUG_HEADER>())).NumberOfSections as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SEPARATE_DEBUG_HEADER),
            "::",
            stringify!(NumberOfSections)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SEPARATE_DEBUG_HEADER>())).ExportedNamesSize as *const _
                as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SEPARATE_DEBUG_HEADER),
            "::",
            stringify!(ExportedNamesSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SEPARATE_DEBUG_HEADER>())).DebugDirectorySize as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SEPARATE_DEBUG_HEADER),
            "::",
            stringify!(DebugDirectorySize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SEPARATE_DEBUG_HEADER>())).SectionAlignment as *const _
                as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SEPARATE_DEBUG_HEADER),
            "::",
            stringify!(SectionAlignment)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_SEPARATE_DEBUG_HEADER>())).Reserved as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_SEPARATE_DEBUG_HEADER),
            "::",
            stringify!(Reserved)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__NON_PAGED_DEBUG_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_NON_PAGED_DEBUG_INFO>(),
        32usize,
        concat!("Size of: ", stringify!(_NON_PAGED_DEBUG_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_NON_PAGED_DEBUG_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_NON_PAGED_DEBUG_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NON_PAGED_DEBUG_INFO>())).Signature as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NON_PAGED_DEBUG_INFO),
            "::",
            stringify!(Signature)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NON_PAGED_DEBUG_INFO>())).Flags as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_NON_PAGED_DEBUG_INFO),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NON_PAGED_DEBUG_INFO>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_NON_PAGED_DEBUG_INFO),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NON_PAGED_DEBUG_INFO>())).Machine as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NON_PAGED_DEBUG_INFO),
            "::",
            stringify!(Machine)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NON_PAGED_DEBUG_INFO>())).Characteristics as *const _ as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_NON_PAGED_DEBUG_INFO),
            "::",
            stringify!(Characteristics)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NON_PAGED_DEBUG_INFO>())).TimeDateStamp as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_NON_PAGED_DEBUG_INFO),
            "::",
            stringify!(TimeDateStamp)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NON_PAGED_DEBUG_INFO>())).CheckSum as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_NON_PAGED_DEBUG_INFO),
            "::",
            stringify!(CheckSum)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NON_PAGED_DEBUG_INFO>())).SizeOfImage as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_NON_PAGED_DEBUG_INFO),
            "::",
            stringify!(SizeOfImage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NON_PAGED_DEBUG_INFO>())).ImageBase as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_NON_PAGED_DEBUG_INFO),
            "::",
            stringify!(ImageBase)
        )
    );
}
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], u8>,
    pub FirstEntryRVA: DWORD,
}
#[test]
fn bindgen_test_layout__ImageArchitectureHeader() {
    assert_eq!(
        ::std::mem::size_of::<_ImageArchitectureHeader>(),
        8usize,
        concat!("Size of: ", stringify!(_ImageArchitectureHeader))
    );
    assert_eq!(
        ::std::mem::align_of::<_ImageArchitectureHeader>(),
        4usize,
        concat!("Alignment of ", stringify!(_ImageArchitectureHeader))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ImageArchitectureHeader>())).FirstEntryRVA as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ImageArchitectureHeader),
            "::",
            stringify!(FirstEntryRVA)
        )
    );
}
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 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 new_bitfield_1(
        AmaskValue: ::std::os::raw::c_uint,
        AmaskShift: ::std::os::raw::c_uint,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u8> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u8> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let AmaskValue: u32 = unsafe { ::std::mem::transmute(AmaskValue) };
            AmaskValue as u64
        });
        __bindgen_bitfield_unit.set(8usize, 8u8, {
            let AmaskShift: u32 = unsafe { ::std::mem::transmute(AmaskShift) };
            AmaskShift 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,
}
#[test]
fn bindgen_test_layout__ImageArchitectureEntry() {
    assert_eq!(
        ::std::mem::size_of::<_ImageArchitectureEntry>(),
        8usize,
        concat!("Size of: ", stringify!(_ImageArchitectureEntry))
    );
    assert_eq!(
        ::std::mem::align_of::<_ImageArchitectureEntry>(),
        4usize,
        concat!("Alignment of ", stringify!(_ImageArchitectureEntry))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ImageArchitectureEntry>())).FixupInstRVA as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ImageArchitectureEntry),
            "::",
            stringify!(FixupInstRVA)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ImageArchitectureEntry>())).NewInst as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ImageArchitectureEntry),
            "::",
            stringify!(NewInst)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_IMPORT_OBJECT_HEADER__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<IMPORT_OBJECT_HEADER__bindgen_ty_1>(),
        2usize,
        concat!("Size of: ", stringify!(IMPORT_OBJECT_HEADER__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<IMPORT_OBJECT_HEADER__bindgen_ty_1>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(IMPORT_OBJECT_HEADER__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IMPORT_OBJECT_HEADER__bindgen_ty_1>())).Ordinal as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IMPORT_OBJECT_HEADER__bindgen_ty_1),
            "::",
            stringify!(Ordinal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IMPORT_OBJECT_HEADER__bindgen_ty_1>())).Hint as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IMPORT_OBJECT_HEADER__bindgen_ty_1),
            "::",
            stringify!(Hint)
        )
    );
}
#[test]
fn bindgen_test_layout_IMPORT_OBJECT_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<IMPORT_OBJECT_HEADER>(),
        20usize,
        concat!("Size of: ", stringify!(IMPORT_OBJECT_HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<IMPORT_OBJECT_HEADER>(),
        4usize,
        concat!("Alignment of ", stringify!(IMPORT_OBJECT_HEADER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMPORT_OBJECT_HEADER>())).Sig1 as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IMPORT_OBJECT_HEADER),
            "::",
            stringify!(Sig1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMPORT_OBJECT_HEADER>())).Sig2 as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(IMPORT_OBJECT_HEADER),
            "::",
            stringify!(Sig2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMPORT_OBJECT_HEADER>())).Version as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(IMPORT_OBJECT_HEADER),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMPORT_OBJECT_HEADER>())).Machine as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(IMPORT_OBJECT_HEADER),
            "::",
            stringify!(Machine)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IMPORT_OBJECT_HEADER>())).TimeDateStamp as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IMPORT_OBJECT_HEADER),
            "::",
            stringify!(TimeDateStamp)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMPORT_OBJECT_HEADER>())).SizeOfData as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(IMPORT_OBJECT_HEADER),
            "::",
            stringify!(SizeOfData)
        )
    );
}
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 = ::std::os::raw::c_int;
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 const IMPORT_OBJECT_NAME_TYPE_IMPORT_OBJECT_NAME_EXPORTAS: IMPORT_OBJECT_NAME_TYPE = 4;
pub type IMPORT_OBJECT_NAME_TYPE = ::std::os::raw::c_int;
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_NATIVE_ENTRYPOINT:
    ReplacesCorHdrNumericDefines = 16;
pub const ReplacesCorHdrNumericDefines_COMIMAGE_FLAGS_TRACKDEBUGDATA: ReplacesCorHdrNumericDefines =
    65536;
pub const ReplacesCorHdrNumericDefines_COMIMAGE_FLAGS_32BITPREFERRED: ReplacesCorHdrNumericDefines =
    131072;
pub const ReplacesCorHdrNumericDefines_COR_VERSION_MAJOR_V2: ReplacesCorHdrNumericDefines = 2;
pub const ReplacesCorHdrNumericDefines_COR_VERSION_MAJOR: ReplacesCorHdrNumericDefines = 2;
pub const ReplacesCorHdrNumericDefines_COR_VERSION_MINOR: ReplacesCorHdrNumericDefines = 5;
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_FROM_UNMANAGED_RETAIN_APPDOMAIN:
    ReplacesCorHdrNumericDefines = 8;
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 = ::std::os::raw::c_int;
#[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,
}
#[test]
fn bindgen_test_layout_IMAGE_COR20_HEADER__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<IMAGE_COR20_HEADER__bindgen_ty_1>(),
        4usize,
        concat!("Size of: ", stringify!(IMAGE_COR20_HEADER__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<IMAGE_COR20_HEADER__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(IMAGE_COR20_HEADER__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IMAGE_COR20_HEADER__bindgen_ty_1>())).EntryPointToken as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IMAGE_COR20_HEADER__bindgen_ty_1),
            "::",
            stringify!(EntryPointToken)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IMAGE_COR20_HEADER__bindgen_ty_1>())).EntryPointRVA as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IMAGE_COR20_HEADER__bindgen_ty_1),
            "::",
            stringify!(EntryPointRVA)
        )
    );
}
#[test]
fn bindgen_test_layout_IMAGE_COR20_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<IMAGE_COR20_HEADER>(),
        72usize,
        concat!("Size of: ", stringify!(IMAGE_COR20_HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<IMAGE_COR20_HEADER>(),
        4usize,
        concat!("Alignment of ", stringify!(IMAGE_COR20_HEADER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMAGE_COR20_HEADER>())).cb as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IMAGE_COR20_HEADER),
            "::",
            stringify!(cb)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IMAGE_COR20_HEADER>())).MajorRuntimeVersion as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(IMAGE_COR20_HEADER),
            "::",
            stringify!(MajorRuntimeVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IMAGE_COR20_HEADER>())).MinorRuntimeVersion as *const _ as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(IMAGE_COR20_HEADER),
            "::",
            stringify!(MinorRuntimeVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMAGE_COR20_HEADER>())).MetaData as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IMAGE_COR20_HEADER),
            "::",
            stringify!(MetaData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMAGE_COR20_HEADER>())).Flags as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IMAGE_COR20_HEADER),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMAGE_COR20_HEADER>())).Resources as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IMAGE_COR20_HEADER),
            "::",
            stringify!(Resources)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IMAGE_COR20_HEADER>())).StrongNameSignature as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IMAGE_COR20_HEADER),
            "::",
            stringify!(StrongNameSignature)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IMAGE_COR20_HEADER>())).CodeManagerTable as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IMAGE_COR20_HEADER),
            "::",
            stringify!(CodeManagerTable)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMAGE_COR20_HEADER>())).VTableFixups as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IMAGE_COR20_HEADER),
            "::",
            stringify!(VTableFixups)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IMAGE_COR20_HEADER>())).ExportAddressTableJumps as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IMAGE_COR20_HEADER),
            "::",
            stringify!(ExportAddressTableJumps)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IMAGE_COR20_HEADER>())).ManagedNativeHeader as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IMAGE_COR20_HEADER),
            "::",
            stringify!(ManagedNativeHeader)
        )
    );
}
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 RtlUnwind(
        TargetFrame: PVOID,
        TargetIp: PVOID,
        ExceptionRecord: PEXCEPTION_RECORD,
        ReturnValue: PVOID,
    );
}
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 RtlAddGrowableFunctionTable(
        DynamicTable: *mut PVOID,
        FunctionTable: PRUNTIME_FUNCTION,
        EntryCount: DWORD,
        MaximumEntryCount: DWORD,
        RangeBase: ULONG_PTR,
        RangeEnd: ULONG_PTR,
    ) -> DWORD;
}
extern "C" {
    pub fn RtlGrowFunctionTable(DynamicTable: PVOID, NewEntryCount: DWORD);
}
extern "C" {
    pub fn RtlDeleteGrowableFunctionTable(DynamicTable: PVOID);
}
extern "C" {
    pub fn RtlLookupFunctionEntry(
        ControlPc: DWORD64,
        ImageBase: PDWORD64,
        HistoryTable: PUNWIND_HISTORY_TABLE,
    ) -> PRUNTIME_FUNCTION;
}
extern "C" {
    pub fn RtlRestoreContext(ContextRecord: PCONTEXT, ExceptionRecord: *mut _EXCEPTION_RECORD);
}
extern "C" {
    pub fn RtlUnwindEx(
        TargetFrame: PVOID,
        TargetIp: PVOID,
        ExceptionRecord: PEXCEPTION_RECORD,
        ReturnValue: PVOID,
        ContextRecord: PCONTEXT,
        HistoryTable: PUNWIND_HISTORY_TABLE,
    );
}
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 RtlRaiseException(ExceptionRecord: PEXCEPTION_RECORD);
}
extern "C" {
    pub fn RtlPcToFileHeader(PcValue: PVOID, BaseOfImage: *mut PVOID) -> PVOID;
}
extern "C" {
    pub fn RtlCompareMemory(
        Source1: *const ::std::os::raw::c_void,
        Source2: *const ::std::os::raw::c_void,
        Length: SIZE_T,
    ) -> SIZE_T;
}
#[repr(C)]
#[repr(align(16))]
#[derive(Debug, Copy, Clone)]
pub struct _SLIST_ENTRY {
    pub Next: *mut _SLIST_ENTRY,
}
#[test]
fn bindgen_test_layout__SLIST_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_SLIST_ENTRY>(),
        16usize,
        concat!("Size of: ", stringify!(_SLIST_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_SLIST_ENTRY>(),
        16usize,
        concat!("Alignment of ", stringify!(_SLIST_ENTRY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SLIST_ENTRY>())).Next as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SLIST_ENTRY),
            "::",
            stringify!(Next)
        )
    );
}
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 HeaderX64: _SLIST_HEADER__bindgen_ty_2,
    _bindgen_union_align: u128,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SLIST_HEADER__bindgen_ty_1 {
    pub Alignment: ULONGLONG,
    pub Region: ULONGLONG,
}
#[test]
fn bindgen_test_layout__SLIST_HEADER__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_SLIST_HEADER__bindgen_ty_1>(),
        16usize,
        concat!("Size of: ", stringify!(_SLIST_HEADER__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_SLIST_HEADER__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(_SLIST_HEADER__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SLIST_HEADER__bindgen_ty_1>())).Alignment as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SLIST_HEADER__bindgen_ty_1),
            "::",
            stringify!(Alignment)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SLIST_HEADER__bindgen_ty_1>())).Region as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SLIST_HEADER__bindgen_ty_1),
            "::",
            stringify!(Region)
        )
    );
}
#[repr(C)]
#[repr(align(8))]
#[derive(Debug, Copy, Clone)]
pub struct _SLIST_HEADER__bindgen_ty_2 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize], u64>,
}
#[test]
fn bindgen_test_layout__SLIST_HEADER__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_SLIST_HEADER__bindgen_ty_2>(),
        16usize,
        concat!("Size of: ", stringify!(_SLIST_HEADER__bindgen_ty_2))
    );
    assert_eq!(
        ::std::mem::align_of::<_SLIST_HEADER__bindgen_ty_2>(),
        8usize,
        concat!("Alignment of ", stringify!(_SLIST_HEADER__bindgen_ty_2))
    );
}
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, 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 Reserved(&self) -> ULONGLONG {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(64usize, 4u8) as u64) }
    }
    #[inline]
    pub fn set_Reserved(&mut self, val: ULONGLONG) {
        unsafe {
            let val: u64 = ::std::mem::transmute(val);
            self._bitfield_1.set(64usize, 4u8, 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,
        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, 4u8, {
            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
    }
}
#[test]
fn bindgen_test_layout__SLIST_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<_SLIST_HEADER>(),
        16usize,
        concat!("Size of: ", stringify!(_SLIST_HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<_SLIST_HEADER>(),
        16usize,
        concat!("Alignment of ", stringify!(_SLIST_HEADER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SLIST_HEADER>())).HeaderX64 as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SLIST_HEADER),
            "::",
            stringify!(HeaderX64)
        )
    );
}
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(Copy, Clone)]
pub union _RTL_RUN_ONCE {
    pub Ptr: PVOID,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__RTL_RUN_ONCE() {
    assert_eq!(
        ::std::mem::size_of::<_RTL_RUN_ONCE>(),
        8usize,
        concat!("Size of: ", stringify!(_RTL_RUN_ONCE))
    );
    assert_eq!(
        ::std::mem::align_of::<_RTL_RUN_ONCE>(),
        8usize,
        concat!("Alignment of ", stringify!(_RTL_RUN_ONCE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RTL_RUN_ONCE>())).Ptr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RTL_RUN_ONCE),
            "::",
            stringify!(Ptr)
        )
    );
}
pub type RTL_RUN_ONCE = _RTL_RUN_ONCE;
pub type PRTL_RUN_ONCE = *mut _RTL_RUN_ONCE;
#[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,
}
#[test]
fn bindgen_test_layout__RTL_BARRIER() {
    assert_eq!(
        ::std::mem::size_of::<_RTL_BARRIER>(),
        32usize,
        concat!("Size of: ", stringify!(_RTL_BARRIER))
    );
    assert_eq!(
        ::std::mem::align_of::<_RTL_BARRIER>(),
        8usize,
        concat!("Alignment of ", stringify!(_RTL_BARRIER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RTL_BARRIER>())).Reserved1 as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RTL_BARRIER),
            "::",
            stringify!(Reserved1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RTL_BARRIER>())).Reserved2 as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_RTL_BARRIER),
            "::",
            stringify!(Reserved2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RTL_BARRIER>())).Reserved3 as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RTL_BARRIER),
            "::",
            stringify!(Reserved3)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RTL_BARRIER>())).Reserved4 as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_RTL_BARRIER),
            "::",
            stringify!(Reserved4)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RTL_BARRIER>())).Reserved5 as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_RTL_BARRIER),
            "::",
            stringify!(Reserved5)
        )
    );
}
pub type RTL_BARRIER = _RTL_BARRIER;
pub type PRTL_BARRIER = *mut _RTL_BARRIER;
extern "C" {
    pub fn __fastfail(Code: ::std::os::raw::c_uint);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MESSAGE_RESOURCE_ENTRY {
    pub Length: WORD,
    pub Flags: WORD,
    pub Text: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout__MESSAGE_RESOURCE_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_MESSAGE_RESOURCE_ENTRY>(),
        6usize,
        concat!("Size of: ", stringify!(_MESSAGE_RESOURCE_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_MESSAGE_RESOURCE_ENTRY>(),
        2usize,
        concat!("Alignment of ", stringify!(_MESSAGE_RESOURCE_ENTRY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MESSAGE_RESOURCE_ENTRY>())).Length as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MESSAGE_RESOURCE_ENTRY),
            "::",
            stringify!(Length)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MESSAGE_RESOURCE_ENTRY>())).Flags as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_MESSAGE_RESOURCE_ENTRY),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MESSAGE_RESOURCE_ENTRY>())).Text as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_MESSAGE_RESOURCE_ENTRY),
            "::",
            stringify!(Text)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__MESSAGE_RESOURCE_BLOCK() {
    assert_eq!(
        ::std::mem::size_of::<_MESSAGE_RESOURCE_BLOCK>(),
        12usize,
        concat!("Size of: ", stringify!(_MESSAGE_RESOURCE_BLOCK))
    );
    assert_eq!(
        ::std::mem::align_of::<_MESSAGE_RESOURCE_BLOCK>(),
        4usize,
        concat!("Alignment of ", stringify!(_MESSAGE_RESOURCE_BLOCK))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MESSAGE_RESOURCE_BLOCK>())).LowId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MESSAGE_RESOURCE_BLOCK),
            "::",
            stringify!(LowId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MESSAGE_RESOURCE_BLOCK>())).HighId as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_MESSAGE_RESOURCE_BLOCK),
            "::",
            stringify!(HighId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MESSAGE_RESOURCE_BLOCK>())).OffsetToEntries as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_MESSAGE_RESOURCE_BLOCK),
            "::",
            stringify!(OffsetToEntries)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__MESSAGE_RESOURCE_DATA() {
    assert_eq!(
        ::std::mem::size_of::<_MESSAGE_RESOURCE_DATA>(),
        16usize,
        concat!("Size of: ", stringify!(_MESSAGE_RESOURCE_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<_MESSAGE_RESOURCE_DATA>(),
        4usize,
        concat!("Alignment of ", stringify!(_MESSAGE_RESOURCE_DATA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MESSAGE_RESOURCE_DATA>())).NumberOfBlocks as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MESSAGE_RESOURCE_DATA),
            "::",
            stringify!(NumberOfBlocks)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MESSAGE_RESOURCE_DATA>())).Blocks as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_MESSAGE_RESOURCE_DATA),
            "::",
            stringify!(Blocks)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__OSVERSIONINFOA() {
    assert_eq!(
        ::std::mem::size_of::<_OSVERSIONINFOA>(),
        148usize,
        concat!("Size of: ", stringify!(_OSVERSIONINFOA))
    );
    assert_eq!(
        ::std::mem::align_of::<_OSVERSIONINFOA>(),
        4usize,
        concat!("Alignment of ", stringify!(_OSVERSIONINFOA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OSVERSIONINFOA>())).dwOSVersionInfoSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOA),
            "::",
            stringify!(dwOSVersionInfoSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OSVERSIONINFOA>())).dwMajorVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOA),
            "::",
            stringify!(dwMajorVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OSVERSIONINFOA>())).dwMinorVersion as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOA),
            "::",
            stringify!(dwMinorVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OSVERSIONINFOA>())).dwBuildNumber as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOA),
            "::",
            stringify!(dwBuildNumber)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OSVERSIONINFOA>())).dwPlatformId as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOA),
            "::",
            stringify!(dwPlatformId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OSVERSIONINFOA>())).szCSDVersion as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOA),
            "::",
            stringify!(szCSDVersion)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__OSVERSIONINFOW() {
    assert_eq!(
        ::std::mem::size_of::<_OSVERSIONINFOW>(),
        276usize,
        concat!("Size of: ", stringify!(_OSVERSIONINFOW))
    );
    assert_eq!(
        ::std::mem::align_of::<_OSVERSIONINFOW>(),
        4usize,
        concat!("Alignment of ", stringify!(_OSVERSIONINFOW))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OSVERSIONINFOW>())).dwOSVersionInfoSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOW),
            "::",
            stringify!(dwOSVersionInfoSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OSVERSIONINFOW>())).dwMajorVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOW),
            "::",
            stringify!(dwMajorVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OSVERSIONINFOW>())).dwMinorVersion as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOW),
            "::",
            stringify!(dwMinorVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OSVERSIONINFOW>())).dwBuildNumber as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOW),
            "::",
            stringify!(dwBuildNumber)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OSVERSIONINFOW>())).dwPlatformId as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOW),
            "::",
            stringify!(dwPlatformId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OSVERSIONINFOW>())).szCSDVersion as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOW),
            "::",
            stringify!(szCSDVersion)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__OSVERSIONINFOEXA() {
    assert_eq!(
        ::std::mem::size_of::<_OSVERSIONINFOEXA>(),
        156usize,
        concat!("Size of: ", stringify!(_OSVERSIONINFOEXA))
    );
    assert_eq!(
        ::std::mem::align_of::<_OSVERSIONINFOEXA>(),
        4usize,
        concat!("Alignment of ", stringify!(_OSVERSIONINFOEXA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OSVERSIONINFOEXA>())).dwOSVersionInfoSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOEXA),
            "::",
            stringify!(dwOSVersionInfoSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OSVERSIONINFOEXA>())).dwMajorVersion as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOEXA),
            "::",
            stringify!(dwMajorVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OSVERSIONINFOEXA>())).dwMinorVersion as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOEXA),
            "::",
            stringify!(dwMinorVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OSVERSIONINFOEXA>())).dwBuildNumber as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOEXA),
            "::",
            stringify!(dwBuildNumber)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OSVERSIONINFOEXA>())).dwPlatformId as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOEXA),
            "::",
            stringify!(dwPlatformId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OSVERSIONINFOEXA>())).szCSDVersion as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOEXA),
            "::",
            stringify!(szCSDVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OSVERSIONINFOEXA>())).wServicePackMajor as *const _ as usize
        },
        148usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOEXA),
            "::",
            stringify!(wServicePackMajor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OSVERSIONINFOEXA>())).wServicePackMinor as *const _ as usize
        },
        150usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOEXA),
            "::",
            stringify!(wServicePackMinor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OSVERSIONINFOEXA>())).wSuiteMask as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOEXA),
            "::",
            stringify!(wSuiteMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OSVERSIONINFOEXA>())).wProductType as *const _ as usize },
        154usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOEXA),
            "::",
            stringify!(wProductType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OSVERSIONINFOEXA>())).wReserved as *const _ as usize },
        155usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOEXA),
            "::",
            stringify!(wReserved)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__OSVERSIONINFOEXW() {
    assert_eq!(
        ::std::mem::size_of::<_OSVERSIONINFOEXW>(),
        284usize,
        concat!("Size of: ", stringify!(_OSVERSIONINFOEXW))
    );
    assert_eq!(
        ::std::mem::align_of::<_OSVERSIONINFOEXW>(),
        4usize,
        concat!("Alignment of ", stringify!(_OSVERSIONINFOEXW))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OSVERSIONINFOEXW>())).dwOSVersionInfoSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOEXW),
            "::",
            stringify!(dwOSVersionInfoSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OSVERSIONINFOEXW>())).dwMajorVersion as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOEXW),
            "::",
            stringify!(dwMajorVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OSVERSIONINFOEXW>())).dwMinorVersion as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOEXW),
            "::",
            stringify!(dwMinorVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OSVERSIONINFOEXW>())).dwBuildNumber as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOEXW),
            "::",
            stringify!(dwBuildNumber)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OSVERSIONINFOEXW>())).dwPlatformId as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOEXW),
            "::",
            stringify!(dwPlatformId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OSVERSIONINFOEXW>())).szCSDVersion as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOEXW),
            "::",
            stringify!(szCSDVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OSVERSIONINFOEXW>())).wServicePackMajor as *const _ as usize
        },
        276usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOEXW),
            "::",
            stringify!(wServicePackMajor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OSVERSIONINFOEXW>())).wServicePackMinor as *const _ as usize
        },
        278usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOEXW),
            "::",
            stringify!(wServicePackMinor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OSVERSIONINFOEXW>())).wSuiteMask as *const _ as usize },
        280usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOEXW),
            "::",
            stringify!(wSuiteMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OSVERSIONINFOEXW>())).wProductType as *const _ as usize },
        282usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOEXW),
            "::",
            stringify!(wProductType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OSVERSIONINFOEXW>())).wReserved as *const _ as usize },
        283usize,
        concat!(
            "Offset of field: ",
            stringify!(_OSVERSIONINFOEXW),
            "::",
            stringify!(wReserved)
        )
    );
}
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;
}
extern "C" {
    pub fn RtlGetProductInfo(
        OSMajorVersion: DWORD,
        OSMinorVersion: DWORD,
        SpMajorVersion: DWORD,
        SpMinorVersion: DWORD,
        ReturnedProductType: PDWORD,
    ) -> BOOLEAN;
}
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 = ::std::os::raw::c_int;
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 = ::std::os::raw::c_int;
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 PRTL_UMS_SCHEDULER_ENTRY_POINT = ::std::option::Option<
    unsafe extern "C" fn(arg1: RTL_UMS_SCHEDULER_REASON, arg2: ULONG_PTR, arg3: PVOID),
>;
extern "C" {
    pub fn RtlCrc32(
        Buffer: *const ::std::os::raw::c_void,
        Size: size_t,
        InitialCrc: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn RtlCrc64(
        Buffer: *const ::std::os::raw::c_void,
        Size: size_t,
        InitialCrc: ULONGLONG,
    ) -> ULONGLONG;
}
pub const _OS_DEPLOYEMENT_STATE_VALUES_OS_DEPLOYMENT_STANDARD: _OS_DEPLOYEMENT_STATE_VALUES = 1;
pub const _OS_DEPLOYEMENT_STATE_VALUES_OS_DEPLOYMENT_COMPACT: _OS_DEPLOYEMENT_STATE_VALUES = 2;
pub type _OS_DEPLOYEMENT_STATE_VALUES = ::std::os::raw::c_int;
pub use self::_OS_DEPLOYEMENT_STATE_VALUES as OS_DEPLOYEMENT_STATE_VALUES;
extern "C" {
    pub fn RtlOsDeploymentState(Flags: DWORD) -> OS_DEPLOYEMENT_STATE_VALUES;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NV_MEMORY_RANGE {
    pub BaseAddress: *mut ::std::os::raw::c_void,
    pub Length: SIZE_T,
}
#[test]
fn bindgen_test_layout__NV_MEMORY_RANGE() {
    assert_eq!(
        ::std::mem::size_of::<_NV_MEMORY_RANGE>(),
        16usize,
        concat!("Size of: ", stringify!(_NV_MEMORY_RANGE))
    );
    assert_eq!(
        ::std::mem::align_of::<_NV_MEMORY_RANGE>(),
        8usize,
        concat!("Alignment of ", stringify!(_NV_MEMORY_RANGE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NV_MEMORY_RANGE>())).BaseAddress as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NV_MEMORY_RANGE),
            "::",
            stringify!(BaseAddress)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NV_MEMORY_RANGE>())).Length as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NV_MEMORY_RANGE),
            "::",
            stringify!(Length)
        )
    );
}
pub type NV_MEMORY_RANGE = _NV_MEMORY_RANGE;
pub type PNV_MEMORY_RANGE = *mut _NV_MEMORY_RANGE;
extern "C" {
    pub fn RtlGetNonVolatileToken(NvBuffer: PVOID, Size: SIZE_T, NvToken: *mut PVOID) -> DWORD;
}
extern "C" {
    pub fn RtlFreeNonVolatileToken(NvToken: PVOID) -> DWORD;
}
extern "C" {
    pub fn RtlFlushNonVolatileMemory(
        NvToken: PVOID,
        NvBuffer: PVOID,
        Size: SIZE_T,
        Flags: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn RtlDrainNonVolatileFlush(NvToken: PVOID) -> DWORD;
}
extern "C" {
    pub fn RtlWriteNonVolatileMemory(
        NvToken: PVOID,
        NvDestination: *mut ::std::os::raw::c_void,
        Source: *const ::std::os::raw::c_void,
        Size: SIZE_T,
        Flags: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn RtlFillNonVolatileMemory(
        NvToken: PVOID,
        NvDestination: *mut ::std::os::raw::c_void,
        Size: SIZE_T,
        Value: BYTE,
        Flags: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn RtlFlushNonVolatileMemoryRanges(
        NvToken: PVOID,
        NvRanges: PNV_MEMORY_RANGE,
        NumRanges: SIZE_T,
        Flags: DWORD,
    ) -> DWORD;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct CORRELATION_VECTOR {
    pub Version: CHAR,
    pub Vector: [CHAR; 129usize],
}
#[test]
fn bindgen_test_layout_CORRELATION_VECTOR() {
    assert_eq!(
        ::std::mem::size_of::<CORRELATION_VECTOR>(),
        130usize,
        concat!("Size of: ", stringify!(CORRELATION_VECTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<CORRELATION_VECTOR>(),
        1usize,
        concat!("Alignment of ", stringify!(CORRELATION_VECTOR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<CORRELATION_VECTOR>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(CORRELATION_VECTOR),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<CORRELATION_VECTOR>())).Vector as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(CORRELATION_VECTOR),
            "::",
            stringify!(Vector)
        )
    );
}
pub type PCORRELATION_VECTOR = *mut CORRELATION_VECTOR;
extern "C" {
    pub fn RtlInitializeCorrelationVector(
        CorrelationVector: PCORRELATION_VECTOR,
        Version: ::std::os::raw::c_int,
        Guid: *const GUID,
    ) -> DWORD;
}
extern "C" {
    pub fn RtlIncrementCorrelationVector(CorrelationVector: PCORRELATION_VECTOR) -> DWORD;
}
extern "C" {
    pub fn RtlExtendCorrelationVector(CorrelationVector: PCORRELATION_VECTOR) -> DWORD;
}
extern "C" {
    pub fn RtlValidateCorrelationVector(Vector: PCORRELATION_VECTOR) -> DWORD;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG {
    pub Size: DWORD,
    pub TriggerId: PCWSTR,
}
#[test]
fn bindgen_test_layout__CUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG() {
    assert_eq!(
        ::std::mem::size_of::<_CUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG>(),
        16usize,
        concat!("Size of: ", stringify!(_CUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG))
    );
    assert_eq!(
        ::std::mem::align_of::<_CUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG>())).Size as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG>())).TriggerId as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG),
            "::",
            stringify!(TriggerId)
        )
    );
}
pub type CUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG = _CUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG;
pub type PCUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG = *mut _CUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG;
extern "C" {
    pub fn RtlRaiseCustomSystemEventTrigger(
        TriggerConfig: PCUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG,
    ) -> DWORD;
}
pub const _IMAGE_POLICY_ENTRY_TYPE_ImagePolicyEntryTypeNone: _IMAGE_POLICY_ENTRY_TYPE = 0;
pub const _IMAGE_POLICY_ENTRY_TYPE_ImagePolicyEntryTypeBool: _IMAGE_POLICY_ENTRY_TYPE = 1;
pub const _IMAGE_POLICY_ENTRY_TYPE_ImagePolicyEntryTypeInt8: _IMAGE_POLICY_ENTRY_TYPE = 2;
pub const _IMAGE_POLICY_ENTRY_TYPE_ImagePolicyEntryTypeUInt8: _IMAGE_POLICY_ENTRY_TYPE = 3;
pub const _IMAGE_POLICY_ENTRY_TYPE_ImagePolicyEntryTypeInt16: _IMAGE_POLICY_ENTRY_TYPE = 4;
pub const _IMAGE_POLICY_ENTRY_TYPE_ImagePolicyEntryTypeUInt16: _IMAGE_POLICY_ENTRY_TYPE = 5;
pub const _IMAGE_POLICY_ENTRY_TYPE_ImagePolicyEntryTypeInt32: _IMAGE_POLICY_ENTRY_TYPE = 6;
pub const _IMAGE_POLICY_ENTRY_TYPE_ImagePolicyEntryTypeUInt32: _IMAGE_POLICY_ENTRY_TYPE = 7;
pub const _IMAGE_POLICY_ENTRY_TYPE_ImagePolicyEntryTypeInt64: _IMAGE_POLICY_ENTRY_TYPE = 8;
pub const _IMAGE_POLICY_ENTRY_TYPE_ImagePolicyEntryTypeUInt64: _IMAGE_POLICY_ENTRY_TYPE = 9;
pub const _IMAGE_POLICY_ENTRY_TYPE_ImagePolicyEntryTypeAnsiString: _IMAGE_POLICY_ENTRY_TYPE = 10;
pub const _IMAGE_POLICY_ENTRY_TYPE_ImagePolicyEntryTypeUnicodeString: _IMAGE_POLICY_ENTRY_TYPE = 11;
pub const _IMAGE_POLICY_ENTRY_TYPE_ImagePolicyEntryTypeOverride: _IMAGE_POLICY_ENTRY_TYPE = 12;
pub const _IMAGE_POLICY_ENTRY_TYPE_ImagePolicyEntryTypeMaximum: _IMAGE_POLICY_ENTRY_TYPE = 13;
pub type _IMAGE_POLICY_ENTRY_TYPE = ::std::os::raw::c_int;
pub use self::_IMAGE_POLICY_ENTRY_TYPE as IMAGE_POLICY_ENTRY_TYPE;
pub const _IMAGE_POLICY_ID_ImagePolicyIdNone: _IMAGE_POLICY_ID = 0;
pub const _IMAGE_POLICY_ID_ImagePolicyIdEtw: _IMAGE_POLICY_ID = 1;
pub const _IMAGE_POLICY_ID_ImagePolicyIdDebug: _IMAGE_POLICY_ID = 2;
pub const _IMAGE_POLICY_ID_ImagePolicyIdCrashDump: _IMAGE_POLICY_ID = 3;
pub const _IMAGE_POLICY_ID_ImagePolicyIdCrashDumpKey: _IMAGE_POLICY_ID = 4;
pub const _IMAGE_POLICY_ID_ImagePolicyIdCrashDumpKeyGuid: _IMAGE_POLICY_ID = 5;
pub const _IMAGE_POLICY_ID_ImagePolicyIdParentSd: _IMAGE_POLICY_ID = 6;
pub const _IMAGE_POLICY_ID_ImagePolicyIdParentSdRev: _IMAGE_POLICY_ID = 7;
pub const _IMAGE_POLICY_ID_ImagePolicyIdSvn: _IMAGE_POLICY_ID = 8;
pub const _IMAGE_POLICY_ID_ImagePolicyIdDeviceId: _IMAGE_POLICY_ID = 9;
pub const _IMAGE_POLICY_ID_ImagePolicyIdCapability: _IMAGE_POLICY_ID = 10;
pub const _IMAGE_POLICY_ID_ImagePolicyIdScenarioId: _IMAGE_POLICY_ID = 11;
pub const _IMAGE_POLICY_ID_ImagePolicyIdMaximum: _IMAGE_POLICY_ID = 12;
pub type _IMAGE_POLICY_ID = ::std::os::raw::c_int;
pub use self::_IMAGE_POLICY_ID as IMAGE_POLICY_ID;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _IMAGE_POLICY_ENTRY {
    pub Type: IMAGE_POLICY_ENTRY_TYPE,
    pub PolicyId: IMAGE_POLICY_ID,
    pub u: _IMAGE_POLICY_ENTRY__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _IMAGE_POLICY_ENTRY__bindgen_ty_1 {
    pub None: *const ::std::os::raw::c_void,
    pub BoolValue: BOOLEAN,
    pub Int8Value: INT8,
    pub UInt8Value: UINT8,
    pub Int16Value: INT16,
    pub UInt16Value: UINT16,
    pub Int32Value: INT32,
    pub UInt32Value: UINT32,
    pub Int64Value: INT64,
    pub UInt64Value: UINT64,
    pub AnsiStringValue: PCSTR,
    pub UnicodeStringValue: PCWSTR,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__IMAGE_POLICY_ENTRY__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_POLICY_ENTRY__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_IMAGE_POLICY_ENTRY__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_POLICY_ENTRY__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_IMAGE_POLICY_ENTRY__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_POLICY_ENTRY__bindgen_ty_1>())).None as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_POLICY_ENTRY__bindgen_ty_1),
            "::",
            stringify!(None)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_POLICY_ENTRY__bindgen_ty_1>())).BoolValue as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_POLICY_ENTRY__bindgen_ty_1),
            "::",
            stringify!(BoolValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_POLICY_ENTRY__bindgen_ty_1>())).Int8Value as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_POLICY_ENTRY__bindgen_ty_1),
            "::",
            stringify!(Int8Value)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_POLICY_ENTRY__bindgen_ty_1>())).UInt8Value as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_POLICY_ENTRY__bindgen_ty_1),
            "::",
            stringify!(UInt8Value)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_POLICY_ENTRY__bindgen_ty_1>())).Int16Value as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_POLICY_ENTRY__bindgen_ty_1),
            "::",
            stringify!(Int16Value)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_POLICY_ENTRY__bindgen_ty_1>())).UInt16Value as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_POLICY_ENTRY__bindgen_ty_1),
            "::",
            stringify!(UInt16Value)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_POLICY_ENTRY__bindgen_ty_1>())).Int32Value as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_POLICY_ENTRY__bindgen_ty_1),
            "::",
            stringify!(Int32Value)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_POLICY_ENTRY__bindgen_ty_1>())).UInt32Value as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_POLICY_ENTRY__bindgen_ty_1),
            "::",
            stringify!(UInt32Value)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_POLICY_ENTRY__bindgen_ty_1>())).Int64Value as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_POLICY_ENTRY__bindgen_ty_1),
            "::",
            stringify!(Int64Value)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_POLICY_ENTRY__bindgen_ty_1>())).UInt64Value as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_POLICY_ENTRY__bindgen_ty_1),
            "::",
            stringify!(UInt64Value)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_POLICY_ENTRY__bindgen_ty_1>())).AnsiStringValue
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_POLICY_ENTRY__bindgen_ty_1),
            "::",
            stringify!(AnsiStringValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_POLICY_ENTRY__bindgen_ty_1>())).UnicodeStringValue
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_POLICY_ENTRY__bindgen_ty_1),
            "::",
            stringify!(UnicodeStringValue)
        )
    );
}
#[test]
fn bindgen_test_layout__IMAGE_POLICY_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_POLICY_ENTRY>(),
        16usize,
        concat!("Size of: ", stringify!(_IMAGE_POLICY_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_POLICY_ENTRY>(),
        8usize,
        concat!("Alignment of ", stringify!(_IMAGE_POLICY_ENTRY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_POLICY_ENTRY>())).Type as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_POLICY_ENTRY),
            "::",
            stringify!(Type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_POLICY_ENTRY>())).PolicyId as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_POLICY_ENTRY),
            "::",
            stringify!(PolicyId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_POLICY_ENTRY>())).u as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_POLICY_ENTRY),
            "::",
            stringify!(u)
        )
    );
}
pub type IMAGE_POLICY_ENTRY = _IMAGE_POLICY_ENTRY;
pub type PCIMAGE_POLICY_ENTRY = *const IMAGE_POLICY_ENTRY;
#[repr(C)]
pub struct _IMAGE_POLICY_METADATA {
    pub Version: BYTE,
    pub Reserved0: [BYTE; 7usize],
    pub ApplicationId: ULONGLONG,
    pub Policies: __IncompleteArrayField<IMAGE_POLICY_ENTRY>,
}
#[test]
fn bindgen_test_layout__IMAGE_POLICY_METADATA() {
    assert_eq!(
        ::std::mem::size_of::<_IMAGE_POLICY_METADATA>(),
        16usize,
        concat!("Size of: ", stringify!(_IMAGE_POLICY_METADATA))
    );
    assert_eq!(
        ::std::mem::align_of::<_IMAGE_POLICY_METADATA>(),
        8usize,
        concat!("Alignment of ", stringify!(_IMAGE_POLICY_METADATA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_POLICY_METADATA>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_POLICY_METADATA),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_POLICY_METADATA>())).Reserved0 as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_POLICY_METADATA),
            "::",
            stringify!(Reserved0)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IMAGE_POLICY_METADATA>())).ApplicationId as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_POLICY_METADATA),
            "::",
            stringify!(ApplicationId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IMAGE_POLICY_METADATA>())).Policies as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IMAGE_POLICY_METADATA),
            "::",
            stringify!(Policies)
        )
    );
}
pub type IMAGE_POLICY_METADATA = _IMAGE_POLICY_METADATA;
pub type PCIMAGE_POLICY_METADATA = *const IMAGE_POLICY_METADATA;
#[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,
}
#[test]
fn bindgen_test_layout__RTL_CRITICAL_SECTION_DEBUG() {
    assert_eq!(
        ::std::mem::size_of::<_RTL_CRITICAL_SECTION_DEBUG>(),
        48usize,
        concat!("Size of: ", stringify!(_RTL_CRITICAL_SECTION_DEBUG))
    );
    assert_eq!(
        ::std::mem::align_of::<_RTL_CRITICAL_SECTION_DEBUG>(),
        8usize,
        concat!("Alignment of ", stringify!(_RTL_CRITICAL_SECTION_DEBUG))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RTL_CRITICAL_SECTION_DEBUG>())).Type as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RTL_CRITICAL_SECTION_DEBUG),
            "::",
            stringify!(Type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RTL_CRITICAL_SECTION_DEBUG>())).CreatorBackTraceIndex
                as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_RTL_CRITICAL_SECTION_DEBUG),
            "::",
            stringify!(CreatorBackTraceIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RTL_CRITICAL_SECTION_DEBUG>())).CriticalSection as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RTL_CRITICAL_SECTION_DEBUG),
            "::",
            stringify!(CriticalSection)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RTL_CRITICAL_SECTION_DEBUG>())).ProcessLocksList as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_RTL_CRITICAL_SECTION_DEBUG),
            "::",
            stringify!(ProcessLocksList)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RTL_CRITICAL_SECTION_DEBUG>())).EntryCount as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_RTL_CRITICAL_SECTION_DEBUG),
            "::",
            stringify!(EntryCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RTL_CRITICAL_SECTION_DEBUG>())).ContentionCount as *const _
                as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_RTL_CRITICAL_SECTION_DEBUG),
            "::",
            stringify!(ContentionCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RTL_CRITICAL_SECTION_DEBUG>())).Flags as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_RTL_CRITICAL_SECTION_DEBUG),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RTL_CRITICAL_SECTION_DEBUG>())).CreatorBackTraceIndexHigh
                as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_RTL_CRITICAL_SECTION_DEBUG),
            "::",
            stringify!(CreatorBackTraceIndexHigh)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RTL_CRITICAL_SECTION_DEBUG>())).SpareWORD as *const _ as usize
        },
        46usize,
        concat!(
            "Offset of field: ",
            stringify!(_RTL_CRITICAL_SECTION_DEBUG),
            "::",
            stringify!(SpareWORD)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__RTL_CRITICAL_SECTION() {
    assert_eq!(
        ::std::mem::size_of::<_RTL_CRITICAL_SECTION>(),
        40usize,
        concat!("Size of: ", stringify!(_RTL_CRITICAL_SECTION))
    );
    assert_eq!(
        ::std::mem::align_of::<_RTL_CRITICAL_SECTION>(),
        8usize,
        concat!("Alignment of ", stringify!(_RTL_CRITICAL_SECTION))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RTL_CRITICAL_SECTION>())).DebugInfo as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RTL_CRITICAL_SECTION),
            "::",
            stringify!(DebugInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RTL_CRITICAL_SECTION>())).LockCount as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RTL_CRITICAL_SECTION),
            "::",
            stringify!(LockCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RTL_CRITICAL_SECTION>())).RecursionCount as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_RTL_CRITICAL_SECTION),
            "::",
            stringify!(RecursionCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RTL_CRITICAL_SECTION>())).OwningThread as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_RTL_CRITICAL_SECTION),
            "::",
            stringify!(OwningThread)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RTL_CRITICAL_SECTION>())).LockSemaphore as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_RTL_CRITICAL_SECTION),
            "::",
            stringify!(LockSemaphore)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RTL_CRITICAL_SECTION>())).SpinCount as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_RTL_CRITICAL_SECTION),
            "::",
            stringify!(SpinCount)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__RTL_SRWLOCK() {
    assert_eq!(
        ::std::mem::size_of::<_RTL_SRWLOCK>(),
        8usize,
        concat!("Size of: ", stringify!(_RTL_SRWLOCK))
    );
    assert_eq!(
        ::std::mem::align_of::<_RTL_SRWLOCK>(),
        8usize,
        concat!("Alignment of ", stringify!(_RTL_SRWLOCK))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RTL_SRWLOCK>())).Ptr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RTL_SRWLOCK),
            "::",
            stringify!(Ptr)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__RTL_CONDITION_VARIABLE() {
    assert_eq!(
        ::std::mem::size_of::<_RTL_CONDITION_VARIABLE>(),
        8usize,
        concat!("Size of: ", stringify!(_RTL_CONDITION_VARIABLE))
    );
    assert_eq!(
        ::std::mem::align_of::<_RTL_CONDITION_VARIABLE>(),
        8usize,
        concat!("Alignment of ", stringify!(_RTL_CONDITION_VARIABLE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RTL_CONDITION_VARIABLE>())).Ptr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RTL_CONDITION_VARIABLE),
            "::",
            stringify!(Ptr)
        )
    );
}
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 const _HEAP_INFORMATION_CLASS_HeapOptimizeResources: _HEAP_INFORMATION_CLASS = 3;
pub type _HEAP_INFORMATION_CLASS = ::std::os::raw::c_int;
pub use self::_HEAP_INFORMATION_CLASS as HEAP_INFORMATION_CLASS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _HEAP_OPTIMIZE_RESOURCES_INFORMATION {
    pub Version: DWORD,
    pub Flags: DWORD,
}
#[test]
fn bindgen_test_layout__HEAP_OPTIMIZE_RESOURCES_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_HEAP_OPTIMIZE_RESOURCES_INFORMATION>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_HEAP_OPTIMIZE_RESOURCES_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_HEAP_OPTIMIZE_RESOURCES_INFORMATION>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_HEAP_OPTIMIZE_RESOURCES_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_HEAP_OPTIMIZE_RESOURCES_INFORMATION>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_HEAP_OPTIMIZE_RESOURCES_INFORMATION),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_HEAP_OPTIMIZE_RESOURCES_INFORMATION>())).Flags as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_HEAP_OPTIMIZE_RESOURCES_INFORMATION),
            "::",
            stringify!(Flags)
        )
    );
}
pub type HEAP_OPTIMIZE_RESOURCES_INFORMATION = _HEAP_OPTIMIZE_RESOURCES_INFORMATION;
pub type PHEAP_OPTIMIZE_RESOURCES_INFORMATION = *mut _HEAP_OPTIMIZE_RESOURCES_INFORMATION;
pub type WAITORTIMERCALLBACKFUNC =
    ::std::option::Option<unsafe extern "C" fn(arg1: PVOID, arg2: BOOLEAN)>;
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 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 = ::std::os::raw::c_int;
pub use self::_ACTIVATION_CONTEXT_INFO_CLASS as ACTIVATION_CONTEXT_INFO_CLASS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ACTIVATION_CONTEXT_QUERY_INDEX {
    pub ulAssemblyIndex: DWORD,
    pub ulFileIndexInAssembly: DWORD,
}
#[test]
fn bindgen_test_layout__ACTIVATION_CONTEXT_QUERY_INDEX() {
    assert_eq!(
        ::std::mem::size_of::<_ACTIVATION_CONTEXT_QUERY_INDEX>(),
        8usize,
        concat!("Size of: ", stringify!(_ACTIVATION_CONTEXT_QUERY_INDEX))
    );
    assert_eq!(
        ::std::mem::align_of::<_ACTIVATION_CONTEXT_QUERY_INDEX>(),
        4usize,
        concat!("Alignment of ", stringify!(_ACTIVATION_CONTEXT_QUERY_INDEX))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_QUERY_INDEX>())).ulAssemblyIndex as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_QUERY_INDEX),
            "::",
            stringify!(ulAssemblyIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_QUERY_INDEX>())).ulFileIndexInAssembly
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_QUERY_INDEX),
            "::",
            stringify!(ulFileIndexInAssembly)
        )
    );
}
pub type ACTIVATION_CONTEXT_QUERY_INDEX = _ACTIVATION_CONTEXT_QUERY_INDEX;
pub type PACTIVATION_CONTEXT_QUERY_INDEX = *mut _ACTIVATION_CONTEXT_QUERY_INDEX;
pub type PCACTIVATION_CONTEXT_QUERY_INDEX = *const _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,
}
#[test]
fn bindgen_test_layout__ASSEMBLY_FILE_DETAILED_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_ASSEMBLY_FILE_DETAILED_INFORMATION>(),
        32usize,
        concat!("Size of: ", stringify!(_ASSEMBLY_FILE_DETAILED_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_ASSEMBLY_FILE_DETAILED_INFORMATION>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_ASSEMBLY_FILE_DETAILED_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ASSEMBLY_FILE_DETAILED_INFORMATION>())).ulFlags as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ASSEMBLY_FILE_DETAILED_INFORMATION),
            "::",
            stringify!(ulFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ASSEMBLY_FILE_DETAILED_INFORMATION>())).ulFilenameLength
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ASSEMBLY_FILE_DETAILED_INFORMATION),
            "::",
            stringify!(ulFilenameLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ASSEMBLY_FILE_DETAILED_INFORMATION>())).ulPathLength as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ASSEMBLY_FILE_DETAILED_INFORMATION),
            "::",
            stringify!(ulPathLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ASSEMBLY_FILE_DETAILED_INFORMATION>())).lpFileName as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_ASSEMBLY_FILE_DETAILED_INFORMATION),
            "::",
            stringify!(lpFileName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ASSEMBLY_FILE_DETAILED_INFORMATION>())).lpFilePath as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_ASSEMBLY_FILE_DETAILED_INFORMATION),
            "::",
            stringify!(lpFilePath)
        )
    );
}
pub type ASSEMBLY_FILE_DETAILED_INFORMATION = _ASSEMBLY_FILE_DETAILED_INFORMATION;
pub type PASSEMBLY_FILE_DETAILED_INFORMATION = *mut _ASSEMBLY_FILE_DETAILED_INFORMATION;
pub type PCASSEMBLY_FILE_DETAILED_INFORMATION = *const 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,
}
#[test]
fn bindgen_test_layout__ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION>(),
        104usize,
        concat!(
            "Size of: ",
            stringify!(_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION>())).ulFlags
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION),
            "::",
            stringify!(ulFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION>()))
                .ulEncodedAssemblyIdentityLength as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION),
            "::",
            stringify!(ulEncodedAssemblyIdentityLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION>()))
                .ulManifestPathType as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION),
            "::",
            stringify!(ulManifestPathType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION>()))
                .ulManifestPathLength as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION),
            "::",
            stringify!(ulManifestPathLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION>()))
                .liManifestLastWriteTime as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION),
            "::",
            stringify!(liManifestLastWriteTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION>()))
                .ulPolicyPathType as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION),
            "::",
            stringify!(ulPolicyPathType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION>()))
                .ulPolicyPathLength as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION),
            "::",
            stringify!(ulPolicyPathLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION>()))
                .liPolicyLastWriteTime as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION),
            "::",
            stringify!(liPolicyLastWriteTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION>()))
                .ulMetadataSatelliteRosterIndex as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION),
            "::",
            stringify!(ulMetadataSatelliteRosterIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION>()))
                .ulManifestVersionMajor as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION),
            "::",
            stringify!(ulManifestVersionMajor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION>()))
                .ulManifestVersionMinor as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION),
            "::",
            stringify!(ulManifestVersionMinor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION>()))
                .ulPolicyVersionMajor as *const _ as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION),
            "::",
            stringify!(ulPolicyVersionMajor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION>()))
                .ulPolicyVersionMinor as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION),
            "::",
            stringify!(ulPolicyVersionMinor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION>()))
                .ulAssemblyDirectoryNameLength as *const _ as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION),
            "::",
            stringify!(ulAssemblyDirectoryNameLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION>()))
                .lpAssemblyEncodedAssemblyIdentity as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION),
            "::",
            stringify!(lpAssemblyEncodedAssemblyIdentity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION>()))
                .lpAssemblyManifestPath as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION),
            "::",
            stringify!(lpAssemblyManifestPath)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION>()))
                .lpAssemblyPolicyPath as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION),
            "::",
            stringify!(lpAssemblyPolicyPath)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION>()))
                .lpAssemblyDirectoryName as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION),
            "::",
            stringify!(lpAssemblyDirectoryName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION>()))
                .ulFileCount as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION),
            "::",
            stringify!(ulFileCount)
        )
    );
}
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;
pub type PCACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION =
    *const _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION;
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 = ::std::os::raw::c_int;
#[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,
}
#[test]
fn bindgen_test_layout__ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION>(),
        12usize,
        concat!(
            "Size of: ",
            stringify!(_ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION>())).ulFlags
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION),
            "::",
            stringify!(ulFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION>())).RunLevel
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION),
            "::",
            stringify!(RunLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION>())).UiAccess
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION),
            "::",
            stringify!(UiAccess)
        )
    );
}
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;
pub type PCACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION =
    *const _ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION;
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 const ACTCTX_COMPATIBILITY_ELEMENT_TYPE_ACTCTX_COMPATIBILITY_ELEMENT_TYPE_MAXVERSIONTESTED:
    ACTCTX_COMPATIBILITY_ELEMENT_TYPE = 3;
pub type ACTCTX_COMPATIBILITY_ELEMENT_TYPE = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _COMPATIBILITY_CONTEXT_ELEMENT {
    pub Id: GUID,
    pub Type: ACTCTX_COMPATIBILITY_ELEMENT_TYPE,
    pub MaxVersionTested: ULONGLONG,
}
#[test]
fn bindgen_test_layout__COMPATIBILITY_CONTEXT_ELEMENT() {
    assert_eq!(
        ::std::mem::size_of::<_COMPATIBILITY_CONTEXT_ELEMENT>(),
        32usize,
        concat!("Size of: ", stringify!(_COMPATIBILITY_CONTEXT_ELEMENT))
    );
    assert_eq!(
        ::std::mem::align_of::<_COMPATIBILITY_CONTEXT_ELEMENT>(),
        8usize,
        concat!("Alignment of ", stringify!(_COMPATIBILITY_CONTEXT_ELEMENT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_COMPATIBILITY_CONTEXT_ELEMENT>())).Id as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMPATIBILITY_CONTEXT_ELEMENT),
            "::",
            stringify!(Id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_COMPATIBILITY_CONTEXT_ELEMENT>())).Type as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMPATIBILITY_CONTEXT_ELEMENT),
            "::",
            stringify!(Type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_COMPATIBILITY_CONTEXT_ELEMENT>())).MaxVersionTested as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMPATIBILITY_CONTEXT_ELEMENT),
            "::",
            stringify!(MaxVersionTested)
        )
    );
}
pub type COMPATIBILITY_CONTEXT_ELEMENT = _COMPATIBILITY_CONTEXT_ELEMENT;
pub type PCOMPATIBILITY_CONTEXT_ELEMENT = *mut _COMPATIBILITY_CONTEXT_ELEMENT;
pub type PCCOMPATIBILITY_CONTEXT_ELEMENT = *const _COMPATIBILITY_CONTEXT_ELEMENT;
#[repr(C)]
#[derive(Debug)]
pub struct _ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION {
    pub ElementCount: DWORD,
    pub Elements: __IncompleteArrayField<COMPATIBILITY_CONTEXT_ELEMENT>,
}
#[test]
fn bindgen_test_layout__ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION>())).ElementCount
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION),
            "::",
            stringify!(ElementCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION>())).Elements
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION),
            "::",
            stringify!(Elements)
        )
    );
}
pub type ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION =
    _ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION;
pub type PACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION =
    *mut _ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION;
pub type PCACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION =
    *const _ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SUPPORTED_OS_INFO {
    pub MajorVersion: WORD,
    pub MinorVersion: WORD,
}
#[test]
fn bindgen_test_layout__SUPPORTED_OS_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_SUPPORTED_OS_INFO>(),
        4usize,
        concat!("Size of: ", stringify!(_SUPPORTED_OS_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_SUPPORTED_OS_INFO>(),
        2usize,
        concat!("Alignment of ", stringify!(_SUPPORTED_OS_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SUPPORTED_OS_INFO>())).MajorVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SUPPORTED_OS_INFO),
            "::",
            stringify!(MajorVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SUPPORTED_OS_INFO>())).MinorVersion as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_SUPPORTED_OS_INFO),
            "::",
            stringify!(MinorVersion)
        )
    );
}
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 _MAXVERSIONTESTED_INFO {
    pub MaxVersionTested: ULONGLONG,
}
#[test]
fn bindgen_test_layout__MAXVERSIONTESTED_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_MAXVERSIONTESTED_INFO>(),
        8usize,
        concat!("Size of: ", stringify!(_MAXVERSIONTESTED_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_MAXVERSIONTESTED_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_MAXVERSIONTESTED_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MAXVERSIONTESTED_INFO>())).MaxVersionTested as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MAXVERSIONTESTED_INFO),
            "::",
            stringify!(MaxVersionTested)
        )
    );
}
pub type MAXVERSIONTESTED_INFO = _MAXVERSIONTESTED_INFO;
pub type PMAXVERSIONTESTED_INFO = *mut _MAXVERSIONTESTED_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,
}
#[test]
fn bindgen_test_layout__ACTIVATION_CONTEXT_DETAILED_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_ACTIVATION_CONTEXT_DETAILED_INFORMATION>(),
        64usize,
        concat!(
            "Size of: ",
            stringify!(_ACTIVATION_CONTEXT_DETAILED_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_ACTIVATION_CONTEXT_DETAILED_INFORMATION>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_ACTIVATION_CONTEXT_DETAILED_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_DETAILED_INFORMATION>())).dwFlags as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_DETAILED_INFORMATION),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_DETAILED_INFORMATION>())).ulFormatVersion
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_DETAILED_INFORMATION),
            "::",
            stringify!(ulFormatVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_DETAILED_INFORMATION>())).ulAssemblyCount
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_DETAILED_INFORMATION),
            "::",
            stringify!(ulAssemblyCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_DETAILED_INFORMATION>()))
                .ulRootManifestPathType as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_DETAILED_INFORMATION),
            "::",
            stringify!(ulRootManifestPathType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_DETAILED_INFORMATION>()))
                .ulRootManifestPathChars as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_DETAILED_INFORMATION),
            "::",
            stringify!(ulRootManifestPathChars)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_DETAILED_INFORMATION>()))
                .ulRootConfigurationPathType as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_DETAILED_INFORMATION),
            "::",
            stringify!(ulRootConfigurationPathType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_DETAILED_INFORMATION>()))
                .ulRootConfigurationPathChars as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_DETAILED_INFORMATION),
            "::",
            stringify!(ulRootConfigurationPathChars)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_DETAILED_INFORMATION>())).ulAppDirPathType
                as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_DETAILED_INFORMATION),
            "::",
            stringify!(ulAppDirPathType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_DETAILED_INFORMATION>())).ulAppDirPathChars
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_DETAILED_INFORMATION),
            "::",
            stringify!(ulAppDirPathChars)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_DETAILED_INFORMATION>())).lpRootManifestPath
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_DETAILED_INFORMATION),
            "::",
            stringify!(lpRootManifestPath)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_DETAILED_INFORMATION>()))
                .lpRootConfigurationPath as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_DETAILED_INFORMATION),
            "::",
            stringify!(lpRootConfigurationPath)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_DETAILED_INFORMATION>())).lpAppDirPath
                as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_DETAILED_INFORMATION),
            "::",
            stringify!(lpAppDirPath)
        )
    );
}
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_DETAILED_INFORMATION =
    *const _ACTIVATION_CONTEXT_DETAILED_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _HARDWARE_COUNTER_DATA {
    pub Type: HARDWARE_COUNTER_TYPE,
    pub Reserved: DWORD,
    pub Value: DWORD64,
}
#[test]
fn bindgen_test_layout__HARDWARE_COUNTER_DATA() {
    assert_eq!(
        ::std::mem::size_of::<_HARDWARE_COUNTER_DATA>(),
        16usize,
        concat!("Size of: ", stringify!(_HARDWARE_COUNTER_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<_HARDWARE_COUNTER_DATA>(),
        8usize,
        concat!("Alignment of ", stringify!(_HARDWARE_COUNTER_DATA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_HARDWARE_COUNTER_DATA>())).Type as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_HARDWARE_COUNTER_DATA),
            "::",
            stringify!(Type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_HARDWARE_COUNTER_DATA>())).Reserved as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_HARDWARE_COUNTER_DATA),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_HARDWARE_COUNTER_DATA>())).Value as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_HARDWARE_COUNTER_DATA),
            "::",
            stringify!(Value)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__PERFORMANCE_DATA() {
    assert_eq!(
        ::std::mem::size_of::<_PERFORMANCE_DATA>(),
        288usize,
        concat!("Size of: ", stringify!(_PERFORMANCE_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<_PERFORMANCE_DATA>(),
        8usize,
        concat!("Alignment of ", stringify!(_PERFORMANCE_DATA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PERFORMANCE_DATA>())).Size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERFORMANCE_DATA),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PERFORMANCE_DATA>())).Version as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERFORMANCE_DATA),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERFORMANCE_DATA>())).HwCountersCount as *const _ as usize
        },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERFORMANCE_DATA),
            "::",
            stringify!(HwCountersCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERFORMANCE_DATA>())).ContextSwitchCount as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERFORMANCE_DATA),
            "::",
            stringify!(ContextSwitchCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERFORMANCE_DATA>())).WaitReasonBitMap as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERFORMANCE_DATA),
            "::",
            stringify!(WaitReasonBitMap)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PERFORMANCE_DATA>())).CycleTime as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERFORMANCE_DATA),
            "::",
            stringify!(CycleTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PERFORMANCE_DATA>())).RetryCount as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERFORMANCE_DATA),
            "::",
            stringify!(RetryCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PERFORMANCE_DATA>())).Reserved as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERFORMANCE_DATA),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PERFORMANCE_DATA>())).HwCounters as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERFORMANCE_DATA),
            "::",
            stringify!(HwCounters)
        )
    );
}
pub type PERFORMANCE_DATA = _PERFORMANCE_DATA;
pub type PPERFORMANCE_DATA = *mut _PERFORMANCE_DATA;
extern "C" {
    pub fn RtlGetDeviceFamilyInfoEnum(
        pullUAPInfo: *mut ULONGLONG,
        pulDeviceFamily: *mut DWORD,
        pulDeviceForm: *mut DWORD,
    );
}
extern "C" {
    pub fn RtlConvertDeviceFamilyInfoToString(
        pulDeviceFamilyBufferSize: PDWORD,
        pulDeviceFormBufferSize: PDWORD,
        DeviceFamily: PWSTR,
        DeviceForm: PWSTR,
    ) -> DWORD;
}
extern "C" {
    pub fn RtlSwitchedVVI(
        VersionInfo: PRTL_OSVERSIONINFOEXW,
        TypeMask: DWORD,
        ConditionMask: ULONGLONG,
    ) -> DWORD;
}
#[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,
}
#[test]
fn bindgen_test_layout__EVENTLOGRECORD() {
    assert_eq!(
        ::std::mem::size_of::<_EVENTLOGRECORD>(),
        56usize,
        concat!("Size of: ", stringify!(_EVENTLOGRECORD))
    );
    assert_eq!(
        ::std::mem::align_of::<_EVENTLOGRECORD>(),
        4usize,
        concat!("Alignment of ", stringify!(_EVENTLOGRECORD))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EVENTLOGRECORD>())).Length as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_EVENTLOGRECORD),
            "::",
            stringify!(Length)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EVENTLOGRECORD>())).Reserved as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_EVENTLOGRECORD),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EVENTLOGRECORD>())).RecordNumber as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_EVENTLOGRECORD),
            "::",
            stringify!(RecordNumber)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EVENTLOGRECORD>())).TimeGenerated as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_EVENTLOGRECORD),
            "::",
            stringify!(TimeGenerated)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EVENTLOGRECORD>())).TimeWritten as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_EVENTLOGRECORD),
            "::",
            stringify!(TimeWritten)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EVENTLOGRECORD>())).EventID as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_EVENTLOGRECORD),
            "::",
            stringify!(EventID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EVENTLOGRECORD>())).EventType as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_EVENTLOGRECORD),
            "::",
            stringify!(EventType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EVENTLOGRECORD>())).NumStrings as *const _ as usize },
        26usize,
        concat!(
            "Offset of field: ",
            stringify!(_EVENTLOGRECORD),
            "::",
            stringify!(NumStrings)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EVENTLOGRECORD>())).EventCategory as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_EVENTLOGRECORD),
            "::",
            stringify!(EventCategory)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EVENTLOGRECORD>())).ReservedFlags as *const _ as usize },
        30usize,
        concat!(
            "Offset of field: ",
            stringify!(_EVENTLOGRECORD),
            "::",
            stringify!(ReservedFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EVENTLOGRECORD>())).ClosingRecordNumber as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_EVENTLOGRECORD),
            "::",
            stringify!(ClosingRecordNumber)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EVENTLOGRECORD>())).StringOffset as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_EVENTLOGRECORD),
            "::",
            stringify!(StringOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EVENTLOGRECORD>())).UserSidLength as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_EVENTLOGRECORD),
            "::",
            stringify!(UserSidLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EVENTLOGRECORD>())).UserSidOffset as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_EVENTLOGRECORD),
            "::",
            stringify!(UserSidOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EVENTLOGRECORD>())).DataLength as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_EVENTLOGRECORD),
            "::",
            stringify!(DataLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EVENTLOGRECORD>())).DataOffset as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_EVENTLOGRECORD),
            "::",
            stringify!(DataOffset)
        )
    );
}
pub type EVENTLOGRECORD = _EVENTLOGRECORD;
pub type PEVENTLOGRECORD = *mut _EVENTLOGRECORD;
pub type EVENTSFORLOGFILE = _EVENTSFORLOGFILE;
pub type PEVENTSFORLOGFILE = *mut _EVENTSFORLOGFILE;
pub type PACKEDEVENTINFO = _PACKEDEVENTINFO;
pub type PPACKEDEVENTINFO = *mut _PACKEDEVENTINFO;
#[repr(C)]
pub struct _EVENTSFORLOGFILE {
    pub ulSize: DWORD,
    pub szLogicalLogFile: [WCHAR; 256usize],
    pub ulNumRecords: DWORD,
    pub pEventLogRecords: __IncompleteArrayField<EVENTLOGRECORD>,
}
#[test]
fn bindgen_test_layout__EVENTSFORLOGFILE() {
    assert_eq!(
        ::std::mem::size_of::<_EVENTSFORLOGFILE>(),
        520usize,
        concat!("Size of: ", stringify!(_EVENTSFORLOGFILE))
    );
    assert_eq!(
        ::std::mem::align_of::<_EVENTSFORLOGFILE>(),
        4usize,
        concat!("Alignment of ", stringify!(_EVENTSFORLOGFILE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EVENTSFORLOGFILE>())).ulSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_EVENTSFORLOGFILE),
            "::",
            stringify!(ulSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EVENTSFORLOGFILE>())).szLogicalLogFile as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_EVENTSFORLOGFILE),
            "::",
            stringify!(szLogicalLogFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EVENTSFORLOGFILE>())).ulNumRecords as *const _ as usize },
        516usize,
        concat!(
            "Offset of field: ",
            stringify!(_EVENTSFORLOGFILE),
            "::",
            stringify!(ulNumRecords)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EVENTSFORLOGFILE>())).pEventLogRecords as *const _ as usize
        },
        520usize,
        concat!(
            "Offset of field: ",
            stringify!(_EVENTSFORLOGFILE),
            "::",
            stringify!(pEventLogRecords)
        )
    );
}
#[repr(C)]
#[derive(Debug)]
pub struct _PACKEDEVENTINFO {
    pub ulSize: DWORD,
    pub ulNumEventsForLogFile: DWORD,
    pub ulOffsets: __IncompleteArrayField<DWORD>,
}
#[test]
fn bindgen_test_layout__PACKEDEVENTINFO() {
    assert_eq!(
        ::std::mem::size_of::<_PACKEDEVENTINFO>(),
        8usize,
        concat!("Size of: ", stringify!(_PACKEDEVENTINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_PACKEDEVENTINFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_PACKEDEVENTINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PACKEDEVENTINFO>())).ulSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PACKEDEVENTINFO),
            "::",
            stringify!(ulSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PACKEDEVENTINFO>())).ulNumEventsForLogFile as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PACKEDEVENTINFO),
            "::",
            stringify!(ulNumEventsForLogFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PACKEDEVENTINFO>())).ulOffsets as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PACKEDEVENTINFO),
            "::",
            stringify!(ulOffsets)
        )
    );
}
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 = ::std::os::raw::c_int;
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 = ::std::os::raw::c_int;
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 = ::std::os::raw::c_int;
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,
}
#[test]
fn bindgen_test_layout__TAPE_ERASE() {
    assert_eq!(
        ::std::mem::size_of::<_TAPE_ERASE>(),
        8usize,
        concat!("Size of: ", stringify!(_TAPE_ERASE))
    );
    assert_eq!(
        ::std::mem::align_of::<_TAPE_ERASE>(),
        4usize,
        concat!("Alignment of ", stringify!(_TAPE_ERASE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TAPE_ERASE>())).Type as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_ERASE),
            "::",
            stringify!(Type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TAPE_ERASE>())).Immediate as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_ERASE),
            "::",
            stringify!(Immediate)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TAPE_PREPARE() {
    assert_eq!(
        ::std::mem::size_of::<_TAPE_PREPARE>(),
        8usize,
        concat!("Size of: ", stringify!(_TAPE_PREPARE))
    );
    assert_eq!(
        ::std::mem::align_of::<_TAPE_PREPARE>(),
        4usize,
        concat!("Alignment of ", stringify!(_TAPE_PREPARE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TAPE_PREPARE>())).Operation as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_PREPARE),
            "::",
            stringify!(Operation)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TAPE_PREPARE>())).Immediate as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_PREPARE),
            "::",
            stringify!(Immediate)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TAPE_WRITE_MARKS() {
    assert_eq!(
        ::std::mem::size_of::<_TAPE_WRITE_MARKS>(),
        12usize,
        concat!("Size of: ", stringify!(_TAPE_WRITE_MARKS))
    );
    assert_eq!(
        ::std::mem::align_of::<_TAPE_WRITE_MARKS>(),
        4usize,
        concat!("Alignment of ", stringify!(_TAPE_WRITE_MARKS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TAPE_WRITE_MARKS>())).Type as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_WRITE_MARKS),
            "::",
            stringify!(Type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TAPE_WRITE_MARKS>())).Count as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_WRITE_MARKS),
            "::",
            stringify!(Count)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TAPE_WRITE_MARKS>())).Immediate as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_WRITE_MARKS),
            "::",
            stringify!(Immediate)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TAPE_GET_POSITION() {
    assert_eq!(
        ::std::mem::size_of::<_TAPE_GET_POSITION>(),
        16usize,
        concat!("Size of: ", stringify!(_TAPE_GET_POSITION))
    );
    assert_eq!(
        ::std::mem::align_of::<_TAPE_GET_POSITION>(),
        8usize,
        concat!("Alignment of ", stringify!(_TAPE_GET_POSITION))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TAPE_GET_POSITION>())).Type as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_GET_POSITION),
            "::",
            stringify!(Type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TAPE_GET_POSITION>())).Partition as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_GET_POSITION),
            "::",
            stringify!(Partition)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TAPE_GET_POSITION>())).Offset as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_GET_POSITION),
            "::",
            stringify!(Offset)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TAPE_SET_POSITION() {
    assert_eq!(
        ::std::mem::size_of::<_TAPE_SET_POSITION>(),
        24usize,
        concat!("Size of: ", stringify!(_TAPE_SET_POSITION))
    );
    assert_eq!(
        ::std::mem::align_of::<_TAPE_SET_POSITION>(),
        8usize,
        concat!("Alignment of ", stringify!(_TAPE_SET_POSITION))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TAPE_SET_POSITION>())).Method as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_SET_POSITION),
            "::",
            stringify!(Method)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TAPE_SET_POSITION>())).Partition as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_SET_POSITION),
            "::",
            stringify!(Partition)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TAPE_SET_POSITION>())).Offset as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_SET_POSITION),
            "::",
            stringify!(Offset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TAPE_SET_POSITION>())).Immediate as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_SET_POSITION),
            "::",
            stringify!(Immediate)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TAPE_GET_DRIVE_PARAMETERS() {
    assert_eq!(
        ::std::mem::size_of::<_TAPE_GET_DRIVE_PARAMETERS>(),
        32usize,
        concat!("Size of: ", stringify!(_TAPE_GET_DRIVE_PARAMETERS))
    );
    assert_eq!(
        ::std::mem::align_of::<_TAPE_GET_DRIVE_PARAMETERS>(),
        4usize,
        concat!("Alignment of ", stringify!(_TAPE_GET_DRIVE_PARAMETERS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TAPE_GET_DRIVE_PARAMETERS>())).ECC as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_GET_DRIVE_PARAMETERS),
            "::",
            stringify!(ECC)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TAPE_GET_DRIVE_PARAMETERS>())).Compression as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_GET_DRIVE_PARAMETERS),
            "::",
            stringify!(Compression)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TAPE_GET_DRIVE_PARAMETERS>())).DataPadding as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_GET_DRIVE_PARAMETERS),
            "::",
            stringify!(DataPadding)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TAPE_GET_DRIVE_PARAMETERS>())).ReportSetmarks as *const _
                as usize
        },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_GET_DRIVE_PARAMETERS),
            "::",
            stringify!(ReportSetmarks)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TAPE_GET_DRIVE_PARAMETERS>())).DefaultBlockSize as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_GET_DRIVE_PARAMETERS),
            "::",
            stringify!(DefaultBlockSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TAPE_GET_DRIVE_PARAMETERS>())).MaximumBlockSize as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_GET_DRIVE_PARAMETERS),
            "::",
            stringify!(MaximumBlockSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TAPE_GET_DRIVE_PARAMETERS>())).MinimumBlockSize as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_GET_DRIVE_PARAMETERS),
            "::",
            stringify!(MinimumBlockSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TAPE_GET_DRIVE_PARAMETERS>())).MaximumPartitionCount as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_GET_DRIVE_PARAMETERS),
            "::",
            stringify!(MaximumPartitionCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TAPE_GET_DRIVE_PARAMETERS>())).FeaturesLow as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_GET_DRIVE_PARAMETERS),
            "::",
            stringify!(FeaturesLow)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TAPE_GET_DRIVE_PARAMETERS>())).FeaturesHigh as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_GET_DRIVE_PARAMETERS),
            "::",
            stringify!(FeaturesHigh)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TAPE_GET_DRIVE_PARAMETERS>())).EOTWarningZoneSize as *const _
                as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_GET_DRIVE_PARAMETERS),
            "::",
            stringify!(EOTWarningZoneSize)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TAPE_SET_DRIVE_PARAMETERS() {
    assert_eq!(
        ::std::mem::size_of::<_TAPE_SET_DRIVE_PARAMETERS>(),
        8usize,
        concat!("Size of: ", stringify!(_TAPE_SET_DRIVE_PARAMETERS))
    );
    assert_eq!(
        ::std::mem::align_of::<_TAPE_SET_DRIVE_PARAMETERS>(),
        4usize,
        concat!("Alignment of ", stringify!(_TAPE_SET_DRIVE_PARAMETERS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TAPE_SET_DRIVE_PARAMETERS>())).ECC as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_SET_DRIVE_PARAMETERS),
            "::",
            stringify!(ECC)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TAPE_SET_DRIVE_PARAMETERS>())).Compression as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_SET_DRIVE_PARAMETERS),
            "::",
            stringify!(Compression)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TAPE_SET_DRIVE_PARAMETERS>())).DataPadding as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_SET_DRIVE_PARAMETERS),
            "::",
            stringify!(DataPadding)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TAPE_SET_DRIVE_PARAMETERS>())).ReportSetmarks as *const _
                as usize
        },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_SET_DRIVE_PARAMETERS),
            "::",
            stringify!(ReportSetmarks)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TAPE_SET_DRIVE_PARAMETERS>())).EOTWarningZoneSize as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_SET_DRIVE_PARAMETERS),
            "::",
            stringify!(EOTWarningZoneSize)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TAPE_GET_MEDIA_PARAMETERS() {
    assert_eq!(
        ::std::mem::size_of::<_TAPE_GET_MEDIA_PARAMETERS>(),
        32usize,
        concat!("Size of: ", stringify!(_TAPE_GET_MEDIA_PARAMETERS))
    );
    assert_eq!(
        ::std::mem::align_of::<_TAPE_GET_MEDIA_PARAMETERS>(),
        8usize,
        concat!("Alignment of ", stringify!(_TAPE_GET_MEDIA_PARAMETERS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TAPE_GET_MEDIA_PARAMETERS>())).Capacity as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_GET_MEDIA_PARAMETERS),
            "::",
            stringify!(Capacity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TAPE_GET_MEDIA_PARAMETERS>())).Remaining as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_GET_MEDIA_PARAMETERS),
            "::",
            stringify!(Remaining)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TAPE_GET_MEDIA_PARAMETERS>())).BlockSize as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_GET_MEDIA_PARAMETERS),
            "::",
            stringify!(BlockSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TAPE_GET_MEDIA_PARAMETERS>())).PartitionCount as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_GET_MEDIA_PARAMETERS),
            "::",
            stringify!(PartitionCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TAPE_GET_MEDIA_PARAMETERS>())).WriteProtected as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_GET_MEDIA_PARAMETERS),
            "::",
            stringify!(WriteProtected)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TAPE_SET_MEDIA_PARAMETERS() {
    assert_eq!(
        ::std::mem::size_of::<_TAPE_SET_MEDIA_PARAMETERS>(),
        4usize,
        concat!("Size of: ", stringify!(_TAPE_SET_MEDIA_PARAMETERS))
    );
    assert_eq!(
        ::std::mem::align_of::<_TAPE_SET_MEDIA_PARAMETERS>(),
        4usize,
        concat!("Alignment of ", stringify!(_TAPE_SET_MEDIA_PARAMETERS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TAPE_SET_MEDIA_PARAMETERS>())).BlockSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_SET_MEDIA_PARAMETERS),
            "::",
            stringify!(BlockSize)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TAPE_CREATE_PARTITION() {
    assert_eq!(
        ::std::mem::size_of::<_TAPE_CREATE_PARTITION>(),
        12usize,
        concat!("Size of: ", stringify!(_TAPE_CREATE_PARTITION))
    );
    assert_eq!(
        ::std::mem::align_of::<_TAPE_CREATE_PARTITION>(),
        4usize,
        concat!("Alignment of ", stringify!(_TAPE_CREATE_PARTITION))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TAPE_CREATE_PARTITION>())).Method as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_CREATE_PARTITION),
            "::",
            stringify!(Method)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TAPE_CREATE_PARTITION>())).Count as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_CREATE_PARTITION),
            "::",
            stringify!(Count)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TAPE_CREATE_PARTITION>())).Size as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_CREATE_PARTITION),
            "::",
            stringify!(Size)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TAPE_WMI_OPERATIONS() {
    assert_eq!(
        ::std::mem::size_of::<_TAPE_WMI_OPERATIONS>(),
        16usize,
        concat!("Size of: ", stringify!(_TAPE_WMI_OPERATIONS))
    );
    assert_eq!(
        ::std::mem::align_of::<_TAPE_WMI_OPERATIONS>(),
        8usize,
        concat!("Alignment of ", stringify!(_TAPE_WMI_OPERATIONS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TAPE_WMI_OPERATIONS>())).Method as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_WMI_OPERATIONS),
            "::",
            stringify!(Method)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TAPE_WMI_OPERATIONS>())).DataBufferSize as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_WMI_OPERATIONS),
            "::",
            stringify!(DataBufferSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TAPE_WMI_OPERATIONS>())).DataBuffer as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_WMI_OPERATIONS),
            "::",
            stringify!(DataBuffer)
        )
    );
}
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 = ::std::os::raw::c_int;
pub use self::_TAPE_DRIVE_PROBLEM_TYPE as TAPE_DRIVE_PROBLEM_TYPE;
pub type UOW = GUID;
pub type PUOW = *mut GUID;
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,
}
#[test]
fn bindgen_test_layout__TRANSACTION_NOTIFICATION() {
    assert_eq!(
        ::std::mem::size_of::<_TRANSACTION_NOTIFICATION>(),
        32usize,
        concat!("Size of: ", stringify!(_TRANSACTION_NOTIFICATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_TRANSACTION_NOTIFICATION>(),
        8usize,
        concat!("Alignment of ", stringify!(_TRANSACTION_NOTIFICATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTION_NOTIFICATION>())).TransactionKey as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_NOTIFICATION),
            "::",
            stringify!(TransactionKey)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTION_NOTIFICATION>())).TransactionNotification
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_NOTIFICATION),
            "::",
            stringify!(TransactionNotification)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTION_NOTIFICATION>())).TmVirtualClock as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_NOTIFICATION),
            "::",
            stringify!(TmVirtualClock)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTION_NOTIFICATION>())).ArgumentLength as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_NOTIFICATION),
            "::",
            stringify!(ArgumentLength)
        )
    );
}
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: UOW,
}
#[test]
fn bindgen_test_layout__TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT() {
    assert_eq!(
        ::std::mem::size_of::<_TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT>(),
        32usize,
        concat!(
            "Size of: ",
            stringify!(_TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT>())).EnlistmentId
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT),
            "::",
            stringify!(EnlistmentId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT>())).UOW as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT),
            "::",
            stringify!(UOW)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT() {
    assert_eq!(
        ::std::mem::size_of::<_TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT>(),
        20usize,
        concat!(
            "Size of: ",
            stringify!(_TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT>())).TmIdentity
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT),
            "::",
            stringify!(TmIdentity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT>())).Flags
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT),
            "::",
            stringify!(Flags)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT() {
    assert_eq!(
        ::std::mem::size_of::<_TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT>())).SavepointId
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT),
            "::",
            stringify!(SavepointId)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT() {
    assert_eq!(
        ::std::mem::size_of::<_TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT>(),
        40usize,
        concat!(
            "Size of: ",
            stringify!(_TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT>()))
                .PropagationCookie as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT),
            "::",
            stringify!(PropagationCookie)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT>())).UOW as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT),
            "::",
            stringify!(UOW)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT>())).TmIdentity
                as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT),
            "::",
            stringify!(TmIdentity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT>())).BufferLength
                as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT),
            "::",
            stringify!(BufferLength)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT() {
    assert_eq!(
        ::std::mem::size_of::<_TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT>(),
        20usize,
        concat!(
            "Size of: ",
            stringify!(_TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT>())).MarshalCookie
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT),
            "::",
            stringify!(MarshalCookie)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT>())).UOW as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT),
            "::",
            stringify!(UOW)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__KCRM_MARSHAL_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<_KCRM_MARSHAL_HEADER>(),
        16usize,
        concat!("Size of: ", stringify!(_KCRM_MARSHAL_HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<_KCRM_MARSHAL_HEADER>(),
        4usize,
        concat!("Alignment of ", stringify!(_KCRM_MARSHAL_HEADER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KCRM_MARSHAL_HEADER>())).VersionMajor as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_KCRM_MARSHAL_HEADER),
            "::",
            stringify!(VersionMajor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KCRM_MARSHAL_HEADER>())).VersionMinor as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_KCRM_MARSHAL_HEADER),
            "::",
            stringify!(VersionMinor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KCRM_MARSHAL_HEADER>())).NumProtocols as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_KCRM_MARSHAL_HEADER),
            "::",
            stringify!(NumProtocols)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_KCRM_MARSHAL_HEADER>())).Unused as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_KCRM_MARSHAL_HEADER),
            "::",
            stringify!(Unused)
        )
    );
}
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: UOW,
    pub TmIdentity: GUID,
    pub IsolationLevel: ULONG,
    pub IsolationFlags: ULONG,
    pub Timeout: ULONG,
    pub Description: [WCHAR; 64usize],
}
#[test]
fn bindgen_test_layout__KCRM_TRANSACTION_BLOB() {
    assert_eq!(
        ::std::mem::size_of::<_KCRM_TRANSACTION_BLOB>(),
        172usize,
        concat!("Size of: ", stringify!(_KCRM_TRANSACTION_BLOB))
    );
    assert_eq!(
        ::std::mem::align_of::<_KCRM_TRANSACTION_BLOB>(),
        4usize,
        concat!("Alignment of ", stringify!(_KCRM_TRANSACTION_BLOB))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_KCRM_TRANSACTION_BLOB>())).UOW as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_KCRM_TRANSACTION_BLOB),
            "::",
            stringify!(UOW)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KCRM_TRANSACTION_BLOB>())).TmIdentity as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_KCRM_TRANSACTION_BLOB),
            "::",
            stringify!(TmIdentity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KCRM_TRANSACTION_BLOB>())).IsolationLevel as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_KCRM_TRANSACTION_BLOB),
            "::",
            stringify!(IsolationLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KCRM_TRANSACTION_BLOB>())).IsolationFlags as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_KCRM_TRANSACTION_BLOB),
            "::",
            stringify!(IsolationFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_KCRM_TRANSACTION_BLOB>())).Timeout as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_KCRM_TRANSACTION_BLOB),
            "::",
            stringify!(Timeout)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KCRM_TRANSACTION_BLOB>())).Description as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_KCRM_TRANSACTION_BLOB),
            "::",
            stringify!(Description)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__KCRM_PROTOCOL_BLOB() {
    assert_eq!(
        ::std::mem::size_of::<_KCRM_PROTOCOL_BLOB>(),
        32usize,
        concat!("Size of: ", stringify!(_KCRM_PROTOCOL_BLOB))
    );
    assert_eq!(
        ::std::mem::align_of::<_KCRM_PROTOCOL_BLOB>(),
        4usize,
        concat!("Alignment of ", stringify!(_KCRM_PROTOCOL_BLOB))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_KCRM_PROTOCOL_BLOB>())).ProtocolId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_KCRM_PROTOCOL_BLOB),
            "::",
            stringify!(ProtocolId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KCRM_PROTOCOL_BLOB>())).StaticInfoLength as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_KCRM_PROTOCOL_BLOB),
            "::",
            stringify!(StaticInfoLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KCRM_PROTOCOL_BLOB>())).TransactionIdInfoLength as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_KCRM_PROTOCOL_BLOB),
            "::",
            stringify!(TransactionIdInfoLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_KCRM_PROTOCOL_BLOB>())).Unused1 as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_KCRM_PROTOCOL_BLOB),
            "::",
            stringify!(Unused1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_KCRM_PROTOCOL_BLOB>())).Unused2 as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_KCRM_PROTOCOL_BLOB),
            "::",
            stringify!(Unused2)
        )
    );
}
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 = ::std::os::raw::c_int;
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 = ::std::os::raw::c_int;
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,
}
#[test]
fn bindgen_test_layout__TRANSACTION_BASIC_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_TRANSACTION_BASIC_INFORMATION>(),
        24usize,
        concat!("Size of: ", stringify!(_TRANSACTION_BASIC_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_TRANSACTION_BASIC_INFORMATION>(),
        4usize,
        concat!("Alignment of ", stringify!(_TRANSACTION_BASIC_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTION_BASIC_INFORMATION>())).TransactionId as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_BASIC_INFORMATION),
            "::",
            stringify!(TransactionId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTION_BASIC_INFORMATION>())).State as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_BASIC_INFORMATION),
            "::",
            stringify!(State)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTION_BASIC_INFORMATION>())).Outcome as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_BASIC_INFORMATION),
            "::",
            stringify!(Outcome)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TRANSACTIONMANAGER_BASIC_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_TRANSACTIONMANAGER_BASIC_INFORMATION>(),
        24usize,
        concat!(
            "Size of: ",
            stringify!(_TRANSACTIONMANAGER_BASIC_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_TRANSACTIONMANAGER_BASIC_INFORMATION>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_TRANSACTIONMANAGER_BASIC_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTIONMANAGER_BASIC_INFORMATION>())).TmIdentity as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTIONMANAGER_BASIC_INFORMATION),
            "::",
            stringify!(TmIdentity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTIONMANAGER_BASIC_INFORMATION>())).VirtualClock
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTIONMANAGER_BASIC_INFORMATION),
            "::",
            stringify!(VirtualClock)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TRANSACTIONMANAGER_LOG_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_TRANSACTIONMANAGER_LOG_INFORMATION>(),
        16usize,
        concat!("Size of: ", stringify!(_TRANSACTIONMANAGER_LOG_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_TRANSACTIONMANAGER_LOG_INFORMATION>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_TRANSACTIONMANAGER_LOG_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTIONMANAGER_LOG_INFORMATION>())).LogIdentity as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTIONMANAGER_LOG_INFORMATION),
            "::",
            stringify!(LogIdentity)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__TRANSACTIONMANAGER_LOGPATH_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_TRANSACTIONMANAGER_LOGPATH_INFORMATION>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_TRANSACTIONMANAGER_LOGPATH_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_TRANSACTIONMANAGER_LOGPATH_INFORMATION>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_TRANSACTIONMANAGER_LOGPATH_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTIONMANAGER_LOGPATH_INFORMATION>())).LogPathLength
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTIONMANAGER_LOGPATH_INFORMATION),
            "::",
            stringify!(LogPathLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTIONMANAGER_LOGPATH_INFORMATION>())).LogPath as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTIONMANAGER_LOGPATH_INFORMATION),
            "::",
            stringify!(LogPath)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TRANSACTIONMANAGER_RECOVERY_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_TRANSACTIONMANAGER_RECOVERY_INFORMATION>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_TRANSACTIONMANAGER_RECOVERY_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_TRANSACTIONMANAGER_RECOVERY_INFORMATION>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_TRANSACTIONMANAGER_RECOVERY_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTIONMANAGER_RECOVERY_INFORMATION>())).LastRecoveredLsn
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTIONMANAGER_RECOVERY_INFORMATION),
            "::",
            stringify!(LastRecoveredLsn)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TRANSACTIONMANAGER_OLDEST_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_TRANSACTIONMANAGER_OLDEST_INFORMATION>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_TRANSACTIONMANAGER_OLDEST_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_TRANSACTIONMANAGER_OLDEST_INFORMATION>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_TRANSACTIONMANAGER_OLDEST_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTIONMANAGER_OLDEST_INFORMATION>())).OldestTransactionGuid
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTIONMANAGER_OLDEST_INFORMATION),
            "::",
            stringify!(OldestTransactionGuid)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__TRANSACTION_PROPERTIES_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_TRANSACTION_PROPERTIES_INFORMATION>(),
        32usize,
        concat!("Size of: ", stringify!(_TRANSACTION_PROPERTIES_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_TRANSACTION_PROPERTIES_INFORMATION>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_TRANSACTION_PROPERTIES_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTION_PROPERTIES_INFORMATION>())).IsolationLevel
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_PROPERTIES_INFORMATION),
            "::",
            stringify!(IsolationLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTION_PROPERTIES_INFORMATION>())).IsolationFlags
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_PROPERTIES_INFORMATION),
            "::",
            stringify!(IsolationFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTION_PROPERTIES_INFORMATION>())).Timeout as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_PROPERTIES_INFORMATION),
            "::",
            stringify!(Timeout)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTION_PROPERTIES_INFORMATION>())).Outcome as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_PROPERTIES_INFORMATION),
            "::",
            stringify!(Outcome)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTION_PROPERTIES_INFORMATION>())).DescriptionLength
                as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_PROPERTIES_INFORMATION),
            "::",
            stringify!(DescriptionLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTION_PROPERTIES_INFORMATION>())).Description as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_PROPERTIES_INFORMATION),
            "::",
            stringify!(Description)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TRANSACTION_BIND_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_TRANSACTION_BIND_INFORMATION>(),
        8usize,
        concat!("Size of: ", stringify!(_TRANSACTION_BIND_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_TRANSACTION_BIND_INFORMATION>(),
        8usize,
        concat!("Alignment of ", stringify!(_TRANSACTION_BIND_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTION_BIND_INFORMATION>())).TmHandle as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_BIND_INFORMATION),
            "::",
            stringify!(TmHandle)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TRANSACTION_ENLISTMENT_PAIR() {
    assert_eq!(
        ::std::mem::size_of::<_TRANSACTION_ENLISTMENT_PAIR>(),
        32usize,
        concat!("Size of: ", stringify!(_TRANSACTION_ENLISTMENT_PAIR))
    );
    assert_eq!(
        ::std::mem::align_of::<_TRANSACTION_ENLISTMENT_PAIR>(),
        4usize,
        concat!("Alignment of ", stringify!(_TRANSACTION_ENLISTMENT_PAIR))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTION_ENLISTMENT_PAIR>())).EnlistmentId as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_ENLISTMENT_PAIR),
            "::",
            stringify!(EnlistmentId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTION_ENLISTMENT_PAIR>())).ResourceManagerId as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_ENLISTMENT_PAIR),
            "::",
            stringify!(ResourceManagerId)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__TRANSACTION_ENLISTMENTS_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_TRANSACTION_ENLISTMENTS_INFORMATION>(),
        36usize,
        concat!(
            "Size of: ",
            stringify!(_TRANSACTION_ENLISTMENTS_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_TRANSACTION_ENLISTMENTS_INFORMATION>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_TRANSACTION_ENLISTMENTS_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTION_ENLISTMENTS_INFORMATION>())).NumberOfEnlistments
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_ENLISTMENTS_INFORMATION),
            "::",
            stringify!(NumberOfEnlistments)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTION_ENLISTMENTS_INFORMATION>())).EnlistmentPair
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_ENLISTMENTS_INFORMATION),
            "::",
            stringify!(EnlistmentPair)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION>(),
        32usize,
        concat!(
            "Size of: ",
            stringify!(_TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION>()))
                .SuperiorEnlistmentPair as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION),
            "::",
            stringify!(SuperiorEnlistmentPair)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__RESOURCEMANAGER_BASIC_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_RESOURCEMANAGER_BASIC_INFORMATION>(),
        24usize,
        concat!("Size of: ", stringify!(_RESOURCEMANAGER_BASIC_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_RESOURCEMANAGER_BASIC_INFORMATION>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_RESOURCEMANAGER_BASIC_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RESOURCEMANAGER_BASIC_INFORMATION>())).ResourceManagerId
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RESOURCEMANAGER_BASIC_INFORMATION),
            "::",
            stringify!(ResourceManagerId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RESOURCEMANAGER_BASIC_INFORMATION>())).DescriptionLength
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_RESOURCEMANAGER_BASIC_INFORMATION),
            "::",
            stringify!(DescriptionLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RESOURCEMANAGER_BASIC_INFORMATION>())).Description as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_RESOURCEMANAGER_BASIC_INFORMATION),
            "::",
            stringify!(Description)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__RESOURCEMANAGER_COMPLETION_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_RESOURCEMANAGER_COMPLETION_INFORMATION>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_RESOURCEMANAGER_COMPLETION_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_RESOURCEMANAGER_COMPLETION_INFORMATION>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_RESOURCEMANAGER_COMPLETION_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RESOURCEMANAGER_COMPLETION_INFORMATION>()))
                .IoCompletionPortHandle as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RESOURCEMANAGER_COMPLETION_INFORMATION),
            "::",
            stringify!(IoCompletionPortHandle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RESOURCEMANAGER_COMPLETION_INFORMATION>())).CompletionKey
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RESOURCEMANAGER_COMPLETION_INFORMATION),
            "::",
            stringify!(CompletionKey)
        )
    );
}
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 = ::std::os::raw::c_int;
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_TransactionManagerRecoveryInformation:
    _TRANSACTIONMANAGER_INFORMATION_CLASS = 4;
pub const _TRANSACTIONMANAGER_INFORMATION_CLASS_TransactionManagerOnlineProbeInformation:
    _TRANSACTIONMANAGER_INFORMATION_CLASS = 3;
pub const _TRANSACTIONMANAGER_INFORMATION_CLASS_TransactionManagerOldestTransactionInformation:
    _TRANSACTIONMANAGER_INFORMATION_CLASS = 5;
pub type _TRANSACTIONMANAGER_INFORMATION_CLASS = ::std::os::raw::c_int;
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 = ::std::os::raw::c_int;
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,
}
#[test]
fn bindgen_test_layout__ENLISTMENT_BASIC_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_ENLISTMENT_BASIC_INFORMATION>(),
        48usize,
        concat!("Size of: ", stringify!(_ENLISTMENT_BASIC_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_ENLISTMENT_BASIC_INFORMATION>(),
        4usize,
        concat!("Alignment of ", stringify!(_ENLISTMENT_BASIC_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENLISTMENT_BASIC_INFORMATION>())).EnlistmentId as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENLISTMENT_BASIC_INFORMATION),
            "::",
            stringify!(EnlistmentId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENLISTMENT_BASIC_INFORMATION>())).TransactionId as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENLISTMENT_BASIC_INFORMATION),
            "::",
            stringify!(TransactionId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENLISTMENT_BASIC_INFORMATION>())).ResourceManagerId as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENLISTMENT_BASIC_INFORMATION),
            "::",
            stringify!(ResourceManagerId)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__ENLISTMENT_CRM_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_ENLISTMENT_CRM_INFORMATION>(),
        48usize,
        concat!("Size of: ", stringify!(_ENLISTMENT_CRM_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_ENLISTMENT_CRM_INFORMATION>(),
        4usize,
        concat!("Alignment of ", stringify!(_ENLISTMENT_CRM_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENLISTMENT_CRM_INFORMATION>())).CrmTransactionManagerId
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENLISTMENT_CRM_INFORMATION),
            "::",
            stringify!(CrmTransactionManagerId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENLISTMENT_CRM_INFORMATION>())).CrmResourceManagerId as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENLISTMENT_CRM_INFORMATION),
            "::",
            stringify!(CrmResourceManagerId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENLISTMENT_CRM_INFORMATION>())).CrmEnlistmentId as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENLISTMENT_CRM_INFORMATION),
            "::",
            stringify!(CrmEnlistmentId)
        )
    );
}
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 = ::std::os::raw::c_int;
pub use self::_ENLISTMENT_INFORMATION_CLASS as ENLISTMENT_INFORMATION_CLASS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TRANSACTION_LIST_ENTRY {
    pub UOW: UOW,
}
#[test]
fn bindgen_test_layout__TRANSACTION_LIST_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_TRANSACTION_LIST_ENTRY>(),
        16usize,
        concat!("Size of: ", stringify!(_TRANSACTION_LIST_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_TRANSACTION_LIST_ENTRY>(),
        4usize,
        concat!("Alignment of ", stringify!(_TRANSACTION_LIST_ENTRY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TRANSACTION_LIST_ENTRY>())).UOW as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_LIST_ENTRY),
            "::",
            stringify!(UOW)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__TRANSACTION_LIST_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_TRANSACTION_LIST_INFORMATION>(),
        20usize,
        concat!("Size of: ", stringify!(_TRANSACTION_LIST_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_TRANSACTION_LIST_INFORMATION>(),
        4usize,
        concat!("Alignment of ", stringify!(_TRANSACTION_LIST_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTION_LIST_INFORMATION>())).NumberOfTransactions
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_LIST_INFORMATION),
            "::",
            stringify!(NumberOfTransactions)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TRANSACTION_LIST_INFORMATION>())).TransactionInformation
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRANSACTION_LIST_INFORMATION),
            "::",
            stringify!(TransactionInformation)
        )
    );
}
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 = ::std::os::raw::c_int;
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],
}
#[test]
fn bindgen_test_layout__KTMOBJECT_CURSOR() {
    assert_eq!(
        ::std::mem::size_of::<_KTMOBJECT_CURSOR>(),
        36usize,
        concat!("Size of: ", stringify!(_KTMOBJECT_CURSOR))
    );
    assert_eq!(
        ::std::mem::align_of::<_KTMOBJECT_CURSOR>(),
        4usize,
        concat!("Alignment of ", stringify!(_KTMOBJECT_CURSOR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_KTMOBJECT_CURSOR>())).LastQuery as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_KTMOBJECT_CURSOR),
            "::",
            stringify!(LastQuery)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_KTMOBJECT_CURSOR>())).ObjectIdCount as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_KTMOBJECT_CURSOR),
            "::",
            stringify!(ObjectIdCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_KTMOBJECT_CURSOR>())).ObjectIds as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_KTMOBJECT_CURSOR),
            "::",
            stringify!(ObjectIds)
        )
    );
}
pub type KTMOBJECT_CURSOR = _KTMOBJECT_CURSOR;
pub type PKTMOBJECT_CURSOR = *mut _KTMOBJECT_CURSOR;
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 = ::std::os::raw::c_int;
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,
}
#[test]
fn bindgen_test_layout__TP_POOL_STACK_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_TP_POOL_STACK_INFORMATION>(),
        16usize,
        concat!("Size of: ", stringify!(_TP_POOL_STACK_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_TP_POOL_STACK_INFORMATION>(),
        8usize,
        concat!("Alignment of ", stringify!(_TP_POOL_STACK_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TP_POOL_STACK_INFORMATION>())).StackReserve as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TP_POOL_STACK_INFORMATION),
            "::",
            stringify!(StackReserve)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TP_POOL_STACK_INFORMATION>())).StackCommit as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_TP_POOL_STACK_INFORMATION),
            "::",
            stringify!(StackCommit)
        )
    );
}
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_V3 {
    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_V3__bindgen_ty_1,
    pub CallbackPriority: TP_CALLBACK_PRIORITY,
    pub Size: DWORD,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _TP_CALLBACK_ENVIRON_V3__bindgen_ty_1 {
    pub Flags: DWORD,
    pub s: _TP_CALLBACK_ENVIRON_V3__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _TP_CALLBACK_ENVIRON_V3__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
#[test]
fn bindgen_test_layout__TP_CALLBACK_ENVIRON_V3__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_TP_CALLBACK_ENVIRON_V3__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_TP_CALLBACK_ENVIRON_V3__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_TP_CALLBACK_ENVIRON_V3__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_TP_CALLBACK_ENVIRON_V3__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
impl _TP_CALLBACK_ENVIRON_V3__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
    }
}
#[test]
fn bindgen_test_layout__TP_CALLBACK_ENVIRON_V3__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_TP_CALLBACK_ENVIRON_V3__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_TP_CALLBACK_ENVIRON_V3__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_TP_CALLBACK_ENVIRON_V3__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_TP_CALLBACK_ENVIRON_V3__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TP_CALLBACK_ENVIRON_V3__bindgen_ty_1>())).Flags as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TP_CALLBACK_ENVIRON_V3__bindgen_ty_1),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TP_CALLBACK_ENVIRON_V3__bindgen_ty_1>())).s as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TP_CALLBACK_ENVIRON_V3__bindgen_ty_1),
            "::",
            stringify!(s)
        )
    );
}
#[test]
fn bindgen_test_layout__TP_CALLBACK_ENVIRON_V3() {
    assert_eq!(
        ::std::mem::size_of::<_TP_CALLBACK_ENVIRON_V3>(),
        72usize,
        concat!("Size of: ", stringify!(_TP_CALLBACK_ENVIRON_V3))
    );
    assert_eq!(
        ::std::mem::align_of::<_TP_CALLBACK_ENVIRON_V3>(),
        8usize,
        concat!("Alignment of ", stringify!(_TP_CALLBACK_ENVIRON_V3))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TP_CALLBACK_ENVIRON_V3>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TP_CALLBACK_ENVIRON_V3),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TP_CALLBACK_ENVIRON_V3>())).Pool as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_TP_CALLBACK_ENVIRON_V3),
            "::",
            stringify!(Pool)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TP_CALLBACK_ENVIRON_V3>())).CleanupGroup as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_TP_CALLBACK_ENVIRON_V3),
            "::",
            stringify!(CleanupGroup)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TP_CALLBACK_ENVIRON_V3>())).CleanupGroupCancelCallback
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_TP_CALLBACK_ENVIRON_V3),
            "::",
            stringify!(CleanupGroupCancelCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TP_CALLBACK_ENVIRON_V3>())).RaceDll as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_TP_CALLBACK_ENVIRON_V3),
            "::",
            stringify!(RaceDll)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TP_CALLBACK_ENVIRON_V3>())).ActivationContext as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_TP_CALLBACK_ENVIRON_V3),
            "::",
            stringify!(ActivationContext)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TP_CALLBACK_ENVIRON_V3>())).FinalizationCallback as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_TP_CALLBACK_ENVIRON_V3),
            "::",
            stringify!(FinalizationCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TP_CALLBACK_ENVIRON_V3>())).u as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_TP_CALLBACK_ENVIRON_V3),
            "::",
            stringify!(u)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TP_CALLBACK_ENVIRON_V3>())).CallbackPriority as *const _
                as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_TP_CALLBACK_ENVIRON_V3),
            "::",
            stringify!(CallbackPriority)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TP_CALLBACK_ENVIRON_V3>())).Size as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_TP_CALLBACK_ENVIRON_V3),
            "::",
            stringify!(Size)
        )
    );
}
pub type TP_CALLBACK_ENVIRON_V3 = _TP_CALLBACK_ENVIRON_V3;
pub type TP_CALLBACK_ENVIRON = TP_CALLBACK_ENVIRON_V3;
pub type PTP_CALLBACK_ENVIRON = *mut TP_CALLBACK_ENVIRON_V3;
#[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],
}
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;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HKEY__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HKEY__() {
    assert_eq!(
        ::std::mem::size_of::<HKEY__>(),
        4usize,
        concat!("Size of: ", stringify!(HKEY__))
    );
    assert_eq!(
        ::std::mem::align_of::<HKEY__>(),
        4usize,
        concat!("Alignment of ", stringify!(HKEY__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HKEY__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HKEY__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HKEY = *mut HKEY__;
pub type PHKEY = *mut HKEY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HMETAFILE__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HMETAFILE__() {
    assert_eq!(
        ::std::mem::size_of::<HMETAFILE__>(),
        4usize,
        concat!("Size of: ", stringify!(HMETAFILE__))
    );
    assert_eq!(
        ::std::mem::align_of::<HMETAFILE__>(),
        4usize,
        concat!("Alignment of ", stringify!(HMETAFILE__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HMETAFILE__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HMETAFILE__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HMETAFILE = *mut HMETAFILE__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HINSTANCE__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HINSTANCE__() {
    assert_eq!(
        ::std::mem::size_of::<HINSTANCE__>(),
        4usize,
        concat!("Size of: ", stringify!(HINSTANCE__))
    );
    assert_eq!(
        ::std::mem::align_of::<HINSTANCE__>(),
        4usize,
        concat!("Alignment of ", stringify!(HINSTANCE__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HINSTANCE__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HINSTANCE__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HINSTANCE = *mut HINSTANCE__;
pub type HMODULE = HINSTANCE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HRGN__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HRGN__() {
    assert_eq!(
        ::std::mem::size_of::<HRGN__>(),
        4usize,
        concat!("Size of: ", stringify!(HRGN__))
    );
    assert_eq!(
        ::std::mem::align_of::<HRGN__>(),
        4usize,
        concat!("Alignment of ", stringify!(HRGN__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HRGN__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HRGN__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HRGN = *mut HRGN__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HRSRC__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HRSRC__() {
    assert_eq!(
        ::std::mem::size_of::<HRSRC__>(),
        4usize,
        concat!("Size of: ", stringify!(HRSRC__))
    );
    assert_eq!(
        ::std::mem::align_of::<HRSRC__>(),
        4usize,
        concat!("Alignment of ", stringify!(HRSRC__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HRSRC__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HRSRC__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HRSRC = *mut HRSRC__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HSPRITE__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HSPRITE__() {
    assert_eq!(
        ::std::mem::size_of::<HSPRITE__>(),
        4usize,
        concat!("Size of: ", stringify!(HSPRITE__))
    );
    assert_eq!(
        ::std::mem::align_of::<HSPRITE__>(),
        4usize,
        concat!("Alignment of ", stringify!(HSPRITE__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HSPRITE__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HSPRITE__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HSPRITE = *mut HSPRITE__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HLSURF__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HLSURF__() {
    assert_eq!(
        ::std::mem::size_of::<HLSURF__>(),
        4usize,
        concat!("Size of: ", stringify!(HLSURF__))
    );
    assert_eq!(
        ::std::mem::align_of::<HLSURF__>(),
        4usize,
        concat!("Alignment of ", stringify!(HLSURF__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HLSURF__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HLSURF__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HLSURF = *mut HLSURF__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HSTR__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HSTR__() {
    assert_eq!(
        ::std::mem::size_of::<HSTR__>(),
        4usize,
        concat!("Size of: ", stringify!(HSTR__))
    );
    assert_eq!(
        ::std::mem::align_of::<HSTR__>(),
        4usize,
        concat!("Alignment of ", stringify!(HSTR__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HSTR__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HSTR__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HSTR = *mut HSTR__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HTASK__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HTASK__() {
    assert_eq!(
        ::std::mem::size_of::<HTASK__>(),
        4usize,
        concat!("Size of: ", stringify!(HTASK__))
    );
    assert_eq!(
        ::std::mem::align_of::<HTASK__>(),
        4usize,
        concat!("Alignment of ", stringify!(HTASK__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HTASK__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HTASK__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HTASK = *mut HTASK__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HWINSTA__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HWINSTA__() {
    assert_eq!(
        ::std::mem::size_of::<HWINSTA__>(),
        4usize,
        concat!("Size of: ", stringify!(HWINSTA__))
    );
    assert_eq!(
        ::std::mem::align_of::<HWINSTA__>(),
        4usize,
        concat!("Alignment of ", stringify!(HWINSTA__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HWINSTA__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HWINSTA__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HWINSTA = *mut HWINSTA__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HKL__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HKL__() {
    assert_eq!(
        ::std::mem::size_of::<HKL__>(),
        4usize,
        concat!("Size of: ", stringify!(HKL__))
    );
    assert_eq!(
        ::std::mem::align_of::<HKL__>(),
        4usize,
        concat!("Alignment of ", stringify!(HKL__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HKL__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HKL__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HKL = *mut HKL__;
pub type HFILE = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILETIME {
    pub dwLowDateTime: DWORD,
    pub dwHighDateTime: DWORD,
}
#[test]
fn bindgen_test_layout__FILETIME() {
    assert_eq!(
        ::std::mem::size_of::<_FILETIME>(),
        8usize,
        concat!("Size of: ", stringify!(_FILETIME))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILETIME>(),
        4usize,
        concat!("Alignment of ", stringify!(_FILETIME))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILETIME>())).dwLowDateTime as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILETIME),
            "::",
            stringify!(dwLowDateTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILETIME>())).dwHighDateTime as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILETIME),
            "::",
            stringify!(dwHighDateTime)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_HWND__() {
    assert_eq!(
        ::std::mem::size_of::<HWND__>(),
        4usize,
        concat!("Size of: ", stringify!(HWND__))
    );
    assert_eq!(
        ::std::mem::align_of::<HWND__>(),
        4usize,
        concat!("Alignment of ", stringify!(HWND__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HWND__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HWND__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HWND = *mut HWND__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HHOOK__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HHOOK__() {
    assert_eq!(
        ::std::mem::size_of::<HHOOK__>(),
        4usize,
        concat!("Size of: ", stringify!(HHOOK__))
    );
    assert_eq!(
        ::std::mem::align_of::<HHOOK__>(),
        4usize,
        concat!("Alignment of ", stringify!(HHOOK__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HHOOK__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HHOOK__),
            "::",
            stringify!(unused)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_HACCEL__() {
    assert_eq!(
        ::std::mem::size_of::<HACCEL__>(),
        4usize,
        concat!("Size of: ", stringify!(HACCEL__))
    );
    assert_eq!(
        ::std::mem::align_of::<HACCEL__>(),
        4usize,
        concat!("Alignment of ", stringify!(HACCEL__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HACCEL__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HACCEL__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HACCEL = *mut HACCEL__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HBITMAP__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HBITMAP__() {
    assert_eq!(
        ::std::mem::size_of::<HBITMAP__>(),
        4usize,
        concat!("Size of: ", stringify!(HBITMAP__))
    );
    assert_eq!(
        ::std::mem::align_of::<HBITMAP__>(),
        4usize,
        concat!("Alignment of ", stringify!(HBITMAP__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HBITMAP__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HBITMAP__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HBITMAP = *mut HBITMAP__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HBRUSH__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HBRUSH__() {
    assert_eq!(
        ::std::mem::size_of::<HBRUSH__>(),
        4usize,
        concat!("Size of: ", stringify!(HBRUSH__))
    );
    assert_eq!(
        ::std::mem::align_of::<HBRUSH__>(),
        4usize,
        concat!("Alignment of ", stringify!(HBRUSH__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HBRUSH__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HBRUSH__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HBRUSH = *mut HBRUSH__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HCOLORSPACE__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HCOLORSPACE__() {
    assert_eq!(
        ::std::mem::size_of::<HCOLORSPACE__>(),
        4usize,
        concat!("Size of: ", stringify!(HCOLORSPACE__))
    );
    assert_eq!(
        ::std::mem::align_of::<HCOLORSPACE__>(),
        4usize,
        concat!("Alignment of ", stringify!(HCOLORSPACE__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HCOLORSPACE__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HCOLORSPACE__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HCOLORSPACE = *mut HCOLORSPACE__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HDC__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HDC__() {
    assert_eq!(
        ::std::mem::size_of::<HDC__>(),
        4usize,
        concat!("Size of: ", stringify!(HDC__))
    );
    assert_eq!(
        ::std::mem::align_of::<HDC__>(),
        4usize,
        concat!("Alignment of ", stringify!(HDC__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HDC__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HDC__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HDC = *mut HDC__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HGLRC__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HGLRC__() {
    assert_eq!(
        ::std::mem::size_of::<HGLRC__>(),
        4usize,
        concat!("Size of: ", stringify!(HGLRC__))
    );
    assert_eq!(
        ::std::mem::align_of::<HGLRC__>(),
        4usize,
        concat!("Alignment of ", stringify!(HGLRC__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HGLRC__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HGLRC__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HGLRC = *mut HGLRC__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HDESK__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HDESK__() {
    assert_eq!(
        ::std::mem::size_of::<HDESK__>(),
        4usize,
        concat!("Size of: ", stringify!(HDESK__))
    );
    assert_eq!(
        ::std::mem::align_of::<HDESK__>(),
        4usize,
        concat!("Alignment of ", stringify!(HDESK__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HDESK__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HDESK__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HDESK = *mut HDESK__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HENHMETAFILE__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HENHMETAFILE__() {
    assert_eq!(
        ::std::mem::size_of::<HENHMETAFILE__>(),
        4usize,
        concat!("Size of: ", stringify!(HENHMETAFILE__))
    );
    assert_eq!(
        ::std::mem::align_of::<HENHMETAFILE__>(),
        4usize,
        concat!("Alignment of ", stringify!(HENHMETAFILE__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HENHMETAFILE__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HENHMETAFILE__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HENHMETAFILE = *mut HENHMETAFILE__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HFONT__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HFONT__() {
    assert_eq!(
        ::std::mem::size_of::<HFONT__>(),
        4usize,
        concat!("Size of: ", stringify!(HFONT__))
    );
    assert_eq!(
        ::std::mem::align_of::<HFONT__>(),
        4usize,
        concat!("Alignment of ", stringify!(HFONT__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HFONT__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HFONT__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HFONT = *mut HFONT__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HICON__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HICON__() {
    assert_eq!(
        ::std::mem::size_of::<HICON__>(),
        4usize,
        concat!("Size of: ", stringify!(HICON__))
    );
    assert_eq!(
        ::std::mem::align_of::<HICON__>(),
        4usize,
        concat!("Alignment of ", stringify!(HICON__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HICON__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HICON__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HICON = *mut HICON__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HMENU__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HMENU__() {
    assert_eq!(
        ::std::mem::size_of::<HMENU__>(),
        4usize,
        concat!("Size of: ", stringify!(HMENU__))
    );
    assert_eq!(
        ::std::mem::align_of::<HMENU__>(),
        4usize,
        concat!("Alignment of ", stringify!(HMENU__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HMENU__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HMENU__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HMENU = *mut HMENU__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HPALETTE__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HPALETTE__() {
    assert_eq!(
        ::std::mem::size_of::<HPALETTE__>(),
        4usize,
        concat!("Size of: ", stringify!(HPALETTE__))
    );
    assert_eq!(
        ::std::mem::align_of::<HPALETTE__>(),
        4usize,
        concat!("Alignment of ", stringify!(HPALETTE__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HPALETTE__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HPALETTE__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HPALETTE = *mut HPALETTE__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HPEN__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HPEN__() {
    assert_eq!(
        ::std::mem::size_of::<HPEN__>(),
        4usize,
        concat!("Size of: ", stringify!(HPEN__))
    );
    assert_eq!(
        ::std::mem::align_of::<HPEN__>(),
        4usize,
        concat!("Alignment of ", stringify!(HPEN__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HPEN__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HPEN__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HPEN = *mut HPEN__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HWINEVENTHOOK__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HWINEVENTHOOK__() {
    assert_eq!(
        ::std::mem::size_of::<HWINEVENTHOOK__>(),
        4usize,
        concat!("Size of: ", stringify!(HWINEVENTHOOK__))
    );
    assert_eq!(
        ::std::mem::align_of::<HWINEVENTHOOK__>(),
        4usize,
        concat!("Alignment of ", stringify!(HWINEVENTHOOK__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HWINEVENTHOOK__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HWINEVENTHOOK__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HWINEVENTHOOK = *mut HWINEVENTHOOK__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HMONITOR__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HMONITOR__() {
    assert_eq!(
        ::std::mem::size_of::<HMONITOR__>(),
        4usize,
        concat!("Size of: ", stringify!(HMONITOR__))
    );
    assert_eq!(
        ::std::mem::align_of::<HMONITOR__>(),
        4usize,
        concat!("Alignment of ", stringify!(HMONITOR__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HMONITOR__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HMONITOR__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HMONITOR = *mut HMONITOR__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HUMPD__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HUMPD__() {
    assert_eq!(
        ::std::mem::size_of::<HUMPD__>(),
        4usize,
        concat!("Size of: ", stringify!(HUMPD__))
    );
    assert_eq!(
        ::std::mem::align_of::<HUMPD__>(),
        4usize,
        concat!("Alignment of ", stringify!(HUMPD__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HUMPD__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HUMPD__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HUMPD = *mut HUMPD__;
pub type HCURSOR = HICON;
pub type COLORREF = DWORD;
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,
}
#[test]
fn bindgen_test_layout_tagRECT() {
    assert_eq!(
        ::std::mem::size_of::<tagRECT>(),
        16usize,
        concat!("Size of: ", stringify!(tagRECT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRECT>(),
        4usize,
        concat!("Alignment of ", stringify!(tagRECT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRECT>())).left as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRECT),
            "::",
            stringify!(left)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRECT>())).top as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRECT),
            "::",
            stringify!(top)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRECT>())).right as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRECT),
            "::",
            stringify!(right)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRECT>())).bottom as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRECT),
            "::",
            stringify!(bottom)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__RECTL() {
    assert_eq!(
        ::std::mem::size_of::<_RECTL>(),
        16usize,
        concat!("Size of: ", stringify!(_RECTL))
    );
    assert_eq!(
        ::std::mem::align_of::<_RECTL>(),
        4usize,
        concat!("Alignment of ", stringify!(_RECTL))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RECTL>())).left as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RECTL),
            "::",
            stringify!(left)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RECTL>())).top as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_RECTL),
            "::",
            stringify!(top)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RECTL>())).right as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RECTL),
            "::",
            stringify!(right)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RECTL>())).bottom as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_RECTL),
            "::",
            stringify!(bottom)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagPOINT() {
    assert_eq!(
        ::std::mem::size_of::<tagPOINT>(),
        8usize,
        concat!("Size of: ", stringify!(tagPOINT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagPOINT>(),
        4usize,
        concat!("Alignment of ", stringify!(tagPOINT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOINT>())).x as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINT),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOINT>())).y as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINT),
            "::",
            stringify!(y)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__POINTL() {
    assert_eq!(
        ::std::mem::size_of::<_POINTL>(),
        8usize,
        concat!("Size of: ", stringify!(_POINTL))
    );
    assert_eq!(
        ::std::mem::align_of::<_POINTL>(),
        4usize,
        concat!("Alignment of ", stringify!(_POINTL))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_POINTL>())).x as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_POINTL),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_POINTL>())).y as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_POINTL),
            "::",
            stringify!(y)
        )
    );
}
pub type POINTL = _POINTL;
pub type PPOINTL = *mut _POINTL;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagSIZE {
    pub cx: LONG,
    pub cy: LONG,
}
#[test]
fn bindgen_test_layout_tagSIZE() {
    assert_eq!(
        ::std::mem::size_of::<tagSIZE>(),
        8usize,
        concat!("Size of: ", stringify!(tagSIZE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagSIZE>(),
        4usize,
        concat!("Alignment of ", stringify!(tagSIZE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSIZE>())).cx as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSIZE),
            "::",
            stringify!(cx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSIZE>())).cy as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSIZE),
            "::",
            stringify!(cy)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagPOINTS() {
    assert_eq!(
        ::std::mem::size_of::<tagPOINTS>(),
        4usize,
        concat!("Size of: ", stringify!(tagPOINTS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagPOINTS>(),
        2usize,
        concat!("Alignment of ", stringify!(tagPOINTS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOINTS>())).x as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTS),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOINTS>())).y as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTS),
            "::",
            stringify!(y)
        )
    );
}
pub type POINTS = tagPOINTS;
pub type PPOINTS = *mut tagPOINTS;
pub type LPPOINTS = *mut tagPOINTS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct DPI_AWARENESS_CONTEXT__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_DPI_AWARENESS_CONTEXT__() {
    assert_eq!(
        ::std::mem::size_of::<DPI_AWARENESS_CONTEXT__>(),
        4usize,
        concat!("Size of: ", stringify!(DPI_AWARENESS_CONTEXT__))
    );
    assert_eq!(
        ::std::mem::align_of::<DPI_AWARENESS_CONTEXT__>(),
        4usize,
        concat!("Alignment of ", stringify!(DPI_AWARENESS_CONTEXT__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DPI_AWARENESS_CONTEXT__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DPI_AWARENESS_CONTEXT__),
            "::",
            stringify!(unused)
        )
    );
}
pub type DPI_AWARENESS_CONTEXT = *mut DPI_AWARENESS_CONTEXT__;
pub const DPI_AWARENESS_DPI_AWARENESS_INVALID: DPI_AWARENESS = -1;
pub const DPI_AWARENESS_DPI_AWARENESS_UNAWARE: DPI_AWARENESS = 0;
pub const DPI_AWARENESS_DPI_AWARENESS_SYSTEM_AWARE: DPI_AWARENESS = 1;
pub const DPI_AWARENESS_DPI_AWARENESS_PER_MONITOR_AWARE: DPI_AWARENESS = 2;
pub type DPI_AWARENESS = ::std::os::raw::c_int;
pub const DPI_HOSTING_BEHAVIOR_DPI_HOSTING_BEHAVIOR_INVALID: DPI_HOSTING_BEHAVIOR = -1;
pub const DPI_HOSTING_BEHAVIOR_DPI_HOSTING_BEHAVIOR_DEFAULT: DPI_HOSTING_BEHAVIOR = 0;
pub const DPI_HOSTING_BEHAVIOR_DPI_HOSTING_BEHAVIOR_MIXED: DPI_HOSTING_BEHAVIOR = 1;
pub type DPI_HOSTING_BEHAVIOR = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SECURITY_ATTRIBUTES {
    pub nLength: DWORD,
    pub lpSecurityDescriptor: LPVOID,
    pub bInheritHandle: BOOL,
}
#[test]
fn bindgen_test_layout__SECURITY_ATTRIBUTES() {
    assert_eq!(
        ::std::mem::size_of::<_SECURITY_ATTRIBUTES>(),
        24usize,
        concat!("Size of: ", stringify!(_SECURITY_ATTRIBUTES))
    );
    assert_eq!(
        ::std::mem::align_of::<_SECURITY_ATTRIBUTES>(),
        8usize,
        concat!("Alignment of ", stringify!(_SECURITY_ATTRIBUTES))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SECURITY_ATTRIBUTES>())).nLength as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SECURITY_ATTRIBUTES),
            "::",
            stringify!(nLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SECURITY_ATTRIBUTES>())).lpSecurityDescriptor as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SECURITY_ATTRIBUTES),
            "::",
            stringify!(lpSecurityDescriptor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SECURITY_ATTRIBUTES>())).bInheritHandle as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SECURITY_ATTRIBUTES),
            "::",
            stringify!(bInheritHandle)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__OVERLAPPED__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_OVERLAPPED__bindgen_ty_1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_OVERLAPPED__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_OVERLAPPED__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_OVERLAPPED__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OVERLAPPED__bindgen_ty_1__bindgen_ty_1>())).Offset as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OVERLAPPED__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Offset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OVERLAPPED__bindgen_ty_1__bindgen_ty_1>())).OffsetHigh
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_OVERLAPPED__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(OffsetHigh)
        )
    );
}
#[test]
fn bindgen_test_layout__OVERLAPPED__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_OVERLAPPED__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_OVERLAPPED__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_OVERLAPPED__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(_OVERLAPPED__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OVERLAPPED__bindgen_ty_1>())).Pointer as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OVERLAPPED__bindgen_ty_1),
            "::",
            stringify!(Pointer)
        )
    );
}
#[test]
fn bindgen_test_layout__OVERLAPPED() {
    assert_eq!(
        ::std::mem::size_of::<_OVERLAPPED>(),
        32usize,
        concat!("Size of: ", stringify!(_OVERLAPPED))
    );
    assert_eq!(
        ::std::mem::align_of::<_OVERLAPPED>(),
        8usize,
        concat!("Alignment of ", stringify!(_OVERLAPPED))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OVERLAPPED>())).Internal as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OVERLAPPED),
            "::",
            stringify!(Internal)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OVERLAPPED>())).InternalHigh as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_OVERLAPPED),
            "::",
            stringify!(InternalHigh)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OVERLAPPED>())).hEvent as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_OVERLAPPED),
            "::",
            stringify!(hEvent)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__OVERLAPPED_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_OVERLAPPED_ENTRY>(),
        32usize,
        concat!("Size of: ", stringify!(_OVERLAPPED_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_OVERLAPPED_ENTRY>(),
        8usize,
        concat!("Alignment of ", stringify!(_OVERLAPPED_ENTRY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OVERLAPPED_ENTRY>())).lpCompletionKey as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OVERLAPPED_ENTRY),
            "::",
            stringify!(lpCompletionKey)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OVERLAPPED_ENTRY>())).lpOverlapped as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_OVERLAPPED_ENTRY),
            "::",
            stringify!(lpOverlapped)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OVERLAPPED_ENTRY>())).Internal as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_OVERLAPPED_ENTRY),
            "::",
            stringify!(Internal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OVERLAPPED_ENTRY>())).dwNumberOfBytesTransferred as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_OVERLAPPED_ENTRY),
            "::",
            stringify!(dwNumberOfBytesTransferred)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__SYSTEMTIME() {
    assert_eq!(
        ::std::mem::size_of::<_SYSTEMTIME>(),
        16usize,
        concat!("Size of: ", stringify!(_SYSTEMTIME))
    );
    assert_eq!(
        ::std::mem::align_of::<_SYSTEMTIME>(),
        2usize,
        concat!("Alignment of ", stringify!(_SYSTEMTIME))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEMTIME>())).wYear as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEMTIME),
            "::",
            stringify!(wYear)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEMTIME>())).wMonth as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEMTIME),
            "::",
            stringify!(wMonth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEMTIME>())).wDayOfWeek as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEMTIME),
            "::",
            stringify!(wDayOfWeek)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEMTIME>())).wDay as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEMTIME),
            "::",
            stringify!(wDay)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEMTIME>())).wHour as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEMTIME),
            "::",
            stringify!(wHour)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEMTIME>())).wMinute as *const _ as usize },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEMTIME),
            "::",
            stringify!(wMinute)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEMTIME>())).wSecond as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEMTIME),
            "::",
            stringify!(wSecond)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEMTIME>())).wMilliseconds as *const _ as usize },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEMTIME),
            "::",
            stringify!(wMilliseconds)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__WIN32_FIND_DATAA() {
    assert_eq!(
        ::std::mem::size_of::<_WIN32_FIND_DATAA>(),
        320usize,
        concat!("Size of: ", stringify!(_WIN32_FIND_DATAA))
    );
    assert_eq!(
        ::std::mem::align_of::<_WIN32_FIND_DATAA>(),
        4usize,
        concat!("Alignment of ", stringify!(_WIN32_FIND_DATAA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIN32_FIND_DATAA>())).dwFileAttributes as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_FIND_DATAA),
            "::",
            stringify!(dwFileAttributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIN32_FIND_DATAA>())).ftCreationTime as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_FIND_DATAA),
            "::",
            stringify!(ftCreationTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIN32_FIND_DATAA>())).ftLastAccessTime as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_FIND_DATAA),
            "::",
            stringify!(ftLastAccessTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIN32_FIND_DATAA>())).ftLastWriteTime as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_FIND_DATAA),
            "::",
            stringify!(ftLastWriteTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WIN32_FIND_DATAA>())).nFileSizeHigh as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_FIND_DATAA),
            "::",
            stringify!(nFileSizeHigh)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WIN32_FIND_DATAA>())).nFileSizeLow as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_FIND_DATAA),
            "::",
            stringify!(nFileSizeLow)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WIN32_FIND_DATAA>())).dwReserved0 as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_FIND_DATAA),
            "::",
            stringify!(dwReserved0)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WIN32_FIND_DATAA>())).dwReserved1 as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_FIND_DATAA),
            "::",
            stringify!(dwReserved1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WIN32_FIND_DATAA>())).cFileName as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_FIND_DATAA),
            "::",
            stringify!(cFileName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIN32_FIND_DATAA>())).cAlternateFileName as *const _ as usize
        },
        304usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_FIND_DATAA),
            "::",
            stringify!(cAlternateFileName)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__WIN32_FIND_DATAW() {
    assert_eq!(
        ::std::mem::size_of::<_WIN32_FIND_DATAW>(),
        592usize,
        concat!("Size of: ", stringify!(_WIN32_FIND_DATAW))
    );
    assert_eq!(
        ::std::mem::align_of::<_WIN32_FIND_DATAW>(),
        4usize,
        concat!("Alignment of ", stringify!(_WIN32_FIND_DATAW))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIN32_FIND_DATAW>())).dwFileAttributes as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_FIND_DATAW),
            "::",
            stringify!(dwFileAttributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIN32_FIND_DATAW>())).ftCreationTime as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_FIND_DATAW),
            "::",
            stringify!(ftCreationTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIN32_FIND_DATAW>())).ftLastAccessTime as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_FIND_DATAW),
            "::",
            stringify!(ftLastAccessTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIN32_FIND_DATAW>())).ftLastWriteTime as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_FIND_DATAW),
            "::",
            stringify!(ftLastWriteTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WIN32_FIND_DATAW>())).nFileSizeHigh as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_FIND_DATAW),
            "::",
            stringify!(nFileSizeHigh)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WIN32_FIND_DATAW>())).nFileSizeLow as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_FIND_DATAW),
            "::",
            stringify!(nFileSizeLow)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WIN32_FIND_DATAW>())).dwReserved0 as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_FIND_DATAW),
            "::",
            stringify!(dwReserved0)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WIN32_FIND_DATAW>())).dwReserved1 as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_FIND_DATAW),
            "::",
            stringify!(dwReserved1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WIN32_FIND_DATAW>())).cFileName as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_FIND_DATAW),
            "::",
            stringify!(cFileName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIN32_FIND_DATAW>())).cAlternateFileName as *const _ as usize
        },
        564usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_FIND_DATAW),
            "::",
            stringify!(cAlternateFileName)
        )
    );
}
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 = ::std::os::raw::c_int;
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 = ::std::os::raw::c_int;
pub use self::_FINDEX_SEARCH_OPS as FINDEX_SEARCH_OPS;
pub const _READ_DIRECTORY_NOTIFY_INFORMATION_CLASS_ReadDirectoryNotifyInformation:
    _READ_DIRECTORY_NOTIFY_INFORMATION_CLASS = 1;
pub const _READ_DIRECTORY_NOTIFY_INFORMATION_CLASS_ReadDirectoryNotifyExtendedInformation:
    _READ_DIRECTORY_NOTIFY_INFORMATION_CLASS = 2;
pub type _READ_DIRECTORY_NOTIFY_INFORMATION_CLASS = ::std::os::raw::c_int;
pub use self::_READ_DIRECTORY_NOTIFY_INFORMATION_CLASS as READ_DIRECTORY_NOTIFY_INFORMATION_CLASS;
pub type PREAD_DIRECTORY_NOTIFY_INFORMATION_CLASS = *mut _READ_DIRECTORY_NOTIFY_INFORMATION_CLASS;
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 = ::std::os::raw::c_int;
pub use self::_GET_FILEEX_INFO_LEVELS as GET_FILEEX_INFO_LEVELS;
pub const _FILE_INFO_BY_HANDLE_CLASS_FileBasicInfo: _FILE_INFO_BY_HANDLE_CLASS = 0;
pub const _FILE_INFO_BY_HANDLE_CLASS_FileStandardInfo: _FILE_INFO_BY_HANDLE_CLASS = 1;
pub const _FILE_INFO_BY_HANDLE_CLASS_FileNameInfo: _FILE_INFO_BY_HANDLE_CLASS = 2;
pub const _FILE_INFO_BY_HANDLE_CLASS_FileRenameInfo: _FILE_INFO_BY_HANDLE_CLASS = 3;
pub const _FILE_INFO_BY_HANDLE_CLASS_FileDispositionInfo: _FILE_INFO_BY_HANDLE_CLASS = 4;
pub const _FILE_INFO_BY_HANDLE_CLASS_FileAllocationInfo: _FILE_INFO_BY_HANDLE_CLASS = 5;
pub const _FILE_INFO_BY_HANDLE_CLASS_FileEndOfFileInfo: _FILE_INFO_BY_HANDLE_CLASS = 6;
pub const _FILE_INFO_BY_HANDLE_CLASS_FileStreamInfo: _FILE_INFO_BY_HANDLE_CLASS = 7;
pub const _FILE_INFO_BY_HANDLE_CLASS_FileCompressionInfo: _FILE_INFO_BY_HANDLE_CLASS = 8;
pub const _FILE_INFO_BY_HANDLE_CLASS_FileAttributeTagInfo: _FILE_INFO_BY_HANDLE_CLASS = 9;
pub const _FILE_INFO_BY_HANDLE_CLASS_FileIdBothDirectoryInfo: _FILE_INFO_BY_HANDLE_CLASS = 10;
pub const _FILE_INFO_BY_HANDLE_CLASS_FileIdBothDirectoryRestartInfo: _FILE_INFO_BY_HANDLE_CLASS =
    11;
pub const _FILE_INFO_BY_HANDLE_CLASS_FileIoPriorityHintInfo: _FILE_INFO_BY_HANDLE_CLASS = 12;
pub const _FILE_INFO_BY_HANDLE_CLASS_FileRemoteProtocolInfo: _FILE_INFO_BY_HANDLE_CLASS = 13;
pub const _FILE_INFO_BY_HANDLE_CLASS_FileFullDirectoryInfo: _FILE_INFO_BY_HANDLE_CLASS = 14;
pub const _FILE_INFO_BY_HANDLE_CLASS_FileFullDirectoryRestartInfo: _FILE_INFO_BY_HANDLE_CLASS = 15;
pub const _FILE_INFO_BY_HANDLE_CLASS_FileStorageInfo: _FILE_INFO_BY_HANDLE_CLASS = 16;
pub const _FILE_INFO_BY_HANDLE_CLASS_FileAlignmentInfo: _FILE_INFO_BY_HANDLE_CLASS = 17;
pub const _FILE_INFO_BY_HANDLE_CLASS_FileIdInfo: _FILE_INFO_BY_HANDLE_CLASS = 18;
pub const _FILE_INFO_BY_HANDLE_CLASS_FileIdExtdDirectoryInfo: _FILE_INFO_BY_HANDLE_CLASS = 19;
pub const _FILE_INFO_BY_HANDLE_CLASS_FileIdExtdDirectoryRestartInfo: _FILE_INFO_BY_HANDLE_CLASS =
    20;
pub const _FILE_INFO_BY_HANDLE_CLASS_FileDispositionInfoEx: _FILE_INFO_BY_HANDLE_CLASS = 21;
pub const _FILE_INFO_BY_HANDLE_CLASS_FileRenameInfoEx: _FILE_INFO_BY_HANDLE_CLASS = 22;
pub const _FILE_INFO_BY_HANDLE_CLASS_FileCaseSensitiveInfo: _FILE_INFO_BY_HANDLE_CLASS = 23;
pub const _FILE_INFO_BY_HANDLE_CLASS_FileNormalizedNameInfo: _FILE_INFO_BY_HANDLE_CLASS = 24;
pub const _FILE_INFO_BY_HANDLE_CLASS_MaximumFileInfoByHandleClass: _FILE_INFO_BY_HANDLE_CLASS = 25;
pub type _FILE_INFO_BY_HANDLE_CLASS = ::std::os::raw::c_int;
pub use self::_FILE_INFO_BY_HANDLE_CLASS as FILE_INFO_BY_HANDLE_CLASS;
pub type PFILE_INFO_BY_HANDLE_CLASS = *mut _FILE_INFO_BY_HANDLE_CLASS;
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],
}
#[test]
fn bindgen_test_layout__PROCESS_HEAP_ENTRY__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_HEAP_ENTRY__bindgen_ty_1__bindgen_ty_1>(),
        24usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_HEAP_ENTRY__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_HEAP_ENTRY__bindgen_ty_1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_HEAP_ENTRY__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESS_HEAP_ENTRY__bindgen_ty_1__bindgen_ty_1>())).hMem
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_HEAP_ENTRY__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(hMem)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESS_HEAP_ENTRY__bindgen_ty_1__bindgen_ty_1>())).dwReserved
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_HEAP_ENTRY__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(dwReserved)
        )
    );
}
#[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,
}
#[test]
fn bindgen_test_layout__PROCESS_HEAP_ENTRY__bindgen_ty_1__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_HEAP_ENTRY__bindgen_ty_1__bindgen_ty_2>(),
        24usize,
        concat!(
            "Size of: ",
            stringify!(_PROCESS_HEAP_ENTRY__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_HEAP_ENTRY__bindgen_ty_1__bindgen_ty_2>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_HEAP_ENTRY__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESS_HEAP_ENTRY__bindgen_ty_1__bindgen_ty_2>()))
                .dwCommittedSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_HEAP_ENTRY__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(dwCommittedSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESS_HEAP_ENTRY__bindgen_ty_1__bindgen_ty_2>()))
                .dwUnCommittedSize as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_HEAP_ENTRY__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(dwUnCommittedSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESS_HEAP_ENTRY__bindgen_ty_1__bindgen_ty_2>())).lpFirstBlock
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_HEAP_ENTRY__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(lpFirstBlock)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESS_HEAP_ENTRY__bindgen_ty_1__bindgen_ty_2>())).lpLastBlock
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_HEAP_ENTRY__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(lpLastBlock)
        )
    );
}
#[test]
fn bindgen_test_layout__PROCESS_HEAP_ENTRY__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_HEAP_ENTRY__bindgen_ty_1>(),
        24usize,
        concat!("Size of: ", stringify!(_PROCESS_HEAP_ENTRY__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_HEAP_ENTRY__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PROCESS_HEAP_ENTRY__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESS_HEAP_ENTRY__bindgen_ty_1>())).Block as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_HEAP_ENTRY__bindgen_ty_1),
            "::",
            stringify!(Block)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESS_HEAP_ENTRY__bindgen_ty_1>())).Region as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_HEAP_ENTRY__bindgen_ty_1),
            "::",
            stringify!(Region)
        )
    );
}
#[test]
fn bindgen_test_layout__PROCESS_HEAP_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_HEAP_ENTRY>(),
        40usize,
        concat!("Size of: ", stringify!(_PROCESS_HEAP_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_HEAP_ENTRY>(),
        8usize,
        concat!("Alignment of ", stringify!(_PROCESS_HEAP_ENTRY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROCESS_HEAP_ENTRY>())).lpData as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_HEAP_ENTRY),
            "::",
            stringify!(lpData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROCESS_HEAP_ENTRY>())).cbData as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_HEAP_ENTRY),
            "::",
            stringify!(cbData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROCESS_HEAP_ENTRY>())).cbOverhead as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_HEAP_ENTRY),
            "::",
            stringify!(cbOverhead)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESS_HEAP_ENTRY>())).iRegionIndex as *const _ as usize
        },
        13usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_HEAP_ENTRY),
            "::",
            stringify!(iRegionIndex)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROCESS_HEAP_ENTRY>())).wFlags as *const _ as usize },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_HEAP_ENTRY),
            "::",
            stringify!(wFlags)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__REASON_CONTEXT__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_REASON_CONTEXT__bindgen_ty_1__bindgen_ty_1>(),
        24usize,
        concat!(
            "Size of: ",
            stringify!(_REASON_CONTEXT__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_REASON_CONTEXT__bindgen_ty_1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_REASON_CONTEXT__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REASON_CONTEXT__bindgen_ty_1__bindgen_ty_1>()))
                .LocalizedReasonModule as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_REASON_CONTEXT__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(LocalizedReasonModule)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REASON_CONTEXT__bindgen_ty_1__bindgen_ty_1>()))
                .LocalizedReasonId as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_REASON_CONTEXT__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(LocalizedReasonId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REASON_CONTEXT__bindgen_ty_1__bindgen_ty_1>()))
                .ReasonStringCount as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_REASON_CONTEXT__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(ReasonStringCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REASON_CONTEXT__bindgen_ty_1__bindgen_ty_1>())).ReasonStrings
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_REASON_CONTEXT__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(ReasonStrings)
        )
    );
}
#[test]
fn bindgen_test_layout__REASON_CONTEXT__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_REASON_CONTEXT__bindgen_ty_1>(),
        24usize,
        concat!("Size of: ", stringify!(_REASON_CONTEXT__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_REASON_CONTEXT__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(_REASON_CONTEXT__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REASON_CONTEXT__bindgen_ty_1>())).Detailed as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_REASON_CONTEXT__bindgen_ty_1),
            "::",
            stringify!(Detailed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REASON_CONTEXT__bindgen_ty_1>())).SimpleReasonString as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_REASON_CONTEXT__bindgen_ty_1),
            "::",
            stringify!(SimpleReasonString)
        )
    );
}
#[test]
fn bindgen_test_layout__REASON_CONTEXT() {
    assert_eq!(
        ::std::mem::size_of::<_REASON_CONTEXT>(),
        32usize,
        concat!("Size of: ", stringify!(_REASON_CONTEXT))
    );
    assert_eq!(
        ::std::mem::align_of::<_REASON_CONTEXT>(),
        8usize,
        concat!("Alignment of ", stringify!(_REASON_CONTEXT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_REASON_CONTEXT>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_REASON_CONTEXT),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_REASON_CONTEXT>())).Flags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_REASON_CONTEXT),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_REASON_CONTEXT>())).Reason as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_REASON_CONTEXT),
            "::",
            stringify!(Reason)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__EXCEPTION_DEBUG_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_EXCEPTION_DEBUG_INFO>(),
        160usize,
        concat!("Size of: ", stringify!(_EXCEPTION_DEBUG_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_EXCEPTION_DEBUG_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_EXCEPTION_DEBUG_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXCEPTION_DEBUG_INFO>())).ExceptionRecord as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXCEPTION_DEBUG_INFO),
            "::",
            stringify!(ExceptionRecord)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXCEPTION_DEBUG_INFO>())).dwFirstChance as *const _ as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXCEPTION_DEBUG_INFO),
            "::",
            stringify!(dwFirstChance)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__CREATE_THREAD_DEBUG_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CREATE_THREAD_DEBUG_INFO>(),
        24usize,
        concat!("Size of: ", stringify!(_CREATE_THREAD_DEBUG_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CREATE_THREAD_DEBUG_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CREATE_THREAD_DEBUG_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CREATE_THREAD_DEBUG_INFO>())).hThread as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CREATE_THREAD_DEBUG_INFO),
            "::",
            stringify!(hThread)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CREATE_THREAD_DEBUG_INFO>())).lpThreadLocalBase as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CREATE_THREAD_DEBUG_INFO),
            "::",
            stringify!(lpThreadLocalBase)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CREATE_THREAD_DEBUG_INFO>())).lpStartAddress as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CREATE_THREAD_DEBUG_INFO),
            "::",
            stringify!(lpStartAddress)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__CREATE_PROCESS_DEBUG_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CREATE_PROCESS_DEBUG_INFO>(),
        72usize,
        concat!("Size of: ", stringify!(_CREATE_PROCESS_DEBUG_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CREATE_PROCESS_DEBUG_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CREATE_PROCESS_DEBUG_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CREATE_PROCESS_DEBUG_INFO>())).hFile as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CREATE_PROCESS_DEBUG_INFO),
            "::",
            stringify!(hFile)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CREATE_PROCESS_DEBUG_INFO>())).hProcess as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CREATE_PROCESS_DEBUG_INFO),
            "::",
            stringify!(hProcess)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CREATE_PROCESS_DEBUG_INFO>())).hThread as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CREATE_PROCESS_DEBUG_INFO),
            "::",
            stringify!(hThread)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CREATE_PROCESS_DEBUG_INFO>())).lpBaseOfImage as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CREATE_PROCESS_DEBUG_INFO),
            "::",
            stringify!(lpBaseOfImage)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CREATE_PROCESS_DEBUG_INFO>())).dwDebugInfoFileOffset as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CREATE_PROCESS_DEBUG_INFO),
            "::",
            stringify!(dwDebugInfoFileOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CREATE_PROCESS_DEBUG_INFO>())).nDebugInfoSize as *const _
                as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_CREATE_PROCESS_DEBUG_INFO),
            "::",
            stringify!(nDebugInfoSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CREATE_PROCESS_DEBUG_INFO>())).lpThreadLocalBase as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CREATE_PROCESS_DEBUG_INFO),
            "::",
            stringify!(lpThreadLocalBase)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CREATE_PROCESS_DEBUG_INFO>())).lpStartAddress as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CREATE_PROCESS_DEBUG_INFO),
            "::",
            stringify!(lpStartAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CREATE_PROCESS_DEBUG_INFO>())).lpImageName as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_CREATE_PROCESS_DEBUG_INFO),
            "::",
            stringify!(lpImageName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CREATE_PROCESS_DEBUG_INFO>())).fUnicode as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_CREATE_PROCESS_DEBUG_INFO),
            "::",
            stringify!(fUnicode)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__EXIT_THREAD_DEBUG_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_EXIT_THREAD_DEBUG_INFO>(),
        4usize,
        concat!("Size of: ", stringify!(_EXIT_THREAD_DEBUG_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_EXIT_THREAD_DEBUG_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_EXIT_THREAD_DEBUG_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXIT_THREAD_DEBUG_INFO>())).dwExitCode as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXIT_THREAD_DEBUG_INFO),
            "::",
            stringify!(dwExitCode)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__EXIT_PROCESS_DEBUG_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_EXIT_PROCESS_DEBUG_INFO>(),
        4usize,
        concat!("Size of: ", stringify!(_EXIT_PROCESS_DEBUG_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_EXIT_PROCESS_DEBUG_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_EXIT_PROCESS_DEBUG_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXIT_PROCESS_DEBUG_INFO>())).dwExitCode as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXIT_PROCESS_DEBUG_INFO),
            "::",
            stringify!(dwExitCode)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__LOAD_DLL_DEBUG_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_LOAD_DLL_DEBUG_INFO>(),
        40usize,
        concat!("Size of: ", stringify!(_LOAD_DLL_DEBUG_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_LOAD_DLL_DEBUG_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_LOAD_DLL_DEBUG_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_LOAD_DLL_DEBUG_INFO>())).hFile as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_LOAD_DLL_DEBUG_INFO),
            "::",
            stringify!(hFile)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_LOAD_DLL_DEBUG_INFO>())).lpBaseOfDll as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_LOAD_DLL_DEBUG_INFO),
            "::",
            stringify!(lpBaseOfDll)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_LOAD_DLL_DEBUG_INFO>())).dwDebugInfoFileOffset as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_LOAD_DLL_DEBUG_INFO),
            "::",
            stringify!(dwDebugInfoFileOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_LOAD_DLL_DEBUG_INFO>())).nDebugInfoSize as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_LOAD_DLL_DEBUG_INFO),
            "::",
            stringify!(nDebugInfoSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_LOAD_DLL_DEBUG_INFO>())).lpImageName as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_LOAD_DLL_DEBUG_INFO),
            "::",
            stringify!(lpImageName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_LOAD_DLL_DEBUG_INFO>())).fUnicode as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_LOAD_DLL_DEBUG_INFO),
            "::",
            stringify!(fUnicode)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__UNLOAD_DLL_DEBUG_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_UNLOAD_DLL_DEBUG_INFO>(),
        8usize,
        concat!("Size of: ", stringify!(_UNLOAD_DLL_DEBUG_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_UNLOAD_DLL_DEBUG_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_UNLOAD_DLL_DEBUG_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_UNLOAD_DLL_DEBUG_INFO>())).lpBaseOfDll as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_UNLOAD_DLL_DEBUG_INFO),
            "::",
            stringify!(lpBaseOfDll)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__OUTPUT_DEBUG_STRING_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_OUTPUT_DEBUG_STRING_INFO>(),
        16usize,
        concat!("Size of: ", stringify!(_OUTPUT_DEBUG_STRING_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_OUTPUT_DEBUG_STRING_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_OUTPUT_DEBUG_STRING_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTPUT_DEBUG_STRING_INFO>())).lpDebugStringData as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTPUT_DEBUG_STRING_INFO),
            "::",
            stringify!(lpDebugStringData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTPUT_DEBUG_STRING_INFO>())).fUnicode as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTPUT_DEBUG_STRING_INFO),
            "::",
            stringify!(fUnicode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTPUT_DEBUG_STRING_INFO>())).nDebugStringLength as *const _
                as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTPUT_DEBUG_STRING_INFO),
            "::",
            stringify!(nDebugStringLength)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__RIP_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_RIP_INFO>(),
        8usize,
        concat!("Size of: ", stringify!(_RIP_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_RIP_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_RIP_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RIP_INFO>())).dwError as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RIP_INFO),
            "::",
            stringify!(dwError)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RIP_INFO>())).dwType as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_RIP_INFO),
            "::",
            stringify!(dwType)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__DEBUG_EVENT__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_DEBUG_EVENT__bindgen_ty_1>(),
        160usize,
        concat!("Size of: ", stringify!(_DEBUG_EVENT__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEBUG_EVENT__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(_DEBUG_EVENT__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEBUG_EVENT__bindgen_ty_1>())).Exception as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEBUG_EVENT__bindgen_ty_1),
            "::",
            stringify!(Exception)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEBUG_EVENT__bindgen_ty_1>())).CreateThread as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEBUG_EVENT__bindgen_ty_1),
            "::",
            stringify!(CreateThread)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEBUG_EVENT__bindgen_ty_1>())).CreateProcessInfo as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEBUG_EVENT__bindgen_ty_1),
            "::",
            stringify!(CreateProcessInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEBUG_EVENT__bindgen_ty_1>())).ExitThread as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEBUG_EVENT__bindgen_ty_1),
            "::",
            stringify!(ExitThread)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEBUG_EVENT__bindgen_ty_1>())).ExitProcess as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEBUG_EVENT__bindgen_ty_1),
            "::",
            stringify!(ExitProcess)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEBUG_EVENT__bindgen_ty_1>())).LoadDll as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEBUG_EVENT__bindgen_ty_1),
            "::",
            stringify!(LoadDll)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEBUG_EVENT__bindgen_ty_1>())).UnloadDll as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEBUG_EVENT__bindgen_ty_1),
            "::",
            stringify!(UnloadDll)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEBUG_EVENT__bindgen_ty_1>())).DebugString as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEBUG_EVENT__bindgen_ty_1),
            "::",
            stringify!(DebugString)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEBUG_EVENT__bindgen_ty_1>())).RipInfo as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEBUG_EVENT__bindgen_ty_1),
            "::",
            stringify!(RipInfo)
        )
    );
}
#[test]
fn bindgen_test_layout__DEBUG_EVENT() {
    assert_eq!(
        ::std::mem::size_of::<_DEBUG_EVENT>(),
        176usize,
        concat!("Size of: ", stringify!(_DEBUG_EVENT))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEBUG_EVENT>(),
        8usize,
        concat!("Alignment of ", stringify!(_DEBUG_EVENT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DEBUG_EVENT>())).dwDebugEventCode as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEBUG_EVENT),
            "::",
            stringify!(dwDebugEventCode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DEBUG_EVENT>())).dwProcessId as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEBUG_EVENT),
            "::",
            stringify!(dwProcessId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DEBUG_EVENT>())).dwThreadId as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEBUG_EVENT),
            "::",
            stringify!(dwThreadId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DEBUG_EVENT>())).u as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEBUG_EVENT),
            "::",
            stringify!(u)
        )
    );
}
pub type DEBUG_EVENT = _DEBUG_EVENT;
pub type LPDEBUG_EVENT = *mut _DEBUG_EVENT;
pub type LPCONTEXT = PCONTEXT;
extern "C" {
    pub fn IsApiSetImplemented(Contract: PCSTR) -> BOOL;
}
extern "C" {
    pub fn SetEnvironmentStringsW(NewEnvironment: LPWCH) -> BOOL;
}
extern "C" {
    pub fn GetStdHandle(nStdHandle: DWORD) -> HANDLE;
}
extern "C" {
    pub fn SetStdHandle(nStdHandle: DWORD, hHandle: HANDLE) -> BOOL;
}
extern "C" {
    pub fn SetStdHandleEx(nStdHandle: DWORD, hHandle: HANDLE, phPrevValue: PHANDLE) -> BOOL;
}
extern "C" {
    pub fn GetCommandLineA() -> LPSTR;
}
extern "C" {
    pub fn GetCommandLineW() -> LPWSTR;
}
extern "C" {
    pub fn GetEnvironmentStrings() -> LPCH;
}
extern "C" {
    pub fn GetEnvironmentStringsW() -> LPWCH;
}
extern "C" {
    pub fn FreeEnvironmentStringsA(penv: LPCH) -> BOOL;
}
extern "C" {
    pub fn FreeEnvironmentStringsW(penv: LPWCH) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn SetEnvironmentVariableW(lpName: LPCWSTR, lpValue: LPCWSTR) -> BOOL;
}
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 SetCurrentDirectoryA(lpPathName: LPCSTR) -> BOOL;
}
extern "C" {
    pub fn SetCurrentDirectoryW(lpPathName: LPCWSTR) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn NeedCurrentDirectoryForExePathW(ExeName: LPCWSTR) -> BOOL;
}
extern "C" {
    pub fn CompareFileTime(lpFileTime1: *const FILETIME, lpFileTime2: *const FILETIME) -> LONG;
}
extern "C" {
    pub fn CreateDirectoryA(
        lpPathName: LPCSTR,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
    ) -> BOOL;
}
extern "C" {
    pub fn CreateDirectoryW(
        lpPathName: LPCWSTR,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
    ) -> BOOL;
}
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 CreateFileW(
        lpFileName: LPCWSTR,
        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) -> BOOL;
}
extern "C" {
    pub fn DeleteFileA(lpFileName: LPCSTR) -> BOOL;
}
extern "C" {
    pub fn DeleteFileW(lpFileName: LPCWSTR) -> BOOL;
}
extern "C" {
    pub fn DeleteVolumeMountPointW(lpszVolumeMountPoint: LPCWSTR) -> BOOL;
}
extern "C" {
    pub fn FileTimeToLocalFileTime(
        lpFileTime: *const FILETIME,
        lpLocalFileTime: LPFILETIME,
    ) -> BOOL;
}
extern "C" {
    pub fn FindClose(hFindFile: HANDLE) -> BOOL;
}
extern "C" {
    pub fn FindCloseChangeNotification(hChangeHandle: HANDLE) -> BOOL;
}
extern "C" {
    pub fn FindFirstChangeNotificationA(
        lpPathName: LPCSTR,
        bWatchSubtree: BOOL,
        dwNotifyFilter: DWORD,
    ) -> HANDLE;
}
extern "C" {
    pub fn FindFirstChangeNotificationW(
        lpPathName: LPCWSTR,
        bWatchSubtree: BOOL,
        dwNotifyFilter: DWORD,
    ) -> HANDLE;
}
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 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 FindFirstVolumeW(lpszVolumeName: LPWSTR, cchBufferLength: DWORD) -> HANDLE;
}
extern "C" {
    pub fn FindNextChangeNotification(hChangeHandle: HANDLE) -> BOOL;
}
extern "C" {
    pub fn FindNextFileA(hFindFile: HANDLE, lpFindFileData: LPWIN32_FIND_DATAA) -> BOOL;
}
extern "C" {
    pub fn FindNextFileW(hFindFile: HANDLE, lpFindFileData: LPWIN32_FIND_DATAW) -> BOOL;
}
extern "C" {
    pub fn FindNextVolumeW(
        hFindVolume: HANDLE,
        lpszVolumeName: LPWSTR,
        cchBufferLength: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn FindVolumeClose(hFindVolume: HANDLE) -> BOOL;
}
extern "C" {
    pub fn FlushFileBuffers(hFile: HANDLE) -> BOOL;
}
extern "C" {
    pub fn GetDiskFreeSpaceA(
        lpRootPathName: LPCSTR,
        lpSectorsPerCluster: LPDWORD,
        lpBytesPerSector: LPDWORD,
        lpNumberOfFreeClusters: LPDWORD,
        lpTotalNumberOfClusters: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetDiskFreeSpaceW(
        lpRootPathName: LPCWSTR,
        lpSectorsPerCluster: LPDWORD,
        lpBytesPerSector: LPDWORD,
        lpNumberOfFreeClusters: LPDWORD,
        lpTotalNumberOfClusters: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetDiskFreeSpaceExA(
        lpDirectoryName: LPCSTR,
        lpFreeBytesAvailableToCaller: PULARGE_INTEGER,
        lpTotalNumberOfBytes: PULARGE_INTEGER,
        lpTotalNumberOfFreeBytes: PULARGE_INTEGER,
    ) -> BOOL;
}
extern "C" {
    pub fn GetDiskFreeSpaceExW(
        lpDirectoryName: LPCWSTR,
        lpFreeBytesAvailableToCaller: PULARGE_INTEGER,
        lpTotalNumberOfBytes: PULARGE_INTEGER,
        lpTotalNumberOfFreeBytes: PULARGE_INTEGER,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct DISK_SPACE_INFORMATION {
    pub ActualTotalAllocationUnits: ULONGLONG,
    pub ActualAvailableAllocationUnits: ULONGLONG,
    pub ActualPoolUnavailableAllocationUnits: ULONGLONG,
    pub CallerTotalAllocationUnits: ULONGLONG,
    pub CallerAvailableAllocationUnits: ULONGLONG,
    pub CallerPoolUnavailableAllocationUnits: ULONGLONG,
    pub UsedAllocationUnits: ULONGLONG,
    pub TotalReservedAllocationUnits: ULONGLONG,
    pub VolumeStorageReserveAllocationUnits: ULONGLONG,
    pub AvailableCommittedAllocationUnits: ULONGLONG,
    pub PoolAvailableAllocationUnits: ULONGLONG,
    pub SectorsPerAllocationUnit: DWORD,
    pub BytesPerSector: DWORD,
}
#[test]
fn bindgen_test_layout_DISK_SPACE_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<DISK_SPACE_INFORMATION>(),
        96usize,
        concat!("Size of: ", stringify!(DISK_SPACE_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<DISK_SPACE_INFORMATION>(),
        8usize,
        concat!("Alignment of ", stringify!(DISK_SPACE_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISK_SPACE_INFORMATION>())).ActualTotalAllocationUnits
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DISK_SPACE_INFORMATION),
            "::",
            stringify!(ActualTotalAllocationUnits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISK_SPACE_INFORMATION>())).ActualAvailableAllocationUnits
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(DISK_SPACE_INFORMATION),
            "::",
            stringify!(ActualAvailableAllocationUnits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISK_SPACE_INFORMATION>())).ActualPoolUnavailableAllocationUnits
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(DISK_SPACE_INFORMATION),
            "::",
            stringify!(ActualPoolUnavailableAllocationUnits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISK_SPACE_INFORMATION>())).CallerTotalAllocationUnits
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(DISK_SPACE_INFORMATION),
            "::",
            stringify!(CallerTotalAllocationUnits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISK_SPACE_INFORMATION>())).CallerAvailableAllocationUnits
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(DISK_SPACE_INFORMATION),
            "::",
            stringify!(CallerAvailableAllocationUnits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISK_SPACE_INFORMATION>())).CallerPoolUnavailableAllocationUnits
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(DISK_SPACE_INFORMATION),
            "::",
            stringify!(CallerPoolUnavailableAllocationUnits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISK_SPACE_INFORMATION>())).UsedAllocationUnits as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(DISK_SPACE_INFORMATION),
            "::",
            stringify!(UsedAllocationUnits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISK_SPACE_INFORMATION>())).TotalReservedAllocationUnits
                as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(DISK_SPACE_INFORMATION),
            "::",
            stringify!(TotalReservedAllocationUnits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISK_SPACE_INFORMATION>())).VolumeStorageReserveAllocationUnits
                as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(DISK_SPACE_INFORMATION),
            "::",
            stringify!(VolumeStorageReserveAllocationUnits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISK_SPACE_INFORMATION>())).AvailableCommittedAllocationUnits
                as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(DISK_SPACE_INFORMATION),
            "::",
            stringify!(AvailableCommittedAllocationUnits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISK_SPACE_INFORMATION>())).PoolAvailableAllocationUnits
                as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(DISK_SPACE_INFORMATION),
            "::",
            stringify!(PoolAvailableAllocationUnits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISK_SPACE_INFORMATION>())).SectorsPerAllocationUnit as *const _
                as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(DISK_SPACE_INFORMATION),
            "::",
            stringify!(SectorsPerAllocationUnit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISK_SPACE_INFORMATION>())).BytesPerSector as *const _ as usize
        },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(DISK_SPACE_INFORMATION),
            "::",
            stringify!(BytesPerSector)
        )
    );
}
extern "C" {
    pub fn GetDiskSpaceInformationA(
        rootPath: LPCSTR,
        diskSpaceInfo: *mut DISK_SPACE_INFORMATION,
    ) -> HRESULT;
}
extern "C" {
    pub fn GetDiskSpaceInformationW(
        rootPath: LPCWSTR,
        diskSpaceInfo: *mut DISK_SPACE_INFORMATION,
    ) -> HRESULT;
}
extern "C" {
    pub fn GetDriveTypeA(lpRootPathName: LPCSTR) -> UINT;
}
extern "C" {
    pub fn GetDriveTypeW(lpRootPathName: LPCWSTR) -> UINT;
}
#[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,
}
#[test]
fn bindgen_test_layout__WIN32_FILE_ATTRIBUTE_DATA() {
    assert_eq!(
        ::std::mem::size_of::<_WIN32_FILE_ATTRIBUTE_DATA>(),
        36usize,
        concat!("Size of: ", stringify!(_WIN32_FILE_ATTRIBUTE_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<_WIN32_FILE_ATTRIBUTE_DATA>(),
        4usize,
        concat!("Alignment of ", stringify!(_WIN32_FILE_ATTRIBUTE_DATA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIN32_FILE_ATTRIBUTE_DATA>())).dwFileAttributes as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_FILE_ATTRIBUTE_DATA),
            "::",
            stringify!(dwFileAttributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIN32_FILE_ATTRIBUTE_DATA>())).ftCreationTime as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_FILE_ATTRIBUTE_DATA),
            "::",
            stringify!(ftCreationTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIN32_FILE_ATTRIBUTE_DATA>())).ftLastAccessTime as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_FILE_ATTRIBUTE_DATA),
            "::",
            stringify!(ftLastAccessTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIN32_FILE_ATTRIBUTE_DATA>())).ftLastWriteTime as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_FILE_ATTRIBUTE_DATA),
            "::",
            stringify!(ftLastWriteTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIN32_FILE_ATTRIBUTE_DATA>())).nFileSizeHigh as *const _
                as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_FILE_ATTRIBUTE_DATA),
            "::",
            stringify!(nFileSizeHigh)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIN32_FILE_ATTRIBUTE_DATA>())).nFileSizeLow as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_FILE_ATTRIBUTE_DATA),
            "::",
            stringify!(nFileSizeLow)
        )
    );
}
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 GetFileAttributesA(lpFileName: LPCSTR) -> DWORD;
}
extern "C" {
    pub fn GetFileAttributesW(lpFileName: LPCWSTR) -> DWORD;
}
extern "C" {
    pub fn GetFileAttributesExA(
        lpFileName: LPCSTR,
        fInfoLevelId: GET_FILEEX_INFO_LEVELS,
        lpFileInformation: LPVOID,
    ) -> BOOL;
}
extern "C" {
    pub fn GetFileAttributesExW(
        lpFileName: LPCWSTR,
        fInfoLevelId: GET_FILEEX_INFO_LEVELS,
        lpFileInformation: LPVOID,
    ) -> BOOL;
}
#[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,
}
#[test]
fn bindgen_test_layout__BY_HANDLE_FILE_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_BY_HANDLE_FILE_INFORMATION>(),
        52usize,
        concat!("Size of: ", stringify!(_BY_HANDLE_FILE_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_BY_HANDLE_FILE_INFORMATION>(),
        4usize,
        concat!("Alignment of ", stringify!(_BY_HANDLE_FILE_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BY_HANDLE_FILE_INFORMATION>())).dwFileAttributes as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BY_HANDLE_FILE_INFORMATION),
            "::",
            stringify!(dwFileAttributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BY_HANDLE_FILE_INFORMATION>())).ftCreationTime as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_BY_HANDLE_FILE_INFORMATION),
            "::",
            stringify!(ftCreationTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BY_HANDLE_FILE_INFORMATION>())).ftLastAccessTime as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_BY_HANDLE_FILE_INFORMATION),
            "::",
            stringify!(ftLastAccessTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BY_HANDLE_FILE_INFORMATION>())).ftLastWriteTime as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_BY_HANDLE_FILE_INFORMATION),
            "::",
            stringify!(ftLastWriteTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BY_HANDLE_FILE_INFORMATION>())).dwVolumeSerialNumber as *const _
                as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_BY_HANDLE_FILE_INFORMATION),
            "::",
            stringify!(dwVolumeSerialNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BY_HANDLE_FILE_INFORMATION>())).nFileSizeHigh as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_BY_HANDLE_FILE_INFORMATION),
            "::",
            stringify!(nFileSizeHigh)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BY_HANDLE_FILE_INFORMATION>())).nFileSizeLow as *const _
                as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_BY_HANDLE_FILE_INFORMATION),
            "::",
            stringify!(nFileSizeLow)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BY_HANDLE_FILE_INFORMATION>())).nNumberOfLinks as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_BY_HANDLE_FILE_INFORMATION),
            "::",
            stringify!(nNumberOfLinks)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BY_HANDLE_FILE_INFORMATION>())).nFileIndexHigh as *const _
                as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_BY_HANDLE_FILE_INFORMATION),
            "::",
            stringify!(nFileIndexHigh)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BY_HANDLE_FILE_INFORMATION>())).nFileIndexLow as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_BY_HANDLE_FILE_INFORMATION),
            "::",
            stringify!(nFileIndexLow)
        )
    );
}
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 GetFileInformationByHandle(
        hFile: HANDLE,
        lpFileInformation: LPBY_HANDLE_FILE_INFORMATION,
    ) -> BOOL;
}
extern "C" {
    pub fn GetFileSize(hFile: HANDLE, lpFileSizeHigh: LPDWORD) -> DWORD;
}
extern "C" {
    pub fn GetFileSizeEx(hFile: HANDLE, lpFileSize: PLARGE_INTEGER) -> BOOL;
}
extern "C" {
    pub fn GetFileType(hFile: HANDLE) -> DWORD;
}
extern "C" {
    pub fn GetFinalPathNameByHandleA(
        hFile: HANDLE,
        lpszFilePath: LPSTR,
        cchFilePath: DWORD,
        dwFlags: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn GetFinalPathNameByHandleW(
        hFile: HANDLE,
        lpszFilePath: LPWSTR,
        cchFilePath: DWORD,
        dwFlags: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn GetFileTime(
        hFile: HANDLE,
        lpCreationTime: LPFILETIME,
        lpLastAccessTime: LPFILETIME,
        lpLastWriteTime: LPFILETIME,
    ) -> BOOL;
}
extern "C" {
    pub fn GetFullPathNameW(
        lpFileName: LPCWSTR,
        nBufferLength: DWORD,
        lpBuffer: LPWSTR,
        lpFilePart: *mut LPWSTR,
    ) -> DWORD;
}
extern "C" {
    pub fn GetFullPathNameA(
        lpFileName: LPCSTR,
        nBufferLength: DWORD,
        lpBuffer: LPSTR,
        lpFilePart: *mut LPSTR,
    ) -> 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 GetTempFileNameW(
        lpPathName: LPCWSTR,
        lpPrefixString: LPCWSTR,
        uUnique: UINT,
        lpTempFileName: LPWSTR,
    ) -> UINT;
}
extern "C" {
    pub fn GetVolumeInformationByHandleW(
        hFile: HANDLE,
        lpVolumeNameBuffer: LPWSTR,
        nVolumeNameSize: DWORD,
        lpVolumeSerialNumber: LPDWORD,
        lpMaximumComponentLength: LPDWORD,
        lpFileSystemFlags: LPDWORD,
        lpFileSystemNameBuffer: LPWSTR,
        nFileSystemNameSize: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetVolumeInformationW(
        lpRootPathName: LPCWSTR,
        lpVolumeNameBuffer: LPWSTR,
        nVolumeNameSize: DWORD,
        lpVolumeSerialNumber: LPDWORD,
        lpMaximumComponentLength: LPDWORD,
        lpFileSystemFlags: LPDWORD,
        lpFileSystemNameBuffer: LPWSTR,
        nFileSystemNameSize: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetVolumePathNameW(
        lpszFileName: LPCWSTR,
        lpszVolumePathName: LPWSTR,
        cchBufferLength: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn LocalFileTimeToFileTime(
        lpLocalFileTime: *const FILETIME,
        lpFileTime: LPFILETIME,
    ) -> BOOL;
}
extern "C" {
    pub fn LockFile(
        hFile: HANDLE,
        dwFileOffsetLow: DWORD,
        dwFileOffsetHigh: DWORD,
        nNumberOfBytesToLockLow: DWORD,
        nNumberOfBytesToLockHigh: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn LockFileEx(
        hFile: HANDLE,
        dwFlags: DWORD,
        dwReserved: DWORD,
        nNumberOfBytesToLockLow: DWORD,
        nNumberOfBytesToLockHigh: DWORD,
        lpOverlapped: LPOVERLAPPED,
    ) -> BOOL;
}
extern "C" {
    pub fn QueryDosDeviceW(lpDeviceName: LPCWSTR, lpTargetPath: LPWSTR, ucchMax: DWORD) -> DWORD;
}
extern "C" {
    pub fn ReadFile(
        hFile: HANDLE,
        lpBuffer: LPVOID,
        nNumberOfBytesToRead: DWORD,
        lpNumberOfBytesRead: LPDWORD,
        lpOverlapped: LPOVERLAPPED,
    ) -> BOOL;
}
extern "C" {
    pub fn ReadFileEx(
        hFile: HANDLE,
        lpBuffer: LPVOID,
        nNumberOfBytesToRead: DWORD,
        lpOverlapped: LPOVERLAPPED,
        lpCompletionRoutine: LPOVERLAPPED_COMPLETION_ROUTINE,
    ) -> BOOL;
}
extern "C" {
    pub fn ReadFileScatter(
        hFile: HANDLE,
        aSegmentArray: *mut FILE_SEGMENT_ELEMENT,
        nNumberOfBytesToRead: DWORD,
        lpReserved: LPDWORD,
        lpOverlapped: LPOVERLAPPED,
    ) -> BOOL;
}
extern "C" {
    pub fn RemoveDirectoryA(lpPathName: LPCSTR) -> BOOL;
}
extern "C" {
    pub fn RemoveDirectoryW(lpPathName: LPCWSTR) -> BOOL;
}
extern "C" {
    pub fn SetEndOfFile(hFile: HANDLE) -> BOOL;
}
extern "C" {
    pub fn SetFileAttributesA(lpFileName: LPCSTR, dwFileAttributes: DWORD) -> BOOL;
}
extern "C" {
    pub fn SetFileAttributesW(lpFileName: LPCWSTR, dwFileAttributes: DWORD) -> BOOL;
}
extern "C" {
    pub fn SetFileInformationByHandle(
        hFile: HANDLE,
        FileInformationClass: FILE_INFO_BY_HANDLE_CLASS,
        lpFileInformation: LPVOID,
        dwBufferSize: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn SetFilePointer(
        hFile: HANDLE,
        lDistanceToMove: LONG,
        lpDistanceToMoveHigh: PLONG,
        dwMoveMethod: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn SetFilePointerEx(
        hFile: HANDLE,
        liDistanceToMove: LARGE_INTEGER,
        lpNewFilePointer: PLARGE_INTEGER,
        dwMoveMethod: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn SetFileTime(
        hFile: HANDLE,
        lpCreationTime: *const FILETIME,
        lpLastAccessTime: *const FILETIME,
        lpLastWriteTime: *const FILETIME,
    ) -> BOOL;
}
extern "C" {
    pub fn SetFileValidData(hFile: HANDLE, ValidDataLength: LONGLONG) -> BOOL;
}
extern "C" {
    pub fn UnlockFile(
        hFile: HANDLE,
        dwFileOffsetLow: DWORD,
        dwFileOffsetHigh: DWORD,
        nNumberOfBytesToUnlockLow: DWORD,
        nNumberOfBytesToUnlockHigh: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn UnlockFileEx(
        hFile: HANDLE,
        dwReserved: DWORD,
        nNumberOfBytesToUnlockLow: DWORD,
        nNumberOfBytesToUnlockHigh: DWORD,
        lpOverlapped: LPOVERLAPPED,
    ) -> BOOL;
}
extern "C" {
    pub fn WriteFile(
        hFile: HANDLE,
        lpBuffer: LPCVOID,
        nNumberOfBytesToWrite: DWORD,
        lpNumberOfBytesWritten: LPDWORD,
        lpOverlapped: LPOVERLAPPED,
    ) -> BOOL;
}
extern "C" {
    pub fn WriteFileEx(
        hFile: HANDLE,
        lpBuffer: LPCVOID,
        nNumberOfBytesToWrite: DWORD,
        lpOverlapped: LPOVERLAPPED,
        lpCompletionRoutine: LPOVERLAPPED_COMPLETION_ROUTINE,
    ) -> BOOL;
}
extern "C" {
    pub fn WriteFileGather(
        hFile: HANDLE,
        aSegmentArray: *mut FILE_SEGMENT_ELEMENT,
        nNumberOfBytesToWrite: DWORD,
        lpReserved: LPDWORD,
        lpOverlapped: LPOVERLAPPED,
    ) -> BOOL;
}
extern "C" {
    pub fn GetTempPathW(nBufferLength: DWORD, lpBuffer: LPWSTR) -> DWORD;
}
extern "C" {
    pub fn GetVolumeNameForVolumeMountPointW(
        lpszVolumeMountPoint: LPCWSTR,
        lpszVolumeName: LPWSTR,
        cchBufferLength: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetVolumePathNamesForVolumeNameW(
        lpszVolumeName: LPCWSTR,
        lpszVolumePathNames: LPWCH,
        cchBufferLength: DWORD,
        lpcchReturnLength: PDWORD,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CREATEFILE2_EXTENDED_PARAMETERS {
    pub dwSize: DWORD,
    pub dwFileAttributes: DWORD,
    pub dwFileFlags: DWORD,
    pub dwSecurityQosFlags: DWORD,
    pub lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
    pub hTemplateFile: HANDLE,
}
#[test]
fn bindgen_test_layout__CREATEFILE2_EXTENDED_PARAMETERS() {
    assert_eq!(
        ::std::mem::size_of::<_CREATEFILE2_EXTENDED_PARAMETERS>(),
        32usize,
        concat!("Size of: ", stringify!(_CREATEFILE2_EXTENDED_PARAMETERS))
    );
    assert_eq!(
        ::std::mem::align_of::<_CREATEFILE2_EXTENDED_PARAMETERS>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CREATEFILE2_EXTENDED_PARAMETERS)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CREATEFILE2_EXTENDED_PARAMETERS>())).dwSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CREATEFILE2_EXTENDED_PARAMETERS),
            "::",
            stringify!(dwSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CREATEFILE2_EXTENDED_PARAMETERS>())).dwFileAttributes
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CREATEFILE2_EXTENDED_PARAMETERS),
            "::",
            stringify!(dwFileAttributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CREATEFILE2_EXTENDED_PARAMETERS>())).dwFileFlags as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CREATEFILE2_EXTENDED_PARAMETERS),
            "::",
            stringify!(dwFileFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CREATEFILE2_EXTENDED_PARAMETERS>())).dwSecurityQosFlags
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_CREATEFILE2_EXTENDED_PARAMETERS),
            "::",
            stringify!(dwSecurityQosFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CREATEFILE2_EXTENDED_PARAMETERS>())).lpSecurityAttributes
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CREATEFILE2_EXTENDED_PARAMETERS),
            "::",
            stringify!(lpSecurityAttributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CREATEFILE2_EXTENDED_PARAMETERS>())).hTemplateFile as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CREATEFILE2_EXTENDED_PARAMETERS),
            "::",
            stringify!(hTemplateFile)
        )
    );
}
pub type CREATEFILE2_EXTENDED_PARAMETERS = _CREATEFILE2_EXTENDED_PARAMETERS;
pub type PCREATEFILE2_EXTENDED_PARAMETERS = *mut _CREATEFILE2_EXTENDED_PARAMETERS;
pub type LPCREATEFILE2_EXTENDED_PARAMETERS = *mut _CREATEFILE2_EXTENDED_PARAMETERS;
extern "C" {
    pub fn CreateFile2(
        lpFileName: LPCWSTR,
        dwDesiredAccess: DWORD,
        dwShareMode: DWORD,
        dwCreationDisposition: DWORD,
        pCreateExParams: LPCREATEFILE2_EXTENDED_PARAMETERS,
    ) -> HANDLE;
}
extern "C" {
    pub fn SetFileIoOverlappedRange(
        FileHandle: HANDLE,
        OverlappedRangeStart: PUCHAR,
        Length: ULONG,
    ) -> BOOL;
}
extern "C" {
    pub fn GetCompressedFileSizeA(lpFileName: LPCSTR, lpFileSizeHigh: LPDWORD) -> DWORD;
}
extern "C" {
    pub fn GetCompressedFileSizeW(lpFileName: LPCWSTR, lpFileSizeHigh: LPDWORD) -> DWORD;
}
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 = ::std::os::raw::c_int;
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],
}
#[test]
fn bindgen_test_layout__WIN32_FIND_STREAM_DATA() {
    assert_eq!(
        ::std::mem::size_of::<_WIN32_FIND_STREAM_DATA>(),
        600usize,
        concat!("Size of: ", stringify!(_WIN32_FIND_STREAM_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<_WIN32_FIND_STREAM_DATA>(),
        8usize,
        concat!("Alignment of ", stringify!(_WIN32_FIND_STREAM_DATA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIN32_FIND_STREAM_DATA>())).StreamSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_FIND_STREAM_DATA),
            "::",
            stringify!(StreamSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIN32_FIND_STREAM_DATA>())).cStreamName as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_FIND_STREAM_DATA),
            "::",
            stringify!(cStreamName)
        )
    );
}
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) -> BOOL;
}
extern "C" {
    pub fn AreFileApisANSI() -> BOOL;
}
extern "C" {
    pub fn GetTempPathA(nBufferLength: DWORD, lpBuffer: LPSTR) -> DWORD;
}
extern "C" {
    pub fn FindFirstFileNameW(
        lpFileName: LPCWSTR,
        dwFlags: DWORD,
        StringLength: LPDWORD,
        LinkName: PWSTR,
    ) -> HANDLE;
}
extern "C" {
    pub fn FindNextFileNameW(hFindStream: HANDLE, StringLength: LPDWORD, LinkName: PWSTR) -> BOOL;
}
extern "C" {
    pub fn GetVolumeInformationA(
        lpRootPathName: LPCSTR,
        lpVolumeNameBuffer: LPSTR,
        nVolumeNameSize: DWORD,
        lpVolumeSerialNumber: LPDWORD,
        lpMaximumComponentLength: LPDWORD,
        lpFileSystemFlags: LPDWORD,
        lpFileSystemNameBuffer: LPSTR,
        nFileSystemNameSize: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetTempFileNameA(
        lpPathName: LPCSTR,
        lpPrefixString: LPCSTR,
        uUnique: UINT,
        lpTempFileName: LPSTR,
    ) -> UINT;
}
extern "C" {
    pub fn SetFileApisToOEM();
}
extern "C" {
    pub fn SetFileApisToANSI();
}
extern "C" {
    pub fn CopyFileFromAppW(
        lpExistingFileName: LPCWSTR,
        lpNewFileName: LPCWSTR,
        bFailIfExists: BOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn CreateDirectoryFromAppW(
        lpPathName: LPCWSTR,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
    ) -> BOOL;
}
extern "C" {
    pub fn CreateFileFromAppW(
        lpFileName: LPCWSTR,
        dwDesiredAccess: DWORD,
        dwShareMode: DWORD,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
        dwCreationDisposition: DWORD,
        dwFlagsAndAttributes: DWORD,
        hTemplateFile: HANDLE,
    ) -> HANDLE;
}
extern "C" {
    pub fn CreateFile2FromAppW(
        lpFileName: LPCWSTR,
        dwDesiredAccess: DWORD,
        dwShareMode: DWORD,
        dwCreationDisposition: DWORD,
        pCreateExParams: LPCREATEFILE2_EXTENDED_PARAMETERS,
    ) -> HANDLE;
}
extern "C" {
    pub fn DeleteFileFromAppW(lpFileName: LPCWSTR) -> BOOL;
}
extern "C" {
    pub fn FindFirstFileExFromAppW(
        lpFileName: LPCWSTR,
        fInfoLevelId: FINDEX_INFO_LEVELS,
        lpFindFileData: LPVOID,
        fSearchOp: FINDEX_SEARCH_OPS,
        lpSearchFilter: LPVOID,
        dwAdditionalFlags: DWORD,
    ) -> HANDLE;
}
extern "C" {
    pub fn GetFileAttributesExFromAppW(
        lpFileName: LPCWSTR,
        fInfoLevelId: GET_FILEEX_INFO_LEVELS,
        lpFileInformation: LPVOID,
    ) -> BOOL;
}
extern "C" {
    pub fn MoveFileFromAppW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR) -> BOOL;
}
extern "C" {
    pub fn RemoveDirectoryFromAppW(lpPathName: LPCWSTR) -> BOOL;
}
extern "C" {
    pub fn ReplaceFileFromAppW(
        lpReplacedFileName: LPCWSTR,
        lpReplacementFileName: LPCWSTR,
        lpBackupFileName: LPCWSTR,
        dwReplaceFlags: DWORD,
        lpExclude: LPVOID,
        lpReserved: LPVOID,
    ) -> BOOL;
}
extern "C" {
    pub fn SetFileAttributesFromAppW(lpFileName: LPCWSTR, dwFileAttributes: DWORD) -> BOOL;
}
extern "C" {
    pub fn IsDebuggerPresent() -> BOOL;
}
extern "C" {
    pub fn DebugBreak();
}
extern "C" {
    pub fn OutputDebugStringA(lpOutputString: LPCSTR);
}
extern "C" {
    pub fn OutputDebugStringW(lpOutputString: LPCWSTR);
}
extern "C" {
    pub fn ContinueDebugEvent(
        dwProcessId: DWORD,
        dwThreadId: DWORD,
        dwContinueStatus: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn WaitForDebugEvent(lpDebugEvent: LPDEBUG_EVENT, dwMilliseconds: DWORD) -> BOOL;
}
extern "C" {
    pub fn DebugActiveProcess(dwProcessId: DWORD) -> BOOL;
}
extern "C" {
    pub fn DebugActiveProcessStop(dwProcessId: DWORD) -> BOOL;
}
extern "C" {
    pub fn CheckRemoteDebuggerPresent(hProcess: HANDLE, pbDebuggerPresent: PBOOL) -> BOOL;
}
extern "C" {
    pub fn WaitForDebugEventEx(lpDebugEvent: LPDEBUG_EVENT, dwMilliseconds: DWORD) -> BOOL;
}
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 EncodeRemotePointer(
        ProcessHandle: HANDLE,
        Ptr: PVOID,
        EncodedPtr: *mut PVOID,
    ) -> HRESULT;
}
extern "C" {
    pub fn DecodeRemotePointer(
        ProcessHandle: HANDLE,
        Ptr: PVOID,
        DecodedPtr: *mut PVOID,
    ) -> HRESULT;
}
extern "C" {
    pub fn Beep(dwFreq: DWORD, dwDuration: DWORD) -> BOOL;
}
extern "C" {
    pub fn CloseHandle(hObject: HANDLE) -> BOOL;
}
extern "C" {
    pub fn DuplicateHandle(
        hSourceProcessHandle: HANDLE,
        hSourceHandle: HANDLE,
        hTargetProcessHandle: HANDLE,
        lpTargetHandle: LPHANDLE,
        dwDesiredAccess: DWORD,
        bInheritHandle: BOOL,
        dwOptions: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CompareObjectHandles(hFirstObjectHandle: HANDLE, hSecondObjectHandle: HANDLE) -> BOOL;
}
extern "C" {
    pub fn GetHandleInformation(hObject: HANDLE, lpdwFlags: LPDWORD) -> BOOL;
}
extern "C" {
    pub fn SetHandleInformation(hObject: HANDLE, dwMask: DWORD, dwFlags: DWORD) -> BOOL;
}
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 RaiseException(
        dwExceptionCode: DWORD,
        dwExceptionFlags: DWORD,
        nNumberOfArguments: DWORD,
        lpArguments: *const ULONG_PTR,
    );
}
extern "C" {
    pub fn UnhandledExceptionFilter(ExceptionInfo: *mut _EXCEPTION_POINTERS) -> LONG;
}
extern "C" {
    pub fn SetUnhandledExceptionFilter(
        lpTopLevelExceptionFilter: LPTOP_LEVEL_EXCEPTION_FILTER,
    ) -> LPTOP_LEVEL_EXCEPTION_FILTER;
}
extern "C" {
    pub fn GetLastError() -> DWORD;
}
extern "C" {
    pub fn SetLastError(dwErrCode: DWORD);
}
extern "C" {
    pub fn GetErrorMode() -> UINT;
}
extern "C" {
    pub fn SetErrorMode(uMode: UINT) -> UINT;
}
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 RaiseFailFastException(
        pExceptionRecord: PEXCEPTION_RECORD,
        pContextRecord: PCONTEXT,
        dwFlags: DWORD,
    );
}
extern "C" {
    pub fn FatalAppExitA(uAction: UINT, lpMessageText: LPCSTR);
}
extern "C" {
    pub fn FatalAppExitW(uAction: UINT, lpMessageText: LPCWSTR);
}
extern "C" {
    pub fn GetThreadErrorMode() -> DWORD;
}
extern "C" {
    pub fn SetThreadErrorMode(dwNewMode: DWORD, lpOldMode: LPDWORD) -> BOOL;
}
extern "C" {
    pub fn TerminateProcessOnMemoryExhaustion(FailedAllocationSize: SIZE_T);
}
extern "C" {
    pub fn FlsAlloc(lpCallback: PFLS_CALLBACK_FUNCTION) -> DWORD;
}
extern "C" {
    pub fn FlsGetValue(dwFlsIndex: DWORD) -> PVOID;
}
extern "C" {
    pub fn FlsSetValue(dwFlsIndex: DWORD, lpFlsData: PVOID) -> BOOL;
}
extern "C" {
    pub fn FlsFree(dwFlsIndex: DWORD) -> BOOL;
}
extern "C" {
    pub fn IsThreadAFiber() -> BOOL;
}
extern "C" {
    pub fn CreatePipe(
        hReadPipe: PHANDLE,
        hWritePipe: PHANDLE,
        lpPipeAttributes: LPSECURITY_ATTRIBUTES,
        nSize: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn ConnectNamedPipe(hNamedPipe: HANDLE, lpOverlapped: LPOVERLAPPED) -> BOOL;
}
extern "C" {
    pub fn DisconnectNamedPipe(hNamedPipe: HANDLE) -> BOOL;
}
extern "C" {
    pub fn SetNamedPipeHandleState(
        hNamedPipe: HANDLE,
        lpMode: LPDWORD,
        lpMaxCollectionCount: LPDWORD,
        lpCollectDataTimeout: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn PeekNamedPipe(
        hNamedPipe: HANDLE,
        lpBuffer: LPVOID,
        nBufferSize: DWORD,
        lpBytesRead: LPDWORD,
        lpTotalBytesAvail: LPDWORD,
        lpBytesLeftThisMessage: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn TransactNamedPipe(
        hNamedPipe: HANDLE,
        lpInBuffer: LPVOID,
        nInBufferSize: DWORD,
        lpOutBuffer: LPVOID,
        nOutBufferSize: DWORD,
        lpBytesRead: LPDWORD,
        lpOverlapped: LPOVERLAPPED,
    ) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn GetNamedPipeClientComputerNameW(
        Pipe: HANDLE,
        ClientComputerName: LPWSTR,
        ClientComputerNameLength: ULONG,
    ) -> BOOL;
}
extern "C" {
    pub fn ImpersonateNamedPipeClient(hNamedPipe: HANDLE) -> BOOL;
}
extern "C" {
    pub fn GetNamedPipeInfo(
        hNamedPipe: HANDLE,
        lpFlags: LPDWORD,
        lpOutBufferSize: LPDWORD,
        lpInBufferSize: LPDWORD,
        lpMaxInstances: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetNamedPipeHandleStateW(
        hNamedPipe: HANDLE,
        lpState: LPDWORD,
        lpCurInstances: LPDWORD,
        lpMaxCollectionCount: LPDWORD,
        lpCollectDataTimeout: LPDWORD,
        lpUserName: LPWSTR,
        nMaxUserNameSize: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CallNamedPipeW(
        lpNamedPipeName: LPCWSTR,
        lpInBuffer: LPVOID,
        nInBufferSize: DWORD,
        lpOutBuffer: LPVOID,
        nOutBufferSize: DWORD,
        lpBytesRead: LPDWORD,
        nTimeOut: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn QueryPerformanceCounter(lpPerformanceCount: *mut LARGE_INTEGER) -> BOOL;
}
extern "C" {
    pub fn QueryPerformanceFrequency(lpFrequency: *mut LARGE_INTEGER) -> BOOL;
}
#[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,
}
#[test]
fn bindgen_test_layout__HEAP_SUMMARY() {
    assert_eq!(
        ::std::mem::size_of::<_HEAP_SUMMARY>(),
        40usize,
        concat!("Size of: ", stringify!(_HEAP_SUMMARY))
    );
    assert_eq!(
        ::std::mem::align_of::<_HEAP_SUMMARY>(),
        8usize,
        concat!("Alignment of ", stringify!(_HEAP_SUMMARY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_HEAP_SUMMARY>())).cb as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_HEAP_SUMMARY),
            "::",
            stringify!(cb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_HEAP_SUMMARY>())).cbAllocated as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_HEAP_SUMMARY),
            "::",
            stringify!(cbAllocated)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_HEAP_SUMMARY>())).cbCommitted as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_HEAP_SUMMARY),
            "::",
            stringify!(cbCommitted)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_HEAP_SUMMARY>())).cbReserved as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_HEAP_SUMMARY),
            "::",
            stringify!(cbReserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_HEAP_SUMMARY>())).cbMaxReserve as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_HEAP_SUMMARY),
            "::",
            stringify!(cbMaxReserve)
        )
    );
}
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) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn HeapSize(hHeap: HANDLE, dwFlags: DWORD, lpMem: LPCVOID) -> SIZE_T;
}
extern "C" {
    pub fn GetProcessHeap() -> HANDLE;
}
extern "C" {
    pub fn HeapCompact(hHeap: HANDLE, dwFlags: DWORD) -> SIZE_T;
}
extern "C" {
    pub fn HeapSetInformation(
        HeapHandle: HANDLE,
        HeapInformationClass: HEAP_INFORMATION_CLASS,
        HeapInformation: PVOID,
        HeapInformationLength: SIZE_T,
    ) -> BOOL;
}
extern "C" {
    pub fn HeapValidate(hHeap: HANDLE, dwFlags: DWORD, lpMem: LPCVOID) -> BOOL;
}
extern "C" {
    pub fn HeapSummary(hHeap: HANDLE, dwFlags: DWORD, lpSummary: LPHEAP_SUMMARY) -> BOOL;
}
extern "C" {
    pub fn GetProcessHeaps(NumberOfHeaps: DWORD, ProcessHeaps: PHANDLE) -> DWORD;
}
extern "C" {
    pub fn HeapLock(hHeap: HANDLE) -> BOOL;
}
extern "C" {
    pub fn HeapUnlock(hHeap: HANDLE) -> BOOL;
}
extern "C" {
    pub fn HeapWalk(hHeap: HANDLE, lpEntry: LPPROCESS_HEAP_ENTRY) -> BOOL;
}
extern "C" {
    pub fn HeapQueryInformation(
        HeapHandle: HANDLE,
        HeapInformationClass: HEAP_INFORMATION_CLASS,
        HeapInformation: PVOID,
        HeapInformationLength: SIZE_T,
        ReturnLength: PSIZE_T,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn GetQueuedCompletionStatusEx(
        CompletionPort: HANDLE,
        lpCompletionPortEntries: LPOVERLAPPED_ENTRY,
        ulCount: ULONG,
        ulNumEntriesRemoved: PULONG,
        dwMilliseconds: DWORD,
        fAlertable: BOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn PostQueuedCompletionStatus(
        CompletionPort: HANDLE,
        dwNumberOfBytesTransferred: DWORD,
        dwCompletionKey: ULONG_PTR,
        lpOverlapped: LPOVERLAPPED,
    ) -> BOOL;
}
extern "C" {
    pub fn DeviceIoControl(
        hDevice: HANDLE,
        dwIoControlCode: DWORD,
        lpInBuffer: LPVOID,
        nInBufferSize: DWORD,
        lpOutBuffer: LPVOID,
        nOutBufferSize: DWORD,
        lpBytesReturned: LPDWORD,
        lpOverlapped: LPOVERLAPPED,
    ) -> BOOL;
}
extern "C" {
    pub fn GetOverlappedResult(
        hFile: HANDLE,
        lpOverlapped: LPOVERLAPPED,
        lpNumberOfBytesTransferred: LPDWORD,
        bWait: BOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn CancelIoEx(hFile: HANDLE, lpOverlapped: LPOVERLAPPED) -> BOOL;
}
extern "C" {
    pub fn CancelIo(hFile: HANDLE) -> BOOL;
}
extern "C" {
    pub fn GetOverlappedResultEx(
        hFile: HANDLE,
        lpOverlapped: LPOVERLAPPED,
        lpNumberOfBytesTransferred: LPDWORD,
        dwMilliseconds: DWORD,
        bAlertable: BOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn CancelSynchronousIo(hThread: HANDLE) -> BOOL;
}
pub type SRWLOCK = RTL_SRWLOCK;
pub type PSRWLOCK = *mut RTL_SRWLOCK;
extern "C" {
    pub fn InitializeSRWLock(SRWLock: PSRWLOCK);
}
extern "C" {
    pub fn ReleaseSRWLockExclusive(SRWLock: PSRWLOCK);
}
extern "C" {
    pub fn ReleaseSRWLockShared(SRWLock: PSRWLOCK);
}
extern "C" {
    pub fn AcquireSRWLockExclusive(SRWLock: PSRWLOCK);
}
extern "C" {
    pub fn AcquireSRWLockShared(SRWLock: PSRWLOCK);
}
extern "C" {
    pub fn TryAcquireSRWLockExclusive(SRWLock: PSRWLOCK) -> BOOLEAN;
}
extern "C" {
    pub fn TryAcquireSRWLockShared(SRWLock: PSRWLOCK) -> BOOLEAN;
}
extern "C" {
    pub fn InitializeCriticalSection(lpCriticalSection: LPCRITICAL_SECTION);
}
extern "C" {
    pub fn EnterCriticalSection(lpCriticalSection: LPCRITICAL_SECTION);
}
extern "C" {
    pub fn LeaveCriticalSection(lpCriticalSection: LPCRITICAL_SECTION);
}
extern "C" {
    pub fn InitializeCriticalSectionAndSpinCount(
        lpCriticalSection: LPCRITICAL_SECTION,
        dwSpinCount: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn InitializeCriticalSectionEx(
        lpCriticalSection: LPCRITICAL_SECTION,
        dwSpinCount: DWORD,
        Flags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn SetCriticalSectionSpinCount(
        lpCriticalSection: LPCRITICAL_SECTION,
        dwSpinCount: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn TryEnterCriticalSection(lpCriticalSection: LPCRITICAL_SECTION) -> BOOL;
}
extern "C" {
    pub fn DeleteCriticalSection(lpCriticalSection: LPCRITICAL_SECTION);
}
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) -> BOOL,
>;
extern "C" {
    pub fn InitOnceInitialize(InitOnce: PINIT_ONCE);
}
extern "C" {
    pub fn InitOnceExecuteOnce(
        InitOnce: PINIT_ONCE,
        InitFn: PINIT_ONCE_FN,
        Parameter: PVOID,
        Context: *mut LPVOID,
    ) -> BOOL;
}
extern "C" {
    pub fn InitOnceBeginInitialize(
        lpInitOnce: LPINIT_ONCE,
        dwFlags: DWORD,
        fPending: PBOOL,
        lpContext: *mut LPVOID,
    ) -> BOOL;
}
extern "C" {
    pub fn InitOnceComplete(lpInitOnce: LPINIT_ONCE, dwFlags: DWORD, lpContext: LPVOID) -> BOOL;
}
pub type CONDITION_VARIABLE = RTL_CONDITION_VARIABLE;
pub type PCONDITION_VARIABLE = *mut RTL_CONDITION_VARIABLE;
extern "C" {
    pub fn InitializeConditionVariable(ConditionVariable: PCONDITION_VARIABLE);
}
extern "C" {
    pub fn WakeConditionVariable(ConditionVariable: PCONDITION_VARIABLE);
}
extern "C" {
    pub fn WakeAllConditionVariable(ConditionVariable: PCONDITION_VARIABLE);
}
extern "C" {
    pub fn SleepConditionVariableCS(
        ConditionVariable: PCONDITION_VARIABLE,
        CriticalSection: PCRITICAL_SECTION,
        dwMilliseconds: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn SleepConditionVariableSRW(
        ConditionVariable: PCONDITION_VARIABLE,
        SRWLock: PSRWLOCK,
        dwMilliseconds: DWORD,
        Flags: ULONG,
    ) -> BOOL;
}
extern "C" {
    pub fn SetEvent(hEvent: HANDLE) -> BOOL;
}
extern "C" {
    pub fn ResetEvent(hEvent: HANDLE) -> BOOL;
}
extern "C" {
    pub fn ReleaseSemaphore(
        hSemaphore: HANDLE,
        lReleaseCount: LONG,
        lpPreviousCount: LPLONG,
    ) -> BOOL;
}
extern "C" {
    pub fn ReleaseMutex(hMutex: HANDLE) -> BOOL;
}
extern "C" {
    pub fn WaitForSingleObject(hHandle: HANDLE, dwMilliseconds: DWORD) -> DWORD;
}
extern "C" {
    pub fn SleepEx(dwMilliseconds: DWORD, bAlertable: BOOL) -> DWORD;
}
extern "C" {
    pub fn WaitForSingleObjectEx(hHandle: HANDLE, dwMilliseconds: DWORD, bAlertable: BOOL)
        -> DWORD;
}
extern "C" {
    pub fn WaitForMultipleObjectsEx(
        nCount: DWORD,
        lpHandles: *const HANDLE,
        bWaitAll: BOOL,
        dwMilliseconds: DWORD,
        bAlertable: BOOL,
    ) -> DWORD;
}
extern "C" {
    pub fn CreateMutexA(
        lpMutexAttributes: LPSECURITY_ATTRIBUTES,
        bInitialOwner: BOOL,
        lpName: LPCSTR,
    ) -> HANDLE;
}
extern "C" {
    pub fn CreateMutexW(
        lpMutexAttributes: LPSECURITY_ATTRIBUTES,
        bInitialOwner: BOOL,
        lpName: LPCWSTR,
    ) -> HANDLE;
}
extern "C" {
    pub fn OpenMutexW(dwDesiredAccess: DWORD, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE;
}
extern "C" {
    pub fn CreateEventA(
        lpEventAttributes: LPSECURITY_ATTRIBUTES,
        bManualReset: BOOL,
        bInitialState: BOOL,
        lpName: LPCSTR,
    ) -> HANDLE;
}
extern "C" {
    pub fn CreateEventW(
        lpEventAttributes: LPSECURITY_ATTRIBUTES,
        bManualReset: BOOL,
        bInitialState: BOOL,
        lpName: LPCWSTR,
    ) -> HANDLE;
}
extern "C" {
    pub fn OpenEventA(dwDesiredAccess: DWORD, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE;
}
extern "C" {
    pub fn OpenEventW(dwDesiredAccess: DWORD, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE;
}
extern "C" {
    pub fn OpenSemaphoreW(dwDesiredAccess: DWORD, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE;
}
pub type PTIMERAPCROUTINE = ::std::option::Option<
    unsafe extern "C" fn(
        lpArgToCompletionRoutine: LPVOID,
        dwTimerLowValue: DWORD,
        dwTimerHighValue: DWORD,
    ),
>;
extern "C" {
    pub fn OpenWaitableTimerW(
        dwDesiredAccess: DWORD,
        bInheritHandle: BOOL,
        lpTimerName: LPCWSTR,
    ) -> HANDLE;
}
extern "C" {
    pub fn SetWaitableTimerEx(
        hTimer: HANDLE,
        lpDueTime: *const LARGE_INTEGER,
        lPeriod: LONG,
        pfnCompletionRoutine: PTIMERAPCROUTINE,
        lpArgToCompletionRoutine: LPVOID,
        WakeContext: PREASON_CONTEXT,
        TolerableDelay: ULONG,
    ) -> BOOL;
}
extern "C" {
    pub fn SetWaitableTimer(
        hTimer: HANDLE,
        lpDueTime: *const LARGE_INTEGER,
        lPeriod: LONG,
        pfnCompletionRoutine: PTIMERAPCROUTINE,
        lpArgToCompletionRoutine: LPVOID,
        fResume: BOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn CancelWaitableTimer(hTimer: HANDLE) -> BOOL;
}
extern "C" {
    pub fn CreateMutexExA(
        lpMutexAttributes: LPSECURITY_ATTRIBUTES,
        lpName: LPCSTR,
        dwFlags: DWORD,
        dwDesiredAccess: DWORD,
    ) -> HANDLE;
}
extern "C" {
    pub fn CreateMutexExW(
        lpMutexAttributes: LPSECURITY_ATTRIBUTES,
        lpName: LPCWSTR,
        dwFlags: DWORD,
        dwDesiredAccess: DWORD,
    ) -> HANDLE;
}
extern "C" {
    pub fn CreateEventExA(
        lpEventAttributes: LPSECURITY_ATTRIBUTES,
        lpName: LPCSTR,
        dwFlags: DWORD,
        dwDesiredAccess: DWORD,
    ) -> HANDLE;
}
extern "C" {
    pub fn CreateEventExW(
        lpEventAttributes: LPSECURITY_ATTRIBUTES,
        lpName: LPCWSTR,
        dwFlags: DWORD,
        dwDesiredAccess: DWORD,
    ) -> HANDLE;
}
extern "C" {
    pub fn CreateSemaphoreExW(
        lpSemaphoreAttributes: LPSECURITY_ATTRIBUTES,
        lInitialCount: LONG,
        lMaximumCount: LONG,
        lpName: LPCWSTR,
        dwFlags: DWORD,
        dwDesiredAccess: DWORD,
    ) -> HANDLE;
}
extern "C" {
    pub fn CreateWaitableTimerExW(
        lpTimerAttributes: LPSECURITY_ATTRIBUTES,
        lpTimerName: LPCWSTR,
        dwFlags: DWORD,
        dwDesiredAccess: DWORD,
    ) -> HANDLE;
}
pub type SYNCHRONIZATION_BARRIER = RTL_BARRIER;
pub type PSYNCHRONIZATION_BARRIER = PRTL_BARRIER;
pub type LPSYNCHRONIZATION_BARRIER = PRTL_BARRIER;
extern "C" {
    pub fn EnterSynchronizationBarrier(
        lpBarrier: LPSYNCHRONIZATION_BARRIER,
        dwFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn InitializeSynchronizationBarrier(
        lpBarrier: LPSYNCHRONIZATION_BARRIER,
        lTotalThreads: LONG,
        lSpinCount: LONG,
    ) -> BOOL;
}
extern "C" {
    pub fn DeleteSynchronizationBarrier(lpBarrier: LPSYNCHRONIZATION_BARRIER) -> BOOL;
}
extern "C" {
    pub fn Sleep(dwMilliseconds: DWORD);
}
extern "C" {
    pub fn WaitOnAddress(
        Address: *mut ::std::os::raw::c_void,
        CompareAddress: PVOID,
        AddressSize: SIZE_T,
        dwMilliseconds: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn WakeByAddressSingle(Address: PVOID);
}
extern "C" {
    pub fn WakeByAddressAll(Address: PVOID);
}
extern "C" {
    pub fn SignalObjectAndWait(
        hObjectToSignal: HANDLE,
        hObjectToWaitOn: HANDLE,
        dwMilliseconds: DWORD,
        bAlertable: BOOL,
    ) -> DWORD;
}
extern "C" {
    pub fn WaitForMultipleObjects(
        nCount: DWORD,
        lpHandles: *const HANDLE,
        bWaitAll: BOOL,
        dwMilliseconds: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn CreateSemaphoreW(
        lpSemaphoreAttributes: LPSECURITY_ATTRIBUTES,
        lInitialCount: LONG,
        lMaximumCount: LONG,
        lpName: LPCWSTR,
    ) -> HANDLE;
}
extern "C" {
    pub fn CreateWaitableTimerW(
        lpTimerAttributes: LPSECURITY_ATTRIBUTES,
        bManualReset: BOOL,
        lpTimerName: LPCWSTR,
    ) -> HANDLE;
}
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 InterlockedPushListSListEx(
        ListHead: PSLIST_HEADER,
        List: PSLIST_ENTRY,
        ListEnd: PSLIST_ENTRY,
        Count: ULONG,
    ) -> PSLIST_ENTRY;
}
extern "C" {
    pub fn InterlockedFlushSList(ListHead: PSLIST_HEADER) -> PSLIST_ENTRY;
}
extern "C" {
    pub fn QueryDepthSList(ListHead: PSLIST_HEADER) -> USHORT;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PROCESS_INFORMATION {
    pub hProcess: HANDLE,
    pub hThread: HANDLE,
    pub dwProcessId: DWORD,
    pub dwThreadId: DWORD,
}
#[test]
fn bindgen_test_layout__PROCESS_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_INFORMATION>(),
        24usize,
        concat!("Size of: ", stringify!(_PROCESS_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_INFORMATION>(),
        8usize,
        concat!("Alignment of ", stringify!(_PROCESS_INFORMATION))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROCESS_INFORMATION>())).hProcess as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_INFORMATION),
            "::",
            stringify!(hProcess)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROCESS_INFORMATION>())).hThread as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_INFORMATION),
            "::",
            stringify!(hThread)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESS_INFORMATION>())).dwProcessId as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_INFORMATION),
            "::",
            stringify!(dwProcessId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROCESS_INFORMATION>())).dwThreadId as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_INFORMATION),
            "::",
            stringify!(dwThreadId)
        )
    );
}
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 _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,
}
#[test]
fn bindgen_test_layout__STARTUPINFOA() {
    assert_eq!(
        ::std::mem::size_of::<_STARTUPINFOA>(),
        104usize,
        concat!("Size of: ", stringify!(_STARTUPINFOA))
    );
    assert_eq!(
        ::std::mem::align_of::<_STARTUPINFOA>(),
        8usize,
        concat!("Alignment of ", stringify!(_STARTUPINFOA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOA>())).cb as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOA),
            "::",
            stringify!(cb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOA>())).lpReserved as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOA),
            "::",
            stringify!(lpReserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOA>())).lpDesktop as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOA),
            "::",
            stringify!(lpDesktop)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOA>())).lpTitle as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOA),
            "::",
            stringify!(lpTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOA>())).dwX as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOA),
            "::",
            stringify!(dwX)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOA>())).dwY as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOA),
            "::",
            stringify!(dwY)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOA>())).dwXSize as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOA),
            "::",
            stringify!(dwXSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOA>())).dwYSize as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOA),
            "::",
            stringify!(dwYSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOA>())).dwXCountChars as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOA),
            "::",
            stringify!(dwXCountChars)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOA>())).dwYCountChars as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOA),
            "::",
            stringify!(dwYCountChars)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOA>())).dwFillAttribute as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOA),
            "::",
            stringify!(dwFillAttribute)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOA>())).dwFlags as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOA),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOA>())).wShowWindow as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOA),
            "::",
            stringify!(wShowWindow)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOA>())).cbReserved2 as *const _ as usize },
        66usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOA),
            "::",
            stringify!(cbReserved2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOA>())).lpReserved2 as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOA),
            "::",
            stringify!(lpReserved2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOA>())).hStdInput as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOA),
            "::",
            stringify!(hStdInput)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOA>())).hStdOutput as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOA),
            "::",
            stringify!(hStdOutput)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOA>())).hStdError as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOA),
            "::",
            stringify!(hStdError)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__STARTUPINFOW() {
    assert_eq!(
        ::std::mem::size_of::<_STARTUPINFOW>(),
        104usize,
        concat!("Size of: ", stringify!(_STARTUPINFOW))
    );
    assert_eq!(
        ::std::mem::align_of::<_STARTUPINFOW>(),
        8usize,
        concat!("Alignment of ", stringify!(_STARTUPINFOW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOW>())).cb as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOW),
            "::",
            stringify!(cb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOW>())).lpReserved as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOW),
            "::",
            stringify!(lpReserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOW>())).lpDesktop as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOW),
            "::",
            stringify!(lpDesktop)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOW>())).lpTitle as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOW),
            "::",
            stringify!(lpTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOW>())).dwX as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOW),
            "::",
            stringify!(dwX)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOW>())).dwY as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOW),
            "::",
            stringify!(dwY)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOW>())).dwXSize as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOW),
            "::",
            stringify!(dwXSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOW>())).dwYSize as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOW),
            "::",
            stringify!(dwYSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOW>())).dwXCountChars as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOW),
            "::",
            stringify!(dwXCountChars)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOW>())).dwYCountChars as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOW),
            "::",
            stringify!(dwYCountChars)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOW>())).dwFillAttribute as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOW),
            "::",
            stringify!(dwFillAttribute)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOW>())).dwFlags as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOW),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOW>())).wShowWindow as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOW),
            "::",
            stringify!(wShowWindow)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOW>())).cbReserved2 as *const _ as usize },
        66usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOW),
            "::",
            stringify!(cbReserved2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOW>())).lpReserved2 as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOW),
            "::",
            stringify!(lpReserved2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOW>())).hStdInput as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOW),
            "::",
            stringify!(hStdInput)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOW>())).hStdOutput as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOW),
            "::",
            stringify!(hStdOutput)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOW>())).hStdError as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOW),
            "::",
            stringify!(hStdError)
        )
    );
}
pub type STARTUPINFOW = _STARTUPINFOW;
pub type LPSTARTUPINFOW = *mut _STARTUPINFOW;
pub type STARTUPINFO = STARTUPINFOA;
pub type LPSTARTUPINFO = LPSTARTUPINFOA;
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,
    ) -> BOOL;
}
extern "C" {
    pub fn GetCurrentProcess() -> HANDLE;
}
extern "C" {
    pub fn GetCurrentProcessId() -> DWORD;
}
extern "C" {
    pub fn ExitProcess(uExitCode: UINT);
}
extern "C" {
    pub fn TerminateProcess(hProcess: HANDLE, uExitCode: UINT) -> BOOL;
}
extern "C" {
    pub fn GetExitCodeProcess(hProcess: HANDLE, lpExitCode: LPDWORD) -> BOOL;
}
extern "C" {
    pub fn SwitchToThread() -> BOOL;
}
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 CreateRemoteThread(
        hProcess: HANDLE,
        lpThreadAttributes: LPSECURITY_ATTRIBUTES,
        dwStackSize: SIZE_T,
        lpStartAddress: LPTHREAD_START_ROUTINE,
        lpParameter: LPVOID,
        dwCreationFlags: DWORD,
        lpThreadId: LPDWORD,
    ) -> HANDLE;
}
extern "C" {
    pub fn GetCurrentThread() -> HANDLE;
}
extern "C" {
    pub fn GetCurrentThreadId() -> DWORD;
}
extern "C" {
    pub fn OpenThread(dwDesiredAccess: DWORD, bInheritHandle: BOOL, dwThreadId: DWORD) -> HANDLE;
}
extern "C" {
    pub fn SetThreadPriority(hThread: HANDLE, nPriority: ::std::os::raw::c_int) -> BOOL;
}
extern "C" {
    pub fn SetThreadPriorityBoost(hThread: HANDLE, bDisablePriorityBoost: BOOL) -> BOOL;
}
extern "C" {
    pub fn GetThreadPriorityBoost(hThread: HANDLE, pDisablePriorityBoost: PBOOL) -> BOOL;
}
extern "C" {
    pub fn GetThreadPriority(hThread: HANDLE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ExitThread(dwExitCode: DWORD);
}
extern "C" {
    pub fn TerminateThread(hThread: HANDLE, dwExitCode: DWORD) -> BOOL;
}
extern "C" {
    pub fn GetExitCodeThread(hThread: HANDLE, lpExitCode: LPDWORD) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn TlsFree(dwTlsIndex: DWORD) -> BOOL;
}
extern "C" {
    pub fn CreateProcessA(
        lpApplicationName: LPCSTR,
        lpCommandLine: LPSTR,
        lpProcessAttributes: LPSECURITY_ATTRIBUTES,
        lpThreadAttributes: LPSECURITY_ATTRIBUTES,
        bInheritHandles: BOOL,
        dwCreationFlags: DWORD,
        lpEnvironment: LPVOID,
        lpCurrentDirectory: LPCSTR,
        lpStartupInfo: LPSTARTUPINFOA,
        lpProcessInformation: LPPROCESS_INFORMATION,
    ) -> BOOL;
}
extern "C" {
    pub fn CreateProcessW(
        lpApplicationName: LPCWSTR,
        lpCommandLine: LPWSTR,
        lpProcessAttributes: LPSECURITY_ATTRIBUTES,
        lpThreadAttributes: LPSECURITY_ATTRIBUTES,
        bInheritHandles: BOOL,
        dwCreationFlags: DWORD,
        lpEnvironment: LPVOID,
        lpCurrentDirectory: LPCWSTR,
        lpStartupInfo: LPSTARTUPINFOW,
        lpProcessInformation: LPPROCESS_INFORMATION,
    ) -> BOOL;
}
extern "C" {
    pub fn SetProcessShutdownParameters(dwLevel: DWORD, dwFlags: DWORD) -> BOOL;
}
extern "C" {
    pub fn GetProcessVersion(ProcessId: DWORD) -> DWORD;
}
extern "C" {
    pub fn GetStartupInfoW(lpStartupInfo: LPSTARTUPINFOW);
}
extern "C" {
    pub fn CreateProcessAsUserW(
        hToken: HANDLE,
        lpApplicationName: LPCWSTR,
        lpCommandLine: LPWSTR,
        lpProcessAttributes: LPSECURITY_ATTRIBUTES,
        lpThreadAttributes: LPSECURITY_ATTRIBUTES,
        bInheritHandles: BOOL,
        dwCreationFlags: DWORD,
        lpEnvironment: LPVOID,
        lpCurrentDirectory: LPCWSTR,
        lpStartupInfo: LPSTARTUPINFOW,
        lpProcessInformation: LPPROCESS_INFORMATION,
    ) -> BOOL;
}
extern "C" {
    pub fn SetThreadToken(Thread: PHANDLE, Token: HANDLE) -> BOOL;
}
extern "C" {
    pub fn OpenProcessToken(
        ProcessHandle: HANDLE,
        DesiredAccess: DWORD,
        TokenHandle: PHANDLE,
    ) -> BOOL;
}
extern "C" {
    pub fn OpenThreadToken(
        ThreadHandle: HANDLE,
        DesiredAccess: DWORD,
        OpenAsSelf: BOOL,
        TokenHandle: PHANDLE,
    ) -> BOOL;
}
extern "C" {
    pub fn SetPriorityClass(hProcess: HANDLE, dwPriorityClass: DWORD) -> BOOL;
}
extern "C" {
    pub fn GetPriorityClass(hProcess: HANDLE) -> DWORD;
}
extern "C" {
    pub fn SetThreadStackGuarantee(StackSizeInBytes: PULONG) -> BOOL;
}
extern "C" {
    pub fn ProcessIdToSessionId(dwProcessId: DWORD, pSessionId: *mut DWORD) -> BOOL;
}
#[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;
extern "C" {
    pub fn GetProcessId(Process: HANDLE) -> DWORD;
}
extern "C" {
    pub fn GetThreadId(Thread: HANDLE) -> DWORD;
}
extern "C" {
    pub fn FlushProcessWriteBuffers();
}
extern "C" {
    pub fn GetProcessIdOfThread(Thread: HANDLE) -> DWORD;
}
extern "C" {
    pub fn InitializeProcThreadAttributeList(
        lpAttributeList: LPPROC_THREAD_ATTRIBUTE_LIST,
        dwAttributeCount: DWORD,
        dwFlags: DWORD,
        lpSize: PSIZE_T,
    ) -> BOOL;
}
extern "C" {
    pub fn DeleteProcThreadAttributeList(lpAttributeList: LPPROC_THREAD_ATTRIBUTE_LIST);
}
extern "C" {
    pub fn SetProcessAffinityUpdateMode(hProcess: HANDLE, dwFlags: DWORD) -> BOOL;
}
extern "C" {
    pub fn QueryProcessAffinityUpdateMode(hProcess: HANDLE, lpdwFlags: LPDWORD) -> BOOL;
}
extern "C" {
    pub fn UpdateProcThreadAttribute(
        lpAttributeList: LPPROC_THREAD_ATTRIBUTE_LIST,
        dwFlags: DWORD,
        Attribute: DWORD_PTR,
        lpValue: PVOID,
        cbSize: SIZE_T,
        lpPreviousValue: PVOID,
        lpReturnSize: PSIZE_T,
    ) -> BOOL;
}
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 GetCurrentThreadStackLimits(LowLimit: PULONG_PTR, HighLimit: PULONG_PTR);
}
extern "C" {
    pub fn GetThreadContext(hThread: HANDLE, lpContext: LPCONTEXT) -> BOOL;
}
extern "C" {
    pub fn GetProcessMitigationPolicy(
        hProcess: HANDLE,
        MitigationPolicy: PROCESS_MITIGATION_POLICY,
        lpBuffer: PVOID,
        dwLength: SIZE_T,
    ) -> BOOL;
}
extern "C" {
    pub fn SetThreadContext(hThread: HANDLE, lpContext: *const CONTEXT) -> BOOL;
}
extern "C" {
    pub fn SetProcessMitigationPolicy(
        MitigationPolicy: PROCESS_MITIGATION_POLICY,
        lpBuffer: PVOID,
        dwLength: SIZE_T,
    ) -> BOOL;
}
extern "C" {
    pub fn FlushInstructionCache(hProcess: HANDLE, lpBaseAddress: LPCVOID, dwSize: SIZE_T) -> BOOL;
}
extern "C" {
    pub fn GetThreadTimes(
        hThread: HANDLE,
        lpCreationTime: LPFILETIME,
        lpExitTime: LPFILETIME,
        lpKernelTime: LPFILETIME,
        lpUserTime: LPFILETIME,
    ) -> BOOL;
}
extern "C" {
    pub fn OpenProcess(dwDesiredAccess: DWORD, bInheritHandle: BOOL, dwProcessId: DWORD) -> HANDLE;
}
extern "C" {
    pub fn IsProcessorFeaturePresent(ProcessorFeature: DWORD) -> BOOL;
}
extern "C" {
    pub fn GetProcessHandleCount(hProcess: HANDLE, pdwHandleCount: PDWORD) -> BOOL;
}
extern "C" {
    pub fn GetCurrentProcessorNumber() -> DWORD;
}
extern "C" {
    pub fn SetThreadIdealProcessorEx(
        hThread: HANDLE,
        lpIdealProcessor: PPROCESSOR_NUMBER,
        lpPreviousIdealProcessor: PPROCESSOR_NUMBER,
    ) -> BOOL;
}
extern "C" {
    pub fn GetThreadIdealProcessorEx(hThread: HANDLE, lpIdealProcessor: PPROCESSOR_NUMBER) -> BOOL;
}
extern "C" {
    pub fn GetCurrentProcessorNumberEx(ProcNumber: PPROCESSOR_NUMBER);
}
extern "C" {
    pub fn GetProcessPriorityBoost(hProcess: HANDLE, pDisablePriorityBoost: PBOOL) -> BOOL;
}
extern "C" {
    pub fn SetProcessPriorityBoost(hProcess: HANDLE, bDisablePriorityBoost: BOOL) -> BOOL;
}
extern "C" {
    pub fn GetThreadIOPendingFlag(hThread: HANDLE, lpIOIsPending: PBOOL) -> BOOL;
}
extern "C" {
    pub fn GetSystemTimes(
        lpIdleTime: PFILETIME,
        lpKernelTime: PFILETIME,
        lpUserTime: PFILETIME,
    ) -> BOOL;
}
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_ThreadDynamicCodePolicy: _THREAD_INFORMATION_CLASS = 2;
pub const _THREAD_INFORMATION_CLASS_ThreadPowerThrottling: _THREAD_INFORMATION_CLASS = 3;
pub const _THREAD_INFORMATION_CLASS_ThreadInformationClassMax: _THREAD_INFORMATION_CLASS = 4;
pub type _THREAD_INFORMATION_CLASS = ::std::os::raw::c_int;
pub use self::_THREAD_INFORMATION_CLASS as THREAD_INFORMATION_CLASS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MEMORY_PRIORITY_INFORMATION {
    pub MemoryPriority: ULONG,
}
#[test]
fn bindgen_test_layout__MEMORY_PRIORITY_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_MEMORY_PRIORITY_INFORMATION>(),
        4usize,
        concat!("Size of: ", stringify!(_MEMORY_PRIORITY_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_MEMORY_PRIORITY_INFORMATION>(),
        4usize,
        concat!("Alignment of ", stringify!(_MEMORY_PRIORITY_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MEMORY_PRIORITY_INFORMATION>())).MemoryPriority as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORY_PRIORITY_INFORMATION),
            "::",
            stringify!(MemoryPriority)
        )
    );
}
pub type MEMORY_PRIORITY_INFORMATION = _MEMORY_PRIORITY_INFORMATION;
pub type PMEMORY_PRIORITY_INFORMATION = *mut _MEMORY_PRIORITY_INFORMATION;
extern "C" {
    pub fn GetThreadInformation(
        hThread: HANDLE,
        ThreadInformationClass: THREAD_INFORMATION_CLASS,
        ThreadInformation: LPVOID,
        ThreadInformationSize: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn SetThreadInformation(
        hThread: HANDLE,
        ThreadInformationClass: THREAD_INFORMATION_CLASS,
        ThreadInformation: LPVOID,
        ThreadInformationSize: DWORD,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _THREAD_POWER_THROTTLING_STATE {
    pub Version: ULONG,
    pub ControlMask: ULONG,
    pub StateMask: ULONG,
}
#[test]
fn bindgen_test_layout__THREAD_POWER_THROTTLING_STATE() {
    assert_eq!(
        ::std::mem::size_of::<_THREAD_POWER_THROTTLING_STATE>(),
        12usize,
        concat!("Size of: ", stringify!(_THREAD_POWER_THROTTLING_STATE))
    );
    assert_eq!(
        ::std::mem::align_of::<_THREAD_POWER_THROTTLING_STATE>(),
        4usize,
        concat!("Alignment of ", stringify!(_THREAD_POWER_THROTTLING_STATE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_THREAD_POWER_THROTTLING_STATE>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_THREAD_POWER_THROTTLING_STATE),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_THREAD_POWER_THROTTLING_STATE>())).ControlMask as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_THREAD_POWER_THROTTLING_STATE),
            "::",
            stringify!(ControlMask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_THREAD_POWER_THROTTLING_STATE>())).StateMask as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_THREAD_POWER_THROTTLING_STATE),
            "::",
            stringify!(StateMask)
        )
    );
}
pub type THREAD_POWER_THROTTLING_STATE = _THREAD_POWER_THROTTLING_STATE;
extern "C" {
    pub fn IsProcessCritical(hProcess: HANDLE, Critical: PBOOL) -> BOOL;
}
extern "C" {
    pub fn SetProtectedPolicy(
        PolicyGuid: LPCGUID,
        PolicyValue: ULONG_PTR,
        OldPolicyValue: PULONG_PTR,
    ) -> BOOL;
}
extern "C" {
    pub fn QueryProtectedPolicy(PolicyGuid: LPCGUID, PolicyValue: PULONG_PTR) -> BOOL;
}
extern "C" {
    pub fn SetThreadIdealProcessor(hThread: HANDLE, dwIdealProcessor: DWORD) -> DWORD;
}
pub const _PROCESS_INFORMATION_CLASS_ProcessMemoryPriority: _PROCESS_INFORMATION_CLASS = 0;
pub const _PROCESS_INFORMATION_CLASS_ProcessMemoryExhaustionInfo: _PROCESS_INFORMATION_CLASS = 1;
pub const _PROCESS_INFORMATION_CLASS_ProcessAppMemoryInfo: _PROCESS_INFORMATION_CLASS = 2;
pub const _PROCESS_INFORMATION_CLASS_ProcessInPrivateInfo: _PROCESS_INFORMATION_CLASS = 3;
pub const _PROCESS_INFORMATION_CLASS_ProcessPowerThrottling: _PROCESS_INFORMATION_CLASS = 4;
pub const _PROCESS_INFORMATION_CLASS_ProcessReservedValue1: _PROCESS_INFORMATION_CLASS = 5;
pub const _PROCESS_INFORMATION_CLASS_ProcessTelemetryCoverageInfo: _PROCESS_INFORMATION_CLASS = 6;
pub const _PROCESS_INFORMATION_CLASS_ProcessProtectionLevelInfo: _PROCESS_INFORMATION_CLASS = 7;
pub const _PROCESS_INFORMATION_CLASS_ProcessLeapSecondInfo: _PROCESS_INFORMATION_CLASS = 8;
pub const _PROCESS_INFORMATION_CLASS_ProcessInformationClassMax: _PROCESS_INFORMATION_CLASS = 9;
pub type _PROCESS_INFORMATION_CLASS = ::std::os::raw::c_int;
pub use self::_PROCESS_INFORMATION_CLASS as PROCESS_INFORMATION_CLASS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _APP_MEMORY_INFORMATION {
    pub AvailableCommit: ULONG64,
    pub PrivateCommitUsage: ULONG64,
    pub PeakPrivateCommitUsage: ULONG64,
    pub TotalCommitUsage: ULONG64,
}
#[test]
fn bindgen_test_layout__APP_MEMORY_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_APP_MEMORY_INFORMATION>(),
        32usize,
        concat!("Size of: ", stringify!(_APP_MEMORY_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_APP_MEMORY_INFORMATION>(),
        8usize,
        concat!("Alignment of ", stringify!(_APP_MEMORY_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_APP_MEMORY_INFORMATION>())).AvailableCommit as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_APP_MEMORY_INFORMATION),
            "::",
            stringify!(AvailableCommit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_APP_MEMORY_INFORMATION>())).PrivateCommitUsage as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_APP_MEMORY_INFORMATION),
            "::",
            stringify!(PrivateCommitUsage)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_APP_MEMORY_INFORMATION>())).PeakPrivateCommitUsage as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_APP_MEMORY_INFORMATION),
            "::",
            stringify!(PeakPrivateCommitUsage)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_APP_MEMORY_INFORMATION>())).TotalCommitUsage as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_APP_MEMORY_INFORMATION),
            "::",
            stringify!(TotalCommitUsage)
        )
    );
}
pub type APP_MEMORY_INFORMATION = _APP_MEMORY_INFORMATION;
pub type PAPP_MEMORY_INFORMATION = *mut _APP_MEMORY_INFORMATION;
pub const _PROCESS_MEMORY_EXHAUSTION_TYPE_PMETypeFailFastOnCommitFailure:
    _PROCESS_MEMORY_EXHAUSTION_TYPE = 0;
pub const _PROCESS_MEMORY_EXHAUSTION_TYPE_PMETypeMax: _PROCESS_MEMORY_EXHAUSTION_TYPE = 1;
pub type _PROCESS_MEMORY_EXHAUSTION_TYPE = ::std::os::raw::c_int;
pub use self::_PROCESS_MEMORY_EXHAUSTION_TYPE as PROCESS_MEMORY_EXHAUSTION_TYPE;
pub type PPROCESS_MEMORY_EXHAUSTION_TYPE = *mut _PROCESS_MEMORY_EXHAUSTION_TYPE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PROCESS_MEMORY_EXHAUSTION_INFO {
    pub Version: USHORT,
    pub Reserved: USHORT,
    pub Type: PROCESS_MEMORY_EXHAUSTION_TYPE,
    pub Value: ULONG_PTR,
}
#[test]
fn bindgen_test_layout__PROCESS_MEMORY_EXHAUSTION_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_MEMORY_EXHAUSTION_INFO>(),
        16usize,
        concat!("Size of: ", stringify!(_PROCESS_MEMORY_EXHAUSTION_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_MEMORY_EXHAUSTION_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_PROCESS_MEMORY_EXHAUSTION_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESS_MEMORY_EXHAUSTION_INFO>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_MEMORY_EXHAUSTION_INFO),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESS_MEMORY_EXHAUSTION_INFO>())).Reserved as *const _
                as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_MEMORY_EXHAUSTION_INFO),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESS_MEMORY_EXHAUSTION_INFO>())).Type as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_MEMORY_EXHAUSTION_INFO),
            "::",
            stringify!(Type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESS_MEMORY_EXHAUSTION_INFO>())).Value as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_MEMORY_EXHAUSTION_INFO),
            "::",
            stringify!(Value)
        )
    );
}
pub type PROCESS_MEMORY_EXHAUSTION_INFO = _PROCESS_MEMORY_EXHAUSTION_INFO;
pub type PPROCESS_MEMORY_EXHAUSTION_INFO = *mut _PROCESS_MEMORY_EXHAUSTION_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PROCESS_POWER_THROTTLING_STATE {
    pub Version: ULONG,
    pub ControlMask: ULONG,
    pub StateMask: ULONG,
}
#[test]
fn bindgen_test_layout__PROCESS_POWER_THROTTLING_STATE() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_POWER_THROTTLING_STATE>(),
        12usize,
        concat!("Size of: ", stringify!(_PROCESS_POWER_THROTTLING_STATE))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_POWER_THROTTLING_STATE>(),
        4usize,
        concat!("Alignment of ", stringify!(_PROCESS_POWER_THROTTLING_STATE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESS_POWER_THROTTLING_STATE>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_POWER_THROTTLING_STATE),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESS_POWER_THROTTLING_STATE>())).ControlMask as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_POWER_THROTTLING_STATE),
            "::",
            stringify!(ControlMask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESS_POWER_THROTTLING_STATE>())).StateMask as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_POWER_THROTTLING_STATE),
            "::",
            stringify!(StateMask)
        )
    );
}
pub type PROCESS_POWER_THROTTLING_STATE = _PROCESS_POWER_THROTTLING_STATE;
pub type PPROCESS_POWER_THROTTLING_STATE = *mut _PROCESS_POWER_THROTTLING_STATE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PROCESS_PROTECTION_LEVEL_INFORMATION {
    pub ProtectionLevel: DWORD,
}
#[test]
fn bindgen_test_layout_PROCESS_PROTECTION_LEVEL_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<PROCESS_PROTECTION_LEVEL_INFORMATION>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(PROCESS_PROTECTION_LEVEL_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<PROCESS_PROTECTION_LEVEL_INFORMATION>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(PROCESS_PROTECTION_LEVEL_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PROCESS_PROTECTION_LEVEL_INFORMATION>())).ProtectionLevel
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PROCESS_PROTECTION_LEVEL_INFORMATION),
            "::",
            stringify!(ProtectionLevel)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PROCESS_LEAP_SECOND_INFO {
    pub Flags: ULONG,
    pub Reserved: ULONG,
}
#[test]
fn bindgen_test_layout__PROCESS_LEAP_SECOND_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_PROCESS_LEAP_SECOND_INFO>(),
        8usize,
        concat!("Size of: ", stringify!(_PROCESS_LEAP_SECOND_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROCESS_LEAP_SECOND_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_PROCESS_LEAP_SECOND_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROCESS_LEAP_SECOND_INFO>())).Flags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_LEAP_SECOND_INFO),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROCESS_LEAP_SECOND_INFO>())).Reserved as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROCESS_LEAP_SECOND_INFO),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type PROCESS_LEAP_SECOND_INFO = _PROCESS_LEAP_SECOND_INFO;
pub type PPROCESS_LEAP_SECOND_INFO = *mut _PROCESS_LEAP_SECOND_INFO;
extern "C" {
    pub fn SetProcessInformation(
        hProcess: HANDLE,
        ProcessInformationClass: PROCESS_INFORMATION_CLASS,
        ProcessInformation: LPVOID,
        ProcessInformationSize: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetProcessInformation(
        hProcess: HANDLE,
        ProcessInformationClass: PROCESS_INFORMATION_CLASS,
        ProcessInformation: LPVOID,
        ProcessInformationSize: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetSystemCpuSetInformation(
        Information: PSYSTEM_CPU_SET_INFORMATION,
        BufferLength: ULONG,
        ReturnedLength: PULONG,
        Process: HANDLE,
        Flags: ULONG,
    ) -> BOOL;
}
extern "C" {
    pub fn GetProcessDefaultCpuSets(
        Process: HANDLE,
        CpuSetIds: PULONG,
        CpuSetIdCount: ULONG,
        RequiredIdCount: PULONG,
    ) -> BOOL;
}
extern "C" {
    pub fn SetProcessDefaultCpuSets(
        Process: HANDLE,
        CpuSetIds: *const ULONG,
        CpuSetIdCount: ULONG,
    ) -> BOOL;
}
extern "C" {
    pub fn GetThreadSelectedCpuSets(
        Thread: HANDLE,
        CpuSetIds: PULONG,
        CpuSetIdCount: ULONG,
        RequiredIdCount: PULONG,
    ) -> BOOL;
}
extern "C" {
    pub fn SetThreadSelectedCpuSets(
        Thread: HANDLE,
        CpuSetIds: *const ULONG,
        CpuSetIdCount: ULONG,
    ) -> BOOL;
}
extern "C" {
    pub fn CreateProcessAsUserA(
        hToken: HANDLE,
        lpApplicationName: LPCSTR,
        lpCommandLine: LPSTR,
        lpProcessAttributes: LPSECURITY_ATTRIBUTES,
        lpThreadAttributes: LPSECURITY_ATTRIBUTES,
        bInheritHandles: BOOL,
        dwCreationFlags: DWORD,
        lpEnvironment: LPVOID,
        lpCurrentDirectory: LPCSTR,
        lpStartupInfo: LPSTARTUPINFOA,
        lpProcessInformation: LPPROCESS_INFORMATION,
    ) -> BOOL;
}
extern "C" {
    pub fn GetProcessShutdownParameters(lpdwLevel: LPDWORD, lpdwFlags: LPDWORD) -> BOOL;
}
extern "C" {
    pub fn SetThreadDescription(hThread: HANDLE, lpThreadDescription: PCWSTR) -> HRESULT;
}
extern "C" {
    pub fn GetThreadDescription(hThread: HANDLE, ppszThreadDescription: *mut PWSTR) -> HRESULT;
}
#[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,
}
#[test]
fn bindgen_test_layout__SYSTEM_INFO__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_SYSTEM_INFO__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_SYSTEM_INFO__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_SYSTEM_INFO__bindgen_ty_1__bindgen_ty_1>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(_SYSTEM_INFO__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_INFO__bindgen_ty_1__bindgen_ty_1>()))
                .wProcessorArchitecture as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_INFO__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(wProcessorArchitecture)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_INFO__bindgen_ty_1__bindgen_ty_1>())).wReserved
                as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_INFO__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(wReserved)
        )
    );
}
#[test]
fn bindgen_test_layout__SYSTEM_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_SYSTEM_INFO__bindgen_ty_1>(),
        4usize,
        concat!("Size of: ", stringify!(_SYSTEM_INFO__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_SYSTEM_INFO__bindgen_ty_1>(),
        4usize,
        concat!("Alignment of ", stringify!(_SYSTEM_INFO__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_INFO__bindgen_ty_1>())).dwOemId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_INFO__bindgen_ty_1),
            "::",
            stringify!(dwOemId)
        )
    );
}
#[test]
fn bindgen_test_layout__SYSTEM_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_SYSTEM_INFO>(),
        48usize,
        concat!("Size of: ", stringify!(_SYSTEM_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_SYSTEM_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_SYSTEM_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEM_INFO>())).dwPageSize as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_INFO),
            "::",
            stringify!(dwPageSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_INFO>())).lpMinimumApplicationAddress as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_INFO),
            "::",
            stringify!(lpMinimumApplicationAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_INFO>())).lpMaximumApplicationAddress as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_INFO),
            "::",
            stringify!(lpMaximumApplicationAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_INFO>())).dwActiveProcessorMask as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_INFO),
            "::",
            stringify!(dwActiveProcessorMask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_INFO>())).dwNumberOfProcessors as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_INFO),
            "::",
            stringify!(dwNumberOfProcessors)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEM_INFO>())).dwProcessorType as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_INFO),
            "::",
            stringify!(dwProcessorType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_INFO>())).dwAllocationGranularity as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_INFO),
            "::",
            stringify!(dwAllocationGranularity)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEM_INFO>())).wProcessorLevel as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_INFO),
            "::",
            stringify!(wProcessorLevel)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SYSTEM_INFO>())).wProcessorRevision as *const _ as usize },
        46usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_INFO),
            "::",
            stringify!(wProcessorRevision)
        )
    );
}
pub type SYSTEM_INFO = _SYSTEM_INFO;
pub type LPSYSTEM_INFO = *mut _SYSTEM_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,
}
#[test]
fn bindgen_test_layout__MEMORYSTATUSEX() {
    assert_eq!(
        ::std::mem::size_of::<_MEMORYSTATUSEX>(),
        64usize,
        concat!("Size of: ", stringify!(_MEMORYSTATUSEX))
    );
    assert_eq!(
        ::std::mem::align_of::<_MEMORYSTATUSEX>(),
        8usize,
        concat!("Alignment of ", stringify!(_MEMORYSTATUSEX))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MEMORYSTATUSEX>())).dwLength as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORYSTATUSEX),
            "::",
            stringify!(dwLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MEMORYSTATUSEX>())).dwMemoryLoad as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORYSTATUSEX),
            "::",
            stringify!(dwMemoryLoad)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MEMORYSTATUSEX>())).ullTotalPhys as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORYSTATUSEX),
            "::",
            stringify!(ullTotalPhys)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MEMORYSTATUSEX>())).ullAvailPhys as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORYSTATUSEX),
            "::",
            stringify!(ullAvailPhys)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MEMORYSTATUSEX>())).ullTotalPageFile as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORYSTATUSEX),
            "::",
            stringify!(ullTotalPageFile)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MEMORYSTATUSEX>())).ullAvailPageFile as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORYSTATUSEX),
            "::",
            stringify!(ullAvailPageFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MEMORYSTATUSEX>())).ullTotalVirtual as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORYSTATUSEX),
            "::",
            stringify!(ullTotalVirtual)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MEMORYSTATUSEX>())).ullAvailVirtual as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORYSTATUSEX),
            "::",
            stringify!(ullAvailVirtual)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MEMORYSTATUSEX>())).ullAvailExtendedVirtual as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORYSTATUSEX),
            "::",
            stringify!(ullAvailExtendedVirtual)
        )
    );
}
pub type MEMORYSTATUSEX = _MEMORYSTATUSEX;
pub type LPMEMORYSTATUSEX = *mut _MEMORYSTATUSEX;
extern "C" {
    pub fn GlobalMemoryStatusEx(lpBuffer: LPMEMORYSTATUSEX) -> BOOL;
}
extern "C" {
    pub fn GetSystemInfo(lpSystemInfo: LPSYSTEM_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 GetSystemLeapSecondInformation(Enabled: PBOOL, Flags: PDWORD) -> BOOL;
}
extern "C" {
    pub fn GetVersion() -> DWORD;
}
extern "C" {
    pub fn SetLocalTime(lpSystemTime: *const SYSTEMTIME) -> BOOL;
}
extern "C" {
    pub fn GetTickCount() -> DWORD;
}
extern "C" {
    pub fn GetTickCount64() -> ULONGLONG;
}
extern "C" {
    pub fn GetSystemTimeAdjustment(
        lpTimeAdjustment: PDWORD,
        lpTimeIncrement: PDWORD,
        lpTimeAdjustmentDisabled: PBOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn GetSystemTimeAdjustmentPrecise(
        lpTimeAdjustment: PDWORD64,
        lpTimeIncrement: PDWORD64,
        lpTimeAdjustmentDisabled: PBOOL,
    ) -> BOOL;
}
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;
}
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 = ::std::os::raw::c_int;
pub use self::_COMPUTER_NAME_FORMAT as COMPUTER_NAME_FORMAT;
extern "C" {
    pub fn GetComputerNameExA(
        NameType: COMPUTER_NAME_FORMAT,
        lpBuffer: LPSTR,
        nSize: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetComputerNameExW(
        NameType: COMPUTER_NAME_FORMAT,
        lpBuffer: LPWSTR,
        nSize: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn SetComputerNameExW(NameType: COMPUTER_NAME_FORMAT, lpBuffer: LPCWSTR) -> BOOL;
}
extern "C" {
    pub fn SetSystemTime(lpSystemTime: *const SYSTEMTIME) -> BOOL;
}
extern "C" {
    pub fn GetVersionExA(lpVersionInformation: LPOSVERSIONINFOA) -> BOOL;
}
extern "C" {
    pub fn GetVersionExW(lpVersionInformation: LPOSVERSIONINFOW) -> BOOL;
}
extern "C" {
    pub fn GetLogicalProcessorInformation(
        Buffer: PSYSTEM_LOGICAL_PROCESSOR_INFORMATION,
        ReturnedLength: PDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetLogicalProcessorInformationEx(
        RelationshipType: LOGICAL_PROCESSOR_RELATIONSHIP,
        Buffer: PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX,
        ReturnedLength: PDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetNativeSystemInfo(lpSystemInfo: LPSYSTEM_INFO);
}
extern "C" {
    pub fn GetSystemTimePreciseAsFileTime(lpSystemTimeAsFileTime: LPFILETIME);
}
extern "C" {
    pub fn GetProductInfo(
        dwOSMajorVersion: DWORD,
        dwOSMinorVersion: DWORD,
        dwSpMajorVersion: DWORD,
        dwSpMinorVersion: DWORD,
        pdwReturnedProductType: PDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetOsSafeBootMode(Flags: PDWORD) -> BOOL;
}
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 DnsHostnameToComputerNameExW(
        Hostname: LPCWSTR,
        ComputerName: LPWSTR,
        nSize: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetPhysicallyInstalledSystemMemory(TotalMemoryInKilobytes: PULONGLONG) -> BOOL;
}
extern "C" {
    pub fn SetComputerNameEx2W(
        NameType: COMPUTER_NAME_FORMAT,
        Flags: DWORD,
        lpBuffer: LPCWSTR,
    ) -> BOOL;
}
extern "C" {
    pub fn SetSystemTimeAdjustment(dwTimeAdjustment: DWORD, bTimeAdjustmentDisabled: BOOL) -> BOOL;
}
extern "C" {
    pub fn SetSystemTimeAdjustmentPrecise(
        dwTimeAdjustment: DWORD64,
        bTimeAdjustmentDisabled: BOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn InstallELAMCertificateInfo(ELAMFile: HANDLE) -> BOOL;
}
extern "C" {
    pub fn GetProcessorSystemCycleTime(
        Group: USHORT,
        Buffer: PSYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION,
        ReturnedLength: PDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetOsManufacturingMode(pbEnabled: PBOOL) -> BOOL;
}
extern "C" {
    pub fn GetIntegratedDisplaySize(sizeInInches: *mut f64) -> HRESULT;
}
extern "C" {
    pub fn SetComputerNameA(lpComputerName: LPCSTR) -> BOOL;
}
extern "C" {
    pub fn SetComputerNameW(lpComputerName: LPCWSTR) -> BOOL;
}
extern "C" {
    pub fn SetComputerNameExA(NameType: COMPUTER_NAME_FORMAT, lpBuffer: LPCSTR) -> BOOL;
}
extern "C" {
    pub fn VirtualAlloc(
        lpAddress: LPVOID,
        dwSize: SIZE_T,
        flAllocationType: DWORD,
        flProtect: DWORD,
    ) -> LPVOID;
}
extern "C" {
    pub fn VirtualProtect(
        lpAddress: LPVOID,
        dwSize: SIZE_T,
        flNewProtect: DWORD,
        lpflOldProtect: PDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn VirtualFree(lpAddress: LPVOID, dwSize: SIZE_T, dwFreeType: DWORD) -> BOOL;
}
extern "C" {
    pub fn VirtualQuery(
        lpAddress: LPCVOID,
        lpBuffer: PMEMORY_BASIC_INFORMATION,
        dwLength: SIZE_T,
    ) -> SIZE_T;
}
extern "C" {
    pub fn VirtualAllocEx(
        hProcess: HANDLE,
        lpAddress: LPVOID,
        dwSize: SIZE_T,
        flAllocationType: DWORD,
        flProtect: DWORD,
    ) -> LPVOID;
}
extern "C" {
    pub fn VirtualProtectEx(
        hProcess: HANDLE,
        lpAddress: LPVOID,
        dwSize: SIZE_T,
        flNewProtect: DWORD,
        lpflOldProtect: PDWORD,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn WriteProcessMemory(
        hProcess: HANDLE,
        lpBaseAddress: LPVOID,
        lpBuffer: LPCVOID,
        nSize: SIZE_T,
        lpNumberOfBytesWritten: *mut SIZE_T,
    ) -> BOOL;
}
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: BOOL,
        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 VirtualFreeEx(
        hProcess: HANDLE,
        lpAddress: LPVOID,
        dwSize: SIZE_T,
        dwFreeType: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn FlushViewOfFile(lpBaseAddress: LPCVOID, dwNumberOfBytesToFlush: SIZE_T) -> BOOL;
}
extern "C" {
    pub fn UnmapViewOfFile(lpBaseAddress: LPCVOID) -> BOOL;
}
extern "C" {
    pub fn GetLargePageMinimum() -> SIZE_T;
}
extern "C" {
    pub fn GetProcessWorkingSetSizeEx(
        hProcess: HANDLE,
        lpMinimumWorkingSetSize: PSIZE_T,
        lpMaximumWorkingSetSize: PSIZE_T,
        Flags: PDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn SetProcessWorkingSetSizeEx(
        hProcess: HANDLE,
        dwMinimumWorkingSetSize: SIZE_T,
        dwMaximumWorkingSetSize: SIZE_T,
        Flags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn VirtualLock(lpAddress: LPVOID, dwSize: SIZE_T) -> BOOL;
}
extern "C" {
    pub fn VirtualUnlock(lpAddress: LPVOID, dwSize: SIZE_T) -> BOOL;
}
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;
}
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 = ::std::os::raw::c_int;
pub use self::_MEMORY_RESOURCE_NOTIFICATION_TYPE as MEMORY_RESOURCE_NOTIFICATION_TYPE;
extern "C" {
    pub fn CreateMemoryResourceNotification(
        NotificationType: MEMORY_RESOURCE_NOTIFICATION_TYPE,
    ) -> HANDLE;
}
extern "C" {
    pub fn QueryMemoryResourceNotification(
        ResourceNotificationHandle: HANDLE,
        ResourceState: PBOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn GetSystemFileCacheSize(
        lpMinimumFileCacheSize: PSIZE_T,
        lpMaximumFileCacheSize: PSIZE_T,
        lpFlags: PDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn SetSystemFileCacheSize(
        MinimumFileCacheSize: SIZE_T,
        MaximumFileCacheSize: SIZE_T,
        Flags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CreateFileMappingNumaW(
        hFile: HANDLE,
        lpFileMappingAttributes: LPSECURITY_ATTRIBUTES,
        flProtect: DWORD,
        dwMaximumSizeHigh: DWORD,
        dwMaximumSizeLow: DWORD,
        lpName: LPCWSTR,
        nndPreferred: DWORD,
    ) -> HANDLE;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _WIN32_MEMORY_RANGE_ENTRY {
    pub VirtualAddress: PVOID,
    pub NumberOfBytes: SIZE_T,
}
#[test]
fn bindgen_test_layout__WIN32_MEMORY_RANGE_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_WIN32_MEMORY_RANGE_ENTRY>(),
        16usize,
        concat!("Size of: ", stringify!(_WIN32_MEMORY_RANGE_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_WIN32_MEMORY_RANGE_ENTRY>(),
        8usize,
        concat!("Alignment of ", stringify!(_WIN32_MEMORY_RANGE_ENTRY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIN32_MEMORY_RANGE_ENTRY>())).VirtualAddress as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_MEMORY_RANGE_ENTRY),
            "::",
            stringify!(VirtualAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIN32_MEMORY_RANGE_ENTRY>())).NumberOfBytes as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_MEMORY_RANGE_ENTRY),
            "::",
            stringify!(NumberOfBytes)
        )
    );
}
pub type WIN32_MEMORY_RANGE_ENTRY = _WIN32_MEMORY_RANGE_ENTRY;
pub type PWIN32_MEMORY_RANGE_ENTRY = *mut _WIN32_MEMORY_RANGE_ENTRY;
extern "C" {
    pub fn PrefetchVirtualMemory(
        hProcess: HANDLE,
        NumberOfEntries: ULONG_PTR,
        VirtualAddresses: PWIN32_MEMORY_RANGE_ENTRY,
        Flags: ULONG,
    ) -> BOOL;
}
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 UnmapViewOfFileEx(BaseAddress: PVOID, UnmapFlags: ULONG) -> BOOL;
}
extern "C" {
    pub fn AllocateUserPhysicalPages(
        hProcess: HANDLE,
        NumberOfPages: PULONG_PTR,
        PageArray: PULONG_PTR,
    ) -> BOOL;
}
extern "C" {
    pub fn FreeUserPhysicalPages(
        hProcess: HANDLE,
        NumberOfPages: PULONG_PTR,
        PageArray: PULONG_PTR,
    ) -> BOOL;
}
extern "C" {
    pub fn MapUserPhysicalPages(
        VirtualAddress: PVOID,
        NumberOfPages: ULONG_PTR,
        PageArray: PULONG_PTR,
    ) -> BOOL;
}
extern "C" {
    pub fn AllocateUserPhysicalPagesNuma(
        hProcess: HANDLE,
        NumberOfPages: PULONG_PTR,
        PageArray: PULONG_PTR,
        nndPreferred: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn VirtualAllocExNuma(
        hProcess: HANDLE,
        lpAddress: LPVOID,
        dwSize: SIZE_T,
        flAllocationType: DWORD,
        flProtect: DWORD,
        nndPreferred: DWORD,
    ) -> LPVOID;
}
extern "C" {
    pub fn GetMemoryErrorHandlingCapabilities(Capabilities: PULONG) -> BOOL;
}
pub type PBAD_MEMORY_CALLBACK_ROUTINE = ::std::option::Option<unsafe extern "C" fn()>;
extern "C" {
    pub fn RegisterBadMemoryNotification(Callback: PBAD_MEMORY_CALLBACK_ROUTINE) -> PVOID;
}
extern "C" {
    pub fn UnregisterBadMemoryNotification(RegistrationHandle: PVOID) -> BOOL;
}
pub const OFFER_PRIORITY_VmOfferPriorityVeryLow: OFFER_PRIORITY = 1;
pub const OFFER_PRIORITY_VmOfferPriorityLow: OFFER_PRIORITY = 2;
pub const OFFER_PRIORITY_VmOfferPriorityBelowNormal: OFFER_PRIORITY = 3;
pub const OFFER_PRIORITY_VmOfferPriorityNormal: OFFER_PRIORITY = 4;
pub type OFFER_PRIORITY = ::std::os::raw::c_int;
extern "C" {
    pub fn OfferVirtualMemory(
        VirtualAddress: PVOID,
        Size: SIZE_T,
        Priority: OFFER_PRIORITY,
    ) -> DWORD;
}
extern "C" {
    pub fn ReclaimVirtualMemory(
        VirtualAddress: *const ::std::os::raw::c_void,
        Size: SIZE_T,
    ) -> DWORD;
}
extern "C" {
    pub fn DiscardVirtualMemory(VirtualAddress: PVOID, Size: SIZE_T) -> DWORD;
}
extern "C" {
    pub fn SetProcessValidCallTargets(
        hProcess: HANDLE,
        VirtualAddress: PVOID,
        RegionSize: SIZE_T,
        NumberOfOffsets: ULONG,
        OffsetInformation: PCFG_CALL_TARGET_INFO,
    ) -> BOOL;
}
extern "C" {
    pub fn SetProcessValidCallTargetsForMappedView(
        Process: HANDLE,
        VirtualAddress: PVOID,
        RegionSize: SIZE_T,
        NumberOfOffsets: ULONG,
        OffsetInformation: PCFG_CALL_TARGET_INFO,
        Section: HANDLE,
        ExpectedFileOffset: ULONG64,
    ) -> BOOL;
}
extern "C" {
    pub fn VirtualAllocFromApp(
        BaseAddress: PVOID,
        Size: SIZE_T,
        AllocationType: ULONG,
        Protection: ULONG,
    ) -> PVOID;
}
extern "C" {
    pub fn VirtualProtectFromApp(
        Address: PVOID,
        Size: SIZE_T,
        NewProtection: ULONG,
        OldProtection: PULONG,
    ) -> BOOL;
}
extern "C" {
    pub fn OpenFileMappingFromApp(
        DesiredAccess: ULONG,
        InheritHandle: BOOL,
        Name: PCWSTR,
    ) -> HANDLE;
}
pub const WIN32_MEMORY_INFORMATION_CLASS_MemoryRegionInfo: WIN32_MEMORY_INFORMATION_CLASS = 0;
pub type WIN32_MEMORY_INFORMATION_CLASS = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct WIN32_MEMORY_REGION_INFORMATION {
    pub AllocationBase: PVOID,
    pub AllocationProtect: ULONG,
    pub __bindgen_anon_1: WIN32_MEMORY_REGION_INFORMATION__bindgen_ty_1,
    pub RegionSize: SIZE_T,
    pub CommitSize: SIZE_T,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union WIN32_MEMORY_REGION_INFORMATION__bindgen_ty_1 {
    pub Flags: ULONG,
    pub __bindgen_anon_1: WIN32_MEMORY_REGION_INFORMATION__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct WIN32_MEMORY_REGION_INFORMATION__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
#[test]
fn bindgen_test_layout_WIN32_MEMORY_REGION_INFORMATION__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<WIN32_MEMORY_REGION_INFORMATION__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(WIN32_MEMORY_REGION_INFORMATION__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<WIN32_MEMORY_REGION_INFORMATION__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(WIN32_MEMORY_REGION_INFORMATION__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
impl WIN32_MEMORY_REGION_INFORMATION__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn Private(&self) -> ULONG {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_Private(&mut self, val: ULONG) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn MappedDataFile(&self) -> ULONG {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_MappedDataFile(&mut self, val: ULONG) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn MappedImage(&self) -> ULONG {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_MappedImage(&mut self, val: ULONG) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(2usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn MappedPageFile(&self) -> ULONG {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_MappedPageFile(&mut self, val: ULONG) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(3usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn MappedPhysical(&self) -> ULONG {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_MappedPhysical(&mut self, val: ULONG) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(4usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn DirectMapped(&self) -> ULONG {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_DirectMapped(&mut self, val: ULONG) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(5usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn Reserved(&self) -> ULONG {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 26u8) as u32) }
    }
    #[inline]
    pub fn set_Reserved(&mut self, val: ULONG) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(6usize, 26u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        Private: ULONG,
        MappedDataFile: ULONG,
        MappedImage: ULONG,
        MappedPageFile: ULONG,
        MappedPhysical: ULONG,
        DirectMapped: ULONG,
        Reserved: ULONG,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let Private: u32 = unsafe { ::std::mem::transmute(Private) };
            Private as u64
        });
        __bindgen_bitfield_unit.set(1usize, 1u8, {
            let MappedDataFile: u32 = unsafe { ::std::mem::transmute(MappedDataFile) };
            MappedDataFile as u64
        });
        __bindgen_bitfield_unit.set(2usize, 1u8, {
            let MappedImage: u32 = unsafe { ::std::mem::transmute(MappedImage) };
            MappedImage as u64
        });
        __bindgen_bitfield_unit.set(3usize, 1u8, {
            let MappedPageFile: u32 = unsafe { ::std::mem::transmute(MappedPageFile) };
            MappedPageFile as u64
        });
        __bindgen_bitfield_unit.set(4usize, 1u8, {
            let MappedPhysical: u32 = unsafe { ::std::mem::transmute(MappedPhysical) };
            MappedPhysical as u64
        });
        __bindgen_bitfield_unit.set(5usize, 1u8, {
            let DirectMapped: u32 = unsafe { ::std::mem::transmute(DirectMapped) };
            DirectMapped as u64
        });
        __bindgen_bitfield_unit.set(6usize, 26u8, {
            let Reserved: u32 = unsafe { ::std::mem::transmute(Reserved) };
            Reserved as u64
        });
        __bindgen_bitfield_unit
    }
}
#[test]
fn bindgen_test_layout_WIN32_MEMORY_REGION_INFORMATION__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<WIN32_MEMORY_REGION_INFORMATION__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(WIN32_MEMORY_REGION_INFORMATION__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<WIN32_MEMORY_REGION_INFORMATION__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(WIN32_MEMORY_REGION_INFORMATION__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<WIN32_MEMORY_REGION_INFORMATION__bindgen_ty_1>())).Flags
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(WIN32_MEMORY_REGION_INFORMATION__bindgen_ty_1),
            "::",
            stringify!(Flags)
        )
    );
}
#[test]
fn bindgen_test_layout_WIN32_MEMORY_REGION_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<WIN32_MEMORY_REGION_INFORMATION>(),
        32usize,
        concat!("Size of: ", stringify!(WIN32_MEMORY_REGION_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<WIN32_MEMORY_REGION_INFORMATION>(),
        8usize,
        concat!("Alignment of ", stringify!(WIN32_MEMORY_REGION_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<WIN32_MEMORY_REGION_INFORMATION>())).AllocationBase as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(WIN32_MEMORY_REGION_INFORMATION),
            "::",
            stringify!(AllocationBase)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<WIN32_MEMORY_REGION_INFORMATION>())).AllocationProtect
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(WIN32_MEMORY_REGION_INFORMATION),
            "::",
            stringify!(AllocationProtect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<WIN32_MEMORY_REGION_INFORMATION>())).RegionSize as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(WIN32_MEMORY_REGION_INFORMATION),
            "::",
            stringify!(RegionSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<WIN32_MEMORY_REGION_INFORMATION>())).CommitSize as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(WIN32_MEMORY_REGION_INFORMATION),
            "::",
            stringify!(CommitSize)
        )
    );
}
extern "C" {
    pub fn QueryVirtualMemoryInformation(
        Process: HANDLE,
        VirtualAddress: *const ::std::os::raw::c_void,
        MemoryInformationClass: WIN32_MEMORY_INFORMATION_CLASS,
        MemoryInformation: PVOID,
        MemoryInformationSize: SIZE_T,
        ReturnSize: PSIZE_T,
    ) -> BOOL;
}
extern "C" {
    pub fn MapViewOfFileNuma2(
        FileMappingHandle: HANDLE,
        ProcessHandle: HANDLE,
        Offset: ULONG64,
        BaseAddress: PVOID,
        ViewSize: SIZE_T,
        AllocationType: ULONG,
        PageProtection: ULONG,
        PreferredNode: ULONG,
    ) -> PVOID;
}
extern "C" {
    pub fn UnmapViewOfFile2(Process: HANDLE, BaseAddress: PVOID, UnmapFlags: ULONG) -> BOOL;
}
extern "C" {
    pub fn VirtualUnlockEx(Process: HANDLE, Address: LPVOID, Size: SIZE_T) -> BOOL;
}
extern "C" {
    pub fn VirtualAlloc2(
        Process: HANDLE,
        BaseAddress: PVOID,
        Size: SIZE_T,
        AllocationType: ULONG,
        PageProtection: ULONG,
        ExtendedParameters: *mut MEM_EXTENDED_PARAMETER,
        ParameterCount: ULONG,
    ) -> PVOID;
}
extern "C" {
    pub fn MapViewOfFile3(
        FileMapping: HANDLE,
        Process: HANDLE,
        BaseAddress: PVOID,
        Offset: ULONG64,
        ViewSize: SIZE_T,
        AllocationType: ULONG,
        PageProtection: ULONG,
        ExtendedParameters: *mut MEM_EXTENDED_PARAMETER,
        ParameterCount: ULONG,
    ) -> PVOID;
}
extern "C" {
    pub fn VirtualAlloc2FromApp(
        Process: HANDLE,
        BaseAddress: PVOID,
        Size: SIZE_T,
        AllocationType: ULONG,
        PageProtection: ULONG,
        ExtendedParameters: *mut MEM_EXTENDED_PARAMETER,
        ParameterCount: ULONG,
    ) -> PVOID;
}
extern "C" {
    pub fn MapViewOfFile3FromApp(
        FileMapping: HANDLE,
        Process: HANDLE,
        BaseAddress: PVOID,
        Offset: ULONG64,
        ViewSize: SIZE_T,
        AllocationType: ULONG,
        PageProtection: ULONG,
        ExtendedParameters: *mut MEM_EXTENDED_PARAMETER,
        ParameterCount: ULONG,
    ) -> PVOID;
}
extern "C" {
    pub fn CreateFileMapping2(
        File: HANDLE,
        SecurityAttributes: *mut SECURITY_ATTRIBUTES,
        DesiredAccess: ULONG,
        PageProtection: ULONG,
        AllocationAttributes: ULONG,
        MaximumSize: ULONG64,
        Name: PCWSTR,
        ExtendedParameters: *mut MEM_EXTENDED_PARAMETER,
        ParameterCount: ULONG,
    ) -> HANDLE;
}
extern "C" {
    pub fn IsEnclaveTypeSupported(flEnclaveType: DWORD) -> BOOL;
}
extern "C" {
    pub fn CreateEnclave(
        hProcess: HANDLE,
        lpAddress: LPVOID,
        dwSize: SIZE_T,
        dwInitialCommitment: SIZE_T,
        flEnclaveType: DWORD,
        lpEnclaveInformation: LPCVOID,
        dwInfoLength: DWORD,
        lpEnclaveError: LPDWORD,
    ) -> LPVOID;
}
extern "C" {
    pub fn LoadEnclaveData(
        hProcess: HANDLE,
        lpAddress: LPVOID,
        lpBuffer: LPCVOID,
        nSize: SIZE_T,
        flProtect: DWORD,
        lpPageInformation: LPCVOID,
        dwInfoLength: DWORD,
        lpNumberOfBytesWritten: PSIZE_T,
        lpEnclaveError: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn InitializeEnclave(
        hProcess: HANDLE,
        lpAddress: LPVOID,
        lpEnclaveInformation: LPCVOID,
        dwInfoLength: DWORD,
        lpEnclaveError: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn LoadEnclaveImageA(lpEnclaveAddress: LPVOID, lpImageName: LPCSTR) -> BOOL;
}
extern "C" {
    pub fn LoadEnclaveImageW(lpEnclaveAddress: LPVOID, lpImageName: LPCWSTR) -> BOOL;
}
extern "C" {
    pub fn CallEnclave(
        lpRoutine: LPENCLAVE_ROUTINE,
        lpParameter: LPVOID,
        fWaitForThread: BOOL,
        lpReturnValue: *mut LPVOID,
    ) -> BOOL;
}
extern "C" {
    pub fn TerminateEnclave(lpAddress: LPVOID, fWait: BOOL) -> BOOL;
}
extern "C" {
    pub fn DeleteEnclave(lpAddress: LPVOID) -> BOOL;
}
extern "C" {
    pub fn QueueUserWorkItem(
        Function: LPTHREAD_START_ROUTINE,
        Context: PVOID,
        Flags: ULONG,
    ) -> BOOL;
}
extern "C" {
    pub fn UnregisterWaitEx(WaitHandle: HANDLE, CompletionEvent: HANDLE) -> BOOL;
}
extern "C" {
    pub fn CreateTimerQueue() -> HANDLE;
}
extern "C" {
    pub fn CreateTimerQueueTimer(
        phNewTimer: PHANDLE,
        TimerQueue: HANDLE,
        Callback: WAITORTIMERCALLBACK,
        Parameter: PVOID,
        DueTime: DWORD,
        Period: DWORD,
        Flags: ULONG,
    ) -> BOOL;
}
extern "C" {
    pub fn ChangeTimerQueueTimer(
        TimerQueue: HANDLE,
        Timer: HANDLE,
        DueTime: ULONG,
        Period: ULONG,
    ) -> BOOL;
}
extern "C" {
    pub fn DeleteTimerQueueTimer(
        TimerQueue: HANDLE,
        Timer: HANDLE,
        CompletionEvent: HANDLE,
    ) -> BOOL;
}
extern "C" {
    pub fn DeleteTimerQueueEx(TimerQueue: HANDLE, CompletionEvent: HANDLE) -> BOOL;
}
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 CreateThreadpool(reserved: PVOID) -> PTP_POOL;
}
extern "C" {
    pub fn SetThreadpoolThreadMaximum(ptpp: PTP_POOL, cthrdMost: DWORD);
}
extern "C" {
    pub fn SetThreadpoolThreadMinimum(ptpp: PTP_POOL, cthrdMic: DWORD) -> BOOL;
}
extern "C" {
    pub fn SetThreadpoolStackInformation(ptpp: PTP_POOL, ptpsi: PTP_POOL_STACK_INFORMATION)
        -> BOOL;
}
extern "C" {
    pub fn QueryThreadpoolStackInformation(
        ptpp: PTP_POOL,
        ptpsi: PTP_POOL_STACK_INFORMATION,
    ) -> BOOL;
}
extern "C" {
    pub fn CloseThreadpool(ptpp: PTP_POOL);
}
extern "C" {
    pub fn CreateThreadpoolCleanupGroup() -> PTP_CLEANUP_GROUP;
}
extern "C" {
    pub fn CloseThreadpoolCleanupGroupMembers(
        ptpcg: PTP_CLEANUP_GROUP,
        fCancelPendingCallbacks: BOOL,
        pvCleanupContext: PVOID,
    );
}
extern "C" {
    pub fn CloseThreadpoolCleanupGroup(ptpcg: PTP_CLEANUP_GROUP);
}
extern "C" {
    pub fn SetEventWhenCallbackReturns(pci: PTP_CALLBACK_INSTANCE, evt: HANDLE);
}
extern "C" {
    pub fn ReleaseSemaphoreWhenCallbackReturns(
        pci: PTP_CALLBACK_INSTANCE,
        sem: HANDLE,
        crel: DWORD,
    );
}
extern "C" {
    pub fn ReleaseMutexWhenCallbackReturns(pci: PTP_CALLBACK_INSTANCE, mut_: HANDLE);
}
extern "C" {
    pub fn LeaveCriticalSectionWhenCallbackReturns(
        pci: PTP_CALLBACK_INSTANCE,
        pcs: PCRITICAL_SECTION,
    );
}
extern "C" {
    pub fn FreeLibraryWhenCallbackReturns(pci: PTP_CALLBACK_INSTANCE, mod_: HMODULE);
}
extern "C" {
    pub fn CallbackMayRunLong(pci: PTP_CALLBACK_INSTANCE) -> BOOL;
}
extern "C" {
    pub fn DisassociateCurrentThreadFromCallback(pci: PTP_CALLBACK_INSTANCE);
}
extern "C" {
    pub fn TrySubmitThreadpoolCallback(
        pfns: PTP_SIMPLE_CALLBACK,
        pv: PVOID,
        pcbe: PTP_CALLBACK_ENVIRON,
    ) -> BOOL;
}
extern "C" {
    pub fn CreateThreadpoolWork(
        pfnwk: PTP_WORK_CALLBACK,
        pv: PVOID,
        pcbe: PTP_CALLBACK_ENVIRON,
    ) -> PTP_WORK;
}
extern "C" {
    pub fn SubmitThreadpoolWork(pwk: PTP_WORK);
}
extern "C" {
    pub fn WaitForThreadpoolWorkCallbacks(pwk: PTP_WORK, fCancelPendingCallbacks: BOOL);
}
extern "C" {
    pub fn CloseThreadpoolWork(pwk: PTP_WORK);
}
extern "C" {
    pub fn CreateThreadpoolTimer(
        pfnti: PTP_TIMER_CALLBACK,
        pv: PVOID,
        pcbe: PTP_CALLBACK_ENVIRON,
    ) -> PTP_TIMER;
}
extern "C" {
    pub fn SetThreadpoolTimer(
        pti: PTP_TIMER,
        pftDueTime: PFILETIME,
        msPeriod: DWORD,
        msWindowLength: DWORD,
    );
}
extern "C" {
    pub fn IsThreadpoolTimerSet(pti: PTP_TIMER) -> BOOL;
}
extern "C" {
    pub fn WaitForThreadpoolTimerCallbacks(pti: PTP_TIMER, fCancelPendingCallbacks: BOOL);
}
extern "C" {
    pub fn CloseThreadpoolTimer(pti: PTP_TIMER);
}
extern "C" {
    pub fn CreateThreadpoolWait(
        pfnwa: PTP_WAIT_CALLBACK,
        pv: PVOID,
        pcbe: PTP_CALLBACK_ENVIRON,
    ) -> PTP_WAIT;
}
extern "C" {
    pub fn SetThreadpoolWait(pwa: PTP_WAIT, h: HANDLE, pftTimeout: PFILETIME);
}
extern "C" {
    pub fn WaitForThreadpoolWaitCallbacks(pwa: PTP_WAIT, fCancelPendingCallbacks: BOOL);
}
extern "C" {
    pub fn CloseThreadpoolWait(pwa: PTP_WAIT);
}
extern "C" {
    pub fn CreateThreadpoolIo(
        fl: HANDLE,
        pfnio: PTP_WIN32_IO_CALLBACK,
        pv: PVOID,
        pcbe: PTP_CALLBACK_ENVIRON,
    ) -> PTP_IO;
}
extern "C" {
    pub fn StartThreadpoolIo(pio: PTP_IO);
}
extern "C" {
    pub fn CancelThreadpoolIo(pio: PTP_IO);
}
extern "C" {
    pub fn WaitForThreadpoolIoCallbacks(pio: PTP_IO, fCancelPendingCallbacks: BOOL);
}
extern "C" {
    pub fn CloseThreadpoolIo(pio: PTP_IO);
}
extern "C" {
    pub fn SetThreadpoolTimerEx(
        pti: PTP_TIMER,
        pftDueTime: PFILETIME,
        msPeriod: DWORD,
        msWindowLength: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn SetThreadpoolWaitEx(
        pwa: PTP_WAIT,
        h: HANDLE,
        pftTimeout: PFILETIME,
        Reserved: PVOID,
    ) -> BOOL;
}
extern "C" {
    pub fn IsProcessInJob(ProcessHandle: HANDLE, JobHandle: HANDLE, Result: PBOOL) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct JOBOBJECT_IO_RATE_CONTROL_INFORMATION {
    pub MaxIops: LONG64,
    pub MaxBandwidth: LONG64,
    pub ReservationIops: LONG64,
    pub VolumeName: PCWSTR,
    pub BaseIoSize: ULONG,
    pub ControlFlags: ULONG,
}
#[test]
fn bindgen_test_layout_JOBOBJECT_IO_RATE_CONTROL_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION>(),
        40usize,
        concat!(
            "Size of: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION>())).MaxIops as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION),
            "::",
            stringify!(MaxIops)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION>())).MaxBandwidth
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION),
            "::",
            stringify!(MaxBandwidth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION>())).ReservationIops
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION),
            "::",
            stringify!(ReservationIops)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION>())).VolumeName as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION),
            "::",
            stringify!(VolumeName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION>())).BaseIoSize as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION),
            "::",
            stringify!(BaseIoSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<JOBOBJECT_IO_RATE_CONTROL_INFORMATION>())).ControlFlags
                as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(JOBOBJECT_IO_RATE_CONTROL_INFORMATION),
            "::",
            stringify!(ControlFlags)
        )
    );
}
extern "C" {
    pub fn CreateJobObjectW(lpJobAttributes: LPSECURITY_ATTRIBUTES, lpName: LPCWSTR) -> HANDLE;
}
extern "C" {
    pub fn FreeMemoryJobObject(Buffer: *mut ::std::os::raw::c_void);
}
extern "C" {
    pub fn OpenJobObjectW(dwDesiredAccess: DWORD, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE;
}
extern "C" {
    pub fn AssignProcessToJobObject(hJob: HANDLE, hProcess: HANDLE) -> BOOL;
}
extern "C" {
    pub fn TerminateJobObject(hJob: HANDLE, uExitCode: UINT) -> BOOL;
}
extern "C" {
    pub fn SetInformationJobObject(
        hJob: HANDLE,
        JobObjectInformationClass: JOBOBJECTINFOCLASS,
        lpJobObjectInformation: LPVOID,
        cbJobObjectInformationLength: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn SetIoRateControlInformationJobObject(
        hJob: HANDLE,
        IoRateControlInfo: *mut JOBOBJECT_IO_RATE_CONTROL_INFORMATION,
    ) -> DWORD;
}
extern "C" {
    pub fn QueryInformationJobObject(
        hJob: HANDLE,
        JobObjectInformationClass: JOBOBJECTINFOCLASS,
        lpJobObjectInformation: LPVOID,
        cbJobObjectInformationLength: DWORD,
        lpReturnLength: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn QueryIoRateControlInformationJobObject(
        hJob: HANDLE,
        VolumeName: PCWSTR,
        InfoBlocks: *mut *mut JOBOBJECT_IO_RATE_CONTROL_INFORMATION,
        InfoBlockCount: *mut ULONG,
    ) -> DWORD;
}
extern "C" {
    pub fn Wow64DisableWow64FsRedirection(OldValue: *mut PVOID) -> BOOL;
}
extern "C" {
    pub fn Wow64RevertWow64FsRedirection(OlValue: PVOID) -> BOOL;
}
extern "C" {
    pub fn IsWow64Process(hProcess: HANDLE, Wow64Process: PBOOL) -> BOOL;
}
extern "C" {
    pub fn GetSystemWow64DirectoryA(lpBuffer: LPSTR, uSize: UINT) -> UINT;
}
extern "C" {
    pub fn GetSystemWow64DirectoryW(lpBuffer: LPWSTR, uSize: UINT) -> UINT;
}
extern "C" {
    pub fn Wow64SetThreadDefaultGuestMachine(Machine: USHORT) -> USHORT;
}
extern "C" {
    pub fn IsWow64Process2(
        hProcess: HANDLE,
        pProcessMachine: *mut USHORT,
        pNativeMachine: *mut USHORT,
    ) -> BOOL;
}
extern "C" {
    pub fn GetSystemWow64Directory2A(
        lpBuffer: LPSTR,
        uSize: UINT,
        ImageFileMachineType: WORD,
    ) -> UINT;
}
extern "C" {
    pub fn GetSystemWow64Directory2W(
        lpBuffer: LPWSTR,
        uSize: UINT,
        ImageFileMachineType: WORD,
    ) -> UINT;
}
extern "C" {
    pub fn IsWow64GuestMachineSupported(
        WowGuestMachine: USHORT,
        MachineIsSupported: *mut BOOL,
    ) -> HRESULT;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagENUMUILANG {
    pub NumOfEnumUILang: ULONG,
    pub SizeOfEnumUIBuffer: ULONG,
    pub pEnumUIBuffer: *mut LANGID,
}
#[test]
fn bindgen_test_layout_tagENUMUILANG() {
    assert_eq!(
        ::std::mem::size_of::<tagENUMUILANG>(),
        16usize,
        concat!("Size of: ", stringify!(tagENUMUILANG))
    );
    assert_eq!(
        ::std::mem::align_of::<tagENUMUILANG>(),
        8usize,
        concat!("Alignment of ", stringify!(tagENUMUILANG))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENUMUILANG>())).NumOfEnumUILang as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENUMUILANG),
            "::",
            stringify!(NumOfEnumUILang)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagENUMUILANG>())).SizeOfEnumUIBuffer as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENUMUILANG),
            "::",
            stringify!(SizeOfEnumUIBuffer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENUMUILANG>())).pEnumUIBuffer as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENUMUILANG),
            "::",
            stringify!(pEnumUIBuffer)
        )
    );
}
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,
    ) -> BOOL,
>;
pub type ENUMRESLANGPROCW = ::std::option::Option<
    unsafe extern "C" fn(
        hModule: HMODULE,
        lpType: LPCWSTR,
        lpName: LPCWSTR,
        wLanguage: WORD,
        lParam: LONG_PTR,
    ) -> BOOL,
>;
pub type ENUMRESNAMEPROCA = ::std::option::Option<
    unsafe extern "C" fn(hModule: HMODULE, lpType: LPCSTR, lpName: LPSTR, lParam: LONG_PTR) -> BOOL,
>;
pub type ENUMRESNAMEPROCW = ::std::option::Option<
    unsafe extern "C" fn(
        hModule: HMODULE,
        lpType: LPCWSTR,
        lpName: LPWSTR,
        lParam: LONG_PTR,
    ) -> BOOL,
>;
pub type ENUMRESTYPEPROCA = ::std::option::Option<
    unsafe extern "C" fn(hModule: HMODULE, lpType: LPSTR, lParam: LONG_PTR) -> BOOL,
>;
pub type ENUMRESTYPEPROCW = ::std::option::Option<
    unsafe extern "C" fn(hModule: HMODULE, lpType: LPWSTR, lParam: LONG_PTR) -> BOOL,
>;
extern "C" {
    pub fn DisableThreadLibraryCalls(hLibModule: HMODULE) -> BOOL;
}
extern "C" {
    pub fn FindResourceExW(
        hModule: HMODULE,
        lpType: LPCWSTR,
        lpName: LPCWSTR,
        wLanguage: WORD,
    ) -> HRSRC;
}
extern "C" {
    pub fn FindStringOrdinal(
        dwFindStringOrdinalFlags: DWORD,
        lpStringSource: LPCWSTR,
        cchSource: ::std::os::raw::c_int,
        lpStringValue: LPCWSTR,
        cchValue: ::std::os::raw::c_int,
        bIgnoreCase: BOOL,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn FreeLibrary(hLibModule: HMODULE) -> BOOL;
}
extern "C" {
    pub fn FreeLibraryAndExitThread(hLibModule: HMODULE, dwExitCode: DWORD);
}
extern "C" {
    pub fn FreeResource(hResData: HGLOBAL) -> BOOL;
}
extern "C" {
    pub fn GetModuleFileNameA(hModule: HMODULE, lpFilename: LPSTR, nSize: DWORD) -> DWORD;
}
extern "C" {
    pub fn GetModuleFileNameW(hModule: HMODULE, lpFilename: LPWSTR, nSize: DWORD) -> DWORD;
}
extern "C" {
    pub fn GetModuleHandleA(lpModuleName: LPCSTR) -> HMODULE;
}
extern "C" {
    pub fn GetModuleHandleW(lpModuleName: LPCWSTR) -> HMODULE;
}
pub type PGET_MODULE_HANDLE_EXA = ::std::option::Option<
    unsafe extern "C" fn(dwFlags: DWORD, lpModuleName: LPCSTR, phModule: *mut HMODULE) -> BOOL,
>;
pub type PGET_MODULE_HANDLE_EXW = ::std::option::Option<
    unsafe extern "C" fn(dwFlags: DWORD, lpModuleName: LPCWSTR, phModule: *mut HMODULE) -> BOOL,
>;
extern "C" {
    pub fn GetModuleHandleExA(dwFlags: DWORD, lpModuleName: LPCSTR, phModule: *mut HMODULE)
        -> BOOL;
}
extern "C" {
    pub fn GetModuleHandleExW(
        dwFlags: DWORD,
        lpModuleName: LPCWSTR,
        phModule: *mut HMODULE,
    ) -> BOOL;
}
extern "C" {
    pub fn GetProcAddress(hModule: HMODULE, lpProcName: LPCSTR) -> FARPROC;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _REDIRECTION_FUNCTION_DESCRIPTOR {
    pub DllName: PCSTR,
    pub FunctionName: PCSTR,
    pub RedirectionTarget: PVOID,
}
#[test]
fn bindgen_test_layout__REDIRECTION_FUNCTION_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_REDIRECTION_FUNCTION_DESCRIPTOR>(),
        24usize,
        concat!("Size of: ", stringify!(_REDIRECTION_FUNCTION_DESCRIPTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<_REDIRECTION_FUNCTION_DESCRIPTOR>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_REDIRECTION_FUNCTION_DESCRIPTOR)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REDIRECTION_FUNCTION_DESCRIPTOR>())).DllName as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_REDIRECTION_FUNCTION_DESCRIPTOR),
            "::",
            stringify!(DllName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REDIRECTION_FUNCTION_DESCRIPTOR>())).FunctionName as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_REDIRECTION_FUNCTION_DESCRIPTOR),
            "::",
            stringify!(FunctionName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REDIRECTION_FUNCTION_DESCRIPTOR>())).RedirectionTarget
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_REDIRECTION_FUNCTION_DESCRIPTOR),
            "::",
            stringify!(RedirectionTarget)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__REDIRECTION_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_REDIRECTION_DESCRIPTOR>(),
        16usize,
        concat!("Size of: ", stringify!(_REDIRECTION_DESCRIPTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<_REDIRECTION_DESCRIPTOR>(),
        8usize,
        concat!("Alignment of ", stringify!(_REDIRECTION_DESCRIPTOR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_REDIRECTION_DESCRIPTOR>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_REDIRECTION_DESCRIPTOR),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REDIRECTION_DESCRIPTOR>())).FunctionCount as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_REDIRECTION_DESCRIPTOR),
            "::",
            stringify!(FunctionCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REDIRECTION_DESCRIPTOR>())).Redirections as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_REDIRECTION_DESCRIPTOR),
            "::",
            stringify!(Redirections)
        )
    );
}
pub type REDIRECTION_DESCRIPTOR = _REDIRECTION_DESCRIPTOR;
pub type PREDIRECTION_DESCRIPTOR = *mut _REDIRECTION_DESCRIPTOR;
pub type PCREDIRECTION_DESCRIPTOR = *const REDIRECTION_DESCRIPTOR;
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;
}
pub type DLL_DIRECTORY_COOKIE = PVOID;
pub type PDLL_DIRECTORY_COOKIE = *mut PVOID;
extern "C" {
    pub fn AddDllDirectory(NewDirectory: PCWSTR) -> DLL_DIRECTORY_COOKIE;
}
extern "C" {
    pub fn RemoveDllDirectory(Cookie: DLL_DIRECTORY_COOKIE) -> BOOL;
}
extern "C" {
    pub fn SetDefaultDllDirectories(DirectoryFlags: DWORD) -> BOOL;
}
extern "C" {
    pub fn EnumResourceLanguagesExA(
        hModule: HMODULE,
        lpType: LPCSTR,
        lpName: LPCSTR,
        lpEnumFunc: ENUMRESLANGPROCA,
        lParam: LONG_PTR,
        dwFlags: DWORD,
        LangId: LANGID,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumResourceLanguagesExW(
        hModule: HMODULE,
        lpType: LPCWSTR,
        lpName: LPCWSTR,
        lpEnumFunc: ENUMRESLANGPROCW,
        lParam: LONG_PTR,
        dwFlags: DWORD,
        LangId: LANGID,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumResourceNamesExA(
        hModule: HMODULE,
        lpType: LPCSTR,
        lpEnumFunc: ENUMRESNAMEPROCA,
        lParam: LONG_PTR,
        dwFlags: DWORD,
        LangId: LANGID,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumResourceNamesExW(
        hModule: HMODULE,
        lpType: LPCWSTR,
        lpEnumFunc: ENUMRESNAMEPROCW,
        lParam: LONG_PTR,
        dwFlags: DWORD,
        LangId: LANGID,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumResourceTypesExA(
        hModule: HMODULE,
        lpEnumFunc: ENUMRESTYPEPROCA,
        lParam: LONG_PTR,
        dwFlags: DWORD,
        LangId: LANGID,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumResourceTypesExW(
        hModule: HMODULE,
        lpEnumFunc: ENUMRESTYPEPROCW,
        lParam: LONG_PTR,
        dwFlags: DWORD,
        LangId: LANGID,
    ) -> BOOL;
}
extern "C" {
    pub fn FindResourceW(hModule: HMODULE, lpName: LPCWSTR, lpType: LPCWSTR) -> HRSRC;
}
extern "C" {
    pub fn LoadLibraryA(lpLibFileName: LPCSTR) -> HMODULE;
}
extern "C" {
    pub fn LoadLibraryW(lpLibFileName: LPCWSTR) -> HMODULE;
}
extern "C" {
    pub fn EnumResourceNamesW(
        hModule: HMODULE,
        lpType: LPCWSTR,
        lpEnumFunc: ENUMRESNAMEPROCW,
        lParam: LONG_PTR,
    ) -> BOOL;
}
extern "C" {
    pub fn AccessCheck(
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        ClientToken: HANDLE,
        DesiredAccess: DWORD,
        GenericMapping: PGENERIC_MAPPING,
        PrivilegeSet: PPRIVILEGE_SET,
        PrivilegeSetLength: LPDWORD,
        GrantedAccess: LPDWORD,
        AccessStatus: LPBOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn AccessCheckAndAuditAlarmW(
        SubsystemName: LPCWSTR,
        HandleId: LPVOID,
        ObjectTypeName: LPWSTR,
        ObjectName: LPWSTR,
        SecurityDescriptor: PSECURITY_DESCRIPTOR,
        DesiredAccess: DWORD,
        GenericMapping: PGENERIC_MAPPING,
        ObjectCreation: BOOL,
        GrantedAccess: LPDWORD,
        AccessStatus: LPBOOL,
        pfGenerateOnClose: LPBOOL,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
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: BOOL,
        GrantedAccess: LPDWORD,
        AccessStatus: LPBOOL,
        pfGenerateOnClose: LPBOOL,
    ) -> BOOL;
}
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: BOOL,
        GrantedAccessList: LPDWORD,
        AccessStatusList: LPDWORD,
        pfGenerateOnClose: LPBOOL,
    ) -> BOOL;
}
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: BOOL,
        GrantedAccessList: LPDWORD,
        AccessStatusList: LPDWORD,
        pfGenerateOnClose: LPBOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn AddAccessAllowedAce(
        pAcl: PACL,
        dwAceRevision: DWORD,
        AccessMask: DWORD,
        pSid: PSID,
    ) -> BOOL;
}
extern "C" {
    pub fn AddAccessAllowedAceEx(
        pAcl: PACL,
        dwAceRevision: DWORD,
        AceFlags: DWORD,
        AccessMask: DWORD,
        pSid: PSID,
    ) -> BOOL;
}
extern "C" {
    pub fn AddAccessAllowedObjectAce(
        pAcl: PACL,
        dwAceRevision: DWORD,
        AceFlags: DWORD,
        AccessMask: DWORD,
        ObjectTypeGuid: *mut GUID,
        InheritedObjectTypeGuid: *mut GUID,
        pSid: PSID,
    ) -> BOOL;
}
extern "C" {
    pub fn AddAccessDeniedAce(
        pAcl: PACL,
        dwAceRevision: DWORD,
        AccessMask: DWORD,
        pSid: PSID,
    ) -> BOOL;
}
extern "C" {
    pub fn AddAccessDeniedAceEx(
        pAcl: PACL,
        dwAceRevision: DWORD,
        AceFlags: DWORD,
        AccessMask: DWORD,
        pSid: PSID,
    ) -> BOOL;
}
extern "C" {
    pub fn AddAccessDeniedObjectAce(
        pAcl: PACL,
        dwAceRevision: DWORD,
        AceFlags: DWORD,
        AccessMask: DWORD,
        ObjectTypeGuid: *mut GUID,
        InheritedObjectTypeGuid: *mut GUID,
        pSid: PSID,
    ) -> BOOL;
}
extern "C" {
    pub fn AddAce(
        pAcl: PACL,
        dwAceRevision: DWORD,
        dwStartingAceIndex: DWORD,
        pAceList: LPVOID,
        nAceListLength: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn AddAuditAccessAce(
        pAcl: PACL,
        dwAceRevision: DWORD,
        dwAccessMask: DWORD,
        pSid: PSID,
        bAuditSuccess: BOOL,
        bAuditFailure: BOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn AddAuditAccessAceEx(
        pAcl: PACL,
        dwAceRevision: DWORD,
        AceFlags: DWORD,
        dwAccessMask: DWORD,
        pSid: PSID,
        bAuditSuccess: BOOL,
        bAuditFailure: BOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn AddAuditAccessObjectAce(
        pAcl: PACL,
        dwAceRevision: DWORD,
        AceFlags: DWORD,
        AccessMask: DWORD,
        ObjectTypeGuid: *mut GUID,
        InheritedObjectTypeGuid: *mut GUID,
        pSid: PSID,
        bAuditSuccess: BOOL,
        bAuditFailure: BOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn AddMandatoryAce(
        pAcl: PACL,
        dwAceRevision: DWORD,
        AceFlags: DWORD,
        MandatoryPolicy: DWORD,
        pLabelSid: PSID,
    ) -> BOOL;
}
extern "C" {
    pub fn AddResourceAttributeAce(
        pAcl: PACL,
        dwAceRevision: DWORD,
        AceFlags: DWORD,
        AccessMask: DWORD,
        pSid: PSID,
        pAttributeInfo: PCLAIM_SECURITY_ATTRIBUTES_INFORMATION,
        pReturnLength: PDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn AddScopedPolicyIDAce(
        pAcl: PACL,
        dwAceRevision: DWORD,
        AceFlags: DWORD,
        AccessMask: DWORD,
        pSid: PSID,
    ) -> BOOL;
}
extern "C" {
    pub fn AdjustTokenGroups(
        TokenHandle: HANDLE,
        ResetToDefault: BOOL,
        NewState: PTOKEN_GROUPS,
        BufferLength: DWORD,
        PreviousState: PTOKEN_GROUPS,
        ReturnLength: PDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn AdjustTokenPrivileges(
        TokenHandle: HANDLE,
        DisableAllPrivileges: BOOL,
        NewState: PTOKEN_PRIVILEGES,
        BufferLength: DWORD,
        PreviousState: PTOKEN_PRIVILEGES,
        ReturnLength: PDWORD,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn AllocateLocallyUniqueId(Luid: PLUID) -> BOOL;
}
extern "C" {
    pub fn AreAllAccessesGranted(GrantedAccess: DWORD, DesiredAccess: DWORD) -> BOOL;
}
extern "C" {
    pub fn AreAnyAccessesGranted(GrantedAccess: DWORD, DesiredAccess: DWORD) -> BOOL;
}
extern "C" {
    pub fn CheckTokenMembership(TokenHandle: HANDLE, SidToCheck: PSID, IsMember: PBOOL) -> BOOL;
}
extern "C" {
    pub fn CheckTokenCapability(
        TokenHandle: HANDLE,
        CapabilitySidToCheck: PSID,
        HasCapability: PBOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn GetAppContainerAce(
        Acl: PACL,
        StartingAceIndex: DWORD,
        AppContainerAce: *mut PVOID,
        AppContainerAceIndex: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CheckTokenMembershipEx(
        TokenHandle: HANDLE,
        SidToCheck: PSID,
        Flags: DWORD,
        IsMember: PBOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn ConvertToAutoInheritPrivateObjectSecurity(
        ParentDescriptor: PSECURITY_DESCRIPTOR,
        CurrentSecurityDescriptor: PSECURITY_DESCRIPTOR,
        NewSecurityDescriptor: *mut PSECURITY_DESCRIPTOR,
        ObjectType: *mut GUID,
        IsDirectoryObject: BOOLEAN,
        GenericMapping: PGENERIC_MAPPING,
    ) -> BOOL;
}
extern "C" {
    pub fn CopySid(nDestinationSidLength: DWORD, pDestinationSid: PSID, pSourceSid: PSID) -> BOOL;
}
extern "C" {
    pub fn CreatePrivateObjectSecurity(
        ParentDescriptor: PSECURITY_DESCRIPTOR,
        CreatorDescriptor: PSECURITY_DESCRIPTOR,
        NewDescriptor: *mut PSECURITY_DESCRIPTOR,
        IsDirectoryObject: BOOL,
        Token: HANDLE,
        GenericMapping: PGENERIC_MAPPING,
    ) -> BOOL;
}
extern "C" {
    pub fn CreatePrivateObjectSecurityEx(
        ParentDescriptor: PSECURITY_DESCRIPTOR,
        CreatorDescriptor: PSECURITY_DESCRIPTOR,
        NewDescriptor: *mut PSECURITY_DESCRIPTOR,
        ObjectType: *mut GUID,
        IsContainerObject: BOOL,
        AutoInheritFlags: ULONG,
        Token: HANDLE,
        GenericMapping: PGENERIC_MAPPING,
    ) -> BOOL;
}
extern "C" {
    pub fn CreatePrivateObjectSecurityWithMultipleInheritance(
        ParentDescriptor: PSECURITY_DESCRIPTOR,
        CreatorDescriptor: PSECURITY_DESCRIPTOR,
        NewDescriptor: *mut PSECURITY_DESCRIPTOR,
        ObjectTypes: *mut *mut GUID,
        GuidCount: ULONG,
        IsContainerObject: BOOL,
        AutoInheritFlags: ULONG,
        Token: HANDLE,
        GenericMapping: PGENERIC_MAPPING,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn CreateWellKnownSid(
        WellKnownSidType: WELL_KNOWN_SID_TYPE,
        DomainSid: PSID,
        pSid: PSID,
        cbSid: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn EqualDomainSid(pSid1: PSID, pSid2: PSID, pfEqual: *mut BOOL) -> BOOL;
}
extern "C" {
    pub fn DeleteAce(pAcl: PACL, dwAceIndex: DWORD) -> BOOL;
}
extern "C" {
    pub fn DestroyPrivateObjectSecurity(ObjectDescriptor: *mut PSECURITY_DESCRIPTOR) -> BOOL;
}
extern "C" {
    pub fn DuplicateToken(
        ExistingTokenHandle: HANDLE,
        ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL,
        DuplicateTokenHandle: PHANDLE,
    ) -> BOOL;
}
extern "C" {
    pub fn DuplicateTokenEx(
        hExistingToken: HANDLE,
        dwDesiredAccess: DWORD,
        lpTokenAttributes: LPSECURITY_ATTRIBUTES,
        ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL,
        TokenType: TOKEN_TYPE,
        phNewToken: PHANDLE,
    ) -> BOOL;
}
extern "C" {
    pub fn EqualPrefixSid(pSid1: PSID, pSid2: PSID) -> BOOL;
}
extern "C" {
    pub fn EqualSid(pSid1: PSID, pSid2: PSID) -> BOOL;
}
extern "C" {
    pub fn FindFirstFreeAce(pAcl: PACL, pAce: *mut LPVOID) -> BOOL;
}
extern "C" {
    pub fn FreeSid(pSid: PSID) -> PVOID;
}
extern "C" {
    pub fn GetAce(pAcl: PACL, dwAceIndex: DWORD, pAce: *mut LPVOID) -> BOOL;
}
extern "C" {
    pub fn GetAclInformation(
        pAcl: PACL,
        pAclInformation: LPVOID,
        nAclInformationLength: DWORD,
        dwAclInformationClass: ACL_INFORMATION_CLASS,
    ) -> BOOL;
}
extern "C" {
    pub fn GetFileSecurityW(
        lpFileName: LPCWSTR,
        RequestedInformation: SECURITY_INFORMATION,
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        nLength: DWORD,
        lpnLengthNeeded: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetKernelObjectSecurity(
        Handle: HANDLE,
        RequestedInformation: SECURITY_INFORMATION,
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        nLength: DWORD,
        lpnLengthNeeded: LPDWORD,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn GetSecurityDescriptorControl(
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        pControl: PSECURITY_DESCRIPTOR_CONTROL,
        lpdwRevision: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetSecurityDescriptorDacl(
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        lpbDaclPresent: LPBOOL,
        pDacl: *mut PACL,
        lpbDaclDefaulted: LPBOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn GetSecurityDescriptorGroup(
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        pGroup: *mut PSID,
        lpbGroupDefaulted: LPBOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn GetSecurityDescriptorLength(pSecurityDescriptor: PSECURITY_DESCRIPTOR) -> DWORD;
}
extern "C" {
    pub fn GetSecurityDescriptorOwner(
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        pOwner: *mut PSID,
        lpbOwnerDefaulted: LPBOOL,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn GetWindowsAccountDomainSid(
        pSid: PSID,
        pDomainSid: PSID,
        cbDomainSid: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn ImpersonateAnonymousToken(ThreadHandle: HANDLE) -> BOOL;
}
extern "C" {
    pub fn ImpersonateLoggedOnUser(hToken: HANDLE) -> BOOL;
}
extern "C" {
    pub fn ImpersonateSelf(ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL) -> BOOL;
}
extern "C" {
    pub fn InitializeAcl(pAcl: PACL, nAclLength: DWORD, dwAclRevision: DWORD) -> BOOL;
}
extern "C" {
    pub fn InitializeSecurityDescriptor(
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        dwRevision: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn InitializeSid(
        Sid: PSID,
        pIdentifierAuthority: PSID_IDENTIFIER_AUTHORITY,
        nSubAuthorityCount: BYTE,
    ) -> BOOL;
}
extern "C" {
    pub fn IsTokenRestricted(TokenHandle: HANDLE) -> BOOL;
}
extern "C" {
    pub fn IsValidAcl(pAcl: PACL) -> BOOL;
}
extern "C" {
    pub fn IsValidSecurityDescriptor(pSecurityDescriptor: PSECURITY_DESCRIPTOR) -> BOOL;
}
extern "C" {
    pub fn IsValidSid(pSid: PSID) -> BOOL;
}
extern "C" {
    pub fn IsWellKnownSid(pSid: PSID, WellKnownSidType: WELL_KNOWN_SID_TYPE) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn MakeSelfRelativeSD(
        pAbsoluteSecurityDescriptor: PSECURITY_DESCRIPTOR,
        pSelfRelativeSecurityDescriptor: PSECURITY_DESCRIPTOR,
        lpdwBufferLength: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn MapGenericMask(AccessMask: PDWORD, GenericMapping: PGENERIC_MAPPING);
}
extern "C" {
    pub fn ObjectCloseAuditAlarmW(
        SubsystemName: LPCWSTR,
        HandleId: LPVOID,
        GenerateOnClose: BOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn ObjectDeleteAuditAlarmW(
        SubsystemName: LPCWSTR,
        HandleId: LPVOID,
        GenerateOnClose: BOOL,
    ) -> BOOL;
}
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: BOOL,
        AccessGranted: BOOL,
        GenerateOnClose: LPBOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn ObjectPrivilegeAuditAlarmW(
        SubsystemName: LPCWSTR,
        HandleId: LPVOID,
        ClientToken: HANDLE,
        DesiredAccess: DWORD,
        Privileges: PPRIVILEGE_SET,
        AccessGranted: BOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn PrivilegeCheck(
        ClientToken: HANDLE,
        RequiredPrivileges: PPRIVILEGE_SET,
        pfResult: LPBOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn PrivilegedServiceAuditAlarmW(
        SubsystemName: LPCWSTR,
        ServiceName: LPCWSTR,
        ClientToken: HANDLE,
        Privileges: PPRIVILEGE_SET,
        AccessGranted: BOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn QuerySecurityAccessMask(
        SecurityInformation: SECURITY_INFORMATION,
        DesiredAccess: LPDWORD,
    );
}
extern "C" {
    pub fn RevertToSelf() -> BOOL;
}
extern "C" {
    pub fn SetAclInformation(
        pAcl: PACL,
        pAclInformation: LPVOID,
        nAclInformationLength: DWORD,
        dwAclInformationClass: ACL_INFORMATION_CLASS,
    ) -> BOOL;
}
extern "C" {
    pub fn SetFileSecurityW(
        lpFileName: LPCWSTR,
        SecurityInformation: SECURITY_INFORMATION,
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
    ) -> BOOL;
}
extern "C" {
    pub fn SetKernelObjectSecurity(
        Handle: HANDLE,
        SecurityInformation: SECURITY_INFORMATION,
        SecurityDescriptor: PSECURITY_DESCRIPTOR,
    ) -> BOOL;
}
extern "C" {
    pub fn SetPrivateObjectSecurity(
        SecurityInformation: SECURITY_INFORMATION,
        ModificationDescriptor: PSECURITY_DESCRIPTOR,
        ObjectsSecurityDescriptor: *mut PSECURITY_DESCRIPTOR,
        GenericMapping: PGENERIC_MAPPING,
        Token: HANDLE,
    ) -> BOOL;
}
extern "C" {
    pub fn SetPrivateObjectSecurityEx(
        SecurityInformation: SECURITY_INFORMATION,
        ModificationDescriptor: PSECURITY_DESCRIPTOR,
        ObjectsSecurityDescriptor: *mut PSECURITY_DESCRIPTOR,
        AutoInheritFlags: ULONG,
        GenericMapping: PGENERIC_MAPPING,
        Token: HANDLE,
    ) -> BOOL;
}
extern "C" {
    pub fn SetSecurityAccessMask(SecurityInformation: SECURITY_INFORMATION, DesiredAccess: LPDWORD);
}
extern "C" {
    pub fn SetSecurityDescriptorControl(
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        ControlBitsOfInterest: SECURITY_DESCRIPTOR_CONTROL,
        ControlBitsToSet: SECURITY_DESCRIPTOR_CONTROL,
    ) -> BOOL;
}
extern "C" {
    pub fn SetSecurityDescriptorDacl(
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        bDaclPresent: BOOL,
        pDacl: PACL,
        bDaclDefaulted: BOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn SetSecurityDescriptorGroup(
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        pGroup: PSID,
        bGroupDefaulted: BOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn SetSecurityDescriptorOwner(
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        pOwner: PSID,
        bOwnerDefaulted: BOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn SetSecurityDescriptorRMControl(
        SecurityDescriptor: PSECURITY_DESCRIPTOR,
        RMControl: PUCHAR,
    ) -> DWORD;
}
extern "C" {
    pub fn SetSecurityDescriptorSacl(
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        bSaclPresent: BOOL,
        pSacl: PACL,
        bSaclDefaulted: BOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn SetTokenInformation(
        TokenHandle: HANDLE,
        TokenInformationClass: TOKEN_INFORMATION_CLASS,
        TokenInformation: LPVOID,
        TokenInformationLength: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn SetCachedSigningLevel(
        SourceFiles: PHANDLE,
        SourceFileCount: ULONG,
        Flags: ULONG,
        TargetFile: HANDLE,
    ) -> BOOL;
}
extern "C" {
    pub fn GetCachedSigningLevel(
        File: HANDLE,
        Flags: PULONG,
        SigningLevel: PULONG,
        Thumbprint: PUCHAR,
        ThumbprintSize: PULONG,
        ThumbprintAlgorithm: PULONG,
    ) -> BOOL;
}
extern "C" {
    pub fn CveEventWrite(CveId: PCWSTR, AdditionalDetails: PCWSTR) -> LONG;
}
extern "C" {
    pub fn DeriveCapabilitySidsFromName(
        CapName: LPCWSTR,
        CapabilityGroupSids: *mut *mut PSID,
        CapabilityGroupSidCount: *mut DWORD,
        CapabilitySids: *mut *mut PSID,
        CapabilitySidCount: *mut DWORD,
    ) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn DeleteBoundaryDescriptor(BoundaryDescriptor: HANDLE);
}
extern "C" {
    pub fn GetNumaHighestNodeNumber(HighestNodeNumber: PULONG) -> BOOL;
}
extern "C" {
    pub fn GetNumaNodeProcessorMaskEx(Node: USHORT, ProcessorMask: PGROUP_AFFINITY) -> BOOL;
}
extern "C" {
    pub fn GetNumaProximityNodeEx(ProximityId: ULONG, NodeNumber: PUSHORT) -> BOOL;
}
extern "C" {
    pub fn GetProcessGroupAffinity(
        hProcess: HANDLE,
        GroupCount: PUSHORT,
        GroupArray: PUSHORT,
    ) -> BOOL;
}
extern "C" {
    pub fn GetThreadGroupAffinity(hThread: HANDLE, GroupAffinity: PGROUP_AFFINITY) -> BOOL;
}
extern "C" {
    pub fn SetThreadGroupAffinity(
        hThread: HANDLE,
        GroupAffinity: *const GROUP_AFFINITY,
        PreviousGroupAffinity: PGROUP_AFFINITY,
    ) -> BOOL;
}
extern "C" {
    pub fn GetAppContainerNamedObjectPath(
        Token: HANDLE,
        AppContainerSid: PSID,
        ObjectPathLength: ULONG,
        ObjectPath: LPWSTR,
        ReturnLength: PULONG,
    ) -> BOOL;
}
extern "C" {
    pub fn QueryThreadCycleTime(ThreadHandle: HANDLE, CycleTime: PULONG64) -> BOOL;
}
extern "C" {
    pub fn QueryProcessCycleTime(ProcessHandle: HANDLE, CycleTime: PULONG64) -> BOOL;
}
extern "C" {
    pub fn QueryIdleProcessorCycleTime(
        BufferLength: PULONG,
        ProcessorIdleCycleTime: PULONG64,
    ) -> BOOL;
}
extern "C" {
    pub fn QueryIdleProcessorCycleTimeEx(
        Group: USHORT,
        BufferLength: PULONG,
        ProcessorIdleCycleTime: PULONG64,
    ) -> BOOL;
}
extern "C" {
    pub fn QueryInterruptTimePrecise(lpInterruptTimePrecise: PULONGLONG);
}
extern "C" {
    pub fn QueryUnbiasedInterruptTimePrecise(lpUnbiasedInterruptTimePrecise: PULONGLONG);
}
extern "C" {
    pub fn QueryInterruptTime(lpInterruptTime: PULONGLONG);
}
extern "C" {
    pub fn QueryUnbiasedInterruptTime(UnbiasedTime: PULONGLONG) -> BOOL;
}
extern "C" {
    pub fn QueryAuxiliaryCounterFrequency(lpAuxiliaryCounterFrequency: PULONGLONG) -> HRESULT;
}
extern "C" {
    pub fn ConvertAuxiliaryCounterToPerformanceCounter(
        ullAuxiliaryCounterValue: ULONGLONG,
        lpPerformanceCounterValue: PULONGLONG,
        lpConversionError: PULONGLONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn ConvertPerformanceCounterToAuxiliaryCounter(
        ullPerformanceCounterValue: ULONGLONG,
        lpAuxiliaryCounterValue: PULONGLONG,
        lpConversionError: PULONGLONG,
    ) -> HRESULT;
}
pub type PFIBER_START_ROUTINE =
    ::std::option::Option<unsafe extern "C" fn(lpFiberParameter: LPVOID)>;
pub type LPFIBER_START_ROUTINE = PFIBER_START_ROUTINE;
pub type PFIBER_CALLOUT_ROUTINE =
    ::std::option::Option<unsafe extern "C" fn(lpParameter: LPVOID) -> LPVOID>;
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],
}
#[test]
fn bindgen_test_layout__COMMPROP() {
    assert_eq!(
        ::std::mem::size_of::<_COMMPROP>(),
        64usize,
        concat!("Size of: ", stringify!(_COMMPROP))
    );
    assert_eq!(
        ::std::mem::align_of::<_COMMPROP>(),
        4usize,
        concat!("Alignment of ", stringify!(_COMMPROP))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COMMPROP>())).wPacketLength as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMMPROP),
            "::",
            stringify!(wPacketLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COMMPROP>())).wPacketVersion as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMMPROP),
            "::",
            stringify!(wPacketVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COMMPROP>())).dwServiceMask as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMMPROP),
            "::",
            stringify!(dwServiceMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COMMPROP>())).dwReserved1 as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMMPROP),
            "::",
            stringify!(dwReserved1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COMMPROP>())).dwMaxTxQueue as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMMPROP),
            "::",
            stringify!(dwMaxTxQueue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COMMPROP>())).dwMaxRxQueue as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMMPROP),
            "::",
            stringify!(dwMaxRxQueue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COMMPROP>())).dwMaxBaud as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMMPROP),
            "::",
            stringify!(dwMaxBaud)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COMMPROP>())).dwProvSubType as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMMPROP),
            "::",
            stringify!(dwProvSubType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COMMPROP>())).dwProvCapabilities as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMMPROP),
            "::",
            stringify!(dwProvCapabilities)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COMMPROP>())).dwSettableParams as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMMPROP),
            "::",
            stringify!(dwSettableParams)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COMMPROP>())).dwSettableBaud as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMMPROP),
            "::",
            stringify!(dwSettableBaud)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COMMPROP>())).wSettableData as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMMPROP),
            "::",
            stringify!(wSettableData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COMMPROP>())).wSettableStopParity as *const _ as usize },
        42usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMMPROP),
            "::",
            stringify!(wSettableStopParity)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COMMPROP>())).dwCurrentTxQueue as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMMPROP),
            "::",
            stringify!(dwCurrentTxQueue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COMMPROP>())).dwCurrentRxQueue as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMMPROP),
            "::",
            stringify!(dwCurrentRxQueue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COMMPROP>())).dwProvSpec1 as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMMPROP),
            "::",
            stringify!(dwProvSpec1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COMMPROP>())).dwProvSpec2 as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMMPROP),
            "::",
            stringify!(dwProvSpec2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COMMPROP>())).wcProvChar as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMMPROP),
            "::",
            stringify!(wcProvChar)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__COMSTAT() {
    assert_eq!(
        ::std::mem::size_of::<_COMSTAT>(),
        12usize,
        concat!("Size of: ", stringify!(_COMSTAT))
    );
    assert_eq!(
        ::std::mem::align_of::<_COMSTAT>(),
        4usize,
        concat!("Alignment of ", stringify!(_COMSTAT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COMSTAT>())).cbInQue as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMSTAT),
            "::",
            stringify!(cbInQue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COMSTAT>())).cbOutQue as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMSTAT),
            "::",
            stringify!(cbOutQue)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__DCB() {
    assert_eq!(
        ::std::mem::size_of::<_DCB>(),
        28usize,
        concat!("Size of: ", stringify!(_DCB))
    );
    assert_eq!(
        ::std::mem::align_of::<_DCB>(),
        4usize,
        concat!("Alignment of ", stringify!(_DCB))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DCB>())).DCBlength as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DCB),
            "::",
            stringify!(DCBlength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DCB>())).BaudRate as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DCB),
            "::",
            stringify!(BaudRate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DCB>())).wReserved as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_DCB),
            "::",
            stringify!(wReserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DCB>())).XonLim as *const _ as usize },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(_DCB),
            "::",
            stringify!(XonLim)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DCB>())).XoffLim as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DCB),
            "::",
            stringify!(XoffLim)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DCB>())).ByteSize as *const _ as usize },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(_DCB),
            "::",
            stringify!(ByteSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DCB>())).Parity as *const _ as usize },
        19usize,
        concat!(
            "Offset of field: ",
            stringify!(_DCB),
            "::",
            stringify!(Parity)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DCB>())).StopBits as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_DCB),
            "::",
            stringify!(StopBits)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DCB>())).XonChar as *const _ as usize },
        21usize,
        concat!(
            "Offset of field: ",
            stringify!(_DCB),
            "::",
            stringify!(XonChar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DCB>())).XoffChar as *const _ as usize },
        22usize,
        concat!(
            "Offset of field: ",
            stringify!(_DCB),
            "::",
            stringify!(XoffChar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DCB>())).ErrorChar as *const _ as usize },
        23usize,
        concat!(
            "Offset of field: ",
            stringify!(_DCB),
            "::",
            stringify!(ErrorChar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DCB>())).EofChar as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DCB),
            "::",
            stringify!(EofChar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DCB>())).EvtChar as *const _ as usize },
        25usize,
        concat!(
            "Offset of field: ",
            stringify!(_DCB),
            "::",
            stringify!(EvtChar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DCB>())).wReserved1 as *const _ as usize },
        26usize,
        concat!(
            "Offset of field: ",
            stringify!(_DCB),
            "::",
            stringify!(wReserved1)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__COMMTIMEOUTS() {
    assert_eq!(
        ::std::mem::size_of::<_COMMTIMEOUTS>(),
        20usize,
        concat!("Size of: ", stringify!(_COMMTIMEOUTS))
    );
    assert_eq!(
        ::std::mem::align_of::<_COMMTIMEOUTS>(),
        4usize,
        concat!("Alignment of ", stringify!(_COMMTIMEOUTS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_COMMTIMEOUTS>())).ReadIntervalTimeout as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMMTIMEOUTS),
            "::",
            stringify!(ReadIntervalTimeout)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_COMMTIMEOUTS>())).ReadTotalTimeoutMultiplier as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMMTIMEOUTS),
            "::",
            stringify!(ReadTotalTimeoutMultiplier)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_COMMTIMEOUTS>())).ReadTotalTimeoutConstant as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMMTIMEOUTS),
            "::",
            stringify!(ReadTotalTimeoutConstant)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_COMMTIMEOUTS>())).WriteTotalTimeoutMultiplier as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMMTIMEOUTS),
            "::",
            stringify!(WriteTotalTimeoutMultiplier)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_COMMTIMEOUTS>())).WriteTotalTimeoutConstant as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMMTIMEOUTS),
            "::",
            stringify!(WriteTotalTimeoutConstant)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__COMMCONFIG() {
    assert_eq!(
        ::std::mem::size_of::<_COMMCONFIG>(),
        52usize,
        concat!("Size of: ", stringify!(_COMMCONFIG))
    );
    assert_eq!(
        ::std::mem::align_of::<_COMMCONFIG>(),
        4usize,
        concat!("Alignment of ", stringify!(_COMMCONFIG))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COMMCONFIG>())).dwSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMMCONFIG),
            "::",
            stringify!(dwSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COMMCONFIG>())).wVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMMCONFIG),
            "::",
            stringify!(wVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COMMCONFIG>())).wReserved as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMMCONFIG),
            "::",
            stringify!(wReserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COMMCONFIG>())).dcb as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMMCONFIG),
            "::",
            stringify!(dcb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COMMCONFIG>())).dwProviderSubType as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMMCONFIG),
            "::",
            stringify!(dwProviderSubType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COMMCONFIG>())).dwProviderOffset as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMMCONFIG),
            "::",
            stringify!(dwProviderOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COMMCONFIG>())).dwProviderSize as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMMCONFIG),
            "::",
            stringify!(dwProviderSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COMMCONFIG>())).wcProviderData as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMMCONFIG),
            "::",
            stringify!(wcProviderData)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__MEMORYSTATUS() {
    assert_eq!(
        ::std::mem::size_of::<_MEMORYSTATUS>(),
        56usize,
        concat!("Size of: ", stringify!(_MEMORYSTATUS))
    );
    assert_eq!(
        ::std::mem::align_of::<_MEMORYSTATUS>(),
        8usize,
        concat!("Alignment of ", stringify!(_MEMORYSTATUS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MEMORYSTATUS>())).dwLength as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORYSTATUS),
            "::",
            stringify!(dwLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MEMORYSTATUS>())).dwMemoryLoad as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORYSTATUS),
            "::",
            stringify!(dwMemoryLoad)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MEMORYSTATUS>())).dwTotalPhys as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORYSTATUS),
            "::",
            stringify!(dwTotalPhys)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MEMORYSTATUS>())).dwAvailPhys as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORYSTATUS),
            "::",
            stringify!(dwAvailPhys)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MEMORYSTATUS>())).dwTotalPageFile as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORYSTATUS),
            "::",
            stringify!(dwTotalPageFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MEMORYSTATUS>())).dwAvailPageFile as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORYSTATUS),
            "::",
            stringify!(dwAvailPageFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MEMORYSTATUS>())).dwTotalVirtual as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORYSTATUS),
            "::",
            stringify!(dwTotalVirtual)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MEMORYSTATUS>())).dwAvailVirtual as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_MEMORYSTATUS),
            "::",
            stringify!(dwAvailVirtual)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__JIT_DEBUG_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_JIT_DEBUG_INFO>(),
        40usize,
        concat!("Size of: ", stringify!(_JIT_DEBUG_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_JIT_DEBUG_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_JIT_DEBUG_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JIT_DEBUG_INFO>())).dwSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_JIT_DEBUG_INFO),
            "::",
            stringify!(dwSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JIT_DEBUG_INFO>())).dwProcessorArchitecture as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_JIT_DEBUG_INFO),
            "::",
            stringify!(dwProcessorArchitecture)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JIT_DEBUG_INFO>())).dwThreadID as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_JIT_DEBUG_INFO),
            "::",
            stringify!(dwThreadID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JIT_DEBUG_INFO>())).dwReserved0 as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_JIT_DEBUG_INFO),
            "::",
            stringify!(dwReserved0)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JIT_DEBUG_INFO>())).lpExceptionAddress as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_JIT_DEBUG_INFO),
            "::",
            stringify!(lpExceptionAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JIT_DEBUG_INFO>())).lpExceptionRecord as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_JIT_DEBUG_INFO),
            "::",
            stringify!(lpExceptionRecord)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JIT_DEBUG_INFO>())).lpContextRecord as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_JIT_DEBUG_INFO),
            "::",
            stringify!(lpContextRecord)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__OFSTRUCT() {
    assert_eq!(
        ::std::mem::size_of::<_OFSTRUCT>(),
        136usize,
        concat!("Size of: ", stringify!(_OFSTRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<_OFSTRUCT>(),
        2usize,
        concat!("Alignment of ", stringify!(_OFSTRUCT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OFSTRUCT>())).cBytes as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OFSTRUCT),
            "::",
            stringify!(cBytes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OFSTRUCT>())).fFixedDisk as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_OFSTRUCT),
            "::",
            stringify!(fFixedDisk)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OFSTRUCT>())).nErrCode as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_OFSTRUCT),
            "::",
            stringify!(nErrCode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OFSTRUCT>())).Reserved1 as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_OFSTRUCT),
            "::",
            stringify!(Reserved1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OFSTRUCT>())).Reserved2 as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_OFSTRUCT),
            "::",
            stringify!(Reserved2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OFSTRUCT>())).szPathName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_OFSTRUCT),
            "::",
            stringify!(szPathName)
        )
    );
}
pub type OFSTRUCT = _OFSTRUCT;
pub type LPOFSTRUCT = *mut _OFSTRUCT;
pub type POFSTRUCT = *mut _OFSTRUCT;
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 GlobalUnlock(hMem: HGLOBAL) -> BOOL;
}
extern "C" {
    pub fn GlobalLock(hMem: HGLOBAL) -> LPVOID;
}
extern "C" {
    pub fn GlobalFlags(hMem: HGLOBAL) -> UINT;
}
extern "C" {
    pub fn GlobalHandle(pMem: LPCVOID) -> HGLOBAL;
}
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) -> BOOL;
}
extern "C" {
    pub fn GlobalMemoryStatus(lpBuffer: LPMEMORYSTATUS);
}
extern "C" {
    pub fn LocalAlloc(uFlags: UINT, uBytes: SIZE_T) -> HLOCAL;
}
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) -> BOOL;
}
extern "C" {
    pub fn LocalSize(hMem: HLOCAL) -> SIZE_T;
}
extern "C" {
    pub fn LocalFlags(hMem: HLOCAL) -> UINT;
}
extern "C" {
    pub fn LocalFree(hMem: HLOCAL) -> HLOCAL;
}
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) -> BOOL;
}
extern "C" {
    pub fn GetBinaryTypeW(lpApplicationName: LPCWSTR, lpBinaryType: LPDWORD) -> BOOL;
}
extern "C" {
    pub fn GetShortPathNameA(lpszLongPath: LPCSTR, lpszShortPath: LPSTR, cchBuffer: DWORD)
        -> DWORD;
}
extern "C" {
    pub fn GetLongPathNameTransactedA(
        lpszShortPath: LPCSTR,
        lpszLongPath: LPSTR,
        cchBuffer: DWORD,
        hTransaction: HANDLE,
    ) -> DWORD;
}
extern "C" {
    pub fn GetLongPathNameTransactedW(
        lpszShortPath: LPCWSTR,
        lpszLongPath: LPWSTR,
        cchBuffer: DWORD,
        hTransaction: HANDLE,
    ) -> DWORD;
}
extern "C" {
    pub fn GetProcessAffinityMask(
        hProcess: HANDLE,
        lpProcessAffinityMask: PDWORD_PTR,
        lpSystemAffinityMask: PDWORD_PTR,
    ) -> BOOL;
}
extern "C" {
    pub fn SetProcessAffinityMask(hProcess: HANDLE, dwProcessAffinityMask: DWORD_PTR) -> BOOL;
}
extern "C" {
    pub fn GetProcessIoCounters(hProcess: HANDLE, lpIoCounters: PIO_COUNTERS) -> BOOL;
}
extern "C" {
    pub fn GetProcessWorkingSetSize(
        hProcess: HANDLE,
        lpMinimumWorkingSetSize: PSIZE_T,
        lpMaximumWorkingSetSize: PSIZE_T,
    ) -> BOOL;
}
extern "C" {
    pub fn SetProcessWorkingSetSize(
        hProcess: HANDLE,
        dwMinimumWorkingSetSize: SIZE_T,
        dwMaximumWorkingSetSize: SIZE_T,
    ) -> BOOL;
}
extern "C" {
    pub fn FatalExit(ExitCode: ::std::os::raw::c_int);
}
extern "C" {
    pub fn SetEnvironmentStringsA(NewEnvironment: LPCH) -> BOOL;
}
extern "C" {
    pub fn SwitchToFiber(lpFiber: LPVOID);
}
extern "C" {
    pub fn DeleteFiber(lpFiber: LPVOID);
}
extern "C" {
    pub fn ConvertFiberToThread() -> BOOL;
}
extern "C" {
    pub fn CreateFiberEx(
        dwStackCommitSize: SIZE_T,
        dwStackReserveSize: SIZE_T,
        dwFlags: DWORD,
        lpStartAddress: LPFIBER_START_ROUTINE,
        lpParameter: LPVOID,
    ) -> LPVOID;
}
extern "C" {
    pub fn ConvertThreadToFiberEx(lpParameter: LPVOID, dwFlags: DWORD) -> LPVOID;
}
extern "C" {
    pub fn CreateFiber(
        dwStackSize: SIZE_T,
        lpStartAddress: LPFIBER_START_ROUTINE,
        lpParameter: LPVOID,
    ) -> LPVOID;
}
extern "C" {
    pub fn ConvertThreadToFiber(lpParameter: LPVOID) -> LPVOID;
}
pub type PUMS_CONTEXT = *mut ::std::os::raw::c_void;
pub type PUMS_COMPLETION_LIST = *mut ::std::os::raw::c_void;
pub use self::_RTL_UMS_THREAD_INFO_CLASS as UMS_THREAD_INFO_CLASS;
pub type PUMS_THREAD_INFO_CLASS = *mut _RTL_UMS_THREAD_INFO_CLASS;
pub use self::_RTL_UMS_SCHEDULER_REASON as UMS_SCHEDULER_REASON;
pub type PUMS_SCHEDULER_ENTRY_POINT = PRTL_UMS_SCHEDULER_ENTRY_POINT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _UMS_SCHEDULER_STARTUP_INFO {
    pub UmsVersion: ULONG,
    pub CompletionList: PUMS_COMPLETION_LIST,
    pub SchedulerProc: PUMS_SCHEDULER_ENTRY_POINT,
    pub SchedulerParam: PVOID,
}
#[test]
fn bindgen_test_layout__UMS_SCHEDULER_STARTUP_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_UMS_SCHEDULER_STARTUP_INFO>(),
        32usize,
        concat!("Size of: ", stringify!(_UMS_SCHEDULER_STARTUP_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_UMS_SCHEDULER_STARTUP_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_UMS_SCHEDULER_STARTUP_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_UMS_SCHEDULER_STARTUP_INFO>())).UmsVersion as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_UMS_SCHEDULER_STARTUP_INFO),
            "::",
            stringify!(UmsVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_UMS_SCHEDULER_STARTUP_INFO>())).CompletionList as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_UMS_SCHEDULER_STARTUP_INFO),
            "::",
            stringify!(CompletionList)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_UMS_SCHEDULER_STARTUP_INFO>())).SchedulerProc as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_UMS_SCHEDULER_STARTUP_INFO),
            "::",
            stringify!(SchedulerProc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_UMS_SCHEDULER_STARTUP_INFO>())).SchedulerParam as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_UMS_SCHEDULER_STARTUP_INFO),
            "::",
            stringify!(SchedulerParam)
        )
    );
}
pub type UMS_SCHEDULER_STARTUP_INFO = _UMS_SCHEDULER_STARTUP_INFO;
pub type PUMS_SCHEDULER_STARTUP_INFO = *mut _UMS_SCHEDULER_STARTUP_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _UMS_SYSTEM_THREAD_INFORMATION {
    pub UmsVersion: ULONG,
    pub __bindgen_anon_1: _UMS_SYSTEM_THREAD_INFORMATION__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _UMS_SYSTEM_THREAD_INFORMATION__bindgen_ty_1 {
    pub __bindgen_anon_1: _UMS_SYSTEM_THREAD_INFORMATION__bindgen_ty_1__bindgen_ty_1,
    pub ThreadUmsFlags: ULONG,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _UMS_SYSTEM_THREAD_INFORMATION__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize], u8>,
    pub __bindgen_padding_0: [u8; 3usize],
}
#[test]
fn bindgen_test_layout__UMS_SYSTEM_THREAD_INFORMATION__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_UMS_SYSTEM_THREAD_INFORMATION__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_UMS_SYSTEM_THREAD_INFORMATION__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_UMS_SYSTEM_THREAD_INFORMATION__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_UMS_SYSTEM_THREAD_INFORMATION__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
impl _UMS_SYSTEM_THREAD_INFORMATION__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn IsUmsSchedulerThread(&self) -> ULONG {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_IsUmsSchedulerThread(&mut self, val: ULONG) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn IsUmsWorkerThread(&self) -> ULONG {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_IsUmsWorkerThread(&mut self, val: ULONG) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        IsUmsSchedulerThread: ULONG,
        IsUmsWorkerThread: ULONG,
    ) -> __BindgenBitfieldUnit<[u8; 1usize], u8> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize], u8> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let IsUmsSchedulerThread: u32 = unsafe { ::std::mem::transmute(IsUmsSchedulerThread) };
            IsUmsSchedulerThread as u64
        });
        __bindgen_bitfield_unit.set(1usize, 1u8, {
            let IsUmsWorkerThread: u32 = unsafe { ::std::mem::transmute(IsUmsWorkerThread) };
            IsUmsWorkerThread as u64
        });
        __bindgen_bitfield_unit
    }
}
#[test]
fn bindgen_test_layout__UMS_SYSTEM_THREAD_INFORMATION__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_UMS_SYSTEM_THREAD_INFORMATION__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_UMS_SYSTEM_THREAD_INFORMATION__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_UMS_SYSTEM_THREAD_INFORMATION__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_UMS_SYSTEM_THREAD_INFORMATION__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_UMS_SYSTEM_THREAD_INFORMATION__bindgen_ty_1>())).ThreadUmsFlags
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_UMS_SYSTEM_THREAD_INFORMATION__bindgen_ty_1),
            "::",
            stringify!(ThreadUmsFlags)
        )
    );
}
#[test]
fn bindgen_test_layout__UMS_SYSTEM_THREAD_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_UMS_SYSTEM_THREAD_INFORMATION>(),
        8usize,
        concat!("Size of: ", stringify!(_UMS_SYSTEM_THREAD_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_UMS_SYSTEM_THREAD_INFORMATION>(),
        4usize,
        concat!("Alignment of ", stringify!(_UMS_SYSTEM_THREAD_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_UMS_SYSTEM_THREAD_INFORMATION>())).UmsVersion as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_UMS_SYSTEM_THREAD_INFORMATION),
            "::",
            stringify!(UmsVersion)
        )
    );
}
pub type UMS_SYSTEM_THREAD_INFORMATION = _UMS_SYSTEM_THREAD_INFORMATION;
pub type PUMS_SYSTEM_THREAD_INFORMATION = *mut _UMS_SYSTEM_THREAD_INFORMATION;
extern "C" {
    pub fn CreateUmsCompletionList(UmsCompletionList: *mut PUMS_COMPLETION_LIST) -> BOOL;
}
extern "C" {
    pub fn DequeueUmsCompletionListItems(
        UmsCompletionList: PUMS_COMPLETION_LIST,
        WaitTimeOut: DWORD,
        UmsThreadList: *mut PUMS_CONTEXT,
    ) -> BOOL;
}
extern "C" {
    pub fn GetUmsCompletionListEvent(
        UmsCompletionList: PUMS_COMPLETION_LIST,
        UmsCompletionEvent: PHANDLE,
    ) -> BOOL;
}
extern "C" {
    pub fn ExecuteUmsThread(UmsThread: PUMS_CONTEXT) -> BOOL;
}
extern "C" {
    pub fn UmsThreadYield(SchedulerParam: PVOID) -> BOOL;
}
extern "C" {
    pub fn DeleteUmsCompletionList(UmsCompletionList: PUMS_COMPLETION_LIST) -> BOOL;
}
extern "C" {
    pub fn GetCurrentUmsThread() -> PUMS_CONTEXT;
}
extern "C" {
    pub fn GetNextUmsListItem(UmsContext: PUMS_CONTEXT) -> PUMS_CONTEXT;
}
extern "C" {
    pub fn QueryUmsThreadInformation(
        UmsThread: PUMS_CONTEXT,
        UmsThreadInfoClass: UMS_THREAD_INFO_CLASS,
        UmsThreadInformation: PVOID,
        UmsThreadInformationLength: ULONG,
        ReturnLength: PULONG,
    ) -> BOOL;
}
extern "C" {
    pub fn SetUmsThreadInformation(
        UmsThread: PUMS_CONTEXT,
        UmsThreadInfoClass: UMS_THREAD_INFO_CLASS,
        UmsThreadInformation: PVOID,
        UmsThreadInformationLength: ULONG,
    ) -> BOOL;
}
extern "C" {
    pub fn DeleteUmsThreadContext(UmsThread: PUMS_CONTEXT) -> BOOL;
}
extern "C" {
    pub fn CreateUmsThreadContext(lpUmsThread: *mut PUMS_CONTEXT) -> BOOL;
}
extern "C" {
    pub fn EnterUmsSchedulingMode(SchedulerStartupInfo: PUMS_SCHEDULER_STARTUP_INFO) -> BOOL;
}
extern "C" {
    pub fn GetUmsSystemThreadInformation(
        ThreadHandle: HANDLE,
        SystemThreadInfo: PUMS_SYSTEM_THREAD_INFORMATION,
    ) -> BOOL;
}
extern "C" {
    pub fn SetThreadAffinityMask(hThread: HANDLE, dwThreadAffinityMask: DWORD_PTR) -> DWORD_PTR;
}
extern "C" {
    pub fn SetProcessDEPPolicy(dwFlags: DWORD) -> BOOL;
}
extern "C" {
    pub fn GetProcessDEPPolicy(hProcess: HANDLE, lpFlags: LPDWORD, lpPermanent: PBOOL) -> BOOL;
}
extern "C" {
    pub fn RequestWakeupLatency(latency: LATENCY_TIME) -> BOOL;
}
extern "C" {
    pub fn IsSystemResumeAutomatic() -> BOOL;
}
extern "C" {
    pub fn GetThreadSelectorEntry(
        hThread: HANDLE,
        dwSelector: DWORD,
        lpSelectorEntry: LPLDT_ENTRY,
    ) -> BOOL;
}
extern "C" {
    pub fn SetThreadExecutionState(esFlags: EXECUTION_STATE) -> EXECUTION_STATE;
}
pub type POWER_REQUEST_CONTEXT = REASON_CONTEXT;
pub type PPOWER_REQUEST_CONTEXT = *mut REASON_CONTEXT;
pub type LPPOWER_REQUEST_CONTEXT = *mut REASON_CONTEXT;
extern "C" {
    pub fn PowerCreateRequest(Context: PREASON_CONTEXT) -> HANDLE;
}
extern "C" {
    pub fn PowerSetRequest(PowerRequest: HANDLE, RequestType: POWER_REQUEST_TYPE) -> BOOL;
}
extern "C" {
    pub fn PowerClearRequest(PowerRequest: HANDLE, RequestType: POWER_REQUEST_TYPE) -> BOOL;
}
extern "C" {
    pub fn SetFileCompletionNotificationModes(FileHandle: HANDLE, Flags: UCHAR) -> BOOL;
}
extern "C" {
    pub fn Wow64GetThreadContext(hThread: HANDLE, lpContext: PWOW64_CONTEXT) -> BOOL;
}
extern "C" {
    pub fn Wow64SetThreadContext(hThread: HANDLE, lpContext: *const WOW64_CONTEXT) -> BOOL;
}
extern "C" {
    pub fn Wow64GetThreadSelectorEntry(
        hThread: HANDLE,
        dwSelector: DWORD,
        lpSelectorEntry: PWOW64_LDT_ENTRY,
    ) -> BOOL;
}
extern "C" {
    pub fn Wow64SuspendThread(hThread: HANDLE) -> DWORD;
}
extern "C" {
    pub fn DebugSetProcessKillOnExit(KillOnExit: BOOL) -> BOOL;
}
extern "C" {
    pub fn DebugBreakProcess(Process: HANDLE) -> BOOL;
}
extern "C" {
    pub fn PulseEvent(hEvent: HANDLE) -> BOOL;
}
extern "C" {
    pub fn GlobalDeleteAtom(nAtom: ATOM) -> ATOM;
}
extern "C" {
    pub fn InitAtomTable(nSize: DWORD) -> BOOL;
}
extern "C" {
    pub fn DeleteAtom(nAtom: ATOM) -> ATOM;
}
extern "C" {
    pub fn SetHandleCount(uNumber: UINT) -> UINT;
}
extern "C" {
    pub fn RequestDeviceWakeup(hDevice: HANDLE) -> BOOL;
}
extern "C" {
    pub fn CancelDeviceWakeupRequest(hDevice: HANDLE) -> BOOL;
}
extern "C" {
    pub fn GetDevicePowerState(hDevice: HANDLE, pfOn: *mut BOOL) -> BOOL;
}
extern "C" {
    pub fn SetMessageWaitingIndicator(hMsgIndicator: HANDLE, ulMsgCount: ULONG) -> BOOL;
}
extern "C" {
    pub fn SetFileShortNameA(hFile: HANDLE, lpShortName: LPCSTR) -> BOOL;
}
extern "C" {
    pub fn SetFileShortNameW(hFile: HANDLE, lpShortName: LPCWSTR) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn ClearCommError(hFile: HANDLE, lpErrors: LPDWORD, lpStat: LPCOMSTAT) -> BOOL;
}
extern "C" {
    pub fn SetupComm(hFile: HANDLE, dwInQueue: DWORD, dwOutQueue: DWORD) -> BOOL;
}
extern "C" {
    pub fn EscapeCommFunction(hFile: HANDLE, dwFunc: DWORD) -> BOOL;
}
extern "C" {
    pub fn GetCommConfig(hCommDev: HANDLE, lpCC: LPCOMMCONFIG, lpdwSize: LPDWORD) -> BOOL;
}
extern "C" {
    pub fn GetCommMask(hFile: HANDLE, lpEvtMask: LPDWORD) -> BOOL;
}
extern "C" {
    pub fn GetCommProperties(hFile: HANDLE, lpCommProp: LPCOMMPROP) -> BOOL;
}
extern "C" {
    pub fn GetCommModemStatus(hFile: HANDLE, lpModemStat: LPDWORD) -> BOOL;
}
extern "C" {
    pub fn GetCommState(hFile: HANDLE, lpDCB: LPDCB) -> BOOL;
}
extern "C" {
    pub fn GetCommTimeouts(hFile: HANDLE, lpCommTimeouts: LPCOMMTIMEOUTS) -> BOOL;
}
extern "C" {
    pub fn PurgeComm(hFile: HANDLE, dwFlags: DWORD) -> BOOL;
}
extern "C" {
    pub fn SetCommBreak(hFile: HANDLE) -> BOOL;
}
extern "C" {
    pub fn SetCommConfig(hCommDev: HANDLE, lpCC: LPCOMMCONFIG, dwSize: DWORD) -> BOOL;
}
extern "C" {
    pub fn SetCommMask(hFile: HANDLE, dwEvtMask: DWORD) -> BOOL;
}
extern "C" {
    pub fn SetCommState(hFile: HANDLE, lpDCB: LPDCB) -> BOOL;
}
extern "C" {
    pub fn SetCommTimeouts(hFile: HANDLE, lpCommTimeouts: LPCOMMTIMEOUTS) -> BOOL;
}
extern "C" {
    pub fn TransmitCommChar(hFile: HANDLE, cChar: ::std::os::raw::c_char) -> BOOL;
}
extern "C" {
    pub fn WaitCommEvent(hFile: HANDLE, lpEvtMask: LPDWORD, lpOverlapped: LPOVERLAPPED) -> BOOL;
}
extern "C" {
    pub fn OpenCommPort(
        uPortNumber: ULONG,
        dwDesiredAccess: DWORD,
        dwFlagsAndAttributes: DWORD,
    ) -> HANDLE;
}
extern "C" {
    pub fn GetCommPorts(
        lpPortNumbers: PULONG,
        uPortNumbersCount: ULONG,
        puPortNumbersFound: PULONG,
    ) -> ULONG;
}
extern "C" {
    pub fn SetTapePosition(
        hDevice: HANDLE,
        dwPositionMethod: DWORD,
        dwPartition: DWORD,
        dwOffsetLow: DWORD,
        dwOffsetHigh: DWORD,
        bImmediate: BOOL,
    ) -> 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: BOOL) -> DWORD;
}
extern "C" {
    pub fn EraseTape(hDevice: HANDLE, dwEraseType: DWORD, bImmediate: BOOL) -> 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: BOOL,
    ) -> 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 MulDiv(
        nNumber: ::std::os::raw::c_int,
        nNumerator: ::std::os::raw::c_int,
        nDenominator: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
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 = ::std::os::raw::c_int;
pub use self::_DEP_SYSTEM_POLICY_TYPE as DEP_SYSTEM_POLICY_TYPE;
extern "C" {
    pub fn GetSystemDEPPolicy() -> DEP_SYSTEM_POLICY_TYPE;
}
extern "C" {
    pub fn GetSystemRegistryQuota(pdwQuotaAllowed: PDWORD, pdwQuotaUsed: PDWORD) -> BOOL;
}
extern "C" {
    pub fn FileTimeToDosDateTime(
        lpFileTime: *const FILETIME,
        lpFatDate: LPWORD,
        lpFatTime: LPWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn DosDateTimeToFileTime(wFatDate: WORD, wFatTime: WORD, lpFileTime: LPFILETIME) -> BOOL;
}
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;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn SetMailslotInfo(hMailslot: HANDLE, lReadTimeout: DWORD) -> BOOL;
}
extern "C" {
    pub fn EncryptFileA(lpFileName: LPCSTR) -> BOOL;
}
extern "C" {
    pub fn EncryptFileW(lpFileName: LPCWSTR) -> BOOL;
}
extern "C" {
    pub fn DecryptFileA(lpFileName: LPCSTR, dwReserved: DWORD) -> BOOL;
}
extern "C" {
    pub fn DecryptFileW(lpFileName: LPCWSTR, dwReserved: DWORD) -> BOOL;
}
extern "C" {
    pub fn FileEncryptionStatusA(lpFileName: LPCSTR, lpStatus: LPDWORD) -> BOOL;
}
extern "C" {
    pub fn FileEncryptionStatusW(lpFileName: LPCWSTR, lpStatus: LPDWORD) -> BOOL;
}
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 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,
    ) -> BOOL;
}
extern "C" {
    pub fn BackupRead(
        hFile: HANDLE,
        lpBuffer: LPBYTE,
        nNumberOfBytesToRead: DWORD,
        lpNumberOfBytesRead: LPDWORD,
        bAbort: BOOL,
        bProcessSecurity: BOOL,
        lpContext: *mut LPVOID,
    ) -> BOOL;
}
extern "C" {
    pub fn BackupSeek(
        hFile: HANDLE,
        dwLowBytesToSeek: DWORD,
        dwHighBytesToSeek: DWORD,
        lpdwLowByteSeeked: LPDWORD,
        lpdwHighByteSeeked: LPDWORD,
        lpContext: *mut LPVOID,
    ) -> BOOL;
}
extern "C" {
    pub fn BackupWrite(
        hFile: HANDLE,
        lpBuffer: LPBYTE,
        nNumberOfBytesToWrite: DWORD,
        lpNumberOfBytesWritten: LPDWORD,
        bAbort: BOOL,
        bProcessSecurity: BOOL,
        lpContext: *mut LPVOID,
    ) -> BOOL;
}
#[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],
}
#[test]
fn bindgen_test_layout__WIN32_STREAM_ID() {
    assert_eq!(
        ::std::mem::size_of::<_WIN32_STREAM_ID>(),
        24usize,
        concat!("Size of: ", stringify!(_WIN32_STREAM_ID))
    );
    assert_eq!(
        ::std::mem::align_of::<_WIN32_STREAM_ID>(),
        8usize,
        concat!("Alignment of ", stringify!(_WIN32_STREAM_ID))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WIN32_STREAM_ID>())).dwStreamId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_STREAM_ID),
            "::",
            stringify!(dwStreamId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIN32_STREAM_ID>())).dwStreamAttributes as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_STREAM_ID),
            "::",
            stringify!(dwStreamAttributes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WIN32_STREAM_ID>())).Size as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_STREAM_ID),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIN32_STREAM_ID>())).dwStreamNameSize as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_STREAM_ID),
            "::",
            stringify!(dwStreamNameSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WIN32_STREAM_ID>())).cStreamName as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIN32_STREAM_ID),
            "::",
            stringify!(cStreamName)
        )
    );
}
pub type WIN32_STREAM_ID = _WIN32_STREAM_ID;
pub type LPWIN32_STREAM_ID = *mut _WIN32_STREAM_ID;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STARTUPINFOEXA {
    pub StartupInfo: STARTUPINFOA,
    pub lpAttributeList: LPPROC_THREAD_ATTRIBUTE_LIST,
}
#[test]
fn bindgen_test_layout__STARTUPINFOEXA() {
    assert_eq!(
        ::std::mem::size_of::<_STARTUPINFOEXA>(),
        112usize,
        concat!("Size of: ", stringify!(_STARTUPINFOEXA))
    );
    assert_eq!(
        ::std::mem::align_of::<_STARTUPINFOEXA>(),
        8usize,
        concat!("Alignment of ", stringify!(_STARTUPINFOEXA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOEXA>())).StartupInfo as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOEXA),
            "::",
            stringify!(StartupInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOEXA>())).lpAttributeList as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOEXA),
            "::",
            stringify!(lpAttributeList)
        )
    );
}
pub type STARTUPINFOEXA = _STARTUPINFOEXA;
pub type LPSTARTUPINFOEXA = *mut _STARTUPINFOEXA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STARTUPINFOEXW {
    pub StartupInfo: STARTUPINFOW,
    pub lpAttributeList: LPPROC_THREAD_ATTRIBUTE_LIST,
}
#[test]
fn bindgen_test_layout__STARTUPINFOEXW() {
    assert_eq!(
        ::std::mem::size_of::<_STARTUPINFOEXW>(),
        112usize,
        concat!("Size of: ", stringify!(_STARTUPINFOEXW))
    );
    assert_eq!(
        ::std::mem::align_of::<_STARTUPINFOEXW>(),
        8usize,
        concat!("Alignment of ", stringify!(_STARTUPINFOEXW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOEXW>())).StartupInfo as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOEXW),
            "::",
            stringify!(StartupInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STARTUPINFOEXW>())).lpAttributeList as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_STARTUPINFOEXW),
            "::",
            stringify!(lpAttributeList)
        )
    );
}
pub type STARTUPINFOEXW = _STARTUPINFOEXW;
pub type LPSTARTUPINFOEXW = *mut _STARTUPINFOEXW;
pub type STARTUPINFOEX = STARTUPINFOEXA;
pub type LPSTARTUPINFOEX = LPSTARTUPINFOEXA;
extern "C" {
    pub fn OpenMutexA(dwDesiredAccess: DWORD, bInheritHandle: BOOL, 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: BOOL, lpName: LPCSTR) -> HANDLE;
}
extern "C" {
    pub fn CreateWaitableTimerA(
        lpTimerAttributes: LPSECURITY_ATTRIBUTES,
        bManualReset: BOOL,
        lpTimerName: LPCSTR,
    ) -> HANDLE;
}
extern "C" {
    pub fn OpenWaitableTimerA(
        dwDesiredAccess: DWORD,
        bInheritHandle: BOOL,
        lpTimerName: LPCSTR,
    ) -> HANDLE;
}
extern "C" {
    pub fn CreateSemaphoreExA(
        lpSemaphoreAttributes: LPSECURITY_ATTRIBUTES,
        lInitialCount: LONG,
        lMaximumCount: LONG,
        lpName: LPCSTR,
        dwFlags: DWORD,
        dwDesiredAccess: DWORD,
    ) -> HANDLE;
}
extern "C" {
    pub fn CreateWaitableTimerExA(
        lpTimerAttributes: LPSECURITY_ATTRIBUTES,
        lpTimerName: LPCSTR,
        dwFlags: DWORD,
        dwDesiredAccess: DWORD,
    ) -> HANDLE;
}
extern "C" {
    pub fn CreateFileMappingA(
        hFile: HANDLE,
        lpFileMappingAttributes: LPSECURITY_ATTRIBUTES,
        flProtect: DWORD,
        dwMaximumSizeHigh: DWORD,
        dwMaximumSizeLow: DWORD,
        lpName: LPCSTR,
    ) -> HANDLE;
}
extern "C" {
    pub fn CreateFileMappingNumaA(
        hFile: HANDLE,
        lpFileMappingAttributes: LPSECURITY_ATTRIBUTES,
        flProtect: DWORD,
        dwMaximumSizeHigh: DWORD,
        dwMaximumSizeLow: DWORD,
        lpName: LPCSTR,
        nndPreferred: DWORD,
    ) -> HANDLE;
}
extern "C" {
    pub fn OpenFileMappingA(dwDesiredAccess: DWORD, bInheritHandle: BOOL, lpName: LPCSTR)
        -> HANDLE;
}
extern "C" {
    pub fn GetLogicalDriveStringsA(nBufferLength: DWORD, lpBuffer: LPSTR) -> DWORD;
}
extern "C" {
    pub fn LoadPackagedLibrary(lpwLibFileName: LPCWSTR, Reserved: DWORD) -> HMODULE;
}
extern "C" {
    pub fn QueryFullProcessImageNameA(
        hProcess: HANDLE,
        dwFlags: DWORD,
        lpExeName: LPSTR,
        lpdwSize: PDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn QueryFullProcessImageNameW(
        hProcess: HANDLE,
        dwFlags: DWORD,
        lpExeName: LPWSTR,
        lpdwSize: PDWORD,
    ) -> BOOL;
}
pub const _PROC_THREAD_ATTRIBUTE_NUM_ProcThreadAttributeParentProcess: _PROC_THREAD_ATTRIBUTE_NUM =
    0;
pub const _PROC_THREAD_ATTRIBUTE_NUM_ProcThreadAttributeHandleList: _PROC_THREAD_ATTRIBUTE_NUM = 2;
pub const _PROC_THREAD_ATTRIBUTE_NUM_ProcThreadAttributeGroupAffinity: _PROC_THREAD_ATTRIBUTE_NUM =
    3;
pub const _PROC_THREAD_ATTRIBUTE_NUM_ProcThreadAttributePreferredNode: _PROC_THREAD_ATTRIBUTE_NUM =
    4;
pub const _PROC_THREAD_ATTRIBUTE_NUM_ProcThreadAttributeIdealProcessor: _PROC_THREAD_ATTRIBUTE_NUM =
    5;
pub const _PROC_THREAD_ATTRIBUTE_NUM_ProcThreadAttributeUmsThread: _PROC_THREAD_ATTRIBUTE_NUM = 6;
pub const _PROC_THREAD_ATTRIBUTE_NUM_ProcThreadAttributeMitigationPolicy:
    _PROC_THREAD_ATTRIBUTE_NUM = 7;
pub const _PROC_THREAD_ATTRIBUTE_NUM_ProcThreadAttributeSecurityCapabilities:
    _PROC_THREAD_ATTRIBUTE_NUM = 9;
pub const _PROC_THREAD_ATTRIBUTE_NUM_ProcThreadAttributeProtectionLevel:
    _PROC_THREAD_ATTRIBUTE_NUM = 11;
pub const _PROC_THREAD_ATTRIBUTE_NUM_ProcThreadAttributeJobList: _PROC_THREAD_ATTRIBUTE_NUM = 13;
pub const _PROC_THREAD_ATTRIBUTE_NUM_ProcThreadAttributeChildProcessPolicy:
    _PROC_THREAD_ATTRIBUTE_NUM = 14;
pub const _PROC_THREAD_ATTRIBUTE_NUM_ProcThreadAttributeAllApplicationPackagesPolicy:
    _PROC_THREAD_ATTRIBUTE_NUM = 15;
pub const _PROC_THREAD_ATTRIBUTE_NUM_ProcThreadAttributeWin32kFilter: _PROC_THREAD_ATTRIBUTE_NUM =
    16;
pub const _PROC_THREAD_ATTRIBUTE_NUM_ProcThreadAttributeSafeOpenPromptOriginClaim:
    _PROC_THREAD_ATTRIBUTE_NUM = 17;
pub const _PROC_THREAD_ATTRIBUTE_NUM_ProcThreadAttributeDesktopAppPolicy:
    _PROC_THREAD_ATTRIBUTE_NUM = 18;
pub const _PROC_THREAD_ATTRIBUTE_NUM_ProcThreadAttributePseudoConsole: _PROC_THREAD_ATTRIBUTE_NUM =
    22;
pub type _PROC_THREAD_ATTRIBUTE_NUM = ::std::os::raw::c_int;
pub use self::_PROC_THREAD_ATTRIBUTE_NUM as PROC_THREAD_ATTRIBUTE_NUM;
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 GetFirmwareEnvironmentVariableExA(
        lpName: LPCSTR,
        lpGuid: LPCSTR,
        pBuffer: PVOID,
        nSize: DWORD,
        pdwAttribubutes: PDWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn GetFirmwareEnvironmentVariableExW(
        lpName: LPCWSTR,
        lpGuid: LPCWSTR,
        pBuffer: PVOID,
        nSize: DWORD,
        pdwAttribubutes: PDWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn SetFirmwareEnvironmentVariableA(
        lpName: LPCSTR,
        lpGuid: LPCSTR,
        pValue: PVOID,
        nSize: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn SetFirmwareEnvironmentVariableW(
        lpName: LPCWSTR,
        lpGuid: LPCWSTR,
        pValue: PVOID,
        nSize: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn SetFirmwareEnvironmentVariableExA(
        lpName: LPCSTR,
        lpGuid: LPCSTR,
        pValue: PVOID,
        nSize: DWORD,
        dwAttributes: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn SetFirmwareEnvironmentVariableExW(
        lpName: LPCWSTR,
        lpGuid: LPCWSTR,
        pValue: PVOID,
        nSize: DWORD,
        dwAttributes: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetFirmwareType(FirmwareType: PFIRMWARE_TYPE) -> BOOL;
}
extern "C" {
    pub fn IsNativeVhdBoot(NativeVhdBoot: PBOOL) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumResourceTypesW(
        hModule: HMODULE,
        lpEnumFunc: ENUMRESTYPEPROCW,
        lParam: LONG_PTR,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumResourceNamesA(
        hModule: HMODULE,
        lpType: LPCSTR,
        lpEnumFunc: ENUMRESNAMEPROCA,
        lParam: LONG_PTR,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumResourceLanguagesA(
        hModule: HMODULE,
        lpType: LPCSTR,
        lpName: LPCSTR,
        lpEnumFunc: ENUMRESLANGPROCA,
        lParam: LONG_PTR,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumResourceLanguagesW(
        hModule: HMODULE,
        lpType: LPCWSTR,
        lpName: LPCWSTR,
        lpEnumFunc: ENUMRESLANGPROCW,
        lParam: LONG_PTR,
    ) -> BOOL;
}
extern "C" {
    pub fn BeginUpdateResourceA(pFileName: LPCSTR, bDeleteExistingResources: BOOL) -> HANDLE;
}
extern "C" {
    pub fn BeginUpdateResourceW(pFileName: LPCWSTR, bDeleteExistingResources: BOOL) -> HANDLE;
}
extern "C" {
    pub fn UpdateResourceA(
        hUpdate: HANDLE,
        lpType: LPCSTR,
        lpName: LPCSTR,
        wLanguage: WORD,
        lpData: LPVOID,
        cb: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn UpdateResourceW(
        hUpdate: HANDLE,
        lpType: LPCWSTR,
        lpName: LPCWSTR,
        wLanguage: WORD,
        lpData: LPVOID,
        cb: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn EndUpdateResourceA(hUpdate: HANDLE, fDiscard: BOOL) -> BOOL;
}
extern "C" {
    pub fn EndUpdateResourceW(hUpdate: HANDLE, fDiscard: BOOL) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn WriteProfileStringW(lpAppName: LPCWSTR, lpKeyName: LPCWSTR, lpString: LPCWSTR) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn WriteProfileSectionW(lpAppName: LPCWSTR, lpString: LPCWSTR) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn WritePrivateProfileStringW(
        lpAppName: LPCWSTR,
        lpKeyName: LPCWSTR,
        lpString: LPCWSTR,
        lpFileName: LPCWSTR,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn WritePrivateProfileSectionW(
        lpAppName: LPCWSTR,
        lpString: LPCWSTR,
        lpFileName: LPCWSTR,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn GetPrivateProfileStructW(
        lpszSection: LPCWSTR,
        lpszKey: LPCWSTR,
        lpStruct: LPVOID,
        uSizeStruct: UINT,
        szFile: LPCWSTR,
    ) -> BOOL;
}
extern "C" {
    pub fn WritePrivateProfileStructA(
        lpszSection: LPCSTR,
        lpszKey: LPCSTR,
        lpStruct: LPVOID,
        uSizeStruct: UINT,
        szFile: LPCSTR,
    ) -> BOOL;
}
extern "C" {
    pub fn WritePrivateProfileStructW(
        lpszSection: LPCWSTR,
        lpszKey: LPCWSTR,
        lpStruct: LPVOID,
        uSizeStruct: UINT,
        szFile: LPCWSTR,
    ) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn SetDllDirectoryW(lpPathName: LPCWSTR) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn CreateDirectoryExA(
        lpTemplateDirectory: LPCSTR,
        lpNewDirectory: LPCSTR,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
    ) -> BOOL;
}
extern "C" {
    pub fn CreateDirectoryExW(
        lpTemplateDirectory: LPCWSTR,
        lpNewDirectory: LPCWSTR,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
    ) -> BOOL;
}
extern "C" {
    pub fn CreateDirectoryTransactedA(
        lpTemplateDirectory: LPCSTR,
        lpNewDirectory: LPCSTR,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
        hTransaction: HANDLE,
    ) -> BOOL;
}
extern "C" {
    pub fn CreateDirectoryTransactedW(
        lpTemplateDirectory: LPCWSTR,
        lpNewDirectory: LPCWSTR,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
        hTransaction: HANDLE,
    ) -> BOOL;
}
extern "C" {
    pub fn RemoveDirectoryTransactedA(lpPathName: LPCSTR, hTransaction: HANDLE) -> BOOL;
}
extern "C" {
    pub fn RemoveDirectoryTransactedW(lpPathName: LPCWSTR, hTransaction: HANDLE) -> BOOL;
}
extern "C" {
    pub fn GetFullPathNameTransactedA(
        lpFileName: LPCSTR,
        nBufferLength: DWORD,
        lpBuffer: LPSTR,
        lpFilePart: *mut LPSTR,
        hTransaction: HANDLE,
    ) -> DWORD;
}
extern "C" {
    pub fn GetFullPathNameTransactedW(
        lpFileName: LPCWSTR,
        nBufferLength: DWORD,
        lpBuffer: LPWSTR,
        lpFilePart: *mut LPWSTR,
        hTransaction: HANDLE,
    ) -> DWORD;
}
extern "C" {
    pub fn DefineDosDeviceA(dwFlags: DWORD, lpDeviceName: LPCSTR, lpTargetPath: LPCSTR) -> BOOL;
}
extern "C" {
    pub fn QueryDosDeviceA(lpDeviceName: LPCSTR, lpTargetPath: LPSTR, ucchMax: DWORD) -> DWORD;
}
extern "C" {
    pub fn CreateFileTransactedA(
        lpFileName: LPCSTR,
        dwDesiredAccess: DWORD,
        dwShareMode: DWORD,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
        dwCreationDisposition: DWORD,
        dwFlagsAndAttributes: DWORD,
        hTemplateFile: HANDLE,
        hTransaction: HANDLE,
        pusMiniVersion: PUSHORT,
        lpExtendedParameter: PVOID,
    ) -> HANDLE;
}
extern "C" {
    pub fn CreateFileTransactedW(
        lpFileName: LPCWSTR,
        dwDesiredAccess: DWORD,
        dwShareMode: DWORD,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
        dwCreationDisposition: DWORD,
        dwFlagsAndAttributes: DWORD,
        hTemplateFile: HANDLE,
        hTransaction: HANDLE,
        pusMiniVersion: PUSHORT,
        lpExtendedParameter: PVOID,
    ) -> HANDLE;
}
extern "C" {
    pub fn ReOpenFile(
        hOriginalFile: HANDLE,
        dwDesiredAccess: DWORD,
        dwShareMode: DWORD,
        dwFlagsAndAttributes: DWORD,
    ) -> HANDLE;
}
extern "C" {
    pub fn SetFileAttributesTransactedA(
        lpFileName: LPCSTR,
        dwFileAttributes: DWORD,
        hTransaction: HANDLE,
    ) -> BOOL;
}
extern "C" {
    pub fn SetFileAttributesTransactedW(
        lpFileName: LPCWSTR,
        dwFileAttributes: DWORD,
        hTransaction: HANDLE,
    ) -> BOOL;
}
extern "C" {
    pub fn GetFileAttributesTransactedA(
        lpFileName: LPCSTR,
        fInfoLevelId: GET_FILEEX_INFO_LEVELS,
        lpFileInformation: LPVOID,
        hTransaction: HANDLE,
    ) -> BOOL;
}
extern "C" {
    pub fn GetFileAttributesTransactedW(
        lpFileName: LPCWSTR,
        fInfoLevelId: GET_FILEEX_INFO_LEVELS,
        lpFileInformation: LPVOID,
        hTransaction: HANDLE,
    ) -> BOOL;
}
extern "C" {
    pub fn GetCompressedFileSizeTransactedA(
        lpFileName: LPCSTR,
        lpFileSizeHigh: LPDWORD,
        hTransaction: HANDLE,
    ) -> DWORD;
}
extern "C" {
    pub fn GetCompressedFileSizeTransactedW(
        lpFileName: LPCWSTR,
        lpFileSizeHigh: LPDWORD,
        hTransaction: HANDLE,
    ) -> DWORD;
}
extern "C" {
    pub fn DeleteFileTransactedA(lpFileName: LPCSTR, hTransaction: HANDLE) -> BOOL;
}
extern "C" {
    pub fn DeleteFileTransactedW(lpFileName: LPCWSTR, hTransaction: HANDLE) -> BOOL;
}
extern "C" {
    pub fn CheckNameLegalDOS8Dot3A(
        lpName: LPCSTR,
        lpOemName: LPSTR,
        OemNameSize: DWORD,
        pbNameContainsSpaces: PBOOL,
        pbNameLegal: PBOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn CheckNameLegalDOS8Dot3W(
        lpName: LPCWSTR,
        lpOemName: LPSTR,
        OemNameSize: DWORD,
        pbNameContainsSpaces: PBOOL,
        pbNameLegal: PBOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn FindFirstFileTransactedA(
        lpFileName: LPCSTR,
        fInfoLevelId: FINDEX_INFO_LEVELS,
        lpFindFileData: LPVOID,
        fSearchOp: FINDEX_SEARCH_OPS,
        lpSearchFilter: LPVOID,
        dwAdditionalFlags: DWORD,
        hTransaction: HANDLE,
    ) -> HANDLE;
}
extern "C" {
    pub fn FindFirstFileTransactedW(
        lpFileName: LPCWSTR,
        fInfoLevelId: FINDEX_INFO_LEVELS,
        lpFindFileData: LPVOID,
        fSearchOp: FINDEX_SEARCH_OPS,
        lpSearchFilter: LPVOID,
        dwAdditionalFlags: DWORD,
        hTransaction: HANDLE,
    ) -> HANDLE;
}
extern "C" {
    pub fn CopyFileA(
        lpExistingFileName: LPCSTR,
        lpNewFileName: LPCSTR,
        bFailIfExists: BOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn CopyFileW(
        lpExistingFileName: LPCWSTR,
        lpNewFileName: LPCWSTR,
        bFailIfExists: BOOL,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn CopyFileExW(
        lpExistingFileName: LPCWSTR,
        lpNewFileName: LPCWSTR,
        lpProgressRoutine: LPPROGRESS_ROUTINE,
        lpData: LPVOID,
        pbCancel: LPBOOL,
        dwCopyFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CopyFileTransactedA(
        lpExistingFileName: LPCSTR,
        lpNewFileName: LPCSTR,
        lpProgressRoutine: LPPROGRESS_ROUTINE,
        lpData: LPVOID,
        pbCancel: LPBOOL,
        dwCopyFlags: DWORD,
        hTransaction: HANDLE,
    ) -> BOOL;
}
extern "C" {
    pub fn CopyFileTransactedW(
        lpExistingFileName: LPCWSTR,
        lpNewFileName: LPCWSTR,
        lpProgressRoutine: LPPROGRESS_ROUTINE,
        lpData: LPVOID,
        pbCancel: LPBOOL,
        dwCopyFlags: DWORD,
        hTransaction: HANDLE,
    ) -> BOOL;
}
pub const _COPYFILE2_MESSAGE_TYPE_COPYFILE2_CALLBACK_NONE: _COPYFILE2_MESSAGE_TYPE = 0;
pub const _COPYFILE2_MESSAGE_TYPE_COPYFILE2_CALLBACK_CHUNK_STARTED: _COPYFILE2_MESSAGE_TYPE = 1;
pub const _COPYFILE2_MESSAGE_TYPE_COPYFILE2_CALLBACK_CHUNK_FINISHED: _COPYFILE2_MESSAGE_TYPE = 2;
pub const _COPYFILE2_MESSAGE_TYPE_COPYFILE2_CALLBACK_STREAM_STARTED: _COPYFILE2_MESSAGE_TYPE = 3;
pub const _COPYFILE2_MESSAGE_TYPE_COPYFILE2_CALLBACK_STREAM_FINISHED: _COPYFILE2_MESSAGE_TYPE = 4;
pub const _COPYFILE2_MESSAGE_TYPE_COPYFILE2_CALLBACK_POLL_CONTINUE: _COPYFILE2_MESSAGE_TYPE = 5;
pub const _COPYFILE2_MESSAGE_TYPE_COPYFILE2_CALLBACK_ERROR: _COPYFILE2_MESSAGE_TYPE = 6;
pub const _COPYFILE2_MESSAGE_TYPE_COPYFILE2_CALLBACK_MAX: _COPYFILE2_MESSAGE_TYPE = 7;
pub type _COPYFILE2_MESSAGE_TYPE = ::std::os::raw::c_int;
pub use self::_COPYFILE2_MESSAGE_TYPE as COPYFILE2_MESSAGE_TYPE;
pub const _COPYFILE2_MESSAGE_ACTION_COPYFILE2_PROGRESS_CONTINUE: _COPYFILE2_MESSAGE_ACTION = 0;
pub const _COPYFILE2_MESSAGE_ACTION_COPYFILE2_PROGRESS_CANCEL: _COPYFILE2_MESSAGE_ACTION = 1;
pub const _COPYFILE2_MESSAGE_ACTION_COPYFILE2_PROGRESS_STOP: _COPYFILE2_MESSAGE_ACTION = 2;
pub const _COPYFILE2_MESSAGE_ACTION_COPYFILE2_PROGRESS_QUIET: _COPYFILE2_MESSAGE_ACTION = 3;
pub const _COPYFILE2_MESSAGE_ACTION_COPYFILE2_PROGRESS_PAUSE: _COPYFILE2_MESSAGE_ACTION = 4;
pub type _COPYFILE2_MESSAGE_ACTION = ::std::os::raw::c_int;
pub use self::_COPYFILE2_MESSAGE_ACTION as COPYFILE2_MESSAGE_ACTION;
pub const _COPYFILE2_COPY_PHASE_COPYFILE2_PHASE_NONE: _COPYFILE2_COPY_PHASE = 0;
pub const _COPYFILE2_COPY_PHASE_COPYFILE2_PHASE_PREPARE_SOURCE: _COPYFILE2_COPY_PHASE = 1;
pub const _COPYFILE2_COPY_PHASE_COPYFILE2_PHASE_PREPARE_DEST: _COPYFILE2_COPY_PHASE = 2;
pub const _COPYFILE2_COPY_PHASE_COPYFILE2_PHASE_READ_SOURCE: _COPYFILE2_COPY_PHASE = 3;
pub const _COPYFILE2_COPY_PHASE_COPYFILE2_PHASE_WRITE_DESTINATION: _COPYFILE2_COPY_PHASE = 4;
pub const _COPYFILE2_COPY_PHASE_COPYFILE2_PHASE_SERVER_COPY: _COPYFILE2_COPY_PHASE = 5;
pub const _COPYFILE2_COPY_PHASE_COPYFILE2_PHASE_NAMEGRAFT_COPY: _COPYFILE2_COPY_PHASE = 6;
pub const _COPYFILE2_COPY_PHASE_COPYFILE2_PHASE_MAX: _COPYFILE2_COPY_PHASE = 7;
pub type _COPYFILE2_COPY_PHASE = ::std::os::raw::c_int;
pub use self::_COPYFILE2_COPY_PHASE as COPYFILE2_COPY_PHASE;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct COPYFILE2_MESSAGE {
    pub Type: COPYFILE2_MESSAGE_TYPE,
    pub dwPadding: DWORD,
    pub Info: COPYFILE2_MESSAGE__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union COPYFILE2_MESSAGE__bindgen_ty_1 {
    pub ChunkStarted: COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_1,
    pub ChunkFinished: COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_2,
    pub StreamStarted: COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_3,
    pub StreamFinished: COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_4,
    pub PollContinue: COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_5,
    pub Error: COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_6,
    _bindgen_union_align: [u64; 9usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_1 {
    pub dwStreamNumber: DWORD,
    pub dwReserved: DWORD,
    pub hSourceFile: HANDLE,
    pub hDestinationFile: HANDLE,
    pub uliChunkNumber: ULARGE_INTEGER,
    pub uliChunkSize: ULARGE_INTEGER,
    pub uliStreamSize: ULARGE_INTEGER,
    pub uliTotalFileSize: ULARGE_INTEGER,
}
#[test]
fn bindgen_test_layout_COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_1>(),
        56usize,
        concat!(
            "Size of: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_1>())).dwStreamNumber
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(dwStreamNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_1>())).dwReserved
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(dwReserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_1>())).hSourceFile
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(hSourceFile)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_1>()))
                .hDestinationFile as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(hDestinationFile)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_1>())).uliChunkNumber
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(uliChunkNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_1>())).uliChunkSize
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(uliChunkSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_1>())).uliStreamSize
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(uliStreamSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_1>()))
                .uliTotalFileSize as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(uliTotalFileSize)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_2 {
    pub dwStreamNumber: DWORD,
    pub dwFlags: DWORD,
    pub hSourceFile: HANDLE,
    pub hDestinationFile: HANDLE,
    pub uliChunkNumber: ULARGE_INTEGER,
    pub uliChunkSize: ULARGE_INTEGER,
    pub uliStreamSize: ULARGE_INTEGER,
    pub uliStreamBytesTransferred: ULARGE_INTEGER,
    pub uliTotalFileSize: ULARGE_INTEGER,
    pub uliTotalBytesTransferred: ULARGE_INTEGER,
}
#[test]
fn bindgen_test_layout_COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_2>(),
        72usize,
        concat!(
            "Size of: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_2>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_2>())).dwStreamNumber
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(dwStreamNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_2>())).dwFlags
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_2>())).hSourceFile
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(hSourceFile)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_2>()))
                .hDestinationFile as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(hDestinationFile)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_2>())).uliChunkNumber
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(uliChunkNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_2>())).uliChunkSize
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(uliChunkSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_2>())).uliStreamSize
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(uliStreamSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_2>()))
                .uliStreamBytesTransferred as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(uliStreamBytesTransferred)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_2>()))
                .uliTotalFileSize as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(uliTotalFileSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_2>()))
                .uliTotalBytesTransferred as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(uliTotalBytesTransferred)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_3 {
    pub dwStreamNumber: DWORD,
    pub dwReserved: DWORD,
    pub hSourceFile: HANDLE,
    pub hDestinationFile: HANDLE,
    pub uliStreamSize: ULARGE_INTEGER,
    pub uliTotalFileSize: ULARGE_INTEGER,
}
#[test]
fn bindgen_test_layout_COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_3() {
    assert_eq!(
        ::std::mem::size_of::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_3>(),
        40usize,
        concat!(
            "Size of: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_3)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_3>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_3)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_3>())).dwStreamNumber
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_3),
            "::",
            stringify!(dwStreamNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_3>())).dwReserved
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_3),
            "::",
            stringify!(dwReserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_3>())).hSourceFile
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_3),
            "::",
            stringify!(hSourceFile)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_3>()))
                .hDestinationFile as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_3),
            "::",
            stringify!(hDestinationFile)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_3>())).uliStreamSize
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_3),
            "::",
            stringify!(uliStreamSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_3>()))
                .uliTotalFileSize as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_3),
            "::",
            stringify!(uliTotalFileSize)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_4 {
    pub dwStreamNumber: DWORD,
    pub dwReserved: DWORD,
    pub hSourceFile: HANDLE,
    pub hDestinationFile: HANDLE,
    pub uliStreamSize: ULARGE_INTEGER,
    pub uliStreamBytesTransferred: ULARGE_INTEGER,
    pub uliTotalFileSize: ULARGE_INTEGER,
    pub uliTotalBytesTransferred: ULARGE_INTEGER,
}
#[test]
fn bindgen_test_layout_COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_4() {
    assert_eq!(
        ::std::mem::size_of::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_4>(),
        56usize,
        concat!(
            "Size of: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_4)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_4>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_4)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_4>())).dwStreamNumber
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_4),
            "::",
            stringify!(dwStreamNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_4>())).dwReserved
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_4),
            "::",
            stringify!(dwReserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_4>())).hSourceFile
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_4),
            "::",
            stringify!(hSourceFile)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_4>()))
                .hDestinationFile as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_4),
            "::",
            stringify!(hDestinationFile)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_4>())).uliStreamSize
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_4),
            "::",
            stringify!(uliStreamSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_4>()))
                .uliStreamBytesTransferred as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_4),
            "::",
            stringify!(uliStreamBytesTransferred)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_4>()))
                .uliTotalFileSize as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_4),
            "::",
            stringify!(uliTotalFileSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_4>()))
                .uliTotalBytesTransferred as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_4),
            "::",
            stringify!(uliTotalBytesTransferred)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_5 {
    pub dwReserved: DWORD,
}
#[test]
fn bindgen_test_layout_COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_5() {
    assert_eq!(
        ::std::mem::size_of::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_5>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_5)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_5>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_5)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_5>())).dwReserved
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_5),
            "::",
            stringify!(dwReserved)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_6 {
    pub CopyPhase: COPYFILE2_COPY_PHASE,
    pub dwStreamNumber: DWORD,
    pub hrFailure: HRESULT,
    pub dwReserved: DWORD,
    pub uliChunkNumber: ULARGE_INTEGER,
    pub uliStreamSize: ULARGE_INTEGER,
    pub uliStreamBytesTransferred: ULARGE_INTEGER,
    pub uliTotalFileSize: ULARGE_INTEGER,
    pub uliTotalBytesTransferred: ULARGE_INTEGER,
}
#[test]
fn bindgen_test_layout_COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_6() {
    assert_eq!(
        ::std::mem::size_of::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_6>(),
        56usize,
        concat!(
            "Size of: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_6)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_6>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_6)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_6>())).CopyPhase
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_6),
            "::",
            stringify!(CopyPhase)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_6>())).dwStreamNumber
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_6),
            "::",
            stringify!(dwStreamNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_6>())).hrFailure
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_6),
            "::",
            stringify!(hrFailure)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_6>())).dwReserved
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_6),
            "::",
            stringify!(dwReserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_6>())).uliChunkNumber
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_6),
            "::",
            stringify!(uliChunkNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_6>())).uliStreamSize
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_6),
            "::",
            stringify!(uliStreamSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_6>()))
                .uliStreamBytesTransferred as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_6),
            "::",
            stringify!(uliStreamBytesTransferred)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_6>()))
                .uliTotalFileSize as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_6),
            "::",
            stringify!(uliTotalFileSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_6>()))
                .uliTotalBytesTransferred as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1__bindgen_ty_6),
            "::",
            stringify!(uliTotalBytesTransferred)
        )
    );
}
#[test]
fn bindgen_test_layout_COPYFILE2_MESSAGE__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<COPYFILE2_MESSAGE__bindgen_ty_1>(),
        72usize,
        concat!("Size of: ", stringify!(COPYFILE2_MESSAGE__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<COPYFILE2_MESSAGE__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(COPYFILE2_MESSAGE__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1>())).ChunkStarted as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1),
            "::",
            stringify!(ChunkStarted)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1>())).ChunkFinished as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1),
            "::",
            stringify!(ChunkFinished)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1>())).StreamStarted as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1),
            "::",
            stringify!(StreamStarted)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1>())).StreamFinished as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1),
            "::",
            stringify!(StreamFinished)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1>())).PollContinue as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1),
            "::",
            stringify!(PollContinue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_MESSAGE__bindgen_ty_1>())).Error as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE__bindgen_ty_1),
            "::",
            stringify!(Error)
        )
    );
}
#[test]
fn bindgen_test_layout_COPYFILE2_MESSAGE() {
    assert_eq!(
        ::std::mem::size_of::<COPYFILE2_MESSAGE>(),
        80usize,
        concat!("Size of: ", stringify!(COPYFILE2_MESSAGE))
    );
    assert_eq!(
        ::std::mem::align_of::<COPYFILE2_MESSAGE>(),
        8usize,
        concat!("Alignment of ", stringify!(COPYFILE2_MESSAGE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<COPYFILE2_MESSAGE>())).Type as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE),
            "::",
            stringify!(Type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<COPYFILE2_MESSAGE>())).dwPadding as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE),
            "::",
            stringify!(dwPadding)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<COPYFILE2_MESSAGE>())).Info as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_MESSAGE),
            "::",
            stringify!(Info)
        )
    );
}
pub type PCOPYFILE2_PROGRESS_ROUTINE = ::std::option::Option<
    unsafe extern "C" fn(
        pMessage: *const COPYFILE2_MESSAGE,
        pvCallbackContext: PVOID,
    ) -> COPYFILE2_MESSAGE_ACTION,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct COPYFILE2_EXTENDED_PARAMETERS {
    pub dwSize: DWORD,
    pub dwCopyFlags: DWORD,
    pub pfCancel: *mut BOOL,
    pub pProgressRoutine: PCOPYFILE2_PROGRESS_ROUTINE,
    pub pvCallbackContext: PVOID,
}
#[test]
fn bindgen_test_layout_COPYFILE2_EXTENDED_PARAMETERS() {
    assert_eq!(
        ::std::mem::size_of::<COPYFILE2_EXTENDED_PARAMETERS>(),
        32usize,
        concat!("Size of: ", stringify!(COPYFILE2_EXTENDED_PARAMETERS))
    );
    assert_eq!(
        ::std::mem::align_of::<COPYFILE2_EXTENDED_PARAMETERS>(),
        8usize,
        concat!("Alignment of ", stringify!(COPYFILE2_EXTENDED_PARAMETERS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_EXTENDED_PARAMETERS>())).dwSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_EXTENDED_PARAMETERS),
            "::",
            stringify!(dwSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_EXTENDED_PARAMETERS>())).dwCopyFlags as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_EXTENDED_PARAMETERS),
            "::",
            stringify!(dwCopyFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_EXTENDED_PARAMETERS>())).pfCancel as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_EXTENDED_PARAMETERS),
            "::",
            stringify!(pfCancel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_EXTENDED_PARAMETERS>())).pProgressRoutine as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_EXTENDED_PARAMETERS),
            "::",
            stringify!(pProgressRoutine)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<COPYFILE2_EXTENDED_PARAMETERS>())).pvCallbackContext as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(COPYFILE2_EXTENDED_PARAMETERS),
            "::",
            stringify!(pvCallbackContext)
        )
    );
}
extern "C" {
    pub fn CopyFile2(
        pwszExistingFileName: PCWSTR,
        pwszNewFileName: PCWSTR,
        pExtendedParameters: *mut COPYFILE2_EXTENDED_PARAMETERS,
    ) -> HRESULT;
}
extern "C" {
    pub fn MoveFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR) -> BOOL;
}
extern "C" {
    pub fn MoveFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR) -> BOOL;
}
extern "C" {
    pub fn MoveFileExA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, dwFlags: DWORD) -> BOOL;
}
extern "C" {
    pub fn MoveFileExW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: DWORD)
        -> BOOL;
}
extern "C" {
    pub fn MoveFileWithProgressA(
        lpExistingFileName: LPCSTR,
        lpNewFileName: LPCSTR,
        lpProgressRoutine: LPPROGRESS_ROUTINE,
        lpData: LPVOID,
        dwFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn MoveFileWithProgressW(
        lpExistingFileName: LPCWSTR,
        lpNewFileName: LPCWSTR,
        lpProgressRoutine: LPPROGRESS_ROUTINE,
        lpData: LPVOID,
        dwFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn MoveFileTransactedA(
        lpExistingFileName: LPCSTR,
        lpNewFileName: LPCSTR,
        lpProgressRoutine: LPPROGRESS_ROUTINE,
        lpData: LPVOID,
        dwFlags: DWORD,
        hTransaction: HANDLE,
    ) -> BOOL;
}
extern "C" {
    pub fn MoveFileTransactedW(
        lpExistingFileName: LPCWSTR,
        lpNewFileName: LPCWSTR,
        lpProgressRoutine: LPPROGRESS_ROUTINE,
        lpData: LPVOID,
        dwFlags: DWORD,
        hTransaction: HANDLE,
    ) -> BOOL;
}
extern "C" {
    pub fn ReplaceFileA(
        lpReplacedFileName: LPCSTR,
        lpReplacementFileName: LPCSTR,
        lpBackupFileName: LPCSTR,
        dwReplaceFlags: DWORD,
        lpExclude: LPVOID,
        lpReserved: LPVOID,
    ) -> BOOL;
}
extern "C" {
    pub fn ReplaceFileW(
        lpReplacedFileName: LPCWSTR,
        lpReplacementFileName: LPCWSTR,
        lpBackupFileName: LPCWSTR,
        dwReplaceFlags: DWORD,
        lpExclude: LPVOID,
        lpReserved: LPVOID,
    ) -> BOOL;
}
extern "C" {
    pub fn CreateHardLinkA(
        lpFileName: LPCSTR,
        lpExistingFileName: LPCSTR,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
    ) -> BOOL;
}
extern "C" {
    pub fn CreateHardLinkW(
        lpFileName: LPCWSTR,
        lpExistingFileName: LPCWSTR,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
    ) -> BOOL;
}
extern "C" {
    pub fn CreateHardLinkTransactedA(
        lpFileName: LPCSTR,
        lpExistingFileName: LPCSTR,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
        hTransaction: HANDLE,
    ) -> BOOL;
}
extern "C" {
    pub fn CreateHardLinkTransactedW(
        lpFileName: LPCWSTR,
        lpExistingFileName: LPCWSTR,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
        hTransaction: HANDLE,
    ) -> BOOL;
}
extern "C" {
    pub fn FindFirstStreamTransactedW(
        lpFileName: LPCWSTR,
        InfoLevel: STREAM_INFO_LEVELS,
        lpFindStreamData: LPVOID,
        dwFlags: DWORD,
        hTransaction: HANDLE,
    ) -> HANDLE;
}
extern "C" {
    pub fn FindFirstFileNameTransactedW(
        lpFileName: LPCWSTR,
        dwFlags: DWORD,
        StringLength: LPDWORD,
        LinkName: PWSTR,
        hTransaction: HANDLE,
    ) -> HANDLE;
}
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 GetNamedPipeHandleStateA(
        hNamedPipe: HANDLE,
        lpState: LPDWORD,
        lpCurInstances: LPDWORD,
        lpMaxCollectionCount: LPDWORD,
        lpCollectDataTimeout: LPDWORD,
        lpUserName: LPSTR,
        nMaxUserNameSize: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CallNamedPipeA(
        lpNamedPipeName: LPCSTR,
        lpInBuffer: LPVOID,
        nInBufferSize: DWORD,
        lpOutBuffer: LPVOID,
        nOutBufferSize: DWORD,
        lpBytesRead: LPDWORD,
        nTimeOut: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn WaitNamedPipeA(lpNamedPipeName: LPCSTR, nTimeOut: DWORD) -> BOOL;
}
extern "C" {
    pub fn GetNamedPipeClientComputerNameA(
        Pipe: HANDLE,
        ClientComputerName: LPSTR,
        ClientComputerNameLength: ULONG,
    ) -> BOOL;
}
extern "C" {
    pub fn GetNamedPipeClientProcessId(Pipe: HANDLE, ClientProcessId: PULONG) -> BOOL;
}
extern "C" {
    pub fn GetNamedPipeClientSessionId(Pipe: HANDLE, ClientSessionId: PULONG) -> BOOL;
}
extern "C" {
    pub fn GetNamedPipeServerProcessId(Pipe: HANDLE, ServerProcessId: PULONG) -> BOOL;
}
extern "C" {
    pub fn GetNamedPipeServerSessionId(Pipe: HANDLE, ServerSessionId: PULONG) -> BOOL;
}
extern "C" {
    pub fn SetVolumeLabelA(lpRootPathName: LPCSTR, lpVolumeName: LPCSTR) -> BOOL;
}
extern "C" {
    pub fn SetVolumeLabelW(lpRootPathName: LPCWSTR, lpVolumeName: LPCWSTR) -> BOOL;
}
extern "C" {
    pub fn SetFileBandwidthReservation(
        hFile: HANDLE,
        nPeriodMilliseconds: DWORD,
        nBytesPerPeriod: DWORD,
        bDiscardable: BOOL,
        lpTransferSize: LPDWORD,
        lpNumOutstandingRequests: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetFileBandwidthReservation(
        hFile: HANDLE,
        lpPeriodMilliseconds: LPDWORD,
        lpBytesPerPeriod: LPDWORD,
        pDiscardable: LPBOOL,
        lpTransferSize: LPDWORD,
        lpNumOutstandingRequests: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn ClearEventLogA(hEventLog: HANDLE, lpBackupFileName: LPCSTR) -> BOOL;
}
extern "C" {
    pub fn ClearEventLogW(hEventLog: HANDLE, lpBackupFileName: LPCWSTR) -> BOOL;
}
extern "C" {
    pub fn BackupEventLogA(hEventLog: HANDLE, lpBackupFileName: LPCSTR) -> BOOL;
}
extern "C" {
    pub fn BackupEventLogW(hEventLog: HANDLE, lpBackupFileName: LPCWSTR) -> BOOL;
}
extern "C" {
    pub fn CloseEventLog(hEventLog: HANDLE) -> BOOL;
}
extern "C" {
    pub fn DeregisterEventSource(hEventLog: HANDLE) -> BOOL;
}
extern "C" {
    pub fn NotifyChangeEventLog(hEventLog: HANDLE, hEvent: HANDLE) -> BOOL;
}
extern "C" {
    pub fn GetNumberOfEventLogRecords(hEventLog: HANDLE, NumberOfRecords: PDWORD) -> BOOL;
}
extern "C" {
    pub fn GetOldestEventLogRecord(hEventLog: HANDLE, OldestRecord: PDWORD) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn ReadEventLogW(
        hEventLog: HANDLE,
        dwReadFlags: DWORD,
        dwRecordOffset: DWORD,
        lpBuffer: LPVOID,
        nNumberOfBytesToRead: DWORD,
        pnBytesRead: *mut DWORD,
        pnMinNumberOfBytesNeeded: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn ReportEventA(
        hEventLog: HANDLE,
        wType: WORD,
        wCategory: WORD,
        dwEventID: DWORD,
        lpUserSid: PSID,
        wNumStrings: WORD,
        dwDataSize: DWORD,
        lpStrings: *mut LPCSTR,
        lpRawData: LPVOID,
    ) -> BOOL;
}
extern "C" {
    pub fn ReportEventW(
        hEventLog: HANDLE,
        wType: WORD,
        wCategory: WORD,
        dwEventID: DWORD,
        lpUserSid: PSID,
        wNumStrings: WORD,
        dwDataSize: DWORD,
        lpStrings: *mut LPCWSTR,
        lpRawData: LPVOID,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _EVENTLOG_FULL_INFORMATION {
    pub dwFull: DWORD,
}
#[test]
fn bindgen_test_layout__EVENTLOG_FULL_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_EVENTLOG_FULL_INFORMATION>(),
        4usize,
        concat!("Size of: ", stringify!(_EVENTLOG_FULL_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_EVENTLOG_FULL_INFORMATION>(),
        4usize,
        concat!("Alignment of ", stringify!(_EVENTLOG_FULL_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EVENTLOG_FULL_INFORMATION>())).dwFull as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_EVENTLOG_FULL_INFORMATION),
            "::",
            stringify!(dwFull)
        )
    );
}
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,
    ) -> BOOL;
}
pub type OPERATION_ID = ULONG;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _OPERATION_START_PARAMETERS {
    pub Version: ULONG,
    pub OperationId: OPERATION_ID,
    pub Flags: ULONG,
}
#[test]
fn bindgen_test_layout__OPERATION_START_PARAMETERS() {
    assert_eq!(
        ::std::mem::size_of::<_OPERATION_START_PARAMETERS>(),
        12usize,
        concat!("Size of: ", stringify!(_OPERATION_START_PARAMETERS))
    );
    assert_eq!(
        ::std::mem::align_of::<_OPERATION_START_PARAMETERS>(),
        4usize,
        concat!("Alignment of ", stringify!(_OPERATION_START_PARAMETERS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OPERATION_START_PARAMETERS>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OPERATION_START_PARAMETERS),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OPERATION_START_PARAMETERS>())).OperationId as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_OPERATION_START_PARAMETERS),
            "::",
            stringify!(OperationId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OPERATION_START_PARAMETERS>())).Flags as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_OPERATION_START_PARAMETERS),
            "::",
            stringify!(Flags)
        )
    );
}
pub type OPERATION_START_PARAMETERS = _OPERATION_START_PARAMETERS;
pub type POPERATION_START_PARAMETERS = *mut _OPERATION_START_PARAMETERS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _OPERATION_END_PARAMETERS {
    pub Version: ULONG,
    pub OperationId: OPERATION_ID,
    pub Flags: ULONG,
}
#[test]
fn bindgen_test_layout__OPERATION_END_PARAMETERS() {
    assert_eq!(
        ::std::mem::size_of::<_OPERATION_END_PARAMETERS>(),
        12usize,
        concat!("Size of: ", stringify!(_OPERATION_END_PARAMETERS))
    );
    assert_eq!(
        ::std::mem::align_of::<_OPERATION_END_PARAMETERS>(),
        4usize,
        concat!("Alignment of ", stringify!(_OPERATION_END_PARAMETERS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OPERATION_END_PARAMETERS>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OPERATION_END_PARAMETERS),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OPERATION_END_PARAMETERS>())).OperationId as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_OPERATION_END_PARAMETERS),
            "::",
            stringify!(OperationId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OPERATION_END_PARAMETERS>())).Flags as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_OPERATION_END_PARAMETERS),
            "::",
            stringify!(Flags)
        )
    );
}
pub type OPERATION_END_PARAMETERS = _OPERATION_END_PARAMETERS;
pub type POPERATION_END_PARAMETERS = *mut _OPERATION_END_PARAMETERS;
extern "C" {
    pub fn OperationStart(OperationStartParams: *mut OPERATION_START_PARAMETERS) -> BOOL;
}
extern "C" {
    pub fn OperationEnd(OperationEndParams: *mut OPERATION_END_PARAMETERS) -> BOOL;
}
extern "C" {
    pub fn AccessCheckAndAuditAlarmA(
        SubsystemName: LPCSTR,
        HandleId: LPVOID,
        ObjectTypeName: LPSTR,
        ObjectName: LPSTR,
        SecurityDescriptor: PSECURITY_DESCRIPTOR,
        DesiredAccess: DWORD,
        GenericMapping: PGENERIC_MAPPING,
        ObjectCreation: BOOL,
        GrantedAccess: LPDWORD,
        AccessStatus: LPBOOL,
        pfGenerateOnClose: LPBOOL,
    ) -> BOOL;
}
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: BOOL,
        GrantedAccess: LPDWORD,
        AccessStatus: LPBOOL,
        pfGenerateOnClose: LPBOOL,
    ) -> BOOL;
}
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: BOOL,
        GrantedAccess: LPDWORD,
        AccessStatusList: LPDWORD,
        pfGenerateOnClose: LPBOOL,
    ) -> BOOL;
}
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: BOOL,
        GrantedAccess: LPDWORD,
        AccessStatusList: LPDWORD,
        pfGenerateOnClose: LPBOOL,
    ) -> BOOL;
}
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: BOOL,
        AccessGranted: BOOL,
        GenerateOnClose: LPBOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn ObjectPrivilegeAuditAlarmA(
        SubsystemName: LPCSTR,
        HandleId: LPVOID,
        ClientToken: HANDLE,
        DesiredAccess: DWORD,
        Privileges: PPRIVILEGE_SET,
        AccessGranted: BOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn ObjectCloseAuditAlarmA(
        SubsystemName: LPCSTR,
        HandleId: LPVOID,
        GenerateOnClose: BOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn ObjectDeleteAuditAlarmA(
        SubsystemName: LPCSTR,
        HandleId: LPVOID,
        GenerateOnClose: BOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn PrivilegedServiceAuditAlarmA(
        SubsystemName: LPCSTR,
        ServiceName: LPCSTR,
        ClientToken: HANDLE,
        Privileges: PPRIVILEGE_SET,
        AccessGranted: BOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn AddConditionalAce(
        pAcl: PACL,
        dwAceRevision: DWORD,
        AceFlags: DWORD,
        AceType: UCHAR,
        AccessMask: DWORD,
        pSid: PSID,
        ConditionStr: PWCHAR,
        ReturnLength: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn SetFileSecurityA(
        lpFileName: LPCSTR,
        SecurityInformation: SECURITY_INFORMATION,
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
    ) -> BOOL;
}
extern "C" {
    pub fn GetFileSecurityA(
        lpFileName: LPCSTR,
        RequestedInformation: SECURITY_INFORMATION,
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        nLength: DWORD,
        lpnLengthNeeded: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn ReadDirectoryChangesW(
        hDirectory: HANDLE,
        lpBuffer: LPVOID,
        nBufferLength: DWORD,
        bWatchSubtree: BOOL,
        dwNotifyFilter: DWORD,
        lpBytesReturned: LPDWORD,
        lpOverlapped: LPOVERLAPPED,
        lpCompletionRoutine: LPOVERLAPPED_COMPLETION_ROUTINE,
    ) -> BOOL;
}
extern "C" {
    pub fn ReadDirectoryChangesExW(
        hDirectory: HANDLE,
        lpBuffer: LPVOID,
        nBufferLength: DWORD,
        bWatchSubtree: BOOL,
        dwNotifyFilter: DWORD,
        lpBytesReturned: LPDWORD,
        lpOverlapped: LPOVERLAPPED,
        lpCompletionRoutine: LPOVERLAPPED_COMPLETION_ROUTINE,
        ReadDirectoryNotifyInformationClass: READ_DIRECTORY_NOTIFY_INFORMATION_CLASS,
    ) -> BOOL;
}
extern "C" {
    pub fn MapViewOfFileExNuma(
        hFileMappingObject: HANDLE,
        dwDesiredAccess: DWORD,
        dwFileOffsetHigh: DWORD,
        dwFileOffsetLow: DWORD,
        dwNumberOfBytesToMap: SIZE_T,
        lpBaseAddress: LPVOID,
        nndPreferred: DWORD,
    ) -> LPVOID;
}
extern "C" {
    pub fn IsBadReadPtr(lp: *const ::std::os::raw::c_void, ucb: UINT_PTR) -> BOOL;
}
extern "C" {
    pub fn IsBadWritePtr(lp: LPVOID, ucb: UINT_PTR) -> BOOL;
}
extern "C" {
    pub fn IsBadHugeReadPtr(lp: *const ::std::os::raw::c_void, ucb: UINT_PTR) -> BOOL;
}
extern "C" {
    pub fn IsBadHugeWritePtr(lp: LPVOID, ucb: UINT_PTR) -> BOOL;
}
extern "C" {
    pub fn IsBadCodePtr(lpfn: FARPROC) -> BOOL;
}
extern "C" {
    pub fn IsBadStringPtrA(lpsz: LPCSTR, ucchMax: UINT_PTR) -> BOOL;
}
extern "C" {
    pub fn IsBadStringPtrW(lpsz: LPCWSTR, ucchMax: UINT_PTR) -> BOOL;
}
extern "C" {
    pub fn LookupAccountSidA(
        lpSystemName: LPCSTR,
        Sid: PSID,
        Name: LPSTR,
        cchName: LPDWORD,
        ReferencedDomainName: LPSTR,
        cchReferencedDomainName: LPDWORD,
        peUse: PSID_NAME_USE,
    ) -> BOOL;
}
extern "C" {
    pub fn LookupAccountSidW(
        lpSystemName: LPCWSTR,
        Sid: PSID,
        Name: LPWSTR,
        cchName: LPDWORD,
        ReferencedDomainName: LPWSTR,
        cchReferencedDomainName: LPDWORD,
        peUse: PSID_NAME_USE,
    ) -> BOOL;
}
extern "C" {
    pub fn LookupAccountNameA(
        lpSystemName: LPCSTR,
        lpAccountName: LPCSTR,
        Sid: PSID,
        cbSid: LPDWORD,
        ReferencedDomainName: LPSTR,
        cchReferencedDomainName: LPDWORD,
        peUse: PSID_NAME_USE,
    ) -> BOOL;
}
extern "C" {
    pub fn LookupAccountNameW(
        lpSystemName: LPCWSTR,
        lpAccountName: LPCWSTR,
        Sid: PSID,
        cbSid: LPDWORD,
        ReferencedDomainName: LPWSTR,
        cchReferencedDomainName: LPDWORD,
        peUse: PSID_NAME_USE,
    ) -> BOOL;
}
extern "C" {
    pub fn LookupAccountNameLocalA(
        lpAccountName: LPCSTR,
        Sid: PSID,
        cbSid: LPDWORD,
        ReferencedDomainName: LPSTR,
        cchReferencedDomainName: LPDWORD,
        peUse: PSID_NAME_USE,
    ) -> BOOL;
}
extern "C" {
    pub fn LookupAccountNameLocalW(
        lpAccountName: LPCWSTR,
        Sid: PSID,
        cbSid: LPDWORD,
        ReferencedDomainName: LPWSTR,
        cchReferencedDomainName: LPDWORD,
        peUse: PSID_NAME_USE,
    ) -> BOOL;
}
extern "C" {
    pub fn LookupAccountSidLocalA(
        Sid: PSID,
        Name: LPSTR,
        cchName: LPDWORD,
        ReferencedDomainName: LPSTR,
        cchReferencedDomainName: LPDWORD,
        peUse: PSID_NAME_USE,
    ) -> BOOL;
}
extern "C" {
    pub fn LookupAccountSidLocalW(
        Sid: PSID,
        Name: LPWSTR,
        cchName: LPDWORD,
        ReferencedDomainName: LPWSTR,
        cchReferencedDomainName: LPDWORD,
        peUse: PSID_NAME_USE,
    ) -> BOOL;
}
extern "C" {
    pub fn LookupPrivilegeValueA(lpSystemName: LPCSTR, lpName: LPCSTR, lpLuid: PLUID) -> BOOL;
}
extern "C" {
    pub fn LookupPrivilegeValueW(lpSystemName: LPCWSTR, lpName: LPCWSTR, lpLuid: PLUID) -> BOOL;
}
extern "C" {
    pub fn LookupPrivilegeNameA(
        lpSystemName: LPCSTR,
        lpLuid: PLUID,
        lpName: LPSTR,
        cchName: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn LookupPrivilegeNameW(
        lpSystemName: LPCWSTR,
        lpLuid: PLUID,
        lpName: LPWSTR,
        cchName: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn LookupPrivilegeDisplayNameA(
        lpSystemName: LPCSTR,
        lpName: LPCSTR,
        lpDisplayName: LPSTR,
        cchDisplayName: LPDWORD,
        lpLanguageId: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn LookupPrivilegeDisplayNameW(
        lpSystemName: LPCWSTR,
        lpName: LPCWSTR,
        lpDisplayName: LPWSTR,
        cchDisplayName: LPDWORD,
        lpLanguageId: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn BuildCommDCBA(lpDef: LPCSTR, lpDCB: LPDCB) -> BOOL;
}
extern "C" {
    pub fn BuildCommDCBW(lpDef: LPCWSTR, lpDCB: LPDCB) -> BOOL;
}
extern "C" {
    pub fn BuildCommDCBAndTimeoutsA(
        lpDef: LPCSTR,
        lpDCB: LPDCB,
        lpCommTimeouts: LPCOMMTIMEOUTS,
    ) -> BOOL;
}
extern "C" {
    pub fn BuildCommDCBAndTimeoutsW(
        lpDef: LPCWSTR,
        lpDCB: LPDCB,
        lpCommTimeouts: LPCOMMTIMEOUTS,
    ) -> BOOL;
}
extern "C" {
    pub fn CommConfigDialogA(lpszName: LPCSTR, hWnd: HWND, lpCC: LPCOMMCONFIG) -> BOOL;
}
extern "C" {
    pub fn CommConfigDialogW(lpszName: LPCWSTR, hWnd: HWND, lpCC: LPCOMMCONFIG) -> BOOL;
}
extern "C" {
    pub fn GetDefaultCommConfigA(lpszName: LPCSTR, lpCC: LPCOMMCONFIG, lpdwSize: LPDWORD) -> BOOL;
}
extern "C" {
    pub fn GetDefaultCommConfigW(lpszName: LPCWSTR, lpCC: LPCOMMCONFIG, lpdwSize: LPDWORD) -> BOOL;
}
extern "C" {
    pub fn SetDefaultCommConfigA(lpszName: LPCSTR, lpCC: LPCOMMCONFIG, dwSize: DWORD) -> BOOL;
}
extern "C" {
    pub fn SetDefaultCommConfigW(lpszName: LPCWSTR, lpCC: LPCOMMCONFIG, dwSize: DWORD) -> BOOL;
}
extern "C" {
    pub fn GetComputerNameA(lpBuffer: LPSTR, nSize: LPDWORD) -> BOOL;
}
extern "C" {
    pub fn GetComputerNameW(lpBuffer: LPWSTR, nSize: LPDWORD) -> BOOL;
}
extern "C" {
    pub fn DnsHostnameToComputerNameA(
        Hostname: LPCSTR,
        ComputerName: LPSTR,
        nSize: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn DnsHostnameToComputerNameW(
        Hostname: LPCWSTR,
        ComputerName: LPWSTR,
        nSize: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetUserNameA(lpBuffer: LPSTR, pcbBuffer: LPDWORD) -> BOOL;
}
extern "C" {
    pub fn GetUserNameW(lpBuffer: LPWSTR, pcbBuffer: LPDWORD) -> BOOL;
}
extern "C" {
    pub fn LogonUserA(
        lpszUsername: LPCSTR,
        lpszDomain: LPCSTR,
        lpszPassword: LPCSTR,
        dwLogonType: DWORD,
        dwLogonProvider: DWORD,
        phToken: PHANDLE,
    ) -> BOOL;
}
extern "C" {
    pub fn LogonUserW(
        lpszUsername: LPCWSTR,
        lpszDomain: LPCWSTR,
        lpszPassword: LPCWSTR,
        dwLogonType: DWORD,
        dwLogonProvider: DWORD,
        phToken: PHANDLE,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn CreateProcessWithTokenW(
        hToken: HANDLE,
        dwLogonFlags: DWORD,
        lpApplicationName: LPCWSTR,
        lpCommandLine: LPWSTR,
        dwCreationFlags: DWORD,
        lpEnvironment: LPVOID,
        lpCurrentDirectory: LPCWSTR,
        lpStartupInfo: LPSTARTUPINFOW,
        lpProcessInformation: LPPROCESS_INFORMATION,
    ) -> BOOL;
}
extern "C" {
    pub fn IsTokenUntrusted(TokenHandle: HANDLE) -> BOOL;
}
extern "C" {
    pub fn RegisterWaitForSingleObject(
        phNewWaitObject: PHANDLE,
        hObject: HANDLE,
        Callback: WAITORTIMERCALLBACK,
        Context: PVOID,
        dwMilliseconds: ULONG,
        dwFlags: ULONG,
    ) -> BOOL;
}
extern "C" {
    pub fn UnregisterWait(WaitHandle: HANDLE) -> BOOL;
}
extern "C" {
    pub fn BindIoCompletionCallback(
        FileHandle: HANDLE,
        Function: LPOVERLAPPED_COMPLETION_ROUTINE,
        Flags: ULONG,
    ) -> BOOL;
}
extern "C" {
    pub fn SetTimerQueueTimer(
        TimerQueue: HANDLE,
        Callback: WAITORTIMERCALLBACK,
        Parameter: PVOID,
        DueTime: DWORD,
        Period: DWORD,
        PreferIo: BOOL,
    ) -> HANDLE;
}
extern "C" {
    pub fn CancelTimerQueueTimer(TimerQueue: HANDLE, Timer: HANDLE) -> BOOL;
}
extern "C" {
    pub fn DeleteTimerQueue(TimerQueue: HANDLE) -> BOOL;
}
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,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagHW_PROFILE_INFOA {
    pub dwDockInfo: DWORD,
    pub szHwProfileGuid: [CHAR; 39usize],
    pub szHwProfileName: [CHAR; 80usize],
}
#[test]
fn bindgen_test_layout_tagHW_PROFILE_INFOA() {
    assert_eq!(
        ::std::mem::size_of::<tagHW_PROFILE_INFOA>(),
        124usize,
        concat!("Size of: ", stringify!(tagHW_PROFILE_INFOA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagHW_PROFILE_INFOA>(),
        4usize,
        concat!("Alignment of ", stringify!(tagHW_PROFILE_INFOA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHW_PROFILE_INFOA>())).dwDockInfo as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHW_PROFILE_INFOA),
            "::",
            stringify!(dwDockInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagHW_PROFILE_INFOA>())).szHwProfileGuid as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHW_PROFILE_INFOA),
            "::",
            stringify!(szHwProfileGuid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagHW_PROFILE_INFOA>())).szHwProfileName as *const _ as usize
        },
        43usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHW_PROFILE_INFOA),
            "::",
            stringify!(szHwProfileName)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagHW_PROFILE_INFOW() {
    assert_eq!(
        ::std::mem::size_of::<tagHW_PROFILE_INFOW>(),
        244usize,
        concat!("Size of: ", stringify!(tagHW_PROFILE_INFOW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagHW_PROFILE_INFOW>(),
        4usize,
        concat!("Alignment of ", stringify!(tagHW_PROFILE_INFOW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHW_PROFILE_INFOW>())).dwDockInfo as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHW_PROFILE_INFOW),
            "::",
            stringify!(dwDockInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagHW_PROFILE_INFOW>())).szHwProfileGuid as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHW_PROFILE_INFOW),
            "::",
            stringify!(szHwProfileGuid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagHW_PROFILE_INFOW>())).szHwProfileName as *const _ as usize
        },
        82usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHW_PROFILE_INFOW),
            "::",
            stringify!(szHwProfileName)
        )
    );
}
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) -> BOOL;
}
extern "C" {
    pub fn GetCurrentHwProfileW(lpHwProfileInfo: LPHW_PROFILE_INFOW) -> BOOL;
}
extern "C" {
    pub fn VerifyVersionInfoA(
        lpVersionInformation: LPOSVERSIONINFOEXA,
        dwTypeMask: DWORD,
        dwlConditionMask: DWORDLONG,
    ) -> BOOL;
}
extern "C" {
    pub fn VerifyVersionInfoW(
        lpVersionInformation: LPOSVERSIONINFOEXW,
        dwTypeMask: DWORD,
        dwlConditionMask: DWORDLONG,
    ) -> BOOL;
}
#[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,
}
#[test]
fn bindgen_test_layout__TIME_ZONE_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_TIME_ZONE_INFORMATION>(),
        172usize,
        concat!("Size of: ", stringify!(_TIME_ZONE_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_TIME_ZONE_INFORMATION>(),
        4usize,
        concat!("Alignment of ", stringify!(_TIME_ZONE_INFORMATION))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TIME_ZONE_INFORMATION>())).Bias as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TIME_ZONE_INFORMATION),
            "::",
            stringify!(Bias)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TIME_ZONE_INFORMATION>())).StandardName as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_TIME_ZONE_INFORMATION),
            "::",
            stringify!(StandardName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TIME_ZONE_INFORMATION>())).StandardDate as *const _ as usize
        },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(_TIME_ZONE_INFORMATION),
            "::",
            stringify!(StandardDate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TIME_ZONE_INFORMATION>())).StandardBias as *const _ as usize
        },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(_TIME_ZONE_INFORMATION),
            "::",
            stringify!(StandardBias)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TIME_ZONE_INFORMATION>())).DaylightName as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_TIME_ZONE_INFORMATION),
            "::",
            stringify!(DaylightName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TIME_ZONE_INFORMATION>())).DaylightDate as *const _ as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(_TIME_ZONE_INFORMATION),
            "::",
            stringify!(DaylightDate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TIME_ZONE_INFORMATION>())).DaylightBias as *const _ as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(_TIME_ZONE_INFORMATION),
            "::",
            stringify!(DaylightBias)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__TIME_DYNAMIC_ZONE_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_TIME_DYNAMIC_ZONE_INFORMATION>(),
        432usize,
        concat!("Size of: ", stringify!(_TIME_DYNAMIC_ZONE_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_TIME_DYNAMIC_ZONE_INFORMATION>(),
        4usize,
        concat!("Alignment of ", stringify!(_TIME_DYNAMIC_ZONE_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TIME_DYNAMIC_ZONE_INFORMATION>())).Bias as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TIME_DYNAMIC_ZONE_INFORMATION),
            "::",
            stringify!(Bias)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TIME_DYNAMIC_ZONE_INFORMATION>())).StandardName as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_TIME_DYNAMIC_ZONE_INFORMATION),
            "::",
            stringify!(StandardName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TIME_DYNAMIC_ZONE_INFORMATION>())).StandardDate as *const _
                as usize
        },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(_TIME_DYNAMIC_ZONE_INFORMATION),
            "::",
            stringify!(StandardDate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TIME_DYNAMIC_ZONE_INFORMATION>())).StandardBias as *const _
                as usize
        },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(_TIME_DYNAMIC_ZONE_INFORMATION),
            "::",
            stringify!(StandardBias)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TIME_DYNAMIC_ZONE_INFORMATION>())).DaylightName as *const _
                as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_TIME_DYNAMIC_ZONE_INFORMATION),
            "::",
            stringify!(DaylightName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TIME_DYNAMIC_ZONE_INFORMATION>())).DaylightDate as *const _
                as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(_TIME_DYNAMIC_ZONE_INFORMATION),
            "::",
            stringify!(DaylightDate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TIME_DYNAMIC_ZONE_INFORMATION>())).DaylightBias as *const _
                as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(_TIME_DYNAMIC_ZONE_INFORMATION),
            "::",
            stringify!(DaylightBias)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TIME_DYNAMIC_ZONE_INFORMATION>())).TimeZoneKeyName as *const _
                as usize
        },
        172usize,
        concat!(
            "Offset of field: ",
            stringify!(_TIME_DYNAMIC_ZONE_INFORMATION),
            "::",
            stringify!(TimeZoneKeyName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TIME_DYNAMIC_ZONE_INFORMATION>())).DynamicDaylightTimeDisabled
                as *const _ as usize
        },
        428usize,
        concat!(
            "Offset of field: ",
            stringify!(_TIME_DYNAMIC_ZONE_INFORMATION),
            "::",
            stringify!(DynamicDaylightTimeDisabled)
        )
    );
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn TzSpecificLocalTimeToSystemTime(
        lpTimeZoneInformation: *const TIME_ZONE_INFORMATION,
        lpLocalTime: *const SYSTEMTIME,
        lpUniversalTime: LPSYSTEMTIME,
    ) -> BOOL;
}
extern "C" {
    pub fn FileTimeToSystemTime(lpFileTime: *const FILETIME, lpSystemTime: LPSYSTEMTIME) -> BOOL;
}
extern "C" {
    pub fn SystemTimeToFileTime(lpSystemTime: *const SYSTEMTIME, lpFileTime: LPFILETIME) -> BOOL;
}
extern "C" {
    pub fn GetTimeZoneInformation(lpTimeZoneInformation: LPTIME_ZONE_INFORMATION) -> DWORD;
}
extern "C" {
    pub fn SetTimeZoneInformation(lpTimeZoneInformation: *const TIME_ZONE_INFORMATION) -> BOOL;
}
extern "C" {
    pub fn SetDynamicTimeZoneInformation(
        lpTimeZoneInformation: *const DYNAMIC_TIME_ZONE_INFORMATION,
    ) -> BOOL;
}
extern "C" {
    pub fn GetDynamicTimeZoneInformation(
        pTimeZoneInformation: PDYNAMIC_TIME_ZONE_INFORMATION,
    ) -> DWORD;
}
extern "C" {
    pub fn GetTimeZoneInformationForYear(
        wYear: USHORT,
        pdtzi: PDYNAMIC_TIME_ZONE_INFORMATION,
        ptzi: LPTIME_ZONE_INFORMATION,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumDynamicTimeZoneInformation(
        dwIndex: DWORD,
        lpTimeZoneInformation: PDYNAMIC_TIME_ZONE_INFORMATION,
    ) -> DWORD;
}
extern "C" {
    pub fn GetDynamicTimeZoneInformationEffectiveYears(
        lpTimeZoneInformation: PDYNAMIC_TIME_ZONE_INFORMATION,
        FirstYear: LPDWORD,
        LastYear: LPDWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn SystemTimeToTzSpecificLocalTimeEx(
        lpTimeZoneInformation: *const DYNAMIC_TIME_ZONE_INFORMATION,
        lpUniversalTime: *const SYSTEMTIME,
        lpLocalTime: LPSYSTEMTIME,
    ) -> BOOL;
}
extern "C" {
    pub fn TzSpecificLocalTimeToSystemTimeEx(
        lpTimeZoneInformation: *const DYNAMIC_TIME_ZONE_INFORMATION,
        lpLocalTime: *const SYSTEMTIME,
        lpUniversalTime: LPSYSTEMTIME,
    ) -> BOOL;
}
extern "C" {
    pub fn LocalFileTimeToLocalSystemTime(
        timeZoneInformation: *const TIME_ZONE_INFORMATION,
        localFileTime: *const FILETIME,
        localSystemTime: *mut SYSTEMTIME,
    ) -> BOOL;
}
extern "C" {
    pub fn LocalSystemTimeToLocalFileTime(
        timeZoneInformation: *const TIME_ZONE_INFORMATION,
        localSystemTime: *const SYSTEMTIME,
        localFileTime: *mut FILETIME,
    ) -> BOOL;
}
extern "C" {
    pub fn SetSystemPowerState(fSuspend: BOOL, fForce: BOOL) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SYSTEM_POWER_STATUS {
    pub ACLineStatus: BYTE,
    pub BatteryFlag: BYTE,
    pub BatteryLifePercent: BYTE,
    pub SystemStatusFlag: BYTE,
    pub BatteryLifeTime: DWORD,
    pub BatteryFullLifeTime: DWORD,
}
#[test]
fn bindgen_test_layout__SYSTEM_POWER_STATUS() {
    assert_eq!(
        ::std::mem::size_of::<_SYSTEM_POWER_STATUS>(),
        12usize,
        concat!("Size of: ", stringify!(_SYSTEM_POWER_STATUS))
    );
    assert_eq!(
        ::std::mem::align_of::<_SYSTEM_POWER_STATUS>(),
        4usize,
        concat!("Alignment of ", stringify!(_SYSTEM_POWER_STATUS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_POWER_STATUS>())).ACLineStatus as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_STATUS),
            "::",
            stringify!(ACLineStatus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_POWER_STATUS>())).BatteryFlag as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_STATUS),
            "::",
            stringify!(BatteryFlag)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_POWER_STATUS>())).BatteryLifePercent as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_STATUS),
            "::",
            stringify!(BatteryLifePercent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_POWER_STATUS>())).SystemStatusFlag as *const _ as usize
        },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_STATUS),
            "::",
            stringify!(SystemStatusFlag)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_POWER_STATUS>())).BatteryLifeTime as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_STATUS),
            "::",
            stringify!(BatteryLifeTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SYSTEM_POWER_STATUS>())).BatteryFullLifeTime as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SYSTEM_POWER_STATUS),
            "::",
            stringify!(BatteryFullLifeTime)
        )
    );
}
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) -> BOOL;
}
extern "C" {
    pub fn MapUserPhysicalPagesScatter(
        VirtualAddresses: *mut PVOID,
        NumberOfPages: ULONG_PTR,
        PageArray: PULONG_PTR,
    ) -> BOOL;
}
extern "C" {
    pub fn CreateJobObjectA(lpJobAttributes: LPSECURITY_ATTRIBUTES, lpName: LPCSTR) -> HANDLE;
}
extern "C" {
    pub fn OpenJobObjectA(dwDesiredAccess: DWORD, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE;
}
extern "C" {
    pub fn CreateJobSet(NumJob: ULONG, UserJobSet: PJOB_SET_ARRAY, Flags: ULONG) -> BOOL;
}
extern "C" {
    pub fn FindFirstVolumeA(lpszVolumeName: LPSTR, cchBufferLength: DWORD) -> HANDLE;
}
extern "C" {
    pub fn FindNextVolumeA(
        hFindVolume: HANDLE,
        lpszVolumeName: LPSTR,
        cchBufferLength: DWORD,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn FindNextVolumeMountPointW(
        hFindVolumeMountPoint: HANDLE,
        lpszVolumeMountPoint: LPWSTR,
        cchBufferLength: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn FindVolumeMountPointClose(hFindVolumeMountPoint: HANDLE) -> BOOL;
}
extern "C" {
    pub fn SetVolumeMountPointA(lpszVolumeMountPoint: LPCSTR, lpszVolumeName: LPCSTR) -> BOOL;
}
extern "C" {
    pub fn SetVolumeMountPointW(lpszVolumeMountPoint: LPCWSTR, lpszVolumeName: LPCWSTR) -> BOOL;
}
extern "C" {
    pub fn DeleteVolumeMountPointA(lpszVolumeMountPoint: LPCSTR) -> BOOL;
}
extern "C" {
    pub fn GetVolumeNameForVolumeMountPointA(
        lpszVolumeMountPoint: LPCSTR,
        lpszVolumeName: LPSTR,
        cchBufferLength: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetVolumePathNameA(
        lpszFileName: LPCSTR,
        lpszVolumePathName: LPSTR,
        cchBufferLength: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetVolumePathNamesForVolumeNameA(
        lpszVolumeName: LPCSTR,
        lpszVolumePathNames: LPCH,
        cchBufferLength: DWORD,
        lpcchReturnLength: PDWORD,
    ) -> BOOL;
}
#[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,
}
#[test]
fn bindgen_test_layout_tagACTCTXA() {
    assert_eq!(
        ::std::mem::size_of::<tagACTCTXA>(),
        56usize,
        concat!("Size of: ", stringify!(tagACTCTXA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagACTCTXA>(),
        8usize,
        concat!("Alignment of ", stringify!(tagACTCTXA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagACTCTXA>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTXA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagACTCTXA>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTXA),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagACTCTXA>())).lpSource as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTXA),
            "::",
            stringify!(lpSource)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagACTCTXA>())).wProcessorArchitecture as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTXA),
            "::",
            stringify!(wProcessorArchitecture)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagACTCTXA>())).wLangId as *const _ as usize },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTXA),
            "::",
            stringify!(wLangId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagACTCTXA>())).lpAssemblyDirectory as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTXA),
            "::",
            stringify!(lpAssemblyDirectory)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagACTCTXA>())).lpResourceName as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTXA),
            "::",
            stringify!(lpResourceName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagACTCTXA>())).lpApplicationName as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTXA),
            "::",
            stringify!(lpApplicationName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagACTCTXA>())).hModule as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTXA),
            "::",
            stringify!(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,
}
#[test]
fn bindgen_test_layout_tagACTCTXW() {
    assert_eq!(
        ::std::mem::size_of::<tagACTCTXW>(),
        56usize,
        concat!("Size of: ", stringify!(tagACTCTXW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagACTCTXW>(),
        8usize,
        concat!("Alignment of ", stringify!(tagACTCTXW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagACTCTXW>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTXW),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagACTCTXW>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTXW),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagACTCTXW>())).lpSource as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTXW),
            "::",
            stringify!(lpSource)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagACTCTXW>())).wProcessorArchitecture as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTXW),
            "::",
            stringify!(wProcessorArchitecture)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagACTCTXW>())).wLangId as *const _ as usize },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTXW),
            "::",
            stringify!(wLangId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagACTCTXW>())).lpAssemblyDirectory as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTXW),
            "::",
            stringify!(lpAssemblyDirectory)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagACTCTXW>())).lpResourceName as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTXW),
            "::",
            stringify!(lpResourceName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagACTCTXW>())).lpApplicationName as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTXW),
            "::",
            stringify!(lpApplicationName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagACTCTXW>())).hModule as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTXW),
            "::",
            stringify!(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) -> BOOL;
}
extern "C" {
    pub fn ActivateActCtx(hActCtx: HANDLE, lpCookie: *mut ULONG_PTR) -> BOOL;
}
extern "C" {
    pub fn DeactivateActCtx(dwFlags: DWORD, ulCookie: ULONG_PTR) -> BOOL;
}
extern "C" {
    pub fn GetCurrentActCtx(lphActCtx: *mut HANDLE) -> BOOL;
}
#[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,
}
#[test]
fn bindgen_test_layout_tagACTCTX_SECTION_KEYED_DATA_2600() {
    assert_eq!(
        ::std::mem::size_of::<tagACTCTX_SECTION_KEYED_DATA_2600>(),
        72usize,
        concat!("Size of: ", stringify!(tagACTCTX_SECTION_KEYED_DATA_2600))
    );
    assert_eq!(
        ::std::mem::align_of::<tagACTCTX_SECTION_KEYED_DATA_2600>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tagACTCTX_SECTION_KEYED_DATA_2600)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagACTCTX_SECTION_KEYED_DATA_2600>())).cbSize as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTX_SECTION_KEYED_DATA_2600),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagACTCTX_SECTION_KEYED_DATA_2600>())).ulDataFormatVersion
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTX_SECTION_KEYED_DATA_2600),
            "::",
            stringify!(ulDataFormatVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagACTCTX_SECTION_KEYED_DATA_2600>())).lpData as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTX_SECTION_KEYED_DATA_2600),
            "::",
            stringify!(lpData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagACTCTX_SECTION_KEYED_DATA_2600>())).ulLength as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTX_SECTION_KEYED_DATA_2600),
            "::",
            stringify!(ulLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagACTCTX_SECTION_KEYED_DATA_2600>())).lpSectionGlobalData
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTX_SECTION_KEYED_DATA_2600),
            "::",
            stringify!(lpSectionGlobalData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagACTCTX_SECTION_KEYED_DATA_2600>())).ulSectionGlobalDataLength
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTX_SECTION_KEYED_DATA_2600),
            "::",
            stringify!(ulSectionGlobalDataLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagACTCTX_SECTION_KEYED_DATA_2600>())).lpSectionBase as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTX_SECTION_KEYED_DATA_2600),
            "::",
            stringify!(lpSectionBase)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagACTCTX_SECTION_KEYED_DATA_2600>())).ulSectionTotalLength
                as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTX_SECTION_KEYED_DATA_2600),
            "::",
            stringify!(ulSectionTotalLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagACTCTX_SECTION_KEYED_DATA_2600>())).hActCtx as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTX_SECTION_KEYED_DATA_2600),
            "::",
            stringify!(hActCtx)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagACTCTX_SECTION_KEYED_DATA_2600>())).ulAssemblyRosterIndex
                as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTX_SECTION_KEYED_DATA_2600),
            "::",
            stringify!(ulAssemblyRosterIndex)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA() {
    assert_eq!(
        ::std::mem::size_of::<tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA>(),
        40usize,
        concat!(
            "Size of: ",
            stringify!(tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA>())).lpInformation
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA),
            "::",
            stringify!(lpInformation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA>())).lpSectionBase
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA),
            "::",
            stringify!(lpSectionBase)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA>()))
                .ulSectionLength as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA),
            "::",
            stringify!(ulSectionLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA>()))
                .lpSectionGlobalDataBase as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA),
            "::",
            stringify!(lpSectionGlobalDataBase)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA>()))
                .ulSectionGlobalDataLength as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA),
            "::",
            stringify!(ulSectionGlobalDataLength)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagACTCTX_SECTION_KEYED_DATA() {
    assert_eq!(
        ::std::mem::size_of::<tagACTCTX_SECTION_KEYED_DATA>(),
        112usize,
        concat!("Size of: ", stringify!(tagACTCTX_SECTION_KEYED_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagACTCTX_SECTION_KEYED_DATA>(),
        8usize,
        concat!("Alignment of ", stringify!(tagACTCTX_SECTION_KEYED_DATA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagACTCTX_SECTION_KEYED_DATA>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTX_SECTION_KEYED_DATA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagACTCTX_SECTION_KEYED_DATA>())).ulDataFormatVersion as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTX_SECTION_KEYED_DATA),
            "::",
            stringify!(ulDataFormatVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagACTCTX_SECTION_KEYED_DATA>())).lpData as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTX_SECTION_KEYED_DATA),
            "::",
            stringify!(lpData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagACTCTX_SECTION_KEYED_DATA>())).ulLength as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTX_SECTION_KEYED_DATA),
            "::",
            stringify!(ulLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagACTCTX_SECTION_KEYED_DATA>())).lpSectionGlobalData as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTX_SECTION_KEYED_DATA),
            "::",
            stringify!(lpSectionGlobalData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagACTCTX_SECTION_KEYED_DATA>())).ulSectionGlobalDataLength
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTX_SECTION_KEYED_DATA),
            "::",
            stringify!(ulSectionGlobalDataLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagACTCTX_SECTION_KEYED_DATA>())).lpSectionBase as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTX_SECTION_KEYED_DATA),
            "::",
            stringify!(lpSectionBase)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagACTCTX_SECTION_KEYED_DATA>())).ulSectionTotalLength
                as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTX_SECTION_KEYED_DATA),
            "::",
            stringify!(ulSectionTotalLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagACTCTX_SECTION_KEYED_DATA>())).hActCtx as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTX_SECTION_KEYED_DATA),
            "::",
            stringify!(hActCtx)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagACTCTX_SECTION_KEYED_DATA>())).ulAssemblyRosterIndex
                as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTX_SECTION_KEYED_DATA),
            "::",
            stringify!(ulAssemblyRosterIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagACTCTX_SECTION_KEYED_DATA>())).ulFlags as *const _ as usize
        },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTX_SECTION_KEYED_DATA),
            "::",
            stringify!(ulFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagACTCTX_SECTION_KEYED_DATA>())).AssemblyMetadata as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACTCTX_SECTION_KEYED_DATA),
            "::",
            stringify!(AssemblyMetadata)
        )
    );
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn FindActCtxSectionStringW(
        dwFlags: DWORD,
        lpExtensionGuid: *const GUID,
        ulSectionId: ULONG,
        lpStringToFind: LPCWSTR,
        ReturnedData: PACTCTX_SECTION_KEYED_DATA,
    ) -> BOOL;
}
extern "C" {
    pub fn FindActCtxSectionGuid(
        dwFlags: DWORD,
        lpExtensionGuid: *const GUID,
        ulSectionId: ULONG,
        lpGuidToFind: *const GUID,
        ReturnedData: PACTCTX_SECTION_KEYED_DATA,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ACTIVATION_CONTEXT_BASIC_INFORMATION {
    pub hActCtx: HANDLE,
    pub dwFlags: DWORD,
}
#[test]
fn bindgen_test_layout__ACTIVATION_CONTEXT_BASIC_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_ACTIVATION_CONTEXT_BASIC_INFORMATION>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_ACTIVATION_CONTEXT_BASIC_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_ACTIVATION_CONTEXT_BASIC_INFORMATION>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_ACTIVATION_CONTEXT_BASIC_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_BASIC_INFORMATION>())).hActCtx as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_BASIC_INFORMATION),
            "::",
            stringify!(hActCtx)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ACTIVATION_CONTEXT_BASIC_INFORMATION>())).dwFlags as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTIVATION_CONTEXT_BASIC_INFORMATION),
            "::",
            stringify!(dwFlags)
        )
    );
}
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,
    ) -> BOOL;
}
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,
    ) -> BOOL,
>;
extern "C" {
    pub fn WTSGetActiveConsoleSessionId() -> DWORD;
}
extern "C" {
    pub fn WTSGetServiceSessionId() -> DWORD;
}
extern "C" {
    pub fn WTSIsServerContainer() -> BOOLEAN;
}
extern "C" {
    pub fn GetActiveProcessorGroupCount() -> WORD;
}
extern "C" {
    pub fn GetMaximumProcessorGroupCount() -> WORD;
}
extern "C" {
    pub fn GetActiveProcessorCount(GroupNumber: WORD) -> DWORD;
}
extern "C" {
    pub fn GetMaximumProcessorCount(GroupNumber: WORD) -> DWORD;
}
extern "C" {
    pub fn GetNumaProcessorNode(Processor: UCHAR, NodeNumber: PUCHAR) -> BOOL;
}
extern "C" {
    pub fn GetNumaNodeNumberFromHandle(hFile: HANDLE, NodeNumber: PUSHORT) -> BOOL;
}
extern "C" {
    pub fn GetNumaProcessorNodeEx(Processor: PPROCESSOR_NUMBER, NodeNumber: PUSHORT) -> BOOL;
}
extern "C" {
    pub fn GetNumaNodeProcessorMask(Node: UCHAR, ProcessorMask: PULONGLONG) -> BOOL;
}
extern "C" {
    pub fn GetNumaAvailableMemoryNode(Node: UCHAR, AvailableBytes: PULONGLONG) -> BOOL;
}
extern "C" {
    pub fn GetNumaAvailableMemoryNodeEx(Node: USHORT, AvailableBytes: PULONGLONG) -> BOOL;
}
extern "C" {
    pub fn GetNumaProximityNode(ProximityId: ULONG, NodeNumber: PUCHAR) -> BOOL;
}
pub type APPLICATION_RECOVERY_CALLBACK =
    ::std::option::Option<unsafe extern "C" fn(pvParameter: PVOID) -> DWORD>;
extern "C" {
    pub fn RegisterApplicationRecoveryCallback(
        pRecoveyCallback: APPLICATION_RECOVERY_CALLBACK,
        pvParameter: PVOID,
        dwPingInterval: DWORD,
        dwFlags: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn UnregisterApplicationRecoveryCallback() -> HRESULT;
}
extern "C" {
    pub fn RegisterApplicationRestart(pwzCommandline: PCWSTR, dwFlags: DWORD) -> HRESULT;
}
extern "C" {
    pub fn UnregisterApplicationRestart() -> HRESULT;
}
extern "C" {
    pub fn GetApplicationRecoveryCallback(
        hProcess: HANDLE,
        pRecoveryCallback: *mut APPLICATION_RECOVERY_CALLBACK,
        ppvParameter: *mut PVOID,
        pdwPingInterval: PDWORD,
        pdwFlags: PDWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn GetApplicationRestartSettings(
        hProcess: HANDLE,
        pwzCommandline: PWSTR,
        pcchSize: PDWORD,
        pdwFlags: PDWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn ApplicationRecoveryInProgress(pbCancelled: PBOOL) -> HRESULT;
}
extern "C" {
    pub fn ApplicationRecoveryFinished(bSuccess: BOOL);
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _FILE_BASIC_INFO {
    pub CreationTime: LARGE_INTEGER,
    pub LastAccessTime: LARGE_INTEGER,
    pub LastWriteTime: LARGE_INTEGER,
    pub ChangeTime: LARGE_INTEGER,
    pub FileAttributes: DWORD,
}
#[test]
fn bindgen_test_layout__FILE_BASIC_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_BASIC_INFO>(),
        40usize,
        concat!("Size of: ", stringify!(_FILE_BASIC_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_BASIC_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_FILE_BASIC_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_BASIC_INFO>())).CreationTime as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_BASIC_INFO),
            "::",
            stringify!(CreationTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_BASIC_INFO>())).LastAccessTime as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_BASIC_INFO),
            "::",
            stringify!(LastAccessTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_BASIC_INFO>())).LastWriteTime as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_BASIC_INFO),
            "::",
            stringify!(LastWriteTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_BASIC_INFO>())).ChangeTime as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_BASIC_INFO),
            "::",
            stringify!(ChangeTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_BASIC_INFO>())).FileAttributes as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_BASIC_INFO),
            "::",
            stringify!(FileAttributes)
        )
    );
}
pub type FILE_BASIC_INFO = _FILE_BASIC_INFO;
pub type PFILE_BASIC_INFO = *mut _FILE_BASIC_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _FILE_STANDARD_INFO {
    pub AllocationSize: LARGE_INTEGER,
    pub EndOfFile: LARGE_INTEGER,
    pub NumberOfLinks: DWORD,
    pub DeletePending: BOOLEAN,
    pub Directory: BOOLEAN,
}
#[test]
fn bindgen_test_layout__FILE_STANDARD_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_STANDARD_INFO>(),
        24usize,
        concat!("Size of: ", stringify!(_FILE_STANDARD_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_STANDARD_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_FILE_STANDARD_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_STANDARD_INFO>())).AllocationSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_STANDARD_INFO),
            "::",
            stringify!(AllocationSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_STANDARD_INFO>())).EndOfFile as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_STANDARD_INFO),
            "::",
            stringify!(EndOfFile)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_STANDARD_INFO>())).NumberOfLinks as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_STANDARD_INFO),
            "::",
            stringify!(NumberOfLinks)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_STANDARD_INFO>())).DeletePending as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_STANDARD_INFO),
            "::",
            stringify!(DeletePending)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_STANDARD_INFO>())).Directory as *const _ as usize },
        21usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_STANDARD_INFO),
            "::",
            stringify!(Directory)
        )
    );
}
pub type FILE_STANDARD_INFO = _FILE_STANDARD_INFO;
pub type PFILE_STANDARD_INFO = *mut _FILE_STANDARD_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_NAME_INFO {
    pub FileNameLength: DWORD,
    pub FileName: [WCHAR; 1usize],
}
#[test]
fn bindgen_test_layout__FILE_NAME_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_NAME_INFO>(),
        8usize,
        concat!("Size of: ", stringify!(_FILE_NAME_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_NAME_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_FILE_NAME_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_NAME_INFO>())).FileNameLength as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_NAME_INFO),
            "::",
            stringify!(FileNameLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_NAME_INFO>())).FileName as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_NAME_INFO),
            "::",
            stringify!(FileName)
        )
    );
}
pub type FILE_NAME_INFO = _FILE_NAME_INFO;
pub type PFILE_NAME_INFO = *mut _FILE_NAME_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_CASE_SENSITIVE_INFO {
    pub Flags: ULONG,
}
#[test]
fn bindgen_test_layout__FILE_CASE_SENSITIVE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_CASE_SENSITIVE_INFO>(),
        4usize,
        concat!("Size of: ", stringify!(_FILE_CASE_SENSITIVE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_CASE_SENSITIVE_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_FILE_CASE_SENSITIVE_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_CASE_SENSITIVE_INFO>())).Flags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_CASE_SENSITIVE_INFO),
            "::",
            stringify!(Flags)
        )
    );
}
pub type FILE_CASE_SENSITIVE_INFO = _FILE_CASE_SENSITIVE_INFO;
pub type PFILE_CASE_SENSITIVE_INFO = *mut _FILE_CASE_SENSITIVE_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _FILE_RENAME_INFO {
    pub __bindgen_anon_1: _FILE_RENAME_INFO__bindgen_ty_1,
    pub RootDirectory: HANDLE,
    pub FileNameLength: DWORD,
    pub FileName: [WCHAR; 1usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _FILE_RENAME_INFO__bindgen_ty_1 {
    pub ReplaceIfExists: BOOLEAN,
    pub Flags: DWORD,
    _bindgen_union_align: u32,
}
#[test]
fn bindgen_test_layout__FILE_RENAME_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_RENAME_INFO__bindgen_ty_1>(),
        4usize,
        concat!("Size of: ", stringify!(_FILE_RENAME_INFO__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_RENAME_INFO__bindgen_ty_1>(),
        4usize,
        concat!("Alignment of ", stringify!(_FILE_RENAME_INFO__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_RENAME_INFO__bindgen_ty_1>())).ReplaceIfExists as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_RENAME_INFO__bindgen_ty_1),
            "::",
            stringify!(ReplaceIfExists)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_RENAME_INFO__bindgen_ty_1>())).Flags as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_RENAME_INFO__bindgen_ty_1),
            "::",
            stringify!(Flags)
        )
    );
}
#[test]
fn bindgen_test_layout__FILE_RENAME_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_RENAME_INFO>(),
        24usize,
        concat!("Size of: ", stringify!(_FILE_RENAME_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_RENAME_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_FILE_RENAME_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_RENAME_INFO>())).RootDirectory as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_RENAME_INFO),
            "::",
            stringify!(RootDirectory)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_RENAME_INFO>())).FileNameLength as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_RENAME_INFO),
            "::",
            stringify!(FileNameLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_RENAME_INFO>())).FileName as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_RENAME_INFO),
            "::",
            stringify!(FileName)
        )
    );
}
pub type FILE_RENAME_INFO = _FILE_RENAME_INFO;
pub type PFILE_RENAME_INFO = *mut _FILE_RENAME_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _FILE_ALLOCATION_INFO {
    pub AllocationSize: LARGE_INTEGER,
}
#[test]
fn bindgen_test_layout__FILE_ALLOCATION_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_ALLOCATION_INFO>(),
        8usize,
        concat!("Size of: ", stringify!(_FILE_ALLOCATION_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_ALLOCATION_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_FILE_ALLOCATION_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ALLOCATION_INFO>())).AllocationSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ALLOCATION_INFO),
            "::",
            stringify!(AllocationSize)
        )
    );
}
pub type FILE_ALLOCATION_INFO = _FILE_ALLOCATION_INFO;
pub type PFILE_ALLOCATION_INFO = *mut _FILE_ALLOCATION_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _FILE_END_OF_FILE_INFO {
    pub EndOfFile: LARGE_INTEGER,
}
#[test]
fn bindgen_test_layout__FILE_END_OF_FILE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_END_OF_FILE_INFO>(),
        8usize,
        concat!("Size of: ", stringify!(_FILE_END_OF_FILE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_END_OF_FILE_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_FILE_END_OF_FILE_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_END_OF_FILE_INFO>())).EndOfFile as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_END_OF_FILE_INFO),
            "::",
            stringify!(EndOfFile)
        )
    );
}
pub type FILE_END_OF_FILE_INFO = _FILE_END_OF_FILE_INFO;
pub type PFILE_END_OF_FILE_INFO = *mut _FILE_END_OF_FILE_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _FILE_STREAM_INFO {
    pub NextEntryOffset: DWORD,
    pub StreamNameLength: DWORD,
    pub StreamSize: LARGE_INTEGER,
    pub StreamAllocationSize: LARGE_INTEGER,
    pub StreamName: [WCHAR; 1usize],
}
#[test]
fn bindgen_test_layout__FILE_STREAM_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_STREAM_INFO>(),
        32usize,
        concat!("Size of: ", stringify!(_FILE_STREAM_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_STREAM_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_FILE_STREAM_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_STREAM_INFO>())).NextEntryOffset as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_STREAM_INFO),
            "::",
            stringify!(NextEntryOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_STREAM_INFO>())).StreamNameLength as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_STREAM_INFO),
            "::",
            stringify!(StreamNameLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_STREAM_INFO>())).StreamSize as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_STREAM_INFO),
            "::",
            stringify!(StreamSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_STREAM_INFO>())).StreamAllocationSize as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_STREAM_INFO),
            "::",
            stringify!(StreamAllocationSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_STREAM_INFO>())).StreamName as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_STREAM_INFO),
            "::",
            stringify!(StreamName)
        )
    );
}
pub type FILE_STREAM_INFO = _FILE_STREAM_INFO;
pub type PFILE_STREAM_INFO = *mut _FILE_STREAM_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _FILE_COMPRESSION_INFO {
    pub CompressedFileSize: LARGE_INTEGER,
    pub CompressionFormat: WORD,
    pub CompressionUnitShift: UCHAR,
    pub ChunkShift: UCHAR,
    pub ClusterShift: UCHAR,
    pub Reserved: [UCHAR; 3usize],
}
#[test]
fn bindgen_test_layout__FILE_COMPRESSION_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_COMPRESSION_INFO>(),
        16usize,
        concat!("Size of: ", stringify!(_FILE_COMPRESSION_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_COMPRESSION_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_FILE_COMPRESSION_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_COMPRESSION_INFO>())).CompressedFileSize as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_COMPRESSION_INFO),
            "::",
            stringify!(CompressedFileSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_COMPRESSION_INFO>())).CompressionFormat as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_COMPRESSION_INFO),
            "::",
            stringify!(CompressionFormat)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_COMPRESSION_INFO>())).CompressionUnitShift as *const _
                as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_COMPRESSION_INFO),
            "::",
            stringify!(CompressionUnitShift)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_COMPRESSION_INFO>())).ChunkShift as *const _ as usize
        },
        11usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_COMPRESSION_INFO),
            "::",
            stringify!(ChunkShift)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_COMPRESSION_INFO>())).ClusterShift as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_COMPRESSION_INFO),
            "::",
            stringify!(ClusterShift)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_COMPRESSION_INFO>())).Reserved as *const _ as usize },
        13usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_COMPRESSION_INFO),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type FILE_COMPRESSION_INFO = _FILE_COMPRESSION_INFO;
pub type PFILE_COMPRESSION_INFO = *mut _FILE_COMPRESSION_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_ATTRIBUTE_TAG_INFO {
    pub FileAttributes: DWORD,
    pub ReparseTag: DWORD,
}
#[test]
fn bindgen_test_layout__FILE_ATTRIBUTE_TAG_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_ATTRIBUTE_TAG_INFO>(),
        8usize,
        concat!("Size of: ", stringify!(_FILE_ATTRIBUTE_TAG_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_ATTRIBUTE_TAG_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_FILE_ATTRIBUTE_TAG_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ATTRIBUTE_TAG_INFO>())).FileAttributes as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ATTRIBUTE_TAG_INFO),
            "::",
            stringify!(FileAttributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ATTRIBUTE_TAG_INFO>())).ReparseTag as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ATTRIBUTE_TAG_INFO),
            "::",
            stringify!(ReparseTag)
        )
    );
}
pub type FILE_ATTRIBUTE_TAG_INFO = _FILE_ATTRIBUTE_TAG_INFO;
pub type PFILE_ATTRIBUTE_TAG_INFO = *mut _FILE_ATTRIBUTE_TAG_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_DISPOSITION_INFO {
    pub DeleteFileA: BOOLEAN,
}
#[test]
fn bindgen_test_layout__FILE_DISPOSITION_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_DISPOSITION_INFO>(),
        1usize,
        concat!("Size of: ", stringify!(_FILE_DISPOSITION_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_DISPOSITION_INFO>(),
        1usize,
        concat!("Alignment of ", stringify!(_FILE_DISPOSITION_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_DISPOSITION_INFO>())).DeleteFileA as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_DISPOSITION_INFO),
            "::",
            stringify!(DeleteFileA)
        )
    );
}
pub type FILE_DISPOSITION_INFO = _FILE_DISPOSITION_INFO;
pub type PFILE_DISPOSITION_INFO = *mut _FILE_DISPOSITION_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_DISPOSITION_INFO_EX {
    pub Flags: DWORD,
}
#[test]
fn bindgen_test_layout__FILE_DISPOSITION_INFO_EX() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_DISPOSITION_INFO_EX>(),
        4usize,
        concat!("Size of: ", stringify!(_FILE_DISPOSITION_INFO_EX))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_DISPOSITION_INFO_EX>(),
        4usize,
        concat!("Alignment of ", stringify!(_FILE_DISPOSITION_INFO_EX))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_DISPOSITION_INFO_EX>())).Flags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_DISPOSITION_INFO_EX),
            "::",
            stringify!(Flags)
        )
    );
}
pub type FILE_DISPOSITION_INFO_EX = _FILE_DISPOSITION_INFO_EX;
pub type PFILE_DISPOSITION_INFO_EX = *mut _FILE_DISPOSITION_INFO_EX;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _FILE_ID_BOTH_DIR_INFO {
    pub NextEntryOffset: DWORD,
    pub FileIndex: DWORD,
    pub CreationTime: LARGE_INTEGER,
    pub LastAccessTime: LARGE_INTEGER,
    pub LastWriteTime: LARGE_INTEGER,
    pub ChangeTime: LARGE_INTEGER,
    pub EndOfFile: LARGE_INTEGER,
    pub AllocationSize: LARGE_INTEGER,
    pub FileAttributes: DWORD,
    pub FileNameLength: DWORD,
    pub EaSize: DWORD,
    pub ShortNameLength: CCHAR,
    pub ShortName: [WCHAR; 12usize],
    pub FileId: LARGE_INTEGER,
    pub FileName: [WCHAR; 1usize],
}
#[test]
fn bindgen_test_layout__FILE_ID_BOTH_DIR_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_ID_BOTH_DIR_INFO>(),
        112usize,
        concat!("Size of: ", stringify!(_FILE_ID_BOTH_DIR_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_ID_BOTH_DIR_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_FILE_ID_BOTH_DIR_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ID_BOTH_DIR_INFO>())).NextEntryOffset as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ID_BOTH_DIR_INFO),
            "::",
            stringify!(NextEntryOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ID_BOTH_DIR_INFO>())).FileIndex as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ID_BOTH_DIR_INFO),
            "::",
            stringify!(FileIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ID_BOTH_DIR_INFO>())).CreationTime as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ID_BOTH_DIR_INFO),
            "::",
            stringify!(CreationTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ID_BOTH_DIR_INFO>())).LastAccessTime as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ID_BOTH_DIR_INFO),
            "::",
            stringify!(LastAccessTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ID_BOTH_DIR_INFO>())).LastWriteTime as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ID_BOTH_DIR_INFO),
            "::",
            stringify!(LastWriteTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ID_BOTH_DIR_INFO>())).ChangeTime as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ID_BOTH_DIR_INFO),
            "::",
            stringify!(ChangeTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ID_BOTH_DIR_INFO>())).EndOfFile as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ID_BOTH_DIR_INFO),
            "::",
            stringify!(EndOfFile)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ID_BOTH_DIR_INFO>())).AllocationSize as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ID_BOTH_DIR_INFO),
            "::",
            stringify!(AllocationSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ID_BOTH_DIR_INFO>())).FileAttributes as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ID_BOTH_DIR_INFO),
            "::",
            stringify!(FileAttributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ID_BOTH_DIR_INFO>())).FileNameLength as *const _ as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ID_BOTH_DIR_INFO),
            "::",
            stringify!(FileNameLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_ID_BOTH_DIR_INFO>())).EaSize as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ID_BOTH_DIR_INFO),
            "::",
            stringify!(EaSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ID_BOTH_DIR_INFO>())).ShortNameLength as *const _ as usize
        },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ID_BOTH_DIR_INFO),
            "::",
            stringify!(ShortNameLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ID_BOTH_DIR_INFO>())).ShortName as *const _ as usize
        },
        70usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ID_BOTH_DIR_INFO),
            "::",
            stringify!(ShortName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_ID_BOTH_DIR_INFO>())).FileId as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ID_BOTH_DIR_INFO),
            "::",
            stringify!(FileId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_ID_BOTH_DIR_INFO>())).FileName as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ID_BOTH_DIR_INFO),
            "::",
            stringify!(FileName)
        )
    );
}
pub type FILE_ID_BOTH_DIR_INFO = _FILE_ID_BOTH_DIR_INFO;
pub type PFILE_ID_BOTH_DIR_INFO = *mut _FILE_ID_BOTH_DIR_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _FILE_FULL_DIR_INFO {
    pub NextEntryOffset: ULONG,
    pub FileIndex: ULONG,
    pub CreationTime: LARGE_INTEGER,
    pub LastAccessTime: LARGE_INTEGER,
    pub LastWriteTime: LARGE_INTEGER,
    pub ChangeTime: LARGE_INTEGER,
    pub EndOfFile: LARGE_INTEGER,
    pub AllocationSize: LARGE_INTEGER,
    pub FileAttributes: ULONG,
    pub FileNameLength: ULONG,
    pub EaSize: ULONG,
    pub FileName: [WCHAR; 1usize],
}
#[test]
fn bindgen_test_layout__FILE_FULL_DIR_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_FULL_DIR_INFO>(),
        72usize,
        concat!("Size of: ", stringify!(_FILE_FULL_DIR_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_FULL_DIR_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_FILE_FULL_DIR_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_FULL_DIR_INFO>())).NextEntryOffset as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_FULL_DIR_INFO),
            "::",
            stringify!(NextEntryOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_FULL_DIR_INFO>())).FileIndex as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_FULL_DIR_INFO),
            "::",
            stringify!(FileIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_FULL_DIR_INFO>())).CreationTime as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_FULL_DIR_INFO),
            "::",
            stringify!(CreationTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_FULL_DIR_INFO>())).LastAccessTime as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_FULL_DIR_INFO),
            "::",
            stringify!(LastAccessTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_FULL_DIR_INFO>())).LastWriteTime as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_FULL_DIR_INFO),
            "::",
            stringify!(LastWriteTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_FULL_DIR_INFO>())).ChangeTime as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_FULL_DIR_INFO),
            "::",
            stringify!(ChangeTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_FULL_DIR_INFO>())).EndOfFile as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_FULL_DIR_INFO),
            "::",
            stringify!(EndOfFile)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_FULL_DIR_INFO>())).AllocationSize as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_FULL_DIR_INFO),
            "::",
            stringify!(AllocationSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_FULL_DIR_INFO>())).FileAttributes as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_FULL_DIR_INFO),
            "::",
            stringify!(FileAttributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_FULL_DIR_INFO>())).FileNameLength as *const _ as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_FULL_DIR_INFO),
            "::",
            stringify!(FileNameLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_FULL_DIR_INFO>())).EaSize as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_FULL_DIR_INFO),
            "::",
            stringify!(EaSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_FULL_DIR_INFO>())).FileName as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_FULL_DIR_INFO),
            "::",
            stringify!(FileName)
        )
    );
}
pub type FILE_FULL_DIR_INFO = _FILE_FULL_DIR_INFO;
pub type PFILE_FULL_DIR_INFO = *mut _FILE_FULL_DIR_INFO;
pub const _PRIORITY_HINT_IoPriorityHintVeryLow: _PRIORITY_HINT = 0;
pub const _PRIORITY_HINT_IoPriorityHintLow: _PRIORITY_HINT = 1;
pub const _PRIORITY_HINT_IoPriorityHintNormal: _PRIORITY_HINT = 2;
pub const _PRIORITY_HINT_MaximumIoPriorityHintType: _PRIORITY_HINT = 3;
pub type _PRIORITY_HINT = ::std::os::raw::c_int;
pub use self::_PRIORITY_HINT as PRIORITY_HINT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_IO_PRIORITY_HINT_INFO {
    pub PriorityHint: PRIORITY_HINT,
}
#[test]
fn bindgen_test_layout__FILE_IO_PRIORITY_HINT_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_IO_PRIORITY_HINT_INFO>(),
        4usize,
        concat!("Size of: ", stringify!(_FILE_IO_PRIORITY_HINT_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_IO_PRIORITY_HINT_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_FILE_IO_PRIORITY_HINT_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_IO_PRIORITY_HINT_INFO>())).PriorityHint as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_IO_PRIORITY_HINT_INFO),
            "::",
            stringify!(PriorityHint)
        )
    );
}
pub type FILE_IO_PRIORITY_HINT_INFO = _FILE_IO_PRIORITY_HINT_INFO;
pub type PFILE_IO_PRIORITY_HINT_INFO = *mut _FILE_IO_PRIORITY_HINT_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_ALIGNMENT_INFO {
    pub AlignmentRequirement: ULONG,
}
#[test]
fn bindgen_test_layout__FILE_ALIGNMENT_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_ALIGNMENT_INFO>(),
        4usize,
        concat!("Size of: ", stringify!(_FILE_ALIGNMENT_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_ALIGNMENT_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_FILE_ALIGNMENT_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ALIGNMENT_INFO>())).AlignmentRequirement as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ALIGNMENT_INFO),
            "::",
            stringify!(AlignmentRequirement)
        )
    );
}
pub type FILE_ALIGNMENT_INFO = _FILE_ALIGNMENT_INFO;
pub type PFILE_ALIGNMENT_INFO = *mut _FILE_ALIGNMENT_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_STORAGE_INFO {
    pub LogicalBytesPerSector: ULONG,
    pub PhysicalBytesPerSectorForAtomicity: ULONG,
    pub PhysicalBytesPerSectorForPerformance: ULONG,
    pub FileSystemEffectivePhysicalBytesPerSectorForAtomicity: ULONG,
    pub Flags: ULONG,
    pub ByteOffsetForSectorAlignment: ULONG,
    pub ByteOffsetForPartitionAlignment: ULONG,
}
#[test]
fn bindgen_test_layout__FILE_STORAGE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_STORAGE_INFO>(),
        28usize,
        concat!("Size of: ", stringify!(_FILE_STORAGE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_STORAGE_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_FILE_STORAGE_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_STORAGE_INFO>())).LogicalBytesPerSector as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_STORAGE_INFO),
            "::",
            stringify!(LogicalBytesPerSector)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_STORAGE_INFO>())).PhysicalBytesPerSectorForAtomicity
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_STORAGE_INFO),
            "::",
            stringify!(PhysicalBytesPerSectorForAtomicity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_STORAGE_INFO>())).PhysicalBytesPerSectorForPerformance
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_STORAGE_INFO),
            "::",
            stringify!(PhysicalBytesPerSectorForPerformance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_STORAGE_INFO>()))
                .FileSystemEffectivePhysicalBytesPerSectorForAtomicity as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_STORAGE_INFO),
            "::",
            stringify!(FileSystemEffectivePhysicalBytesPerSectorForAtomicity)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_STORAGE_INFO>())).Flags as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_STORAGE_INFO),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_STORAGE_INFO>())).ByteOffsetForSectorAlignment as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_STORAGE_INFO),
            "::",
            stringify!(ByteOffsetForSectorAlignment)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_STORAGE_INFO>())).ByteOffsetForPartitionAlignment
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_STORAGE_INFO),
            "::",
            stringify!(ByteOffsetForPartitionAlignment)
        )
    );
}
pub type FILE_STORAGE_INFO = _FILE_STORAGE_INFO;
pub type PFILE_STORAGE_INFO = *mut _FILE_STORAGE_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_ID_INFO {
    pub VolumeSerialNumber: ULONGLONG,
    pub FileId: FILE_ID_128,
}
#[test]
fn bindgen_test_layout__FILE_ID_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_ID_INFO>(),
        24usize,
        concat!("Size of: ", stringify!(_FILE_ID_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_ID_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_FILE_ID_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ID_INFO>())).VolumeSerialNumber as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ID_INFO),
            "::",
            stringify!(VolumeSerialNumber)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_ID_INFO>())).FileId as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ID_INFO),
            "::",
            stringify!(FileId)
        )
    );
}
pub type FILE_ID_INFO = _FILE_ID_INFO;
pub type PFILE_ID_INFO = *mut _FILE_ID_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _FILE_ID_EXTD_DIR_INFO {
    pub NextEntryOffset: ULONG,
    pub FileIndex: ULONG,
    pub CreationTime: LARGE_INTEGER,
    pub LastAccessTime: LARGE_INTEGER,
    pub LastWriteTime: LARGE_INTEGER,
    pub ChangeTime: LARGE_INTEGER,
    pub EndOfFile: LARGE_INTEGER,
    pub AllocationSize: LARGE_INTEGER,
    pub FileAttributes: ULONG,
    pub FileNameLength: ULONG,
    pub EaSize: ULONG,
    pub ReparsePointTag: ULONG,
    pub FileId: FILE_ID_128,
    pub FileName: [WCHAR; 1usize],
}
#[test]
fn bindgen_test_layout__FILE_ID_EXTD_DIR_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_ID_EXTD_DIR_INFO>(),
        96usize,
        concat!("Size of: ", stringify!(_FILE_ID_EXTD_DIR_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_ID_EXTD_DIR_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_FILE_ID_EXTD_DIR_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ID_EXTD_DIR_INFO>())).NextEntryOffset as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ID_EXTD_DIR_INFO),
            "::",
            stringify!(NextEntryOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ID_EXTD_DIR_INFO>())).FileIndex as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ID_EXTD_DIR_INFO),
            "::",
            stringify!(FileIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ID_EXTD_DIR_INFO>())).CreationTime as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ID_EXTD_DIR_INFO),
            "::",
            stringify!(CreationTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ID_EXTD_DIR_INFO>())).LastAccessTime as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ID_EXTD_DIR_INFO),
            "::",
            stringify!(LastAccessTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ID_EXTD_DIR_INFO>())).LastWriteTime as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ID_EXTD_DIR_INFO),
            "::",
            stringify!(LastWriteTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ID_EXTD_DIR_INFO>())).ChangeTime as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ID_EXTD_DIR_INFO),
            "::",
            stringify!(ChangeTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ID_EXTD_DIR_INFO>())).EndOfFile as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ID_EXTD_DIR_INFO),
            "::",
            stringify!(EndOfFile)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ID_EXTD_DIR_INFO>())).AllocationSize as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ID_EXTD_DIR_INFO),
            "::",
            stringify!(AllocationSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ID_EXTD_DIR_INFO>())).FileAttributes as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ID_EXTD_DIR_INFO),
            "::",
            stringify!(FileAttributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ID_EXTD_DIR_INFO>())).FileNameLength as *const _ as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ID_EXTD_DIR_INFO),
            "::",
            stringify!(FileNameLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_ID_EXTD_DIR_INFO>())).EaSize as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ID_EXTD_DIR_INFO),
            "::",
            stringify!(EaSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ID_EXTD_DIR_INFO>())).ReparsePointTag as *const _ as usize
        },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ID_EXTD_DIR_INFO),
            "::",
            stringify!(ReparsePointTag)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_ID_EXTD_DIR_INFO>())).FileId as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ID_EXTD_DIR_INFO),
            "::",
            stringify!(FileId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_ID_EXTD_DIR_INFO>())).FileName as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ID_EXTD_DIR_INFO),
            "::",
            stringify!(FileName)
        )
    );
}
pub type FILE_ID_EXTD_DIR_INFO = _FILE_ID_EXTD_DIR_INFO;
pub type PFILE_ID_EXTD_DIR_INFO = *mut _FILE_ID_EXTD_DIR_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _FILE_REMOTE_PROTOCOL_INFO {
    pub StructureVersion: USHORT,
    pub StructureSize: USHORT,
    pub Protocol: ULONG,
    pub ProtocolMajorVersion: USHORT,
    pub ProtocolMinorVersion: USHORT,
    pub ProtocolRevision: USHORT,
    pub Reserved: USHORT,
    pub Flags: ULONG,
    pub GenericReserved: _FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_1,
    pub ProtocolSpecific: _FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_1 {
    pub Reserved: [ULONG; 8usize],
}
#[test]
fn bindgen_test_layout__FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_1>(),
        32usize,
        concat!(
            "Size of: ",
            stringify!(_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_1>())).Reserved
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_1),
            "::",
            stringify!(Reserved)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2 {
    pub Smb2: _FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2__bindgen_ty_1,
    pub Reserved: [ULONG; 16usize],
    _bindgen_union_align: [u32; 16usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2__bindgen_ty_1 {
    pub Server: _FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1,
    pub Share: _FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1 {
    pub Capabilities: ULONG,
}
#[test]
fn bindgen_test_layout__FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1>(
        ),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1>(
        ),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<
                _FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1,
            >()))
            .Capabilities as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Capabilities)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2 {
    pub Capabilities: ULONG,
    pub CachingFlags: ULONG,
}
#[test]
fn bindgen_test_layout__FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2>(
        ),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2>(
        ),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<
                _FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2,
            >()))
            .Capabilities as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(Capabilities)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<
                _FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2,
            >()))
            .CachingFlags as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(CachingFlags)
        )
    );
}
#[test]
fn bindgen_test_layout__FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2__bindgen_ty_1>(),
        12usize,
        concat!(
            "Size of: ",
            stringify!(_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2__bindgen_ty_1>()))
                .Server as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2__bindgen_ty_1),
            "::",
            stringify!(Server)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2__bindgen_ty_1>())).Share
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2__bindgen_ty_1),
            "::",
            stringify!(Share)
        )
    );
}
#[test]
fn bindgen_test_layout__FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2>(),
        64usize,
        concat!(
            "Size of: ",
            stringify!(_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2>())).Smb2 as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2),
            "::",
            stringify!(Smb2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2>())).Reserved
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_REMOTE_PROTOCOL_INFO__bindgen_ty_2),
            "::",
            stringify!(Reserved)
        )
    );
}
#[test]
fn bindgen_test_layout__FILE_REMOTE_PROTOCOL_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_REMOTE_PROTOCOL_INFO>(),
        116usize,
        concat!("Size of: ", stringify!(_FILE_REMOTE_PROTOCOL_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_REMOTE_PROTOCOL_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_FILE_REMOTE_PROTOCOL_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_REMOTE_PROTOCOL_INFO>())).StructureVersion as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_REMOTE_PROTOCOL_INFO),
            "::",
            stringify!(StructureVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_REMOTE_PROTOCOL_INFO>())).StructureSize as *const _
                as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_REMOTE_PROTOCOL_INFO),
            "::",
            stringify!(StructureSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_REMOTE_PROTOCOL_INFO>())).Protocol as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_REMOTE_PROTOCOL_INFO),
            "::",
            stringify!(Protocol)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_REMOTE_PROTOCOL_INFO>())).ProtocolMajorVersion as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_REMOTE_PROTOCOL_INFO),
            "::",
            stringify!(ProtocolMajorVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_REMOTE_PROTOCOL_INFO>())).ProtocolMinorVersion as *const _
                as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_REMOTE_PROTOCOL_INFO),
            "::",
            stringify!(ProtocolMinorVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_REMOTE_PROTOCOL_INFO>())).ProtocolRevision as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_REMOTE_PROTOCOL_INFO),
            "::",
            stringify!(ProtocolRevision)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_REMOTE_PROTOCOL_INFO>())).Reserved as *const _ as usize
        },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_REMOTE_PROTOCOL_INFO),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_REMOTE_PROTOCOL_INFO>())).Flags as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_REMOTE_PROTOCOL_INFO),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_REMOTE_PROTOCOL_INFO>())).GenericReserved as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_REMOTE_PROTOCOL_INFO),
            "::",
            stringify!(GenericReserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_REMOTE_PROTOCOL_INFO>())).ProtocolSpecific as *const _
                as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_REMOTE_PROTOCOL_INFO),
            "::",
            stringify!(ProtocolSpecific)
        )
    );
}
pub type FILE_REMOTE_PROTOCOL_INFO = _FILE_REMOTE_PROTOCOL_INFO;
pub type PFILE_REMOTE_PROTOCOL_INFO = *mut _FILE_REMOTE_PROTOCOL_INFO;
extern "C" {
    pub fn GetFileInformationByHandleEx(
        hFile: HANDLE,
        FileInformationClass: FILE_INFO_BY_HANDLE_CLASS,
        lpFileInformation: LPVOID,
        dwBufferSize: DWORD,
    ) -> BOOL;
}
pub const _FILE_ID_TYPE_FileIdType: _FILE_ID_TYPE = 0;
pub const _FILE_ID_TYPE_ObjectIdType: _FILE_ID_TYPE = 1;
pub const _FILE_ID_TYPE_ExtendedFileIdType: _FILE_ID_TYPE = 2;
pub const _FILE_ID_TYPE_MaximumFileIdType: _FILE_ID_TYPE = 3;
pub type _FILE_ID_TYPE = ::std::os::raw::c_int;
pub use self::_FILE_ID_TYPE as FILE_ID_TYPE;
pub type PFILE_ID_TYPE = *mut _FILE_ID_TYPE;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct FILE_ID_DESCRIPTOR {
    pub dwSize: DWORD,
    pub Type: FILE_ID_TYPE,
    pub __bindgen_anon_1: FILE_ID_DESCRIPTOR__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union FILE_ID_DESCRIPTOR__bindgen_ty_1 {
    pub FileId: LARGE_INTEGER,
    pub ObjectId: GUID,
    pub ExtendedFileId: FILE_ID_128,
    _bindgen_union_align: [u64; 2usize],
}
#[test]
fn bindgen_test_layout_FILE_ID_DESCRIPTOR__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<FILE_ID_DESCRIPTOR__bindgen_ty_1>(),
        16usize,
        concat!("Size of: ", stringify!(FILE_ID_DESCRIPTOR__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<FILE_ID_DESCRIPTOR__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(FILE_ID_DESCRIPTOR__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<FILE_ID_DESCRIPTOR__bindgen_ty_1>())).FileId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(FILE_ID_DESCRIPTOR__bindgen_ty_1),
            "::",
            stringify!(FileId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<FILE_ID_DESCRIPTOR__bindgen_ty_1>())).ObjectId as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(FILE_ID_DESCRIPTOR__bindgen_ty_1),
            "::",
            stringify!(ObjectId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<FILE_ID_DESCRIPTOR__bindgen_ty_1>())).ExtendedFileId as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(FILE_ID_DESCRIPTOR__bindgen_ty_1),
            "::",
            stringify!(ExtendedFileId)
        )
    );
}
#[test]
fn bindgen_test_layout_FILE_ID_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<FILE_ID_DESCRIPTOR>(),
        24usize,
        concat!("Size of: ", stringify!(FILE_ID_DESCRIPTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<FILE_ID_DESCRIPTOR>(),
        8usize,
        concat!("Alignment of ", stringify!(FILE_ID_DESCRIPTOR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<FILE_ID_DESCRIPTOR>())).dwSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(FILE_ID_DESCRIPTOR),
            "::",
            stringify!(dwSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<FILE_ID_DESCRIPTOR>())).Type as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(FILE_ID_DESCRIPTOR),
            "::",
            stringify!(Type)
        )
    );
}
pub type LPFILE_ID_DESCRIPTOR = *mut FILE_ID_DESCRIPTOR;
extern "C" {
    pub fn OpenFileById(
        hVolumeHint: HANDLE,
        lpFileId: LPFILE_ID_DESCRIPTOR,
        dwDesiredAccess: DWORD,
        dwShareMode: DWORD,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
        dwFlagsAndAttributes: DWORD,
    ) -> HANDLE;
}
extern "C" {
    pub fn CreateSymbolicLinkA(
        lpSymlinkFileName: LPCSTR,
        lpTargetFileName: LPCSTR,
        dwFlags: DWORD,
    ) -> BOOLEAN;
}
extern "C" {
    pub fn CreateSymbolicLinkW(
        lpSymlinkFileName: LPCWSTR,
        lpTargetFileName: LPCWSTR,
        dwFlags: DWORD,
    ) -> BOOLEAN;
}
extern "C" {
    pub fn QueryActCtxSettingsW(
        dwFlags: DWORD,
        hActCtx: HANDLE,
        settingsNameSpace: PCWSTR,
        settingName: PCWSTR,
        pvBuffer: PWSTR,
        dwBuffer: SIZE_T,
        pdwWrittenOrRequired: *mut SIZE_T,
    ) -> BOOL;
}
extern "C" {
    pub fn CreateSymbolicLinkTransactedA(
        lpSymlinkFileName: LPCSTR,
        lpTargetFileName: LPCSTR,
        dwFlags: DWORD,
        hTransaction: HANDLE,
    ) -> BOOLEAN;
}
extern "C" {
    pub fn CreateSymbolicLinkTransactedW(
        lpSymlinkFileName: LPCWSTR,
        lpTargetFileName: LPCWSTR,
        dwFlags: DWORD,
        hTransaction: HANDLE,
    ) -> BOOLEAN;
}
extern "C" {
    pub fn ReplacePartitionUnit(
        TargetPartition: PWSTR,
        SparePartition: PWSTR,
        Flags: ULONG,
    ) -> BOOL;
}
extern "C" {
    pub fn AddSecureMemoryCacheCallback(pfnCallBack: PSECURE_MEMORY_CACHE_CALLBACK) -> BOOL;
}
extern "C" {
    pub fn RemoveSecureMemoryCacheCallback(pfnCallBack: PSECURE_MEMORY_CACHE_CALLBACK) -> BOOL;
}
extern "C" {
    pub fn CopyContext(Destination: PCONTEXT, ContextFlags: DWORD, Source: PCONTEXT) -> BOOL;
}
extern "C" {
    pub fn InitializeContext(
        Buffer: PVOID,
        ContextFlags: DWORD,
        Context: *mut PCONTEXT,
        ContextLength: PDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn InitializeContext2(
        Buffer: PVOID,
        ContextFlags: DWORD,
        Context: *mut PCONTEXT,
        ContextLength: PDWORD,
        XStateCompactionMask: ULONG64,
    ) -> BOOL;
}
extern "C" {
    pub fn GetEnabledXStateFeatures() -> DWORD64;
}
extern "C" {
    pub fn GetXStateFeaturesMask(Context: PCONTEXT, FeatureMask: PDWORD64) -> BOOL;
}
extern "C" {
    pub fn LocateXStateFeature(Context: PCONTEXT, FeatureId: DWORD, Length: PDWORD) -> PVOID;
}
extern "C" {
    pub fn SetXStateFeaturesMask(Context: PCONTEXT, FeatureMask: DWORD64) -> BOOL;
}
extern "C" {
    pub fn EnableThreadProfiling(
        ThreadHandle: HANDLE,
        Flags: DWORD,
        HardwareCounters: DWORD64,
        PerformanceDataHandle: *mut HANDLE,
    ) -> DWORD;
}
extern "C" {
    pub fn DisableThreadProfiling(PerformanceDataHandle: HANDLE) -> DWORD;
}
extern "C" {
    pub fn QueryThreadProfiling(ThreadHandle: HANDLE, Enabled: PBOOLEAN) -> DWORD;
}
extern "C" {
    pub fn ReadThreadProfilingData(
        PerformanceDataHandle: HANDLE,
        Flags: DWORD,
        PerformanceData: PPERFORMANCE_DATA,
    ) -> DWORD;
}
extern "C" {
    pub fn RaiseCustomSystemEventTrigger(
        CustomSystemEventTriggerConfig: PCUSTOM_SYSTEM_EVENT_TRIGGER_CONFIG,
    ) -> DWORD;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DRAWPATRECT {
    pub ptPosition: POINT,
    pub ptSize: POINT,
    pub wStyle: WORD,
    pub wPattern: WORD,
}
#[test]
fn bindgen_test_layout__DRAWPATRECT() {
    assert_eq!(
        ::std::mem::size_of::<_DRAWPATRECT>(),
        20usize,
        concat!("Size of: ", stringify!(_DRAWPATRECT))
    );
    assert_eq!(
        ::std::mem::align_of::<_DRAWPATRECT>(),
        4usize,
        concat!("Alignment of ", stringify!(_DRAWPATRECT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRAWPATRECT>())).ptPosition as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRAWPATRECT),
            "::",
            stringify!(ptPosition)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRAWPATRECT>())).ptSize as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRAWPATRECT),
            "::",
            stringify!(ptSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRAWPATRECT>())).wStyle as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRAWPATRECT),
            "::",
            stringify!(wStyle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRAWPATRECT>())).wPattern as *const _ as usize },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRAWPATRECT),
            "::",
            stringify!(wPattern)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__PSINJECTDATA() {
    assert_eq!(
        ::std::mem::size_of::<_PSINJECTDATA>(),
        8usize,
        concat!("Size of: ", stringify!(_PSINJECTDATA))
    );
    assert_eq!(
        ::std::mem::align_of::<_PSINJECTDATA>(),
        4usize,
        concat!("Alignment of ", stringify!(_PSINJECTDATA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PSINJECTDATA>())).DataBytes as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PSINJECTDATA),
            "::",
            stringify!(DataBytes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PSINJECTDATA>())).InjectionPoint as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PSINJECTDATA),
            "::",
            stringify!(InjectionPoint)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PSINJECTDATA>())).PageNumber as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_PSINJECTDATA),
            "::",
            stringify!(PageNumber)
        )
    );
}
pub type PSINJECTDATA = _PSINJECTDATA;
pub type PPSINJECTDATA = *mut _PSINJECTDATA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PSFEATURE_OUTPUT {
    pub bPageIndependent: BOOL,
    pub bSetPageDevice: BOOL,
}
#[test]
fn bindgen_test_layout__PSFEATURE_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_PSFEATURE_OUTPUT>(),
        8usize,
        concat!("Size of: ", stringify!(_PSFEATURE_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_PSFEATURE_OUTPUT>(),
        4usize,
        concat!("Alignment of ", stringify!(_PSFEATURE_OUTPUT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PSFEATURE_OUTPUT>())).bPageIndependent as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PSFEATURE_OUTPUT),
            "::",
            stringify!(bPageIndependent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PSFEATURE_OUTPUT>())).bSetPageDevice as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PSFEATURE_OUTPUT),
            "::",
            stringify!(bSetPageDevice)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__PSFEATURE_CUSTPAPER() {
    assert_eq!(
        ::std::mem::size_of::<_PSFEATURE_CUSTPAPER>(),
        20usize,
        concat!("Size of: ", stringify!(_PSFEATURE_CUSTPAPER))
    );
    assert_eq!(
        ::std::mem::align_of::<_PSFEATURE_CUSTPAPER>(),
        4usize,
        concat!("Alignment of ", stringify!(_PSFEATURE_CUSTPAPER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PSFEATURE_CUSTPAPER>())).lOrientation as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PSFEATURE_CUSTPAPER),
            "::",
            stringify!(lOrientation)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PSFEATURE_CUSTPAPER>())).lWidth as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PSFEATURE_CUSTPAPER),
            "::",
            stringify!(lWidth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PSFEATURE_CUSTPAPER>())).lHeight as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PSFEATURE_CUSTPAPER),
            "::",
            stringify!(lHeight)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PSFEATURE_CUSTPAPER>())).lWidthOffset as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_PSFEATURE_CUSTPAPER),
            "::",
            stringify!(lWidthOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PSFEATURE_CUSTPAPER>())).lHeightOffset as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PSFEATURE_CUSTPAPER),
            "::",
            stringify!(lHeightOffset)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagXFORM() {
    assert_eq!(
        ::std::mem::size_of::<tagXFORM>(),
        24usize,
        concat!("Size of: ", stringify!(tagXFORM))
    );
    assert_eq!(
        ::std::mem::align_of::<tagXFORM>(),
        4usize,
        concat!("Alignment of ", stringify!(tagXFORM))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagXFORM>())).eM11 as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagXFORM),
            "::",
            stringify!(eM11)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagXFORM>())).eM12 as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagXFORM),
            "::",
            stringify!(eM12)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagXFORM>())).eM21 as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagXFORM),
            "::",
            stringify!(eM21)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagXFORM>())).eM22 as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagXFORM),
            "::",
            stringify!(eM22)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagXFORM>())).eDx as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagXFORM),
            "::",
            stringify!(eDx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagXFORM>())).eDy as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagXFORM),
            "::",
            stringify!(eDy)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagBITMAP() {
    assert_eq!(
        ::std::mem::size_of::<tagBITMAP>(),
        32usize,
        concat!("Size of: ", stringify!(tagBITMAP))
    );
    assert_eq!(
        ::std::mem::align_of::<tagBITMAP>(),
        8usize,
        concat!("Alignment of ", stringify!(tagBITMAP))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBITMAP>())).bmType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBITMAP),
            "::",
            stringify!(bmType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBITMAP>())).bmWidth as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBITMAP),
            "::",
            stringify!(bmWidth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBITMAP>())).bmHeight as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBITMAP),
            "::",
            stringify!(bmHeight)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBITMAP>())).bmWidthBytes as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBITMAP),
            "::",
            stringify!(bmWidthBytes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBITMAP>())).bmPlanes as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBITMAP),
            "::",
            stringify!(bmPlanes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBITMAP>())).bmBitsPixel as *const _ as usize },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBITMAP),
            "::",
            stringify!(bmBitsPixel)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBITMAP>())).bmBits as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBITMAP),
            "::",
            stringify!(bmBits)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagRGBTRIPLE() {
    assert_eq!(
        ::std::mem::size_of::<tagRGBTRIPLE>(),
        3usize,
        concat!("Size of: ", stringify!(tagRGBTRIPLE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRGBTRIPLE>(),
        1usize,
        concat!("Alignment of ", stringify!(tagRGBTRIPLE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRGBTRIPLE>())).rgbtBlue as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRGBTRIPLE),
            "::",
            stringify!(rgbtBlue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRGBTRIPLE>())).rgbtGreen as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRGBTRIPLE),
            "::",
            stringify!(rgbtGreen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRGBTRIPLE>())).rgbtRed as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRGBTRIPLE),
            "::",
            stringify!(rgbtRed)
        )
    );
}
pub type RGBTRIPLE = tagRGBTRIPLE;
pub type PRGBTRIPLE = *mut tagRGBTRIPLE;
pub type NPRGBTRIPLE = *mut tagRGBTRIPLE;
pub type LPRGBTRIPLE = *mut tagRGBTRIPLE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagRGBQUAD {
    pub rgbBlue: BYTE,
    pub rgbGreen: BYTE,
    pub rgbRed: BYTE,
    pub rgbReserved: BYTE,
}
#[test]
fn bindgen_test_layout_tagRGBQUAD() {
    assert_eq!(
        ::std::mem::size_of::<tagRGBQUAD>(),
        4usize,
        concat!("Size of: ", stringify!(tagRGBQUAD))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRGBQUAD>(),
        1usize,
        concat!("Alignment of ", stringify!(tagRGBQUAD))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRGBQUAD>())).rgbBlue as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRGBQUAD),
            "::",
            stringify!(rgbBlue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRGBQUAD>())).rgbGreen as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRGBQUAD),
            "::",
            stringify!(rgbGreen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRGBQUAD>())).rgbRed as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRGBQUAD),
            "::",
            stringify!(rgbRed)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRGBQUAD>())).rgbReserved as *const _ as usize },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRGBQUAD),
            "::",
            stringify!(rgbReserved)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagCIEXYZ() {
    assert_eq!(
        ::std::mem::size_of::<tagCIEXYZ>(),
        12usize,
        concat!("Size of: ", stringify!(tagCIEXYZ))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCIEXYZ>(),
        4usize,
        concat!("Alignment of ", stringify!(tagCIEXYZ))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCIEXYZ>())).ciexyzX as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCIEXYZ),
            "::",
            stringify!(ciexyzX)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCIEXYZ>())).ciexyzY as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCIEXYZ),
            "::",
            stringify!(ciexyzY)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCIEXYZ>())).ciexyzZ as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCIEXYZ),
            "::",
            stringify!(ciexyzZ)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagICEXYZTRIPLE() {
    assert_eq!(
        ::std::mem::size_of::<tagICEXYZTRIPLE>(),
        36usize,
        concat!("Size of: ", stringify!(tagICEXYZTRIPLE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagICEXYZTRIPLE>(),
        4usize,
        concat!("Alignment of ", stringify!(tagICEXYZTRIPLE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagICEXYZTRIPLE>())).ciexyzRed as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagICEXYZTRIPLE),
            "::",
            stringify!(ciexyzRed)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagICEXYZTRIPLE>())).ciexyzGreen as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagICEXYZTRIPLE),
            "::",
            stringify!(ciexyzGreen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagICEXYZTRIPLE>())).ciexyzBlue as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagICEXYZTRIPLE),
            "::",
            stringify!(ciexyzBlue)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagLOGCOLORSPACEA() {
    assert_eq!(
        ::std::mem::size_of::<tagLOGCOLORSPACEA>(),
        328usize,
        concat!("Size of: ", stringify!(tagLOGCOLORSPACEA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagLOGCOLORSPACEA>(),
        4usize,
        concat!("Alignment of ", stringify!(tagLOGCOLORSPACEA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGCOLORSPACEA>())).lcsSignature as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGCOLORSPACEA),
            "::",
            stringify!(lcsSignature)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGCOLORSPACEA>())).lcsVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGCOLORSPACEA),
            "::",
            stringify!(lcsVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGCOLORSPACEA>())).lcsSize as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGCOLORSPACEA),
            "::",
            stringify!(lcsSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGCOLORSPACEA>())).lcsCSType as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGCOLORSPACEA),
            "::",
            stringify!(lcsCSType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGCOLORSPACEA>())).lcsIntent as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGCOLORSPACEA),
            "::",
            stringify!(lcsIntent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGCOLORSPACEA>())).lcsEndpoints as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGCOLORSPACEA),
            "::",
            stringify!(lcsEndpoints)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGCOLORSPACEA>())).lcsGammaRed as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGCOLORSPACEA),
            "::",
            stringify!(lcsGammaRed)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGCOLORSPACEA>())).lcsGammaGreen as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGCOLORSPACEA),
            "::",
            stringify!(lcsGammaGreen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGCOLORSPACEA>())).lcsGammaBlue as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGCOLORSPACEA),
            "::",
            stringify!(lcsGammaBlue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGCOLORSPACEA>())).lcsFilename as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGCOLORSPACEA),
            "::",
            stringify!(lcsFilename)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagLOGCOLORSPACEW() {
    assert_eq!(
        ::std::mem::size_of::<tagLOGCOLORSPACEW>(),
        588usize,
        concat!("Size of: ", stringify!(tagLOGCOLORSPACEW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagLOGCOLORSPACEW>(),
        4usize,
        concat!("Alignment of ", stringify!(tagLOGCOLORSPACEW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGCOLORSPACEW>())).lcsSignature as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGCOLORSPACEW),
            "::",
            stringify!(lcsSignature)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGCOLORSPACEW>())).lcsVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGCOLORSPACEW),
            "::",
            stringify!(lcsVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGCOLORSPACEW>())).lcsSize as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGCOLORSPACEW),
            "::",
            stringify!(lcsSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGCOLORSPACEW>())).lcsCSType as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGCOLORSPACEW),
            "::",
            stringify!(lcsCSType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGCOLORSPACEW>())).lcsIntent as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGCOLORSPACEW),
            "::",
            stringify!(lcsIntent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGCOLORSPACEW>())).lcsEndpoints as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGCOLORSPACEW),
            "::",
            stringify!(lcsEndpoints)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGCOLORSPACEW>())).lcsGammaRed as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGCOLORSPACEW),
            "::",
            stringify!(lcsGammaRed)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGCOLORSPACEW>())).lcsGammaGreen as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGCOLORSPACEW),
            "::",
            stringify!(lcsGammaGreen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGCOLORSPACEW>())).lcsGammaBlue as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGCOLORSPACEW),
            "::",
            stringify!(lcsGammaBlue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGCOLORSPACEW>())).lcsFilename as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGCOLORSPACEW),
            "::",
            stringify!(lcsFilename)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagBITMAPCOREHEADER() {
    assert_eq!(
        ::std::mem::size_of::<tagBITMAPCOREHEADER>(),
        12usize,
        concat!("Size of: ", stringify!(tagBITMAPCOREHEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<tagBITMAPCOREHEADER>(),
        4usize,
        concat!("Alignment of ", stringify!(tagBITMAPCOREHEADER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBITMAPCOREHEADER>())).bcSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBITMAPCOREHEADER),
            "::",
            stringify!(bcSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBITMAPCOREHEADER>())).bcWidth as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBITMAPCOREHEADER),
            "::",
            stringify!(bcWidth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBITMAPCOREHEADER>())).bcHeight as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBITMAPCOREHEADER),
            "::",
            stringify!(bcHeight)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBITMAPCOREHEADER>())).bcPlanes as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBITMAPCOREHEADER),
            "::",
            stringify!(bcPlanes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBITMAPCOREHEADER>())).bcBitCount as *const _ as usize },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBITMAPCOREHEADER),
            "::",
            stringify!(bcBitCount)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagBITMAPINFOHEADER() {
    assert_eq!(
        ::std::mem::size_of::<tagBITMAPINFOHEADER>(),
        40usize,
        concat!("Size of: ", stringify!(tagBITMAPINFOHEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<tagBITMAPINFOHEADER>(),
        4usize,
        concat!("Alignment of ", stringify!(tagBITMAPINFOHEADER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBITMAPINFOHEADER>())).biSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBITMAPINFOHEADER),
            "::",
            stringify!(biSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBITMAPINFOHEADER>())).biWidth as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBITMAPINFOHEADER),
            "::",
            stringify!(biWidth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBITMAPINFOHEADER>())).biHeight as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBITMAPINFOHEADER),
            "::",
            stringify!(biHeight)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBITMAPINFOHEADER>())).biPlanes as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBITMAPINFOHEADER),
            "::",
            stringify!(biPlanes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBITMAPINFOHEADER>())).biBitCount as *const _ as usize },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBITMAPINFOHEADER),
            "::",
            stringify!(biBitCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagBITMAPINFOHEADER>())).biCompression as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBITMAPINFOHEADER),
            "::",
            stringify!(biCompression)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBITMAPINFOHEADER>())).biSizeImage as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBITMAPINFOHEADER),
            "::",
            stringify!(biSizeImage)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagBITMAPINFOHEADER>())).biXPelsPerMeter as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBITMAPINFOHEADER),
            "::",
            stringify!(biXPelsPerMeter)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagBITMAPINFOHEADER>())).biYPelsPerMeter as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBITMAPINFOHEADER),
            "::",
            stringify!(biYPelsPerMeter)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBITMAPINFOHEADER>())).biClrUsed as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBITMAPINFOHEADER),
            "::",
            stringify!(biClrUsed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagBITMAPINFOHEADER>())).biClrImportant as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBITMAPINFOHEADER),
            "::",
            stringify!(biClrImportant)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_BITMAPV4HEADER() {
    assert_eq!(
        ::std::mem::size_of::<BITMAPV4HEADER>(),
        108usize,
        concat!("Size of: ", stringify!(BITMAPV4HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<BITMAPV4HEADER>(),
        4usize,
        concat!("Alignment of ", stringify!(BITMAPV4HEADER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV4HEADER>())).bV4Size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV4HEADER),
            "::",
            stringify!(bV4Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV4HEADER>())).bV4Width as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV4HEADER),
            "::",
            stringify!(bV4Width)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV4HEADER>())).bV4Height as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV4HEADER),
            "::",
            stringify!(bV4Height)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV4HEADER>())).bV4Planes as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV4HEADER),
            "::",
            stringify!(bV4Planes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV4HEADER>())).bV4BitCount as *const _ as usize },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV4HEADER),
            "::",
            stringify!(bV4BitCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV4HEADER>())).bV4V4Compression as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV4HEADER),
            "::",
            stringify!(bV4V4Compression)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV4HEADER>())).bV4SizeImage as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV4HEADER),
            "::",
            stringify!(bV4SizeImage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV4HEADER>())).bV4XPelsPerMeter as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV4HEADER),
            "::",
            stringify!(bV4XPelsPerMeter)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV4HEADER>())).bV4YPelsPerMeter as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV4HEADER),
            "::",
            stringify!(bV4YPelsPerMeter)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV4HEADER>())).bV4ClrUsed as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV4HEADER),
            "::",
            stringify!(bV4ClrUsed)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV4HEADER>())).bV4ClrImportant as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV4HEADER),
            "::",
            stringify!(bV4ClrImportant)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV4HEADER>())).bV4RedMask as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV4HEADER),
            "::",
            stringify!(bV4RedMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV4HEADER>())).bV4GreenMask as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV4HEADER),
            "::",
            stringify!(bV4GreenMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV4HEADER>())).bV4BlueMask as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV4HEADER),
            "::",
            stringify!(bV4BlueMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV4HEADER>())).bV4AlphaMask as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV4HEADER),
            "::",
            stringify!(bV4AlphaMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV4HEADER>())).bV4CSType as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV4HEADER),
            "::",
            stringify!(bV4CSType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV4HEADER>())).bV4Endpoints as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV4HEADER),
            "::",
            stringify!(bV4Endpoints)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV4HEADER>())).bV4GammaRed as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV4HEADER),
            "::",
            stringify!(bV4GammaRed)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV4HEADER>())).bV4GammaGreen as *const _ as usize },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV4HEADER),
            "::",
            stringify!(bV4GammaGreen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV4HEADER>())).bV4GammaBlue as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV4HEADER),
            "::",
            stringify!(bV4GammaBlue)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_BITMAPV5HEADER() {
    assert_eq!(
        ::std::mem::size_of::<BITMAPV5HEADER>(),
        124usize,
        concat!("Size of: ", stringify!(BITMAPV5HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<BITMAPV5HEADER>(),
        4usize,
        concat!("Alignment of ", stringify!(BITMAPV5HEADER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV5HEADER>())).bV5Size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV5HEADER),
            "::",
            stringify!(bV5Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV5HEADER>())).bV5Width as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV5HEADER),
            "::",
            stringify!(bV5Width)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV5HEADER>())).bV5Height as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV5HEADER),
            "::",
            stringify!(bV5Height)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV5HEADER>())).bV5Planes as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV5HEADER),
            "::",
            stringify!(bV5Planes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV5HEADER>())).bV5BitCount as *const _ as usize },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV5HEADER),
            "::",
            stringify!(bV5BitCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV5HEADER>())).bV5Compression as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV5HEADER),
            "::",
            stringify!(bV5Compression)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV5HEADER>())).bV5SizeImage as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV5HEADER),
            "::",
            stringify!(bV5SizeImage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV5HEADER>())).bV5XPelsPerMeter as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV5HEADER),
            "::",
            stringify!(bV5XPelsPerMeter)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV5HEADER>())).bV5YPelsPerMeter as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV5HEADER),
            "::",
            stringify!(bV5YPelsPerMeter)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV5HEADER>())).bV5ClrUsed as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV5HEADER),
            "::",
            stringify!(bV5ClrUsed)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV5HEADER>())).bV5ClrImportant as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV5HEADER),
            "::",
            stringify!(bV5ClrImportant)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV5HEADER>())).bV5RedMask as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV5HEADER),
            "::",
            stringify!(bV5RedMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV5HEADER>())).bV5GreenMask as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV5HEADER),
            "::",
            stringify!(bV5GreenMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV5HEADER>())).bV5BlueMask as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV5HEADER),
            "::",
            stringify!(bV5BlueMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV5HEADER>())).bV5AlphaMask as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV5HEADER),
            "::",
            stringify!(bV5AlphaMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV5HEADER>())).bV5CSType as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV5HEADER),
            "::",
            stringify!(bV5CSType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV5HEADER>())).bV5Endpoints as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV5HEADER),
            "::",
            stringify!(bV5Endpoints)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV5HEADER>())).bV5GammaRed as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV5HEADER),
            "::",
            stringify!(bV5GammaRed)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV5HEADER>())).bV5GammaGreen as *const _ as usize },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV5HEADER),
            "::",
            stringify!(bV5GammaGreen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV5HEADER>())).bV5GammaBlue as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV5HEADER),
            "::",
            stringify!(bV5GammaBlue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV5HEADER>())).bV5Intent as *const _ as usize },
        108usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV5HEADER),
            "::",
            stringify!(bV5Intent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV5HEADER>())).bV5ProfileData as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV5HEADER),
            "::",
            stringify!(bV5ProfileData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV5HEADER>())).bV5ProfileSize as *const _ as usize },
        116usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV5HEADER),
            "::",
            stringify!(bV5ProfileSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BITMAPV5HEADER>())).bV5Reserved as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(BITMAPV5HEADER),
            "::",
            stringify!(bV5Reserved)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagBITMAPINFO() {
    assert_eq!(
        ::std::mem::size_of::<tagBITMAPINFO>(),
        44usize,
        concat!("Size of: ", stringify!(tagBITMAPINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagBITMAPINFO>(),
        4usize,
        concat!("Alignment of ", stringify!(tagBITMAPINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBITMAPINFO>())).bmiHeader as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBITMAPINFO),
            "::",
            stringify!(bmiHeader)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBITMAPINFO>())).bmiColors as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBITMAPINFO),
            "::",
            stringify!(bmiColors)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagBITMAPCOREINFO() {
    assert_eq!(
        ::std::mem::size_of::<tagBITMAPCOREINFO>(),
        16usize,
        concat!("Size of: ", stringify!(tagBITMAPCOREINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagBITMAPCOREINFO>(),
        4usize,
        concat!("Alignment of ", stringify!(tagBITMAPCOREINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBITMAPCOREINFO>())).bmciHeader as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBITMAPCOREINFO),
            "::",
            stringify!(bmciHeader)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBITMAPCOREINFO>())).bmciColors as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBITMAPCOREINFO),
            "::",
            stringify!(bmciColors)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagBITMAPFILEHEADER() {
    assert_eq!(
        ::std::mem::size_of::<tagBITMAPFILEHEADER>(),
        14usize,
        concat!("Size of: ", stringify!(tagBITMAPFILEHEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<tagBITMAPFILEHEADER>(),
        2usize,
        concat!("Alignment of ", stringify!(tagBITMAPFILEHEADER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBITMAPFILEHEADER>())).bfType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBITMAPFILEHEADER),
            "::",
            stringify!(bfType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBITMAPFILEHEADER>())).bfSize as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBITMAPFILEHEADER),
            "::",
            stringify!(bfSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBITMAPFILEHEADER>())).bfReserved1 as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBITMAPFILEHEADER),
            "::",
            stringify!(bfReserved1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBITMAPFILEHEADER>())).bfReserved2 as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBITMAPFILEHEADER),
            "::",
            stringify!(bfReserved2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBITMAPFILEHEADER>())).bfOffBits as *const _ as usize },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBITMAPFILEHEADER),
            "::",
            stringify!(bfOffBits)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagFONTSIGNATURE() {
    assert_eq!(
        ::std::mem::size_of::<tagFONTSIGNATURE>(),
        24usize,
        concat!("Size of: ", stringify!(tagFONTSIGNATURE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagFONTSIGNATURE>(),
        4usize,
        concat!("Alignment of ", stringify!(tagFONTSIGNATURE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFONTSIGNATURE>())).fsUsb as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFONTSIGNATURE),
            "::",
            stringify!(fsUsb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFONTSIGNATURE>())).fsCsb as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFONTSIGNATURE),
            "::",
            stringify!(fsCsb)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagCHARSETINFO() {
    assert_eq!(
        ::std::mem::size_of::<tagCHARSETINFO>(),
        32usize,
        concat!("Size of: ", stringify!(tagCHARSETINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCHARSETINFO>(),
        4usize,
        concat!("Alignment of ", stringify!(tagCHARSETINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHARSETINFO>())).ciCharset as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHARSETINFO),
            "::",
            stringify!(ciCharset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHARSETINFO>())).ciACP as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHARSETINFO),
            "::",
            stringify!(ciACP)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHARSETINFO>())).fs as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHARSETINFO),
            "::",
            stringify!(fs)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagLOCALESIGNATURE() {
    assert_eq!(
        ::std::mem::size_of::<tagLOCALESIGNATURE>(),
        32usize,
        concat!("Size of: ", stringify!(tagLOCALESIGNATURE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagLOCALESIGNATURE>(),
        4usize,
        concat!("Alignment of ", stringify!(tagLOCALESIGNATURE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOCALESIGNATURE>())).lsUsb as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOCALESIGNATURE),
            "::",
            stringify!(lsUsb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOCALESIGNATURE>())).lsCsbDefault as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOCALESIGNATURE),
            "::",
            stringify!(lsCsbDefault)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagLOCALESIGNATURE>())).lsCsbSupported as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOCALESIGNATURE),
            "::",
            stringify!(lsCsbSupported)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagHANDLETABLE() {
    assert_eq!(
        ::std::mem::size_of::<tagHANDLETABLE>(),
        8usize,
        concat!("Size of: ", stringify!(tagHANDLETABLE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagHANDLETABLE>(),
        8usize,
        concat!("Alignment of ", stringify!(tagHANDLETABLE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHANDLETABLE>())).objectHandle as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHANDLETABLE),
            "::",
            stringify!(objectHandle)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagMETARECORD() {
    assert_eq!(
        ::std::mem::size_of::<tagMETARECORD>(),
        8usize,
        concat!("Size of: ", stringify!(tagMETARECORD))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMETARECORD>(),
        4usize,
        concat!("Alignment of ", stringify!(tagMETARECORD))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMETARECORD>())).rdSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMETARECORD),
            "::",
            stringify!(rdSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMETARECORD>())).rdFunction as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMETARECORD),
            "::",
            stringify!(rdFunction)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMETARECORD>())).rdParm as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMETARECORD),
            "::",
            stringify!(rdParm)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagMETAFILEPICT() {
    assert_eq!(
        ::std::mem::size_of::<tagMETAFILEPICT>(),
        24usize,
        concat!("Size of: ", stringify!(tagMETAFILEPICT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMETAFILEPICT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagMETAFILEPICT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMETAFILEPICT>())).mm as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMETAFILEPICT),
            "::",
            stringify!(mm)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMETAFILEPICT>())).xExt as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMETAFILEPICT),
            "::",
            stringify!(xExt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMETAFILEPICT>())).yExt as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMETAFILEPICT),
            "::",
            stringify!(yExt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMETAFILEPICT>())).hMF as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMETAFILEPICT),
            "::",
            stringify!(hMF)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagMETAHEADER() {
    assert_eq!(
        ::std::mem::size_of::<tagMETAHEADER>(),
        18usize,
        concat!("Size of: ", stringify!(tagMETAHEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMETAHEADER>(),
        2usize,
        concat!("Alignment of ", stringify!(tagMETAHEADER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMETAHEADER>())).mtType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMETAHEADER),
            "::",
            stringify!(mtType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMETAHEADER>())).mtHeaderSize as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMETAHEADER),
            "::",
            stringify!(mtHeaderSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMETAHEADER>())).mtVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMETAHEADER),
            "::",
            stringify!(mtVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMETAHEADER>())).mtSize as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMETAHEADER),
            "::",
            stringify!(mtSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMETAHEADER>())).mtNoObjects as *const _ as usize },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMETAHEADER),
            "::",
            stringify!(mtNoObjects)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMETAHEADER>())).mtMaxRecord as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMETAHEADER),
            "::",
            stringify!(mtMaxRecord)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMETAHEADER>())).mtNoParameters as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMETAHEADER),
            "::",
            stringify!(mtNoParameters)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagENHMETARECORD() {
    assert_eq!(
        ::std::mem::size_of::<tagENHMETARECORD>(),
        12usize,
        concat!("Size of: ", stringify!(tagENHMETARECORD))
    );
    assert_eq!(
        ::std::mem::align_of::<tagENHMETARECORD>(),
        4usize,
        concat!("Alignment of ", stringify!(tagENHMETARECORD))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENHMETARECORD>())).iType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENHMETARECORD),
            "::",
            stringify!(iType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENHMETARECORD>())).nSize as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENHMETARECORD),
            "::",
            stringify!(nSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENHMETARECORD>())).dParm as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENHMETARECORD),
            "::",
            stringify!(dParm)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagENHMETAHEADER() {
    assert_eq!(
        ::std::mem::size_of::<tagENHMETAHEADER>(),
        108usize,
        concat!("Size of: ", stringify!(tagENHMETAHEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<tagENHMETAHEADER>(),
        4usize,
        concat!("Alignment of ", stringify!(tagENHMETAHEADER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENHMETAHEADER>())).iType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENHMETAHEADER),
            "::",
            stringify!(iType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENHMETAHEADER>())).nSize as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENHMETAHEADER),
            "::",
            stringify!(nSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENHMETAHEADER>())).rclBounds as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENHMETAHEADER),
            "::",
            stringify!(rclBounds)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENHMETAHEADER>())).rclFrame as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENHMETAHEADER),
            "::",
            stringify!(rclFrame)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENHMETAHEADER>())).dSignature as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENHMETAHEADER),
            "::",
            stringify!(dSignature)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENHMETAHEADER>())).nVersion as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENHMETAHEADER),
            "::",
            stringify!(nVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENHMETAHEADER>())).nBytes as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENHMETAHEADER),
            "::",
            stringify!(nBytes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENHMETAHEADER>())).nRecords as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENHMETAHEADER),
            "::",
            stringify!(nRecords)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENHMETAHEADER>())).nHandles as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENHMETAHEADER),
            "::",
            stringify!(nHandles)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENHMETAHEADER>())).sReserved as *const _ as usize },
        58usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENHMETAHEADER),
            "::",
            stringify!(sReserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENHMETAHEADER>())).nDescription as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENHMETAHEADER),
            "::",
            stringify!(nDescription)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENHMETAHEADER>())).offDescription as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENHMETAHEADER),
            "::",
            stringify!(offDescription)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENHMETAHEADER>())).nPalEntries as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENHMETAHEADER),
            "::",
            stringify!(nPalEntries)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENHMETAHEADER>())).szlDevice as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENHMETAHEADER),
            "::",
            stringify!(szlDevice)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENHMETAHEADER>())).szlMillimeters as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENHMETAHEADER),
            "::",
            stringify!(szlMillimeters)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENHMETAHEADER>())).cbPixelFormat as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENHMETAHEADER),
            "::",
            stringify!(cbPixelFormat)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENHMETAHEADER>())).offPixelFormat as *const _ as usize },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENHMETAHEADER),
            "::",
            stringify!(offPixelFormat)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENHMETAHEADER>())).bOpenGL as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENHMETAHEADER),
            "::",
            stringify!(bOpenGL)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENHMETAHEADER>())).szlMicrometers as *const _ as usize },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENHMETAHEADER),
            "::",
            stringify!(szlMicrometers)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagTEXTMETRICA() {
    assert_eq!(
        ::std::mem::size_of::<tagTEXTMETRICA>(),
        56usize,
        concat!("Size of: ", stringify!(tagTEXTMETRICA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagTEXTMETRICA>(),
        4usize,
        concat!("Alignment of ", stringify!(tagTEXTMETRICA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTEXTMETRICA>())).tmHeight as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICA),
            "::",
            stringify!(tmHeight)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTEXTMETRICA>())).tmAscent as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICA),
            "::",
            stringify!(tmAscent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTEXTMETRICA>())).tmDescent as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICA),
            "::",
            stringify!(tmDescent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagTEXTMETRICA>())).tmInternalLeading as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICA),
            "::",
            stringify!(tmInternalLeading)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagTEXTMETRICA>())).tmExternalLeading as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICA),
            "::",
            stringify!(tmExternalLeading)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTEXTMETRICA>())).tmAveCharWidth as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICA),
            "::",
            stringify!(tmAveCharWidth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTEXTMETRICA>())).tmMaxCharWidth as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICA),
            "::",
            stringify!(tmMaxCharWidth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTEXTMETRICA>())).tmWeight as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICA),
            "::",
            stringify!(tmWeight)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTEXTMETRICA>())).tmOverhang as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICA),
            "::",
            stringify!(tmOverhang)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagTEXTMETRICA>())).tmDigitizedAspectX as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICA),
            "::",
            stringify!(tmDigitizedAspectX)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagTEXTMETRICA>())).tmDigitizedAspectY as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICA),
            "::",
            stringify!(tmDigitizedAspectY)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTEXTMETRICA>())).tmFirstChar as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICA),
            "::",
            stringify!(tmFirstChar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTEXTMETRICA>())).tmLastChar as *const _ as usize },
        45usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICA),
            "::",
            stringify!(tmLastChar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTEXTMETRICA>())).tmDefaultChar as *const _ as usize },
        46usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICA),
            "::",
            stringify!(tmDefaultChar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTEXTMETRICA>())).tmBreakChar as *const _ as usize },
        47usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICA),
            "::",
            stringify!(tmBreakChar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTEXTMETRICA>())).tmItalic as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICA),
            "::",
            stringify!(tmItalic)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTEXTMETRICA>())).tmUnderlined as *const _ as usize },
        49usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICA),
            "::",
            stringify!(tmUnderlined)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTEXTMETRICA>())).tmStruckOut as *const _ as usize },
        50usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICA),
            "::",
            stringify!(tmStruckOut)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTEXTMETRICA>())).tmPitchAndFamily as *const _ as usize },
        51usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICA),
            "::",
            stringify!(tmPitchAndFamily)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTEXTMETRICA>())).tmCharSet as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICA),
            "::",
            stringify!(tmCharSet)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagTEXTMETRICW() {
    assert_eq!(
        ::std::mem::size_of::<tagTEXTMETRICW>(),
        60usize,
        concat!("Size of: ", stringify!(tagTEXTMETRICW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagTEXTMETRICW>(),
        4usize,
        concat!("Alignment of ", stringify!(tagTEXTMETRICW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTEXTMETRICW>())).tmHeight as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICW),
            "::",
            stringify!(tmHeight)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTEXTMETRICW>())).tmAscent as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICW),
            "::",
            stringify!(tmAscent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTEXTMETRICW>())).tmDescent as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICW),
            "::",
            stringify!(tmDescent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagTEXTMETRICW>())).tmInternalLeading as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICW),
            "::",
            stringify!(tmInternalLeading)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagTEXTMETRICW>())).tmExternalLeading as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICW),
            "::",
            stringify!(tmExternalLeading)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTEXTMETRICW>())).tmAveCharWidth as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICW),
            "::",
            stringify!(tmAveCharWidth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTEXTMETRICW>())).tmMaxCharWidth as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICW),
            "::",
            stringify!(tmMaxCharWidth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTEXTMETRICW>())).tmWeight as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICW),
            "::",
            stringify!(tmWeight)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTEXTMETRICW>())).tmOverhang as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICW),
            "::",
            stringify!(tmOverhang)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagTEXTMETRICW>())).tmDigitizedAspectX as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICW),
            "::",
            stringify!(tmDigitizedAspectX)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagTEXTMETRICW>())).tmDigitizedAspectY as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICW),
            "::",
            stringify!(tmDigitizedAspectY)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTEXTMETRICW>())).tmFirstChar as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICW),
            "::",
            stringify!(tmFirstChar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTEXTMETRICW>())).tmLastChar as *const _ as usize },
        46usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICW),
            "::",
            stringify!(tmLastChar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTEXTMETRICW>())).tmDefaultChar as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICW),
            "::",
            stringify!(tmDefaultChar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTEXTMETRICW>())).tmBreakChar as *const _ as usize },
        50usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICW),
            "::",
            stringify!(tmBreakChar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTEXTMETRICW>())).tmItalic as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICW),
            "::",
            stringify!(tmItalic)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTEXTMETRICW>())).tmUnderlined as *const _ as usize },
        53usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICW),
            "::",
            stringify!(tmUnderlined)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTEXTMETRICW>())).tmStruckOut as *const _ as usize },
        54usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICW),
            "::",
            stringify!(tmStruckOut)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTEXTMETRICW>())).tmPitchAndFamily as *const _ as usize },
        55usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICW),
            "::",
            stringify!(tmPitchAndFamily)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTEXTMETRICW>())).tmCharSet as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTEXTMETRICW),
            "::",
            stringify!(tmCharSet)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagNEWTEXTMETRICA() {
    assert_eq!(
        ::std::mem::size_of::<tagNEWTEXTMETRICA>(),
        72usize,
        concat!("Size of: ", stringify!(tagNEWTEXTMETRICA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagNEWTEXTMETRICA>(),
        4usize,
        concat!("Alignment of ", stringify!(tagNEWTEXTMETRICA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICA>())).tmHeight as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICA),
            "::",
            stringify!(tmHeight)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICA>())).tmAscent as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICA),
            "::",
            stringify!(tmAscent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICA>())).tmDescent as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICA),
            "::",
            stringify!(tmDescent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNEWTEXTMETRICA>())).tmInternalLeading as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICA),
            "::",
            stringify!(tmInternalLeading)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNEWTEXTMETRICA>())).tmExternalLeading as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICA),
            "::",
            stringify!(tmExternalLeading)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNEWTEXTMETRICA>())).tmAveCharWidth as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICA),
            "::",
            stringify!(tmAveCharWidth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNEWTEXTMETRICA>())).tmMaxCharWidth as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICA),
            "::",
            stringify!(tmMaxCharWidth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICA>())).tmWeight as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICA),
            "::",
            stringify!(tmWeight)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICA>())).tmOverhang as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICA),
            "::",
            stringify!(tmOverhang)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNEWTEXTMETRICA>())).tmDigitizedAspectX as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICA),
            "::",
            stringify!(tmDigitizedAspectX)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNEWTEXTMETRICA>())).tmDigitizedAspectY as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICA),
            "::",
            stringify!(tmDigitizedAspectY)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICA>())).tmFirstChar as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICA),
            "::",
            stringify!(tmFirstChar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICA>())).tmLastChar as *const _ as usize },
        45usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICA),
            "::",
            stringify!(tmLastChar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICA>())).tmDefaultChar as *const _ as usize },
        46usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICA),
            "::",
            stringify!(tmDefaultChar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICA>())).tmBreakChar as *const _ as usize },
        47usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICA),
            "::",
            stringify!(tmBreakChar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICA>())).tmItalic as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICA),
            "::",
            stringify!(tmItalic)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICA>())).tmUnderlined as *const _ as usize },
        49usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICA),
            "::",
            stringify!(tmUnderlined)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICA>())).tmStruckOut as *const _ as usize },
        50usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICA),
            "::",
            stringify!(tmStruckOut)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNEWTEXTMETRICA>())).tmPitchAndFamily as *const _ as usize
        },
        51usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICA),
            "::",
            stringify!(tmPitchAndFamily)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICA>())).tmCharSet as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICA),
            "::",
            stringify!(tmCharSet)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICA>())).ntmFlags as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICA),
            "::",
            stringify!(ntmFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICA>())).ntmSizeEM as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICA),
            "::",
            stringify!(ntmSizeEM)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICA>())).ntmCellHeight as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICA),
            "::",
            stringify!(ntmCellHeight)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICA>())).ntmAvgWidth as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICA),
            "::",
            stringify!(ntmAvgWidth)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagNEWTEXTMETRICW() {
    assert_eq!(
        ::std::mem::size_of::<tagNEWTEXTMETRICW>(),
        76usize,
        concat!("Size of: ", stringify!(tagNEWTEXTMETRICW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagNEWTEXTMETRICW>(),
        4usize,
        concat!("Alignment of ", stringify!(tagNEWTEXTMETRICW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICW>())).tmHeight as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICW),
            "::",
            stringify!(tmHeight)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICW>())).tmAscent as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICW),
            "::",
            stringify!(tmAscent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICW>())).tmDescent as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICW),
            "::",
            stringify!(tmDescent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNEWTEXTMETRICW>())).tmInternalLeading as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICW),
            "::",
            stringify!(tmInternalLeading)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNEWTEXTMETRICW>())).tmExternalLeading as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICW),
            "::",
            stringify!(tmExternalLeading)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNEWTEXTMETRICW>())).tmAveCharWidth as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICW),
            "::",
            stringify!(tmAveCharWidth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNEWTEXTMETRICW>())).tmMaxCharWidth as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICW),
            "::",
            stringify!(tmMaxCharWidth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICW>())).tmWeight as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICW),
            "::",
            stringify!(tmWeight)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICW>())).tmOverhang as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICW),
            "::",
            stringify!(tmOverhang)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNEWTEXTMETRICW>())).tmDigitizedAspectX as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICW),
            "::",
            stringify!(tmDigitizedAspectX)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNEWTEXTMETRICW>())).tmDigitizedAspectY as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICW),
            "::",
            stringify!(tmDigitizedAspectY)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICW>())).tmFirstChar as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICW),
            "::",
            stringify!(tmFirstChar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICW>())).tmLastChar as *const _ as usize },
        46usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICW),
            "::",
            stringify!(tmLastChar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICW>())).tmDefaultChar as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICW),
            "::",
            stringify!(tmDefaultChar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICW>())).tmBreakChar as *const _ as usize },
        50usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICW),
            "::",
            stringify!(tmBreakChar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICW>())).tmItalic as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICW),
            "::",
            stringify!(tmItalic)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICW>())).tmUnderlined as *const _ as usize },
        53usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICW),
            "::",
            stringify!(tmUnderlined)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICW>())).tmStruckOut as *const _ as usize },
        54usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICW),
            "::",
            stringify!(tmStruckOut)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNEWTEXTMETRICW>())).tmPitchAndFamily as *const _ as usize
        },
        55usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICW),
            "::",
            stringify!(tmPitchAndFamily)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICW>())).tmCharSet as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICW),
            "::",
            stringify!(tmCharSet)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICW>())).ntmFlags as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICW),
            "::",
            stringify!(ntmFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICW>())).ntmSizeEM as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICW),
            "::",
            stringify!(ntmSizeEM)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICW>())).ntmCellHeight as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICW),
            "::",
            stringify!(ntmCellHeight)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICW>())).ntmAvgWidth as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICW),
            "::",
            stringify!(ntmAvgWidth)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagNEWTEXTMETRICEXA() {
    assert_eq!(
        ::std::mem::size_of::<tagNEWTEXTMETRICEXA>(),
        96usize,
        concat!("Size of: ", stringify!(tagNEWTEXTMETRICEXA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagNEWTEXTMETRICEXA>(),
        4usize,
        concat!("Alignment of ", stringify!(tagNEWTEXTMETRICEXA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICEXA>())).ntmTm as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICEXA),
            "::",
            stringify!(ntmTm)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICEXA>())).ntmFontSig as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICEXA),
            "::",
            stringify!(ntmFontSig)
        )
    );
}
pub type NEWTEXTMETRICEXA = tagNEWTEXTMETRICEXA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagNEWTEXTMETRICEXW {
    pub ntmTm: NEWTEXTMETRICW,
    pub ntmFontSig: FONTSIGNATURE,
}
#[test]
fn bindgen_test_layout_tagNEWTEXTMETRICEXW() {
    assert_eq!(
        ::std::mem::size_of::<tagNEWTEXTMETRICEXW>(),
        100usize,
        concat!("Size of: ", stringify!(tagNEWTEXTMETRICEXW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagNEWTEXTMETRICEXW>(),
        4usize,
        concat!("Alignment of ", stringify!(tagNEWTEXTMETRICEXW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICEXW>())).ntmTm as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICEXW),
            "::",
            stringify!(ntmTm)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNEWTEXTMETRICEXW>())).ntmFontSig as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNEWTEXTMETRICEXW),
            "::",
            stringify!(ntmFontSig)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagPELARRAY() {
    assert_eq!(
        ::std::mem::size_of::<tagPELARRAY>(),
        20usize,
        concat!("Size of: ", stringify!(tagPELARRAY))
    );
    assert_eq!(
        ::std::mem::align_of::<tagPELARRAY>(),
        4usize,
        concat!("Alignment of ", stringify!(tagPELARRAY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPELARRAY>())).paXCount as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPELARRAY),
            "::",
            stringify!(paXCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPELARRAY>())).paYCount as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPELARRAY),
            "::",
            stringify!(paYCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPELARRAY>())).paXExt as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPELARRAY),
            "::",
            stringify!(paXExt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPELARRAY>())).paYExt as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPELARRAY),
            "::",
            stringify!(paYExt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPELARRAY>())).paRGBs as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPELARRAY),
            "::",
            stringify!(paRGBs)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagLOGBRUSH() {
    assert_eq!(
        ::std::mem::size_of::<tagLOGBRUSH>(),
        16usize,
        concat!("Size of: ", stringify!(tagLOGBRUSH))
    );
    assert_eq!(
        ::std::mem::align_of::<tagLOGBRUSH>(),
        8usize,
        concat!("Alignment of ", stringify!(tagLOGBRUSH))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGBRUSH>())).lbStyle as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGBRUSH),
            "::",
            stringify!(lbStyle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGBRUSH>())).lbColor as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGBRUSH),
            "::",
            stringify!(lbColor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGBRUSH>())).lbHatch as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGBRUSH),
            "::",
            stringify!(lbHatch)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagLOGBRUSH32() {
    assert_eq!(
        ::std::mem::size_of::<tagLOGBRUSH32>(),
        12usize,
        concat!("Size of: ", stringify!(tagLOGBRUSH32))
    );
    assert_eq!(
        ::std::mem::align_of::<tagLOGBRUSH32>(),
        4usize,
        concat!("Alignment of ", stringify!(tagLOGBRUSH32))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGBRUSH32>())).lbStyle as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGBRUSH32),
            "::",
            stringify!(lbStyle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGBRUSH32>())).lbColor as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGBRUSH32),
            "::",
            stringify!(lbColor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGBRUSH32>())).lbHatch as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGBRUSH32),
            "::",
            stringify!(lbHatch)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagLOGPEN() {
    assert_eq!(
        ::std::mem::size_of::<tagLOGPEN>(),
        16usize,
        concat!("Size of: ", stringify!(tagLOGPEN))
    );
    assert_eq!(
        ::std::mem::align_of::<tagLOGPEN>(),
        4usize,
        concat!("Alignment of ", stringify!(tagLOGPEN))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGPEN>())).lopnStyle as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGPEN),
            "::",
            stringify!(lopnStyle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGPEN>())).lopnWidth as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGPEN),
            "::",
            stringify!(lopnWidth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGPEN>())).lopnColor as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGPEN),
            "::",
            stringify!(lopnColor)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagEXTLOGPEN() {
    assert_eq!(
        ::std::mem::size_of::<tagEXTLOGPEN>(),
        32usize,
        concat!("Size of: ", stringify!(tagEXTLOGPEN))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEXTLOGPEN>(),
        8usize,
        concat!("Alignment of ", stringify!(tagEXTLOGPEN))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGPEN>())).elpPenStyle as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGPEN),
            "::",
            stringify!(elpPenStyle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGPEN>())).elpWidth as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGPEN),
            "::",
            stringify!(elpWidth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGPEN>())).elpBrushStyle as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGPEN),
            "::",
            stringify!(elpBrushStyle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGPEN>())).elpColor as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGPEN),
            "::",
            stringify!(elpColor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGPEN>())).elpHatch as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGPEN),
            "::",
            stringify!(elpHatch)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGPEN>())).elpNumEntries as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGPEN),
            "::",
            stringify!(elpNumEntries)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGPEN>())).elpStyleEntry as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGPEN),
            "::",
            stringify!(elpStyleEntry)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagEXTLOGPEN32() {
    assert_eq!(
        ::std::mem::size_of::<tagEXTLOGPEN32>(),
        28usize,
        concat!("Size of: ", stringify!(tagEXTLOGPEN32))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEXTLOGPEN32>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEXTLOGPEN32))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGPEN32>())).elpPenStyle as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGPEN32),
            "::",
            stringify!(elpPenStyle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGPEN32>())).elpWidth as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGPEN32),
            "::",
            stringify!(elpWidth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGPEN32>())).elpBrushStyle as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGPEN32),
            "::",
            stringify!(elpBrushStyle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGPEN32>())).elpColor as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGPEN32),
            "::",
            stringify!(elpColor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGPEN32>())).elpHatch as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGPEN32),
            "::",
            stringify!(elpHatch)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGPEN32>())).elpNumEntries as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGPEN32),
            "::",
            stringify!(elpNumEntries)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGPEN32>())).elpStyleEntry as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGPEN32),
            "::",
            stringify!(elpStyleEntry)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagPALETTEENTRY() {
    assert_eq!(
        ::std::mem::size_of::<tagPALETTEENTRY>(),
        4usize,
        concat!("Size of: ", stringify!(tagPALETTEENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<tagPALETTEENTRY>(),
        1usize,
        concat!("Alignment of ", stringify!(tagPALETTEENTRY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPALETTEENTRY>())).peRed as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPALETTEENTRY),
            "::",
            stringify!(peRed)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPALETTEENTRY>())).peGreen as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPALETTEENTRY),
            "::",
            stringify!(peGreen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPALETTEENTRY>())).peBlue as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPALETTEENTRY),
            "::",
            stringify!(peBlue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPALETTEENTRY>())).peFlags as *const _ as usize },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPALETTEENTRY),
            "::",
            stringify!(peFlags)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagLOGPALETTE() {
    assert_eq!(
        ::std::mem::size_of::<tagLOGPALETTE>(),
        8usize,
        concat!("Size of: ", stringify!(tagLOGPALETTE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagLOGPALETTE>(),
        2usize,
        concat!("Alignment of ", stringify!(tagLOGPALETTE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGPALETTE>())).palVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGPALETTE),
            "::",
            stringify!(palVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGPALETTE>())).palNumEntries as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGPALETTE),
            "::",
            stringify!(palNumEntries)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGPALETTE>())).palPalEntry as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGPALETTE),
            "::",
            stringify!(palPalEntry)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagLOGFONTA() {
    assert_eq!(
        ::std::mem::size_of::<tagLOGFONTA>(),
        60usize,
        concat!("Size of: ", stringify!(tagLOGFONTA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagLOGFONTA>(),
        4usize,
        concat!("Alignment of ", stringify!(tagLOGFONTA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGFONTA>())).lfHeight as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGFONTA),
            "::",
            stringify!(lfHeight)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGFONTA>())).lfWidth as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGFONTA),
            "::",
            stringify!(lfWidth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGFONTA>())).lfEscapement as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGFONTA),
            "::",
            stringify!(lfEscapement)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGFONTA>())).lfOrientation as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGFONTA),
            "::",
            stringify!(lfOrientation)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGFONTA>())).lfWeight as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGFONTA),
            "::",
            stringify!(lfWeight)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGFONTA>())).lfItalic as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGFONTA),
            "::",
            stringify!(lfItalic)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGFONTA>())).lfUnderline as *const _ as usize },
        21usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGFONTA),
            "::",
            stringify!(lfUnderline)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGFONTA>())).lfStrikeOut as *const _ as usize },
        22usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGFONTA),
            "::",
            stringify!(lfStrikeOut)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGFONTA>())).lfCharSet as *const _ as usize },
        23usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGFONTA),
            "::",
            stringify!(lfCharSet)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGFONTA>())).lfOutPrecision as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGFONTA),
            "::",
            stringify!(lfOutPrecision)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGFONTA>())).lfClipPrecision as *const _ as usize },
        25usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGFONTA),
            "::",
            stringify!(lfClipPrecision)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGFONTA>())).lfQuality as *const _ as usize },
        26usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGFONTA),
            "::",
            stringify!(lfQuality)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGFONTA>())).lfPitchAndFamily as *const _ as usize },
        27usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGFONTA),
            "::",
            stringify!(lfPitchAndFamily)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGFONTA>())).lfFaceName as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGFONTA),
            "::",
            stringify!(lfFaceName)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagLOGFONTW() {
    assert_eq!(
        ::std::mem::size_of::<tagLOGFONTW>(),
        92usize,
        concat!("Size of: ", stringify!(tagLOGFONTW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagLOGFONTW>(),
        4usize,
        concat!("Alignment of ", stringify!(tagLOGFONTW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGFONTW>())).lfHeight as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGFONTW),
            "::",
            stringify!(lfHeight)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGFONTW>())).lfWidth as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGFONTW),
            "::",
            stringify!(lfWidth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGFONTW>())).lfEscapement as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGFONTW),
            "::",
            stringify!(lfEscapement)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGFONTW>())).lfOrientation as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGFONTW),
            "::",
            stringify!(lfOrientation)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGFONTW>())).lfWeight as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGFONTW),
            "::",
            stringify!(lfWeight)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGFONTW>())).lfItalic as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGFONTW),
            "::",
            stringify!(lfItalic)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGFONTW>())).lfUnderline as *const _ as usize },
        21usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGFONTW),
            "::",
            stringify!(lfUnderline)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGFONTW>())).lfStrikeOut as *const _ as usize },
        22usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGFONTW),
            "::",
            stringify!(lfStrikeOut)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGFONTW>())).lfCharSet as *const _ as usize },
        23usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGFONTW),
            "::",
            stringify!(lfCharSet)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGFONTW>())).lfOutPrecision as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGFONTW),
            "::",
            stringify!(lfOutPrecision)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGFONTW>())).lfClipPrecision as *const _ as usize },
        25usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGFONTW),
            "::",
            stringify!(lfClipPrecision)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGFONTW>())).lfQuality as *const _ as usize },
        26usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGFONTW),
            "::",
            stringify!(lfQuality)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGFONTW>())).lfPitchAndFamily as *const _ as usize },
        27usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGFONTW),
            "::",
            stringify!(lfPitchAndFamily)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLOGFONTW>())).lfFaceName as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLOGFONTW),
            "::",
            stringify!(lfFaceName)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagENUMLOGFONTA() {
    assert_eq!(
        ::std::mem::size_of::<tagENUMLOGFONTA>(),
        156usize,
        concat!("Size of: ", stringify!(tagENUMLOGFONTA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagENUMLOGFONTA>(),
        4usize,
        concat!("Alignment of ", stringify!(tagENUMLOGFONTA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENUMLOGFONTA>())).elfLogFont as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENUMLOGFONTA),
            "::",
            stringify!(elfLogFont)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENUMLOGFONTA>())).elfFullName as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENUMLOGFONTA),
            "::",
            stringify!(elfFullName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENUMLOGFONTA>())).elfStyle as *const _ as usize },
        124usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENUMLOGFONTA),
            "::",
            stringify!(elfStyle)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagENUMLOGFONTW() {
    assert_eq!(
        ::std::mem::size_of::<tagENUMLOGFONTW>(),
        284usize,
        concat!("Size of: ", stringify!(tagENUMLOGFONTW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagENUMLOGFONTW>(),
        4usize,
        concat!("Alignment of ", stringify!(tagENUMLOGFONTW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENUMLOGFONTW>())).elfLogFont as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENUMLOGFONTW),
            "::",
            stringify!(elfLogFont)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENUMLOGFONTW>())).elfFullName as *const _ as usize },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENUMLOGFONTW),
            "::",
            stringify!(elfFullName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENUMLOGFONTW>())).elfStyle as *const _ as usize },
        220usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENUMLOGFONTW),
            "::",
            stringify!(elfStyle)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagENUMLOGFONTEXA() {
    assert_eq!(
        ::std::mem::size_of::<tagENUMLOGFONTEXA>(),
        188usize,
        concat!("Size of: ", stringify!(tagENUMLOGFONTEXA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagENUMLOGFONTEXA>(),
        4usize,
        concat!("Alignment of ", stringify!(tagENUMLOGFONTEXA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENUMLOGFONTEXA>())).elfLogFont as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENUMLOGFONTEXA),
            "::",
            stringify!(elfLogFont)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENUMLOGFONTEXA>())).elfFullName as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENUMLOGFONTEXA),
            "::",
            stringify!(elfFullName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENUMLOGFONTEXA>())).elfStyle as *const _ as usize },
        124usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENUMLOGFONTEXA),
            "::",
            stringify!(elfStyle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENUMLOGFONTEXA>())).elfScript as *const _ as usize },
        156usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENUMLOGFONTEXA),
            "::",
            stringify!(elfScript)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagENUMLOGFONTEXW() {
    assert_eq!(
        ::std::mem::size_of::<tagENUMLOGFONTEXW>(),
        348usize,
        concat!("Size of: ", stringify!(tagENUMLOGFONTEXW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagENUMLOGFONTEXW>(),
        4usize,
        concat!("Alignment of ", stringify!(tagENUMLOGFONTEXW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENUMLOGFONTEXW>())).elfLogFont as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENUMLOGFONTEXW),
            "::",
            stringify!(elfLogFont)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENUMLOGFONTEXW>())).elfFullName as *const _ as usize },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENUMLOGFONTEXW),
            "::",
            stringify!(elfFullName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENUMLOGFONTEXW>())).elfStyle as *const _ as usize },
        220usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENUMLOGFONTEXW),
            "::",
            stringify!(elfStyle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENUMLOGFONTEXW>())).elfScript as *const _ as usize },
        284usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENUMLOGFONTEXW),
            "::",
            stringify!(elfScript)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagPANOSE() {
    assert_eq!(
        ::std::mem::size_of::<tagPANOSE>(),
        10usize,
        concat!("Size of: ", stringify!(tagPANOSE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagPANOSE>(),
        1usize,
        concat!("Alignment of ", stringify!(tagPANOSE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPANOSE>())).bFamilyType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPANOSE),
            "::",
            stringify!(bFamilyType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPANOSE>())).bSerifStyle as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPANOSE),
            "::",
            stringify!(bSerifStyle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPANOSE>())).bWeight as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPANOSE),
            "::",
            stringify!(bWeight)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPANOSE>())).bProportion as *const _ as usize },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPANOSE),
            "::",
            stringify!(bProportion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPANOSE>())).bContrast as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPANOSE),
            "::",
            stringify!(bContrast)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPANOSE>())).bStrokeVariation as *const _ as usize },
        5usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPANOSE),
            "::",
            stringify!(bStrokeVariation)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPANOSE>())).bArmStyle as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPANOSE),
            "::",
            stringify!(bArmStyle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPANOSE>())).bLetterform as *const _ as usize },
        7usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPANOSE),
            "::",
            stringify!(bLetterform)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPANOSE>())).bMidline as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPANOSE),
            "::",
            stringify!(bMidline)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPANOSE>())).bXHeight as *const _ as usize },
        9usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPANOSE),
            "::",
            stringify!(bXHeight)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEXTLOGFONTA() {
    assert_eq!(
        ::std::mem::size_of::<tagEXTLOGFONTA>(),
        192usize,
        concat!("Size of: ", stringify!(tagEXTLOGFONTA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEXTLOGFONTA>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEXTLOGFONTA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGFONTA>())).elfLogFont as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGFONTA),
            "::",
            stringify!(elfLogFont)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGFONTA>())).elfFullName as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGFONTA),
            "::",
            stringify!(elfFullName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGFONTA>())).elfStyle as *const _ as usize },
        124usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGFONTA),
            "::",
            stringify!(elfStyle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGFONTA>())).elfVersion as *const _ as usize },
        156usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGFONTA),
            "::",
            stringify!(elfVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGFONTA>())).elfStyleSize as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGFONTA),
            "::",
            stringify!(elfStyleSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGFONTA>())).elfMatch as *const _ as usize },
        164usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGFONTA),
            "::",
            stringify!(elfMatch)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGFONTA>())).elfReserved as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGFONTA),
            "::",
            stringify!(elfReserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGFONTA>())).elfVendorId as *const _ as usize },
        172usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGFONTA),
            "::",
            stringify!(elfVendorId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGFONTA>())).elfCulture as *const _ as usize },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGFONTA),
            "::",
            stringify!(elfCulture)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGFONTA>())).elfPanose as *const _ as usize },
        180usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGFONTA),
            "::",
            stringify!(elfPanose)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEXTLOGFONTW() {
    assert_eq!(
        ::std::mem::size_of::<tagEXTLOGFONTW>(),
        320usize,
        concat!("Size of: ", stringify!(tagEXTLOGFONTW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEXTLOGFONTW>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEXTLOGFONTW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGFONTW>())).elfLogFont as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGFONTW),
            "::",
            stringify!(elfLogFont)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGFONTW>())).elfFullName as *const _ as usize },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGFONTW),
            "::",
            stringify!(elfFullName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGFONTW>())).elfStyle as *const _ as usize },
        220usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGFONTW),
            "::",
            stringify!(elfStyle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGFONTW>())).elfVersion as *const _ as usize },
        284usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGFONTW),
            "::",
            stringify!(elfVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGFONTW>())).elfStyleSize as *const _ as usize },
        288usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGFONTW),
            "::",
            stringify!(elfStyleSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGFONTW>())).elfMatch as *const _ as usize },
        292usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGFONTW),
            "::",
            stringify!(elfMatch)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGFONTW>())).elfReserved as *const _ as usize },
        296usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGFONTW),
            "::",
            stringify!(elfReserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGFONTW>())).elfVendorId as *const _ as usize },
        300usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGFONTW),
            "::",
            stringify!(elfVendorId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGFONTW>())).elfCulture as *const _ as usize },
        304usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGFONTW),
            "::",
            stringify!(elfCulture)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXTLOGFONTW>())).elfPanose as *const _ as usize },
        308usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXTLOGFONTW),
            "::",
            stringify!(elfPanose)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__devicemodeA__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_devicemodeA__bindgen_ty_1__bindgen_ty_1>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_devicemodeA__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_devicemodeA__bindgen_ty_1__bindgen_ty_1>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(_devicemodeA__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_devicemodeA__bindgen_ty_1__bindgen_ty_1>())).dmOrientation
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(dmOrientation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_devicemodeA__bindgen_ty_1__bindgen_ty_1>())).dmPaperSize
                as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(dmPaperSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_devicemodeA__bindgen_ty_1__bindgen_ty_1>())).dmPaperLength
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(dmPaperLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_devicemodeA__bindgen_ty_1__bindgen_ty_1>())).dmPaperWidth
                as *const _ as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(dmPaperWidth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_devicemodeA__bindgen_ty_1__bindgen_ty_1>())).dmScale as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(dmScale)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_devicemodeA__bindgen_ty_1__bindgen_ty_1>())).dmCopies
                as *const _ as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(dmCopies)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_devicemodeA__bindgen_ty_1__bindgen_ty_1>())).dmDefaultSource
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(dmDefaultSource)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_devicemodeA__bindgen_ty_1__bindgen_ty_1>())).dmPrintQuality
                as *const _ as usize
        },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(dmPrintQuality)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _devicemodeA__bindgen_ty_1__bindgen_ty_2 {
    pub dmPosition: POINTL,
    pub dmDisplayOrientation: DWORD,
    pub dmDisplayFixedOutput: DWORD,
}
#[test]
fn bindgen_test_layout__devicemodeA__bindgen_ty_1__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_devicemodeA__bindgen_ty_1__bindgen_ty_2>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_devicemodeA__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_devicemodeA__bindgen_ty_1__bindgen_ty_2>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_devicemodeA__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_devicemodeA__bindgen_ty_1__bindgen_ty_2>())).dmPosition
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(dmPosition)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_devicemodeA__bindgen_ty_1__bindgen_ty_2>()))
                .dmDisplayOrientation as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(dmDisplayOrientation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_devicemodeA__bindgen_ty_1__bindgen_ty_2>()))
                .dmDisplayFixedOutput as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(dmDisplayFixedOutput)
        )
    );
}
#[test]
fn bindgen_test_layout__devicemodeA__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_devicemodeA__bindgen_ty_1>(),
        16usize,
        concat!("Size of: ", stringify!(_devicemodeA__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_devicemodeA__bindgen_ty_1>(),
        4usize,
        concat!("Alignment of ", stringify!(_devicemodeA__bindgen_ty_1))
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _devicemodeA__bindgen_ty_2 {
    pub dmDisplayFlags: DWORD,
    pub dmNup: DWORD,
    _bindgen_union_align: u32,
}
#[test]
fn bindgen_test_layout__devicemodeA__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_devicemodeA__bindgen_ty_2>(),
        4usize,
        concat!("Size of: ", stringify!(_devicemodeA__bindgen_ty_2))
    );
    assert_eq!(
        ::std::mem::align_of::<_devicemodeA__bindgen_ty_2>(),
        4usize,
        concat!("Alignment of ", stringify!(_devicemodeA__bindgen_ty_2))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_devicemodeA__bindgen_ty_2>())).dmDisplayFlags as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA__bindgen_ty_2),
            "::",
            stringify!(dmDisplayFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_devicemodeA__bindgen_ty_2>())).dmNup as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA__bindgen_ty_2),
            "::",
            stringify!(dmNup)
        )
    );
}
#[test]
fn bindgen_test_layout__devicemodeA() {
    assert_eq!(
        ::std::mem::size_of::<_devicemodeA>(),
        156usize,
        concat!("Size of: ", stringify!(_devicemodeA))
    );
    assert_eq!(
        ::std::mem::align_of::<_devicemodeA>(),
        4usize,
        concat!("Alignment of ", stringify!(_devicemodeA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeA>())).dmDeviceName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA),
            "::",
            stringify!(dmDeviceName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeA>())).dmSpecVersion as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA),
            "::",
            stringify!(dmSpecVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeA>())).dmDriverVersion as *const _ as usize },
        34usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA),
            "::",
            stringify!(dmDriverVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeA>())).dmSize as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA),
            "::",
            stringify!(dmSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeA>())).dmDriverExtra as *const _ as usize },
        38usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA),
            "::",
            stringify!(dmDriverExtra)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeA>())).dmFields as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA),
            "::",
            stringify!(dmFields)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeA>())).dmColor as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA),
            "::",
            stringify!(dmColor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeA>())).dmDuplex as *const _ as usize },
        62usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA),
            "::",
            stringify!(dmDuplex)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeA>())).dmYResolution as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA),
            "::",
            stringify!(dmYResolution)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeA>())).dmTTOption as *const _ as usize },
        66usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA),
            "::",
            stringify!(dmTTOption)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeA>())).dmCollate as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA),
            "::",
            stringify!(dmCollate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeA>())).dmFormName as *const _ as usize },
        70usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA),
            "::",
            stringify!(dmFormName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeA>())).dmLogPixels as *const _ as usize },
        102usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA),
            "::",
            stringify!(dmLogPixels)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeA>())).dmBitsPerPel as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA),
            "::",
            stringify!(dmBitsPerPel)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeA>())).dmPelsWidth as *const _ as usize },
        108usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA),
            "::",
            stringify!(dmPelsWidth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeA>())).dmPelsHeight as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA),
            "::",
            stringify!(dmPelsHeight)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeA>())).dmDisplayFrequency as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA),
            "::",
            stringify!(dmDisplayFrequency)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeA>())).dmICMMethod as *const _ as usize },
        124usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA),
            "::",
            stringify!(dmICMMethod)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeA>())).dmICMIntent as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA),
            "::",
            stringify!(dmICMIntent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeA>())).dmMediaType as *const _ as usize },
        132usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA),
            "::",
            stringify!(dmMediaType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeA>())).dmDitherType as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA),
            "::",
            stringify!(dmDitherType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeA>())).dmReserved1 as *const _ as usize },
        140usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA),
            "::",
            stringify!(dmReserved1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeA>())).dmReserved2 as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA),
            "::",
            stringify!(dmReserved2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeA>())).dmPanningWidth as *const _ as usize },
        148usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA),
            "::",
            stringify!(dmPanningWidth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeA>())).dmPanningHeight as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeA),
            "::",
            stringify!(dmPanningHeight)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__devicemodeW__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_devicemodeW__bindgen_ty_1__bindgen_ty_1>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_devicemodeW__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_devicemodeW__bindgen_ty_1__bindgen_ty_1>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(_devicemodeW__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_devicemodeW__bindgen_ty_1__bindgen_ty_1>())).dmOrientation
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(dmOrientation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_devicemodeW__bindgen_ty_1__bindgen_ty_1>())).dmPaperSize
                as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(dmPaperSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_devicemodeW__bindgen_ty_1__bindgen_ty_1>())).dmPaperLength
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(dmPaperLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_devicemodeW__bindgen_ty_1__bindgen_ty_1>())).dmPaperWidth
                as *const _ as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(dmPaperWidth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_devicemodeW__bindgen_ty_1__bindgen_ty_1>())).dmScale as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(dmScale)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_devicemodeW__bindgen_ty_1__bindgen_ty_1>())).dmCopies
                as *const _ as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(dmCopies)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_devicemodeW__bindgen_ty_1__bindgen_ty_1>())).dmDefaultSource
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(dmDefaultSource)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_devicemodeW__bindgen_ty_1__bindgen_ty_1>())).dmPrintQuality
                as *const _ as usize
        },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(dmPrintQuality)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _devicemodeW__bindgen_ty_1__bindgen_ty_2 {
    pub dmPosition: POINTL,
    pub dmDisplayOrientation: DWORD,
    pub dmDisplayFixedOutput: DWORD,
}
#[test]
fn bindgen_test_layout__devicemodeW__bindgen_ty_1__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_devicemodeW__bindgen_ty_1__bindgen_ty_2>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_devicemodeW__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_devicemodeW__bindgen_ty_1__bindgen_ty_2>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_devicemodeW__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_devicemodeW__bindgen_ty_1__bindgen_ty_2>())).dmPosition
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(dmPosition)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_devicemodeW__bindgen_ty_1__bindgen_ty_2>()))
                .dmDisplayOrientation as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(dmDisplayOrientation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_devicemodeW__bindgen_ty_1__bindgen_ty_2>()))
                .dmDisplayFixedOutput as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(dmDisplayFixedOutput)
        )
    );
}
#[test]
fn bindgen_test_layout__devicemodeW__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_devicemodeW__bindgen_ty_1>(),
        16usize,
        concat!("Size of: ", stringify!(_devicemodeW__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_devicemodeW__bindgen_ty_1>(),
        4usize,
        concat!("Alignment of ", stringify!(_devicemodeW__bindgen_ty_1))
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _devicemodeW__bindgen_ty_2 {
    pub dmDisplayFlags: DWORD,
    pub dmNup: DWORD,
    _bindgen_union_align: u32,
}
#[test]
fn bindgen_test_layout__devicemodeW__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_devicemodeW__bindgen_ty_2>(),
        4usize,
        concat!("Size of: ", stringify!(_devicemodeW__bindgen_ty_2))
    );
    assert_eq!(
        ::std::mem::align_of::<_devicemodeW__bindgen_ty_2>(),
        4usize,
        concat!("Alignment of ", stringify!(_devicemodeW__bindgen_ty_2))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_devicemodeW__bindgen_ty_2>())).dmDisplayFlags as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW__bindgen_ty_2),
            "::",
            stringify!(dmDisplayFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_devicemodeW__bindgen_ty_2>())).dmNup as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW__bindgen_ty_2),
            "::",
            stringify!(dmNup)
        )
    );
}
#[test]
fn bindgen_test_layout__devicemodeW() {
    assert_eq!(
        ::std::mem::size_of::<_devicemodeW>(),
        220usize,
        concat!("Size of: ", stringify!(_devicemodeW))
    );
    assert_eq!(
        ::std::mem::align_of::<_devicemodeW>(),
        4usize,
        concat!("Alignment of ", stringify!(_devicemodeW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeW>())).dmDeviceName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW),
            "::",
            stringify!(dmDeviceName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeW>())).dmSpecVersion as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW),
            "::",
            stringify!(dmSpecVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeW>())).dmDriverVersion as *const _ as usize },
        66usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW),
            "::",
            stringify!(dmDriverVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeW>())).dmSize as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW),
            "::",
            stringify!(dmSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeW>())).dmDriverExtra as *const _ as usize },
        70usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW),
            "::",
            stringify!(dmDriverExtra)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeW>())).dmFields as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW),
            "::",
            stringify!(dmFields)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeW>())).dmColor as *const _ as usize },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW),
            "::",
            stringify!(dmColor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeW>())).dmDuplex as *const _ as usize },
        94usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW),
            "::",
            stringify!(dmDuplex)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeW>())).dmYResolution as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW),
            "::",
            stringify!(dmYResolution)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeW>())).dmTTOption as *const _ as usize },
        98usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW),
            "::",
            stringify!(dmTTOption)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeW>())).dmCollate as *const _ as usize },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW),
            "::",
            stringify!(dmCollate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeW>())).dmFormName as *const _ as usize },
        102usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW),
            "::",
            stringify!(dmFormName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeW>())).dmLogPixels as *const _ as usize },
        166usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW),
            "::",
            stringify!(dmLogPixels)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeW>())).dmBitsPerPel as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW),
            "::",
            stringify!(dmBitsPerPel)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeW>())).dmPelsWidth as *const _ as usize },
        172usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW),
            "::",
            stringify!(dmPelsWidth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeW>())).dmPelsHeight as *const _ as usize },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW),
            "::",
            stringify!(dmPelsHeight)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeW>())).dmDisplayFrequency as *const _ as usize },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW),
            "::",
            stringify!(dmDisplayFrequency)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeW>())).dmICMMethod as *const _ as usize },
        188usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW),
            "::",
            stringify!(dmICMMethod)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeW>())).dmICMIntent as *const _ as usize },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW),
            "::",
            stringify!(dmICMIntent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeW>())).dmMediaType as *const _ as usize },
        196usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW),
            "::",
            stringify!(dmMediaType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeW>())).dmDitherType as *const _ as usize },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW),
            "::",
            stringify!(dmDitherType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeW>())).dmReserved1 as *const _ as usize },
        204usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW),
            "::",
            stringify!(dmReserved1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeW>())).dmReserved2 as *const _ as usize },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW),
            "::",
            stringify!(dmReserved2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeW>())).dmPanningWidth as *const _ as usize },
        212usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW),
            "::",
            stringify!(dmPanningWidth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_devicemodeW>())).dmPanningHeight as *const _ as usize },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(_devicemodeW),
            "::",
            stringify!(dmPanningHeight)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__DISPLAY_DEVICEA() {
    assert_eq!(
        ::std::mem::size_of::<_DISPLAY_DEVICEA>(),
        424usize,
        concat!("Size of: ", stringify!(_DISPLAY_DEVICEA))
    );
    assert_eq!(
        ::std::mem::align_of::<_DISPLAY_DEVICEA>(),
        4usize,
        concat!("Alignment of ", stringify!(_DISPLAY_DEVICEA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISPLAY_DEVICEA>())).cb as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISPLAY_DEVICEA),
            "::",
            stringify!(cb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISPLAY_DEVICEA>())).DeviceName as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISPLAY_DEVICEA),
            "::",
            stringify!(DeviceName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISPLAY_DEVICEA>())).DeviceString as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISPLAY_DEVICEA),
            "::",
            stringify!(DeviceString)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISPLAY_DEVICEA>())).StateFlags as *const _ as usize },
        164usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISPLAY_DEVICEA),
            "::",
            stringify!(StateFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISPLAY_DEVICEA>())).DeviceID as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISPLAY_DEVICEA),
            "::",
            stringify!(DeviceID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISPLAY_DEVICEA>())).DeviceKey as *const _ as usize },
        296usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISPLAY_DEVICEA),
            "::",
            stringify!(DeviceKey)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__DISPLAY_DEVICEW() {
    assert_eq!(
        ::std::mem::size_of::<_DISPLAY_DEVICEW>(),
        840usize,
        concat!("Size of: ", stringify!(_DISPLAY_DEVICEW))
    );
    assert_eq!(
        ::std::mem::align_of::<_DISPLAY_DEVICEW>(),
        4usize,
        concat!("Alignment of ", stringify!(_DISPLAY_DEVICEW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISPLAY_DEVICEW>())).cb as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISPLAY_DEVICEW),
            "::",
            stringify!(cb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISPLAY_DEVICEW>())).DeviceName as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISPLAY_DEVICEW),
            "::",
            stringify!(DeviceName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISPLAY_DEVICEW>())).DeviceString as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISPLAY_DEVICEW),
            "::",
            stringify!(DeviceString)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISPLAY_DEVICEW>())).StateFlags as *const _ as usize },
        324usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISPLAY_DEVICEW),
            "::",
            stringify!(StateFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISPLAY_DEVICEW>())).DeviceID as *const _ as usize },
        328usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISPLAY_DEVICEW),
            "::",
            stringify!(DeviceID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISPLAY_DEVICEW>())).DeviceKey as *const _ as usize },
        584usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISPLAY_DEVICEW),
            "::",
            stringify!(DeviceKey)
        )
    );
}
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 DISPLAYCONFIG_RATIONAL {
    pub Numerator: UINT32,
    pub Denominator: UINT32,
}
#[test]
fn bindgen_test_layout_DISPLAYCONFIG_RATIONAL() {
    assert_eq!(
        ::std::mem::size_of::<DISPLAYCONFIG_RATIONAL>(),
        8usize,
        concat!("Size of: ", stringify!(DISPLAYCONFIG_RATIONAL))
    );
    assert_eq!(
        ::std::mem::align_of::<DISPLAYCONFIG_RATIONAL>(),
        4usize,
        concat!("Alignment of ", stringify!(DISPLAYCONFIG_RATIONAL))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_RATIONAL>())).Numerator as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_RATIONAL),
            "::",
            stringify!(Numerator)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_RATIONAL>())).Denominator as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_RATIONAL),
            "::",
            stringify!(Denominator)
        )
    );
}
pub const DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY_DISPLAYCONFIG_OUTPUT_TECHNOLOGY_OTHER:
    DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = -1;
pub const DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY_DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HD15:
    DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 0;
pub const DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY_DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SVIDEO:
    DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 1;
pub const DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY_DISPLAYCONFIG_OUTPUT_TECHNOLOGY_COMPOSITE_VIDEO:
    DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 2;
pub const DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY_DISPLAYCONFIG_OUTPUT_TECHNOLOGY_COMPONENT_VIDEO:
    DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 3;
pub const DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY_DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DVI:
    DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 4;
pub const DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY_DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HDMI:
    DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 5;
pub const DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY_DISPLAYCONFIG_OUTPUT_TECHNOLOGY_LVDS:
    DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 6;
pub const DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY_DISPLAYCONFIG_OUTPUT_TECHNOLOGY_D_JPN:
    DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 8;
pub const DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY_DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDI:
    DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 9;
pub const DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY_DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EXTERNAL : DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 10 ;
pub const DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY_DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EMBEDDED : DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 11 ;
pub const DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY_DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EXTERNAL:
    DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 12;
pub const DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY_DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EMBEDDED:
    DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 13;
pub const DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY_DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDTVDONGLE:
    DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 14;
pub const DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY_DISPLAYCONFIG_OUTPUT_TECHNOLOGY_MIRACAST:
    DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 15;
pub const DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY_DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INDIRECT_WIRED:
    DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 16;
pub const DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY_DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INDIRECT_VIRTUAL:
    DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 17;
pub const DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY_DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INTERNAL:
    DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = -2147483648;
pub const DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY_DISPLAYCONFIG_OUTPUT_TECHNOLOGY_FORCE_UINT32:
    DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = -1;
pub type DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = ::std::os::raw::c_int;
pub const DISPLAYCONFIG_SCANLINE_ORDERING_DISPLAYCONFIG_SCANLINE_ORDERING_UNSPECIFIED:
    DISPLAYCONFIG_SCANLINE_ORDERING = 0;
pub const DISPLAYCONFIG_SCANLINE_ORDERING_DISPLAYCONFIG_SCANLINE_ORDERING_PROGRESSIVE:
    DISPLAYCONFIG_SCANLINE_ORDERING = 1;
pub const DISPLAYCONFIG_SCANLINE_ORDERING_DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED:
    DISPLAYCONFIG_SCANLINE_ORDERING = 2;
pub const DISPLAYCONFIG_SCANLINE_ORDERING_DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED_UPPERFIELDFIRST : DISPLAYCONFIG_SCANLINE_ORDERING = 2 ;
pub const DISPLAYCONFIG_SCANLINE_ORDERING_DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED_LOWERFIELDFIRST : DISPLAYCONFIG_SCANLINE_ORDERING = 3 ;
pub const DISPLAYCONFIG_SCANLINE_ORDERING_DISPLAYCONFIG_SCANLINE_ORDERING_FORCE_UINT32:
    DISPLAYCONFIG_SCANLINE_ORDERING = -1;
pub type DISPLAYCONFIG_SCANLINE_ORDERING = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct DISPLAYCONFIG_2DREGION {
    pub cx: UINT32,
    pub cy: UINT32,
}
#[test]
fn bindgen_test_layout_DISPLAYCONFIG_2DREGION() {
    assert_eq!(
        ::std::mem::size_of::<DISPLAYCONFIG_2DREGION>(),
        8usize,
        concat!("Size of: ", stringify!(DISPLAYCONFIG_2DREGION))
    );
    assert_eq!(
        ::std::mem::align_of::<DISPLAYCONFIG_2DREGION>(),
        4usize,
        concat!("Alignment of ", stringify!(DISPLAYCONFIG_2DREGION))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DISPLAYCONFIG_2DREGION>())).cx as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_2DREGION),
            "::",
            stringify!(cx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DISPLAYCONFIG_2DREGION>())).cy as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_2DREGION),
            "::",
            stringify!(cy)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct DISPLAYCONFIG_VIDEO_SIGNAL_INFO {
    pub pixelRate: UINT64,
    pub hSyncFreq: DISPLAYCONFIG_RATIONAL,
    pub vSyncFreq: DISPLAYCONFIG_RATIONAL,
    pub activeSize: DISPLAYCONFIG_2DREGION,
    pub totalSize: DISPLAYCONFIG_2DREGION,
    pub __bindgen_anon_1: DISPLAYCONFIG_VIDEO_SIGNAL_INFO__bindgen_ty_1,
    pub scanLineOrdering: DISPLAYCONFIG_SCANLINE_ORDERING,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union DISPLAYCONFIG_VIDEO_SIGNAL_INFO__bindgen_ty_1 {
    pub AdditionalSignalInfo: DISPLAYCONFIG_VIDEO_SIGNAL_INFO__bindgen_ty_1__bindgen_ty_1,
    pub videoStandard: UINT32,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct DISPLAYCONFIG_VIDEO_SIGNAL_INFO__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u16>,
}
#[test]
fn bindgen_test_layout_DISPLAYCONFIG_VIDEO_SIGNAL_INFO__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<DISPLAYCONFIG_VIDEO_SIGNAL_INFO__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(DISPLAYCONFIG_VIDEO_SIGNAL_INFO__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<DISPLAYCONFIG_VIDEO_SIGNAL_INFO__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(DISPLAYCONFIG_VIDEO_SIGNAL_INFO__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
impl DISPLAYCONFIG_VIDEO_SIGNAL_INFO__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn videoStandard(&self) -> UINT32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 16u8) as u32) }
    }
    #[inline]
    pub fn set_videoStandard(&mut self, val: UINT32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 16u8, val as u64)
        }
    }
    #[inline]
    pub fn vSyncFreqDivider(&self) -> UINT32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 6u8) as u32) }
    }
    #[inline]
    pub fn set_vSyncFreqDivider(&mut self, val: UINT32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(16usize, 6u8, val as u64)
        }
    }
    #[inline]
    pub fn reserved(&self) -> UINT32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(22usize, 10u8) as u32) }
    }
    #[inline]
    pub fn set_reserved(&mut self, val: UINT32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(22usize, 10u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        videoStandard: UINT32,
        vSyncFreqDivider: UINT32,
        reserved: UINT32,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u16> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u16> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 16u8, {
            let videoStandard: u32 = unsafe { ::std::mem::transmute(videoStandard) };
            videoStandard as u64
        });
        __bindgen_bitfield_unit.set(16usize, 6u8, {
            let vSyncFreqDivider: u32 = unsafe { ::std::mem::transmute(vSyncFreqDivider) };
            vSyncFreqDivider as u64
        });
        __bindgen_bitfield_unit.set(22usize, 10u8, {
            let reserved: u32 = unsafe { ::std::mem::transmute(reserved) };
            reserved as u64
        });
        __bindgen_bitfield_unit
    }
}
#[test]
fn bindgen_test_layout_DISPLAYCONFIG_VIDEO_SIGNAL_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<DISPLAYCONFIG_VIDEO_SIGNAL_INFO__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(DISPLAYCONFIG_VIDEO_SIGNAL_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<DISPLAYCONFIG_VIDEO_SIGNAL_INFO__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(DISPLAYCONFIG_VIDEO_SIGNAL_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_VIDEO_SIGNAL_INFO__bindgen_ty_1>()))
                .AdditionalSignalInfo as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_VIDEO_SIGNAL_INFO__bindgen_ty_1),
            "::",
            stringify!(AdditionalSignalInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_VIDEO_SIGNAL_INFO__bindgen_ty_1>())).videoStandard
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_VIDEO_SIGNAL_INFO__bindgen_ty_1),
            "::",
            stringify!(videoStandard)
        )
    );
}
#[test]
fn bindgen_test_layout_DISPLAYCONFIG_VIDEO_SIGNAL_INFO() {
    assert_eq!(
        ::std::mem::size_of::<DISPLAYCONFIG_VIDEO_SIGNAL_INFO>(),
        48usize,
        concat!("Size of: ", stringify!(DISPLAYCONFIG_VIDEO_SIGNAL_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<DISPLAYCONFIG_VIDEO_SIGNAL_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(DISPLAYCONFIG_VIDEO_SIGNAL_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_VIDEO_SIGNAL_INFO>())).pixelRate as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_VIDEO_SIGNAL_INFO),
            "::",
            stringify!(pixelRate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_VIDEO_SIGNAL_INFO>())).hSyncFreq as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_VIDEO_SIGNAL_INFO),
            "::",
            stringify!(hSyncFreq)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_VIDEO_SIGNAL_INFO>())).vSyncFreq as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_VIDEO_SIGNAL_INFO),
            "::",
            stringify!(vSyncFreq)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_VIDEO_SIGNAL_INFO>())).activeSize as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_VIDEO_SIGNAL_INFO),
            "::",
            stringify!(activeSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_VIDEO_SIGNAL_INFO>())).totalSize as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_VIDEO_SIGNAL_INFO),
            "::",
            stringify!(totalSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_VIDEO_SIGNAL_INFO>())).scanLineOrdering as *const _
                as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_VIDEO_SIGNAL_INFO),
            "::",
            stringify!(scanLineOrdering)
        )
    );
}
pub const DISPLAYCONFIG_SCALING_DISPLAYCONFIG_SCALING_IDENTITY: DISPLAYCONFIG_SCALING = 1;
pub const DISPLAYCONFIG_SCALING_DISPLAYCONFIG_SCALING_CENTERED: DISPLAYCONFIG_SCALING = 2;
pub const DISPLAYCONFIG_SCALING_DISPLAYCONFIG_SCALING_STRETCHED: DISPLAYCONFIG_SCALING = 3;
pub const DISPLAYCONFIG_SCALING_DISPLAYCONFIG_SCALING_ASPECTRATIOCENTEREDMAX:
    DISPLAYCONFIG_SCALING = 4;
pub const DISPLAYCONFIG_SCALING_DISPLAYCONFIG_SCALING_CUSTOM: DISPLAYCONFIG_SCALING = 5;
pub const DISPLAYCONFIG_SCALING_DISPLAYCONFIG_SCALING_PREFERRED: DISPLAYCONFIG_SCALING = 128;
pub const DISPLAYCONFIG_SCALING_DISPLAYCONFIG_SCALING_FORCE_UINT32: DISPLAYCONFIG_SCALING = -1;
pub type DISPLAYCONFIG_SCALING = ::std::os::raw::c_int;
pub const DISPLAYCONFIG_ROTATION_DISPLAYCONFIG_ROTATION_IDENTITY: DISPLAYCONFIG_ROTATION = 1;
pub const DISPLAYCONFIG_ROTATION_DISPLAYCONFIG_ROTATION_ROTATE90: DISPLAYCONFIG_ROTATION = 2;
pub const DISPLAYCONFIG_ROTATION_DISPLAYCONFIG_ROTATION_ROTATE180: DISPLAYCONFIG_ROTATION = 3;
pub const DISPLAYCONFIG_ROTATION_DISPLAYCONFIG_ROTATION_ROTATE270: DISPLAYCONFIG_ROTATION = 4;
pub const DISPLAYCONFIG_ROTATION_DISPLAYCONFIG_ROTATION_FORCE_UINT32: DISPLAYCONFIG_ROTATION = -1;
pub type DISPLAYCONFIG_ROTATION = ::std::os::raw::c_int;
pub const DISPLAYCONFIG_MODE_INFO_TYPE_DISPLAYCONFIG_MODE_INFO_TYPE_SOURCE:
    DISPLAYCONFIG_MODE_INFO_TYPE = 1;
pub const DISPLAYCONFIG_MODE_INFO_TYPE_DISPLAYCONFIG_MODE_INFO_TYPE_TARGET:
    DISPLAYCONFIG_MODE_INFO_TYPE = 2;
pub const DISPLAYCONFIG_MODE_INFO_TYPE_DISPLAYCONFIG_MODE_INFO_TYPE_DESKTOP_IMAGE:
    DISPLAYCONFIG_MODE_INFO_TYPE = 3;
pub const DISPLAYCONFIG_MODE_INFO_TYPE_DISPLAYCONFIG_MODE_INFO_TYPE_FORCE_UINT32:
    DISPLAYCONFIG_MODE_INFO_TYPE = -1;
pub type DISPLAYCONFIG_MODE_INFO_TYPE = ::std::os::raw::c_int;
pub const DISPLAYCONFIG_PIXELFORMAT_DISPLAYCONFIG_PIXELFORMAT_8BPP: DISPLAYCONFIG_PIXELFORMAT = 1;
pub const DISPLAYCONFIG_PIXELFORMAT_DISPLAYCONFIG_PIXELFORMAT_16BPP: DISPLAYCONFIG_PIXELFORMAT = 2;
pub const DISPLAYCONFIG_PIXELFORMAT_DISPLAYCONFIG_PIXELFORMAT_24BPP: DISPLAYCONFIG_PIXELFORMAT = 3;
pub const DISPLAYCONFIG_PIXELFORMAT_DISPLAYCONFIG_PIXELFORMAT_32BPP: DISPLAYCONFIG_PIXELFORMAT = 4;
pub const DISPLAYCONFIG_PIXELFORMAT_DISPLAYCONFIG_PIXELFORMAT_NONGDI: DISPLAYCONFIG_PIXELFORMAT = 5;
pub const DISPLAYCONFIG_PIXELFORMAT_DISPLAYCONFIG_PIXELFORMAT_FORCE_UINT32:
    DISPLAYCONFIG_PIXELFORMAT = -1;
pub type DISPLAYCONFIG_PIXELFORMAT = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct DISPLAYCONFIG_SOURCE_MODE {
    pub width: UINT32,
    pub height: UINT32,
    pub pixelFormat: DISPLAYCONFIG_PIXELFORMAT,
    pub position: POINTL,
}
#[test]
fn bindgen_test_layout_DISPLAYCONFIG_SOURCE_MODE() {
    assert_eq!(
        ::std::mem::size_of::<DISPLAYCONFIG_SOURCE_MODE>(),
        20usize,
        concat!("Size of: ", stringify!(DISPLAYCONFIG_SOURCE_MODE))
    );
    assert_eq!(
        ::std::mem::align_of::<DISPLAYCONFIG_SOURCE_MODE>(),
        4usize,
        concat!("Alignment of ", stringify!(DISPLAYCONFIG_SOURCE_MODE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DISPLAYCONFIG_SOURCE_MODE>())).width as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_SOURCE_MODE),
            "::",
            stringify!(width)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_SOURCE_MODE>())).height as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_SOURCE_MODE),
            "::",
            stringify!(height)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_SOURCE_MODE>())).pixelFormat as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_SOURCE_MODE),
            "::",
            stringify!(pixelFormat)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_SOURCE_MODE>())).position as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_SOURCE_MODE),
            "::",
            stringify!(position)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct DISPLAYCONFIG_TARGET_MODE {
    pub targetVideoSignalInfo: DISPLAYCONFIG_VIDEO_SIGNAL_INFO,
}
#[test]
fn bindgen_test_layout_DISPLAYCONFIG_TARGET_MODE() {
    assert_eq!(
        ::std::mem::size_of::<DISPLAYCONFIG_TARGET_MODE>(),
        48usize,
        concat!("Size of: ", stringify!(DISPLAYCONFIG_TARGET_MODE))
    );
    assert_eq!(
        ::std::mem::align_of::<DISPLAYCONFIG_TARGET_MODE>(),
        8usize,
        concat!("Alignment of ", stringify!(DISPLAYCONFIG_TARGET_MODE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_TARGET_MODE>())).targetVideoSignalInfo as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_TARGET_MODE),
            "::",
            stringify!(targetVideoSignalInfo)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct DISPLAYCONFIG_DESKTOP_IMAGE_INFO {
    pub PathSourceSize: POINTL,
    pub DesktopImageRegion: RECTL,
    pub DesktopImageClip: RECTL,
}
#[test]
fn bindgen_test_layout_DISPLAYCONFIG_DESKTOP_IMAGE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<DISPLAYCONFIG_DESKTOP_IMAGE_INFO>(),
        40usize,
        concat!("Size of: ", stringify!(DISPLAYCONFIG_DESKTOP_IMAGE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<DISPLAYCONFIG_DESKTOP_IMAGE_INFO>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(DISPLAYCONFIG_DESKTOP_IMAGE_INFO)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_DESKTOP_IMAGE_INFO>())).PathSourceSize as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_DESKTOP_IMAGE_INFO),
            "::",
            stringify!(PathSourceSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_DESKTOP_IMAGE_INFO>())).DesktopImageRegion
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_DESKTOP_IMAGE_INFO),
            "::",
            stringify!(DesktopImageRegion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_DESKTOP_IMAGE_INFO>())).DesktopImageClip
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_DESKTOP_IMAGE_INFO),
            "::",
            stringify!(DesktopImageClip)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct DISPLAYCONFIG_MODE_INFO {
    pub infoType: DISPLAYCONFIG_MODE_INFO_TYPE,
    pub id: UINT32,
    pub adapterId: LUID,
    pub __bindgen_anon_1: DISPLAYCONFIG_MODE_INFO__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union DISPLAYCONFIG_MODE_INFO__bindgen_ty_1 {
    pub targetMode: DISPLAYCONFIG_TARGET_MODE,
    pub sourceMode: DISPLAYCONFIG_SOURCE_MODE,
    pub desktopImageInfo: DISPLAYCONFIG_DESKTOP_IMAGE_INFO,
    _bindgen_union_align: [u64; 6usize],
}
#[test]
fn bindgen_test_layout_DISPLAYCONFIG_MODE_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<DISPLAYCONFIG_MODE_INFO__bindgen_ty_1>(),
        48usize,
        concat!(
            "Size of: ",
            stringify!(DISPLAYCONFIG_MODE_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<DISPLAYCONFIG_MODE_INFO__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(DISPLAYCONFIG_MODE_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_MODE_INFO__bindgen_ty_1>())).targetMode as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_MODE_INFO__bindgen_ty_1),
            "::",
            stringify!(targetMode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_MODE_INFO__bindgen_ty_1>())).sourceMode as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_MODE_INFO__bindgen_ty_1),
            "::",
            stringify!(sourceMode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_MODE_INFO__bindgen_ty_1>())).desktopImageInfo
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_MODE_INFO__bindgen_ty_1),
            "::",
            stringify!(desktopImageInfo)
        )
    );
}
#[test]
fn bindgen_test_layout_DISPLAYCONFIG_MODE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<DISPLAYCONFIG_MODE_INFO>(),
        64usize,
        concat!("Size of: ", stringify!(DISPLAYCONFIG_MODE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<DISPLAYCONFIG_MODE_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(DISPLAYCONFIG_MODE_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_MODE_INFO>())).infoType as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_MODE_INFO),
            "::",
            stringify!(infoType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DISPLAYCONFIG_MODE_INFO>())).id as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_MODE_INFO),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_MODE_INFO>())).adapterId as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_MODE_INFO),
            "::",
            stringify!(adapterId)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct DISPLAYCONFIG_PATH_SOURCE_INFO {
    pub adapterId: LUID,
    pub id: UINT32,
    pub __bindgen_anon_1: DISPLAYCONFIG_PATH_SOURCE_INFO__bindgen_ty_1,
    pub statusFlags: UINT32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union DISPLAYCONFIG_PATH_SOURCE_INFO__bindgen_ty_1 {
    pub modeInfoIdx: UINT32,
    pub __bindgen_anon_1: DISPLAYCONFIG_PATH_SOURCE_INFO__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct DISPLAYCONFIG_PATH_SOURCE_INFO__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u16>,
}
#[test]
fn bindgen_test_layout_DISPLAYCONFIG_PATH_SOURCE_INFO__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<DISPLAYCONFIG_PATH_SOURCE_INFO__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(DISPLAYCONFIG_PATH_SOURCE_INFO__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<DISPLAYCONFIG_PATH_SOURCE_INFO__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(DISPLAYCONFIG_PATH_SOURCE_INFO__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
impl DISPLAYCONFIG_PATH_SOURCE_INFO__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn cloneGroupId(&self) -> UINT32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 16u8) as u32) }
    }
    #[inline]
    pub fn set_cloneGroupId(&mut self, val: UINT32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 16u8, val as u64)
        }
    }
    #[inline]
    pub fn sourceModeInfoIdx(&self) -> UINT32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 16u8) as u32) }
    }
    #[inline]
    pub fn set_sourceModeInfoIdx(&mut self, val: UINT32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(16usize, 16u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        cloneGroupId: UINT32,
        sourceModeInfoIdx: UINT32,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u16> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u16> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 16u8, {
            let cloneGroupId: u32 = unsafe { ::std::mem::transmute(cloneGroupId) };
            cloneGroupId as u64
        });
        __bindgen_bitfield_unit.set(16usize, 16u8, {
            let sourceModeInfoIdx: u32 = unsafe { ::std::mem::transmute(sourceModeInfoIdx) };
            sourceModeInfoIdx as u64
        });
        __bindgen_bitfield_unit
    }
}
#[test]
fn bindgen_test_layout_DISPLAYCONFIG_PATH_SOURCE_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<DISPLAYCONFIG_PATH_SOURCE_INFO__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(DISPLAYCONFIG_PATH_SOURCE_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<DISPLAYCONFIG_PATH_SOURCE_INFO__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(DISPLAYCONFIG_PATH_SOURCE_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_PATH_SOURCE_INFO__bindgen_ty_1>())).modeInfoIdx
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_PATH_SOURCE_INFO__bindgen_ty_1),
            "::",
            stringify!(modeInfoIdx)
        )
    );
}
#[test]
fn bindgen_test_layout_DISPLAYCONFIG_PATH_SOURCE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<DISPLAYCONFIG_PATH_SOURCE_INFO>(),
        20usize,
        concat!("Size of: ", stringify!(DISPLAYCONFIG_PATH_SOURCE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<DISPLAYCONFIG_PATH_SOURCE_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(DISPLAYCONFIG_PATH_SOURCE_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_PATH_SOURCE_INFO>())).adapterId as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_PATH_SOURCE_INFO),
            "::",
            stringify!(adapterId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_PATH_SOURCE_INFO>())).id as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_PATH_SOURCE_INFO),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_PATH_SOURCE_INFO>())).statusFlags as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_PATH_SOURCE_INFO),
            "::",
            stringify!(statusFlags)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct DISPLAYCONFIG_PATH_TARGET_INFO {
    pub adapterId: LUID,
    pub id: UINT32,
    pub __bindgen_anon_1: DISPLAYCONFIG_PATH_TARGET_INFO__bindgen_ty_1,
    pub outputTechnology: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY,
    pub rotation: DISPLAYCONFIG_ROTATION,
    pub scaling: DISPLAYCONFIG_SCALING,
    pub refreshRate: DISPLAYCONFIG_RATIONAL,
    pub scanLineOrdering: DISPLAYCONFIG_SCANLINE_ORDERING,
    pub targetAvailable: BOOL,
    pub statusFlags: UINT32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union DISPLAYCONFIG_PATH_TARGET_INFO__bindgen_ty_1 {
    pub modeInfoIdx: UINT32,
    pub __bindgen_anon_1: DISPLAYCONFIG_PATH_TARGET_INFO__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct DISPLAYCONFIG_PATH_TARGET_INFO__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u16>,
}
#[test]
fn bindgen_test_layout_DISPLAYCONFIG_PATH_TARGET_INFO__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<DISPLAYCONFIG_PATH_TARGET_INFO__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(DISPLAYCONFIG_PATH_TARGET_INFO__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<DISPLAYCONFIG_PATH_TARGET_INFO__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(DISPLAYCONFIG_PATH_TARGET_INFO__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
impl DISPLAYCONFIG_PATH_TARGET_INFO__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn desktopModeInfoIdx(&self) -> UINT32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 16u8) as u32) }
    }
    #[inline]
    pub fn set_desktopModeInfoIdx(&mut self, val: UINT32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 16u8, val as u64)
        }
    }
    #[inline]
    pub fn targetModeInfoIdx(&self) -> UINT32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 16u8) as u32) }
    }
    #[inline]
    pub fn set_targetModeInfoIdx(&mut self, val: UINT32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(16usize, 16u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        desktopModeInfoIdx: UINT32,
        targetModeInfoIdx: UINT32,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u16> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u16> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 16u8, {
            let desktopModeInfoIdx: u32 = unsafe { ::std::mem::transmute(desktopModeInfoIdx) };
            desktopModeInfoIdx as u64
        });
        __bindgen_bitfield_unit.set(16usize, 16u8, {
            let targetModeInfoIdx: u32 = unsafe { ::std::mem::transmute(targetModeInfoIdx) };
            targetModeInfoIdx as u64
        });
        __bindgen_bitfield_unit
    }
}
#[test]
fn bindgen_test_layout_DISPLAYCONFIG_PATH_TARGET_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<DISPLAYCONFIG_PATH_TARGET_INFO__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(DISPLAYCONFIG_PATH_TARGET_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<DISPLAYCONFIG_PATH_TARGET_INFO__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(DISPLAYCONFIG_PATH_TARGET_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_PATH_TARGET_INFO__bindgen_ty_1>())).modeInfoIdx
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_PATH_TARGET_INFO__bindgen_ty_1),
            "::",
            stringify!(modeInfoIdx)
        )
    );
}
#[test]
fn bindgen_test_layout_DISPLAYCONFIG_PATH_TARGET_INFO() {
    assert_eq!(
        ::std::mem::size_of::<DISPLAYCONFIG_PATH_TARGET_INFO>(),
        48usize,
        concat!("Size of: ", stringify!(DISPLAYCONFIG_PATH_TARGET_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<DISPLAYCONFIG_PATH_TARGET_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(DISPLAYCONFIG_PATH_TARGET_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_PATH_TARGET_INFO>())).adapterId as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_PATH_TARGET_INFO),
            "::",
            stringify!(adapterId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_PATH_TARGET_INFO>())).id as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_PATH_TARGET_INFO),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_PATH_TARGET_INFO>())).outputTechnology as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_PATH_TARGET_INFO),
            "::",
            stringify!(outputTechnology)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_PATH_TARGET_INFO>())).rotation as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_PATH_TARGET_INFO),
            "::",
            stringify!(rotation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_PATH_TARGET_INFO>())).scaling as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_PATH_TARGET_INFO),
            "::",
            stringify!(scaling)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_PATH_TARGET_INFO>())).refreshRate as *const _
                as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_PATH_TARGET_INFO),
            "::",
            stringify!(refreshRate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_PATH_TARGET_INFO>())).scanLineOrdering as *const _
                as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_PATH_TARGET_INFO),
            "::",
            stringify!(scanLineOrdering)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_PATH_TARGET_INFO>())).targetAvailable as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_PATH_TARGET_INFO),
            "::",
            stringify!(targetAvailable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_PATH_TARGET_INFO>())).statusFlags as *const _
                as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_PATH_TARGET_INFO),
            "::",
            stringify!(statusFlags)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct DISPLAYCONFIG_PATH_INFO {
    pub sourceInfo: DISPLAYCONFIG_PATH_SOURCE_INFO,
    pub targetInfo: DISPLAYCONFIG_PATH_TARGET_INFO,
    pub flags: UINT32,
}
#[test]
fn bindgen_test_layout_DISPLAYCONFIG_PATH_INFO() {
    assert_eq!(
        ::std::mem::size_of::<DISPLAYCONFIG_PATH_INFO>(),
        72usize,
        concat!("Size of: ", stringify!(DISPLAYCONFIG_PATH_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<DISPLAYCONFIG_PATH_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(DISPLAYCONFIG_PATH_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_PATH_INFO>())).sourceInfo as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_PATH_INFO),
            "::",
            stringify!(sourceInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_PATH_INFO>())).targetInfo as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_PATH_INFO),
            "::",
            stringify!(targetInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DISPLAYCONFIG_PATH_INFO>())).flags as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_PATH_INFO),
            "::",
            stringify!(flags)
        )
    );
}
pub const DISPLAYCONFIG_TOPOLOGY_ID_DISPLAYCONFIG_TOPOLOGY_INTERNAL: DISPLAYCONFIG_TOPOLOGY_ID = 1;
pub const DISPLAYCONFIG_TOPOLOGY_ID_DISPLAYCONFIG_TOPOLOGY_CLONE: DISPLAYCONFIG_TOPOLOGY_ID = 2;
pub const DISPLAYCONFIG_TOPOLOGY_ID_DISPLAYCONFIG_TOPOLOGY_EXTEND: DISPLAYCONFIG_TOPOLOGY_ID = 4;
pub const DISPLAYCONFIG_TOPOLOGY_ID_DISPLAYCONFIG_TOPOLOGY_EXTERNAL: DISPLAYCONFIG_TOPOLOGY_ID = 8;
pub const DISPLAYCONFIG_TOPOLOGY_ID_DISPLAYCONFIG_TOPOLOGY_FORCE_UINT32: DISPLAYCONFIG_TOPOLOGY_ID =
    -1;
pub type DISPLAYCONFIG_TOPOLOGY_ID = ::std::os::raw::c_int;
pub const DISPLAYCONFIG_DEVICE_INFO_TYPE_DISPLAYCONFIG_DEVICE_INFO_GET_SOURCE_NAME:
    DISPLAYCONFIG_DEVICE_INFO_TYPE = 1;
pub const DISPLAYCONFIG_DEVICE_INFO_TYPE_DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_NAME:
    DISPLAYCONFIG_DEVICE_INFO_TYPE = 2;
pub const DISPLAYCONFIG_DEVICE_INFO_TYPE_DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_PREFERRED_MODE:
    DISPLAYCONFIG_DEVICE_INFO_TYPE = 3;
pub const DISPLAYCONFIG_DEVICE_INFO_TYPE_DISPLAYCONFIG_DEVICE_INFO_GET_ADAPTER_NAME:
    DISPLAYCONFIG_DEVICE_INFO_TYPE = 4;
pub const DISPLAYCONFIG_DEVICE_INFO_TYPE_DISPLAYCONFIG_DEVICE_INFO_SET_TARGET_PERSISTENCE:
    DISPLAYCONFIG_DEVICE_INFO_TYPE = 5;
pub const DISPLAYCONFIG_DEVICE_INFO_TYPE_DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_BASE_TYPE:
    DISPLAYCONFIG_DEVICE_INFO_TYPE = 6;
pub const DISPLAYCONFIG_DEVICE_INFO_TYPE_DISPLAYCONFIG_DEVICE_INFO_GET_SUPPORT_VIRTUAL_RESOLUTION : DISPLAYCONFIG_DEVICE_INFO_TYPE = 7 ;
pub const DISPLAYCONFIG_DEVICE_INFO_TYPE_DISPLAYCONFIG_DEVICE_INFO_SET_SUPPORT_VIRTUAL_RESOLUTION : DISPLAYCONFIG_DEVICE_INFO_TYPE = 8 ;
pub const DISPLAYCONFIG_DEVICE_INFO_TYPE_DISPLAYCONFIG_DEVICE_INFO_GET_ADVANCED_COLOR_INFO:
    DISPLAYCONFIG_DEVICE_INFO_TYPE = 9;
pub const DISPLAYCONFIG_DEVICE_INFO_TYPE_DISPLAYCONFIG_DEVICE_INFO_SET_ADVANCED_COLOR_STATE:
    DISPLAYCONFIG_DEVICE_INFO_TYPE = 10;
pub const DISPLAYCONFIG_DEVICE_INFO_TYPE_DISPLAYCONFIG_DEVICE_INFO_GET_SDR_WHITE_LEVEL:
    DISPLAYCONFIG_DEVICE_INFO_TYPE = 11;
pub const DISPLAYCONFIG_DEVICE_INFO_TYPE_DISPLAYCONFIG_DEVICE_INFO_FORCE_UINT32:
    DISPLAYCONFIG_DEVICE_INFO_TYPE = -1;
pub type DISPLAYCONFIG_DEVICE_INFO_TYPE = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct DISPLAYCONFIG_DEVICE_INFO_HEADER {
    pub type_: DISPLAYCONFIG_DEVICE_INFO_TYPE,
    pub size: UINT32,
    pub adapterId: LUID,
    pub id: UINT32,
}
#[test]
fn bindgen_test_layout_DISPLAYCONFIG_DEVICE_INFO_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<DISPLAYCONFIG_DEVICE_INFO_HEADER>(),
        20usize,
        concat!("Size of: ", stringify!(DISPLAYCONFIG_DEVICE_INFO_HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<DISPLAYCONFIG_DEVICE_INFO_HEADER>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(DISPLAYCONFIG_DEVICE_INFO_HEADER)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_DEVICE_INFO_HEADER>())).type_ as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_DEVICE_INFO_HEADER),
            "::",
            stringify!(type_)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_DEVICE_INFO_HEADER>())).size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_DEVICE_INFO_HEADER),
            "::",
            stringify!(size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_DEVICE_INFO_HEADER>())).adapterId as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_DEVICE_INFO_HEADER),
            "::",
            stringify!(adapterId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_DEVICE_INFO_HEADER>())).id as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_DEVICE_INFO_HEADER),
            "::",
            stringify!(id)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct DISPLAYCONFIG_SOURCE_DEVICE_NAME {
    pub header: DISPLAYCONFIG_DEVICE_INFO_HEADER,
    pub viewGdiDeviceName: [WCHAR; 32usize],
}
#[test]
fn bindgen_test_layout_DISPLAYCONFIG_SOURCE_DEVICE_NAME() {
    assert_eq!(
        ::std::mem::size_of::<DISPLAYCONFIG_SOURCE_DEVICE_NAME>(),
        84usize,
        concat!("Size of: ", stringify!(DISPLAYCONFIG_SOURCE_DEVICE_NAME))
    );
    assert_eq!(
        ::std::mem::align_of::<DISPLAYCONFIG_SOURCE_DEVICE_NAME>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(DISPLAYCONFIG_SOURCE_DEVICE_NAME)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_SOURCE_DEVICE_NAME>())).header as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_SOURCE_DEVICE_NAME),
            "::",
            stringify!(header)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_SOURCE_DEVICE_NAME>())).viewGdiDeviceName
                as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_SOURCE_DEVICE_NAME),
            "::",
            stringify!(viewGdiDeviceName)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS {
    pub __bindgen_anon_1: DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS__bindgen_ty_1 {
    pub __bindgen_anon_1: DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS__bindgen_ty_1__bindgen_ty_1,
    pub value: UINT32,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
#[test]
fn bindgen_test_layout_DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS__bindgen_ty_1__bindgen_ty_1>(
        ),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
impl DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn friendlyNameFromEdid(&self) -> UINT32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_friendlyNameFromEdid(&mut self, val: UINT32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn friendlyNameForced(&self) -> UINT32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_friendlyNameForced(&mut self, val: UINT32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn edidIdsValid(&self) -> UINT32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_edidIdsValid(&mut self, val: UINT32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(2usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn reserved(&self) -> UINT32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) }
    }
    #[inline]
    pub fn set_reserved(&mut self, val: UINT32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(3usize, 29u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        friendlyNameFromEdid: UINT32,
        friendlyNameForced: UINT32,
        edidIdsValid: UINT32,
        reserved: UINT32,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let friendlyNameFromEdid: u32 = unsafe { ::std::mem::transmute(friendlyNameFromEdid) };
            friendlyNameFromEdid as u64
        });
        __bindgen_bitfield_unit.set(1usize, 1u8, {
            let friendlyNameForced: u32 = unsafe { ::std::mem::transmute(friendlyNameForced) };
            friendlyNameForced as u64
        });
        __bindgen_bitfield_unit.set(2usize, 1u8, {
            let edidIdsValid: u32 = unsafe { ::std::mem::transmute(edidIdsValid) };
            edidIdsValid as u64
        });
        __bindgen_bitfield_unit.set(3usize, 29u8, {
            let reserved: u32 = unsafe { ::std::mem::transmute(reserved) };
            reserved as u64
        });
        __bindgen_bitfield_unit
    }
}
#[test]
fn bindgen_test_layout_DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS__bindgen_ty_1>())).value
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS__bindgen_ty_1),
            "::",
            stringify!(value)
        )
    );
}
#[test]
fn bindgen_test_layout_DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS() {
    assert_eq!(
        ::std::mem::size_of::<DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct DISPLAYCONFIG_TARGET_DEVICE_NAME {
    pub header: DISPLAYCONFIG_DEVICE_INFO_HEADER,
    pub flags: DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS,
    pub outputTechnology: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY,
    pub edidManufactureId: UINT16,
    pub edidProductCodeId: UINT16,
    pub connectorInstance: UINT32,
    pub monitorFriendlyDeviceName: [WCHAR; 64usize],
    pub monitorDevicePath: [WCHAR; 128usize],
}
#[test]
fn bindgen_test_layout_DISPLAYCONFIG_TARGET_DEVICE_NAME() {
    assert_eq!(
        ::std::mem::size_of::<DISPLAYCONFIG_TARGET_DEVICE_NAME>(),
        420usize,
        concat!("Size of: ", stringify!(DISPLAYCONFIG_TARGET_DEVICE_NAME))
    );
    assert_eq!(
        ::std::mem::align_of::<DISPLAYCONFIG_TARGET_DEVICE_NAME>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(DISPLAYCONFIG_TARGET_DEVICE_NAME)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_TARGET_DEVICE_NAME>())).header as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_TARGET_DEVICE_NAME),
            "::",
            stringify!(header)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_TARGET_DEVICE_NAME>())).flags as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_TARGET_DEVICE_NAME),
            "::",
            stringify!(flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_TARGET_DEVICE_NAME>())).outputTechnology
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_TARGET_DEVICE_NAME),
            "::",
            stringify!(outputTechnology)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_TARGET_DEVICE_NAME>())).edidManufactureId
                as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_TARGET_DEVICE_NAME),
            "::",
            stringify!(edidManufactureId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_TARGET_DEVICE_NAME>())).edidProductCodeId
                as *const _ as usize
        },
        30usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_TARGET_DEVICE_NAME),
            "::",
            stringify!(edidProductCodeId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_TARGET_DEVICE_NAME>())).connectorInstance
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_TARGET_DEVICE_NAME),
            "::",
            stringify!(connectorInstance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_TARGET_DEVICE_NAME>())).monitorFriendlyDeviceName
                as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_TARGET_DEVICE_NAME),
            "::",
            stringify!(monitorFriendlyDeviceName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_TARGET_DEVICE_NAME>())).monitorDevicePath
                as *const _ as usize
        },
        164usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_TARGET_DEVICE_NAME),
            "::",
            stringify!(monitorDevicePath)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct DISPLAYCONFIG_TARGET_PREFERRED_MODE {
    pub header: DISPLAYCONFIG_DEVICE_INFO_HEADER,
    pub width: UINT32,
    pub height: UINT32,
    pub targetMode: DISPLAYCONFIG_TARGET_MODE,
}
#[test]
fn bindgen_test_layout_DISPLAYCONFIG_TARGET_PREFERRED_MODE() {
    assert_eq!(
        ::std::mem::size_of::<DISPLAYCONFIG_TARGET_PREFERRED_MODE>(),
        80usize,
        concat!("Size of: ", stringify!(DISPLAYCONFIG_TARGET_PREFERRED_MODE))
    );
    assert_eq!(
        ::std::mem::align_of::<DISPLAYCONFIG_TARGET_PREFERRED_MODE>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(DISPLAYCONFIG_TARGET_PREFERRED_MODE)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_TARGET_PREFERRED_MODE>())).header as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_TARGET_PREFERRED_MODE),
            "::",
            stringify!(header)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_TARGET_PREFERRED_MODE>())).width as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_TARGET_PREFERRED_MODE),
            "::",
            stringify!(width)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_TARGET_PREFERRED_MODE>())).height as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_TARGET_PREFERRED_MODE),
            "::",
            stringify!(height)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_TARGET_PREFERRED_MODE>())).targetMode as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_TARGET_PREFERRED_MODE),
            "::",
            stringify!(targetMode)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct DISPLAYCONFIG_ADAPTER_NAME {
    pub header: DISPLAYCONFIG_DEVICE_INFO_HEADER,
    pub adapterDevicePath: [WCHAR; 128usize],
}
#[test]
fn bindgen_test_layout_DISPLAYCONFIG_ADAPTER_NAME() {
    assert_eq!(
        ::std::mem::size_of::<DISPLAYCONFIG_ADAPTER_NAME>(),
        276usize,
        concat!("Size of: ", stringify!(DISPLAYCONFIG_ADAPTER_NAME))
    );
    assert_eq!(
        ::std::mem::align_of::<DISPLAYCONFIG_ADAPTER_NAME>(),
        4usize,
        concat!("Alignment of ", stringify!(DISPLAYCONFIG_ADAPTER_NAME))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_ADAPTER_NAME>())).header as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_ADAPTER_NAME),
            "::",
            stringify!(header)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_ADAPTER_NAME>())).adapterDevicePath as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_ADAPTER_NAME),
            "::",
            stringify!(adapterDevicePath)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct DISPLAYCONFIG_TARGET_BASE_TYPE {
    pub header: DISPLAYCONFIG_DEVICE_INFO_HEADER,
    pub baseOutputTechnology: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY,
}
#[test]
fn bindgen_test_layout_DISPLAYCONFIG_TARGET_BASE_TYPE() {
    assert_eq!(
        ::std::mem::size_of::<DISPLAYCONFIG_TARGET_BASE_TYPE>(),
        24usize,
        concat!("Size of: ", stringify!(DISPLAYCONFIG_TARGET_BASE_TYPE))
    );
    assert_eq!(
        ::std::mem::align_of::<DISPLAYCONFIG_TARGET_BASE_TYPE>(),
        4usize,
        concat!("Alignment of ", stringify!(DISPLAYCONFIG_TARGET_BASE_TYPE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_TARGET_BASE_TYPE>())).header as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_TARGET_BASE_TYPE),
            "::",
            stringify!(header)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_TARGET_BASE_TYPE>())).baseOutputTechnology
                as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_TARGET_BASE_TYPE),
            "::",
            stringify!(baseOutputTechnology)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct DISPLAYCONFIG_SET_TARGET_PERSISTENCE {
    pub header: DISPLAYCONFIG_DEVICE_INFO_HEADER,
    pub __bindgen_anon_1: DISPLAYCONFIG_SET_TARGET_PERSISTENCE__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union DISPLAYCONFIG_SET_TARGET_PERSISTENCE__bindgen_ty_1 {
    pub __bindgen_anon_1: DISPLAYCONFIG_SET_TARGET_PERSISTENCE__bindgen_ty_1__bindgen_ty_1,
    pub value: UINT32,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct DISPLAYCONFIG_SET_TARGET_PERSISTENCE__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
#[test]
fn bindgen_test_layout_DISPLAYCONFIG_SET_TARGET_PERSISTENCE__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<DISPLAYCONFIG_SET_TARGET_PERSISTENCE__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(DISPLAYCONFIG_SET_TARGET_PERSISTENCE__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<DISPLAYCONFIG_SET_TARGET_PERSISTENCE__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(DISPLAYCONFIG_SET_TARGET_PERSISTENCE__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
impl DISPLAYCONFIG_SET_TARGET_PERSISTENCE__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn bootPersistenceOn(&self) -> UINT32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_bootPersistenceOn(&mut self, val: UINT32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn reserved(&self) -> UINT32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) }
    }
    #[inline]
    pub fn set_reserved(&mut self, val: UINT32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 31u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        bootPersistenceOn: UINT32,
        reserved: UINT32,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let bootPersistenceOn: u32 = unsafe { ::std::mem::transmute(bootPersistenceOn) };
            bootPersistenceOn as u64
        });
        __bindgen_bitfield_unit.set(1usize, 31u8, {
            let reserved: u32 = unsafe { ::std::mem::transmute(reserved) };
            reserved as u64
        });
        __bindgen_bitfield_unit
    }
}
#[test]
fn bindgen_test_layout_DISPLAYCONFIG_SET_TARGET_PERSISTENCE__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<DISPLAYCONFIG_SET_TARGET_PERSISTENCE__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(DISPLAYCONFIG_SET_TARGET_PERSISTENCE__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<DISPLAYCONFIG_SET_TARGET_PERSISTENCE__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(DISPLAYCONFIG_SET_TARGET_PERSISTENCE__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_SET_TARGET_PERSISTENCE__bindgen_ty_1>())).value
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_SET_TARGET_PERSISTENCE__bindgen_ty_1),
            "::",
            stringify!(value)
        )
    );
}
#[test]
fn bindgen_test_layout_DISPLAYCONFIG_SET_TARGET_PERSISTENCE() {
    assert_eq!(
        ::std::mem::size_of::<DISPLAYCONFIG_SET_TARGET_PERSISTENCE>(),
        24usize,
        concat!(
            "Size of: ",
            stringify!(DISPLAYCONFIG_SET_TARGET_PERSISTENCE)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<DISPLAYCONFIG_SET_TARGET_PERSISTENCE>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(DISPLAYCONFIG_SET_TARGET_PERSISTENCE)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_SET_TARGET_PERSISTENCE>())).header as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_SET_TARGET_PERSISTENCE),
            "::",
            stringify!(header)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION {
    pub header: DISPLAYCONFIG_DEVICE_INFO_HEADER,
    pub __bindgen_anon_1: DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION__bindgen_ty_1 {
    pub __bindgen_anon_1: DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION__bindgen_ty_1__bindgen_ty_1,
    pub value: UINT32,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
#[test]
fn bindgen_test_layout_DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION__bindgen_ty_1__bindgen_ty_1>(
        ),
        4usize,
        concat!(
            "Size of: ",
            stringify!(DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION__bindgen_ty_1__bindgen_ty_1>(
        ),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
impl DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn disableMonitorVirtualResolution(&self) -> UINT32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_disableMonitorVirtualResolution(&mut self, val: UINT32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn reserved(&self) -> UINT32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) }
    }
    #[inline]
    pub fn set_reserved(&mut self, val: UINT32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 31u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        disableMonitorVirtualResolution: UINT32,
        reserved: UINT32,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let disableMonitorVirtualResolution: u32 =
                unsafe { ::std::mem::transmute(disableMonitorVirtualResolution) };
            disableMonitorVirtualResolution as u64
        });
        __bindgen_bitfield_unit.set(1usize, 31u8, {
            let reserved: u32 = unsafe { ::std::mem::transmute(reserved) };
            reserved as u64
        });
        __bindgen_bitfield_unit
    }
}
#[test]
fn bindgen_test_layout_DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION__bindgen_ty_1>())).value
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION__bindgen_ty_1),
            "::",
            stringify!(value)
        )
    );
}
#[test]
fn bindgen_test_layout_DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION() {
    assert_eq!(
        ::std::mem::size_of::<DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION>(),
        24usize,
        concat!(
            "Size of: ",
            stringify!(DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION>())).header as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION),
            "::",
            stringify!(header)
        )
    );
}
pub const _DISPLAYCONFIG_COLOR_ENCODING_DISPLAYCONFIG_COLOR_ENCODING_RGB:
    _DISPLAYCONFIG_COLOR_ENCODING = 0;
pub const _DISPLAYCONFIG_COLOR_ENCODING_DISPLAYCONFIG_COLOR_ENCODING_YCBCR444:
    _DISPLAYCONFIG_COLOR_ENCODING = 1;
pub const _DISPLAYCONFIG_COLOR_ENCODING_DISPLAYCONFIG_COLOR_ENCODING_YCBCR422:
    _DISPLAYCONFIG_COLOR_ENCODING = 2;
pub const _DISPLAYCONFIG_COLOR_ENCODING_DISPLAYCONFIG_COLOR_ENCODING_YCBCR420:
    _DISPLAYCONFIG_COLOR_ENCODING = 3;
pub const _DISPLAYCONFIG_COLOR_ENCODING_DISPLAYCONFIG_COLOR_ENCODING_INTENSITY:
    _DISPLAYCONFIG_COLOR_ENCODING = 4;
pub const _DISPLAYCONFIG_COLOR_ENCODING_DISPLAYCONFIG_COLOR_ENCODING_FORCE_UINT32:
    _DISPLAYCONFIG_COLOR_ENCODING = -1;
pub type _DISPLAYCONFIG_COLOR_ENCODING = ::std::os::raw::c_int;
pub use self::_DISPLAYCONFIG_COLOR_ENCODING as DISPLAYCONFIG_COLOR_ENCODING;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO {
    pub header: DISPLAYCONFIG_DEVICE_INFO_HEADER,
    pub __bindgen_anon_1: _DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO__bindgen_ty_1,
    pub colorEncoding: DISPLAYCONFIG_COLOR_ENCODING,
    pub bitsPerColorChannel: UINT32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO__bindgen_ty_1 {
    pub __bindgen_anon_1: _DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO__bindgen_ty_1__bindgen_ty_1,
    pub value: UINT32,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
#[test]
fn bindgen_test_layout__DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO__bindgen_ty_1__bindgen_ty_1>(
        ),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
impl _DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn advancedColorSupported(&self) -> UINT32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_advancedColorSupported(&mut self, val: UINT32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn advancedColorEnabled(&self) -> UINT32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_advancedColorEnabled(&mut self, val: UINT32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn wideColorEnforced(&self) -> UINT32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_wideColorEnforced(&mut self, val: UINT32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(2usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn advancedColorForceDisabled(&self) -> UINT32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_advancedColorForceDisabled(&mut self, val: UINT32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(3usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn reserved(&self) -> UINT32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 28u8) as u32) }
    }
    #[inline]
    pub fn set_reserved(&mut self, val: UINT32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(4usize, 28u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        advancedColorSupported: UINT32,
        advancedColorEnabled: UINT32,
        wideColorEnforced: UINT32,
        advancedColorForceDisabled: UINT32,
        reserved: UINT32,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let advancedColorSupported: u32 =
                unsafe { ::std::mem::transmute(advancedColorSupported) };
            advancedColorSupported as u64
        });
        __bindgen_bitfield_unit.set(1usize, 1u8, {
            let advancedColorEnabled: u32 = unsafe { ::std::mem::transmute(advancedColorEnabled) };
            advancedColorEnabled as u64
        });
        __bindgen_bitfield_unit.set(2usize, 1u8, {
            let wideColorEnforced: u32 = unsafe { ::std::mem::transmute(wideColorEnforced) };
            wideColorEnforced as u64
        });
        __bindgen_bitfield_unit.set(3usize, 1u8, {
            let advancedColorForceDisabled: u32 =
                unsafe { ::std::mem::transmute(advancedColorForceDisabled) };
            advancedColorForceDisabled as u64
        });
        __bindgen_bitfield_unit.set(4usize, 28u8, {
            let reserved: u32 = unsafe { ::std::mem::transmute(reserved) };
            reserved as u64
        });
        __bindgen_bitfield_unit
    }
}
#[test]
fn bindgen_test_layout__DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO__bindgen_ty_1>())).value
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO__bindgen_ty_1),
            "::",
            stringify!(value)
        )
    );
}
#[test]
fn bindgen_test_layout__DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO>(),
        32usize,
        concat!(
            "Size of: ",
            stringify!(_DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO>())).header as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO),
            "::",
            stringify!(header)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO>())).colorEncoding
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO),
            "::",
            stringify!(colorEncoding)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO>())).bitsPerColorChannel
                as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO),
            "::",
            stringify!(bitsPerColorChannel)
        )
    );
}
pub type DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO = _DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE {
    pub header: DISPLAYCONFIG_DEVICE_INFO_HEADER,
    pub __bindgen_anon_1: _DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE__bindgen_ty_1 {
    pub __bindgen_anon_1: _DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE__bindgen_ty_1__bindgen_ty_1,
    pub value: UINT32,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
#[test]
fn bindgen_test_layout__DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE__bindgen_ty_1__bindgen_ty_1>(
        ),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE__bindgen_ty_1__bindgen_ty_1>(
        ),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
impl _DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn enableAdvancedColor(&self) -> UINT32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_enableAdvancedColor(&mut self, val: UINT32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn reserved(&self) -> UINT32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) }
    }
    #[inline]
    pub fn set_reserved(&mut self, val: UINT32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 31u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        enableAdvancedColor: UINT32,
        reserved: UINT32,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let enableAdvancedColor: u32 = unsafe { ::std::mem::transmute(enableAdvancedColor) };
            enableAdvancedColor as u64
        });
        __bindgen_bitfield_unit.set(1usize, 31u8, {
            let reserved: u32 = unsafe { ::std::mem::transmute(reserved) };
            reserved as u64
        });
        __bindgen_bitfield_unit
    }
}
#[test]
fn bindgen_test_layout__DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE__bindgen_ty_1>())).value
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE__bindgen_ty_1),
            "::",
            stringify!(value)
        )
    );
}
#[test]
fn bindgen_test_layout__DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE() {
    assert_eq!(
        ::std::mem::size_of::<_DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE>(),
        24usize,
        concat!(
            "Size of: ",
            stringify!(_DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE>())).header as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE),
            "::",
            stringify!(header)
        )
    );
}
pub type DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE = _DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DISPLAYCONFIG_SDR_WHITE_LEVEL {
    pub header: DISPLAYCONFIG_DEVICE_INFO_HEADER,
    pub SDRWhiteLevel: ULONG,
}
#[test]
fn bindgen_test_layout__DISPLAYCONFIG_SDR_WHITE_LEVEL() {
    assert_eq!(
        ::std::mem::size_of::<_DISPLAYCONFIG_SDR_WHITE_LEVEL>(),
        24usize,
        concat!("Size of: ", stringify!(_DISPLAYCONFIG_SDR_WHITE_LEVEL))
    );
    assert_eq!(
        ::std::mem::align_of::<_DISPLAYCONFIG_SDR_WHITE_LEVEL>(),
        4usize,
        concat!("Alignment of ", stringify!(_DISPLAYCONFIG_SDR_WHITE_LEVEL))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISPLAYCONFIG_SDR_WHITE_LEVEL>())).header as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISPLAYCONFIG_SDR_WHITE_LEVEL),
            "::",
            stringify!(header)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISPLAYCONFIG_SDR_WHITE_LEVEL>())).SDRWhiteLevel as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISPLAYCONFIG_SDR_WHITE_LEVEL),
            "::",
            stringify!(SDRWhiteLevel)
        )
    );
}
pub type DISPLAYCONFIG_SDR_WHITE_LEVEL = _DISPLAYCONFIG_SDR_WHITE_LEVEL;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RGNDATAHEADER {
    pub dwSize: DWORD,
    pub iType: DWORD,
    pub nCount: DWORD,
    pub nRgnSize: DWORD,
    pub rcBound: RECT,
}
#[test]
fn bindgen_test_layout__RGNDATAHEADER() {
    assert_eq!(
        ::std::mem::size_of::<_RGNDATAHEADER>(),
        32usize,
        concat!("Size of: ", stringify!(_RGNDATAHEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<_RGNDATAHEADER>(),
        4usize,
        concat!("Alignment of ", stringify!(_RGNDATAHEADER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RGNDATAHEADER>())).dwSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RGNDATAHEADER),
            "::",
            stringify!(dwSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RGNDATAHEADER>())).iType as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_RGNDATAHEADER),
            "::",
            stringify!(iType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RGNDATAHEADER>())).nCount as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RGNDATAHEADER),
            "::",
            stringify!(nCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RGNDATAHEADER>())).nRgnSize as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_RGNDATAHEADER),
            "::",
            stringify!(nRgnSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RGNDATAHEADER>())).rcBound as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_RGNDATAHEADER),
            "::",
            stringify!(rcBound)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__RGNDATA() {
    assert_eq!(
        ::std::mem::size_of::<_RGNDATA>(),
        36usize,
        concat!("Size of: ", stringify!(_RGNDATA))
    );
    assert_eq!(
        ::std::mem::align_of::<_RGNDATA>(),
        4usize,
        concat!("Alignment of ", stringify!(_RGNDATA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RGNDATA>())).rdh as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RGNDATA),
            "::",
            stringify!(rdh)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RGNDATA>())).Buffer as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_RGNDATA),
            "::",
            stringify!(Buffer)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__ABC() {
    assert_eq!(
        ::std::mem::size_of::<_ABC>(),
        12usize,
        concat!("Size of: ", stringify!(_ABC))
    );
    assert_eq!(
        ::std::mem::align_of::<_ABC>(),
        4usize,
        concat!("Alignment of ", stringify!(_ABC))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ABC>())).abcA as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ABC),
            "::",
            stringify!(abcA)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ABC>())).abcB as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ABC),
            "::",
            stringify!(abcB)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ABC>())).abcC as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ABC),
            "::",
            stringify!(abcC)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__ABCFLOAT() {
    assert_eq!(
        ::std::mem::size_of::<_ABCFLOAT>(),
        12usize,
        concat!("Size of: ", stringify!(_ABCFLOAT))
    );
    assert_eq!(
        ::std::mem::align_of::<_ABCFLOAT>(),
        4usize,
        concat!("Alignment of ", stringify!(_ABCFLOAT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ABCFLOAT>())).abcfA as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ABCFLOAT),
            "::",
            stringify!(abcfA)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ABCFLOAT>())).abcfB as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ABCFLOAT),
            "::",
            stringify!(abcfB)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ABCFLOAT>())).abcfC as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ABCFLOAT),
            "::",
            stringify!(abcfC)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__OUTLINETEXTMETRICA() {
    assert_eq!(
        ::std::mem::size_of::<_OUTLINETEXTMETRICA>(),
        232usize,
        concat!("Size of: ", stringify!(_OUTLINETEXTMETRICA))
    );
    assert_eq!(
        ::std::mem::align_of::<_OUTLINETEXTMETRICA>(),
        8usize,
        concat!("Alignment of ", stringify!(_OUTLINETEXTMETRICA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OUTLINETEXTMETRICA>())).otmSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICA),
            "::",
            stringify!(otmSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICA>())).otmTextMetrics as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICA),
            "::",
            stringify!(otmTextMetrics)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OUTLINETEXTMETRICA>())).otmFiller as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICA),
            "::",
            stringify!(otmFiller)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICA>())).otmPanoseNumber as *const _ as usize
        },
        61usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICA),
            "::",
            stringify!(otmPanoseNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICA>())).otmfsSelection as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICA),
            "::",
            stringify!(otmfsSelection)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OUTLINETEXTMETRICA>())).otmfsType as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICA),
            "::",
            stringify!(otmfsType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICA>())).otmsCharSlopeRise as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICA),
            "::",
            stringify!(otmsCharSlopeRise)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICA>())).otmsCharSlopeRun as *const _ as usize
        },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICA),
            "::",
            stringify!(otmsCharSlopeRun)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICA>())).otmItalicAngle as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICA),
            "::",
            stringify!(otmItalicAngle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OUTLINETEXTMETRICA>())).otmEMSquare as *const _ as usize },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICA),
            "::",
            stringify!(otmEMSquare)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OUTLINETEXTMETRICA>())).otmAscent as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICA),
            "::",
            stringify!(otmAscent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OUTLINETEXTMETRICA>())).otmDescent as *const _ as usize },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICA),
            "::",
            stringify!(otmDescent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OUTLINETEXTMETRICA>())).otmLineGap as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICA),
            "::",
            stringify!(otmLineGap)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICA>())).otmsCapEmHeight as *const _ as usize
        },
        108usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICA),
            "::",
            stringify!(otmsCapEmHeight)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OUTLINETEXTMETRICA>())).otmsXHeight as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICA),
            "::",
            stringify!(otmsXHeight)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICA>())).otmrcFontBox as *const _ as usize
        },
        116usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICA),
            "::",
            stringify!(otmrcFontBox)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICA>())).otmMacAscent as *const _ as usize
        },
        132usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICA),
            "::",
            stringify!(otmMacAscent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICA>())).otmMacDescent as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICA),
            "::",
            stringify!(otmMacDescent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICA>())).otmMacLineGap as *const _ as usize
        },
        140usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICA),
            "::",
            stringify!(otmMacLineGap)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICA>())).otmusMinimumPPEM as *const _ as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICA),
            "::",
            stringify!(otmusMinimumPPEM)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICA>())).otmptSubscriptSize as *const _ as usize
        },
        148usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICA),
            "::",
            stringify!(otmptSubscriptSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICA>())).otmptSubscriptOffset as *const _
                as usize
        },
        156usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICA),
            "::",
            stringify!(otmptSubscriptOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICA>())).otmptSuperscriptSize as *const _
                as usize
        },
        164usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICA),
            "::",
            stringify!(otmptSuperscriptSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICA>())).otmptSuperscriptOffset as *const _
                as usize
        },
        172usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICA),
            "::",
            stringify!(otmptSuperscriptOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICA>())).otmsStrikeoutSize as *const _ as usize
        },
        180usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICA),
            "::",
            stringify!(otmsStrikeoutSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICA>())).otmsStrikeoutPosition as *const _
                as usize
        },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICA),
            "::",
            stringify!(otmsStrikeoutPosition)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICA>())).otmsUnderscoreSize as *const _ as usize
        },
        188usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICA),
            "::",
            stringify!(otmsUnderscoreSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICA>())).otmsUnderscorePosition as *const _
                as usize
        },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICA),
            "::",
            stringify!(otmsUnderscorePosition)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICA>())).otmpFamilyName as *const _ as usize
        },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICA),
            "::",
            stringify!(otmpFamilyName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICA>())).otmpFaceName as *const _ as usize
        },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICA),
            "::",
            stringify!(otmpFaceName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICA>())).otmpStyleName as *const _ as usize
        },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICA),
            "::",
            stringify!(otmpStyleName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICA>())).otmpFullName as *const _ as usize
        },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICA),
            "::",
            stringify!(otmpFullName)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__OUTLINETEXTMETRICW() {
    assert_eq!(
        ::std::mem::size_of::<_OUTLINETEXTMETRICW>(),
        232usize,
        concat!("Size of: ", stringify!(_OUTLINETEXTMETRICW))
    );
    assert_eq!(
        ::std::mem::align_of::<_OUTLINETEXTMETRICW>(),
        8usize,
        concat!("Alignment of ", stringify!(_OUTLINETEXTMETRICW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OUTLINETEXTMETRICW>())).otmSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICW),
            "::",
            stringify!(otmSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICW>())).otmTextMetrics as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICW),
            "::",
            stringify!(otmTextMetrics)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OUTLINETEXTMETRICW>())).otmFiller as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICW),
            "::",
            stringify!(otmFiller)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICW>())).otmPanoseNumber as *const _ as usize
        },
        65usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICW),
            "::",
            stringify!(otmPanoseNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICW>())).otmfsSelection as *const _ as usize
        },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICW),
            "::",
            stringify!(otmfsSelection)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OUTLINETEXTMETRICW>())).otmfsType as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICW),
            "::",
            stringify!(otmfsType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICW>())).otmsCharSlopeRise as *const _ as usize
        },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICW),
            "::",
            stringify!(otmsCharSlopeRise)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICW>())).otmsCharSlopeRun as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICW),
            "::",
            stringify!(otmsCharSlopeRun)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICW>())).otmItalicAngle as *const _ as usize
        },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICW),
            "::",
            stringify!(otmItalicAngle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OUTLINETEXTMETRICW>())).otmEMSquare as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICW),
            "::",
            stringify!(otmEMSquare)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OUTLINETEXTMETRICW>())).otmAscent as *const _ as usize },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICW),
            "::",
            stringify!(otmAscent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OUTLINETEXTMETRICW>())).otmDescent as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICW),
            "::",
            stringify!(otmDescent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OUTLINETEXTMETRICW>())).otmLineGap as *const _ as usize },
        108usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICW),
            "::",
            stringify!(otmLineGap)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICW>())).otmsCapEmHeight as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICW),
            "::",
            stringify!(otmsCapEmHeight)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OUTLINETEXTMETRICW>())).otmsXHeight as *const _ as usize },
        116usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICW),
            "::",
            stringify!(otmsXHeight)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICW>())).otmrcFontBox as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICW),
            "::",
            stringify!(otmrcFontBox)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICW>())).otmMacAscent as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICW),
            "::",
            stringify!(otmMacAscent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICW>())).otmMacDescent as *const _ as usize
        },
        140usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICW),
            "::",
            stringify!(otmMacDescent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICW>())).otmMacLineGap as *const _ as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICW),
            "::",
            stringify!(otmMacLineGap)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICW>())).otmusMinimumPPEM as *const _ as usize
        },
        148usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICW),
            "::",
            stringify!(otmusMinimumPPEM)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICW>())).otmptSubscriptSize as *const _ as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICW),
            "::",
            stringify!(otmptSubscriptSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICW>())).otmptSubscriptOffset as *const _
                as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICW),
            "::",
            stringify!(otmptSubscriptOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICW>())).otmptSuperscriptSize as *const _
                as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICW),
            "::",
            stringify!(otmptSuperscriptSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICW>())).otmptSuperscriptOffset as *const _
                as usize
        },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICW),
            "::",
            stringify!(otmptSuperscriptOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICW>())).otmsStrikeoutSize as *const _ as usize
        },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICW),
            "::",
            stringify!(otmsStrikeoutSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICW>())).otmsStrikeoutPosition as *const _
                as usize
        },
        188usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICW),
            "::",
            stringify!(otmsStrikeoutPosition)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICW>())).otmsUnderscoreSize as *const _ as usize
        },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICW),
            "::",
            stringify!(otmsUnderscoreSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICW>())).otmsUnderscorePosition as *const _
                as usize
        },
        196usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICW),
            "::",
            stringify!(otmsUnderscorePosition)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICW>())).otmpFamilyName as *const _ as usize
        },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICW),
            "::",
            stringify!(otmpFamilyName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICW>())).otmpFaceName as *const _ as usize
        },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICW),
            "::",
            stringify!(otmpFaceName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICW>())).otmpStyleName as *const _ as usize
        },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICW),
            "::",
            stringify!(otmpStyleName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OUTLINETEXTMETRICW>())).otmpFullName as *const _ as usize
        },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(_OUTLINETEXTMETRICW),
            "::",
            stringify!(otmpFullName)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagPOLYTEXTA() {
    assert_eq!(
        ::std::mem::size_of::<tagPOLYTEXTA>(),
        56usize,
        concat!("Size of: ", stringify!(tagPOLYTEXTA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagPOLYTEXTA>(),
        8usize,
        concat!("Alignment of ", stringify!(tagPOLYTEXTA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOLYTEXTA>())).x as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOLYTEXTA),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOLYTEXTA>())).y as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOLYTEXTA),
            "::",
            stringify!(y)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOLYTEXTA>())).n as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOLYTEXTA),
            "::",
            stringify!(n)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOLYTEXTA>())).lpstr as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOLYTEXTA),
            "::",
            stringify!(lpstr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOLYTEXTA>())).uiFlags as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOLYTEXTA),
            "::",
            stringify!(uiFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOLYTEXTA>())).rcl as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOLYTEXTA),
            "::",
            stringify!(rcl)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOLYTEXTA>())).pdx as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOLYTEXTA),
            "::",
            stringify!(pdx)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagPOLYTEXTW() {
    assert_eq!(
        ::std::mem::size_of::<tagPOLYTEXTW>(),
        56usize,
        concat!("Size of: ", stringify!(tagPOLYTEXTW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagPOLYTEXTW>(),
        8usize,
        concat!("Alignment of ", stringify!(tagPOLYTEXTW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOLYTEXTW>())).x as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOLYTEXTW),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOLYTEXTW>())).y as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOLYTEXTW),
            "::",
            stringify!(y)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOLYTEXTW>())).n as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOLYTEXTW),
            "::",
            stringify!(n)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOLYTEXTW>())).lpstr as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOLYTEXTW),
            "::",
            stringify!(lpstr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOLYTEXTW>())).uiFlags as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOLYTEXTW),
            "::",
            stringify!(uiFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOLYTEXTW>())).rcl as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOLYTEXTW),
            "::",
            stringify!(rcl)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOLYTEXTW>())).pdx as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOLYTEXTW),
            "::",
            stringify!(pdx)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__FIXED() {
    assert_eq!(
        ::std::mem::size_of::<_FIXED>(),
        4usize,
        concat!("Size of: ", stringify!(_FIXED))
    );
    assert_eq!(
        ::std::mem::align_of::<_FIXED>(),
        2usize,
        concat!("Alignment of ", stringify!(_FIXED))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FIXED>())).fract as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FIXED),
            "::",
            stringify!(fract)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FIXED>())).value as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_FIXED),
            "::",
            stringify!(value)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__MAT2() {
    assert_eq!(
        ::std::mem::size_of::<_MAT2>(),
        16usize,
        concat!("Size of: ", stringify!(_MAT2))
    );
    assert_eq!(
        ::std::mem::align_of::<_MAT2>(),
        2usize,
        concat!("Alignment of ", stringify!(_MAT2))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MAT2>())).eM11 as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MAT2),
            "::",
            stringify!(eM11)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MAT2>())).eM12 as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_MAT2),
            "::",
            stringify!(eM12)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MAT2>())).eM21 as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_MAT2),
            "::",
            stringify!(eM21)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MAT2>())).eM22 as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_MAT2),
            "::",
            stringify!(eM22)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__GLYPHMETRICS() {
    assert_eq!(
        ::std::mem::size_of::<_GLYPHMETRICS>(),
        20usize,
        concat!("Size of: ", stringify!(_GLYPHMETRICS))
    );
    assert_eq!(
        ::std::mem::align_of::<_GLYPHMETRICS>(),
        4usize,
        concat!("Alignment of ", stringify!(_GLYPHMETRICS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GLYPHMETRICS>())).gmBlackBoxX as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_GLYPHMETRICS),
            "::",
            stringify!(gmBlackBoxX)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GLYPHMETRICS>())).gmBlackBoxY as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_GLYPHMETRICS),
            "::",
            stringify!(gmBlackBoxY)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GLYPHMETRICS>())).gmptGlyphOrigin as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_GLYPHMETRICS),
            "::",
            stringify!(gmptGlyphOrigin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GLYPHMETRICS>())).gmCellIncX as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_GLYPHMETRICS),
            "::",
            stringify!(gmCellIncX)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GLYPHMETRICS>())).gmCellIncY as *const _ as usize },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(_GLYPHMETRICS),
            "::",
            stringify!(gmCellIncY)
        )
    );
}
pub type GLYPHMETRICS = _GLYPHMETRICS;
pub type LPGLYPHMETRICS = *mut _GLYPHMETRICS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagPOINTFX {
    pub x: FIXED,
    pub y: FIXED,
}
#[test]
fn bindgen_test_layout_tagPOINTFX() {
    assert_eq!(
        ::std::mem::size_of::<tagPOINTFX>(),
        8usize,
        concat!("Size of: ", stringify!(tagPOINTFX))
    );
    assert_eq!(
        ::std::mem::align_of::<tagPOINTFX>(),
        2usize,
        concat!("Alignment of ", stringify!(tagPOINTFX))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOINTFX>())).x as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTFX),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOINTFX>())).y as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTFX),
            "::",
            stringify!(y)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagTTPOLYCURVE() {
    assert_eq!(
        ::std::mem::size_of::<tagTTPOLYCURVE>(),
        12usize,
        concat!("Size of: ", stringify!(tagTTPOLYCURVE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagTTPOLYCURVE>(),
        2usize,
        concat!("Alignment of ", stringify!(tagTTPOLYCURVE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTTPOLYCURVE>())).wType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTTPOLYCURVE),
            "::",
            stringify!(wType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTTPOLYCURVE>())).cpfx as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTTPOLYCURVE),
            "::",
            stringify!(cpfx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTTPOLYCURVE>())).apfx as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTTPOLYCURVE),
            "::",
            stringify!(apfx)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagTTPOLYGONHEADER() {
    assert_eq!(
        ::std::mem::size_of::<tagTTPOLYGONHEADER>(),
        16usize,
        concat!("Size of: ", stringify!(tagTTPOLYGONHEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<tagTTPOLYGONHEADER>(),
        4usize,
        concat!("Alignment of ", stringify!(tagTTPOLYGONHEADER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTTPOLYGONHEADER>())).cb as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTTPOLYGONHEADER),
            "::",
            stringify!(cb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTTPOLYGONHEADER>())).dwType as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTTPOLYGONHEADER),
            "::",
            stringify!(dwType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTTPOLYGONHEADER>())).pfxStart as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTTPOLYGONHEADER),
            "::",
            stringify!(pfxStart)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagGCP_RESULTSA() {
    assert_eq!(
        ::std::mem::size_of::<tagGCP_RESULTSA>(),
        64usize,
        concat!("Size of: ", stringify!(tagGCP_RESULTSA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagGCP_RESULTSA>(),
        8usize,
        concat!("Alignment of ", stringify!(tagGCP_RESULTSA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGCP_RESULTSA>())).lStructSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGCP_RESULTSA),
            "::",
            stringify!(lStructSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGCP_RESULTSA>())).lpOutString as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGCP_RESULTSA),
            "::",
            stringify!(lpOutString)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGCP_RESULTSA>())).lpOrder as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGCP_RESULTSA),
            "::",
            stringify!(lpOrder)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGCP_RESULTSA>())).lpDx as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGCP_RESULTSA),
            "::",
            stringify!(lpDx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGCP_RESULTSA>())).lpCaretPos as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGCP_RESULTSA),
            "::",
            stringify!(lpCaretPos)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGCP_RESULTSA>())).lpClass as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGCP_RESULTSA),
            "::",
            stringify!(lpClass)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGCP_RESULTSA>())).lpGlyphs as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGCP_RESULTSA),
            "::",
            stringify!(lpGlyphs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGCP_RESULTSA>())).nGlyphs as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGCP_RESULTSA),
            "::",
            stringify!(nGlyphs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGCP_RESULTSA>())).nMaxFit as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGCP_RESULTSA),
            "::",
            stringify!(nMaxFit)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagGCP_RESULTSW() {
    assert_eq!(
        ::std::mem::size_of::<tagGCP_RESULTSW>(),
        64usize,
        concat!("Size of: ", stringify!(tagGCP_RESULTSW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagGCP_RESULTSW>(),
        8usize,
        concat!("Alignment of ", stringify!(tagGCP_RESULTSW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGCP_RESULTSW>())).lStructSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGCP_RESULTSW),
            "::",
            stringify!(lStructSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGCP_RESULTSW>())).lpOutString as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGCP_RESULTSW),
            "::",
            stringify!(lpOutString)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGCP_RESULTSW>())).lpOrder as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGCP_RESULTSW),
            "::",
            stringify!(lpOrder)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGCP_RESULTSW>())).lpDx as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGCP_RESULTSW),
            "::",
            stringify!(lpDx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGCP_RESULTSW>())).lpCaretPos as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGCP_RESULTSW),
            "::",
            stringify!(lpCaretPos)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGCP_RESULTSW>())).lpClass as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGCP_RESULTSW),
            "::",
            stringify!(lpClass)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGCP_RESULTSW>())).lpGlyphs as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGCP_RESULTSW),
            "::",
            stringify!(lpGlyphs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGCP_RESULTSW>())).nGlyphs as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGCP_RESULTSW),
            "::",
            stringify!(nGlyphs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGCP_RESULTSW>())).nMaxFit as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGCP_RESULTSW),
            "::",
            stringify!(nMaxFit)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__RASTERIZER_STATUS() {
    assert_eq!(
        ::std::mem::size_of::<_RASTERIZER_STATUS>(),
        6usize,
        concat!("Size of: ", stringify!(_RASTERIZER_STATUS))
    );
    assert_eq!(
        ::std::mem::align_of::<_RASTERIZER_STATUS>(),
        2usize,
        concat!("Alignment of ", stringify!(_RASTERIZER_STATUS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RASTERIZER_STATUS>())).nSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RASTERIZER_STATUS),
            "::",
            stringify!(nSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RASTERIZER_STATUS>())).wFlags as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_RASTERIZER_STATUS),
            "::",
            stringify!(wFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RASTERIZER_STATUS>())).nLanguageID as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_RASTERIZER_STATUS),
            "::",
            stringify!(nLanguageID)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagPIXELFORMATDESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<tagPIXELFORMATDESCRIPTOR>(),
        40usize,
        concat!("Size of: ", stringify!(tagPIXELFORMATDESCRIPTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<tagPIXELFORMATDESCRIPTOR>(),
        4usize,
        concat!("Alignment of ", stringify!(tagPIXELFORMATDESCRIPTOR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPIXELFORMATDESCRIPTOR>())).nSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPIXELFORMATDESCRIPTOR),
            "::",
            stringify!(nSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPIXELFORMATDESCRIPTOR>())).nVersion as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPIXELFORMATDESCRIPTOR),
            "::",
            stringify!(nVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPIXELFORMATDESCRIPTOR>())).dwFlags as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPIXELFORMATDESCRIPTOR),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPIXELFORMATDESCRIPTOR>())).iPixelType as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPIXELFORMATDESCRIPTOR),
            "::",
            stringify!(iPixelType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPIXELFORMATDESCRIPTOR>())).cColorBits as *const _ as usize
        },
        9usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPIXELFORMATDESCRIPTOR),
            "::",
            stringify!(cColorBits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPIXELFORMATDESCRIPTOR>())).cRedBits as *const _ as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPIXELFORMATDESCRIPTOR),
            "::",
            stringify!(cRedBits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPIXELFORMATDESCRIPTOR>())).cRedShift as *const _ as usize
        },
        11usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPIXELFORMATDESCRIPTOR),
            "::",
            stringify!(cRedShift)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPIXELFORMATDESCRIPTOR>())).cGreenBits as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPIXELFORMATDESCRIPTOR),
            "::",
            stringify!(cGreenBits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPIXELFORMATDESCRIPTOR>())).cGreenShift as *const _ as usize
        },
        13usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPIXELFORMATDESCRIPTOR),
            "::",
            stringify!(cGreenShift)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPIXELFORMATDESCRIPTOR>())).cBlueBits as *const _ as usize
        },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPIXELFORMATDESCRIPTOR),
            "::",
            stringify!(cBlueBits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPIXELFORMATDESCRIPTOR>())).cBlueShift as *const _ as usize
        },
        15usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPIXELFORMATDESCRIPTOR),
            "::",
            stringify!(cBlueShift)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPIXELFORMATDESCRIPTOR>())).cAlphaBits as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPIXELFORMATDESCRIPTOR),
            "::",
            stringify!(cAlphaBits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPIXELFORMATDESCRIPTOR>())).cAlphaShift as *const _ as usize
        },
        17usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPIXELFORMATDESCRIPTOR),
            "::",
            stringify!(cAlphaShift)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPIXELFORMATDESCRIPTOR>())).cAccumBits as *const _ as usize
        },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPIXELFORMATDESCRIPTOR),
            "::",
            stringify!(cAccumBits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPIXELFORMATDESCRIPTOR>())).cAccumRedBits as *const _ as usize
        },
        19usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPIXELFORMATDESCRIPTOR),
            "::",
            stringify!(cAccumRedBits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPIXELFORMATDESCRIPTOR>())).cAccumGreenBits as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPIXELFORMATDESCRIPTOR),
            "::",
            stringify!(cAccumGreenBits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPIXELFORMATDESCRIPTOR>())).cAccumBlueBits as *const _ as usize
        },
        21usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPIXELFORMATDESCRIPTOR),
            "::",
            stringify!(cAccumBlueBits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPIXELFORMATDESCRIPTOR>())).cAccumAlphaBits as *const _
                as usize
        },
        22usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPIXELFORMATDESCRIPTOR),
            "::",
            stringify!(cAccumAlphaBits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPIXELFORMATDESCRIPTOR>())).cDepthBits as *const _ as usize
        },
        23usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPIXELFORMATDESCRIPTOR),
            "::",
            stringify!(cDepthBits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPIXELFORMATDESCRIPTOR>())).cStencilBits as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPIXELFORMATDESCRIPTOR),
            "::",
            stringify!(cStencilBits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPIXELFORMATDESCRIPTOR>())).cAuxBuffers as *const _ as usize
        },
        25usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPIXELFORMATDESCRIPTOR),
            "::",
            stringify!(cAuxBuffers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPIXELFORMATDESCRIPTOR>())).iLayerType as *const _ as usize
        },
        26usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPIXELFORMATDESCRIPTOR),
            "::",
            stringify!(iLayerType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPIXELFORMATDESCRIPTOR>())).bReserved as *const _ as usize
        },
        27usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPIXELFORMATDESCRIPTOR),
            "::",
            stringify!(bReserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPIXELFORMATDESCRIPTOR>())).dwLayerMask as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPIXELFORMATDESCRIPTOR),
            "::",
            stringify!(dwLayerMask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPIXELFORMATDESCRIPTOR>())).dwVisibleMask as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPIXELFORMATDESCRIPTOR),
            "::",
            stringify!(dwVisibleMask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPIXELFORMATDESCRIPTOR>())).dwDamageMask as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPIXELFORMATDESCRIPTOR),
            "::",
            stringify!(dwDamageMask)
        )
    );
}
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,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn CancelDC(hdc: HDC) -> BOOL;
}
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,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn CreateScalableFontResourceW(
        fdwHidden: DWORD,
        lpszFont: LPCWSTR,
        lpszFile: LPCWSTR,
        lpszPath: LPCWSTR,
    ) -> BOOL;
}
extern "C" {
    pub fn CreateSolidBrush(color: COLORREF) -> HBRUSH;
}
extern "C" {
    pub fn DeleteDC(hdc: HDC) -> BOOL;
}
extern "C" {
    pub fn DeleteMetaFile(hmf: HMETAFILE) -> BOOL;
}
extern "C" {
    pub fn DeleteObject(ho: HGDIOBJ) -> BOOL;
}
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,
    ) -> BOOL;
}
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) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn FillRgn(hdc: HDC, hrgn: HRGN, hbr: HBRUSH) -> BOOL;
}
extern "C" {
    pub fn FloodFill(
        hdc: HDC,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        color: COLORREF,
    ) -> BOOL;
}
extern "C" {
    pub fn FrameRgn(
        hdc: HDC,
        hrgn: HRGN,
        hbr: HBRUSH,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    ) -> BOOL;
}
extern "C" {
    pub fn GetROP2(hdc: HDC) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetAspectRatioFilterEx(hdc: HDC, lpsize: LPSIZE) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn GetBoundsRect(hdc: HDC, lprect: LPRECT, flags: UINT) -> UINT;
}
extern "C" {
    pub fn GetBrushOrgEx(hdc: HDC, lppt: LPPOINT) -> BOOL;
}
extern "C" {
    pub fn GetCharWidthA(hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: LPINT) -> BOOL;
}
extern "C" {
    pub fn GetCharWidthW(hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: LPINT) -> BOOL;
}
extern "C" {
    pub fn GetCharWidth32A(hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: LPINT) -> BOOL;
}
extern "C" {
    pub fn GetCharWidth32W(hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: LPINT) -> BOOL;
}
extern "C" {
    pub fn GetCharWidthFloatA(hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: PFLOAT) -> BOOL;
}
extern "C" {
    pub fn GetCharWidthFloatW(hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: PFLOAT) -> BOOL;
}
extern "C" {
    pub fn GetCharABCWidthsA(hdc: HDC, wFirst: UINT, wLast: UINT, lpABC: LPABC) -> BOOL;
}
extern "C" {
    pub fn GetCharABCWidthsW(hdc: HDC, wFirst: UINT, wLast: UINT, lpABC: LPABC) -> BOOL;
}
extern "C" {
    pub fn GetCharABCWidthsFloatA(hdc: HDC, iFirst: UINT, iLast: UINT, lpABC: LPABCFLOAT) -> BOOL;
}
extern "C" {
    pub fn GetCharABCWidthsFloatW(hdc: HDC, iFirst: UINT, iLast: UINT, lpABC: LPABCFLOAT) -> BOOL;
}
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) -> BOOL;
}
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) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn GetTextExtentPointW(
        hdc: HDC,
        lpString: LPCWSTR,
        c: ::std::os::raw::c_int,
        lpsz: LPSIZE,
    ) -> BOOL;
}
extern "C" {
    pub fn GetTextExtentPoint32A(
        hdc: HDC,
        lpString: LPCSTR,
        c: ::std::os::raw::c_int,
        psizl: LPSIZE,
    ) -> BOOL;
}
extern "C" {
    pub fn GetTextExtentPoint32W(
        hdc: HDC,
        lpString: LPCWSTR,
        c: ::std::os::raw::c_int,
        psizl: LPSIZE,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
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) -> BOOL;
}
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,
}
#[test]
fn bindgen_test_layout_tagWCRANGE() {
    assert_eq!(
        ::std::mem::size_of::<tagWCRANGE>(),
        4usize,
        concat!("Size of: ", stringify!(tagWCRANGE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagWCRANGE>(),
        2usize,
        concat!("Alignment of ", stringify!(tagWCRANGE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWCRANGE>())).wcLow as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWCRANGE),
            "::",
            stringify!(wcLow)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWCRANGE>())).cGlyphs as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWCRANGE),
            "::",
            stringify!(cGlyphs)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagGLYPHSET() {
    assert_eq!(
        ::std::mem::size_of::<tagGLYPHSET>(),
        20usize,
        concat!("Size of: ", stringify!(tagGLYPHSET))
    );
    assert_eq!(
        ::std::mem::align_of::<tagGLYPHSET>(),
        4usize,
        concat!("Alignment of ", stringify!(tagGLYPHSET))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGLYPHSET>())).cbThis as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGLYPHSET),
            "::",
            stringify!(cbThis)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGLYPHSET>())).flAccel as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGLYPHSET),
            "::",
            stringify!(flAccel)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGLYPHSET>())).cGlyphsSupported as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGLYPHSET),
            "::",
            stringify!(cGlyphsSupported)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGLYPHSET>())).cRanges as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGLYPHSET),
            "::",
            stringify!(cRanges)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGLYPHSET>())).ranges as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGLYPHSET),
            "::",
            stringify!(ranges)
        )
    );
}
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,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn GetCharWidthI(hdc: HDC, giFirst: UINT, cgi: UINT, pgi: LPWORD, piWidths: LPINT) -> BOOL;
}
extern "C" {
    pub fn GetCharABCWidthsI(hdc: HDC, giFirst: UINT, cgi: UINT, pgi: LPWORD, pabc: LPABC) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagDESIGNVECTOR {
    pub dvReserved: DWORD,
    pub dvNumAxes: DWORD,
    pub dvValues: [LONG; 16usize],
}
#[test]
fn bindgen_test_layout_tagDESIGNVECTOR() {
    assert_eq!(
        ::std::mem::size_of::<tagDESIGNVECTOR>(),
        72usize,
        concat!("Size of: ", stringify!(tagDESIGNVECTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<tagDESIGNVECTOR>(),
        4usize,
        concat!("Alignment of ", stringify!(tagDESIGNVECTOR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDESIGNVECTOR>())).dvReserved as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDESIGNVECTOR),
            "::",
            stringify!(dvReserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDESIGNVECTOR>())).dvNumAxes as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDESIGNVECTOR),
            "::",
            stringify!(dvNumAxes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDESIGNVECTOR>())).dvValues as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDESIGNVECTOR),
            "::",
            stringify!(dvValues)
        )
    );
}
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) -> BOOL;
}
extern "C" {
    pub fn RemoveFontResourceExW(name: LPCWSTR, fl: DWORD, pdv: PVOID) -> BOOL;
}
extern "C" {
    pub fn AddFontMemResourceEx(
        pFileView: PVOID,
        cjSize: DWORD,
        pvResrved: PVOID,
        pNumFonts: *mut DWORD,
    ) -> HANDLE;
}
extern "C" {
    pub fn RemoveFontMemResourceEx(h: HANDLE) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagAXISINFOA {
    pub axMinValue: LONG,
    pub axMaxValue: LONG,
    pub axAxisName: [BYTE; 16usize],
}
#[test]
fn bindgen_test_layout_tagAXISINFOA() {
    assert_eq!(
        ::std::mem::size_of::<tagAXISINFOA>(),
        24usize,
        concat!("Size of: ", stringify!(tagAXISINFOA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagAXISINFOA>(),
        4usize,
        concat!("Alignment of ", stringify!(tagAXISINFOA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAXISINFOA>())).axMinValue as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAXISINFOA),
            "::",
            stringify!(axMinValue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAXISINFOA>())).axMaxValue as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAXISINFOA),
            "::",
            stringify!(axMaxValue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAXISINFOA>())).axAxisName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAXISINFOA),
            "::",
            stringify!(axAxisName)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagAXISINFOW() {
    assert_eq!(
        ::std::mem::size_of::<tagAXISINFOW>(),
        40usize,
        concat!("Size of: ", stringify!(tagAXISINFOW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagAXISINFOW>(),
        4usize,
        concat!("Alignment of ", stringify!(tagAXISINFOW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAXISINFOW>())).axMinValue as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAXISINFOW),
            "::",
            stringify!(axMinValue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAXISINFOW>())).axMaxValue as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAXISINFOW),
            "::",
            stringify!(axMaxValue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAXISINFOW>())).axAxisName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAXISINFOW),
            "::",
            stringify!(axAxisName)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagAXESLISTA() {
    assert_eq!(
        ::std::mem::size_of::<tagAXESLISTA>(),
        392usize,
        concat!("Size of: ", stringify!(tagAXESLISTA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagAXESLISTA>(),
        4usize,
        concat!("Alignment of ", stringify!(tagAXESLISTA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAXESLISTA>())).axlReserved as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAXESLISTA),
            "::",
            stringify!(axlReserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAXESLISTA>())).axlNumAxes as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAXESLISTA),
            "::",
            stringify!(axlNumAxes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAXESLISTA>())).axlAxisInfo as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAXESLISTA),
            "::",
            stringify!(axlAxisInfo)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagAXESLISTW() {
    assert_eq!(
        ::std::mem::size_of::<tagAXESLISTW>(),
        648usize,
        concat!("Size of: ", stringify!(tagAXESLISTW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagAXESLISTW>(),
        4usize,
        concat!("Alignment of ", stringify!(tagAXESLISTW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAXESLISTW>())).axlReserved as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAXESLISTW),
            "::",
            stringify!(axlReserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAXESLISTW>())).axlNumAxes as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAXESLISTW),
            "::",
            stringify!(axlNumAxes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAXESLISTW>())).axlAxisInfo as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAXESLISTW),
            "::",
            stringify!(axlAxisInfo)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagENUMLOGFONTEXDVA() {
    assert_eq!(
        ::std::mem::size_of::<tagENUMLOGFONTEXDVA>(),
        260usize,
        concat!("Size of: ", stringify!(tagENUMLOGFONTEXDVA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagENUMLOGFONTEXDVA>(),
        4usize,
        concat!("Alignment of ", stringify!(tagENUMLOGFONTEXDVA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagENUMLOGFONTEXDVA>())).elfEnumLogfontEx as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENUMLOGFONTEXDVA),
            "::",
            stringify!(elfEnumLogfontEx)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagENUMLOGFONTEXDVA>())).elfDesignVector as *const _ as usize
        },
        188usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENUMLOGFONTEXDVA),
            "::",
            stringify!(elfDesignVector)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagENUMLOGFONTEXDVW() {
    assert_eq!(
        ::std::mem::size_of::<tagENUMLOGFONTEXDVW>(),
        420usize,
        concat!("Size of: ", stringify!(tagENUMLOGFONTEXDVW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagENUMLOGFONTEXDVW>(),
        4usize,
        concat!("Alignment of ", stringify!(tagENUMLOGFONTEXDVW))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagENUMLOGFONTEXDVW>())).elfEnumLogfontEx as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENUMLOGFONTEXDVW),
            "::",
            stringify!(elfEnumLogfontEx)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagENUMLOGFONTEXDVW>())).elfDesignVector as *const _ as usize
        },
        348usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENUMLOGFONTEXDVW),
            "::",
            stringify!(elfDesignVector)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagENUMTEXTMETRICA() {
    assert_eq!(
        ::std::mem::size_of::<tagENUMTEXTMETRICA>(),
        488usize,
        concat!("Size of: ", stringify!(tagENUMTEXTMETRICA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagENUMTEXTMETRICA>(),
        4usize,
        concat!("Alignment of ", stringify!(tagENUMTEXTMETRICA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagENUMTEXTMETRICA>())).etmNewTextMetricEx as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENUMTEXTMETRICA),
            "::",
            stringify!(etmNewTextMetricEx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENUMTEXTMETRICA>())).etmAxesList as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENUMTEXTMETRICA),
            "::",
            stringify!(etmAxesList)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagENUMTEXTMETRICW() {
    assert_eq!(
        ::std::mem::size_of::<tagENUMTEXTMETRICW>(),
        748usize,
        concat!("Size of: ", stringify!(tagENUMTEXTMETRICW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagENUMTEXTMETRICW>(),
        4usize,
        concat!("Alignment of ", stringify!(tagENUMTEXTMETRICW))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagENUMTEXTMETRICW>())).etmNewTextMetricEx as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENUMTEXTMETRICW),
            "::",
            stringify!(etmNewTextMetricEx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagENUMTEXTMETRICW>())).etmAxesList as *const _ as usize },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(tagENUMTEXTMETRICW),
            "::",
            stringify!(etmAxesList)
        )
    );
}
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) -> BOOL;
}
extern "C" {
    pub fn GetViewportOrgEx(hdc: HDC, lppoint: LPPOINT) -> BOOL;
}
extern "C" {
    pub fn GetWindowExtEx(hdc: HDC, lpsize: LPSIZE) -> BOOL;
}
extern "C" {
    pub fn GetWindowOrgEx(hdc: HDC, lppoint: LPPOINT) -> BOOL;
}
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) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn LineTo(hdc: HDC, x: ::std::os::raw::c_int, y: ::std::os::raw::c_int) -> BOOL;
}
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,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn PlayMetaFile(hdc: HDC, hmf: HMETAFILE) -> BOOL;
}
extern "C" {
    pub fn PaintRgn(hdc: HDC, hrgn: HRGN) -> BOOL;
}
extern "C" {
    pub fn PolyPolygon(
        hdc: HDC,
        apt: *const POINT,
        asz: *const INT,
        csz: ::std::os::raw::c_int,
    ) -> BOOL;
}
extern "C" {
    pub fn PtInRegion(hrgn: HRGN, x: ::std::os::raw::c_int, y: ::std::os::raw::c_int) -> BOOL;
}
extern "C" {
    pub fn PtVisible(hdc: HDC, x: ::std::os::raw::c_int, y: ::std::os::raw::c_int) -> BOOL;
}
extern "C" {
    pub fn RectInRegion(hrgn: HRGN, lprect: *const RECT) -> BOOL;
}
extern "C" {
    pub fn RectVisible(hdc: HDC, lprect: *const RECT) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn RestoreDC(hdc: HDC, nSavedDC: ::std::os::raw::c_int) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn RemoveFontResourceW(lpFileName: LPCWSTR) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn ResizePalette(hpal: HPALETTE, n: UINT) -> BOOL;
}
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: BOOL) -> 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,
    ) -> BOOL;
}
extern "C" {
    pub fn SetPixelFormat(
        hdc: HDC,
        format: ::std::os::raw::c_int,
        ppfd: *const PIXELFORMATDESCRIPTOR,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn UpdateColors(hdc: HDC) -> BOOL;
}
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,
}
#[test]
fn bindgen_test_layout__TRIVERTEX() {
    assert_eq!(
        ::std::mem::size_of::<_TRIVERTEX>(),
        16usize,
        concat!("Size of: ", stringify!(_TRIVERTEX))
    );
    assert_eq!(
        ::std::mem::align_of::<_TRIVERTEX>(),
        4usize,
        concat!("Alignment of ", stringify!(_TRIVERTEX))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TRIVERTEX>())).x as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRIVERTEX),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TRIVERTEX>())).y as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRIVERTEX),
            "::",
            stringify!(y)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TRIVERTEX>())).Red as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRIVERTEX),
            "::",
            stringify!(Red)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TRIVERTEX>())).Green as *const _ as usize },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRIVERTEX),
            "::",
            stringify!(Green)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TRIVERTEX>())).Blue as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRIVERTEX),
            "::",
            stringify!(Blue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TRIVERTEX>())).Alpha as *const _ as usize },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(_TRIVERTEX),
            "::",
            stringify!(Alpha)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__GRADIENT_TRIANGLE() {
    assert_eq!(
        ::std::mem::size_of::<_GRADIENT_TRIANGLE>(),
        12usize,
        concat!("Size of: ", stringify!(_GRADIENT_TRIANGLE))
    );
    assert_eq!(
        ::std::mem::align_of::<_GRADIENT_TRIANGLE>(),
        4usize,
        concat!("Alignment of ", stringify!(_GRADIENT_TRIANGLE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GRADIENT_TRIANGLE>())).Vertex1 as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_GRADIENT_TRIANGLE),
            "::",
            stringify!(Vertex1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GRADIENT_TRIANGLE>())).Vertex2 as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_GRADIENT_TRIANGLE),
            "::",
            stringify!(Vertex2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GRADIENT_TRIANGLE>())).Vertex3 as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_GRADIENT_TRIANGLE),
            "::",
            stringify!(Vertex3)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__GRADIENT_RECT() {
    assert_eq!(
        ::std::mem::size_of::<_GRADIENT_RECT>(),
        8usize,
        concat!("Size of: ", stringify!(_GRADIENT_RECT))
    );
    assert_eq!(
        ::std::mem::align_of::<_GRADIENT_RECT>(),
        4usize,
        concat!("Alignment of ", stringify!(_GRADIENT_RECT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GRADIENT_RECT>())).UpperLeft as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_GRADIENT_RECT),
            "::",
            stringify!(UpperLeft)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GRADIENT_RECT>())).LowerRight as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_GRADIENT_RECT),
            "::",
            stringify!(LowerRight)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__BLENDFUNCTION() {
    assert_eq!(
        ::std::mem::size_of::<_BLENDFUNCTION>(),
        4usize,
        concat!("Size of: ", stringify!(_BLENDFUNCTION))
    );
    assert_eq!(
        ::std::mem::align_of::<_BLENDFUNCTION>(),
        1usize,
        concat!("Alignment of ", stringify!(_BLENDFUNCTION))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BLENDFUNCTION>())).BlendOp as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BLENDFUNCTION),
            "::",
            stringify!(BlendOp)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BLENDFUNCTION>())).BlendFlags as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_BLENDFUNCTION),
            "::",
            stringify!(BlendFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BLENDFUNCTION>())).SourceConstantAlpha as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_BLENDFUNCTION),
            "::",
            stringify!(SourceConstantAlpha)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BLENDFUNCTION>())).AlphaFormat as *const _ as usize },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(_BLENDFUNCTION),
            "::",
            stringify!(AlphaFormat)
        )
    );
}
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,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn GradientFill(
        hdc: HDC,
        pVertex: PTRIVERTEX,
        nVertex: ULONG,
        pMesh: PVOID,
        nMesh: ULONG,
        ulMode: ULONG,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn GdiGradientFill(
        hdc: HDC,
        pVertex: PTRIVERTEX,
        nVertex: ULONG,
        pMesh: PVOID,
        nCount: ULONG,
        ulMode: ULONG,
    ) -> BOOL;
}
extern "C" {
    pub fn PlayMetaFileRecord(
        hdc: HDC,
        lpHandleTable: LPHANDLETABLE,
        lpMR: LPMETARECORD,
        noObjs: UINT,
    ) -> BOOL;
}
pub type MFENUMPROC = ::std::option::Option<
    unsafe extern "C" fn(
        hdc: HDC,
        lpht: *mut HANDLETABLE,
        lpMR: *mut METARECORD,
        nObj: ::std::os::raw::c_int,
        param: LPARAM,
    ) -> ::std::os::raw::c_int,
>;
extern "C" {
    pub fn EnumMetaFile(hdc: HDC, hmf: HMETAFILE, proc_: MFENUMPROC, param: LPARAM) -> BOOL;
}
pub type ENHMFENUMPROC = ::std::option::Option<
    unsafe extern "C" fn(
        hdc: HDC,
        lpht: *mut HANDLETABLE,
        lpmr: *const ENHMETARECORD,
        nHandles: ::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) -> BOOL;
}
extern "C" {
    pub fn EnumEnhMetaFile(
        hdc: HDC,
        hmf: HENHMETAFILE,
        proc_: ENHMFENUMPROC,
        param: LPVOID,
        lpRect: *const RECT,
    ) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn PlayEnhMetaFileRecord(
        hdc: HDC,
        pht: LPHANDLETABLE,
        pmr: *const ENHMETARECORD,
        cht: UINT,
    ) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn GetTextMetricsA(hdc: HDC, lptm: LPTEXTMETRICA) -> BOOL;
}
extern "C" {
    pub fn GetTextMetricsW(hdc: HDC, lptm: LPTEXTMETRICW) -> BOOL;
}
#[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,
}
#[test]
fn bindgen_test_layout_tagDIBSECTION() {
    assert_eq!(
        ::std::mem::size_of::<tagDIBSECTION>(),
        104usize,
        concat!("Size of: ", stringify!(tagDIBSECTION))
    );
    assert_eq!(
        ::std::mem::align_of::<tagDIBSECTION>(),
        8usize,
        concat!("Alignment of ", stringify!(tagDIBSECTION))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDIBSECTION>())).dsBm as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDIBSECTION),
            "::",
            stringify!(dsBm)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDIBSECTION>())).dsBmih as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDIBSECTION),
            "::",
            stringify!(dsBmih)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDIBSECTION>())).dsBitfields as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDIBSECTION),
            "::",
            stringify!(dsBitfields)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDIBSECTION>())).dshSection as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDIBSECTION),
            "::",
            stringify!(dshSection)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDIBSECTION>())).dsOffset as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDIBSECTION),
            "::",
            stringify!(dsOffset)
        )
    );
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn PolyPolyline(hdc: HDC, apt: *const POINT, asz: *const DWORD, csz: DWORD) -> BOOL;
}
extern "C" {
    pub fn GetWorldTransform(hdc: HDC, lpxf: LPXFORM) -> BOOL;
}
extern "C" {
    pub fn SetWorldTransform(hdc: HDC, lpxf: *const XFORM) -> BOOL;
}
extern "C" {
    pub fn ModifyWorldTransform(hdc: HDC, lpxf: *const XFORM, mode: DWORD) -> BOOL;
}
extern "C" {
    pub fn CombineTransform(lpxfOut: LPXFORM, lpxf1: *const XFORM, lpxf2: *const XFORM) -> BOOL;
}
extern "C" {
    pub fn CreateDIBSection(
        hdc: HDC,
        pbmi: *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,
}
#[test]
fn bindgen_test_layout_tagCOLORADJUSTMENT() {
    assert_eq!(
        ::std::mem::size_of::<tagCOLORADJUSTMENT>(),
        24usize,
        concat!("Size of: ", stringify!(tagCOLORADJUSTMENT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCOLORADJUSTMENT>(),
        2usize,
        concat!("Alignment of ", stringify!(tagCOLORADJUSTMENT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOLORADJUSTMENT>())).caSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOLORADJUSTMENT),
            "::",
            stringify!(caSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOLORADJUSTMENT>())).caFlags as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOLORADJUSTMENT),
            "::",
            stringify!(caFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagCOLORADJUSTMENT>())).caIlluminantIndex as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOLORADJUSTMENT),
            "::",
            stringify!(caIlluminantIndex)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOLORADJUSTMENT>())).caRedGamma as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOLORADJUSTMENT),
            "::",
            stringify!(caRedGamma)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOLORADJUSTMENT>())).caGreenGamma as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOLORADJUSTMENT),
            "::",
            stringify!(caGreenGamma)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOLORADJUSTMENT>())).caBlueGamma as *const _ as usize },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOLORADJUSTMENT),
            "::",
            stringify!(caBlueGamma)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagCOLORADJUSTMENT>())).caReferenceBlack as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOLORADJUSTMENT),
            "::",
            stringify!(caReferenceBlack)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagCOLORADJUSTMENT>())).caReferenceWhite as *const _ as usize
        },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOLORADJUSTMENT),
            "::",
            stringify!(caReferenceWhite)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOLORADJUSTMENT>())).caContrast as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOLORADJUSTMENT),
            "::",
            stringify!(caContrast)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOLORADJUSTMENT>())).caBrightness as *const _ as usize },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOLORADJUSTMENT),
            "::",
            stringify!(caBrightness)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagCOLORADJUSTMENT>())).caColorfulness as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOLORADJUSTMENT),
            "::",
            stringify!(caColorfulness)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagCOLORADJUSTMENT>())).caRedGreenTint as *const _ as usize
        },
        22usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOLORADJUSTMENT),
            "::",
            stringify!(caRedGreenTint)
        )
    );
}
pub type COLORADJUSTMENT = tagCOLORADJUSTMENT;
pub type PCOLORADJUSTMENT = *mut tagCOLORADJUSTMENT;
pub type LPCOLORADJUSTMENT = *mut tagCOLORADJUSTMENT;
extern "C" {
    pub fn SetColorAdjustment(hdc: HDC, lpca: *const COLORADJUSTMENT) -> BOOL;
}
extern "C" {
    pub fn GetColorAdjustment(hdc: HDC, lpca: LPCOLORADJUSTMENT) -> BOOL;
}
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) -> BOOL>;
#[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,
}
#[test]
fn bindgen_test_layout__DOCINFOA() {
    assert_eq!(
        ::std::mem::size_of::<_DOCINFOA>(),
        40usize,
        concat!("Size of: ", stringify!(_DOCINFOA))
    );
    assert_eq!(
        ::std::mem::align_of::<_DOCINFOA>(),
        8usize,
        concat!("Alignment of ", stringify!(_DOCINFOA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOCINFOA>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOCINFOA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOCINFOA>())).lpszDocName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOCINFOA),
            "::",
            stringify!(lpszDocName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOCINFOA>())).lpszOutput as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOCINFOA),
            "::",
            stringify!(lpszOutput)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOCINFOA>())).lpszDatatype as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOCINFOA),
            "::",
            stringify!(lpszDatatype)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOCINFOA>())).fwType as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOCINFOA),
            "::",
            stringify!(fwType)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__DOCINFOW() {
    assert_eq!(
        ::std::mem::size_of::<_DOCINFOW>(),
        40usize,
        concat!("Size of: ", stringify!(_DOCINFOW))
    );
    assert_eq!(
        ::std::mem::align_of::<_DOCINFOW>(),
        8usize,
        concat!("Alignment of ", stringify!(_DOCINFOW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOCINFOW>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOCINFOW),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOCINFOW>())).lpszDocName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOCINFOW),
            "::",
            stringify!(lpszDocName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOCINFOW>())).lpszOutput as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOCINFOW),
            "::",
            stringify!(lpszOutput)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOCINFOW>())).lpszDatatype as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOCINFOW),
            "::",
            stringify!(lpszDatatype)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOCINFOW>())).fwType as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOCINFOW),
            "::",
            stringify!(fwType)
        )
    );
}
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, proc_: ABORTPROC) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn AbortPath(hdc: HDC) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn BeginPath(hdc: HDC) -> BOOL;
}
extern "C" {
    pub fn CloseFigure(hdc: HDC) -> BOOL;
}
extern "C" {
    pub fn EndPath(hdc: HDC) -> BOOL;
}
extern "C" {
    pub fn FillPath(hdc: HDC) -> BOOL;
}
extern "C" {
    pub fn FlattenPath(hdc: HDC) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn SelectClipPath(hdc: HDC, mode: ::std::os::raw::c_int) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn StrokeAndFillPath(hdc: HDC) -> BOOL;
}
extern "C" {
    pub fn StrokePath(hdc: HDC) -> BOOL;
}
extern "C" {
    pub fn WidenPath(hdc: HDC) -> BOOL;
}
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) -> BOOL;
}
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,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn PolyTextOutA(hdc: HDC, ppt: *const POLYTEXTA, nstrings: ::std::os::raw::c_int) -> BOOL;
}
extern "C" {
    pub fn PolyTextOutW(hdc: HDC, ppt: *const POLYTEXTW, nstrings: ::std::os::raw::c_int) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn LPtoDP(hdc: HDC, lppt: LPPOINT, c: ::std::os::raw::c_int) -> BOOL;
}
extern "C" {
    pub fn Polygon(hdc: HDC, apt: *const POINT, cpt: ::std::os::raw::c_int) -> BOOL;
}
extern "C" {
    pub fn Polyline(hdc: HDC, apt: *const POINT, cpt: ::std::os::raw::c_int) -> BOOL;
}
extern "C" {
    pub fn PolyBezier(hdc: HDC, apt: *const POINT, cpt: DWORD) -> BOOL;
}
extern "C" {
    pub fn PolyBezierTo(hdc: HDC, apt: *const POINT, cpt: DWORD) -> BOOL;
}
extern "C" {
    pub fn PolylineTo(hdc: HDC, apt: *const POINT, cpt: DWORD) -> BOOL;
}
extern "C" {
    pub fn SetViewportExtEx(
        hdc: HDC,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        lpsz: LPSIZE,
    ) -> BOOL;
}
extern "C" {
    pub fn SetViewportOrgEx(
        hdc: HDC,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        lppt: LPPOINT,
    ) -> BOOL;
}
extern "C" {
    pub fn SetWindowExtEx(
        hdc: HDC,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        lpsz: LPSIZE,
    ) -> BOOL;
}
extern "C" {
    pub fn SetWindowOrgEx(
        hdc: HDC,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        lppt: LPPOINT,
    ) -> BOOL;
}
extern "C" {
    pub fn OffsetViewportOrgEx(
        hdc: HDC,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        lppt: LPPOINT,
    ) -> BOOL;
}
extern "C" {
    pub fn OffsetWindowOrgEx(
        hdc: HDC,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        lppt: LPPOINT,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn SetBitmapDimensionEx(
        hbm: HBITMAP,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        lpsz: LPSIZE,
    ) -> BOOL;
}
extern "C" {
    pub fn SetBrushOrgEx(
        hdc: HDC,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        lppt: LPPOINT,
    ) -> BOOL;
}
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,
}
#[test]
fn bindgen_test_layout_tagKERNINGPAIR() {
    assert_eq!(
        ::std::mem::size_of::<tagKERNINGPAIR>(),
        8usize,
        concat!("Size of: ", stringify!(tagKERNINGPAIR))
    );
    assert_eq!(
        ::std::mem::align_of::<tagKERNINGPAIR>(),
        4usize,
        concat!("Alignment of ", stringify!(tagKERNINGPAIR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagKERNINGPAIR>())).wFirst as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagKERNINGPAIR),
            "::",
            stringify!(wFirst)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagKERNINGPAIR>())).wSecond as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagKERNINGPAIR),
            "::",
            stringify!(wSecond)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagKERNINGPAIR>())).iKernAmount as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagKERNINGPAIR),
            "::",
            stringify!(iKernAmount)
        )
    );
}
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) -> BOOL;
}
extern "C" {
    pub fn FixBrushOrgEx(
        hdc: HDC,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        ptl: LPPOINT,
    ) -> BOOL;
}
extern "C" {
    pub fn UnrealizeObject(h: HGDIOBJ) -> BOOL;
}
extern "C" {
    pub fn GdiFlush() -> BOOL;
}
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: LPRGBTRIPLE,
        dlpBuffer: LPVOID,
        nCount: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetColorSpace(hdc: HDC) -> HCOLORSPACE;
}
extern "C" {
    pub fn GetLogColorSpaceA(
        hColorSpace: HCOLORSPACE,
        lpBuffer: LPLOGCOLORSPACEA,
        nSize: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetLogColorSpaceW(
        hColorSpace: HCOLORSPACE,
        lpBuffer: LPLOGCOLORSPACEW,
        nSize: DWORD,
    ) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn GetICMProfileA(hdc: HDC, pBufSize: LPDWORD, pszFilename: LPSTR) -> BOOL;
}
extern "C" {
    pub fn GetICMProfileW(hdc: HDC, pBufSize: LPDWORD, pszFilename: LPWSTR) -> BOOL;
}
extern "C" {
    pub fn SetICMProfileA(hdc: HDC, lpFileName: LPSTR) -> BOOL;
}
extern "C" {
    pub fn SetICMProfileW(hdc: HDC, lpFileName: LPWSTR) -> BOOL;
}
extern "C" {
    pub fn GetDeviceGammaRamp(hdc: HDC, lpRamp: LPVOID) -> BOOL;
}
extern "C" {
    pub fn SetDeviceGammaRamp(hdc: HDC, lpRamp: LPVOID) -> BOOL;
}
extern "C" {
    pub fn ColorMatchToTarget(hdc: HDC, hdcTarget: HDC, action: DWORD) -> BOOL;
}
extern "C" {
    pub fn EnumICMProfilesA(hdc: HDC, proc_: ICMENUMPROCA, param: LPARAM) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn EnumICMProfilesW(hdc: HDC, proc_: ICMENUMPROCW, param: LPARAM) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn UpdateICMRegKeyA(
        reserved: DWORD,
        lpszCMID: LPSTR,
        lpszFileName: LPSTR,
        command: UINT,
    ) -> BOOL;
}
extern "C" {
    pub fn UpdateICMRegKeyW(
        reserved: DWORD,
        lpszCMID: LPWSTR,
        lpszFileName: LPWSTR,
        command: UINT,
    ) -> BOOL;
}
extern "C" {
    pub fn ColorCorrectPalette(hdc: HDC, hPal: HPALETTE, deFirst: DWORD, num: DWORD) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMR {
    pub iType: DWORD,
    pub nSize: DWORD,
}
#[test]
fn bindgen_test_layout_tagEMR() {
    assert_eq!(
        ::std::mem::size_of::<tagEMR>(),
        8usize,
        concat!("Size of: ", stringify!(tagEMR))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMR>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMR>())).iType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMR),
            "::",
            stringify!(iType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMR>())).nSize as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMR),
            "::",
            stringify!(nSize)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMRTEXT() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRTEXT>(),
        40usize,
        concat!("Size of: ", stringify!(tagEMRTEXT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRTEXT>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRTEXT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRTEXT>())).ptlReference as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRTEXT),
            "::",
            stringify!(ptlReference)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRTEXT>())).nChars as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRTEXT),
            "::",
            stringify!(nChars)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRTEXT>())).offString as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRTEXT),
            "::",
            stringify!(offString)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRTEXT>())).fOptions as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRTEXT),
            "::",
            stringify!(fOptions)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRTEXT>())).rcl as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRTEXT),
            "::",
            stringify!(rcl)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRTEXT>())).offDx as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRTEXT),
            "::",
            stringify!(offDx)
        )
    );
}
pub type EMRTEXT = tagEMRTEXT;
pub type PEMRTEXT = *mut tagEMRTEXT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagABORTPATH {
    pub emr: EMR,
}
#[test]
fn bindgen_test_layout_tagABORTPATH() {
    assert_eq!(
        ::std::mem::size_of::<tagABORTPATH>(),
        8usize,
        concat!("Size of: ", stringify!(tagABORTPATH))
    );
    assert_eq!(
        ::std::mem::align_of::<tagABORTPATH>(),
        4usize,
        concat!("Alignment of ", stringify!(tagABORTPATH))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagABORTPATH>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagABORTPATH),
            "::",
            stringify!(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,
}
#[test]
fn bindgen_test_layout_tagEMRSELECTCLIPPATH() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRSELECTCLIPPATH>(),
        12usize,
        concat!("Size of: ", stringify!(tagEMRSELECTCLIPPATH))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRSELECTCLIPPATH>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRSELECTCLIPPATH))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSELECTCLIPPATH>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSELECTCLIPPATH),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSELECTCLIPPATH>())).iMode as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSELECTCLIPPATH),
            "::",
            stringify!(iMode)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMRSETMITERLIMIT() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRSETMITERLIMIT>(),
        12usize,
        concat!("Size of: ", stringify!(tagEMRSETMITERLIMIT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRSETMITERLIMIT>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRSETMITERLIMIT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETMITERLIMIT>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETMITERLIMIT),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETMITERLIMIT>())).eMiterLimit as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETMITERLIMIT),
            "::",
            stringify!(eMiterLimit)
        )
    );
}
pub type EMRSETMITERLIMIT = tagEMRSETMITERLIMIT;
pub type PEMRSETMITERLIMIT = *mut tagEMRSETMITERLIMIT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRRESTOREDC {
    pub emr: EMR,
    pub iRelative: LONG,
}
#[test]
fn bindgen_test_layout_tagEMRRESTOREDC() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRRESTOREDC>(),
        12usize,
        concat!("Size of: ", stringify!(tagEMRRESTOREDC))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRRESTOREDC>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRRESTOREDC))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRRESTOREDC>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRRESTOREDC),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRRESTOREDC>())).iRelative as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRRESTOREDC),
            "::",
            stringify!(iRelative)
        )
    );
}
pub type EMRRESTOREDC = tagEMRRESTOREDC;
pub type PEMRRESTOREDC = *mut tagEMRRESTOREDC;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRSETARCDIRECTION {
    pub emr: EMR,
    pub iArcDirection: DWORD,
}
#[test]
fn bindgen_test_layout_tagEMRSETARCDIRECTION() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRSETARCDIRECTION>(),
        12usize,
        concat!("Size of: ", stringify!(tagEMRSETARCDIRECTION))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRSETARCDIRECTION>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRSETARCDIRECTION))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETARCDIRECTION>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETARCDIRECTION),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagEMRSETARCDIRECTION>())).iArcDirection as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETARCDIRECTION),
            "::",
            stringify!(iArcDirection)
        )
    );
}
pub type EMRSETARCDIRECTION = tagEMRSETARCDIRECTION;
pub type PEMRSETARCDIRECTION = *mut tagEMRSETARCDIRECTION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRSETMAPPERFLAGS {
    pub emr: EMR,
    pub dwFlags: DWORD,
}
#[test]
fn bindgen_test_layout_tagEMRSETMAPPERFLAGS() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRSETMAPPERFLAGS>(),
        12usize,
        concat!("Size of: ", stringify!(tagEMRSETMAPPERFLAGS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRSETMAPPERFLAGS>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRSETMAPPERFLAGS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETMAPPERFLAGS>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETMAPPERFLAGS),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETMAPPERFLAGS>())).dwFlags as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETMAPPERFLAGS),
            "::",
            stringify!(dwFlags)
        )
    );
}
pub type EMRSETMAPPERFLAGS = tagEMRSETMAPPERFLAGS;
pub type PEMRSETMAPPERFLAGS = *mut tagEMRSETMAPPERFLAGS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRSETTEXTCOLOR {
    pub emr: EMR,
    pub crColor: COLORREF,
}
#[test]
fn bindgen_test_layout_tagEMRSETTEXTCOLOR() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRSETTEXTCOLOR>(),
        12usize,
        concat!("Size of: ", stringify!(tagEMRSETTEXTCOLOR))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRSETTEXTCOLOR>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRSETTEXTCOLOR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETTEXTCOLOR>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETTEXTCOLOR),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETTEXTCOLOR>())).crColor as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETTEXTCOLOR),
            "::",
            stringify!(crColor)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMRSELECTOBJECT() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRSELECTOBJECT>(),
        12usize,
        concat!("Size of: ", stringify!(tagEMRSELECTOBJECT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRSELECTOBJECT>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRSELECTOBJECT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSELECTOBJECT>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSELECTOBJECT),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSELECTOBJECT>())).ihObject as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSELECTOBJECT),
            "::",
            stringify!(ihObject)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMRSELECTPALETTE() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRSELECTPALETTE>(),
        12usize,
        concat!("Size of: ", stringify!(tagEMRSELECTPALETTE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRSELECTPALETTE>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRSELECTPALETTE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSELECTPALETTE>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSELECTPALETTE),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSELECTPALETTE>())).ihPal as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSELECTPALETTE),
            "::",
            stringify!(ihPal)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMRRESIZEPALETTE() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRRESIZEPALETTE>(),
        16usize,
        concat!("Size of: ", stringify!(tagEMRRESIZEPALETTE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRRESIZEPALETTE>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRRESIZEPALETTE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRRESIZEPALETTE>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRRESIZEPALETTE),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRRESIZEPALETTE>())).ihPal as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRRESIZEPALETTE),
            "::",
            stringify!(ihPal)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRRESIZEPALETTE>())).cEntries as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRRESIZEPALETTE),
            "::",
            stringify!(cEntries)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagEMRSETPALETTEENTRIES() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRSETPALETTEENTRIES>(),
        24usize,
        concat!("Size of: ", stringify!(tagEMRSETPALETTEENTRIES))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRSETPALETTEENTRIES>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRSETPALETTEENTRIES))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETPALETTEENTRIES>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETPALETTEENTRIES),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETPALETTEENTRIES>())).ihPal as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETPALETTEENTRIES),
            "::",
            stringify!(ihPal)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETPALETTEENTRIES>())).iStart as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETPALETTEENTRIES),
            "::",
            stringify!(iStart)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagEMRSETPALETTEENTRIES>())).cEntries as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETPALETTEENTRIES),
            "::",
            stringify!(cEntries)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagEMRSETPALETTEENTRIES>())).aPalEntries as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETPALETTEENTRIES),
            "::",
            stringify!(aPalEntries)
        )
    );
}
pub type EMRSETPALETTEENTRIES = tagEMRSETPALETTEENTRIES;
pub type PEMRSETPALETTEENTRIES = *mut tagEMRSETPALETTEENTRIES;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRSETCOLORADJUSTMENT {
    pub emr: EMR,
    pub ColorAdjustment: COLORADJUSTMENT,
}
#[test]
fn bindgen_test_layout_tagEMRSETCOLORADJUSTMENT() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRSETCOLORADJUSTMENT>(),
        32usize,
        concat!("Size of: ", stringify!(tagEMRSETCOLORADJUSTMENT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRSETCOLORADJUSTMENT>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRSETCOLORADJUSTMENT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETCOLORADJUSTMENT>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETCOLORADJUSTMENT),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagEMRSETCOLORADJUSTMENT>())).ColorAdjustment as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETCOLORADJUSTMENT),
            "::",
            stringify!(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],
}
#[test]
fn bindgen_test_layout_tagEMRGDICOMMENT() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRGDICOMMENT>(),
        16usize,
        concat!("Size of: ", stringify!(tagEMRGDICOMMENT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRGDICOMMENT>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRGDICOMMENT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRGDICOMMENT>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRGDICOMMENT),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRGDICOMMENT>())).cbData as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRGDICOMMENT),
            "::",
            stringify!(cbData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRGDICOMMENT>())).Data as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRGDICOMMENT),
            "::",
            stringify!(Data)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMREOF() {
    assert_eq!(
        ::std::mem::size_of::<tagEMREOF>(),
        20usize,
        concat!("Size of: ", stringify!(tagEMREOF))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMREOF>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMREOF))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMREOF>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREOF),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMREOF>())).nPalEntries as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREOF),
            "::",
            stringify!(nPalEntries)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMREOF>())).offPalEntries as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREOF),
            "::",
            stringify!(offPalEntries)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMREOF>())).nSizeLast as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREOF),
            "::",
            stringify!(nSizeLast)
        )
    );
}
pub type EMREOF = tagEMREOF;
pub type PEMREOF = *mut tagEMREOF;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRLINETO {
    pub emr: EMR,
    pub ptl: POINTL,
}
#[test]
fn bindgen_test_layout_tagEMRLINETO() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRLINETO>(),
        16usize,
        concat!("Size of: ", stringify!(tagEMRLINETO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRLINETO>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRLINETO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRLINETO>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRLINETO),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRLINETO>())).ptl as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRLINETO),
            "::",
            stringify!(ptl)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMROFFSETCLIPRGN() {
    assert_eq!(
        ::std::mem::size_of::<tagEMROFFSETCLIPRGN>(),
        16usize,
        concat!("Size of: ", stringify!(tagEMROFFSETCLIPRGN))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMROFFSETCLIPRGN>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMROFFSETCLIPRGN))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMROFFSETCLIPRGN>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMROFFSETCLIPRGN),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMROFFSETCLIPRGN>())).ptlOffset as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMROFFSETCLIPRGN),
            "::",
            stringify!(ptlOffset)
        )
    );
}
pub type EMROFFSETCLIPRGN = tagEMROFFSETCLIPRGN;
pub type PEMROFFSETCLIPRGN = *mut tagEMROFFSETCLIPRGN;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRFILLPATH {
    pub emr: EMR,
    pub rclBounds: RECTL,
}
#[test]
fn bindgen_test_layout_tagEMRFILLPATH() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRFILLPATH>(),
        24usize,
        concat!("Size of: ", stringify!(tagEMRFILLPATH))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRFILLPATH>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRFILLPATH))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRFILLPATH>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRFILLPATH),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRFILLPATH>())).rclBounds as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRFILLPATH),
            "::",
            stringify!(rclBounds)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMREXCLUDECLIPRECT() {
    assert_eq!(
        ::std::mem::size_of::<tagEMREXCLUDECLIPRECT>(),
        24usize,
        concat!("Size of: ", stringify!(tagEMREXCLUDECLIPRECT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMREXCLUDECLIPRECT>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMREXCLUDECLIPRECT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMREXCLUDECLIPRECT>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREXCLUDECLIPRECT),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMREXCLUDECLIPRECT>())).rclClip as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREXCLUDECLIPRECT),
            "::",
            stringify!(rclClip)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMRSETVIEWPORTORGEX() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRSETVIEWPORTORGEX>(),
        16usize,
        concat!("Size of: ", stringify!(tagEMRSETVIEWPORTORGEX))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRSETVIEWPORTORGEX>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRSETVIEWPORTORGEX))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETVIEWPORTORGEX>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETVIEWPORTORGEX),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagEMRSETVIEWPORTORGEX>())).ptlOrigin as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETVIEWPORTORGEX),
            "::",
            stringify!(ptlOrigin)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMRSETVIEWPORTEXTEX() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRSETVIEWPORTEXTEX>(),
        16usize,
        concat!("Size of: ", stringify!(tagEMRSETVIEWPORTEXTEX))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRSETVIEWPORTEXTEX>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRSETVIEWPORTEXTEX))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETVIEWPORTEXTEX>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETVIEWPORTEXTEX),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagEMRSETVIEWPORTEXTEX>())).szlExtent as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETVIEWPORTEXTEX),
            "::",
            stringify!(szlExtent)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMRSCALEVIEWPORTEXTEX() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRSCALEVIEWPORTEXTEX>(),
        24usize,
        concat!("Size of: ", stringify!(tagEMRSCALEVIEWPORTEXTEX))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRSCALEVIEWPORTEXTEX>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRSCALEVIEWPORTEXTEX))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSCALEVIEWPORTEXTEX>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSCALEVIEWPORTEXTEX),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSCALEVIEWPORTEXTEX>())).xNum as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSCALEVIEWPORTEXTEX),
            "::",
            stringify!(xNum)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSCALEVIEWPORTEXTEX>())).xDenom as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSCALEVIEWPORTEXTEX),
            "::",
            stringify!(xDenom)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSCALEVIEWPORTEXTEX>())).yNum as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSCALEVIEWPORTEXTEX),
            "::",
            stringify!(yNum)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSCALEVIEWPORTEXTEX>())).yDenom as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSCALEVIEWPORTEXTEX),
            "::",
            stringify!(yDenom)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMRSETWORLDTRANSFORM() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRSETWORLDTRANSFORM>(),
        32usize,
        concat!("Size of: ", stringify!(tagEMRSETWORLDTRANSFORM))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRSETWORLDTRANSFORM>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRSETWORLDTRANSFORM))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETWORLDTRANSFORM>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETWORLDTRANSFORM),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETWORLDTRANSFORM>())).xform as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETWORLDTRANSFORM),
            "::",
            stringify!(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,
}
#[test]
fn bindgen_test_layout_tagEMRMODIFYWORLDTRANSFORM() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRMODIFYWORLDTRANSFORM>(),
        36usize,
        concat!("Size of: ", stringify!(tagEMRMODIFYWORLDTRANSFORM))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRMODIFYWORLDTRANSFORM>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRMODIFYWORLDTRANSFORM))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRMODIFYWORLDTRANSFORM>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRMODIFYWORLDTRANSFORM),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagEMRMODIFYWORLDTRANSFORM>())).xform as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRMODIFYWORLDTRANSFORM),
            "::",
            stringify!(xform)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagEMRMODIFYWORLDTRANSFORM>())).iMode as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRMODIFYWORLDTRANSFORM),
            "::",
            stringify!(iMode)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMRSETPIXELV() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRSETPIXELV>(),
        20usize,
        concat!("Size of: ", stringify!(tagEMRSETPIXELV))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRSETPIXELV>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRSETPIXELV))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETPIXELV>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETPIXELV),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETPIXELV>())).ptlPixel as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETPIXELV),
            "::",
            stringify!(ptlPixel)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETPIXELV>())).crColor as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETPIXELV),
            "::",
            stringify!(crColor)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMREXTFLOODFILL() {
    assert_eq!(
        ::std::mem::size_of::<tagEMREXTFLOODFILL>(),
        24usize,
        concat!("Size of: ", stringify!(tagEMREXTFLOODFILL))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMREXTFLOODFILL>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMREXTFLOODFILL))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMREXTFLOODFILL>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREXTFLOODFILL),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMREXTFLOODFILL>())).ptlStart as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREXTFLOODFILL),
            "::",
            stringify!(ptlStart)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMREXTFLOODFILL>())).crColor as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREXTFLOODFILL),
            "::",
            stringify!(crColor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMREXTFLOODFILL>())).iMode as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREXTFLOODFILL),
            "::",
            stringify!(iMode)
        )
    );
}
pub type EMREXTFLOODFILL = tagEMREXTFLOODFILL;
pub type PEMREXTFLOODFILL = *mut tagEMREXTFLOODFILL;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRELLIPSE {
    pub emr: EMR,
    pub rclBox: RECTL,
}
#[test]
fn bindgen_test_layout_tagEMRELLIPSE() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRELLIPSE>(),
        24usize,
        concat!("Size of: ", stringify!(tagEMRELLIPSE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRELLIPSE>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRELLIPSE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRELLIPSE>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRELLIPSE),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRELLIPSE>())).rclBox as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRELLIPSE),
            "::",
            stringify!(rclBox)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMRROUNDRECT() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRROUNDRECT>(),
        32usize,
        concat!("Size of: ", stringify!(tagEMRROUNDRECT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRROUNDRECT>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRROUNDRECT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRROUNDRECT>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRROUNDRECT),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRROUNDRECT>())).rclBox as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRROUNDRECT),
            "::",
            stringify!(rclBox)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRROUNDRECT>())).szlCorner as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRROUNDRECT),
            "::",
            stringify!(szlCorner)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMRARC() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRARC>(),
        40usize,
        concat!("Size of: ", stringify!(tagEMRARC))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRARC>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRARC))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRARC>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRARC),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRARC>())).rclBox as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRARC),
            "::",
            stringify!(rclBox)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRARC>())).ptlStart as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRARC),
            "::",
            stringify!(ptlStart)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRARC>())).ptlEnd as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRARC),
            "::",
            stringify!(ptlEnd)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMRANGLEARC() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRANGLEARC>(),
        28usize,
        concat!("Size of: ", stringify!(tagEMRANGLEARC))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRANGLEARC>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRANGLEARC))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRANGLEARC>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRANGLEARC),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRANGLEARC>())).ptlCenter as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRANGLEARC),
            "::",
            stringify!(ptlCenter)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRANGLEARC>())).nRadius as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRANGLEARC),
            "::",
            stringify!(nRadius)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRANGLEARC>())).eStartAngle as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRANGLEARC),
            "::",
            stringify!(eStartAngle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRANGLEARC>())).eSweepAngle as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRANGLEARC),
            "::",
            stringify!(eSweepAngle)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagEMRPOLYLINE() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRPOLYLINE>(),
        36usize,
        concat!("Size of: ", stringify!(tagEMRPOLYLINE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRPOLYLINE>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRPOLYLINE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYLINE>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYLINE),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYLINE>())).rclBounds as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYLINE),
            "::",
            stringify!(rclBounds)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYLINE>())).cptl as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYLINE),
            "::",
            stringify!(cptl)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYLINE>())).aptl as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYLINE),
            "::",
            stringify!(aptl)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagEMRPOLYLINE16() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRPOLYLINE16>(),
        32usize,
        concat!("Size of: ", stringify!(tagEMRPOLYLINE16))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRPOLYLINE16>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRPOLYLINE16))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYLINE16>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYLINE16),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYLINE16>())).rclBounds as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYLINE16),
            "::",
            stringify!(rclBounds)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYLINE16>())).cpts as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYLINE16),
            "::",
            stringify!(cpts)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYLINE16>())).apts as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYLINE16),
            "::",
            stringify!(apts)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagEMRPOLYDRAW() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRPOLYDRAW>(),
        40usize,
        concat!("Size of: ", stringify!(tagEMRPOLYDRAW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRPOLYDRAW>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRPOLYDRAW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYDRAW>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYDRAW),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYDRAW>())).rclBounds as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYDRAW),
            "::",
            stringify!(rclBounds)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYDRAW>())).cptl as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYDRAW),
            "::",
            stringify!(cptl)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYDRAW>())).aptl as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYDRAW),
            "::",
            stringify!(aptl)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYDRAW>())).abTypes as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYDRAW),
            "::",
            stringify!(abTypes)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagEMRPOLYDRAW16() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRPOLYDRAW16>(),
        36usize,
        concat!("Size of: ", stringify!(tagEMRPOLYDRAW16))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRPOLYDRAW16>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRPOLYDRAW16))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYDRAW16>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYDRAW16),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYDRAW16>())).rclBounds as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYDRAW16),
            "::",
            stringify!(rclBounds)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYDRAW16>())).cpts as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYDRAW16),
            "::",
            stringify!(cpts)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYDRAW16>())).apts as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYDRAW16),
            "::",
            stringify!(apts)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYDRAW16>())).abTypes as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYDRAW16),
            "::",
            stringify!(abTypes)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagEMRPOLYPOLYLINE() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRPOLYPOLYLINE>(),
        44usize,
        concat!("Size of: ", stringify!(tagEMRPOLYPOLYLINE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRPOLYPOLYLINE>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRPOLYPOLYLINE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYPOLYLINE>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYPOLYLINE),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYPOLYLINE>())).rclBounds as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYPOLYLINE),
            "::",
            stringify!(rclBounds)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYPOLYLINE>())).nPolys as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYPOLYLINE),
            "::",
            stringify!(nPolys)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYPOLYLINE>())).cptl as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYPOLYLINE),
            "::",
            stringify!(cptl)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYPOLYLINE>())).aPolyCounts as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYPOLYLINE),
            "::",
            stringify!(aPolyCounts)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYPOLYLINE>())).aptl as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYPOLYLINE),
            "::",
            stringify!(aptl)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagEMRPOLYPOLYLINE16() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRPOLYPOLYLINE16>(),
        40usize,
        concat!("Size of: ", stringify!(tagEMRPOLYPOLYLINE16))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRPOLYPOLYLINE16>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRPOLYPOLYLINE16))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYPOLYLINE16>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYPOLYLINE16),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYPOLYLINE16>())).rclBounds as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYPOLYLINE16),
            "::",
            stringify!(rclBounds)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYPOLYLINE16>())).nPolys as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYPOLYLINE16),
            "::",
            stringify!(nPolys)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYPOLYLINE16>())).cpts as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYPOLYLINE16),
            "::",
            stringify!(cpts)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagEMRPOLYPOLYLINE16>())).aPolyCounts as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYPOLYLINE16),
            "::",
            stringify!(aPolyCounts)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYPOLYLINE16>())).apts as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYPOLYLINE16),
            "::",
            stringify!(apts)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagEMRINVERTRGN() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRINVERTRGN>(),
        32usize,
        concat!("Size of: ", stringify!(tagEMRINVERTRGN))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRINVERTRGN>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRINVERTRGN))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRINVERTRGN>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRINVERTRGN),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRINVERTRGN>())).rclBounds as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRINVERTRGN),
            "::",
            stringify!(rclBounds)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRINVERTRGN>())).cbRgnData as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRINVERTRGN),
            "::",
            stringify!(cbRgnData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRINVERTRGN>())).RgnData as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRINVERTRGN),
            "::",
            stringify!(RgnData)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagEMRFILLRGN() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRFILLRGN>(),
        36usize,
        concat!("Size of: ", stringify!(tagEMRFILLRGN))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRFILLRGN>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRFILLRGN))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRFILLRGN>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRFILLRGN),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRFILLRGN>())).rclBounds as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRFILLRGN),
            "::",
            stringify!(rclBounds)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRFILLRGN>())).cbRgnData as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRFILLRGN),
            "::",
            stringify!(cbRgnData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRFILLRGN>())).ihBrush as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRFILLRGN),
            "::",
            stringify!(ihBrush)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRFILLRGN>())).RgnData as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRFILLRGN),
            "::",
            stringify!(RgnData)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagEMRFRAMERGN() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRFRAMERGN>(),
        44usize,
        concat!("Size of: ", stringify!(tagEMRFRAMERGN))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRFRAMERGN>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRFRAMERGN))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRFRAMERGN>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRFRAMERGN),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRFRAMERGN>())).rclBounds as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRFRAMERGN),
            "::",
            stringify!(rclBounds)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRFRAMERGN>())).cbRgnData as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRFRAMERGN),
            "::",
            stringify!(cbRgnData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRFRAMERGN>())).ihBrush as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRFRAMERGN),
            "::",
            stringify!(ihBrush)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRFRAMERGN>())).szlStroke as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRFRAMERGN),
            "::",
            stringify!(szlStroke)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRFRAMERGN>())).RgnData as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRFRAMERGN),
            "::",
            stringify!(RgnData)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagEMREXTSELECTCLIPRGN() {
    assert_eq!(
        ::std::mem::size_of::<tagEMREXTSELECTCLIPRGN>(),
        20usize,
        concat!("Size of: ", stringify!(tagEMREXTSELECTCLIPRGN))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMREXTSELECTCLIPRGN>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMREXTSELECTCLIPRGN))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMREXTSELECTCLIPRGN>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREXTSELECTCLIPRGN),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagEMREXTSELECTCLIPRGN>())).cbRgnData as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREXTSELECTCLIPRGN),
            "::",
            stringify!(cbRgnData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMREXTSELECTCLIPRGN>())).iMode as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREXTSELECTCLIPRGN),
            "::",
            stringify!(iMode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMREXTSELECTCLIPRGN>())).RgnData as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREXTSELECTCLIPRGN),
            "::",
            stringify!(RgnData)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMREXTTEXTOUTA() {
    assert_eq!(
        ::std::mem::size_of::<tagEMREXTTEXTOUTA>(),
        76usize,
        concat!("Size of: ", stringify!(tagEMREXTTEXTOUTA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMREXTTEXTOUTA>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMREXTTEXTOUTA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMREXTTEXTOUTA>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREXTTEXTOUTA),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMREXTTEXTOUTA>())).rclBounds as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREXTTEXTOUTA),
            "::",
            stringify!(rclBounds)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMREXTTEXTOUTA>())).iGraphicsMode as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREXTTEXTOUTA),
            "::",
            stringify!(iGraphicsMode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMREXTTEXTOUTA>())).exScale as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREXTTEXTOUTA),
            "::",
            stringify!(exScale)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMREXTTEXTOUTA>())).eyScale as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREXTTEXTOUTA),
            "::",
            stringify!(eyScale)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMREXTTEXTOUTA>())).emrtext as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREXTTEXTOUTA),
            "::",
            stringify!(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],
}
#[test]
fn bindgen_test_layout_tagEMRPOLYTEXTOUTA() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRPOLYTEXTOUTA>(),
        80usize,
        concat!("Size of: ", stringify!(tagEMRPOLYTEXTOUTA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRPOLYTEXTOUTA>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRPOLYTEXTOUTA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYTEXTOUTA>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYTEXTOUTA),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYTEXTOUTA>())).rclBounds as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYTEXTOUTA),
            "::",
            stringify!(rclBounds)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagEMRPOLYTEXTOUTA>())).iGraphicsMode as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYTEXTOUTA),
            "::",
            stringify!(iGraphicsMode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYTEXTOUTA>())).exScale as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYTEXTOUTA),
            "::",
            stringify!(exScale)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYTEXTOUTA>())).eyScale as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYTEXTOUTA),
            "::",
            stringify!(eyScale)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYTEXTOUTA>())).cStrings as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYTEXTOUTA),
            "::",
            stringify!(cStrings)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPOLYTEXTOUTA>())).aemrtext as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPOLYTEXTOUTA),
            "::",
            stringify!(aemrtext)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMRBITBLT() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRBITBLT>(),
        100usize,
        concat!("Size of: ", stringify!(tagEMRBITBLT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRBITBLT>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRBITBLT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRBITBLT>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRBITBLT),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRBITBLT>())).rclBounds as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRBITBLT),
            "::",
            stringify!(rclBounds)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRBITBLT>())).xDest as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRBITBLT),
            "::",
            stringify!(xDest)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRBITBLT>())).yDest as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRBITBLT),
            "::",
            stringify!(yDest)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRBITBLT>())).cxDest as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRBITBLT),
            "::",
            stringify!(cxDest)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRBITBLT>())).cyDest as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRBITBLT),
            "::",
            stringify!(cyDest)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRBITBLT>())).dwRop as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRBITBLT),
            "::",
            stringify!(dwRop)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRBITBLT>())).xSrc as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRBITBLT),
            "::",
            stringify!(xSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRBITBLT>())).ySrc as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRBITBLT),
            "::",
            stringify!(ySrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRBITBLT>())).xformSrc as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRBITBLT),
            "::",
            stringify!(xformSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRBITBLT>())).crBkColorSrc as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRBITBLT),
            "::",
            stringify!(crBkColorSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRBITBLT>())).iUsageSrc as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRBITBLT),
            "::",
            stringify!(iUsageSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRBITBLT>())).offBmiSrc as *const _ as usize },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRBITBLT),
            "::",
            stringify!(offBmiSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRBITBLT>())).cbBmiSrc as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRBITBLT),
            "::",
            stringify!(cbBmiSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRBITBLT>())).offBitsSrc as *const _ as usize },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRBITBLT),
            "::",
            stringify!(offBitsSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRBITBLT>())).cbBitsSrc as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRBITBLT),
            "::",
            stringify!(cbBitsSrc)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMRSTRETCHBLT() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRSTRETCHBLT>(),
        108usize,
        concat!("Size of: ", stringify!(tagEMRSTRETCHBLT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRSTRETCHBLT>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRSTRETCHBLT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHBLT>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHBLT),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHBLT>())).rclBounds as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHBLT),
            "::",
            stringify!(rclBounds)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHBLT>())).xDest as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHBLT),
            "::",
            stringify!(xDest)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHBLT>())).yDest as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHBLT),
            "::",
            stringify!(yDest)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHBLT>())).cxDest as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHBLT),
            "::",
            stringify!(cxDest)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHBLT>())).cyDest as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHBLT),
            "::",
            stringify!(cyDest)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHBLT>())).dwRop as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHBLT),
            "::",
            stringify!(dwRop)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHBLT>())).xSrc as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHBLT),
            "::",
            stringify!(xSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHBLT>())).ySrc as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHBLT),
            "::",
            stringify!(ySrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHBLT>())).xformSrc as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHBLT),
            "::",
            stringify!(xformSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHBLT>())).crBkColorSrc as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHBLT),
            "::",
            stringify!(crBkColorSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHBLT>())).iUsageSrc as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHBLT),
            "::",
            stringify!(iUsageSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHBLT>())).offBmiSrc as *const _ as usize },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHBLT),
            "::",
            stringify!(offBmiSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHBLT>())).cbBmiSrc as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHBLT),
            "::",
            stringify!(cbBmiSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHBLT>())).offBitsSrc as *const _ as usize },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHBLT),
            "::",
            stringify!(offBitsSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHBLT>())).cbBitsSrc as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHBLT),
            "::",
            stringify!(cbBitsSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHBLT>())).cxSrc as *const _ as usize },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHBLT),
            "::",
            stringify!(cxSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHBLT>())).cySrc as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHBLT),
            "::",
            stringify!(cySrc)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMRMASKBLT() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRMASKBLT>(),
        128usize,
        concat!("Size of: ", stringify!(tagEMRMASKBLT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRMASKBLT>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRMASKBLT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRMASKBLT>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRMASKBLT),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRMASKBLT>())).rclBounds as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRMASKBLT),
            "::",
            stringify!(rclBounds)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRMASKBLT>())).xDest as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRMASKBLT),
            "::",
            stringify!(xDest)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRMASKBLT>())).yDest as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRMASKBLT),
            "::",
            stringify!(yDest)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRMASKBLT>())).cxDest as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRMASKBLT),
            "::",
            stringify!(cxDest)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRMASKBLT>())).cyDest as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRMASKBLT),
            "::",
            stringify!(cyDest)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRMASKBLT>())).dwRop as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRMASKBLT),
            "::",
            stringify!(dwRop)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRMASKBLT>())).xSrc as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRMASKBLT),
            "::",
            stringify!(xSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRMASKBLT>())).ySrc as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRMASKBLT),
            "::",
            stringify!(ySrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRMASKBLT>())).xformSrc as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRMASKBLT),
            "::",
            stringify!(xformSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRMASKBLT>())).crBkColorSrc as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRMASKBLT),
            "::",
            stringify!(crBkColorSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRMASKBLT>())).iUsageSrc as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRMASKBLT),
            "::",
            stringify!(iUsageSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRMASKBLT>())).offBmiSrc as *const _ as usize },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRMASKBLT),
            "::",
            stringify!(offBmiSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRMASKBLT>())).cbBmiSrc as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRMASKBLT),
            "::",
            stringify!(cbBmiSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRMASKBLT>())).offBitsSrc as *const _ as usize },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRMASKBLT),
            "::",
            stringify!(offBitsSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRMASKBLT>())).cbBitsSrc as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRMASKBLT),
            "::",
            stringify!(cbBitsSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRMASKBLT>())).xMask as *const _ as usize },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRMASKBLT),
            "::",
            stringify!(xMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRMASKBLT>())).yMask as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRMASKBLT),
            "::",
            stringify!(yMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRMASKBLT>())).iUsageMask as *const _ as usize },
        108usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRMASKBLT),
            "::",
            stringify!(iUsageMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRMASKBLT>())).offBmiMask as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRMASKBLT),
            "::",
            stringify!(offBmiMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRMASKBLT>())).cbBmiMask as *const _ as usize },
        116usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRMASKBLT),
            "::",
            stringify!(cbBmiMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRMASKBLT>())).offBitsMask as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRMASKBLT),
            "::",
            stringify!(offBitsMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRMASKBLT>())).cbBitsMask as *const _ as usize },
        124usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRMASKBLT),
            "::",
            stringify!(cbBitsMask)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMRPLGBLT() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRPLGBLT>(),
        140usize,
        concat!("Size of: ", stringify!(tagEMRPLGBLT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRPLGBLT>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRPLGBLT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPLGBLT>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPLGBLT),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPLGBLT>())).rclBounds as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPLGBLT),
            "::",
            stringify!(rclBounds)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPLGBLT>())).aptlDest as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPLGBLT),
            "::",
            stringify!(aptlDest)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPLGBLT>())).xSrc as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPLGBLT),
            "::",
            stringify!(xSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPLGBLT>())).ySrc as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPLGBLT),
            "::",
            stringify!(ySrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPLGBLT>())).cxSrc as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPLGBLT),
            "::",
            stringify!(cxSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPLGBLT>())).cySrc as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPLGBLT),
            "::",
            stringify!(cySrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPLGBLT>())).xformSrc as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPLGBLT),
            "::",
            stringify!(xformSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPLGBLT>())).crBkColorSrc as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPLGBLT),
            "::",
            stringify!(crBkColorSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPLGBLT>())).iUsageSrc as *const _ as usize },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPLGBLT),
            "::",
            stringify!(iUsageSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPLGBLT>())).offBmiSrc as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPLGBLT),
            "::",
            stringify!(offBmiSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPLGBLT>())).cbBmiSrc as *const _ as usize },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPLGBLT),
            "::",
            stringify!(cbBmiSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPLGBLT>())).offBitsSrc as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPLGBLT),
            "::",
            stringify!(offBitsSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPLGBLT>())).cbBitsSrc as *const _ as usize },
        108usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPLGBLT),
            "::",
            stringify!(cbBitsSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPLGBLT>())).xMask as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPLGBLT),
            "::",
            stringify!(xMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPLGBLT>())).yMask as *const _ as usize },
        116usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPLGBLT),
            "::",
            stringify!(yMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPLGBLT>())).iUsageMask as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPLGBLT),
            "::",
            stringify!(iUsageMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPLGBLT>())).offBmiMask as *const _ as usize },
        124usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPLGBLT),
            "::",
            stringify!(offBmiMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPLGBLT>())).cbBmiMask as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPLGBLT),
            "::",
            stringify!(cbBmiMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPLGBLT>())).offBitsMask as *const _ as usize },
        132usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPLGBLT),
            "::",
            stringify!(offBitsMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPLGBLT>())).cbBitsMask as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPLGBLT),
            "::",
            stringify!(cbBitsMask)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMRSETDIBITSTODEVICE() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRSETDIBITSTODEVICE>(),
        76usize,
        concat!("Size of: ", stringify!(tagEMRSETDIBITSTODEVICE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRSETDIBITSTODEVICE>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRSETDIBITSTODEVICE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETDIBITSTODEVICE>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETDIBITSTODEVICE),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagEMRSETDIBITSTODEVICE>())).rclBounds as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETDIBITSTODEVICE),
            "::",
            stringify!(rclBounds)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETDIBITSTODEVICE>())).xDest as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETDIBITSTODEVICE),
            "::",
            stringify!(xDest)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETDIBITSTODEVICE>())).yDest as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETDIBITSTODEVICE),
            "::",
            stringify!(yDest)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETDIBITSTODEVICE>())).xSrc as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETDIBITSTODEVICE),
            "::",
            stringify!(xSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETDIBITSTODEVICE>())).ySrc as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETDIBITSTODEVICE),
            "::",
            stringify!(ySrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETDIBITSTODEVICE>())).cxSrc as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETDIBITSTODEVICE),
            "::",
            stringify!(cxSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETDIBITSTODEVICE>())).cySrc as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETDIBITSTODEVICE),
            "::",
            stringify!(cySrc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagEMRSETDIBITSTODEVICE>())).offBmiSrc as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETDIBITSTODEVICE),
            "::",
            stringify!(offBmiSrc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagEMRSETDIBITSTODEVICE>())).cbBmiSrc as *const _ as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETDIBITSTODEVICE),
            "::",
            stringify!(cbBmiSrc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagEMRSETDIBITSTODEVICE>())).offBitsSrc as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETDIBITSTODEVICE),
            "::",
            stringify!(offBitsSrc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagEMRSETDIBITSTODEVICE>())).cbBitsSrc as *const _ as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETDIBITSTODEVICE),
            "::",
            stringify!(cbBitsSrc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagEMRSETDIBITSTODEVICE>())).iUsageSrc as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETDIBITSTODEVICE),
            "::",
            stringify!(iUsageSrc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagEMRSETDIBITSTODEVICE>())).iStartScan as *const _ as usize
        },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETDIBITSTODEVICE),
            "::",
            stringify!(iStartScan)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETDIBITSTODEVICE>())).cScans as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETDIBITSTODEVICE),
            "::",
            stringify!(cScans)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMRSTRETCHDIBITS() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRSTRETCHDIBITS>(),
        80usize,
        concat!("Size of: ", stringify!(tagEMRSTRETCHDIBITS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRSTRETCHDIBITS>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRSTRETCHDIBITS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHDIBITS>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHDIBITS),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHDIBITS>())).rclBounds as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHDIBITS),
            "::",
            stringify!(rclBounds)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHDIBITS>())).xDest as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHDIBITS),
            "::",
            stringify!(xDest)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHDIBITS>())).yDest as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHDIBITS),
            "::",
            stringify!(yDest)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHDIBITS>())).xSrc as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHDIBITS),
            "::",
            stringify!(xSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHDIBITS>())).ySrc as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHDIBITS),
            "::",
            stringify!(ySrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHDIBITS>())).cxSrc as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHDIBITS),
            "::",
            stringify!(cxSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHDIBITS>())).cySrc as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHDIBITS),
            "::",
            stringify!(cySrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHDIBITS>())).offBmiSrc as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHDIBITS),
            "::",
            stringify!(offBmiSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHDIBITS>())).cbBmiSrc as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHDIBITS),
            "::",
            stringify!(cbBmiSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHDIBITS>())).offBitsSrc as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHDIBITS),
            "::",
            stringify!(offBitsSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHDIBITS>())).cbBitsSrc as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHDIBITS),
            "::",
            stringify!(cbBitsSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHDIBITS>())).iUsageSrc as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHDIBITS),
            "::",
            stringify!(iUsageSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHDIBITS>())).dwRop as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHDIBITS),
            "::",
            stringify!(dwRop)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHDIBITS>())).cxDest as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHDIBITS),
            "::",
            stringify!(cxDest)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSTRETCHDIBITS>())).cyDest as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSTRETCHDIBITS),
            "::",
            stringify!(cyDest)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMREXTCREATEFONTINDIRECTW() {
    assert_eq!(
        ::std::mem::size_of::<tagEMREXTCREATEFONTINDIRECTW>(),
        332usize,
        concat!("Size of: ", stringify!(tagEMREXTCREATEFONTINDIRECTW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMREXTCREATEFONTINDIRECTW>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMREXTCREATEFONTINDIRECTW))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagEMREXTCREATEFONTINDIRECTW>())).emr as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREXTCREATEFONTINDIRECTW),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagEMREXTCREATEFONTINDIRECTW>())).ihFont as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREXTCREATEFONTINDIRECTW),
            "::",
            stringify!(ihFont)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagEMREXTCREATEFONTINDIRECTW>())).elfw as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREXTCREATEFONTINDIRECTW),
            "::",
            stringify!(elfw)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMRCREATEPALETTE() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRCREATEPALETTE>(),
        20usize,
        concat!("Size of: ", stringify!(tagEMRCREATEPALETTE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRCREATEPALETTE>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRCREATEPALETTE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRCREATEPALETTE>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRCREATEPALETTE),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRCREATEPALETTE>())).ihPal as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRCREATEPALETTE),
            "::",
            stringify!(ihPal)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRCREATEPALETTE>())).lgpl as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRCREATEPALETTE),
            "::",
            stringify!(lgpl)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMRCREATEPEN() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRCREATEPEN>(),
        28usize,
        concat!("Size of: ", stringify!(tagEMRCREATEPEN))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRCREATEPEN>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRCREATEPEN))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRCREATEPEN>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRCREATEPEN),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRCREATEPEN>())).ihPen as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRCREATEPEN),
            "::",
            stringify!(ihPen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRCREATEPEN>())).lopn as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRCREATEPEN),
            "::",
            stringify!(lopn)
        )
    );
}
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: EXTLOGPEN32,
}
#[test]
fn bindgen_test_layout_tagEMREXTCREATEPEN() {
    assert_eq!(
        ::std::mem::size_of::<tagEMREXTCREATEPEN>(),
        56usize,
        concat!("Size of: ", stringify!(tagEMREXTCREATEPEN))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMREXTCREATEPEN>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMREXTCREATEPEN))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMREXTCREATEPEN>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREXTCREATEPEN),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMREXTCREATEPEN>())).ihPen as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREXTCREATEPEN),
            "::",
            stringify!(ihPen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMREXTCREATEPEN>())).offBmi as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREXTCREATEPEN),
            "::",
            stringify!(offBmi)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMREXTCREATEPEN>())).cbBmi as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREXTCREATEPEN),
            "::",
            stringify!(cbBmi)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMREXTCREATEPEN>())).offBits as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREXTCREATEPEN),
            "::",
            stringify!(offBits)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMREXTCREATEPEN>())).cbBits as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREXTCREATEPEN),
            "::",
            stringify!(cbBits)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMREXTCREATEPEN>())).elp as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREXTCREATEPEN),
            "::",
            stringify!(elp)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMRCREATEBRUSHINDIRECT() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRCREATEBRUSHINDIRECT>(),
        24usize,
        concat!("Size of: ", stringify!(tagEMRCREATEBRUSHINDIRECT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRCREATEBRUSHINDIRECT>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRCREATEBRUSHINDIRECT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRCREATEBRUSHINDIRECT>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRCREATEBRUSHINDIRECT),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagEMRCREATEBRUSHINDIRECT>())).ihBrush as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRCREATEBRUSHINDIRECT),
            "::",
            stringify!(ihBrush)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRCREATEBRUSHINDIRECT>())).lb as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRCREATEBRUSHINDIRECT),
            "::",
            stringify!(lb)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMRCREATEMONOBRUSH() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRCREATEMONOBRUSH>(),
        32usize,
        concat!("Size of: ", stringify!(tagEMRCREATEMONOBRUSH))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRCREATEMONOBRUSH>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRCREATEMONOBRUSH))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRCREATEMONOBRUSH>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRCREATEMONOBRUSH),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRCREATEMONOBRUSH>())).ihBrush as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRCREATEMONOBRUSH),
            "::",
            stringify!(ihBrush)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRCREATEMONOBRUSH>())).iUsage as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRCREATEMONOBRUSH),
            "::",
            stringify!(iUsage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRCREATEMONOBRUSH>())).offBmi as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRCREATEMONOBRUSH),
            "::",
            stringify!(offBmi)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRCREATEMONOBRUSH>())).cbBmi as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRCREATEMONOBRUSH),
            "::",
            stringify!(cbBmi)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRCREATEMONOBRUSH>())).offBits as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRCREATEMONOBRUSH),
            "::",
            stringify!(offBits)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRCREATEMONOBRUSH>())).cbBits as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRCREATEMONOBRUSH),
            "::",
            stringify!(cbBits)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMRCREATEDIBPATTERNBRUSHPT() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRCREATEDIBPATTERNBRUSHPT>(),
        32usize,
        concat!("Size of: ", stringify!(tagEMRCREATEDIBPATTERNBRUSHPT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRCREATEDIBPATTERNBRUSHPT>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRCREATEDIBPATTERNBRUSHPT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagEMRCREATEDIBPATTERNBRUSHPT>())).emr as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRCREATEDIBPATTERNBRUSHPT),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagEMRCREATEDIBPATTERNBRUSHPT>())).ihBrush as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRCREATEDIBPATTERNBRUSHPT),
            "::",
            stringify!(ihBrush)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagEMRCREATEDIBPATTERNBRUSHPT>())).iUsage as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRCREATEDIBPATTERNBRUSHPT),
            "::",
            stringify!(iUsage)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagEMRCREATEDIBPATTERNBRUSHPT>())).offBmi as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRCREATEDIBPATTERNBRUSHPT),
            "::",
            stringify!(offBmi)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagEMRCREATEDIBPATTERNBRUSHPT>())).cbBmi as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRCREATEDIBPATTERNBRUSHPT),
            "::",
            stringify!(cbBmi)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagEMRCREATEDIBPATTERNBRUSHPT>())).offBits as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRCREATEDIBPATTERNBRUSHPT),
            "::",
            stringify!(offBits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagEMRCREATEDIBPATTERNBRUSHPT>())).cbBits as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRCREATEDIBPATTERNBRUSHPT),
            "::",
            stringify!(cbBits)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMRFORMAT() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRFORMAT>(),
        16usize,
        concat!("Size of: ", stringify!(tagEMRFORMAT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRFORMAT>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRFORMAT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRFORMAT>())).dSignature as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRFORMAT),
            "::",
            stringify!(dSignature)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRFORMAT>())).nVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRFORMAT),
            "::",
            stringify!(nVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRFORMAT>())).cbData as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRFORMAT),
            "::",
            stringify!(cbData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRFORMAT>())).offData as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRFORMAT),
            "::",
            stringify!(offData)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagEMRGLSRECORD() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRGLSRECORD>(),
        16usize,
        concat!("Size of: ", stringify!(tagEMRGLSRECORD))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRGLSRECORD>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRGLSRECORD))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRGLSRECORD>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRGLSRECORD),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRGLSRECORD>())).cbData as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRGLSRECORD),
            "::",
            stringify!(cbData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRGLSRECORD>())).Data as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRGLSRECORD),
            "::",
            stringify!(Data)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagEMRGLSBOUNDEDRECORD() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRGLSBOUNDEDRECORD>(),
        32usize,
        concat!("Size of: ", stringify!(tagEMRGLSBOUNDEDRECORD))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRGLSBOUNDEDRECORD>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRGLSBOUNDEDRECORD))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRGLSBOUNDEDRECORD>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRGLSBOUNDEDRECORD),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagEMRGLSBOUNDEDRECORD>())).rclBounds as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRGLSBOUNDEDRECORD),
            "::",
            stringify!(rclBounds)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRGLSBOUNDEDRECORD>())).cbData as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRGLSBOUNDEDRECORD),
            "::",
            stringify!(cbData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRGLSBOUNDEDRECORD>())).Data as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRGLSBOUNDEDRECORD),
            "::",
            stringify!(Data)
        )
    );
}
pub type EMRGLSBOUNDEDRECORD = tagEMRGLSBOUNDEDRECORD;
pub type PEMRGLSBOUNDEDRECORD = *mut tagEMRGLSBOUNDEDRECORD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRPIXELFORMAT {
    pub emr: EMR,
    pub pfd: PIXELFORMATDESCRIPTOR,
}
#[test]
fn bindgen_test_layout_tagEMRPIXELFORMAT() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRPIXELFORMAT>(),
        48usize,
        concat!("Size of: ", stringify!(tagEMRPIXELFORMAT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRPIXELFORMAT>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRPIXELFORMAT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPIXELFORMAT>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPIXELFORMAT),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRPIXELFORMAT>())).pfd as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRPIXELFORMAT),
            "::",
            stringify!(pfd)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMRCREATECOLORSPACE() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRCREATECOLORSPACE>(),
        340usize,
        concat!("Size of: ", stringify!(tagEMRCREATECOLORSPACE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRCREATECOLORSPACE>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRCREATECOLORSPACE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRCREATECOLORSPACE>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRCREATECOLORSPACE),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRCREATECOLORSPACE>())).ihCS as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRCREATECOLORSPACE),
            "::",
            stringify!(ihCS)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRCREATECOLORSPACE>())).lcs as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRCREATECOLORSPACE),
            "::",
            stringify!(lcs)
        )
    );
}
pub type EMRCREATECOLORSPACE = tagEMRCREATECOLORSPACE;
pub type PEMRCREATECOLORSPACE = *mut tagEMRCREATECOLORSPACE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEMRSETCOLORSPACE {
    pub emr: EMR,
    pub ihCS: DWORD,
}
#[test]
fn bindgen_test_layout_tagEMRSETCOLORSPACE() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRSETCOLORSPACE>(),
        12usize,
        concat!("Size of: ", stringify!(tagEMRSETCOLORSPACE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRSETCOLORSPACE>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRSETCOLORSPACE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETCOLORSPACE>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETCOLORSPACE),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETCOLORSPACE>())).ihCS as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETCOLORSPACE),
            "::",
            stringify!(ihCS)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagEMREXTESCAPE() {
    assert_eq!(
        ::std::mem::size_of::<tagEMREXTESCAPE>(),
        20usize,
        concat!("Size of: ", stringify!(tagEMREXTESCAPE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMREXTESCAPE>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMREXTESCAPE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMREXTESCAPE>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREXTESCAPE),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMREXTESCAPE>())).iEscape as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREXTESCAPE),
            "::",
            stringify!(iEscape)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMREXTESCAPE>())).cbEscData as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREXTESCAPE),
            "::",
            stringify!(cbEscData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMREXTESCAPE>())).EscData as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMREXTESCAPE),
            "::",
            stringify!(EscData)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagEMRNAMEDESCAPE() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRNAMEDESCAPE>(),
        24usize,
        concat!("Size of: ", stringify!(tagEMRNAMEDESCAPE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRNAMEDESCAPE>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRNAMEDESCAPE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRNAMEDESCAPE>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRNAMEDESCAPE),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRNAMEDESCAPE>())).iEscape as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRNAMEDESCAPE),
            "::",
            stringify!(iEscape)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRNAMEDESCAPE>())).cbDriver as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRNAMEDESCAPE),
            "::",
            stringify!(cbDriver)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRNAMEDESCAPE>())).cbEscData as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRNAMEDESCAPE),
            "::",
            stringify!(cbEscData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRNAMEDESCAPE>())).EscData as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRNAMEDESCAPE),
            "::",
            stringify!(EscData)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagEMRSETICMPROFILE() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRSETICMPROFILE>(),
        24usize,
        concat!("Size of: ", stringify!(tagEMRSETICMPROFILE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRSETICMPROFILE>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRSETICMPROFILE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETICMPROFILE>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETICMPROFILE),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETICMPROFILE>())).dwFlags as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETICMPROFILE),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETICMPROFILE>())).cbName as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETICMPROFILE),
            "::",
            stringify!(cbName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETICMPROFILE>())).cbData as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETICMPROFILE),
            "::",
            stringify!(cbData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRSETICMPROFILE>())).Data as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRSETICMPROFILE),
            "::",
            stringify!(Data)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagEMRCREATECOLORSPACEW() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRCREATECOLORSPACEW>(),
        612usize,
        concat!("Size of: ", stringify!(tagEMRCREATECOLORSPACEW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRCREATECOLORSPACEW>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRCREATECOLORSPACEW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRCREATECOLORSPACEW>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRCREATECOLORSPACEW),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRCREATECOLORSPACEW>())).ihCS as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRCREATECOLORSPACEW),
            "::",
            stringify!(ihCS)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRCREATECOLORSPACEW>())).lcs as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRCREATECOLORSPACEW),
            "::",
            stringify!(lcs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRCREATECOLORSPACEW>())).dwFlags as *const _ as usize },
        600usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRCREATECOLORSPACEW),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRCREATECOLORSPACEW>())).cbData as *const _ as usize },
        604usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRCREATECOLORSPACEW),
            "::",
            stringify!(cbData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRCREATECOLORSPACEW>())).Data as *const _ as usize },
        608usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRCREATECOLORSPACEW),
            "::",
            stringify!(Data)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagCOLORMATCHTOTARGET() {
    assert_eq!(
        ::std::mem::size_of::<tagCOLORMATCHTOTARGET>(),
        28usize,
        concat!("Size of: ", stringify!(tagCOLORMATCHTOTARGET))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCOLORMATCHTOTARGET>(),
        4usize,
        concat!("Alignment of ", stringify!(tagCOLORMATCHTOTARGET))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOLORMATCHTOTARGET>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOLORMATCHTOTARGET),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOLORMATCHTOTARGET>())).dwAction as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOLORMATCHTOTARGET),
            "::",
            stringify!(dwAction)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOLORMATCHTOTARGET>())).dwFlags as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOLORMATCHTOTARGET),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOLORMATCHTOTARGET>())).cbName as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOLORMATCHTOTARGET),
            "::",
            stringify!(cbName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOLORMATCHTOTARGET>())).cbData as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOLORMATCHTOTARGET),
            "::",
            stringify!(cbData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOLORMATCHTOTARGET>())).Data as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOLORMATCHTOTARGET),
            "::",
            stringify!(Data)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagCOLORCORRECTPALETTE() {
    assert_eq!(
        ::std::mem::size_of::<tagCOLORCORRECTPALETTE>(),
        24usize,
        concat!("Size of: ", stringify!(tagCOLORCORRECTPALETTE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCOLORCORRECTPALETTE>(),
        4usize,
        concat!("Alignment of ", stringify!(tagCOLORCORRECTPALETTE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOLORCORRECTPALETTE>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOLORCORRECTPALETTE),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagCOLORCORRECTPALETTE>())).ihPalette as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOLORCORRECTPALETTE),
            "::",
            stringify!(ihPalette)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagCOLORCORRECTPALETTE>())).nFirstEntry as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOLORCORRECTPALETTE),
            "::",
            stringify!(nFirstEntry)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagCOLORCORRECTPALETTE>())).nPalEntries as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOLORCORRECTPALETTE),
            "::",
            stringify!(nPalEntries)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagCOLORCORRECTPALETTE>())).nReserved as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOLORCORRECTPALETTE),
            "::",
            stringify!(nReserved)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMRALPHABLEND() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRALPHABLEND>(),
        108usize,
        concat!("Size of: ", stringify!(tagEMRALPHABLEND))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRALPHABLEND>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRALPHABLEND))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRALPHABLEND>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRALPHABLEND),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRALPHABLEND>())).rclBounds as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRALPHABLEND),
            "::",
            stringify!(rclBounds)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRALPHABLEND>())).xDest as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRALPHABLEND),
            "::",
            stringify!(xDest)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRALPHABLEND>())).yDest as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRALPHABLEND),
            "::",
            stringify!(yDest)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRALPHABLEND>())).cxDest as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRALPHABLEND),
            "::",
            stringify!(cxDest)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRALPHABLEND>())).cyDest as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRALPHABLEND),
            "::",
            stringify!(cyDest)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRALPHABLEND>())).dwRop as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRALPHABLEND),
            "::",
            stringify!(dwRop)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRALPHABLEND>())).xSrc as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRALPHABLEND),
            "::",
            stringify!(xSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRALPHABLEND>())).ySrc as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRALPHABLEND),
            "::",
            stringify!(ySrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRALPHABLEND>())).xformSrc as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRALPHABLEND),
            "::",
            stringify!(xformSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRALPHABLEND>())).crBkColorSrc as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRALPHABLEND),
            "::",
            stringify!(crBkColorSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRALPHABLEND>())).iUsageSrc as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRALPHABLEND),
            "::",
            stringify!(iUsageSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRALPHABLEND>())).offBmiSrc as *const _ as usize },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRALPHABLEND),
            "::",
            stringify!(offBmiSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRALPHABLEND>())).cbBmiSrc as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRALPHABLEND),
            "::",
            stringify!(cbBmiSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRALPHABLEND>())).offBitsSrc as *const _ as usize },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRALPHABLEND),
            "::",
            stringify!(offBitsSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRALPHABLEND>())).cbBitsSrc as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRALPHABLEND),
            "::",
            stringify!(cbBitsSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRALPHABLEND>())).cxSrc as *const _ as usize },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRALPHABLEND),
            "::",
            stringify!(cxSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRALPHABLEND>())).cySrc as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRALPHABLEND),
            "::",
            stringify!(cySrc)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagEMRGRADIENTFILL() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRGRADIENTFILL>(),
        52usize,
        concat!("Size of: ", stringify!(tagEMRGRADIENTFILL))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRGRADIENTFILL>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRGRADIENTFILL))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRGRADIENTFILL>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRGRADIENTFILL),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRGRADIENTFILL>())).rclBounds as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRGRADIENTFILL),
            "::",
            stringify!(rclBounds)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRGRADIENTFILL>())).nVer as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRGRADIENTFILL),
            "::",
            stringify!(nVer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRGRADIENTFILL>())).nTri as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRGRADIENTFILL),
            "::",
            stringify!(nTri)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRGRADIENTFILL>())).ulMode as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRGRADIENTFILL),
            "::",
            stringify!(ulMode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRGRADIENTFILL>())).Ver as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRGRADIENTFILL),
            "::",
            stringify!(Ver)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEMRTRANSPARENTBLT() {
    assert_eq!(
        ::std::mem::size_of::<tagEMRTRANSPARENTBLT>(),
        108usize,
        concat!("Size of: ", stringify!(tagEMRTRANSPARENTBLT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEMRTRANSPARENTBLT>(),
        4usize,
        concat!("Alignment of ", stringify!(tagEMRTRANSPARENTBLT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRTRANSPARENTBLT>())).emr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRTRANSPARENTBLT),
            "::",
            stringify!(emr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRTRANSPARENTBLT>())).rclBounds as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRTRANSPARENTBLT),
            "::",
            stringify!(rclBounds)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRTRANSPARENTBLT>())).xDest as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRTRANSPARENTBLT),
            "::",
            stringify!(xDest)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRTRANSPARENTBLT>())).yDest as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRTRANSPARENTBLT),
            "::",
            stringify!(yDest)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRTRANSPARENTBLT>())).cxDest as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRTRANSPARENTBLT),
            "::",
            stringify!(cxDest)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRTRANSPARENTBLT>())).cyDest as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRTRANSPARENTBLT),
            "::",
            stringify!(cyDest)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRTRANSPARENTBLT>())).dwRop as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRTRANSPARENTBLT),
            "::",
            stringify!(dwRop)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRTRANSPARENTBLT>())).xSrc as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRTRANSPARENTBLT),
            "::",
            stringify!(xSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRTRANSPARENTBLT>())).ySrc as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRTRANSPARENTBLT),
            "::",
            stringify!(ySrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRTRANSPARENTBLT>())).xformSrc as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRTRANSPARENTBLT),
            "::",
            stringify!(xformSrc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagEMRTRANSPARENTBLT>())).crBkColorSrc as *const _ as usize
        },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRTRANSPARENTBLT),
            "::",
            stringify!(crBkColorSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRTRANSPARENTBLT>())).iUsageSrc as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRTRANSPARENTBLT),
            "::",
            stringify!(iUsageSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRTRANSPARENTBLT>())).offBmiSrc as *const _ as usize },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRTRANSPARENTBLT),
            "::",
            stringify!(offBmiSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRTRANSPARENTBLT>())).cbBmiSrc as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRTRANSPARENTBLT),
            "::",
            stringify!(cbBmiSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRTRANSPARENTBLT>())).offBitsSrc as *const _ as usize },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRTRANSPARENTBLT),
            "::",
            stringify!(offBitsSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRTRANSPARENTBLT>())).cbBitsSrc as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRTRANSPARENTBLT),
            "::",
            stringify!(cbBitsSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRTRANSPARENTBLT>())).cxSrc as *const _ as usize },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRTRANSPARENTBLT),
            "::",
            stringify!(cxSrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEMRTRANSPARENTBLT>())).cySrc as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEMRTRANSPARENTBLT),
            "::",
            stringify!(cySrc)
        )
    );
}
pub type EMRTRANSPARENTBLT = tagEMRTRANSPARENTBLT;
pub type PEMRTRANSPARENTBLT = *mut tagEMRTRANSPARENTBLT;
extern "C" {
    pub fn wglCopyContext(arg1: HGLRC, arg2: HGLRC, arg3: UINT) -> BOOL;
}
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) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn wglShareLists(arg1: HGLRC, arg2: HGLRC) -> BOOL;
}
extern "C" {
    pub fn wglUseFontBitmapsA(arg1: HDC, arg2: DWORD, arg3: DWORD, arg4: DWORD) -> BOOL;
}
extern "C" {
    pub fn wglUseFontBitmapsW(arg1: HDC, arg2: DWORD, arg3: DWORD, arg4: DWORD) -> BOOL;
}
extern "C" {
    pub fn SwapBuffers(arg1: HDC) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _POINTFLOAT {
    pub x: FLOAT,
    pub y: FLOAT,
}
#[test]
fn bindgen_test_layout__POINTFLOAT() {
    assert_eq!(
        ::std::mem::size_of::<_POINTFLOAT>(),
        8usize,
        concat!("Size of: ", stringify!(_POINTFLOAT))
    );
    assert_eq!(
        ::std::mem::align_of::<_POINTFLOAT>(),
        4usize,
        concat!("Alignment of ", stringify!(_POINTFLOAT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_POINTFLOAT>())).x as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_POINTFLOAT),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_POINTFLOAT>())).y as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_POINTFLOAT),
            "::",
            stringify!(y)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__GLYPHMETRICSFLOAT() {
    assert_eq!(
        ::std::mem::size_of::<_GLYPHMETRICSFLOAT>(),
        24usize,
        concat!("Size of: ", stringify!(_GLYPHMETRICSFLOAT))
    );
    assert_eq!(
        ::std::mem::align_of::<_GLYPHMETRICSFLOAT>(),
        4usize,
        concat!("Alignment of ", stringify!(_GLYPHMETRICSFLOAT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GLYPHMETRICSFLOAT>())).gmfBlackBoxX as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_GLYPHMETRICSFLOAT),
            "::",
            stringify!(gmfBlackBoxX)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GLYPHMETRICSFLOAT>())).gmfBlackBoxY as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_GLYPHMETRICSFLOAT),
            "::",
            stringify!(gmfBlackBoxY)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GLYPHMETRICSFLOAT>())).gmfptGlyphOrigin as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_GLYPHMETRICSFLOAT),
            "::",
            stringify!(gmfptGlyphOrigin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GLYPHMETRICSFLOAT>())).gmfCellIncX as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_GLYPHMETRICSFLOAT),
            "::",
            stringify!(gmfCellIncX)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GLYPHMETRICSFLOAT>())).gmfCellIncY as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_GLYPHMETRICSFLOAT),
            "::",
            stringify!(gmfCellIncY)
        )
    );
}
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,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
#[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,
}
#[test]
fn bindgen_test_layout_tagLAYERPLANEDESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<tagLAYERPLANEDESCRIPTOR>(),
        32usize,
        concat!("Size of: ", stringify!(tagLAYERPLANEDESCRIPTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<tagLAYERPLANEDESCRIPTOR>(),
        4usize,
        concat!("Alignment of ", stringify!(tagLAYERPLANEDESCRIPTOR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLAYERPLANEDESCRIPTOR>())).nSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLAYERPLANEDESCRIPTOR),
            "::",
            stringify!(nSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagLAYERPLANEDESCRIPTOR>())).nVersion as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLAYERPLANEDESCRIPTOR),
            "::",
            stringify!(nVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLAYERPLANEDESCRIPTOR>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLAYERPLANEDESCRIPTOR),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagLAYERPLANEDESCRIPTOR>())).iPixelType as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLAYERPLANEDESCRIPTOR),
            "::",
            stringify!(iPixelType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagLAYERPLANEDESCRIPTOR>())).cColorBits as *const _ as usize
        },
        9usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLAYERPLANEDESCRIPTOR),
            "::",
            stringify!(cColorBits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagLAYERPLANEDESCRIPTOR>())).cRedBits as *const _ as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLAYERPLANEDESCRIPTOR),
            "::",
            stringify!(cRedBits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagLAYERPLANEDESCRIPTOR>())).cRedShift as *const _ as usize
        },
        11usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLAYERPLANEDESCRIPTOR),
            "::",
            stringify!(cRedShift)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagLAYERPLANEDESCRIPTOR>())).cGreenBits as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLAYERPLANEDESCRIPTOR),
            "::",
            stringify!(cGreenBits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagLAYERPLANEDESCRIPTOR>())).cGreenShift as *const _ as usize
        },
        13usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLAYERPLANEDESCRIPTOR),
            "::",
            stringify!(cGreenShift)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagLAYERPLANEDESCRIPTOR>())).cBlueBits as *const _ as usize
        },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLAYERPLANEDESCRIPTOR),
            "::",
            stringify!(cBlueBits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagLAYERPLANEDESCRIPTOR>())).cBlueShift as *const _ as usize
        },
        15usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLAYERPLANEDESCRIPTOR),
            "::",
            stringify!(cBlueShift)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagLAYERPLANEDESCRIPTOR>())).cAlphaBits as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLAYERPLANEDESCRIPTOR),
            "::",
            stringify!(cAlphaBits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagLAYERPLANEDESCRIPTOR>())).cAlphaShift as *const _ as usize
        },
        17usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLAYERPLANEDESCRIPTOR),
            "::",
            stringify!(cAlphaShift)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagLAYERPLANEDESCRIPTOR>())).cAccumBits as *const _ as usize
        },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLAYERPLANEDESCRIPTOR),
            "::",
            stringify!(cAccumBits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagLAYERPLANEDESCRIPTOR>())).cAccumRedBits as *const _ as usize
        },
        19usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLAYERPLANEDESCRIPTOR),
            "::",
            stringify!(cAccumRedBits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagLAYERPLANEDESCRIPTOR>())).cAccumGreenBits as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLAYERPLANEDESCRIPTOR),
            "::",
            stringify!(cAccumGreenBits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagLAYERPLANEDESCRIPTOR>())).cAccumBlueBits as *const _ as usize
        },
        21usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLAYERPLANEDESCRIPTOR),
            "::",
            stringify!(cAccumBlueBits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagLAYERPLANEDESCRIPTOR>())).cAccumAlphaBits as *const _ as usize
        },
        22usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLAYERPLANEDESCRIPTOR),
            "::",
            stringify!(cAccumAlphaBits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagLAYERPLANEDESCRIPTOR>())).cDepthBits as *const _ as usize
        },
        23usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLAYERPLANEDESCRIPTOR),
            "::",
            stringify!(cDepthBits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagLAYERPLANEDESCRIPTOR>())).cStencilBits as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLAYERPLANEDESCRIPTOR),
            "::",
            stringify!(cStencilBits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagLAYERPLANEDESCRIPTOR>())).cAuxBuffers as *const _ as usize
        },
        25usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLAYERPLANEDESCRIPTOR),
            "::",
            stringify!(cAuxBuffers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagLAYERPLANEDESCRIPTOR>())).iLayerPlane as *const _ as usize
        },
        26usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLAYERPLANEDESCRIPTOR),
            "::",
            stringify!(iLayerPlane)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagLAYERPLANEDESCRIPTOR>())).bReserved as *const _ as usize
        },
        27usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLAYERPLANEDESCRIPTOR),
            "::",
            stringify!(bReserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagLAYERPLANEDESCRIPTOR>())).crTransparent as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLAYERPLANEDESCRIPTOR),
            "::",
            stringify!(crTransparent)
        )
    );
}
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,
    ) -> BOOL;
}
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: BOOL) -> BOOL;
}
extern "C" {
    pub fn wglSwapLayerBuffers(arg1: HDC, arg2: UINT) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _WGLSWAP {
    pub hdc: HDC,
    pub uiFlags: UINT,
}
#[test]
fn bindgen_test_layout__WGLSWAP() {
    assert_eq!(
        ::std::mem::size_of::<_WGLSWAP>(),
        16usize,
        concat!("Size of: ", stringify!(_WGLSWAP))
    );
    assert_eq!(
        ::std::mem::align_of::<_WGLSWAP>(),
        8usize,
        concat!("Alignment of ", stringify!(_WGLSWAP))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WGLSWAP>())).hdc as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_WGLSWAP),
            "::",
            stringify!(hdc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WGLSWAP>())).uiFlags as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_WGLSWAP),
            "::",
            stringify!(uiFlags)
        )
    );
}
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 MENUTEMPLATE = MENUTEMPLATEA;
pub type LPMENUTEMPLATEA = PVOID;
pub type LPMENUTEMPLATEW = PVOID;
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) -> BOOL,
>;
pub type WNDENUMPROC =
    ::std::option::Option<unsafe extern "C" fn(arg1: HWND, arg2: LPARAM) -> BOOL>;
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) -> BOOL>;
pub type PROPENUMPROCW =
    ::std::option::Option<unsafe extern "C" fn(arg1: HWND, arg2: LPCWSTR, arg3: HANDLE) -> BOOL>;
pub type PROPENUMPROCEXA = ::std::option::Option<
    unsafe extern "C" fn(arg1: HWND, arg2: LPSTR, arg3: HANDLE, arg4: ULONG_PTR) -> BOOL,
>;
pub type PROPENUMPROCEXW = ::std::option::Option<
    unsafe extern "C" fn(arg1: HWND, arg2: LPWSTR, arg3: HANDLE, arg4: ULONG_PTR) -> BOOL,
>;
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,
    ) -> BOOL,
>;
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) -> BOOL>;
pub type NAMEENUMPROCW =
    ::std::option::Option<unsafe extern "C" fn(arg1: LPWSTR, arg2: LPARAM) -> BOOL>;
pub type WINSTAENUMPROCA = NAMEENUMPROCA;
pub type DESKTOPENUMPROCA = NAMEENUMPROCA;
pub type WINSTAENUMPROCW = NAMEENUMPROCW;
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,
}
#[test]
fn bindgen_test_layout_tagCBT_CREATEWNDA() {
    assert_eq!(
        ::std::mem::size_of::<tagCBT_CREATEWNDA>(),
        16usize,
        concat!("Size of: ", stringify!(tagCBT_CREATEWNDA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCBT_CREATEWNDA>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCBT_CREATEWNDA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCBT_CREATEWNDA>())).lpcs as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCBT_CREATEWNDA),
            "::",
            stringify!(lpcs)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagCBT_CREATEWNDA>())).hwndInsertAfter as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCBT_CREATEWNDA),
            "::",
            stringify!(hwndInsertAfter)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagCBT_CREATEWNDW() {
    assert_eq!(
        ::std::mem::size_of::<tagCBT_CREATEWNDW>(),
        16usize,
        concat!("Size of: ", stringify!(tagCBT_CREATEWNDW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCBT_CREATEWNDW>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCBT_CREATEWNDW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCBT_CREATEWNDW>())).lpcs as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCBT_CREATEWNDW),
            "::",
            stringify!(lpcs)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagCBT_CREATEWNDW>())).hwndInsertAfter as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCBT_CREATEWNDW),
            "::",
            stringify!(hwndInsertAfter)
        )
    );
}
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: BOOL,
    pub hWndActive: HWND,
}
#[test]
fn bindgen_test_layout_tagCBTACTIVATESTRUCT() {
    assert_eq!(
        ::std::mem::size_of::<tagCBTACTIVATESTRUCT>(),
        16usize,
        concat!("Size of: ", stringify!(tagCBTACTIVATESTRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCBTACTIVATESTRUCT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCBTACTIVATESTRUCT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCBTACTIVATESTRUCT>())).fMouse as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCBTACTIVATESTRUCT),
            "::",
            stringify!(fMouse)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCBTACTIVATESTRUCT>())).hWndActive as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCBTACTIVATESTRUCT),
            "::",
            stringify!(hWndActive)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagWTSSESSION_NOTIFICATION() {
    assert_eq!(
        ::std::mem::size_of::<tagWTSSESSION_NOTIFICATION>(),
        8usize,
        concat!("Size of: ", stringify!(tagWTSSESSION_NOTIFICATION))
    );
    assert_eq!(
        ::std::mem::align_of::<tagWTSSESSION_NOTIFICATION>(),
        4usize,
        concat!("Alignment of ", stringify!(tagWTSSESSION_NOTIFICATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagWTSSESSION_NOTIFICATION>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWTSSESSION_NOTIFICATION),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagWTSSESSION_NOTIFICATION>())).dwSessionId as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWTSSESSION_NOTIFICATION),
            "::",
            stringify!(dwSessionId)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_SHELLHOOKINFO() {
    assert_eq!(
        ::std::mem::size_of::<SHELLHOOKINFO>(),
        24usize,
        concat!("Size of: ", stringify!(SHELLHOOKINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<SHELLHOOKINFO>(),
        8usize,
        concat!("Alignment of ", stringify!(SHELLHOOKINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SHELLHOOKINFO>())).hwnd as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(SHELLHOOKINFO),
            "::",
            stringify!(hwnd)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SHELLHOOKINFO>())).rc as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(SHELLHOOKINFO),
            "::",
            stringify!(rc)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagEVENTMSG() {
    assert_eq!(
        ::std::mem::size_of::<tagEVENTMSG>(),
        24usize,
        concat!("Size of: ", stringify!(tagEVENTMSG))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEVENTMSG>(),
        8usize,
        concat!("Alignment of ", stringify!(tagEVENTMSG))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEVENTMSG>())).message as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEVENTMSG),
            "::",
            stringify!(message)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEVENTMSG>())).paramL as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEVENTMSG),
            "::",
            stringify!(paramL)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEVENTMSG>())).paramH as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEVENTMSG),
            "::",
            stringify!(paramH)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEVENTMSG>())).time as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEVENTMSG),
            "::",
            stringify!(time)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEVENTMSG>())).hwnd as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEVENTMSG),
            "::",
            stringify!(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,
}
#[test]
fn bindgen_test_layout_tagCWPSTRUCT() {
    assert_eq!(
        ::std::mem::size_of::<tagCWPSTRUCT>(),
        32usize,
        concat!("Size of: ", stringify!(tagCWPSTRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCWPSTRUCT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCWPSTRUCT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCWPSTRUCT>())).lParam as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCWPSTRUCT),
            "::",
            stringify!(lParam)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCWPSTRUCT>())).wParam as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCWPSTRUCT),
            "::",
            stringify!(wParam)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCWPSTRUCT>())).message as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCWPSTRUCT),
            "::",
            stringify!(message)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCWPSTRUCT>())).hwnd as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCWPSTRUCT),
            "::",
            stringify!(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,
}
#[test]
fn bindgen_test_layout_tagCWPRETSTRUCT() {
    assert_eq!(
        ::std::mem::size_of::<tagCWPRETSTRUCT>(),
        40usize,
        concat!("Size of: ", stringify!(tagCWPRETSTRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCWPRETSTRUCT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCWPRETSTRUCT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCWPRETSTRUCT>())).lResult as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCWPRETSTRUCT),
            "::",
            stringify!(lResult)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCWPRETSTRUCT>())).lParam as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCWPRETSTRUCT),
            "::",
            stringify!(lParam)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCWPRETSTRUCT>())).wParam as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCWPRETSTRUCT),
            "::",
            stringify!(wParam)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCWPRETSTRUCT>())).message as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCWPRETSTRUCT),
            "::",
            stringify!(message)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCWPRETSTRUCT>())).hwnd as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCWPRETSTRUCT),
            "::",
            stringify!(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,
}
#[test]
fn bindgen_test_layout_tagKBDLLHOOKSTRUCT() {
    assert_eq!(
        ::std::mem::size_of::<tagKBDLLHOOKSTRUCT>(),
        24usize,
        concat!("Size of: ", stringify!(tagKBDLLHOOKSTRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagKBDLLHOOKSTRUCT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagKBDLLHOOKSTRUCT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagKBDLLHOOKSTRUCT>())).vkCode as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagKBDLLHOOKSTRUCT),
            "::",
            stringify!(vkCode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagKBDLLHOOKSTRUCT>())).scanCode as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagKBDLLHOOKSTRUCT),
            "::",
            stringify!(scanCode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagKBDLLHOOKSTRUCT>())).flags as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagKBDLLHOOKSTRUCT),
            "::",
            stringify!(flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagKBDLLHOOKSTRUCT>())).time as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagKBDLLHOOKSTRUCT),
            "::",
            stringify!(time)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagKBDLLHOOKSTRUCT>())).dwExtraInfo as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagKBDLLHOOKSTRUCT),
            "::",
            stringify!(dwExtraInfo)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagMSLLHOOKSTRUCT() {
    assert_eq!(
        ::std::mem::size_of::<tagMSLLHOOKSTRUCT>(),
        32usize,
        concat!("Size of: ", stringify!(tagMSLLHOOKSTRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMSLLHOOKSTRUCT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagMSLLHOOKSTRUCT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMSLLHOOKSTRUCT>())).pt as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMSLLHOOKSTRUCT),
            "::",
            stringify!(pt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMSLLHOOKSTRUCT>())).mouseData as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMSLLHOOKSTRUCT),
            "::",
            stringify!(mouseData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMSLLHOOKSTRUCT>())).flags as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMSLLHOOKSTRUCT),
            "::",
            stringify!(flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMSLLHOOKSTRUCT>())).time as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMSLLHOOKSTRUCT),
            "::",
            stringify!(time)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMSLLHOOKSTRUCT>())).dwExtraInfo as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMSLLHOOKSTRUCT),
            "::",
            stringify!(dwExtraInfo)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagDEBUGHOOKINFO() {
    assert_eq!(
        ::std::mem::size_of::<tagDEBUGHOOKINFO>(),
        32usize,
        concat!("Size of: ", stringify!(tagDEBUGHOOKINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagDEBUGHOOKINFO>(),
        8usize,
        concat!("Alignment of ", stringify!(tagDEBUGHOOKINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDEBUGHOOKINFO>())).idThread as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDEBUGHOOKINFO),
            "::",
            stringify!(idThread)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagDEBUGHOOKINFO>())).idThreadInstaller as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDEBUGHOOKINFO),
            "::",
            stringify!(idThreadInstaller)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDEBUGHOOKINFO>())).lParam as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDEBUGHOOKINFO),
            "::",
            stringify!(lParam)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDEBUGHOOKINFO>())).wParam as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDEBUGHOOKINFO),
            "::",
            stringify!(wParam)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDEBUGHOOKINFO>())).code as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDEBUGHOOKINFO),
            "::",
            stringify!(code)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagMOUSEHOOKSTRUCT() {
    assert_eq!(
        ::std::mem::size_of::<tagMOUSEHOOKSTRUCT>(),
        32usize,
        concat!("Size of: ", stringify!(tagMOUSEHOOKSTRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMOUSEHOOKSTRUCT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagMOUSEHOOKSTRUCT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMOUSEHOOKSTRUCT>())).pt as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMOUSEHOOKSTRUCT),
            "::",
            stringify!(pt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMOUSEHOOKSTRUCT>())).hwnd as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMOUSEHOOKSTRUCT),
            "::",
            stringify!(hwnd)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMOUSEHOOKSTRUCT>())).wHitTestCode as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMOUSEHOOKSTRUCT),
            "::",
            stringify!(wHitTestCode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMOUSEHOOKSTRUCT>())).dwExtraInfo as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMOUSEHOOKSTRUCT),
            "::",
            stringify!(dwExtraInfo)
        )
    );
}
pub type MOUSEHOOKSTRUCT = tagMOUSEHOOKSTRUCT;
pub type LPMOUSEHOOKSTRUCT = *mut tagMOUSEHOOKSTRUCT;
pub type PMOUSEHOOKSTRUCT = *mut tagMOUSEHOOKSTRUCT;
#[repr(C)]
#[repr(align(8))]
#[derive(Debug, Copy, Clone)]
pub struct tagMOUSEHOOKSTRUCTEX {
    pub __bindgen_padding_0: [u32; 8usize],
    pub mouseData: DWORD,
}
#[test]
fn bindgen_test_layout_tagMOUSEHOOKSTRUCTEX() {
    assert_eq!(
        ::std::mem::size_of::<tagMOUSEHOOKSTRUCTEX>(),
        40usize,
        concat!("Size of: ", stringify!(tagMOUSEHOOKSTRUCTEX))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMOUSEHOOKSTRUCTEX>(),
        8usize,
        concat!("Alignment of ", stringify!(tagMOUSEHOOKSTRUCTEX))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMOUSEHOOKSTRUCTEX>())).mouseData as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMOUSEHOOKSTRUCTEX),
            "::",
            stringify!(mouseData)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagHARDWAREHOOKSTRUCT() {
    assert_eq!(
        ::std::mem::size_of::<tagHARDWAREHOOKSTRUCT>(),
        32usize,
        concat!("Size of: ", stringify!(tagHARDWAREHOOKSTRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagHARDWAREHOOKSTRUCT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagHARDWAREHOOKSTRUCT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHARDWAREHOOKSTRUCT>())).hwnd as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHARDWAREHOOKSTRUCT),
            "::",
            stringify!(hwnd)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHARDWAREHOOKSTRUCT>())).message as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHARDWAREHOOKSTRUCT),
            "::",
            stringify!(message)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHARDWAREHOOKSTRUCT>())).wParam as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHARDWAREHOOKSTRUCT),
            "::",
            stringify!(wParam)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHARDWAREHOOKSTRUCT>())).lParam as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHARDWAREHOOKSTRUCT),
            "::",
            stringify!(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) -> BOOL;
}
extern "C" {
    pub fn GetKeyboardLayoutNameA(pwszKLID: LPSTR) -> BOOL;
}
extern "C" {
    pub fn GetKeyboardLayoutNameW(pwszKLID: LPWSTR) -> BOOL;
}
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,
}
#[test]
fn bindgen_test_layout_tagMOUSEMOVEPOINT() {
    assert_eq!(
        ::std::mem::size_of::<tagMOUSEMOVEPOINT>(),
        24usize,
        concat!("Size of: ", stringify!(tagMOUSEMOVEPOINT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMOUSEMOVEPOINT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagMOUSEMOVEPOINT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMOUSEMOVEPOINT>())).x as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMOUSEMOVEPOINT),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMOUSEMOVEPOINT>())).y as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMOUSEMOVEPOINT),
            "::",
            stringify!(y)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMOUSEMOVEPOINT>())).time as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMOUSEMOVEPOINT),
            "::",
            stringify!(time)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMOUSEMOVEPOINT>())).dwExtraInfo as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMOUSEMOVEPOINT),
            "::",
            stringify!(dwExtraInfo)
        )
    );
}
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: *mut DEVMODEA,
        dwFlags: DWORD,
        dwDesiredAccess: ACCESS_MASK,
        lpsa: LPSECURITY_ATTRIBUTES,
    ) -> HDESK;
}
extern "C" {
    pub fn CreateDesktopW(
        lpszDesktop: LPCWSTR,
        lpszDevice: LPCWSTR,
        pDevmode: *mut DEVMODEW,
        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: BOOL,
        dwDesiredAccess: ACCESS_MASK,
    ) -> HDESK;
}
extern "C" {
    pub fn OpenDesktopW(
        lpszDesktop: LPCWSTR,
        dwFlags: DWORD,
        fInherit: BOOL,
        dwDesiredAccess: ACCESS_MASK,
    ) -> HDESK;
}
extern "C" {
    pub fn OpenInputDesktop(dwFlags: DWORD, fInherit: BOOL, dwDesiredAccess: ACCESS_MASK) -> HDESK;
}
extern "C" {
    pub fn EnumDesktopsA(hwinsta: HWINSTA, lpEnumFunc: DESKTOPENUMPROCA, lParam: LPARAM) -> BOOL;
}
extern "C" {
    pub fn EnumDesktopsW(hwinsta: HWINSTA, lpEnumFunc: DESKTOPENUMPROCW, lParam: LPARAM) -> BOOL;
}
extern "C" {
    pub fn EnumDesktopWindows(hDesktop: HDESK, lpfn: WNDENUMPROC, lParam: LPARAM) -> BOOL;
}
extern "C" {
    pub fn SwitchDesktop(hDesktop: HDESK) -> BOOL;
}
extern "C" {
    pub fn SetThreadDesktop(hDesktop: HDESK) -> BOOL;
}
extern "C" {
    pub fn CloseDesktop(hDesktop: HDESK) -> BOOL;
}
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: BOOL,
        dwDesiredAccess: ACCESS_MASK,
    ) -> HWINSTA;
}
extern "C" {
    pub fn OpenWindowStationW(
        lpszWinSta: LPCWSTR,
        fInherit: BOOL,
        dwDesiredAccess: ACCESS_MASK,
    ) -> HWINSTA;
}
extern "C" {
    pub fn EnumWindowStationsA(lpEnumFunc: WINSTAENUMPROCA, lParam: LPARAM) -> BOOL;
}
extern "C" {
    pub fn EnumWindowStationsW(lpEnumFunc: WINSTAENUMPROCW, lParam: LPARAM) -> BOOL;
}
extern "C" {
    pub fn CloseWindowStation(hWinSta: HWINSTA) -> BOOL;
}
extern "C" {
    pub fn SetProcessWindowStation(hWinSta: HWINSTA) -> BOOL;
}
extern "C" {
    pub fn GetProcessWindowStation() -> HWINSTA;
}
extern "C" {
    pub fn SetUserObjectSecurity(
        hObj: HANDLE,
        pSIRequested: PSECURITY_INFORMATION,
        pSID: PSECURITY_DESCRIPTOR,
    ) -> BOOL;
}
extern "C" {
    pub fn GetUserObjectSecurity(
        hObj: HANDLE,
        pSIRequested: PSECURITY_INFORMATION,
        pSID: PSECURITY_DESCRIPTOR,
        nLength: DWORD,
        lpnLengthNeeded: LPDWORD,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagUSEROBJECTFLAGS {
    pub fInherit: BOOL,
    pub fReserved: BOOL,
    pub dwFlags: DWORD,
}
#[test]
fn bindgen_test_layout_tagUSEROBJECTFLAGS() {
    assert_eq!(
        ::std::mem::size_of::<tagUSEROBJECTFLAGS>(),
        12usize,
        concat!("Size of: ", stringify!(tagUSEROBJECTFLAGS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagUSEROBJECTFLAGS>(),
        4usize,
        concat!("Alignment of ", stringify!(tagUSEROBJECTFLAGS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagUSEROBJECTFLAGS>())).fInherit as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagUSEROBJECTFLAGS),
            "::",
            stringify!(fInherit)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagUSEROBJECTFLAGS>())).fReserved as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagUSEROBJECTFLAGS),
            "::",
            stringify!(fReserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagUSEROBJECTFLAGS>())).dwFlags as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagUSEROBJECTFLAGS),
            "::",
            stringify!(dwFlags)
        )
    );
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn GetUserObjectInformationW(
        hObj: HANDLE,
        nIndex: ::std::os::raw::c_int,
        pvInfo: PVOID,
        nLength: DWORD,
        lpnLengthNeeded: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn SetUserObjectInformationA(
        hObj: HANDLE,
        nIndex: ::std::os::raw::c_int,
        pvInfo: PVOID,
        nLength: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn SetUserObjectInformationW(
        hObj: HANDLE,
        nIndex: ::std::os::raw::c_int,
        pvInfo: PVOID,
        nLength: DWORD,
    ) -> BOOL;
}
#[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,
}
#[test]
fn bindgen_test_layout_tagWNDCLASSEXA() {
    assert_eq!(
        ::std::mem::size_of::<tagWNDCLASSEXA>(),
        80usize,
        concat!("Size of: ", stringify!(tagWNDCLASSEXA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagWNDCLASSEXA>(),
        8usize,
        concat!("Alignment of ", stringify!(tagWNDCLASSEXA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSEXA>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSEXA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSEXA>())).style as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSEXA),
            "::",
            stringify!(style)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSEXA>())).lpfnWndProc as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSEXA),
            "::",
            stringify!(lpfnWndProc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSEXA>())).cbClsExtra as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSEXA),
            "::",
            stringify!(cbClsExtra)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSEXA>())).cbWndExtra as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSEXA),
            "::",
            stringify!(cbWndExtra)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSEXA>())).hInstance as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSEXA),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSEXA>())).hIcon as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSEXA),
            "::",
            stringify!(hIcon)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSEXA>())).hCursor as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSEXA),
            "::",
            stringify!(hCursor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSEXA>())).hbrBackground as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSEXA),
            "::",
            stringify!(hbrBackground)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSEXA>())).lpszMenuName as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSEXA),
            "::",
            stringify!(lpszMenuName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSEXA>())).lpszClassName as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSEXA),
            "::",
            stringify!(lpszClassName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSEXA>())).hIconSm as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSEXA),
            "::",
            stringify!(hIconSm)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagWNDCLASSEXW() {
    assert_eq!(
        ::std::mem::size_of::<tagWNDCLASSEXW>(),
        80usize,
        concat!("Size of: ", stringify!(tagWNDCLASSEXW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagWNDCLASSEXW>(),
        8usize,
        concat!("Alignment of ", stringify!(tagWNDCLASSEXW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSEXW>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSEXW),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSEXW>())).style as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSEXW),
            "::",
            stringify!(style)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSEXW>())).lpfnWndProc as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSEXW),
            "::",
            stringify!(lpfnWndProc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSEXW>())).cbClsExtra as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSEXW),
            "::",
            stringify!(cbClsExtra)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSEXW>())).cbWndExtra as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSEXW),
            "::",
            stringify!(cbWndExtra)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSEXW>())).hInstance as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSEXW),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSEXW>())).hIcon as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSEXW),
            "::",
            stringify!(hIcon)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSEXW>())).hCursor as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSEXW),
            "::",
            stringify!(hCursor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSEXW>())).hbrBackground as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSEXW),
            "::",
            stringify!(hbrBackground)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSEXW>())).lpszMenuName as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSEXW),
            "::",
            stringify!(lpszMenuName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSEXW>())).lpszClassName as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSEXW),
            "::",
            stringify!(lpszClassName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSEXW>())).hIconSm as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSEXW),
            "::",
            stringify!(hIconSm)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagWNDCLASSA() {
    assert_eq!(
        ::std::mem::size_of::<tagWNDCLASSA>(),
        72usize,
        concat!("Size of: ", stringify!(tagWNDCLASSA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagWNDCLASSA>(),
        8usize,
        concat!("Alignment of ", stringify!(tagWNDCLASSA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSA>())).style as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSA),
            "::",
            stringify!(style)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSA>())).lpfnWndProc as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSA),
            "::",
            stringify!(lpfnWndProc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSA>())).cbClsExtra as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSA),
            "::",
            stringify!(cbClsExtra)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSA>())).cbWndExtra as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSA),
            "::",
            stringify!(cbWndExtra)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSA>())).hInstance as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSA),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSA>())).hIcon as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSA),
            "::",
            stringify!(hIcon)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSA>())).hCursor as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSA),
            "::",
            stringify!(hCursor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSA>())).hbrBackground as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSA),
            "::",
            stringify!(hbrBackground)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSA>())).lpszMenuName as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSA),
            "::",
            stringify!(lpszMenuName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSA>())).lpszClassName as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSA),
            "::",
            stringify!(lpszClassName)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagWNDCLASSW() {
    assert_eq!(
        ::std::mem::size_of::<tagWNDCLASSW>(),
        72usize,
        concat!("Size of: ", stringify!(tagWNDCLASSW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagWNDCLASSW>(),
        8usize,
        concat!("Alignment of ", stringify!(tagWNDCLASSW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSW>())).style as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSW),
            "::",
            stringify!(style)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSW>())).lpfnWndProc as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSW),
            "::",
            stringify!(lpfnWndProc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSW>())).cbClsExtra as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSW),
            "::",
            stringify!(cbClsExtra)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSW>())).cbWndExtra as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSW),
            "::",
            stringify!(cbWndExtra)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSW>())).hInstance as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSW),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSW>())).hIcon as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSW),
            "::",
            stringify!(hIcon)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSW>())).hCursor as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSW),
            "::",
            stringify!(hCursor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSW>())).hbrBackground as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSW),
            "::",
            stringify!(hbrBackground)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSW>())).lpszMenuName as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSW),
            "::",
            stringify!(lpszMenuName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWNDCLASSW>())).lpszClassName as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWNDCLASSW),
            "::",
            stringify!(lpszClassName)
        )
    );
}
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) -> BOOL;
}
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,
}
#[test]
fn bindgen_test_layout_tagMSG() {
    assert_eq!(
        ::std::mem::size_of::<tagMSG>(),
        48usize,
        concat!("Size of: ", stringify!(tagMSG))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMSG>(),
        8usize,
        concat!("Alignment of ", stringify!(tagMSG))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMSG>())).hwnd as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMSG),
            "::",
            stringify!(hwnd)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMSG>())).message as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMSG),
            "::",
            stringify!(message)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMSG>())).wParam as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMSG),
            "::",
            stringify!(wParam)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMSG>())).lParam as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMSG),
            "::",
            stringify!(lParam)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMSG>())).time as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMSG),
            "::",
            stringify!(time)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMSG>())).pt as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMSG),
            "::",
            stringify!(pt)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagMINMAXINFO() {
    assert_eq!(
        ::std::mem::size_of::<tagMINMAXINFO>(),
        40usize,
        concat!("Size of: ", stringify!(tagMINMAXINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMINMAXINFO>(),
        4usize,
        concat!("Alignment of ", stringify!(tagMINMAXINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMINMAXINFO>())).ptReserved as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMINMAXINFO),
            "::",
            stringify!(ptReserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMINMAXINFO>())).ptMaxSize as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMINMAXINFO),
            "::",
            stringify!(ptMaxSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMINMAXINFO>())).ptMaxPosition as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMINMAXINFO),
            "::",
            stringify!(ptMaxPosition)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMINMAXINFO>())).ptMinTrackSize as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMINMAXINFO),
            "::",
            stringify!(ptMinTrackSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMINMAXINFO>())).ptMaxTrackSize as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMINMAXINFO),
            "::",
            stringify!(ptMaxTrackSize)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagCOPYDATASTRUCT() {
    assert_eq!(
        ::std::mem::size_of::<tagCOPYDATASTRUCT>(),
        24usize,
        concat!("Size of: ", stringify!(tagCOPYDATASTRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCOPYDATASTRUCT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCOPYDATASTRUCT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOPYDATASTRUCT>())).dwData as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOPYDATASTRUCT),
            "::",
            stringify!(dwData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOPYDATASTRUCT>())).cbData as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOPYDATASTRUCT),
            "::",
            stringify!(cbData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOPYDATASTRUCT>())).lpData as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOPYDATASTRUCT),
            "::",
            stringify!(lpData)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagMDINEXTMENU() {
    assert_eq!(
        ::std::mem::size_of::<tagMDINEXTMENU>(),
        24usize,
        concat!("Size of: ", stringify!(tagMDINEXTMENU))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMDINEXTMENU>(),
        8usize,
        concat!("Alignment of ", stringify!(tagMDINEXTMENU))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMDINEXTMENU>())).hmenuIn as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMDINEXTMENU),
            "::",
            stringify!(hmenuIn)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMDINEXTMENU>())).hmenuNext as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMDINEXTMENU),
            "::",
            stringify!(hmenuNext)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMDINEXTMENU>())).hwndNext as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMDINEXTMENU),
            "::",
            stringify!(hwndNext)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_POWERBROADCAST_SETTING() {
    assert_eq!(
        ::std::mem::size_of::<POWERBROADCAST_SETTING>(),
        24usize,
        concat!("Size of: ", stringify!(POWERBROADCAST_SETTING))
    );
    assert_eq!(
        ::std::mem::align_of::<POWERBROADCAST_SETTING>(),
        4usize,
        concat!("Alignment of ", stringify!(POWERBROADCAST_SETTING))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<POWERBROADCAST_SETTING>())).PowerSetting as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(POWERBROADCAST_SETTING),
            "::",
            stringify!(PowerSetting)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<POWERBROADCAST_SETTING>())).DataLength as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(POWERBROADCAST_SETTING),
            "::",
            stringify!(DataLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<POWERBROADCAST_SETTING>())).Data as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(POWERBROADCAST_SETTING),
            "::",
            stringify!(Data)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagWINDOWPOS() {
    assert_eq!(
        ::std::mem::size_of::<tagWINDOWPOS>(),
        40usize,
        concat!("Size of: ", stringify!(tagWINDOWPOS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagWINDOWPOS>(),
        8usize,
        concat!("Alignment of ", stringify!(tagWINDOWPOS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWINDOWPOS>())).hwnd as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWINDOWPOS),
            "::",
            stringify!(hwnd)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWINDOWPOS>())).hwndInsertAfter as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWINDOWPOS),
            "::",
            stringify!(hwndInsertAfter)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWINDOWPOS>())).x as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWINDOWPOS),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWINDOWPOS>())).y as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWINDOWPOS),
            "::",
            stringify!(y)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWINDOWPOS>())).cx as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWINDOWPOS),
            "::",
            stringify!(cx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWINDOWPOS>())).cy as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWINDOWPOS),
            "::",
            stringify!(cy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWINDOWPOS>())).flags as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWINDOWPOS),
            "::",
            stringify!(flags)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagNCCALCSIZE_PARAMS() {
    assert_eq!(
        ::std::mem::size_of::<tagNCCALCSIZE_PARAMS>(),
        56usize,
        concat!("Size of: ", stringify!(tagNCCALCSIZE_PARAMS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagNCCALCSIZE_PARAMS>(),
        8usize,
        concat!("Alignment of ", stringify!(tagNCCALCSIZE_PARAMS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNCCALCSIZE_PARAMS>())).rgrc as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNCCALCSIZE_PARAMS),
            "::",
            stringify!(rgrc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNCCALCSIZE_PARAMS>())).lppos as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNCCALCSIZE_PARAMS),
            "::",
            stringify!(lppos)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagTRACKMOUSEEVENT() {
    assert_eq!(
        ::std::mem::size_of::<tagTRACKMOUSEEVENT>(),
        24usize,
        concat!("Size of: ", stringify!(tagTRACKMOUSEEVENT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagTRACKMOUSEEVENT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagTRACKMOUSEEVENT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTRACKMOUSEEVENT>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTRACKMOUSEEVENT),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTRACKMOUSEEVENT>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTRACKMOUSEEVENT),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTRACKMOUSEEVENT>())).hwndTrack as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTRACKMOUSEEVENT),
            "::",
            stringify!(hwndTrack)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTRACKMOUSEEVENT>())).dwHoverTime as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTRACKMOUSEEVENT),
            "::",
            stringify!(dwHoverTime)
        )
    );
}
pub type TRACKMOUSEEVENT = tagTRACKMOUSEEVENT;
pub type LPTRACKMOUSEEVENT = *mut tagTRACKMOUSEEVENT;
extern "C" {
    pub fn TrackMouseEvent(lpEventTrack: LPTRACKMOUSEEVENT) -> BOOL;
}
extern "C" {
    pub fn DrawEdge(hdc: HDC, qrc: LPRECT, edge: UINT, grfFlags: UINT) -> BOOL;
}
extern "C" {
    pub fn DrawFrameControl(arg1: HDC, arg2: LPRECT, arg3: UINT, arg4: UINT) -> BOOL;
}
extern "C" {
    pub fn DrawCaption(hwnd: HWND, hdc: HDC, lprect: *const RECT, flags: UINT) -> BOOL;
}
extern "C" {
    pub fn DrawAnimatedRects(
        hwnd: HWND,
        idAni: ::std::os::raw::c_int,
        lprcFrom: *const RECT,
        lprcTo: *const RECT,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagACCEL {
    pub fVirt: BYTE,
    pub key: WORD,
    pub cmd: WORD,
}
#[test]
fn bindgen_test_layout_tagACCEL() {
    assert_eq!(
        ::std::mem::size_of::<tagACCEL>(),
        6usize,
        concat!("Size of: ", stringify!(tagACCEL))
    );
    assert_eq!(
        ::std::mem::align_of::<tagACCEL>(),
        2usize,
        concat!("Alignment of ", stringify!(tagACCEL))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagACCEL>())).fVirt as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACCEL),
            "::",
            stringify!(fVirt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagACCEL>())).key as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACCEL),
            "::",
            stringify!(key)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagACCEL>())).cmd as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACCEL),
            "::",
            stringify!(cmd)
        )
    );
}
pub type ACCEL = tagACCEL;
pub type LPACCEL = *mut tagACCEL;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagPAINTSTRUCT {
    pub hdc: HDC,
    pub fErase: BOOL,
    pub rcPaint: RECT,
    pub fRestore: BOOL,
    pub fIncUpdate: BOOL,
    pub rgbReserved: [BYTE; 32usize],
}
#[test]
fn bindgen_test_layout_tagPAINTSTRUCT() {
    assert_eq!(
        ::std::mem::size_of::<tagPAINTSTRUCT>(),
        72usize,
        concat!("Size of: ", stringify!(tagPAINTSTRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagPAINTSTRUCT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagPAINTSTRUCT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPAINTSTRUCT>())).hdc as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPAINTSTRUCT),
            "::",
            stringify!(hdc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPAINTSTRUCT>())).fErase as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPAINTSTRUCT),
            "::",
            stringify!(fErase)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPAINTSTRUCT>())).rcPaint as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPAINTSTRUCT),
            "::",
            stringify!(rcPaint)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPAINTSTRUCT>())).fRestore as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPAINTSTRUCT),
            "::",
            stringify!(fRestore)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPAINTSTRUCT>())).fIncUpdate as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPAINTSTRUCT),
            "::",
            stringify!(fIncUpdate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPAINTSTRUCT>())).rgbReserved as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPAINTSTRUCT),
            "::",
            stringify!(rgbReserved)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagCREATESTRUCTA() {
    assert_eq!(
        ::std::mem::size_of::<tagCREATESTRUCTA>(),
        80usize,
        concat!("Size of: ", stringify!(tagCREATESTRUCTA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCREATESTRUCTA>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCREATESTRUCTA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCREATESTRUCTA>())).lpCreateParams as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCREATESTRUCTA),
            "::",
            stringify!(lpCreateParams)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCREATESTRUCTA>())).hInstance as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCREATESTRUCTA),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCREATESTRUCTA>())).hMenu as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCREATESTRUCTA),
            "::",
            stringify!(hMenu)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCREATESTRUCTA>())).hwndParent as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCREATESTRUCTA),
            "::",
            stringify!(hwndParent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCREATESTRUCTA>())).cy as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCREATESTRUCTA),
            "::",
            stringify!(cy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCREATESTRUCTA>())).cx as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCREATESTRUCTA),
            "::",
            stringify!(cx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCREATESTRUCTA>())).y as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCREATESTRUCTA),
            "::",
            stringify!(y)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCREATESTRUCTA>())).x as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCREATESTRUCTA),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCREATESTRUCTA>())).style as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCREATESTRUCTA),
            "::",
            stringify!(style)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCREATESTRUCTA>())).lpszName as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCREATESTRUCTA),
            "::",
            stringify!(lpszName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCREATESTRUCTA>())).lpszClass as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCREATESTRUCTA),
            "::",
            stringify!(lpszClass)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCREATESTRUCTA>())).dwExStyle as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCREATESTRUCTA),
            "::",
            stringify!(dwExStyle)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagCREATESTRUCTW() {
    assert_eq!(
        ::std::mem::size_of::<tagCREATESTRUCTW>(),
        80usize,
        concat!("Size of: ", stringify!(tagCREATESTRUCTW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCREATESTRUCTW>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCREATESTRUCTW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCREATESTRUCTW>())).lpCreateParams as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCREATESTRUCTW),
            "::",
            stringify!(lpCreateParams)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCREATESTRUCTW>())).hInstance as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCREATESTRUCTW),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCREATESTRUCTW>())).hMenu as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCREATESTRUCTW),
            "::",
            stringify!(hMenu)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCREATESTRUCTW>())).hwndParent as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCREATESTRUCTW),
            "::",
            stringify!(hwndParent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCREATESTRUCTW>())).cy as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCREATESTRUCTW),
            "::",
            stringify!(cy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCREATESTRUCTW>())).cx as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCREATESTRUCTW),
            "::",
            stringify!(cx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCREATESTRUCTW>())).y as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCREATESTRUCTW),
            "::",
            stringify!(y)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCREATESTRUCTW>())).x as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCREATESTRUCTW),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCREATESTRUCTW>())).style as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCREATESTRUCTW),
            "::",
            stringify!(style)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCREATESTRUCTW>())).lpszName as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCREATESTRUCTW),
            "::",
            stringify!(lpszName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCREATESTRUCTW>())).lpszClass as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCREATESTRUCTW),
            "::",
            stringify!(lpszClass)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCREATESTRUCTW>())).dwExStyle as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCREATESTRUCTW),
            "::",
            stringify!(dwExStyle)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagWINDOWPLACEMENT() {
    assert_eq!(
        ::std::mem::size_of::<tagWINDOWPLACEMENT>(),
        44usize,
        concat!("Size of: ", stringify!(tagWINDOWPLACEMENT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagWINDOWPLACEMENT>(),
        4usize,
        concat!("Alignment of ", stringify!(tagWINDOWPLACEMENT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWINDOWPLACEMENT>())).length as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWINDOWPLACEMENT),
            "::",
            stringify!(length)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWINDOWPLACEMENT>())).flags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWINDOWPLACEMENT),
            "::",
            stringify!(flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWINDOWPLACEMENT>())).showCmd as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWINDOWPLACEMENT),
            "::",
            stringify!(showCmd)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagWINDOWPLACEMENT>())).ptMinPosition as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWINDOWPLACEMENT),
            "::",
            stringify!(ptMinPosition)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagWINDOWPLACEMENT>())).ptMaxPosition as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWINDOWPLACEMENT),
            "::",
            stringify!(ptMaxPosition)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagWINDOWPLACEMENT>())).rcNormalPosition as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWINDOWPLACEMENT),
            "::",
            stringify!(rcNormalPosition)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagNMHDR() {
    assert_eq!(
        ::std::mem::size_of::<tagNMHDR>(),
        24usize,
        concat!("Size of: ", stringify!(tagNMHDR))
    );
    assert_eq!(
        ::std::mem::align_of::<tagNMHDR>(),
        8usize,
        concat!("Alignment of ", stringify!(tagNMHDR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNMHDR>())).hwndFrom as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNMHDR),
            "::",
            stringify!(hwndFrom)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNMHDR>())).idFrom as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNMHDR),
            "::",
            stringify!(idFrom)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNMHDR>())).code as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNMHDR),
            "::",
            stringify!(code)
        )
    );
}
pub type NMHDR = tagNMHDR;
pub type LPNMHDR = *mut NMHDR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagSTYLESTRUCT {
    pub styleOld: DWORD,
    pub styleNew: DWORD,
}
#[test]
fn bindgen_test_layout_tagSTYLESTRUCT() {
    assert_eq!(
        ::std::mem::size_of::<tagSTYLESTRUCT>(),
        8usize,
        concat!("Size of: ", stringify!(tagSTYLESTRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagSTYLESTRUCT>(),
        4usize,
        concat!("Alignment of ", stringify!(tagSTYLESTRUCT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTYLESTRUCT>())).styleOld as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTYLESTRUCT),
            "::",
            stringify!(styleOld)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTYLESTRUCT>())).styleNew as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTYLESTRUCT),
            "::",
            stringify!(styleNew)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagMEASUREITEMSTRUCT() {
    assert_eq!(
        ::std::mem::size_of::<tagMEASUREITEMSTRUCT>(),
        32usize,
        concat!("Size of: ", stringify!(tagMEASUREITEMSTRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMEASUREITEMSTRUCT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagMEASUREITEMSTRUCT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMEASUREITEMSTRUCT>())).CtlType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMEASUREITEMSTRUCT),
            "::",
            stringify!(CtlType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMEASUREITEMSTRUCT>())).CtlID as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMEASUREITEMSTRUCT),
            "::",
            stringify!(CtlID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMEASUREITEMSTRUCT>())).itemID as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMEASUREITEMSTRUCT),
            "::",
            stringify!(itemID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMEASUREITEMSTRUCT>())).itemWidth as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMEASUREITEMSTRUCT),
            "::",
            stringify!(itemWidth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMEASUREITEMSTRUCT>())).itemHeight as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMEASUREITEMSTRUCT),
            "::",
            stringify!(itemHeight)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMEASUREITEMSTRUCT>())).itemData as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMEASUREITEMSTRUCT),
            "::",
            stringify!(itemData)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagDRAWITEMSTRUCT() {
    assert_eq!(
        ::std::mem::size_of::<tagDRAWITEMSTRUCT>(),
        64usize,
        concat!("Size of: ", stringify!(tagDRAWITEMSTRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagDRAWITEMSTRUCT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagDRAWITEMSTRUCT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDRAWITEMSTRUCT>())).CtlType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDRAWITEMSTRUCT),
            "::",
            stringify!(CtlType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDRAWITEMSTRUCT>())).CtlID as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDRAWITEMSTRUCT),
            "::",
            stringify!(CtlID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDRAWITEMSTRUCT>())).itemID as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDRAWITEMSTRUCT),
            "::",
            stringify!(itemID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDRAWITEMSTRUCT>())).itemAction as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDRAWITEMSTRUCT),
            "::",
            stringify!(itemAction)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDRAWITEMSTRUCT>())).itemState as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDRAWITEMSTRUCT),
            "::",
            stringify!(itemState)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDRAWITEMSTRUCT>())).hwndItem as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDRAWITEMSTRUCT),
            "::",
            stringify!(hwndItem)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDRAWITEMSTRUCT>())).hDC as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDRAWITEMSTRUCT),
            "::",
            stringify!(hDC)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDRAWITEMSTRUCT>())).rcItem as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDRAWITEMSTRUCT),
            "::",
            stringify!(rcItem)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDRAWITEMSTRUCT>())).itemData as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDRAWITEMSTRUCT),
            "::",
            stringify!(itemData)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagDELETEITEMSTRUCT() {
    assert_eq!(
        ::std::mem::size_of::<tagDELETEITEMSTRUCT>(),
        32usize,
        concat!("Size of: ", stringify!(tagDELETEITEMSTRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagDELETEITEMSTRUCT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagDELETEITEMSTRUCT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDELETEITEMSTRUCT>())).CtlType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDELETEITEMSTRUCT),
            "::",
            stringify!(CtlType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDELETEITEMSTRUCT>())).CtlID as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDELETEITEMSTRUCT),
            "::",
            stringify!(CtlID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDELETEITEMSTRUCT>())).itemID as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDELETEITEMSTRUCT),
            "::",
            stringify!(itemID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDELETEITEMSTRUCT>())).hwndItem as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDELETEITEMSTRUCT),
            "::",
            stringify!(hwndItem)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDELETEITEMSTRUCT>())).itemData as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDELETEITEMSTRUCT),
            "::",
            stringify!(itemData)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagCOMPAREITEMSTRUCT() {
    assert_eq!(
        ::std::mem::size_of::<tagCOMPAREITEMSTRUCT>(),
        56usize,
        concat!("Size of: ", stringify!(tagCOMPAREITEMSTRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCOMPAREITEMSTRUCT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCOMPAREITEMSTRUCT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOMPAREITEMSTRUCT>())).CtlType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOMPAREITEMSTRUCT),
            "::",
            stringify!(CtlType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOMPAREITEMSTRUCT>())).CtlID as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOMPAREITEMSTRUCT),
            "::",
            stringify!(CtlID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOMPAREITEMSTRUCT>())).hwndItem as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOMPAREITEMSTRUCT),
            "::",
            stringify!(hwndItem)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOMPAREITEMSTRUCT>())).itemID1 as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOMPAREITEMSTRUCT),
            "::",
            stringify!(itemID1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOMPAREITEMSTRUCT>())).itemData1 as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOMPAREITEMSTRUCT),
            "::",
            stringify!(itemData1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOMPAREITEMSTRUCT>())).itemID2 as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOMPAREITEMSTRUCT),
            "::",
            stringify!(itemID2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOMPAREITEMSTRUCT>())).itemData2 as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOMPAREITEMSTRUCT),
            "::",
            stringify!(itemData2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOMPAREITEMSTRUCT>())).dwLocaleId as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOMPAREITEMSTRUCT),
            "::",
            stringify!(dwLocaleId)
        )
    );
}
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) -> BOOL;
}
extern "C" {
    pub fn GetMessageW(lpMsg: LPMSG, hWnd: HWND, wMsgFilterMin: UINT, wMsgFilterMax: UINT) -> BOOL;
}
extern "C" {
    pub fn TranslateMessage(lpMsg: *const MSG) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn PeekMessageA(
        lpMsg: LPMSG,
        hWnd: HWND,
        wMsgFilterMin: UINT,
        wMsgFilterMax: UINT,
        wRemoveMsg: UINT,
    ) -> BOOL;
}
extern "C" {
    pub fn PeekMessageW(
        lpMsg: LPMSG,
        hWnd: HWND,
        wMsgFilterMin: UINT,
        wMsgFilterMax: UINT,
        wRemoveMsg: UINT,
    ) -> BOOL;
}
extern "C" {
    pub fn RegisterHotKey(
        hWnd: HWND,
        id: ::std::os::raw::c_int,
        fsModifiers: UINT,
        vk: UINT,
    ) -> BOOL;
}
extern "C" {
    pub fn UnregisterHotKey(hWnd: HWND, id: ::std::os::raw::c_int) -> BOOL;
}
extern "C" {
    pub fn ExitWindowsEx(uFlags: UINT, dwReason: DWORD) -> BOOL;
}
extern "C" {
    pub fn SwapMouseButton(fSwap: BOOL) -> BOOL;
}
extern "C" {
    pub fn GetMessagePos() -> DWORD;
}
extern "C" {
    pub fn GetMessageTime() -> LONG;
}
extern "C" {
    pub fn GetMessageExtraInfo() -> LPARAM;
}
extern "C" {
    pub fn GetUnpredictedMessagePos() -> DWORD;
}
extern "C" {
    pub fn IsWow64Message() -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn SendNotifyMessageW(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> BOOL;
}
extern "C" {
    pub fn SendMessageCallbackA(
        hWnd: HWND,
        Msg: UINT,
        wParam: WPARAM,
        lParam: LPARAM,
        lpResultCallBack: SENDASYNCPROC,
        dwData: ULONG_PTR,
    ) -> BOOL;
}
extern "C" {
    pub fn SendMessageCallbackW(
        hWnd: HWND,
        Msg: UINT,
        wParam: WPARAM,
        lParam: LPARAM,
        lpResultCallBack: SENDASYNCPROC,
        dwData: ULONG_PTR,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BSMINFO {
    pub cbSize: UINT,
    pub hdesk: HDESK,
    pub hwnd: HWND,
    pub luid: LUID,
}
#[test]
fn bindgen_test_layout_BSMINFO() {
    assert_eq!(
        ::std::mem::size_of::<BSMINFO>(),
        32usize,
        concat!("Size of: ", stringify!(BSMINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<BSMINFO>(),
        8usize,
        concat!("Alignment of ", stringify!(BSMINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BSMINFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(BSMINFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BSMINFO>())).hdesk as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(BSMINFO),
            "::",
            stringify!(hdesk)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BSMINFO>())).hwnd as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(BSMINFO),
            "::",
            stringify!(hwnd)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<BSMINFO>())).luid as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(BSMINFO),
            "::",
            stringify!(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;
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) -> BOOL;
}
pub type HPOWERNOTIFY = PVOID;
pub type PHPOWERNOTIFY = *mut HPOWERNOTIFY;
extern "C" {
    pub fn RegisterPowerSettingNotification(
        hRecipient: HANDLE,
        PowerSettingGuid: LPCGUID,
        Flags: DWORD,
    ) -> HPOWERNOTIFY;
}
extern "C" {
    pub fn UnregisterPowerSettingNotification(Handle: HPOWERNOTIFY) -> BOOL;
}
extern "C" {
    pub fn RegisterSuspendResumeNotification(hRecipient: HANDLE, Flags: DWORD) -> HPOWERNOTIFY;
}
extern "C" {
    pub fn UnregisterSuspendResumeNotification(Handle: HPOWERNOTIFY) -> BOOL;
}
extern "C" {
    pub fn PostMessageA(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> BOOL;
}
extern "C" {
    pub fn PostMessageW(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> BOOL;
}
extern "C" {
    pub fn PostThreadMessageA(idThread: DWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> BOOL;
}
extern "C" {
    pub fn PostThreadMessageW(idThread: DWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> BOOL;
}
extern "C" {
    pub fn AttachThreadInput(idAttach: DWORD, idAttachTo: DWORD, fAttach: BOOL) -> BOOL;
}
extern "C" {
    pub fn ReplyMessage(lResult: LRESULT) -> BOOL;
}
extern "C" {
    pub fn WaitMessage() -> BOOL;
}
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 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 InSendMessage() -> BOOL;
}
extern "C" {
    pub fn InSendMessageEx(lpReserved: LPVOID) -> DWORD;
}
extern "C" {
    pub fn GetDoubleClickTime() -> UINT;
}
extern "C" {
    pub fn SetDoubleClickTime(arg1: UINT) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn UnregisterClassW(lpClassName: LPCWSTR, hInstance: HINSTANCE) -> BOOL;
}
extern "C" {
    pub fn GetClassInfoA(
        hInstance: HINSTANCE,
        lpClassName: LPCSTR,
        lpWndClass: LPWNDCLASSA,
    ) -> BOOL;
}
extern "C" {
    pub fn GetClassInfoW(
        hInstance: HINSTANCE,
        lpClassName: LPCWSTR,
        lpWndClass: LPWNDCLASSW,
    ) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn GetClassInfoExW(hInstance: HINSTANCE, lpszClass: LPCWSTR, lpwcx: LPWNDCLASSEXW) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn IsMenu(hMenu: HMENU) -> BOOL;
}
extern "C" {
    pub fn IsChild(hWndParent: HWND, hWnd: HWND) -> BOOL;
}
extern "C" {
    pub fn DestroyWindow(hWnd: HWND) -> BOOL;
}
extern "C" {
    pub fn ShowWindow(hWnd: HWND, nCmdShow: ::std::os::raw::c_int) -> BOOL;
}
extern "C" {
    pub fn AnimateWindow(hWnd: HWND, dwTime: DWORD, dwFlags: DWORD) -> BOOL;
}
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,
    ) -> BOOL;
}
#[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,
}
#[test]
fn bindgen_test_layout_tagUPDATELAYEREDWINDOWINFO() {
    assert_eq!(
        ::std::mem::size_of::<tagUPDATELAYEREDWINDOWINFO>(),
        80usize,
        concat!("Size of: ", stringify!(tagUPDATELAYEREDWINDOWINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagUPDATELAYEREDWINDOWINFO>(),
        8usize,
        concat!("Alignment of ", stringify!(tagUPDATELAYEREDWINDOWINFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagUPDATELAYEREDWINDOWINFO>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagUPDATELAYEREDWINDOWINFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagUPDATELAYEREDWINDOWINFO>())).hdcDst as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagUPDATELAYEREDWINDOWINFO),
            "::",
            stringify!(hdcDst)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagUPDATELAYEREDWINDOWINFO>())).pptDst as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagUPDATELAYEREDWINDOWINFO),
            "::",
            stringify!(pptDst)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagUPDATELAYEREDWINDOWINFO>())).psize as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagUPDATELAYEREDWINDOWINFO),
            "::",
            stringify!(psize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagUPDATELAYEREDWINDOWINFO>())).hdcSrc as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagUPDATELAYEREDWINDOWINFO),
            "::",
            stringify!(hdcSrc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagUPDATELAYEREDWINDOWINFO>())).pptSrc as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagUPDATELAYEREDWINDOWINFO),
            "::",
            stringify!(pptSrc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagUPDATELAYEREDWINDOWINFO>())).crKey as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagUPDATELAYEREDWINDOWINFO),
            "::",
            stringify!(crKey)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagUPDATELAYEREDWINDOWINFO>())).pblend as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagUPDATELAYEREDWINDOWINFO),
            "::",
            stringify!(pblend)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagUPDATELAYEREDWINDOWINFO>())).dwFlags as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagUPDATELAYEREDWINDOWINFO),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagUPDATELAYEREDWINDOWINFO>())).prcDirty as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagUPDATELAYEREDWINDOWINFO),
            "::",
            stringify!(prcDirty)
        )
    );
}
pub type UPDATELAYEREDWINDOWINFO = tagUPDATELAYEREDWINDOWINFO;
pub type PUPDATELAYEREDWINDOWINFO = *mut tagUPDATELAYEREDWINDOWINFO;
extern "C" {
    pub fn UpdateLayeredWindowIndirect(
        hWnd: HWND,
        pULWInfo: *const UPDATELAYEREDWINDOWINFO,
    ) -> BOOL;
}
extern "C" {
    pub fn GetLayeredWindowAttributes(
        hwnd: HWND,
        pcrKey: *mut COLORREF,
        pbAlpha: *mut BYTE,
        pdwFlags: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn PrintWindow(hwnd: HWND, hdcBlt: HDC, nFlags: UINT) -> BOOL;
}
extern "C" {
    pub fn SetLayeredWindowAttributes(
        hwnd: HWND,
        crKey: COLORREF,
        bAlpha: BYTE,
        dwFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn ShowWindowAsync(hWnd: HWND, nCmdShow: ::std::os::raw::c_int) -> BOOL;
}
extern "C" {
    pub fn FlashWindow(hWnd: HWND, bInvert: BOOL) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct FLASHWINFO {
    pub cbSize: UINT,
    pub hwnd: HWND,
    pub dwFlags: DWORD,
    pub uCount: UINT,
    pub dwTimeout: DWORD,
}
#[test]
fn bindgen_test_layout_FLASHWINFO() {
    assert_eq!(
        ::std::mem::size_of::<FLASHWINFO>(),
        32usize,
        concat!("Size of: ", stringify!(FLASHWINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<FLASHWINFO>(),
        8usize,
        concat!("Alignment of ", stringify!(FLASHWINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<FLASHWINFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(FLASHWINFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<FLASHWINFO>())).hwnd as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(FLASHWINFO),
            "::",
            stringify!(hwnd)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<FLASHWINFO>())).dwFlags as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(FLASHWINFO),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<FLASHWINFO>())).uCount as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(FLASHWINFO),
            "::",
            stringify!(uCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<FLASHWINFO>())).dwTimeout as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(FLASHWINFO),
            "::",
            stringify!(dwTimeout)
        )
    );
}
pub type PFLASHWINFO = *mut FLASHWINFO;
extern "C" {
    pub fn FlashWindowEx(pfwi: PFLASHWINFO) -> BOOL;
}
extern "C" {
    pub fn ShowOwnedPopups(hWnd: HWND, fShow: BOOL) -> BOOL;
}
extern "C" {
    pub fn OpenIcon(hWnd: HWND) -> BOOL;
}
extern "C" {
    pub fn CloseWindow(hWnd: HWND) -> BOOL;
}
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: BOOL,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn GetWindowPlacement(hWnd: HWND, lpwndpl: *mut WINDOWPLACEMENT) -> BOOL;
}
extern "C" {
    pub fn SetWindowPlacement(hWnd: HWND, lpwndpl: *const WINDOWPLACEMENT) -> BOOL;
}
extern "C" {
    pub fn GetWindowDisplayAffinity(hWnd: HWND, pdwAffinity: *mut DWORD) -> BOOL;
}
extern "C" {
    pub fn SetWindowDisplayAffinity(hWnd: HWND, dwAffinity: DWORD) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn IsWindowVisible(hWnd: HWND) -> BOOL;
}
extern "C" {
    pub fn IsIconic(hWnd: HWND) -> BOOL;
}
extern "C" {
    pub fn AnyPopup() -> BOOL;
}
extern "C" {
    pub fn BringWindowToTop(hWnd: HWND) -> BOOL;
}
extern "C" {
    pub fn IsZoomed(hWnd: HWND) -> BOOL;
}
#[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,
}
#[test]
fn bindgen_test_layout_DLGTEMPLATE() {
    assert_eq!(
        ::std::mem::size_of::<DLGTEMPLATE>(),
        18usize,
        concat!("Size of: ", stringify!(DLGTEMPLATE))
    );
    assert_eq!(
        ::std::mem::align_of::<DLGTEMPLATE>(),
        2usize,
        concat!("Alignment of ", stringify!(DLGTEMPLATE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DLGTEMPLATE>())).style as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DLGTEMPLATE),
            "::",
            stringify!(style)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DLGTEMPLATE>())).dwExtendedStyle as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(DLGTEMPLATE),
            "::",
            stringify!(dwExtendedStyle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DLGTEMPLATE>())).cdit as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(DLGTEMPLATE),
            "::",
            stringify!(cdit)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DLGTEMPLATE>())).x as *const _ as usize },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(DLGTEMPLATE),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DLGTEMPLATE>())).y as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(DLGTEMPLATE),
            "::",
            stringify!(y)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DLGTEMPLATE>())).cx as *const _ as usize },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(DLGTEMPLATE),
            "::",
            stringify!(cx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DLGTEMPLATE>())).cy as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(DLGTEMPLATE),
            "::",
            stringify!(cy)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_DLGITEMTEMPLATE() {
    assert_eq!(
        ::std::mem::size_of::<DLGITEMTEMPLATE>(),
        18usize,
        concat!("Size of: ", stringify!(DLGITEMTEMPLATE))
    );
    assert_eq!(
        ::std::mem::align_of::<DLGITEMTEMPLATE>(),
        2usize,
        concat!("Alignment of ", stringify!(DLGITEMTEMPLATE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DLGITEMTEMPLATE>())).style as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DLGITEMTEMPLATE),
            "::",
            stringify!(style)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DLGITEMTEMPLATE>())).dwExtendedStyle as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(DLGITEMTEMPLATE),
            "::",
            stringify!(dwExtendedStyle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DLGITEMTEMPLATE>())).x as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(DLGITEMTEMPLATE),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DLGITEMTEMPLATE>())).y as *const _ as usize },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(DLGITEMTEMPLATE),
            "::",
            stringify!(y)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DLGITEMTEMPLATE>())).cx as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(DLGITEMTEMPLATE),
            "::",
            stringify!(cx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DLGITEMTEMPLATE>())).cy as *const _ as usize },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(DLGITEMTEMPLATE),
            "::",
            stringify!(cy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DLGITEMTEMPLATE>())).id as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(DLGITEMTEMPLATE),
            "::",
            stringify!(id)
        )
    );
}
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) -> BOOL;
}
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: BOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn GetDlgItemInt(
        hDlg: HWND,
        nIDDlgItem: ::std::os::raw::c_int,
        lpTranslated: *mut BOOL,
        bSigned: BOOL,
    ) -> UINT;
}
extern "C" {
    pub fn SetDlgItemTextA(hDlg: HWND, nIDDlgItem: ::std::os::raw::c_int, lpString: LPCSTR)
        -> BOOL;
}
extern "C" {
    pub fn SetDlgItemTextW(
        hDlg: HWND,
        nIDDlgItem: ::std::os::raw::c_int,
        lpString: LPCWSTR,
    ) -> BOOL;
}
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) -> BOOL;
}
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,
    ) -> BOOL;
}
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: BOOL) -> HWND;
}
extern "C" {
    pub fn GetNextDlgTabItem(hDlg: HWND, hCtl: HWND, bPrevious: BOOL) -> 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;
}
pub const DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS_DCDC_DEFAULT: DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS = 0;
pub const DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS_DCDC_DISABLE_FONT_UPDATE:
    DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS = 1;
pub const DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS_DCDC_DISABLE_RELAYOUT:
    DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS = 2;
pub type DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS = ::std::os::raw::c_int;
extern "C" {
    pub fn SetDialogControlDpiChangeBehavior(
        hWnd: HWND,
        mask: DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS,
        values: DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS,
    ) -> BOOL;
}
extern "C" {
    pub fn GetDialogControlDpiChangeBehavior(hWnd: HWND) -> DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS;
}
pub const DIALOG_DPI_CHANGE_BEHAVIORS_DDC_DEFAULT: DIALOG_DPI_CHANGE_BEHAVIORS = 0;
pub const DIALOG_DPI_CHANGE_BEHAVIORS_DDC_DISABLE_ALL: DIALOG_DPI_CHANGE_BEHAVIORS = 1;
pub const DIALOG_DPI_CHANGE_BEHAVIORS_DDC_DISABLE_RESIZE: DIALOG_DPI_CHANGE_BEHAVIORS = 2;
pub const DIALOG_DPI_CHANGE_BEHAVIORS_DDC_DISABLE_CONTROL_RELAYOUT: DIALOG_DPI_CHANGE_BEHAVIORS = 4;
pub type DIALOG_DPI_CHANGE_BEHAVIORS = ::std::os::raw::c_int;
extern "C" {
    pub fn SetDialogDpiChangeBehavior(
        hDlg: HWND,
        mask: DIALOG_DPI_CHANGE_BEHAVIORS,
        values: DIALOG_DPI_CHANGE_BEHAVIORS,
    ) -> BOOL;
}
extern "C" {
    pub fn GetDialogDpiChangeBehavior(hDlg: HWND) -> DIALOG_DPI_CHANGE_BEHAVIORS;
}
extern "C" {
    pub fn CallMsgFilterA(lpMsg: LPMSG, nCode: ::std::os::raw::c_int) -> BOOL;
}
extern "C" {
    pub fn CallMsgFilterW(lpMsg: LPMSG, nCode: ::std::os::raw::c_int) -> BOOL;
}
extern "C" {
    pub fn OpenClipboard(hWndNewOwner: HWND) -> BOOL;
}
extern "C" {
    pub fn CloseClipboard() -> BOOL;
}
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) -> BOOL;
}
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() -> BOOL;
}
extern "C" {
    pub fn IsClipboardFormatAvailable(format: UINT) -> BOOL;
}
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 AddClipboardFormatListener(hwnd: HWND) -> BOOL;
}
extern "C" {
    pub fn RemoveClipboardFormatListener(hwnd: HWND) -> BOOL;
}
extern "C" {
    pub fn GetUpdatedClipboardFormats(
        lpuiFormats: PUINT,
        cFormats: UINT,
        pcFormatsOut: PUINT,
    ) -> BOOL;
}
extern "C" {
    pub fn CharToOemA(pSrc: LPCSTR, pDst: LPSTR) -> BOOL;
}
extern "C" {
    pub fn CharToOemW(pSrc: LPCWSTR, pDst: LPSTR) -> BOOL;
}
extern "C" {
    pub fn OemToCharA(pSrc: LPCSTR, pDst: LPSTR) -> BOOL;
}
extern "C" {
    pub fn OemToCharW(pSrc: LPCSTR, pDst: LPWSTR) -> BOOL;
}
extern "C" {
    pub fn CharToOemBuffA(lpszSrc: LPCSTR, lpszDst: LPSTR, cchDstLength: DWORD) -> BOOL;
}
extern "C" {
    pub fn CharToOemBuffW(lpszSrc: LPCWSTR, lpszDst: LPSTR, cchDstLength: DWORD) -> BOOL;
}
extern "C" {
    pub fn OemToCharBuffA(lpszSrc: LPCSTR, lpszDst: LPSTR, cchDstLength: DWORD) -> BOOL;
}
extern "C" {
    pub fn OemToCharBuffW(lpszSrc: LPCSTR, lpszDst: LPWSTR, cchDstLength: DWORD) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn IsCharAlphaW(ch: WCHAR) -> BOOL;
}
extern "C" {
    pub fn IsCharAlphaNumericA(ch: CHAR) -> BOOL;
}
extern "C" {
    pub fn IsCharAlphaNumericW(ch: WCHAR) -> BOOL;
}
extern "C" {
    pub fn IsCharUpperA(ch: CHAR) -> BOOL;
}
extern "C" {
    pub fn IsCharUpperW(ch: WCHAR) -> BOOL;
}
extern "C" {
    pub fn IsCharLowerA(ch: CHAR) -> BOOL;
}
extern "C" {
    pub fn IsCharLowerW(ch: WCHAR) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn SetKeyboardState(lpKeyState: LPBYTE) -> BOOL;
}
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,
}
#[test]
fn bindgen_test_layout_tagMOUSEINPUT() {
    assert_eq!(
        ::std::mem::size_of::<tagMOUSEINPUT>(),
        32usize,
        concat!("Size of: ", stringify!(tagMOUSEINPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMOUSEINPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagMOUSEINPUT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMOUSEINPUT>())).dx as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMOUSEINPUT),
            "::",
            stringify!(dx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMOUSEINPUT>())).dy as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMOUSEINPUT),
            "::",
            stringify!(dy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMOUSEINPUT>())).mouseData as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMOUSEINPUT),
            "::",
            stringify!(mouseData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMOUSEINPUT>())).dwFlags as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMOUSEINPUT),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMOUSEINPUT>())).time as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMOUSEINPUT),
            "::",
            stringify!(time)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMOUSEINPUT>())).dwExtraInfo as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMOUSEINPUT),
            "::",
            stringify!(dwExtraInfo)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagKEYBDINPUT() {
    assert_eq!(
        ::std::mem::size_of::<tagKEYBDINPUT>(),
        24usize,
        concat!("Size of: ", stringify!(tagKEYBDINPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagKEYBDINPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagKEYBDINPUT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagKEYBDINPUT>())).wVk as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagKEYBDINPUT),
            "::",
            stringify!(wVk)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagKEYBDINPUT>())).wScan as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagKEYBDINPUT),
            "::",
            stringify!(wScan)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagKEYBDINPUT>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagKEYBDINPUT),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagKEYBDINPUT>())).time as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagKEYBDINPUT),
            "::",
            stringify!(time)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagKEYBDINPUT>())).dwExtraInfo as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagKEYBDINPUT),
            "::",
            stringify!(dwExtraInfo)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagHARDWAREINPUT() {
    assert_eq!(
        ::std::mem::size_of::<tagHARDWAREINPUT>(),
        8usize,
        concat!("Size of: ", stringify!(tagHARDWAREINPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagHARDWAREINPUT>(),
        4usize,
        concat!("Alignment of ", stringify!(tagHARDWAREINPUT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHARDWAREINPUT>())).uMsg as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHARDWAREINPUT),
            "::",
            stringify!(uMsg)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHARDWAREINPUT>())).wParamL as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHARDWAREINPUT),
            "::",
            stringify!(wParamL)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHARDWAREINPUT>())).wParamH as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHARDWAREINPUT),
            "::",
            stringify!(wParamH)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagINPUT__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagINPUT__bindgen_ty_1>(),
        32usize,
        concat!("Size of: ", stringify!(tagINPUT__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tagINPUT__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(tagINPUT__bindgen_ty_1))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagINPUT__bindgen_ty_1>())).mi as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagINPUT__bindgen_ty_1),
            "::",
            stringify!(mi)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagINPUT__bindgen_ty_1>())).ki as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagINPUT__bindgen_ty_1),
            "::",
            stringify!(ki)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagINPUT__bindgen_ty_1>())).hi as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagINPUT__bindgen_ty_1),
            "::",
            stringify!(hi)
        )
    );
}
#[test]
fn bindgen_test_layout_tagINPUT() {
    assert_eq!(
        ::std::mem::size_of::<tagINPUT>(),
        40usize,
        concat!("Size of: ", stringify!(tagINPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagINPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagINPUT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagINPUT>())).type_ as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagINPUT),
            "::",
            stringify!(type_)
        )
    );
}
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 HTOUCHINPUT__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HTOUCHINPUT__() {
    assert_eq!(
        ::std::mem::size_of::<HTOUCHINPUT__>(),
        4usize,
        concat!("Size of: ", stringify!(HTOUCHINPUT__))
    );
    assert_eq!(
        ::std::mem::align_of::<HTOUCHINPUT__>(),
        4usize,
        concat!("Alignment of ", stringify!(HTOUCHINPUT__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HTOUCHINPUT__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HTOUCHINPUT__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HTOUCHINPUT = *mut HTOUCHINPUT__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagTOUCHINPUT {
    pub x: LONG,
    pub y: LONG,
    pub hSource: HANDLE,
    pub dwID: DWORD,
    pub dwFlags: DWORD,
    pub dwMask: DWORD,
    pub dwTime: DWORD,
    pub dwExtraInfo: ULONG_PTR,
    pub cxContact: DWORD,
    pub cyContact: DWORD,
}
#[test]
fn bindgen_test_layout_tagTOUCHINPUT() {
    assert_eq!(
        ::std::mem::size_of::<tagTOUCHINPUT>(),
        48usize,
        concat!("Size of: ", stringify!(tagTOUCHINPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagTOUCHINPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagTOUCHINPUT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTOUCHINPUT>())).x as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTOUCHINPUT),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTOUCHINPUT>())).y as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTOUCHINPUT),
            "::",
            stringify!(y)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTOUCHINPUT>())).hSource as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTOUCHINPUT),
            "::",
            stringify!(hSource)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTOUCHINPUT>())).dwID as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTOUCHINPUT),
            "::",
            stringify!(dwID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTOUCHINPUT>())).dwFlags as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTOUCHINPUT),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTOUCHINPUT>())).dwMask as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTOUCHINPUT),
            "::",
            stringify!(dwMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTOUCHINPUT>())).dwTime as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTOUCHINPUT),
            "::",
            stringify!(dwTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTOUCHINPUT>())).dwExtraInfo as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTOUCHINPUT),
            "::",
            stringify!(dwExtraInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTOUCHINPUT>())).cxContact as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTOUCHINPUT),
            "::",
            stringify!(cxContact)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTOUCHINPUT>())).cyContact as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTOUCHINPUT),
            "::",
            stringify!(cyContact)
        )
    );
}
pub type TOUCHINPUT = tagTOUCHINPUT;
pub type PTOUCHINPUT = *mut tagTOUCHINPUT;
pub type PCTOUCHINPUT = *const TOUCHINPUT;
extern "C" {
    pub fn GetTouchInputInfo(
        hTouchInput: HTOUCHINPUT,
        cInputs: UINT,
        pInputs: PTOUCHINPUT,
        cbSize: ::std::os::raw::c_int,
    ) -> BOOL;
}
extern "C" {
    pub fn CloseTouchInputHandle(hTouchInput: HTOUCHINPUT) -> BOOL;
}
extern "C" {
    pub fn RegisterTouchWindow(hwnd: HWND, ulFlags: ULONG) -> BOOL;
}
extern "C" {
    pub fn UnregisterTouchWindow(hwnd: HWND) -> BOOL;
}
extern "C" {
    pub fn IsTouchWindow(hwnd: HWND, pulFlags: PULONG) -> BOOL;
}
pub const tagPOINTER_INPUT_TYPE_PT_POINTER: tagPOINTER_INPUT_TYPE = 1;
pub const tagPOINTER_INPUT_TYPE_PT_TOUCH: tagPOINTER_INPUT_TYPE = 2;
pub const tagPOINTER_INPUT_TYPE_PT_PEN: tagPOINTER_INPUT_TYPE = 3;
pub const tagPOINTER_INPUT_TYPE_PT_MOUSE: tagPOINTER_INPUT_TYPE = 4;
pub const tagPOINTER_INPUT_TYPE_PT_TOUCHPAD: tagPOINTER_INPUT_TYPE = 5;
pub type tagPOINTER_INPUT_TYPE = ::std::os::raw::c_int;
pub type POINTER_INPUT_TYPE = DWORD;
pub type POINTER_FLAGS = UINT32;
pub const tagPOINTER_BUTTON_CHANGE_TYPE_POINTER_CHANGE_NONE: tagPOINTER_BUTTON_CHANGE_TYPE = 0;
pub const tagPOINTER_BUTTON_CHANGE_TYPE_POINTER_CHANGE_FIRSTBUTTON_DOWN:
    tagPOINTER_BUTTON_CHANGE_TYPE = 1;
pub const tagPOINTER_BUTTON_CHANGE_TYPE_POINTER_CHANGE_FIRSTBUTTON_UP:
    tagPOINTER_BUTTON_CHANGE_TYPE = 2;
pub const tagPOINTER_BUTTON_CHANGE_TYPE_POINTER_CHANGE_SECONDBUTTON_DOWN:
    tagPOINTER_BUTTON_CHANGE_TYPE = 3;
pub const tagPOINTER_BUTTON_CHANGE_TYPE_POINTER_CHANGE_SECONDBUTTON_UP:
    tagPOINTER_BUTTON_CHANGE_TYPE = 4;
pub const tagPOINTER_BUTTON_CHANGE_TYPE_POINTER_CHANGE_THIRDBUTTON_DOWN:
    tagPOINTER_BUTTON_CHANGE_TYPE = 5;
pub const tagPOINTER_BUTTON_CHANGE_TYPE_POINTER_CHANGE_THIRDBUTTON_UP:
    tagPOINTER_BUTTON_CHANGE_TYPE = 6;
pub const tagPOINTER_BUTTON_CHANGE_TYPE_POINTER_CHANGE_FOURTHBUTTON_DOWN:
    tagPOINTER_BUTTON_CHANGE_TYPE = 7;
pub const tagPOINTER_BUTTON_CHANGE_TYPE_POINTER_CHANGE_FOURTHBUTTON_UP:
    tagPOINTER_BUTTON_CHANGE_TYPE = 8;
pub const tagPOINTER_BUTTON_CHANGE_TYPE_POINTER_CHANGE_FIFTHBUTTON_DOWN:
    tagPOINTER_BUTTON_CHANGE_TYPE = 9;
pub const tagPOINTER_BUTTON_CHANGE_TYPE_POINTER_CHANGE_FIFTHBUTTON_UP:
    tagPOINTER_BUTTON_CHANGE_TYPE = 10;
pub type tagPOINTER_BUTTON_CHANGE_TYPE = ::std::os::raw::c_int;
pub use self::tagPOINTER_BUTTON_CHANGE_TYPE as POINTER_BUTTON_CHANGE_TYPE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagPOINTER_INFO {
    pub pointerType: POINTER_INPUT_TYPE,
    pub pointerId: UINT32,
    pub frameId: UINT32,
    pub pointerFlags: POINTER_FLAGS,
    pub sourceDevice: HANDLE,
    pub hwndTarget: HWND,
    pub ptPixelLocation: POINT,
    pub ptHimetricLocation: POINT,
    pub ptPixelLocationRaw: POINT,
    pub ptHimetricLocationRaw: POINT,
    pub dwTime: DWORD,
    pub historyCount: UINT32,
    pub InputData: INT32,
    pub dwKeyStates: DWORD,
    pub PerformanceCount: UINT64,
    pub ButtonChangeType: POINTER_BUTTON_CHANGE_TYPE,
}
#[test]
fn bindgen_test_layout_tagPOINTER_INFO() {
    assert_eq!(
        ::std::mem::size_of::<tagPOINTER_INFO>(),
        96usize,
        concat!("Size of: ", stringify!(tagPOINTER_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagPOINTER_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(tagPOINTER_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOINTER_INFO>())).pointerType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_INFO),
            "::",
            stringify!(pointerType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOINTER_INFO>())).pointerId as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_INFO),
            "::",
            stringify!(pointerId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOINTER_INFO>())).frameId as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_INFO),
            "::",
            stringify!(frameId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOINTER_INFO>())).pointerFlags as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_INFO),
            "::",
            stringify!(pointerFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOINTER_INFO>())).sourceDevice as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_INFO),
            "::",
            stringify!(sourceDevice)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOINTER_INFO>())).hwndTarget as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_INFO),
            "::",
            stringify!(hwndTarget)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOINTER_INFO>())).ptPixelLocation as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_INFO),
            "::",
            stringify!(ptPixelLocation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPOINTER_INFO>())).ptHimetricLocation as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_INFO),
            "::",
            stringify!(ptHimetricLocation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPOINTER_INFO>())).ptPixelLocationRaw as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_INFO),
            "::",
            stringify!(ptPixelLocationRaw)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPOINTER_INFO>())).ptHimetricLocationRaw as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_INFO),
            "::",
            stringify!(ptHimetricLocationRaw)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOINTER_INFO>())).dwTime as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_INFO),
            "::",
            stringify!(dwTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOINTER_INFO>())).historyCount as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_INFO),
            "::",
            stringify!(historyCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOINTER_INFO>())).InputData as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_INFO),
            "::",
            stringify!(InputData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOINTER_INFO>())).dwKeyStates as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_INFO),
            "::",
            stringify!(dwKeyStates)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPOINTER_INFO>())).PerformanceCount as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_INFO),
            "::",
            stringify!(PerformanceCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPOINTER_INFO>())).ButtonChangeType as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_INFO),
            "::",
            stringify!(ButtonChangeType)
        )
    );
}
pub type POINTER_INFO = tagPOINTER_INFO;
pub type TOUCH_FLAGS = UINT32;
pub type TOUCH_MASK = UINT32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagPOINTER_TOUCH_INFO {
    pub pointerInfo: POINTER_INFO,
    pub touchFlags: TOUCH_FLAGS,
    pub touchMask: TOUCH_MASK,
    pub rcContact: RECT,
    pub rcContactRaw: RECT,
    pub orientation: UINT32,
    pub pressure: UINT32,
}
#[test]
fn bindgen_test_layout_tagPOINTER_TOUCH_INFO() {
    assert_eq!(
        ::std::mem::size_of::<tagPOINTER_TOUCH_INFO>(),
        144usize,
        concat!("Size of: ", stringify!(tagPOINTER_TOUCH_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagPOINTER_TOUCH_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(tagPOINTER_TOUCH_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPOINTER_TOUCH_INFO>())).pointerInfo as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_TOUCH_INFO),
            "::",
            stringify!(pointerInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPOINTER_TOUCH_INFO>())).touchFlags as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_TOUCH_INFO),
            "::",
            stringify!(touchFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOINTER_TOUCH_INFO>())).touchMask as *const _ as usize },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_TOUCH_INFO),
            "::",
            stringify!(touchMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOINTER_TOUCH_INFO>())).rcContact as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_TOUCH_INFO),
            "::",
            stringify!(rcContact)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPOINTER_TOUCH_INFO>())).rcContactRaw as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_TOUCH_INFO),
            "::",
            stringify!(rcContactRaw)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPOINTER_TOUCH_INFO>())).orientation as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_TOUCH_INFO),
            "::",
            stringify!(orientation)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOINTER_TOUCH_INFO>())).pressure as *const _ as usize },
        140usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_TOUCH_INFO),
            "::",
            stringify!(pressure)
        )
    );
}
pub type POINTER_TOUCH_INFO = tagPOINTER_TOUCH_INFO;
pub type PEN_FLAGS = UINT32;
pub type PEN_MASK = UINT32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagPOINTER_PEN_INFO {
    pub pointerInfo: POINTER_INFO,
    pub penFlags: PEN_FLAGS,
    pub penMask: PEN_MASK,
    pub pressure: UINT32,
    pub rotation: UINT32,
    pub tiltX: INT32,
    pub tiltY: INT32,
}
#[test]
fn bindgen_test_layout_tagPOINTER_PEN_INFO() {
    assert_eq!(
        ::std::mem::size_of::<tagPOINTER_PEN_INFO>(),
        120usize,
        concat!("Size of: ", stringify!(tagPOINTER_PEN_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagPOINTER_PEN_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(tagPOINTER_PEN_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOINTER_PEN_INFO>())).pointerInfo as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_PEN_INFO),
            "::",
            stringify!(pointerInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOINTER_PEN_INFO>())).penFlags as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_PEN_INFO),
            "::",
            stringify!(penFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOINTER_PEN_INFO>())).penMask as *const _ as usize },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_PEN_INFO),
            "::",
            stringify!(penMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOINTER_PEN_INFO>())).pressure as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_PEN_INFO),
            "::",
            stringify!(pressure)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOINTER_PEN_INFO>())).rotation as *const _ as usize },
        108usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_PEN_INFO),
            "::",
            stringify!(rotation)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOINTER_PEN_INFO>())).tiltX as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_PEN_INFO),
            "::",
            stringify!(tiltX)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOINTER_PEN_INFO>())).tiltY as *const _ as usize },
        116usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_PEN_INFO),
            "::",
            stringify!(tiltY)
        )
    );
}
pub type POINTER_PEN_INFO = tagPOINTER_PEN_INFO;
pub const POINTER_FEEDBACK_MODE_POINTER_FEEDBACK_DEFAULT: POINTER_FEEDBACK_MODE = 1;
pub const POINTER_FEEDBACK_MODE_POINTER_FEEDBACK_INDIRECT: POINTER_FEEDBACK_MODE = 2;
pub const POINTER_FEEDBACK_MODE_POINTER_FEEDBACK_NONE: POINTER_FEEDBACK_MODE = 3;
pub type POINTER_FEEDBACK_MODE = ::std::os::raw::c_int;
extern "C" {
    pub fn InitializeTouchInjection(maxCount: UINT32, dwMode: DWORD) -> BOOL;
}
extern "C" {
    pub fn InjectTouchInput(count: UINT32, contacts: *const POINTER_TOUCH_INFO) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagUSAGE_PROPERTIES {
    pub level: USHORT,
    pub page: USHORT,
    pub usage: USHORT,
    pub logicalMinimum: INT32,
    pub logicalMaximum: INT32,
    pub unit: USHORT,
    pub exponent: USHORT,
    pub count: BYTE,
    pub physicalMinimum: INT32,
    pub physicalMaximum: INT32,
}
#[test]
fn bindgen_test_layout_tagUSAGE_PROPERTIES() {
    assert_eq!(
        ::std::mem::size_of::<tagUSAGE_PROPERTIES>(),
        32usize,
        concat!("Size of: ", stringify!(tagUSAGE_PROPERTIES))
    );
    assert_eq!(
        ::std::mem::align_of::<tagUSAGE_PROPERTIES>(),
        4usize,
        concat!("Alignment of ", stringify!(tagUSAGE_PROPERTIES))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagUSAGE_PROPERTIES>())).level as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagUSAGE_PROPERTIES),
            "::",
            stringify!(level)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagUSAGE_PROPERTIES>())).page as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagUSAGE_PROPERTIES),
            "::",
            stringify!(page)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagUSAGE_PROPERTIES>())).usage as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagUSAGE_PROPERTIES),
            "::",
            stringify!(usage)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagUSAGE_PROPERTIES>())).logicalMinimum as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagUSAGE_PROPERTIES),
            "::",
            stringify!(logicalMinimum)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagUSAGE_PROPERTIES>())).logicalMaximum as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagUSAGE_PROPERTIES),
            "::",
            stringify!(logicalMaximum)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagUSAGE_PROPERTIES>())).unit as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagUSAGE_PROPERTIES),
            "::",
            stringify!(unit)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagUSAGE_PROPERTIES>())).exponent as *const _ as usize },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(tagUSAGE_PROPERTIES),
            "::",
            stringify!(exponent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagUSAGE_PROPERTIES>())).count as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagUSAGE_PROPERTIES),
            "::",
            stringify!(count)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagUSAGE_PROPERTIES>())).physicalMinimum as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagUSAGE_PROPERTIES),
            "::",
            stringify!(physicalMinimum)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagUSAGE_PROPERTIES>())).physicalMaximum as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagUSAGE_PROPERTIES),
            "::",
            stringify!(physicalMaximum)
        )
    );
}
pub type USAGE_PROPERTIES = tagUSAGE_PROPERTIES;
pub type PUSAGE_PROPERTIES = *mut tagUSAGE_PROPERTIES;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagPOINTER_TYPE_INFO {
    pub type_: POINTER_INPUT_TYPE,
    pub __bindgen_anon_1: tagPOINTER_TYPE_INFO__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tagPOINTER_TYPE_INFO__bindgen_ty_1 {
    pub touchInfo: POINTER_TOUCH_INFO,
    pub penInfo: POINTER_PEN_INFO,
    _bindgen_union_align: [u64; 18usize],
}
#[test]
fn bindgen_test_layout_tagPOINTER_TYPE_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagPOINTER_TYPE_INFO__bindgen_ty_1>(),
        144usize,
        concat!("Size of: ", stringify!(tagPOINTER_TYPE_INFO__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tagPOINTER_TYPE_INFO__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tagPOINTER_TYPE_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPOINTER_TYPE_INFO__bindgen_ty_1>())).touchInfo as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_TYPE_INFO__bindgen_ty_1),
            "::",
            stringify!(touchInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPOINTER_TYPE_INFO__bindgen_ty_1>())).penInfo as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_TYPE_INFO__bindgen_ty_1),
            "::",
            stringify!(penInfo)
        )
    );
}
#[test]
fn bindgen_test_layout_tagPOINTER_TYPE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<tagPOINTER_TYPE_INFO>(),
        152usize,
        concat!("Size of: ", stringify!(tagPOINTER_TYPE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagPOINTER_TYPE_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(tagPOINTER_TYPE_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOINTER_TYPE_INFO>())).type_ as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_TYPE_INFO),
            "::",
            stringify!(type_)
        )
    );
}
pub type POINTER_TYPE_INFO = tagPOINTER_TYPE_INFO;
pub type PPOINTER_TYPE_INFO = *mut tagPOINTER_TYPE_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagINPUT_INJECTION_VALUE {
    pub page: USHORT,
    pub usage: USHORT,
    pub value: INT32,
    pub index: USHORT,
}
#[test]
fn bindgen_test_layout_tagINPUT_INJECTION_VALUE() {
    assert_eq!(
        ::std::mem::size_of::<tagINPUT_INJECTION_VALUE>(),
        12usize,
        concat!("Size of: ", stringify!(tagINPUT_INJECTION_VALUE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagINPUT_INJECTION_VALUE>(),
        4usize,
        concat!("Alignment of ", stringify!(tagINPUT_INJECTION_VALUE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagINPUT_INJECTION_VALUE>())).page as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagINPUT_INJECTION_VALUE),
            "::",
            stringify!(page)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagINPUT_INJECTION_VALUE>())).usage as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagINPUT_INJECTION_VALUE),
            "::",
            stringify!(usage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagINPUT_INJECTION_VALUE>())).value as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagINPUT_INJECTION_VALUE),
            "::",
            stringify!(value)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagINPUT_INJECTION_VALUE>())).index as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagINPUT_INJECTION_VALUE),
            "::",
            stringify!(index)
        )
    );
}
pub type INPUT_INJECTION_VALUE = tagINPUT_INJECTION_VALUE;
pub type PINPUT_INJECTION_VALUE = *mut tagINPUT_INJECTION_VALUE;
extern "C" {
    pub fn GetPointerType(pointerId: UINT32, pointerType: *mut POINTER_INPUT_TYPE) -> BOOL;
}
extern "C" {
    pub fn GetPointerCursorId(pointerId: UINT32, cursorId: *mut UINT32) -> BOOL;
}
extern "C" {
    pub fn GetPointerInfo(pointerId: UINT32, pointerInfo: *mut POINTER_INFO) -> BOOL;
}
extern "C" {
    pub fn GetPointerInfoHistory(
        pointerId: UINT32,
        entriesCount: *mut UINT32,
        pointerInfo: *mut POINTER_INFO,
    ) -> BOOL;
}
extern "C" {
    pub fn GetPointerFrameInfo(
        pointerId: UINT32,
        pointerCount: *mut UINT32,
        pointerInfo: *mut POINTER_INFO,
    ) -> BOOL;
}
extern "C" {
    pub fn GetPointerFrameInfoHistory(
        pointerId: UINT32,
        entriesCount: *mut UINT32,
        pointerCount: *mut UINT32,
        pointerInfo: *mut POINTER_INFO,
    ) -> BOOL;
}
extern "C" {
    pub fn GetPointerTouchInfo(pointerId: UINT32, touchInfo: *mut POINTER_TOUCH_INFO) -> BOOL;
}
extern "C" {
    pub fn GetPointerTouchInfoHistory(
        pointerId: UINT32,
        entriesCount: *mut UINT32,
        touchInfo: *mut POINTER_TOUCH_INFO,
    ) -> BOOL;
}
extern "C" {
    pub fn GetPointerFrameTouchInfo(
        pointerId: UINT32,
        pointerCount: *mut UINT32,
        touchInfo: *mut POINTER_TOUCH_INFO,
    ) -> BOOL;
}
extern "C" {
    pub fn GetPointerFrameTouchInfoHistory(
        pointerId: UINT32,
        entriesCount: *mut UINT32,
        pointerCount: *mut UINT32,
        touchInfo: *mut POINTER_TOUCH_INFO,
    ) -> BOOL;
}
extern "C" {
    pub fn GetPointerPenInfo(pointerId: UINT32, penInfo: *mut POINTER_PEN_INFO) -> BOOL;
}
extern "C" {
    pub fn GetPointerPenInfoHistory(
        pointerId: UINT32,
        entriesCount: *mut UINT32,
        penInfo: *mut POINTER_PEN_INFO,
    ) -> BOOL;
}
extern "C" {
    pub fn GetPointerFramePenInfo(
        pointerId: UINT32,
        pointerCount: *mut UINT32,
        penInfo: *mut POINTER_PEN_INFO,
    ) -> BOOL;
}
extern "C" {
    pub fn GetPointerFramePenInfoHistory(
        pointerId: UINT32,
        entriesCount: *mut UINT32,
        pointerCount: *mut UINT32,
        penInfo: *mut POINTER_PEN_INFO,
    ) -> BOOL;
}
extern "C" {
    pub fn SkipPointerFrameMessages(pointerId: UINT32) -> BOOL;
}
extern "C" {
    pub fn RegisterPointerInputTarget(hwnd: HWND, pointerType: POINTER_INPUT_TYPE) -> BOOL;
}
extern "C" {
    pub fn UnregisterPointerInputTarget(hwnd: HWND, pointerType: POINTER_INPUT_TYPE) -> BOOL;
}
extern "C" {
    pub fn RegisterPointerInputTargetEx(
        hwnd: HWND,
        pointerType: POINTER_INPUT_TYPE,
        fObserve: BOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn UnregisterPointerInputTargetEx(hwnd: HWND, pointerType: POINTER_INPUT_TYPE) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HSYNTHETICPOINTERDEVICE__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HSYNTHETICPOINTERDEVICE__() {
    assert_eq!(
        ::std::mem::size_of::<HSYNTHETICPOINTERDEVICE__>(),
        4usize,
        concat!("Size of: ", stringify!(HSYNTHETICPOINTERDEVICE__))
    );
    assert_eq!(
        ::std::mem::align_of::<HSYNTHETICPOINTERDEVICE__>(),
        4usize,
        concat!("Alignment of ", stringify!(HSYNTHETICPOINTERDEVICE__))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<HSYNTHETICPOINTERDEVICE__>())).unused as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HSYNTHETICPOINTERDEVICE__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HSYNTHETICPOINTERDEVICE = *mut HSYNTHETICPOINTERDEVICE__;
extern "C" {
    pub fn CreateSyntheticPointerDevice(
        pointerType: POINTER_INPUT_TYPE,
        maxCount: ULONG,
        mode: POINTER_FEEDBACK_MODE,
    ) -> HSYNTHETICPOINTERDEVICE;
}
extern "C" {
    pub fn InjectSyntheticPointerInput(
        device: HSYNTHETICPOINTERDEVICE,
        pointerInfo: *const POINTER_TYPE_INFO,
        count: UINT32,
    ) -> BOOL;
}
extern "C" {
    pub fn DestroySyntheticPointerDevice(device: HSYNTHETICPOINTERDEVICE);
}
extern "C" {
    pub fn EnableMouseInPointer(fEnable: BOOL) -> BOOL;
}
extern "C" {
    pub fn IsMouseInPointerEnabled() -> BOOL;
}
extern "C" {
    pub fn EnableMouseInPointerForThread() -> BOOL;
}
extern "C" {
    pub fn RegisterTouchHitTestingWindow(hwnd: HWND, value: ULONG) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagTOUCH_HIT_TESTING_PROXIMITY_EVALUATION {
    pub score: UINT16,
    pub adjustedPoint: POINT,
}
#[test]
fn bindgen_test_layout_tagTOUCH_HIT_TESTING_PROXIMITY_EVALUATION() {
    assert_eq!(
        ::std::mem::size_of::<tagTOUCH_HIT_TESTING_PROXIMITY_EVALUATION>(),
        12usize,
        concat!(
            "Size of: ",
            stringify!(tagTOUCH_HIT_TESTING_PROXIMITY_EVALUATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tagTOUCH_HIT_TESTING_PROXIMITY_EVALUATION>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tagTOUCH_HIT_TESTING_PROXIMITY_EVALUATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagTOUCH_HIT_TESTING_PROXIMITY_EVALUATION>())).score as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTOUCH_HIT_TESTING_PROXIMITY_EVALUATION),
            "::",
            stringify!(score)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagTOUCH_HIT_TESTING_PROXIMITY_EVALUATION>())).adjustedPoint
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTOUCH_HIT_TESTING_PROXIMITY_EVALUATION),
            "::",
            stringify!(adjustedPoint)
        )
    );
}
pub type TOUCH_HIT_TESTING_PROXIMITY_EVALUATION = tagTOUCH_HIT_TESTING_PROXIMITY_EVALUATION;
pub type PTOUCH_HIT_TESTING_PROXIMITY_EVALUATION = *mut tagTOUCH_HIT_TESTING_PROXIMITY_EVALUATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagTOUCH_HIT_TESTING_INPUT {
    pub pointerId: UINT32,
    pub point: POINT,
    pub boundingBox: RECT,
    pub nonOccludedBoundingBox: RECT,
    pub orientation: UINT32,
}
#[test]
fn bindgen_test_layout_tagTOUCH_HIT_TESTING_INPUT() {
    assert_eq!(
        ::std::mem::size_of::<tagTOUCH_HIT_TESTING_INPUT>(),
        48usize,
        concat!("Size of: ", stringify!(tagTOUCH_HIT_TESTING_INPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagTOUCH_HIT_TESTING_INPUT>(),
        4usize,
        concat!("Alignment of ", stringify!(tagTOUCH_HIT_TESTING_INPUT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagTOUCH_HIT_TESTING_INPUT>())).pointerId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTOUCH_HIT_TESTING_INPUT),
            "::",
            stringify!(pointerId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagTOUCH_HIT_TESTING_INPUT>())).point as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTOUCH_HIT_TESTING_INPUT),
            "::",
            stringify!(point)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagTOUCH_HIT_TESTING_INPUT>())).boundingBox as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTOUCH_HIT_TESTING_INPUT),
            "::",
            stringify!(boundingBox)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagTOUCH_HIT_TESTING_INPUT>())).nonOccludedBoundingBox
                as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTOUCH_HIT_TESTING_INPUT),
            "::",
            stringify!(nonOccludedBoundingBox)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagTOUCH_HIT_TESTING_INPUT>())).orientation as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTOUCH_HIT_TESTING_INPUT),
            "::",
            stringify!(orientation)
        )
    );
}
pub type TOUCH_HIT_TESTING_INPUT = tagTOUCH_HIT_TESTING_INPUT;
pub type PTOUCH_HIT_TESTING_INPUT = *mut tagTOUCH_HIT_TESTING_INPUT;
extern "C" {
    pub fn EvaluateProximityToRect(
        controlBoundingBox: *const RECT,
        pHitTestingInput: *const TOUCH_HIT_TESTING_INPUT,
        pProximityEval: *mut TOUCH_HIT_TESTING_PROXIMITY_EVALUATION,
    ) -> BOOL;
}
extern "C" {
    pub fn EvaluateProximityToPolygon(
        numVertices: UINT32,
        controlPolygon: *const POINT,
        pHitTestingInput: *const TOUCH_HIT_TESTING_INPUT,
        pProximityEval: *mut TOUCH_HIT_TESTING_PROXIMITY_EVALUATION,
    ) -> BOOL;
}
extern "C" {
    pub fn PackTouchHitTestingProximityEvaluation(
        pHitTestingInput: *const TOUCH_HIT_TESTING_INPUT,
        pProximityEval: *const TOUCH_HIT_TESTING_PROXIMITY_EVALUATION,
    ) -> LRESULT;
}
pub const tagFEEDBACK_TYPE_FEEDBACK_TOUCH_CONTACTVISUALIZATION: tagFEEDBACK_TYPE = 1;
pub const tagFEEDBACK_TYPE_FEEDBACK_PEN_BARRELVISUALIZATION: tagFEEDBACK_TYPE = 2;
pub const tagFEEDBACK_TYPE_FEEDBACK_PEN_TAP: tagFEEDBACK_TYPE = 3;
pub const tagFEEDBACK_TYPE_FEEDBACK_PEN_DOUBLETAP: tagFEEDBACK_TYPE = 4;
pub const tagFEEDBACK_TYPE_FEEDBACK_PEN_PRESSANDHOLD: tagFEEDBACK_TYPE = 5;
pub const tagFEEDBACK_TYPE_FEEDBACK_PEN_RIGHTTAP: tagFEEDBACK_TYPE = 6;
pub const tagFEEDBACK_TYPE_FEEDBACK_TOUCH_TAP: tagFEEDBACK_TYPE = 7;
pub const tagFEEDBACK_TYPE_FEEDBACK_TOUCH_DOUBLETAP: tagFEEDBACK_TYPE = 8;
pub const tagFEEDBACK_TYPE_FEEDBACK_TOUCH_PRESSANDHOLD: tagFEEDBACK_TYPE = 9;
pub const tagFEEDBACK_TYPE_FEEDBACK_TOUCH_RIGHTTAP: tagFEEDBACK_TYPE = 10;
pub const tagFEEDBACK_TYPE_FEEDBACK_GESTURE_PRESSANDTAP: tagFEEDBACK_TYPE = 11;
pub const tagFEEDBACK_TYPE_FEEDBACK_MAX: tagFEEDBACK_TYPE = -1;
pub type tagFEEDBACK_TYPE = ::std::os::raw::c_int;
pub use self::tagFEEDBACK_TYPE as FEEDBACK_TYPE;
extern "C" {
    pub fn GetWindowFeedbackSetting(
        hwnd: HWND,
        feedback: FEEDBACK_TYPE,
        dwFlags: DWORD,
        pSize: *mut UINT32,
        config: *mut ::std::os::raw::c_void,
    ) -> BOOL;
}
extern "C" {
    pub fn SetWindowFeedbackSetting(
        hwnd: HWND,
        feedback: FEEDBACK_TYPE,
        dwFlags: DWORD,
        size: UINT32,
        configuration: *const ::std::os::raw::c_void,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagINPUT_TRANSFORM {
    pub __bindgen_anon_1: tagINPUT_TRANSFORM__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tagINPUT_TRANSFORM__bindgen_ty_1 {
    pub __bindgen_anon_1: tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1,
    pub m: [[f32; 4usize]; 4usize],
    _bindgen_union_align: [u32; 16usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1 {
    pub _11: f32,
    pub _12: f32,
    pub _13: f32,
    pub _14: f32,
    pub _21: f32,
    pub _22: f32,
    pub _23: f32,
    pub _24: f32,
    pub _31: f32,
    pub _32: f32,
    pub _33: f32,
    pub _34: f32,
    pub _41: f32,
    pub _42: f32,
    pub _43: f32,
    pub _44: f32,
}
#[test]
fn bindgen_test_layout_tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1>(),
        64usize,
        concat!(
            "Size of: ",
            stringify!(tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1>()))._11
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(_11)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1>()))._12
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(_12)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1>()))._13
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(_13)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1>()))._14
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(_14)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1>()))._21
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(_21)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1>()))._22
                as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(_22)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1>()))._23
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(_23)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1>()))._24
                as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(_24)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1>()))._31
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(_31)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1>()))._32
                as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(_32)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1>()))._33
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(_33)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1>()))._34
                as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(_34)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1>()))._41
                as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(_41)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1>()))._42
                as *const _ as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(_42)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1>()))._43
                as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(_43)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1>()))._44
                as *const _ as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tagINPUT_TRANSFORM__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(_44)
        )
    );
}
#[test]
fn bindgen_test_layout_tagINPUT_TRANSFORM__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagINPUT_TRANSFORM__bindgen_ty_1>(),
        64usize,
        concat!("Size of: ", stringify!(tagINPUT_TRANSFORM__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tagINPUT_TRANSFORM__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tagINPUT_TRANSFORM__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagINPUT_TRANSFORM__bindgen_ty_1>())).m as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagINPUT_TRANSFORM__bindgen_ty_1),
            "::",
            stringify!(m)
        )
    );
}
#[test]
fn bindgen_test_layout_tagINPUT_TRANSFORM() {
    assert_eq!(
        ::std::mem::size_of::<tagINPUT_TRANSFORM>(),
        64usize,
        concat!("Size of: ", stringify!(tagINPUT_TRANSFORM))
    );
    assert_eq!(
        ::std::mem::align_of::<tagINPUT_TRANSFORM>(),
        4usize,
        concat!("Alignment of ", stringify!(tagINPUT_TRANSFORM))
    );
}
pub type INPUT_TRANSFORM = tagINPUT_TRANSFORM;
extern "C" {
    pub fn GetPointerInputTransform(
        pointerId: UINT32,
        historyCount: UINT32,
        inputTransform: *mut INPUT_TRANSFORM,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagLASTINPUTINFO {
    pub cbSize: UINT,
    pub dwTime: DWORD,
}
#[test]
fn bindgen_test_layout_tagLASTINPUTINFO() {
    assert_eq!(
        ::std::mem::size_of::<tagLASTINPUTINFO>(),
        8usize,
        concat!("Size of: ", stringify!(tagLASTINPUTINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagLASTINPUTINFO>(),
        4usize,
        concat!("Alignment of ", stringify!(tagLASTINPUTINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLASTINPUTINFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLASTINPUTINFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagLASTINPUTINFO>())).dwTime as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagLASTINPUTINFO),
            "::",
            stringify!(dwTime)
        )
    );
}
pub type LASTINPUTINFO = tagLASTINPUTINFO;
pub type PLASTINPUTINFO = *mut tagLASTINPUTINFO;
extern "C" {
    pub fn GetLastInputInfo(plii: PLASTINPUTINFO) -> BOOL;
}
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() -> BOOL;
}
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() -> BOOL;
}
extern "C" {
    pub fn MsgWaitForMultipleObjects(
        nCount: DWORD,
        pHandles: *const HANDLE,
        fWaitAll: BOOL,
        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 SetCoalescableTimer(
        hWnd: HWND,
        nIDEvent: UINT_PTR,
        uElapse: UINT,
        lpTimerFunc: TIMERPROC,
        uToleranceDelay: ULONG,
    ) -> UINT_PTR;
}
extern "C" {
    pub fn KillTimer(hWnd: HWND, uIDEvent: UINT_PTR) -> BOOL;
}
extern "C" {
    pub fn IsWindowUnicode(hWnd: HWND) -> BOOL;
}
extern "C" {
    pub fn EnableWindow(hWnd: HWND, bEnable: BOOL) -> BOOL;
}
extern "C" {
    pub fn IsWindowEnabled(hWnd: HWND) -> BOOL;
}
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) -> BOOL;
}
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 GetSystemMetricsForDpi(
        nIndex: ::std::os::raw::c_int,
        dpi: UINT,
    ) -> ::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) -> BOOL;
}
extern "C" {
    pub fn ChangeMenuA(
        hMenu: HMENU,
        cmd: UINT,
        lpszNewItem: LPCSTR,
        cmdInsert: UINT,
        flags: UINT,
    ) -> BOOL;
}
extern "C" {
    pub fn ChangeMenuW(
        hMenu: HMENU,
        cmd: UINT,
        lpszNewItem: LPCWSTR,
        cmdInsert: UINT,
        flags: UINT,
    ) -> BOOL;
}
extern "C" {
    pub fn HiliteMenuItem(hWnd: HWND, hMenu: HMENU, uIDHiliteItem: UINT, uHilite: UINT) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn GetSystemMenu(hWnd: HWND, bRevert: BOOL) -> HMENU;
}
extern "C" {
    pub fn CreateMenu() -> HMENU;
}
extern "C" {
    pub fn CreatePopupMenu() -> HMENU;
}
extern "C" {
    pub fn DestroyMenu(hMenu: HMENU) -> BOOL;
}
extern "C" {
    pub fn CheckMenuItem(hMenu: HMENU, uIDCheckItem: UINT, uCheck: UINT) -> DWORD;
}
extern "C" {
    pub fn EnableMenuItem(hMenu: HMENU, uIDEnableItem: UINT, uEnable: UINT) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn InsertMenuW(
        hMenu: HMENU,
        uPosition: UINT,
        uFlags: UINT,
        uIDNewItem: UINT_PTR,
        lpNewItem: LPCWSTR,
    ) -> BOOL;
}
extern "C" {
    pub fn AppendMenuA(hMenu: HMENU, uFlags: UINT, uIDNewItem: UINT_PTR, lpNewItem: LPCSTR)
        -> BOOL;
}
extern "C" {
    pub fn AppendMenuW(
        hMenu: HMENU,
        uFlags: UINT,
        uIDNewItem: UINT_PTR,
        lpNewItem: LPCWSTR,
    ) -> BOOL;
}
extern "C" {
    pub fn ModifyMenuA(
        hMnu: HMENU,
        uPosition: UINT,
        uFlags: UINT,
        uIDNewItem: UINT_PTR,
        lpNewItem: LPCSTR,
    ) -> BOOL;
}
extern "C" {
    pub fn ModifyMenuW(
        hMnu: HMENU,
        uPosition: UINT,
        uFlags: UINT,
        uIDNewItem: UINT_PTR,
        lpNewItem: LPCWSTR,
    ) -> BOOL;
}
extern "C" {
    pub fn RemoveMenu(hMenu: HMENU, uPosition: UINT, uFlags: UINT) -> BOOL;
}
extern "C" {
    pub fn DeleteMenu(hMenu: HMENU, uPosition: UINT, uFlags: UINT) -> BOOL;
}
extern "C" {
    pub fn SetMenuItemBitmaps(
        hMenu: HMENU,
        uPosition: UINT,
        uFlags: UINT,
        hBitmapUnchecked: HBITMAP,
        hBitmapChecked: HBITMAP,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagTPMPARAMS {
    pub cbSize: UINT,
    pub rcExclude: RECT,
}
#[test]
fn bindgen_test_layout_tagTPMPARAMS() {
    assert_eq!(
        ::std::mem::size_of::<tagTPMPARAMS>(),
        20usize,
        concat!("Size of: ", stringify!(tagTPMPARAMS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagTPMPARAMS>(),
        4usize,
        concat!("Alignment of ", stringify!(tagTPMPARAMS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTPMPARAMS>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTPMPARAMS),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTPMPARAMS>())).rcExclude as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTPMPARAMS),
            "::",
            stringify!(rcExclude)
        )
    );
}
pub type TPMPARAMS = tagTPMPARAMS;
pub type LPTPMPARAMS = *mut TPMPARAMS;
extern "C" {
    pub fn TrackPopupMenuEx(
        hMenu: HMENU,
        uFlags: UINT,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        hwnd: HWND,
        lptpm: LPTPMPARAMS,
    ) -> BOOL;
}
extern "C" {
    pub fn CalculatePopupWindowPosition(
        anchorPoint: *const POINT,
        windowSize: *const SIZE,
        flags: UINT,
        excludeRect: *mut RECT,
        popupWindowPosition: *mut RECT,
    ) -> BOOL;
}
#[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,
}
#[test]
fn bindgen_test_layout_tagMENUINFO() {
    assert_eq!(
        ::std::mem::size_of::<tagMENUINFO>(),
        40usize,
        concat!("Size of: ", stringify!(tagMENUINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMENUINFO>(),
        8usize,
        concat!("Alignment of ", stringify!(tagMENUINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUINFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUINFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUINFO>())).fMask as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUINFO),
            "::",
            stringify!(fMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUINFO>())).dwStyle as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUINFO),
            "::",
            stringify!(dwStyle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUINFO>())).cyMax as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUINFO),
            "::",
            stringify!(cyMax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUINFO>())).hbrBack as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUINFO),
            "::",
            stringify!(hbrBack)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUINFO>())).dwContextHelpID as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUINFO),
            "::",
            stringify!(dwContextHelpID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUINFO>())).dwMenuData as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUINFO),
            "::",
            stringify!(dwMenuData)
        )
    );
}
pub type MENUINFO = tagMENUINFO;
pub type LPMENUINFO = *mut tagMENUINFO;
pub type LPCMENUINFO = *const MENUINFO;
extern "C" {
    pub fn GetMenuInfo(arg1: HMENU, arg2: LPMENUINFO) -> BOOL;
}
extern "C" {
    pub fn SetMenuInfo(arg1: HMENU, arg2: LPCMENUINFO) -> BOOL;
}
extern "C" {
    pub fn EndMenu() -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMENUGETOBJECTINFO {
    pub dwFlags: DWORD,
    pub uPos: UINT,
    pub hmenu: HMENU,
    pub riid: PVOID,
    pub pvObj: PVOID,
}
#[test]
fn bindgen_test_layout_tagMENUGETOBJECTINFO() {
    assert_eq!(
        ::std::mem::size_of::<tagMENUGETOBJECTINFO>(),
        32usize,
        concat!("Size of: ", stringify!(tagMENUGETOBJECTINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMENUGETOBJECTINFO>(),
        8usize,
        concat!("Alignment of ", stringify!(tagMENUGETOBJECTINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUGETOBJECTINFO>())).dwFlags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUGETOBJECTINFO),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUGETOBJECTINFO>())).uPos as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUGETOBJECTINFO),
            "::",
            stringify!(uPos)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUGETOBJECTINFO>())).hmenu as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUGETOBJECTINFO),
            "::",
            stringify!(hmenu)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUGETOBJECTINFO>())).riid as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUGETOBJECTINFO),
            "::",
            stringify!(riid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUGETOBJECTINFO>())).pvObj as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUGETOBJECTINFO),
            "::",
            stringify!(pvObj)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagMENUITEMINFOA() {
    assert_eq!(
        ::std::mem::size_of::<tagMENUITEMINFOA>(),
        80usize,
        concat!("Size of: ", stringify!(tagMENUITEMINFOA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMENUITEMINFOA>(),
        8usize,
        concat!("Alignment of ", stringify!(tagMENUITEMINFOA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUITEMINFOA>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUITEMINFOA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUITEMINFOA>())).fMask as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUITEMINFOA),
            "::",
            stringify!(fMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUITEMINFOA>())).fType as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUITEMINFOA),
            "::",
            stringify!(fType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUITEMINFOA>())).fState as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUITEMINFOA),
            "::",
            stringify!(fState)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUITEMINFOA>())).wID as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUITEMINFOA),
            "::",
            stringify!(wID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUITEMINFOA>())).hSubMenu as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUITEMINFOA),
            "::",
            stringify!(hSubMenu)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUITEMINFOA>())).hbmpChecked as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUITEMINFOA),
            "::",
            stringify!(hbmpChecked)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUITEMINFOA>())).hbmpUnchecked as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUITEMINFOA),
            "::",
            stringify!(hbmpUnchecked)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUITEMINFOA>())).dwItemData as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUITEMINFOA),
            "::",
            stringify!(dwItemData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUITEMINFOA>())).dwTypeData as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUITEMINFOA),
            "::",
            stringify!(dwTypeData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUITEMINFOA>())).cch as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUITEMINFOA),
            "::",
            stringify!(cch)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUITEMINFOA>())).hbmpItem as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUITEMINFOA),
            "::",
            stringify!(hbmpItem)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagMENUITEMINFOW() {
    assert_eq!(
        ::std::mem::size_of::<tagMENUITEMINFOW>(),
        80usize,
        concat!("Size of: ", stringify!(tagMENUITEMINFOW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMENUITEMINFOW>(),
        8usize,
        concat!("Alignment of ", stringify!(tagMENUITEMINFOW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUITEMINFOW>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUITEMINFOW),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUITEMINFOW>())).fMask as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUITEMINFOW),
            "::",
            stringify!(fMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUITEMINFOW>())).fType as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUITEMINFOW),
            "::",
            stringify!(fType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUITEMINFOW>())).fState as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUITEMINFOW),
            "::",
            stringify!(fState)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUITEMINFOW>())).wID as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUITEMINFOW),
            "::",
            stringify!(wID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUITEMINFOW>())).hSubMenu as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUITEMINFOW),
            "::",
            stringify!(hSubMenu)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUITEMINFOW>())).hbmpChecked as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUITEMINFOW),
            "::",
            stringify!(hbmpChecked)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUITEMINFOW>())).hbmpUnchecked as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUITEMINFOW),
            "::",
            stringify!(hbmpUnchecked)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUITEMINFOW>())).dwItemData as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUITEMINFOW),
            "::",
            stringify!(dwItemData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUITEMINFOW>())).dwTypeData as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUITEMINFOW),
            "::",
            stringify!(dwTypeData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUITEMINFOW>())).cch as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUITEMINFOW),
            "::",
            stringify!(cch)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUITEMINFOW>())).hbmpItem as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUITEMINFOW),
            "::",
            stringify!(hbmpItem)
        )
    );
}
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: BOOL,
        lpmi: LPCMENUITEMINFOA,
    ) -> BOOL;
}
extern "C" {
    pub fn InsertMenuItemW(
        hmenu: HMENU,
        item: UINT,
        fByPosition: BOOL,
        lpmi: LPCMENUITEMINFOW,
    ) -> BOOL;
}
extern "C" {
    pub fn GetMenuItemInfoA(
        hmenu: HMENU,
        item: UINT,
        fByPosition: BOOL,
        lpmii: LPMENUITEMINFOA,
    ) -> BOOL;
}
extern "C" {
    pub fn GetMenuItemInfoW(
        hmenu: HMENU,
        item: UINT,
        fByPosition: BOOL,
        lpmii: LPMENUITEMINFOW,
    ) -> BOOL;
}
extern "C" {
    pub fn SetMenuItemInfoA(
        hmenu: HMENU,
        item: UINT,
        fByPositon: BOOL,
        lpmii: LPCMENUITEMINFOA,
    ) -> BOOL;
}
extern "C" {
    pub fn SetMenuItemInfoW(
        hmenu: HMENU,
        item: UINT,
        fByPositon: BOOL,
        lpmii: LPCMENUITEMINFOW,
    ) -> BOOL;
}
extern "C" {
    pub fn GetMenuDefaultItem(hMenu: HMENU, fByPos: UINT, gmdiFlags: UINT) -> UINT;
}
extern "C" {
    pub fn SetMenuDefaultItem(hMenu: HMENU, uItem: UINT, fByPos: UINT) -> BOOL;
}
extern "C" {
    pub fn GetMenuItemRect(hWnd: HWND, hMenu: HMENU, uItem: UINT, lprcItem: LPRECT) -> BOOL;
}
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,
}
#[test]
fn bindgen_test_layout_tagDROPSTRUCT() {
    assert_eq!(
        ::std::mem::size_of::<tagDROPSTRUCT>(),
        48usize,
        concat!("Size of: ", stringify!(tagDROPSTRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagDROPSTRUCT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagDROPSTRUCT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDROPSTRUCT>())).hwndSource as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDROPSTRUCT),
            "::",
            stringify!(hwndSource)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDROPSTRUCT>())).hwndSink as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDROPSTRUCT),
            "::",
            stringify!(hwndSink)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDROPSTRUCT>())).wFmt as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDROPSTRUCT),
            "::",
            stringify!(wFmt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDROPSTRUCT>())).dwData as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDROPSTRUCT),
            "::",
            stringify!(dwData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDROPSTRUCT>())).ptDrop as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDROPSTRUCT),
            "::",
            stringify!(ptDrop)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDROPSTRUCT>())).dwControlData as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDROPSTRUCT),
            "::",
            stringify!(dwControlData)
        )
    );
}
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) -> BOOL;
}
extern "C" {
    pub fn DrawIcon(
        hDC: HDC,
        X: ::std::os::raw::c_int,
        Y: ::std::os::raw::c_int,
        hIcon: HICON,
    ) -> BOOL;
}
#[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,
}
#[test]
fn bindgen_test_layout_tagDRAWTEXTPARAMS() {
    assert_eq!(
        ::std::mem::size_of::<tagDRAWTEXTPARAMS>(),
        20usize,
        concat!("Size of: ", stringify!(tagDRAWTEXTPARAMS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagDRAWTEXTPARAMS>(),
        4usize,
        concat!("Alignment of ", stringify!(tagDRAWTEXTPARAMS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDRAWTEXTPARAMS>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDRAWTEXTPARAMS),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDRAWTEXTPARAMS>())).iTabLength as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDRAWTEXTPARAMS),
            "::",
            stringify!(iTabLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDRAWTEXTPARAMS>())).iLeftMargin as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDRAWTEXTPARAMS),
            "::",
            stringify!(iLeftMargin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDRAWTEXTPARAMS>())).iRightMargin as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDRAWTEXTPARAMS),
            "::",
            stringify!(iRightMargin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDRAWTEXTPARAMS>())).uiLengthDrawn as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDRAWTEXTPARAMS),
            "::",
            stringify!(uiLengthDrawn)
        )
    );
}
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,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn SetActiveWindow(hWnd: HWND) -> HWND;
}
extern "C" {
    pub fn GetForegroundWindow() -> HWND;
}
extern "C" {
    pub fn PaintDesktop(hdc: HDC) -> BOOL;
}
extern "C" {
    pub fn SwitchToThisWindow(hwnd: HWND, fUnknown: BOOL);
}
extern "C" {
    pub fn SetForegroundWindow(hWnd: HWND) -> BOOL;
}
extern "C" {
    pub fn AllowSetForegroundWindow(dwProcessId: DWORD) -> BOOL;
}
extern "C" {
    pub fn LockSetForegroundWindow(uLockCode: UINT) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn GetUpdateRect(hWnd: HWND, lpRect: LPRECT, bErase: BOOL) -> BOOL;
}
extern "C" {
    pub fn GetUpdateRgn(hWnd: HWND, hRgn: HRGN, bErase: BOOL) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn SetWindowRgn(hWnd: HWND, hRgn: HRGN, bRedraw: BOOL) -> ::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: BOOL) -> BOOL;
}
extern "C" {
    pub fn ValidateRect(hWnd: HWND, lpRect: *const RECT) -> BOOL;
}
extern "C" {
    pub fn InvalidateRgn(hWnd: HWND, hRgn: HRGN, bErase: BOOL) -> BOOL;
}
extern "C" {
    pub fn ValidateRgn(hWnd: HWND, hRgn: HRGN) -> BOOL;
}
extern "C" {
    pub fn RedrawWindow(hWnd: HWND, lprcUpdate: *const RECT, hrgnUpdate: HRGN, flags: UINT)
        -> BOOL;
}
extern "C" {
    pub fn LockWindowUpdate(hWndLock: HWND) -> BOOL;
}
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,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
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: BOOL,
    ) -> ::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: BOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn GetScrollRange(
        hWnd: HWND,
        nBar: ::std::os::raw::c_int,
        lpMinPos: LPINT,
        lpMaxPos: LPINT,
    ) -> BOOL;
}
extern "C" {
    pub fn ShowScrollBar(hWnd: HWND, wBar: ::std::os::raw::c_int, bShow: BOOL) -> BOOL;
}
extern "C" {
    pub fn EnableScrollBar(hWnd: HWND, wSBflags: UINT, wArrows: UINT) -> BOOL;
}
extern "C" {
    pub fn SetPropA(hWnd: HWND, lpString: LPCSTR, hData: HANDLE) -> BOOL;
}
extern "C" {
    pub fn SetPropW(hWnd: HWND, lpString: LPCWSTR, hData: HANDLE) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn SetWindowTextW(hWnd: HWND, lpString: LPCWSTR) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn GetWindowRect(hWnd: HWND, lpRect: LPRECT) -> BOOL;
}
extern "C" {
    pub fn AdjustWindowRect(lpRect: LPRECT, dwStyle: DWORD, bMenu: BOOL) -> BOOL;
}
extern "C" {
    pub fn AdjustWindowRectEx(
        lpRect: LPRECT,
        dwStyle: DWORD,
        bMenu: BOOL,
        dwExStyle: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn AdjustWindowRectExForDpi(
        lpRect: LPRECT,
        dwStyle: DWORD,
        bMenu: BOOL,
        dwExStyle: DWORD,
        dpi: UINT,
    ) -> BOOL;
}
#[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,
}
#[test]
fn bindgen_test_layout_tagHELPINFO() {
    assert_eq!(
        ::std::mem::size_of::<tagHELPINFO>(),
        40usize,
        concat!("Size of: ", stringify!(tagHELPINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagHELPINFO>(),
        8usize,
        concat!("Alignment of ", stringify!(tagHELPINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHELPINFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHELPINFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHELPINFO>())).iContextType as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHELPINFO),
            "::",
            stringify!(iContextType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHELPINFO>())).iCtrlId as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHELPINFO),
            "::",
            stringify!(iCtrlId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHELPINFO>())).hItemHandle as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHELPINFO),
            "::",
            stringify!(hItemHandle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHELPINFO>())).dwContextId as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHELPINFO),
            "::",
            stringify!(dwContextId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHELPINFO>())).MousePos as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHELPINFO),
            "::",
            stringify!(MousePos)
        )
    );
}
pub type HELPINFO = tagHELPINFO;
pub type LPHELPINFO = *mut tagHELPINFO;
extern "C" {
    pub fn SetWindowContextHelpId(arg1: HWND, arg2: DWORD) -> BOOL;
}
extern "C" {
    pub fn GetWindowContextHelpId(arg1: HWND) -> DWORD;
}
extern "C" {
    pub fn SetMenuContextHelpId(arg1: HMENU, arg2: DWORD) -> BOOL;
}
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,
}
#[test]
fn bindgen_test_layout_tagMSGBOXPARAMSA() {
    assert_eq!(
        ::std::mem::size_of::<tagMSGBOXPARAMSA>(),
        80usize,
        concat!("Size of: ", stringify!(tagMSGBOXPARAMSA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMSGBOXPARAMSA>(),
        8usize,
        concat!("Alignment of ", stringify!(tagMSGBOXPARAMSA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMSGBOXPARAMSA>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMSGBOXPARAMSA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMSGBOXPARAMSA>())).hwndOwner as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMSGBOXPARAMSA),
            "::",
            stringify!(hwndOwner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMSGBOXPARAMSA>())).hInstance as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMSGBOXPARAMSA),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMSGBOXPARAMSA>())).lpszText as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMSGBOXPARAMSA),
            "::",
            stringify!(lpszText)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMSGBOXPARAMSA>())).lpszCaption as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMSGBOXPARAMSA),
            "::",
            stringify!(lpszCaption)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMSGBOXPARAMSA>())).dwStyle as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMSGBOXPARAMSA),
            "::",
            stringify!(dwStyle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMSGBOXPARAMSA>())).lpszIcon as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMSGBOXPARAMSA),
            "::",
            stringify!(lpszIcon)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMSGBOXPARAMSA>())).dwContextHelpId as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMSGBOXPARAMSA),
            "::",
            stringify!(dwContextHelpId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMSGBOXPARAMSA>())).lpfnMsgBoxCallback as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMSGBOXPARAMSA),
            "::",
            stringify!(lpfnMsgBoxCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMSGBOXPARAMSA>())).dwLanguageId as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMSGBOXPARAMSA),
            "::",
            stringify!(dwLanguageId)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagMSGBOXPARAMSW() {
    assert_eq!(
        ::std::mem::size_of::<tagMSGBOXPARAMSW>(),
        80usize,
        concat!("Size of: ", stringify!(tagMSGBOXPARAMSW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMSGBOXPARAMSW>(),
        8usize,
        concat!("Alignment of ", stringify!(tagMSGBOXPARAMSW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMSGBOXPARAMSW>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMSGBOXPARAMSW),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMSGBOXPARAMSW>())).hwndOwner as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMSGBOXPARAMSW),
            "::",
            stringify!(hwndOwner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMSGBOXPARAMSW>())).hInstance as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMSGBOXPARAMSW),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMSGBOXPARAMSW>())).lpszText as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMSGBOXPARAMSW),
            "::",
            stringify!(lpszText)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMSGBOXPARAMSW>())).lpszCaption as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMSGBOXPARAMSW),
            "::",
            stringify!(lpszCaption)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMSGBOXPARAMSW>())).dwStyle as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMSGBOXPARAMSW),
            "::",
            stringify!(dwStyle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMSGBOXPARAMSW>())).lpszIcon as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMSGBOXPARAMSW),
            "::",
            stringify!(lpszIcon)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMSGBOXPARAMSW>())).dwContextHelpId as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMSGBOXPARAMSW),
            "::",
            stringify!(dwContextHelpId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMSGBOXPARAMSW>())).lpfnMsgBoxCallback as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMSGBOXPARAMSW),
            "::",
            stringify!(lpfnMsgBoxCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMSGBOXPARAMSW>())).dwLanguageId as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMSGBOXPARAMSW),
            "::",
            stringify!(dwLanguageId)
        )
    );
}
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) -> BOOL;
}
extern "C" {
    pub fn ShowCursor(bShow: BOOL) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn SetCursorPos(X: ::std::os::raw::c_int, Y: ::std::os::raw::c_int) -> BOOL;
}
extern "C" {
    pub fn SetPhysicalCursorPos(X: ::std::os::raw::c_int, Y: ::std::os::raw::c_int) -> BOOL;
}
extern "C" {
    pub fn SetCursor(hCursor: HCURSOR) -> HCURSOR;
}
extern "C" {
    pub fn GetCursorPos(lpPoint: LPPOINT) -> BOOL;
}
extern "C" {
    pub fn GetPhysicalCursorPos(lpPoint: LPPOINT) -> BOOL;
}
extern "C" {
    pub fn GetClipCursor(lpRect: LPRECT) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn GetCaretBlinkTime() -> UINT;
}
extern "C" {
    pub fn SetCaretBlinkTime(uMSeconds: UINT) -> BOOL;
}
extern "C" {
    pub fn DestroyCaret() -> BOOL;
}
extern "C" {
    pub fn HideCaret(hWnd: HWND) -> BOOL;
}
extern "C" {
    pub fn ShowCaret(hWnd: HWND) -> BOOL;
}
extern "C" {
    pub fn SetCaretPos(X: ::std::os::raw::c_int, Y: ::std::os::raw::c_int) -> BOOL;
}
extern "C" {
    pub fn GetCaretPos(lpPoint: LPPOINT) -> BOOL;
}
extern "C" {
    pub fn ClientToScreen(hWnd: HWND, lpPoint: LPPOINT) -> BOOL;
}
extern "C" {
    pub fn ScreenToClient(hWnd: HWND, lpPoint: LPPOINT) -> BOOL;
}
extern "C" {
    pub fn LogicalToPhysicalPoint(hWnd: HWND, lpPoint: LPPOINT) -> BOOL;
}
extern "C" {
    pub fn PhysicalToLogicalPoint(hWnd: HWND, lpPoint: LPPOINT) -> BOOL;
}
extern "C" {
    pub fn LogicalToPhysicalPointForPerMonitorDPI(hWnd: HWND, lpPoint: LPPOINT) -> BOOL;
}
extern "C" {
    pub fn PhysicalToLogicalPointForPerMonitorDPI(hWnd: HWND, lpPoint: LPPOINT) -> BOOL;
}
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 WindowFromPhysicalPoint(Point: POINT) -> HWND;
}
extern "C" {
    pub fn ChildWindowFromPoint(hWndParent: HWND, Point: POINT) -> HWND;
}
extern "C" {
    pub fn ClipCursor(lpRect: *const RECT) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn DrawFocusRect(hDC: HDC, lprc: *const RECT) -> BOOL;
}
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) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn SetRectEmpty(lprc: LPRECT) -> BOOL;
}
extern "C" {
    pub fn CopyRect(lprcDst: LPRECT, lprcSrc: *const RECT) -> BOOL;
}
extern "C" {
    pub fn InflateRect(lprc: LPRECT, dx: ::std::os::raw::c_int, dy: ::std::os::raw::c_int) -> BOOL;
}
extern "C" {
    pub fn IntersectRect(lprcDst: LPRECT, lprcSrc1: *const RECT, lprcSrc2: *const RECT) -> BOOL;
}
extern "C" {
    pub fn UnionRect(lprcDst: LPRECT, lprcSrc1: *const RECT, lprcSrc2: *const RECT) -> BOOL;
}
extern "C" {
    pub fn SubtractRect(lprcDst: LPRECT, lprcSrc1: *const RECT, lprcSrc2: *const RECT) -> BOOL;
}
extern "C" {
    pub fn OffsetRect(lprc: LPRECT, dx: ::std::os::raw::c_int, dy: ::std::os::raw::c_int) -> BOOL;
}
extern "C" {
    pub fn IsRectEmpty(lprc: *const RECT) -> BOOL;
}
extern "C" {
    pub fn EqualRect(lprc1: *const RECT, lprc2: *const RECT) -> BOOL;
}
extern "C" {
    pub fn PtInRect(lprc: *const RECT, pt: POINT) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn SetProcessDefaultLayout(dwDefaultLayout: DWORD) -> BOOL;
}
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) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn DeregisterShellHookWindow(hwnd: HWND) -> BOOL;
}
extern "C" {
    pub fn EnumWindows(lpEnumFunc: WNDENUMPROC, lParam: LPARAM) -> BOOL;
}
extern "C" {
    pub fn EnumThreadWindows(dwThreadId: DWORD, lpfn: WNDENUMPROC, lParam: LPARAM) -> BOOL;
}
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: BOOL) -> BOOL;
}
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) -> BOOL;
}
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) -> BOOL;
}
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,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct MENUITEMTEMPLATEHEADER {
    pub versionNumber: WORD,
    pub offset: WORD,
}
#[test]
fn bindgen_test_layout_MENUITEMTEMPLATEHEADER() {
    assert_eq!(
        ::std::mem::size_of::<MENUITEMTEMPLATEHEADER>(),
        4usize,
        concat!("Size of: ", stringify!(MENUITEMTEMPLATEHEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<MENUITEMTEMPLATEHEADER>(),
        2usize,
        concat!("Alignment of ", stringify!(MENUITEMTEMPLATEHEADER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<MENUITEMTEMPLATEHEADER>())).versionNumber as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(MENUITEMTEMPLATEHEADER),
            "::",
            stringify!(versionNumber)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<MENUITEMTEMPLATEHEADER>())).offset as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(MENUITEMTEMPLATEHEADER),
            "::",
            stringify!(offset)
        )
    );
}
pub type PMENUITEMTEMPLATEHEADER = *mut MENUITEMTEMPLATEHEADER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct MENUITEMTEMPLATE {
    pub mtOption: WORD,
    pub mtID: WORD,
    pub mtString: [WCHAR; 1usize],
}
#[test]
fn bindgen_test_layout_MENUITEMTEMPLATE() {
    assert_eq!(
        ::std::mem::size_of::<MENUITEMTEMPLATE>(),
        6usize,
        concat!("Size of: ", stringify!(MENUITEMTEMPLATE))
    );
    assert_eq!(
        ::std::mem::align_of::<MENUITEMTEMPLATE>(),
        2usize,
        concat!("Alignment of ", stringify!(MENUITEMTEMPLATE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<MENUITEMTEMPLATE>())).mtOption as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(MENUITEMTEMPLATE),
            "::",
            stringify!(mtOption)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<MENUITEMTEMPLATE>())).mtID as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(MENUITEMTEMPLATE),
            "::",
            stringify!(mtID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<MENUITEMTEMPLATE>())).mtString as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(MENUITEMTEMPLATE),
            "::",
            stringify!(mtString)
        )
    );
}
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) -> BOOL;
}
extern "C" {
    pub fn SetSystemCursor(hcur: HCURSOR, id: DWORD) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ICONINFO {
    pub fIcon: BOOL,
    pub xHotspot: DWORD,
    pub yHotspot: DWORD,
    pub hbmMask: HBITMAP,
    pub hbmColor: HBITMAP,
}
#[test]
fn bindgen_test_layout__ICONINFO() {
    assert_eq!(
        ::std::mem::size_of::<_ICONINFO>(),
        32usize,
        concat!("Size of: ", stringify!(_ICONINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_ICONINFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_ICONINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ICONINFO>())).fIcon as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ICONINFO),
            "::",
            stringify!(fIcon)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ICONINFO>())).xHotspot as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ICONINFO),
            "::",
            stringify!(xHotspot)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ICONINFO>())).yHotspot as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ICONINFO),
            "::",
            stringify!(yHotspot)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ICONINFO>())).hbmMask as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_ICONINFO),
            "::",
            stringify!(hbmMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ICONINFO>())).hbmColor as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_ICONINFO),
            "::",
            stringify!(hbmColor)
        )
    );
}
pub type ICONINFO = _ICONINFO;
pub type PICONINFO = *mut ICONINFO;
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) -> BOOL;
}
extern "C" {
    pub fn LookupIconIdFromDirectory(presbits: PBYTE, fIcon: BOOL) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn LookupIconIdFromDirectoryEx(
        presbits: PBYTE,
        fIcon: BOOL,
        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: BOOL,
        dwVer: DWORD,
    ) -> HICON;
}
extern "C" {
    pub fn CreateIconFromResourceEx(
        presbits: PBYTE,
        dwResSize: DWORD,
        fIcon: BOOL,
        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,
}
#[test]
fn bindgen_test_layout_tagCURSORSHAPE() {
    assert_eq!(
        ::std::mem::size_of::<tagCURSORSHAPE>(),
        24usize,
        concat!("Size of: ", stringify!(tagCURSORSHAPE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCURSORSHAPE>(),
        4usize,
        concat!("Alignment of ", stringify!(tagCURSORSHAPE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCURSORSHAPE>())).xHotSpot as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCURSORSHAPE),
            "::",
            stringify!(xHotSpot)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCURSORSHAPE>())).yHotSpot as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCURSORSHAPE),
            "::",
            stringify!(yHotSpot)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCURSORSHAPE>())).cx as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCURSORSHAPE),
            "::",
            stringify!(cx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCURSORSHAPE>())).cy as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCURSORSHAPE),
            "::",
            stringify!(cy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCURSORSHAPE>())).cbWidth as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCURSORSHAPE),
            "::",
            stringify!(cbWidth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCURSORSHAPE>())).Planes as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCURSORSHAPE),
            "::",
            stringify!(Planes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCURSORSHAPE>())).BitsPixel as *const _ as usize },
        21usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCURSORSHAPE),
            "::",
            stringify!(BitsPixel)
        )
    );
}
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,
    ) -> BOOL;
}
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) -> BOOL;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _ICONINFOEXA {
    pub cbSize: DWORD,
    pub fIcon: BOOL,
    pub xHotspot: DWORD,
    pub yHotspot: DWORD,
    pub hbmMask: HBITMAP,
    pub hbmColor: HBITMAP,
    pub wResID: WORD,
    pub szModName: [CHAR; 260usize],
    pub szResName: [CHAR; 260usize],
}
#[test]
fn bindgen_test_layout__ICONINFOEXA() {
    assert_eq!(
        ::std::mem::size_of::<_ICONINFOEXA>(),
        560usize,
        concat!("Size of: ", stringify!(_ICONINFOEXA))
    );
    assert_eq!(
        ::std::mem::align_of::<_ICONINFOEXA>(),
        8usize,
        concat!("Alignment of ", stringify!(_ICONINFOEXA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ICONINFOEXA>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ICONINFOEXA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ICONINFOEXA>())).fIcon as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ICONINFOEXA),
            "::",
            stringify!(fIcon)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ICONINFOEXA>())).xHotspot as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ICONINFOEXA),
            "::",
            stringify!(xHotspot)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ICONINFOEXA>())).yHotspot as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_ICONINFOEXA),
            "::",
            stringify!(yHotspot)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ICONINFOEXA>())).hbmMask as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_ICONINFOEXA),
            "::",
            stringify!(hbmMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ICONINFOEXA>())).hbmColor as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_ICONINFOEXA),
            "::",
            stringify!(hbmColor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ICONINFOEXA>())).wResID as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_ICONINFOEXA),
            "::",
            stringify!(wResID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ICONINFOEXA>())).szModName as *const _ as usize },
        34usize,
        concat!(
            "Offset of field: ",
            stringify!(_ICONINFOEXA),
            "::",
            stringify!(szModName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ICONINFOEXA>())).szResName as *const _ as usize },
        294usize,
        concat!(
            "Offset of field: ",
            stringify!(_ICONINFOEXA),
            "::",
            stringify!(szResName)
        )
    );
}
pub type ICONINFOEXA = _ICONINFOEXA;
pub type PICONINFOEXA = *mut _ICONINFOEXA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _ICONINFOEXW {
    pub cbSize: DWORD,
    pub fIcon: BOOL,
    pub xHotspot: DWORD,
    pub yHotspot: DWORD,
    pub hbmMask: HBITMAP,
    pub hbmColor: HBITMAP,
    pub wResID: WORD,
    pub szModName: [WCHAR; 260usize],
    pub szResName: [WCHAR; 260usize],
}
#[test]
fn bindgen_test_layout__ICONINFOEXW() {
    assert_eq!(
        ::std::mem::size_of::<_ICONINFOEXW>(),
        1080usize,
        concat!("Size of: ", stringify!(_ICONINFOEXW))
    );
    assert_eq!(
        ::std::mem::align_of::<_ICONINFOEXW>(),
        8usize,
        concat!("Alignment of ", stringify!(_ICONINFOEXW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ICONINFOEXW>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ICONINFOEXW),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ICONINFOEXW>())).fIcon as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ICONINFOEXW),
            "::",
            stringify!(fIcon)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ICONINFOEXW>())).xHotspot as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ICONINFOEXW),
            "::",
            stringify!(xHotspot)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ICONINFOEXW>())).yHotspot as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_ICONINFOEXW),
            "::",
            stringify!(yHotspot)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ICONINFOEXW>())).hbmMask as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_ICONINFOEXW),
            "::",
            stringify!(hbmMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ICONINFOEXW>())).hbmColor as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_ICONINFOEXW),
            "::",
            stringify!(hbmColor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ICONINFOEXW>())).wResID as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_ICONINFOEXW),
            "::",
            stringify!(wResID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ICONINFOEXW>())).szModName as *const _ as usize },
        34usize,
        concat!(
            "Offset of field: ",
            stringify!(_ICONINFOEXW),
            "::",
            stringify!(szModName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ICONINFOEXW>())).szResName as *const _ as usize },
        554usize,
        concat!(
            "Offset of field: ",
            stringify!(_ICONINFOEXW),
            "::",
            stringify!(szResName)
        )
    );
}
pub type ICONINFOEXW = _ICONINFOEXW;
pub type PICONINFOEXW = *mut _ICONINFOEXW;
pub type ICONINFOEX = ICONINFOEXA;
pub type PICONINFOEX = PICONINFOEXA;
extern "C" {
    pub fn GetIconInfoExA(hicon: HICON, piconinfo: PICONINFOEXA) -> BOOL;
}
extern "C" {
    pub fn GetIconInfoExW(hicon: HICON, piconinfo: PICONINFOEXW) -> BOOL;
}
pub const EDIT_CONTROL_FEATURE_EDIT_CONTROL_FEATURE_ENTERPRISE_DATA_PROTECTION_PASTE_SUPPORT:
    EDIT_CONTROL_FEATURE = 0;
pub const EDIT_CONTROL_FEATURE_EDIT_CONTROL_FEATURE_PASTE_NOTIFICATIONS: EDIT_CONTROL_FEATURE = 1;
pub type EDIT_CONTROL_FEATURE = ::std::os::raw::c_int;
extern "C" {
    pub fn IsDialogMessageA(hDlg: HWND, lpMsg: LPMSG) -> BOOL;
}
extern "C" {
    pub fn IsDialogMessageW(hDlg: HWND, lpMsg: LPMSG) -> BOOL;
}
extern "C" {
    pub fn MapDialogRect(hDlg: HWND, lpRect: LPRECT) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn DlgDirSelectExW(
        hwndDlg: HWND,
        lpString: LPWSTR,
        chCount: ::std::os::raw::c_int,
        idListBox: ::std::os::raw::c_int,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn DlgDirSelectComboBoxExW(
        hwndDlg: HWND,
        lpString: LPWSTR,
        cchOut: ::std::os::raw::c_int,
        idComboBox: ::std::os::raw::c_int,
    ) -> BOOL;
}
#[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,
}
#[test]
fn bindgen_test_layout_tagSCROLLINFO() {
    assert_eq!(
        ::std::mem::size_of::<tagSCROLLINFO>(),
        28usize,
        concat!("Size of: ", stringify!(tagSCROLLINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagSCROLLINFO>(),
        4usize,
        concat!("Alignment of ", stringify!(tagSCROLLINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSCROLLINFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSCROLLINFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSCROLLINFO>())).fMask as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSCROLLINFO),
            "::",
            stringify!(fMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSCROLLINFO>())).nMin as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSCROLLINFO),
            "::",
            stringify!(nMin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSCROLLINFO>())).nMax as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSCROLLINFO),
            "::",
            stringify!(nMax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSCROLLINFO>())).nPage as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSCROLLINFO),
            "::",
            stringify!(nPage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSCROLLINFO>())).nPos as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSCROLLINFO),
            "::",
            stringify!(nPos)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSCROLLINFO>())).nTrackPos as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSCROLLINFO),
            "::",
            stringify!(nTrackPos)
        )
    );
}
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: BOOL,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetScrollInfo(hwnd: HWND, nBar: ::std::os::raw::c_int, lpsi: LPSCROLLINFO) -> BOOL;
}
#[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,
}
#[test]
fn bindgen_test_layout_tagMDICREATESTRUCTA() {
    assert_eq!(
        ::std::mem::size_of::<tagMDICREATESTRUCTA>(),
        56usize,
        concat!("Size of: ", stringify!(tagMDICREATESTRUCTA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMDICREATESTRUCTA>(),
        8usize,
        concat!("Alignment of ", stringify!(tagMDICREATESTRUCTA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMDICREATESTRUCTA>())).szClass as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMDICREATESTRUCTA),
            "::",
            stringify!(szClass)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMDICREATESTRUCTA>())).szTitle as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMDICREATESTRUCTA),
            "::",
            stringify!(szTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMDICREATESTRUCTA>())).hOwner as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMDICREATESTRUCTA),
            "::",
            stringify!(hOwner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMDICREATESTRUCTA>())).x as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMDICREATESTRUCTA),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMDICREATESTRUCTA>())).y as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMDICREATESTRUCTA),
            "::",
            stringify!(y)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMDICREATESTRUCTA>())).cx as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMDICREATESTRUCTA),
            "::",
            stringify!(cx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMDICREATESTRUCTA>())).cy as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMDICREATESTRUCTA),
            "::",
            stringify!(cy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMDICREATESTRUCTA>())).style as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMDICREATESTRUCTA),
            "::",
            stringify!(style)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMDICREATESTRUCTA>())).lParam as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMDICREATESTRUCTA),
            "::",
            stringify!(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,
}
#[test]
fn bindgen_test_layout_tagMDICREATESTRUCTW() {
    assert_eq!(
        ::std::mem::size_of::<tagMDICREATESTRUCTW>(),
        56usize,
        concat!("Size of: ", stringify!(tagMDICREATESTRUCTW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMDICREATESTRUCTW>(),
        8usize,
        concat!("Alignment of ", stringify!(tagMDICREATESTRUCTW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMDICREATESTRUCTW>())).szClass as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMDICREATESTRUCTW),
            "::",
            stringify!(szClass)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMDICREATESTRUCTW>())).szTitle as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMDICREATESTRUCTW),
            "::",
            stringify!(szTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMDICREATESTRUCTW>())).hOwner as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMDICREATESTRUCTW),
            "::",
            stringify!(hOwner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMDICREATESTRUCTW>())).x as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMDICREATESTRUCTW),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMDICREATESTRUCTW>())).y as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMDICREATESTRUCTW),
            "::",
            stringify!(y)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMDICREATESTRUCTW>())).cx as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMDICREATESTRUCTW),
            "::",
            stringify!(cx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMDICREATESTRUCTW>())).cy as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMDICREATESTRUCTW),
            "::",
            stringify!(cy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMDICREATESTRUCTW>())).style as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMDICREATESTRUCTW),
            "::",
            stringify!(style)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMDICREATESTRUCTW>())).lParam as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMDICREATESTRUCTW),
            "::",
            stringify!(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,
}
#[test]
fn bindgen_test_layout_tagCLIENTCREATESTRUCT() {
    assert_eq!(
        ::std::mem::size_of::<tagCLIENTCREATESTRUCT>(),
        16usize,
        concat!("Size of: ", stringify!(tagCLIENTCREATESTRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCLIENTCREATESTRUCT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCLIENTCREATESTRUCT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagCLIENTCREATESTRUCT>())).hWindowMenu as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCLIENTCREATESTRUCT),
            "::",
            stringify!(hWindowMenu)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagCLIENTCREATESTRUCT>())).idFirstChild as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCLIENTCREATESTRUCT),
            "::",
            stringify!(idFirstChild)
        )
    );
}
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) -> BOOL;
}
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],
}
#[test]
fn bindgen_test_layout_tagMULTIKEYHELPA() {
    assert_eq!(
        ::std::mem::size_of::<tagMULTIKEYHELPA>(),
        8usize,
        concat!("Size of: ", stringify!(tagMULTIKEYHELPA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMULTIKEYHELPA>(),
        4usize,
        concat!("Alignment of ", stringify!(tagMULTIKEYHELPA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMULTIKEYHELPA>())).mkSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMULTIKEYHELPA),
            "::",
            stringify!(mkSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMULTIKEYHELPA>())).mkKeylist as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMULTIKEYHELPA),
            "::",
            stringify!(mkKeylist)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMULTIKEYHELPA>())).szKeyphrase as *const _ as usize },
        5usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMULTIKEYHELPA),
            "::",
            stringify!(szKeyphrase)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagMULTIKEYHELPW() {
    assert_eq!(
        ::std::mem::size_of::<tagMULTIKEYHELPW>(),
        8usize,
        concat!("Size of: ", stringify!(tagMULTIKEYHELPW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMULTIKEYHELPW>(),
        4usize,
        concat!("Alignment of ", stringify!(tagMULTIKEYHELPW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMULTIKEYHELPW>())).mkSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMULTIKEYHELPW),
            "::",
            stringify!(mkSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMULTIKEYHELPW>())).mkKeylist as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMULTIKEYHELPW),
            "::",
            stringify!(mkKeylist)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMULTIKEYHELPW>())).szKeyphrase as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMULTIKEYHELPW),
            "::",
            stringify!(szKeyphrase)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagHELPWININFOA() {
    assert_eq!(
        ::std::mem::size_of::<tagHELPWININFOA>(),
        28usize,
        concat!("Size of: ", stringify!(tagHELPWININFOA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagHELPWININFOA>(),
        4usize,
        concat!("Alignment of ", stringify!(tagHELPWININFOA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHELPWININFOA>())).wStructSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHELPWININFOA),
            "::",
            stringify!(wStructSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHELPWININFOA>())).x as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHELPWININFOA),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHELPWININFOA>())).y as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHELPWININFOA),
            "::",
            stringify!(y)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHELPWININFOA>())).dx as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHELPWININFOA),
            "::",
            stringify!(dx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHELPWININFOA>())).dy as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHELPWININFOA),
            "::",
            stringify!(dy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHELPWININFOA>())).wMax as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHELPWININFOA),
            "::",
            stringify!(wMax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHELPWININFOA>())).rgchMember as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHELPWININFOA),
            "::",
            stringify!(rgchMember)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagHELPWININFOW() {
    assert_eq!(
        ::std::mem::size_of::<tagHELPWININFOW>(),
        28usize,
        concat!("Size of: ", stringify!(tagHELPWININFOW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagHELPWININFOW>(),
        4usize,
        concat!("Alignment of ", stringify!(tagHELPWININFOW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHELPWININFOW>())).wStructSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHELPWININFOW),
            "::",
            stringify!(wStructSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHELPWININFOW>())).x as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHELPWININFOW),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHELPWININFOW>())).y as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHELPWININFOW),
            "::",
            stringify!(y)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHELPWININFOW>())).dx as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHELPWININFOW),
            "::",
            stringify!(dx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHELPWININFOW>())).dy as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHELPWININFOW),
            "::",
            stringify!(dy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHELPWININFOW>())).wMax as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHELPWININFOW),
            "::",
            stringify!(wMax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHELPWININFOW>())).rgchMember as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHELPWININFOW),
            "::",
            stringify!(rgchMember)
        )
    );
}
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) -> BOOL;
}
extern "C" {
    pub fn WinHelpW(hWndMain: HWND, lpszHelp: LPCWSTR, uCommand: UINT, dwData: ULONG_PTR) -> BOOL;
}
extern "C" {
    pub fn GetGuiResources(hProcess: HANDLE, uiFlags: DWORD) -> DWORD;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagTouchPredictionParameters {
    pub cbSize: UINT,
    pub dwLatency: UINT,
    pub dwSampleTime: UINT,
    pub bUseHWTimeStamp: UINT,
}
#[test]
fn bindgen_test_layout_tagTouchPredictionParameters() {
    assert_eq!(
        ::std::mem::size_of::<tagTouchPredictionParameters>(),
        16usize,
        concat!("Size of: ", stringify!(tagTouchPredictionParameters))
    );
    assert_eq!(
        ::std::mem::align_of::<tagTouchPredictionParameters>(),
        4usize,
        concat!("Alignment of ", stringify!(tagTouchPredictionParameters))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagTouchPredictionParameters>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTouchPredictionParameters),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagTouchPredictionParameters>())).dwLatency as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTouchPredictionParameters),
            "::",
            stringify!(dwLatency)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagTouchPredictionParameters>())).dwSampleTime as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTouchPredictionParameters),
            "::",
            stringify!(dwSampleTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagTouchPredictionParameters>())).bUseHWTimeStamp as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTouchPredictionParameters),
            "::",
            stringify!(bUseHWTimeStamp)
        )
    );
}
pub type TOUCHPREDICTIONPARAMETERS = tagTouchPredictionParameters;
pub type PTOUCHPREDICTIONPARAMETERS = *mut tagTouchPredictionParameters;
pub const tagHANDEDNESS_HANDEDNESS_LEFT: tagHANDEDNESS = 0;
pub const tagHANDEDNESS_HANDEDNESS_RIGHT: tagHANDEDNESS = 1;
pub type tagHANDEDNESS = ::std::os::raw::c_int;
pub use self::tagHANDEDNESS as HANDEDNESS;
pub type PHANDEDNESS = *mut tagHANDEDNESS;
#[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 iPaddedBorderWidth: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_tagNONCLIENTMETRICSA() {
    assert_eq!(
        ::std::mem::size_of::<tagNONCLIENTMETRICSA>(),
        344usize,
        concat!("Size of: ", stringify!(tagNONCLIENTMETRICSA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagNONCLIENTMETRICSA>(),
        4usize,
        concat!("Alignment of ", stringify!(tagNONCLIENTMETRICSA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNONCLIENTMETRICSA>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNONCLIENTMETRICSA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNONCLIENTMETRICSA>())).iBorderWidth as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNONCLIENTMETRICSA),
            "::",
            stringify!(iBorderWidth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNONCLIENTMETRICSA>())).iScrollWidth as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNONCLIENTMETRICSA),
            "::",
            stringify!(iScrollWidth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNONCLIENTMETRICSA>())).iScrollHeight as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNONCLIENTMETRICSA),
            "::",
            stringify!(iScrollHeight)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNONCLIENTMETRICSA>())).iCaptionWidth as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNONCLIENTMETRICSA),
            "::",
            stringify!(iCaptionWidth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNONCLIENTMETRICSA>())).iCaptionHeight as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNONCLIENTMETRICSA),
            "::",
            stringify!(iCaptionHeight)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNONCLIENTMETRICSA>())).lfCaptionFont as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNONCLIENTMETRICSA),
            "::",
            stringify!(lfCaptionFont)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNONCLIENTMETRICSA>())).iSmCaptionWidth as *const _ as usize
        },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNONCLIENTMETRICSA),
            "::",
            stringify!(iSmCaptionWidth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNONCLIENTMETRICSA>())).iSmCaptionHeight as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNONCLIENTMETRICSA),
            "::",
            stringify!(iSmCaptionHeight)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNONCLIENTMETRICSA>())).lfSmCaptionFont as *const _ as usize
        },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNONCLIENTMETRICSA),
            "::",
            stringify!(lfSmCaptionFont)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNONCLIENTMETRICSA>())).iMenuWidth as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNONCLIENTMETRICSA),
            "::",
            stringify!(iMenuWidth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNONCLIENTMETRICSA>())).iMenuHeight as *const _ as usize
        },
        156usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNONCLIENTMETRICSA),
            "::",
            stringify!(iMenuHeight)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNONCLIENTMETRICSA>())).lfMenuFont as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNONCLIENTMETRICSA),
            "::",
            stringify!(lfMenuFont)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNONCLIENTMETRICSA>())).lfStatusFont as *const _ as usize
        },
        220usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNONCLIENTMETRICSA),
            "::",
            stringify!(lfStatusFont)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNONCLIENTMETRICSA>())).lfMessageFont as *const _ as usize
        },
        280usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNONCLIENTMETRICSA),
            "::",
            stringify!(lfMessageFont)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNONCLIENTMETRICSA>())).iPaddedBorderWidth as *const _ as usize
        },
        340usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNONCLIENTMETRICSA),
            "::",
            stringify!(iPaddedBorderWidth)
        )
    );
}
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 iPaddedBorderWidth: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_tagNONCLIENTMETRICSW() {
    assert_eq!(
        ::std::mem::size_of::<tagNONCLIENTMETRICSW>(),
        504usize,
        concat!("Size of: ", stringify!(tagNONCLIENTMETRICSW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagNONCLIENTMETRICSW>(),
        4usize,
        concat!("Alignment of ", stringify!(tagNONCLIENTMETRICSW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNONCLIENTMETRICSW>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNONCLIENTMETRICSW),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNONCLIENTMETRICSW>())).iBorderWidth as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNONCLIENTMETRICSW),
            "::",
            stringify!(iBorderWidth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNONCLIENTMETRICSW>())).iScrollWidth as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNONCLIENTMETRICSW),
            "::",
            stringify!(iScrollWidth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNONCLIENTMETRICSW>())).iScrollHeight as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNONCLIENTMETRICSW),
            "::",
            stringify!(iScrollHeight)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNONCLIENTMETRICSW>())).iCaptionWidth as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNONCLIENTMETRICSW),
            "::",
            stringify!(iCaptionWidth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNONCLIENTMETRICSW>())).iCaptionHeight as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNONCLIENTMETRICSW),
            "::",
            stringify!(iCaptionHeight)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNONCLIENTMETRICSW>())).lfCaptionFont as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNONCLIENTMETRICSW),
            "::",
            stringify!(lfCaptionFont)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNONCLIENTMETRICSW>())).iSmCaptionWidth as *const _ as usize
        },
        116usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNONCLIENTMETRICSW),
            "::",
            stringify!(iSmCaptionWidth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNONCLIENTMETRICSW>())).iSmCaptionHeight as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNONCLIENTMETRICSW),
            "::",
            stringify!(iSmCaptionHeight)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNONCLIENTMETRICSW>())).lfSmCaptionFont as *const _ as usize
        },
        124usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNONCLIENTMETRICSW),
            "::",
            stringify!(lfSmCaptionFont)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNONCLIENTMETRICSW>())).iMenuWidth as *const _ as usize },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNONCLIENTMETRICSW),
            "::",
            stringify!(iMenuWidth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNONCLIENTMETRICSW>())).iMenuHeight as *const _ as usize
        },
        220usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNONCLIENTMETRICSW),
            "::",
            stringify!(iMenuHeight)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNONCLIENTMETRICSW>())).lfMenuFont as *const _ as usize },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNONCLIENTMETRICSW),
            "::",
            stringify!(lfMenuFont)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNONCLIENTMETRICSW>())).lfStatusFont as *const _ as usize
        },
        316usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNONCLIENTMETRICSW),
            "::",
            stringify!(lfStatusFont)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNONCLIENTMETRICSW>())).lfMessageFont as *const _ as usize
        },
        408usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNONCLIENTMETRICSW),
            "::",
            stringify!(lfMessageFont)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagNONCLIENTMETRICSW>())).iPaddedBorderWidth as *const _ as usize
        },
        500usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNONCLIENTMETRICSW),
            "::",
            stringify!(iPaddedBorderWidth)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagMINIMIZEDMETRICS() {
    assert_eq!(
        ::std::mem::size_of::<tagMINIMIZEDMETRICS>(),
        20usize,
        concat!("Size of: ", stringify!(tagMINIMIZEDMETRICS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMINIMIZEDMETRICS>(),
        4usize,
        concat!("Alignment of ", stringify!(tagMINIMIZEDMETRICS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMINIMIZEDMETRICS>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMINIMIZEDMETRICS),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMINIMIZEDMETRICS>())).iWidth as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMINIMIZEDMETRICS),
            "::",
            stringify!(iWidth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMINIMIZEDMETRICS>())).iHorzGap as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMINIMIZEDMETRICS),
            "::",
            stringify!(iHorzGap)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMINIMIZEDMETRICS>())).iVertGap as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMINIMIZEDMETRICS),
            "::",
            stringify!(iVertGap)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMINIMIZEDMETRICS>())).iArrange as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMINIMIZEDMETRICS),
            "::",
            stringify!(iArrange)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagICONMETRICSA() {
    assert_eq!(
        ::std::mem::size_of::<tagICONMETRICSA>(),
        76usize,
        concat!("Size of: ", stringify!(tagICONMETRICSA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagICONMETRICSA>(),
        4usize,
        concat!("Alignment of ", stringify!(tagICONMETRICSA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagICONMETRICSA>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagICONMETRICSA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagICONMETRICSA>())).iHorzSpacing as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagICONMETRICSA),
            "::",
            stringify!(iHorzSpacing)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagICONMETRICSA>())).iVertSpacing as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagICONMETRICSA),
            "::",
            stringify!(iVertSpacing)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagICONMETRICSA>())).iTitleWrap as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagICONMETRICSA),
            "::",
            stringify!(iTitleWrap)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagICONMETRICSA>())).lfFont as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagICONMETRICSA),
            "::",
            stringify!(lfFont)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagICONMETRICSW() {
    assert_eq!(
        ::std::mem::size_of::<tagICONMETRICSW>(),
        108usize,
        concat!("Size of: ", stringify!(tagICONMETRICSW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagICONMETRICSW>(),
        4usize,
        concat!("Alignment of ", stringify!(tagICONMETRICSW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagICONMETRICSW>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagICONMETRICSW),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagICONMETRICSW>())).iHorzSpacing as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagICONMETRICSW),
            "::",
            stringify!(iHorzSpacing)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagICONMETRICSW>())).iVertSpacing as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagICONMETRICSW),
            "::",
            stringify!(iVertSpacing)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagICONMETRICSW>())).iTitleWrap as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagICONMETRICSW),
            "::",
            stringify!(iTitleWrap)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagICONMETRICSW>())).lfFont as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagICONMETRICSW),
            "::",
            stringify!(lfFont)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagANIMATIONINFO() {
    assert_eq!(
        ::std::mem::size_of::<tagANIMATIONINFO>(),
        8usize,
        concat!("Size of: ", stringify!(tagANIMATIONINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagANIMATIONINFO>(),
        4usize,
        concat!("Alignment of ", stringify!(tagANIMATIONINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagANIMATIONINFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagANIMATIONINFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagANIMATIONINFO>())).iMinAnimate as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagANIMATIONINFO),
            "::",
            stringify!(iMinAnimate)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagSERIALKEYSA() {
    assert_eq!(
        ::std::mem::size_of::<tagSERIALKEYSA>(),
        40usize,
        concat!("Size of: ", stringify!(tagSERIALKEYSA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagSERIALKEYSA>(),
        8usize,
        concat!("Alignment of ", stringify!(tagSERIALKEYSA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSERIALKEYSA>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSERIALKEYSA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSERIALKEYSA>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSERIALKEYSA),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSERIALKEYSA>())).lpszActivePort as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSERIALKEYSA),
            "::",
            stringify!(lpszActivePort)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSERIALKEYSA>())).lpszPort as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSERIALKEYSA),
            "::",
            stringify!(lpszPort)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSERIALKEYSA>())).iBaudRate as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSERIALKEYSA),
            "::",
            stringify!(iBaudRate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSERIALKEYSA>())).iPortState as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSERIALKEYSA),
            "::",
            stringify!(iPortState)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSERIALKEYSA>())).iActive as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSERIALKEYSA),
            "::",
            stringify!(iActive)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagSERIALKEYSW() {
    assert_eq!(
        ::std::mem::size_of::<tagSERIALKEYSW>(),
        40usize,
        concat!("Size of: ", stringify!(tagSERIALKEYSW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagSERIALKEYSW>(),
        8usize,
        concat!("Alignment of ", stringify!(tagSERIALKEYSW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSERIALKEYSW>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSERIALKEYSW),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSERIALKEYSW>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSERIALKEYSW),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSERIALKEYSW>())).lpszActivePort as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSERIALKEYSW),
            "::",
            stringify!(lpszActivePort)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSERIALKEYSW>())).lpszPort as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSERIALKEYSW),
            "::",
            stringify!(lpszPort)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSERIALKEYSW>())).iBaudRate as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSERIALKEYSW),
            "::",
            stringify!(iBaudRate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSERIALKEYSW>())).iPortState as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSERIALKEYSW),
            "::",
            stringify!(iPortState)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSERIALKEYSW>())).iActive as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSERIALKEYSW),
            "::",
            stringify!(iActive)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagHIGHCONTRASTA() {
    assert_eq!(
        ::std::mem::size_of::<tagHIGHCONTRASTA>(),
        16usize,
        concat!("Size of: ", stringify!(tagHIGHCONTRASTA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagHIGHCONTRASTA>(),
        8usize,
        concat!("Alignment of ", stringify!(tagHIGHCONTRASTA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHIGHCONTRASTA>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHIGHCONTRASTA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHIGHCONTRASTA>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHIGHCONTRASTA),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagHIGHCONTRASTA>())).lpszDefaultScheme as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHIGHCONTRASTA),
            "::",
            stringify!(lpszDefaultScheme)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagHIGHCONTRASTW() {
    assert_eq!(
        ::std::mem::size_of::<tagHIGHCONTRASTW>(),
        16usize,
        concat!("Size of: ", stringify!(tagHIGHCONTRASTW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagHIGHCONTRASTW>(),
        8usize,
        concat!("Alignment of ", stringify!(tagHIGHCONTRASTW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHIGHCONTRASTW>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHIGHCONTRASTW),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHIGHCONTRASTW>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHIGHCONTRASTW),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagHIGHCONTRASTW>())).lpszDefaultScheme as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHIGHCONTRASTW),
            "::",
            stringify!(lpszDefaultScheme)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__VIDEOPARAMETERS() {
    assert_eq!(
        ::std::mem::size_of::<_VIDEOPARAMETERS>(),
        356usize,
        concat!("Size of: ", stringify!(_VIDEOPARAMETERS))
    );
    assert_eq!(
        ::std::mem::align_of::<_VIDEOPARAMETERS>(),
        4usize,
        concat!("Alignment of ", stringify!(_VIDEOPARAMETERS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_VIDEOPARAMETERS>())).Guid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIDEOPARAMETERS),
            "::",
            stringify!(Guid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_VIDEOPARAMETERS>())).dwOffset as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIDEOPARAMETERS),
            "::",
            stringify!(dwOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_VIDEOPARAMETERS>())).dwCommand as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIDEOPARAMETERS),
            "::",
            stringify!(dwCommand)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_VIDEOPARAMETERS>())).dwFlags as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIDEOPARAMETERS),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_VIDEOPARAMETERS>())).dwMode as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIDEOPARAMETERS),
            "::",
            stringify!(dwMode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_VIDEOPARAMETERS>())).dwTVStandard as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIDEOPARAMETERS),
            "::",
            stringify!(dwTVStandard)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_VIDEOPARAMETERS>())).dwAvailableModes as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIDEOPARAMETERS),
            "::",
            stringify!(dwAvailableModes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_VIDEOPARAMETERS>())).dwAvailableTVStandard as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIDEOPARAMETERS),
            "::",
            stringify!(dwAvailableTVStandard)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_VIDEOPARAMETERS>())).dwFlickerFilter as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIDEOPARAMETERS),
            "::",
            stringify!(dwFlickerFilter)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_VIDEOPARAMETERS>())).dwOverScanX as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIDEOPARAMETERS),
            "::",
            stringify!(dwOverScanX)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_VIDEOPARAMETERS>())).dwOverScanY as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIDEOPARAMETERS),
            "::",
            stringify!(dwOverScanY)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_VIDEOPARAMETERS>())).dwMaxUnscaledX as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIDEOPARAMETERS),
            "::",
            stringify!(dwMaxUnscaledX)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_VIDEOPARAMETERS>())).dwMaxUnscaledY as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIDEOPARAMETERS),
            "::",
            stringify!(dwMaxUnscaledY)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_VIDEOPARAMETERS>())).dwPositionX as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIDEOPARAMETERS),
            "::",
            stringify!(dwPositionX)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_VIDEOPARAMETERS>())).dwPositionY as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIDEOPARAMETERS),
            "::",
            stringify!(dwPositionY)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_VIDEOPARAMETERS>())).dwBrightness as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIDEOPARAMETERS),
            "::",
            stringify!(dwBrightness)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_VIDEOPARAMETERS>())).dwContrast as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIDEOPARAMETERS),
            "::",
            stringify!(dwContrast)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_VIDEOPARAMETERS>())).dwCPType as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIDEOPARAMETERS),
            "::",
            stringify!(dwCPType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_VIDEOPARAMETERS>())).dwCPCommand as *const _ as usize },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIDEOPARAMETERS),
            "::",
            stringify!(dwCPCommand)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_VIDEOPARAMETERS>())).dwCPStandard as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIDEOPARAMETERS),
            "::",
            stringify!(dwCPStandard)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_VIDEOPARAMETERS>())).dwCPKey as *const _ as usize },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIDEOPARAMETERS),
            "::",
            stringify!(dwCPKey)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_VIDEOPARAMETERS>())).bCP_APSTriggerBits as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIDEOPARAMETERS),
            "::",
            stringify!(bCP_APSTriggerBits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_VIDEOPARAMETERS>())).bOEMCopyProtection as *const _ as usize
        },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIDEOPARAMETERS),
            "::",
            stringify!(bOEMCopyProtection)
        )
    );
}
pub type VIDEOPARAMETERS = _VIDEOPARAMETERS;
pub type PVIDEOPARAMETERS = *mut _VIDEOPARAMETERS;
pub type LPVIDEOPARAMETERS = *mut _VIDEOPARAMETERS;
extern "C" {
    pub fn ChangeDisplaySettingsA(lpDevMode: *mut DEVMODEA, dwFlags: DWORD) -> LONG;
}
extern "C" {
    pub fn ChangeDisplaySettingsW(lpDevMode: *mut DEVMODEW, dwFlags: DWORD) -> LONG;
}
extern "C" {
    pub fn ChangeDisplaySettingsExA(
        lpszDeviceName: LPCSTR,
        lpDevMode: *mut DEVMODEA,
        hwnd: HWND,
        dwflags: DWORD,
        lParam: LPVOID,
    ) -> LONG;
}
extern "C" {
    pub fn ChangeDisplaySettingsExW(
        lpszDeviceName: LPCWSTR,
        lpDevMode: *mut DEVMODEW,
        hwnd: HWND,
        dwflags: DWORD,
        lParam: LPVOID,
    ) -> LONG;
}
extern "C" {
    pub fn EnumDisplaySettingsA(
        lpszDeviceName: LPCSTR,
        iModeNum: DWORD,
        lpDevMode: *mut DEVMODEA,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumDisplaySettingsW(
        lpszDeviceName: LPCWSTR,
        iModeNum: DWORD,
        lpDevMode: *mut DEVMODEW,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumDisplaySettingsExA(
        lpszDeviceName: LPCSTR,
        iModeNum: DWORD,
        lpDevMode: *mut DEVMODEA,
        dwFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumDisplaySettingsExW(
        lpszDeviceName: LPCWSTR,
        iModeNum: DWORD,
        lpDevMode: *mut DEVMODEW,
        dwFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumDisplayDevicesA(
        lpDevice: LPCSTR,
        iDevNum: DWORD,
        lpDisplayDevice: PDISPLAY_DEVICEA,
        dwFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumDisplayDevicesW(
        lpDevice: LPCWSTR,
        iDevNum: DWORD,
        lpDisplayDevice: PDISPLAY_DEVICEW,
        dwFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetDisplayConfigBufferSizes(
        flags: UINT32,
        numPathArrayElements: *mut UINT32,
        numModeInfoArrayElements: *mut UINT32,
    ) -> LONG;
}
extern "C" {
    pub fn SetDisplayConfig(
        numPathArrayElements: UINT32,
        pathArray: *mut DISPLAYCONFIG_PATH_INFO,
        numModeInfoArrayElements: UINT32,
        modeInfoArray: *mut DISPLAYCONFIG_MODE_INFO,
        flags: UINT32,
    ) -> LONG;
}
extern "C" {
    pub fn QueryDisplayConfig(
        flags: UINT32,
        numPathArrayElements: *mut UINT32,
        pathArray: *mut DISPLAYCONFIG_PATH_INFO,
        numModeInfoArrayElements: *mut UINT32,
        modeInfoArray: *mut DISPLAYCONFIG_MODE_INFO,
        currentTopologyId: *mut DISPLAYCONFIG_TOPOLOGY_ID,
    ) -> LONG;
}
extern "C" {
    pub fn DisplayConfigGetDeviceInfo(requestPacket: *mut DISPLAYCONFIG_DEVICE_INFO_HEADER)
        -> LONG;
}
extern "C" {
    pub fn DisplayConfigSetDeviceInfo(setPacket: *mut DISPLAYCONFIG_DEVICE_INFO_HEADER) -> LONG;
}
extern "C" {
    pub fn SystemParametersInfoA(
        uiAction: UINT,
        uiParam: UINT,
        pvParam: PVOID,
        fWinIni: UINT,
    ) -> BOOL;
}
extern "C" {
    pub fn SystemParametersInfoW(
        uiAction: UINT,
        uiParam: UINT,
        pvParam: PVOID,
        fWinIni: UINT,
    ) -> BOOL;
}
extern "C" {
    pub fn SystemParametersInfoForDpi(
        uiAction: UINT,
        uiParam: UINT,
        pvParam: PVOID,
        fWinIni: UINT,
        dpi: UINT,
    ) -> BOOL;
}
#[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,
}
#[test]
fn bindgen_test_layout_tagFILTERKEYS() {
    assert_eq!(
        ::std::mem::size_of::<tagFILTERKEYS>(),
        24usize,
        concat!("Size of: ", stringify!(tagFILTERKEYS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagFILTERKEYS>(),
        4usize,
        concat!("Alignment of ", stringify!(tagFILTERKEYS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFILTERKEYS>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFILTERKEYS),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFILTERKEYS>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFILTERKEYS),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFILTERKEYS>())).iWaitMSec as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFILTERKEYS),
            "::",
            stringify!(iWaitMSec)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFILTERKEYS>())).iDelayMSec as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFILTERKEYS),
            "::",
            stringify!(iDelayMSec)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFILTERKEYS>())).iRepeatMSec as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFILTERKEYS),
            "::",
            stringify!(iRepeatMSec)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFILTERKEYS>())).iBounceMSec as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFILTERKEYS),
            "::",
            stringify!(iBounceMSec)
        )
    );
}
pub type FILTERKEYS = tagFILTERKEYS;
pub type LPFILTERKEYS = *mut tagFILTERKEYS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagSTICKYKEYS {
    pub cbSize: UINT,
    pub dwFlags: DWORD,
}
#[test]
fn bindgen_test_layout_tagSTICKYKEYS() {
    assert_eq!(
        ::std::mem::size_of::<tagSTICKYKEYS>(),
        8usize,
        concat!("Size of: ", stringify!(tagSTICKYKEYS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagSTICKYKEYS>(),
        4usize,
        concat!("Alignment of ", stringify!(tagSTICKYKEYS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTICKYKEYS>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTICKYKEYS),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTICKYKEYS>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTICKYKEYS),
            "::",
            stringify!(dwFlags)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagMOUSEKEYS() {
    assert_eq!(
        ::std::mem::size_of::<tagMOUSEKEYS>(),
        28usize,
        concat!("Size of: ", stringify!(tagMOUSEKEYS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMOUSEKEYS>(),
        4usize,
        concat!("Alignment of ", stringify!(tagMOUSEKEYS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMOUSEKEYS>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMOUSEKEYS),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMOUSEKEYS>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMOUSEKEYS),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMOUSEKEYS>())).iMaxSpeed as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMOUSEKEYS),
            "::",
            stringify!(iMaxSpeed)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMOUSEKEYS>())).iTimeToMaxSpeed as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMOUSEKEYS),
            "::",
            stringify!(iTimeToMaxSpeed)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMOUSEKEYS>())).iCtrlSpeed as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMOUSEKEYS),
            "::",
            stringify!(iCtrlSpeed)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMOUSEKEYS>())).dwReserved1 as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMOUSEKEYS),
            "::",
            stringify!(dwReserved1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMOUSEKEYS>())).dwReserved2 as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMOUSEKEYS),
            "::",
            stringify!(dwReserved2)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagACCESSTIMEOUT() {
    assert_eq!(
        ::std::mem::size_of::<tagACCESSTIMEOUT>(),
        12usize,
        concat!("Size of: ", stringify!(tagACCESSTIMEOUT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagACCESSTIMEOUT>(),
        4usize,
        concat!("Alignment of ", stringify!(tagACCESSTIMEOUT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagACCESSTIMEOUT>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACCESSTIMEOUT),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagACCESSTIMEOUT>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACCESSTIMEOUT),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagACCESSTIMEOUT>())).iTimeOutMSec as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagACCESSTIMEOUT),
            "::",
            stringify!(iTimeOutMSec)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagSOUNDSENTRYA() {
    assert_eq!(
        ::std::mem::size_of::<tagSOUNDSENTRYA>(),
        56usize,
        concat!("Size of: ", stringify!(tagSOUNDSENTRYA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagSOUNDSENTRYA>(),
        8usize,
        concat!("Alignment of ", stringify!(tagSOUNDSENTRYA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSOUNDSENTRYA>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOUNDSENTRYA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSOUNDSENTRYA>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOUNDSENTRYA),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSOUNDSENTRYA>())).iFSTextEffect as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOUNDSENTRYA),
            "::",
            stringify!(iFSTextEffect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSOUNDSENTRYA>())).iFSTextEffectMSec as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOUNDSENTRYA),
            "::",
            stringify!(iFSTextEffectMSec)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSOUNDSENTRYA>())).iFSTextEffectColorBits as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOUNDSENTRYA),
            "::",
            stringify!(iFSTextEffectColorBits)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSOUNDSENTRYA>())).iFSGrafEffect as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOUNDSENTRYA),
            "::",
            stringify!(iFSGrafEffect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSOUNDSENTRYA>())).iFSGrafEffectMSec as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOUNDSENTRYA),
            "::",
            stringify!(iFSGrafEffectMSec)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSOUNDSENTRYA>())).iFSGrafEffectColor as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOUNDSENTRYA),
            "::",
            stringify!(iFSGrafEffectColor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSOUNDSENTRYA>())).iWindowsEffect as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOUNDSENTRYA),
            "::",
            stringify!(iWindowsEffect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSOUNDSENTRYA>())).iWindowsEffectMSec as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOUNDSENTRYA),
            "::",
            stringify!(iWindowsEffectMSec)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSOUNDSENTRYA>())).lpszWindowsEffectDLL as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOUNDSENTRYA),
            "::",
            stringify!(lpszWindowsEffectDLL)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSOUNDSENTRYA>())).iWindowsEffectOrdinal as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOUNDSENTRYA),
            "::",
            stringify!(iWindowsEffectOrdinal)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagSOUNDSENTRYW() {
    assert_eq!(
        ::std::mem::size_of::<tagSOUNDSENTRYW>(),
        56usize,
        concat!("Size of: ", stringify!(tagSOUNDSENTRYW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagSOUNDSENTRYW>(),
        8usize,
        concat!("Alignment of ", stringify!(tagSOUNDSENTRYW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSOUNDSENTRYW>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOUNDSENTRYW),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSOUNDSENTRYW>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOUNDSENTRYW),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSOUNDSENTRYW>())).iFSTextEffect as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOUNDSENTRYW),
            "::",
            stringify!(iFSTextEffect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSOUNDSENTRYW>())).iFSTextEffectMSec as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOUNDSENTRYW),
            "::",
            stringify!(iFSTextEffectMSec)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSOUNDSENTRYW>())).iFSTextEffectColorBits as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOUNDSENTRYW),
            "::",
            stringify!(iFSTextEffectColorBits)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSOUNDSENTRYW>())).iFSGrafEffect as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOUNDSENTRYW),
            "::",
            stringify!(iFSGrafEffect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSOUNDSENTRYW>())).iFSGrafEffectMSec as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOUNDSENTRYW),
            "::",
            stringify!(iFSGrafEffectMSec)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSOUNDSENTRYW>())).iFSGrafEffectColor as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOUNDSENTRYW),
            "::",
            stringify!(iFSGrafEffectColor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSOUNDSENTRYW>())).iWindowsEffect as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOUNDSENTRYW),
            "::",
            stringify!(iWindowsEffect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSOUNDSENTRYW>())).iWindowsEffectMSec as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOUNDSENTRYW),
            "::",
            stringify!(iWindowsEffectMSec)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSOUNDSENTRYW>())).lpszWindowsEffectDLL as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOUNDSENTRYW),
            "::",
            stringify!(lpszWindowsEffectDLL)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSOUNDSENTRYW>())).iWindowsEffectOrdinal as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOUNDSENTRYW),
            "::",
            stringify!(iWindowsEffectOrdinal)
        )
    );
}
pub type SOUNDSENTRYW = tagSOUNDSENTRYW;
pub type LPSOUNDSENTRYW = *mut tagSOUNDSENTRYW;
pub type SOUNDSENTRY = SOUNDSENTRYA;
pub type LPSOUNDSENTRY = LPSOUNDSENTRYA;
extern "C" {
    pub fn SoundSentry() -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagTOGGLEKEYS {
    pub cbSize: UINT,
    pub dwFlags: DWORD,
}
#[test]
fn bindgen_test_layout_tagTOGGLEKEYS() {
    assert_eq!(
        ::std::mem::size_of::<tagTOGGLEKEYS>(),
        8usize,
        concat!("Size of: ", stringify!(tagTOGGLEKEYS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagTOGGLEKEYS>(),
        4usize,
        concat!("Alignment of ", stringify!(tagTOGGLEKEYS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTOGGLEKEYS>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTOGGLEKEYS),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTOGGLEKEYS>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTOGGLEKEYS),
            "::",
            stringify!(dwFlags)
        )
    );
}
pub type TOGGLEKEYS = tagTOGGLEKEYS;
pub type LPTOGGLEKEYS = *mut tagTOGGLEKEYS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagAUDIODESCRIPTION {
    pub cbSize: UINT,
    pub Enabled: BOOL,
    pub Locale: LCID,
}
#[test]
fn bindgen_test_layout_tagAUDIODESCRIPTION() {
    assert_eq!(
        ::std::mem::size_of::<tagAUDIODESCRIPTION>(),
        12usize,
        concat!("Size of: ", stringify!(tagAUDIODESCRIPTION))
    );
    assert_eq!(
        ::std::mem::align_of::<tagAUDIODESCRIPTION>(),
        4usize,
        concat!("Alignment of ", stringify!(tagAUDIODESCRIPTION))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUDIODESCRIPTION>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUDIODESCRIPTION),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUDIODESCRIPTION>())).Enabled as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUDIODESCRIPTION),
            "::",
            stringify!(Enabled)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUDIODESCRIPTION>())).Locale as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUDIODESCRIPTION),
            "::",
            stringify!(Locale)
        )
    );
}
pub type AUDIODESCRIPTION = tagAUDIODESCRIPTION;
pub type LPAUDIODESCRIPTION = *mut tagAUDIODESCRIPTION;
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() -> BOOL;
}
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;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMONITORINFO {
    pub cbSize: DWORD,
    pub rcMonitor: RECT,
    pub rcWork: RECT,
    pub dwFlags: DWORD,
}
#[test]
fn bindgen_test_layout_tagMONITORINFO() {
    assert_eq!(
        ::std::mem::size_of::<tagMONITORINFO>(),
        40usize,
        concat!("Size of: ", stringify!(tagMONITORINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMONITORINFO>(),
        4usize,
        concat!("Alignment of ", stringify!(tagMONITORINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONITORINFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONITORINFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONITORINFO>())).rcMonitor as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONITORINFO),
            "::",
            stringify!(rcMonitor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONITORINFO>())).rcWork as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONITORINFO),
            "::",
            stringify!(rcWork)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONITORINFO>())).dwFlags as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONITORINFO),
            "::",
            stringify!(dwFlags)
        )
    );
}
pub type MONITORINFO = tagMONITORINFO;
pub type LPMONITORINFO = *mut tagMONITORINFO;
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct tagMONITORINFOEXA {
    pub __bindgen_padding_0: [u8; 40usize],
    pub szDevice: [CHAR; 32usize],
}
#[test]
fn bindgen_test_layout_tagMONITORINFOEXA() {
    assert_eq!(
        ::std::mem::size_of::<tagMONITORINFOEXA>(),
        72usize,
        concat!("Size of: ", stringify!(tagMONITORINFOEXA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMONITORINFOEXA>(),
        4usize,
        concat!("Alignment of ", stringify!(tagMONITORINFOEXA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONITORINFOEXA>())).szDevice as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONITORINFOEXA),
            "::",
            stringify!(szDevice)
        )
    );
}
pub type MONITORINFOEXA = tagMONITORINFOEXA;
pub type LPMONITORINFOEXA = *mut tagMONITORINFOEXA;
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct tagMONITORINFOEXW {
    pub __bindgen_padding_0: [u16; 20usize],
    pub szDevice: [WCHAR; 32usize],
}
#[test]
fn bindgen_test_layout_tagMONITORINFOEXW() {
    assert_eq!(
        ::std::mem::size_of::<tagMONITORINFOEXW>(),
        104usize,
        concat!("Size of: ", stringify!(tagMONITORINFOEXW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMONITORINFOEXW>(),
        4usize,
        concat!("Alignment of ", stringify!(tagMONITORINFOEXW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONITORINFOEXW>())).szDevice as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONITORINFOEXW),
            "::",
            stringify!(szDevice)
        )
    );
}
pub type MONITORINFOEXW = tagMONITORINFOEXW;
pub type LPMONITORINFOEXW = *mut tagMONITORINFOEXW;
pub type MONITORINFOEX = MONITORINFOEXA;
pub type LPMONITORINFOEX = LPMONITORINFOEXA;
extern "C" {
    pub fn GetMonitorInfoA(hMonitor: HMONITOR, lpmi: LPMONITORINFO) -> BOOL;
}
extern "C" {
    pub fn GetMonitorInfoW(hMonitor: HMONITOR, lpmi: LPMONITORINFO) -> BOOL;
}
pub type MONITORENUMPROC = ::std::option::Option<
    unsafe extern "C" fn(arg1: HMONITOR, arg2: HDC, arg3: LPRECT, arg4: LPARAM) -> BOOL,
>;
extern "C" {
    pub fn EnumDisplayMonitors(
        hdc: HDC,
        lprcClip: LPCRECT,
        lpfnEnum: MONITORENUMPROC,
        dwData: LPARAM,
    ) -> BOOL;
}
extern "C" {
    pub fn NotifyWinEvent(event: DWORD, hwnd: HWND, idObject: LONG, idChild: LONG);
}
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 SetWinEventHook(
        eventMin: DWORD,
        eventMax: DWORD,
        hmodWinEventProc: HMODULE,
        pfnWinEventProc: WINEVENTPROC,
        idProcess: DWORD,
        idThread: DWORD,
        dwFlags: DWORD,
    ) -> HWINEVENTHOOK;
}
extern "C" {
    pub fn IsWinEventHookInstalled(event: DWORD) -> BOOL;
}
extern "C" {
    pub fn UnhookWinEvent(hWinEventHook: HWINEVENTHOOK) -> BOOL;
}
#[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,
}
#[test]
fn bindgen_test_layout_tagGUITHREADINFO() {
    assert_eq!(
        ::std::mem::size_of::<tagGUITHREADINFO>(),
        72usize,
        concat!("Size of: ", stringify!(tagGUITHREADINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagGUITHREADINFO>(),
        8usize,
        concat!("Alignment of ", stringify!(tagGUITHREADINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGUITHREADINFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGUITHREADINFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGUITHREADINFO>())).flags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGUITHREADINFO),
            "::",
            stringify!(flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGUITHREADINFO>())).hwndActive as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGUITHREADINFO),
            "::",
            stringify!(hwndActive)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGUITHREADINFO>())).hwndFocus as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGUITHREADINFO),
            "::",
            stringify!(hwndFocus)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGUITHREADINFO>())).hwndCapture as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGUITHREADINFO),
            "::",
            stringify!(hwndCapture)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGUITHREADINFO>())).hwndMenuOwner as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGUITHREADINFO),
            "::",
            stringify!(hwndMenuOwner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGUITHREADINFO>())).hwndMoveSize as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGUITHREADINFO),
            "::",
            stringify!(hwndMoveSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGUITHREADINFO>())).hwndCaret as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGUITHREADINFO),
            "::",
            stringify!(hwndCaret)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGUITHREADINFO>())).rcCaret as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGUITHREADINFO),
            "::",
            stringify!(rcCaret)
        )
    );
}
pub type GUITHREADINFO = tagGUITHREADINFO;
pub type PGUITHREADINFO = *mut tagGUITHREADINFO;
pub type LPGUITHREADINFO = *mut tagGUITHREADINFO;
extern "C" {
    pub fn GetGUIThreadInfo(idThread: DWORD, pgui: PGUITHREADINFO) -> BOOL;
}
extern "C" {
    pub fn BlockInput(fBlockIt: BOOL) -> BOOL;
}
extern "C" {
    pub fn SetProcessDPIAware() -> BOOL;
}
extern "C" {
    pub fn IsProcessDPIAware() -> BOOL;
}
extern "C" {
    pub fn SetThreadDpiAwarenessContext(dpiContext: DPI_AWARENESS_CONTEXT)
        -> DPI_AWARENESS_CONTEXT;
}
extern "C" {
    pub fn GetThreadDpiAwarenessContext() -> DPI_AWARENESS_CONTEXT;
}
extern "C" {
    pub fn GetWindowDpiAwarenessContext(hwnd: HWND) -> DPI_AWARENESS_CONTEXT;
}
extern "C" {
    pub fn GetAwarenessFromDpiAwarenessContext(value: DPI_AWARENESS_CONTEXT) -> DPI_AWARENESS;
}
extern "C" {
    pub fn GetDpiFromDpiAwarenessContext(value: DPI_AWARENESS_CONTEXT) -> UINT;
}
extern "C" {
    pub fn AreDpiAwarenessContextsEqual(
        dpiContextA: DPI_AWARENESS_CONTEXT,
        dpiContextB: DPI_AWARENESS_CONTEXT,
    ) -> BOOL;
}
extern "C" {
    pub fn IsValidDpiAwarenessContext(value: DPI_AWARENESS_CONTEXT) -> BOOL;
}
extern "C" {
    pub fn GetDpiForWindow(hwnd: HWND) -> UINT;
}
extern "C" {
    pub fn GetDpiForSystem() -> UINT;
}
extern "C" {
    pub fn GetSystemDpiForProcess(hProcess: HANDLE) -> UINT;
}
extern "C" {
    pub fn EnableNonClientDpiScaling(hwnd: HWND) -> BOOL;
}
extern "C" {
    pub fn InheritWindowMonitor(hwnd: HWND, hwndInherit: HWND) -> BOOL;
}
extern "C" {
    pub fn SetProcessDpiAwarenessContext(value: DPI_AWARENESS_CONTEXT) -> BOOL;
}
extern "C" {
    pub fn GetDpiAwarenessContextForProcess(hProcess: HANDLE) -> DPI_AWARENESS_CONTEXT;
}
extern "C" {
    pub fn SetThreadDpiHostingBehavior(value: DPI_HOSTING_BEHAVIOR) -> DPI_HOSTING_BEHAVIOR;
}
extern "C" {
    pub fn GetThreadDpiHostingBehavior() -> DPI_HOSTING_BEHAVIOR;
}
extern "C" {
    pub fn GetWindowDpiHostingBehavior(hwnd: HWND) -> DPI_HOSTING_BEHAVIOR;
}
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,
}
#[test]
fn bindgen_test_layout_tagCURSORINFO() {
    assert_eq!(
        ::std::mem::size_of::<tagCURSORINFO>(),
        24usize,
        concat!("Size of: ", stringify!(tagCURSORINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCURSORINFO>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCURSORINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCURSORINFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCURSORINFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCURSORINFO>())).flags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCURSORINFO),
            "::",
            stringify!(flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCURSORINFO>())).hCursor as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCURSORINFO),
            "::",
            stringify!(hCursor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCURSORINFO>())).ptScreenPos as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCURSORINFO),
            "::",
            stringify!(ptScreenPos)
        )
    );
}
pub type CURSORINFO = tagCURSORINFO;
pub type PCURSORINFO = *mut tagCURSORINFO;
pub type LPCURSORINFO = *mut tagCURSORINFO;
extern "C" {
    pub fn GetCursorInfo(pci: PCURSORINFO) -> BOOL;
}
#[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,
}
#[test]
fn bindgen_test_layout_tagWINDOWINFO() {
    assert_eq!(
        ::std::mem::size_of::<tagWINDOWINFO>(),
        60usize,
        concat!("Size of: ", stringify!(tagWINDOWINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagWINDOWINFO>(),
        4usize,
        concat!("Alignment of ", stringify!(tagWINDOWINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWINDOWINFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWINDOWINFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWINDOWINFO>())).rcWindow as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWINDOWINFO),
            "::",
            stringify!(rcWindow)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWINDOWINFO>())).rcClient as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWINDOWINFO),
            "::",
            stringify!(rcClient)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWINDOWINFO>())).dwStyle as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWINDOWINFO),
            "::",
            stringify!(dwStyle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWINDOWINFO>())).dwExStyle as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWINDOWINFO),
            "::",
            stringify!(dwExStyle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWINDOWINFO>())).dwWindowStatus as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWINDOWINFO),
            "::",
            stringify!(dwWindowStatus)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWINDOWINFO>())).cxWindowBorders as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWINDOWINFO),
            "::",
            stringify!(cxWindowBorders)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWINDOWINFO>())).cyWindowBorders as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWINDOWINFO),
            "::",
            stringify!(cyWindowBorders)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWINDOWINFO>())).atomWindowType as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWINDOWINFO),
            "::",
            stringify!(atomWindowType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWINDOWINFO>())).wCreatorVersion as *const _ as usize },
        58usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWINDOWINFO),
            "::",
            stringify!(wCreatorVersion)
        )
    );
}
pub type WINDOWINFO = tagWINDOWINFO;
pub type PWINDOWINFO = *mut tagWINDOWINFO;
pub type LPWINDOWINFO = *mut tagWINDOWINFO;
extern "C" {
    pub fn GetWindowInfo(hwnd: HWND, pwi: PWINDOWINFO) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagTITLEBARINFO {
    pub cbSize: DWORD,
    pub rcTitleBar: RECT,
    pub rgstate: [DWORD; 6usize],
}
#[test]
fn bindgen_test_layout_tagTITLEBARINFO() {
    assert_eq!(
        ::std::mem::size_of::<tagTITLEBARINFO>(),
        44usize,
        concat!("Size of: ", stringify!(tagTITLEBARINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagTITLEBARINFO>(),
        4usize,
        concat!("Alignment of ", stringify!(tagTITLEBARINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTITLEBARINFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTITLEBARINFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTITLEBARINFO>())).rcTitleBar as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTITLEBARINFO),
            "::",
            stringify!(rcTitleBar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTITLEBARINFO>())).rgstate as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTITLEBARINFO),
            "::",
            stringify!(rgstate)
        )
    );
}
pub type TITLEBARINFO = tagTITLEBARINFO;
pub type PTITLEBARINFO = *mut tagTITLEBARINFO;
pub type LPTITLEBARINFO = *mut tagTITLEBARINFO;
extern "C" {
    pub fn GetTitleBarInfo(hwnd: HWND, pti: PTITLEBARINFO) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagTITLEBARINFOEX {
    pub cbSize: DWORD,
    pub rcTitleBar: RECT,
    pub rgstate: [DWORD; 6usize],
    pub rgrect: [RECT; 6usize],
}
#[test]
fn bindgen_test_layout_tagTITLEBARINFOEX() {
    assert_eq!(
        ::std::mem::size_of::<tagTITLEBARINFOEX>(),
        140usize,
        concat!("Size of: ", stringify!(tagTITLEBARINFOEX))
    );
    assert_eq!(
        ::std::mem::align_of::<tagTITLEBARINFOEX>(),
        4usize,
        concat!("Alignment of ", stringify!(tagTITLEBARINFOEX))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTITLEBARINFOEX>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTITLEBARINFOEX),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTITLEBARINFOEX>())).rcTitleBar as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTITLEBARINFOEX),
            "::",
            stringify!(rcTitleBar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTITLEBARINFOEX>())).rgstate as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTITLEBARINFOEX),
            "::",
            stringify!(rgstate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTITLEBARINFOEX>())).rgrect as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTITLEBARINFOEX),
            "::",
            stringify!(rgrect)
        )
    );
}
pub type TITLEBARINFOEX = tagTITLEBARINFOEX;
pub type PTITLEBARINFOEX = *mut tagTITLEBARINFOEX;
pub type LPTITLEBARINFOEX = *mut tagTITLEBARINFOEX;
#[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],
}
#[test]
fn bindgen_test_layout_tagMENUBARINFO() {
    assert_eq!(
        ::std::mem::size_of::<tagMENUBARINFO>(),
        48usize,
        concat!("Size of: ", stringify!(tagMENUBARINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMENUBARINFO>(),
        8usize,
        concat!("Alignment of ", stringify!(tagMENUBARINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUBARINFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUBARINFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUBARINFO>())).rcBar as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUBARINFO),
            "::",
            stringify!(rcBar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUBARINFO>())).hMenu as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUBARINFO),
            "::",
            stringify!(hMenu)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMENUBARINFO>())).hwndMenu as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMENUBARINFO),
            "::",
            stringify!(hwndMenu)
        )
    );
}
impl tagMENUBARINFO {
    #[inline]
    pub fn fBarFocused(&self) -> BOOL {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fBarFocused(&mut self, val: BOOL) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fFocused(&self) -> BOOL {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fFocused(&mut self, val: BOOL) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        fBarFocused: BOOL,
        fFocused: BOOL,
    ) -> __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) -> BOOL;
}
#[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],
}
#[test]
fn bindgen_test_layout_tagSCROLLBARINFO() {
    assert_eq!(
        ::std::mem::size_of::<tagSCROLLBARINFO>(),
        60usize,
        concat!("Size of: ", stringify!(tagSCROLLBARINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagSCROLLBARINFO>(),
        4usize,
        concat!("Alignment of ", stringify!(tagSCROLLBARINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSCROLLBARINFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSCROLLBARINFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSCROLLBARINFO>())).rcScrollBar as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSCROLLBARINFO),
            "::",
            stringify!(rcScrollBar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSCROLLBARINFO>())).dxyLineButton as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSCROLLBARINFO),
            "::",
            stringify!(dxyLineButton)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSCROLLBARINFO>())).xyThumbTop as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSCROLLBARINFO),
            "::",
            stringify!(xyThumbTop)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSCROLLBARINFO>())).xyThumbBottom as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSCROLLBARINFO),
            "::",
            stringify!(xyThumbBottom)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSCROLLBARINFO>())).reserved as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSCROLLBARINFO),
            "::",
            stringify!(reserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSCROLLBARINFO>())).rgstate as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSCROLLBARINFO),
            "::",
            stringify!(rgstate)
        )
    );
}
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) -> BOOL;
}
#[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,
}
#[test]
fn bindgen_test_layout_tagCOMBOBOXINFO() {
    assert_eq!(
        ::std::mem::size_of::<tagCOMBOBOXINFO>(),
        64usize,
        concat!("Size of: ", stringify!(tagCOMBOBOXINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCOMBOBOXINFO>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCOMBOBOXINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOMBOBOXINFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOMBOBOXINFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOMBOBOXINFO>())).rcItem as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOMBOBOXINFO),
            "::",
            stringify!(rcItem)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOMBOBOXINFO>())).rcButton as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOMBOBOXINFO),
            "::",
            stringify!(rcButton)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOMBOBOXINFO>())).stateButton as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOMBOBOXINFO),
            "::",
            stringify!(stateButton)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOMBOBOXINFO>())).hwndCombo as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOMBOBOXINFO),
            "::",
            stringify!(hwndCombo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOMBOBOXINFO>())).hwndItem as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOMBOBOXINFO),
            "::",
            stringify!(hwndItem)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOMBOBOXINFO>())).hwndList as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOMBOBOXINFO),
            "::",
            stringify!(hwndList)
        )
    );
}
pub type COMBOBOXINFO = tagCOMBOBOXINFO;
pub type PCOMBOBOXINFO = *mut tagCOMBOBOXINFO;
pub type LPCOMBOBOXINFO = *mut tagCOMBOBOXINFO;
extern "C" {
    pub fn GetComboBoxInfo(hwndCombo: HWND, pcbi: PCOMBOBOXINFO) -> BOOL;
}
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,
}
#[test]
fn bindgen_test_layout_tagALTTABINFO() {
    assert_eq!(
        ::std::mem::size_of::<tagALTTABINFO>(),
        40usize,
        concat!("Size of: ", stringify!(tagALTTABINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagALTTABINFO>(),
        4usize,
        concat!("Alignment of ", stringify!(tagALTTABINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagALTTABINFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagALTTABINFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagALTTABINFO>())).cItems as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagALTTABINFO),
            "::",
            stringify!(cItems)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagALTTABINFO>())).cColumns as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagALTTABINFO),
            "::",
            stringify!(cColumns)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagALTTABINFO>())).cRows as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagALTTABINFO),
            "::",
            stringify!(cRows)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagALTTABINFO>())).iColFocus as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagALTTABINFO),
            "::",
            stringify!(iColFocus)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagALTTABINFO>())).iRowFocus as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagALTTABINFO),
            "::",
            stringify!(iRowFocus)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagALTTABINFO>())).cxItem as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagALTTABINFO),
            "::",
            stringify!(cxItem)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagALTTABINFO>())).cyItem as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagALTTABINFO),
            "::",
            stringify!(cyItem)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagALTTABINFO>())).ptStart as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagALTTABINFO),
            "::",
            stringify!(ptStart)
        )
    );
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn GetAltTabInfoW(
        hwnd: HWND,
        iItem: ::std::os::raw::c_int,
        pati: PALTTABINFO,
        pszItemText: LPWSTR,
        cchItemText: UINT,
    ) -> BOOL;
}
extern "C" {
    pub fn GetListBoxInfo(hwnd: HWND) -> DWORD;
}
extern "C" {
    pub fn LockWorkStation() -> BOOL;
}
extern "C" {
    pub fn UserHandleGrantAccess(hUserHandle: HANDLE, hJob: HANDLE, bGrant: BOOL) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HRAWINPUT__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HRAWINPUT__() {
    assert_eq!(
        ::std::mem::size_of::<HRAWINPUT__>(),
        4usize,
        concat!("Size of: ", stringify!(HRAWINPUT__))
    );
    assert_eq!(
        ::std::mem::align_of::<HRAWINPUT__>(),
        4usize,
        concat!("Alignment of ", stringify!(HRAWINPUT__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HRAWINPUT__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HRAWINPUT__),
            "::",
            stringify!(unused)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagRAWINPUTHEADER() {
    assert_eq!(
        ::std::mem::size_of::<tagRAWINPUTHEADER>(),
        24usize,
        concat!("Size of: ", stringify!(tagRAWINPUTHEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRAWINPUTHEADER>(),
        8usize,
        concat!("Alignment of ", stringify!(tagRAWINPUTHEADER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRAWINPUTHEADER>())).dwType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRAWINPUTHEADER),
            "::",
            stringify!(dwType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRAWINPUTHEADER>())).dwSize as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRAWINPUTHEADER),
            "::",
            stringify!(dwSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRAWINPUTHEADER>())).hDevice as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRAWINPUTHEADER),
            "::",
            stringify!(hDevice)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRAWINPUTHEADER>())).wParam as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRAWINPUTHEADER),
            "::",
            stringify!(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,
}
#[test]
fn bindgen_test_layout_tagRAWMOUSE__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagRAWMOUSE__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(tagRAWMOUSE__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tagRAWMOUSE__bindgen_ty_1__bindgen_ty_1>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(tagRAWMOUSE__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRAWMOUSE__bindgen_ty_1__bindgen_ty_1>())).usButtonFlags
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRAWMOUSE__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(usButtonFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRAWMOUSE__bindgen_ty_1__bindgen_ty_1>())).usButtonData
                as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRAWMOUSE__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(usButtonData)
        )
    );
}
#[test]
fn bindgen_test_layout_tagRAWMOUSE__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagRAWMOUSE__bindgen_ty_1>(),
        4usize,
        concat!("Size of: ", stringify!(tagRAWMOUSE__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRAWMOUSE__bindgen_ty_1>(),
        4usize,
        concat!("Alignment of ", stringify!(tagRAWMOUSE__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRAWMOUSE__bindgen_ty_1>())).ulButtons as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRAWMOUSE__bindgen_ty_1),
            "::",
            stringify!(ulButtons)
        )
    );
}
#[test]
fn bindgen_test_layout_tagRAWMOUSE() {
    assert_eq!(
        ::std::mem::size_of::<tagRAWMOUSE>(),
        24usize,
        concat!("Size of: ", stringify!(tagRAWMOUSE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRAWMOUSE>(),
        4usize,
        concat!("Alignment of ", stringify!(tagRAWMOUSE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRAWMOUSE>())).usFlags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRAWMOUSE),
            "::",
            stringify!(usFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRAWMOUSE>())).ulRawButtons as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRAWMOUSE),
            "::",
            stringify!(ulRawButtons)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRAWMOUSE>())).lLastX as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRAWMOUSE),
            "::",
            stringify!(lLastX)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRAWMOUSE>())).lLastY as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRAWMOUSE),
            "::",
            stringify!(lLastY)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRAWMOUSE>())).ulExtraInformation as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRAWMOUSE),
            "::",
            stringify!(ulExtraInformation)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagRAWKEYBOARD() {
    assert_eq!(
        ::std::mem::size_of::<tagRAWKEYBOARD>(),
        16usize,
        concat!("Size of: ", stringify!(tagRAWKEYBOARD))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRAWKEYBOARD>(),
        4usize,
        concat!("Alignment of ", stringify!(tagRAWKEYBOARD))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRAWKEYBOARD>())).MakeCode as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRAWKEYBOARD),
            "::",
            stringify!(MakeCode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRAWKEYBOARD>())).Flags as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRAWKEYBOARD),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRAWKEYBOARD>())).Reserved as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRAWKEYBOARD),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRAWKEYBOARD>())).VKey as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRAWKEYBOARD),
            "::",
            stringify!(VKey)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRAWKEYBOARD>())).Message as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRAWKEYBOARD),
            "::",
            stringify!(Message)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRAWKEYBOARD>())).ExtraInformation as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRAWKEYBOARD),
            "::",
            stringify!(ExtraInformation)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagRAWHID() {
    assert_eq!(
        ::std::mem::size_of::<tagRAWHID>(),
        12usize,
        concat!("Size of: ", stringify!(tagRAWHID))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRAWHID>(),
        4usize,
        concat!("Alignment of ", stringify!(tagRAWHID))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRAWHID>())).dwSizeHid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRAWHID),
            "::",
            stringify!(dwSizeHid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRAWHID>())).dwCount as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRAWHID),
            "::",
            stringify!(dwCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRAWHID>())).bRawData as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRAWHID),
            "::",
            stringify!(bRawData)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagRAWINPUT__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagRAWINPUT__bindgen_ty_1>(),
        24usize,
        concat!("Size of: ", stringify!(tagRAWINPUT__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRAWINPUT__bindgen_ty_1>(),
        4usize,
        concat!("Alignment of ", stringify!(tagRAWINPUT__bindgen_ty_1))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRAWINPUT__bindgen_ty_1>())).mouse as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRAWINPUT__bindgen_ty_1),
            "::",
            stringify!(mouse)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRAWINPUT__bindgen_ty_1>())).keyboard as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRAWINPUT__bindgen_ty_1),
            "::",
            stringify!(keyboard)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRAWINPUT__bindgen_ty_1>())).hid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRAWINPUT__bindgen_ty_1),
            "::",
            stringify!(hid)
        )
    );
}
#[test]
fn bindgen_test_layout_tagRAWINPUT() {
    assert_eq!(
        ::std::mem::size_of::<tagRAWINPUT>(),
        48usize,
        concat!("Size of: ", stringify!(tagRAWINPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRAWINPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagRAWINPUT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRAWINPUT>())).header as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRAWINPUT),
            "::",
            stringify!(header)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRAWINPUT>())).data as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRAWINPUT),
            "::",
            stringify!(data)
        )
    );
}
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: BOOL,
}
#[test]
fn bindgen_test_layout_tagRID_DEVICE_INFO_MOUSE() {
    assert_eq!(
        ::std::mem::size_of::<tagRID_DEVICE_INFO_MOUSE>(),
        16usize,
        concat!("Size of: ", stringify!(tagRID_DEVICE_INFO_MOUSE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRID_DEVICE_INFO_MOUSE>(),
        4usize,
        concat!("Alignment of ", stringify!(tagRID_DEVICE_INFO_MOUSE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRID_DEVICE_INFO_MOUSE>())).dwId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRID_DEVICE_INFO_MOUSE),
            "::",
            stringify!(dwId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRID_DEVICE_INFO_MOUSE>())).dwNumberOfButtons as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRID_DEVICE_INFO_MOUSE),
            "::",
            stringify!(dwNumberOfButtons)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRID_DEVICE_INFO_MOUSE>())).dwSampleRate as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRID_DEVICE_INFO_MOUSE),
            "::",
            stringify!(dwSampleRate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRID_DEVICE_INFO_MOUSE>())).fHasHorizontalWheel as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRID_DEVICE_INFO_MOUSE),
            "::",
            stringify!(fHasHorizontalWheel)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagRID_DEVICE_INFO_KEYBOARD() {
    assert_eq!(
        ::std::mem::size_of::<tagRID_DEVICE_INFO_KEYBOARD>(),
        24usize,
        concat!("Size of: ", stringify!(tagRID_DEVICE_INFO_KEYBOARD))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRID_DEVICE_INFO_KEYBOARD>(),
        4usize,
        concat!("Alignment of ", stringify!(tagRID_DEVICE_INFO_KEYBOARD))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRID_DEVICE_INFO_KEYBOARD>())).dwType as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRID_DEVICE_INFO_KEYBOARD),
            "::",
            stringify!(dwType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRID_DEVICE_INFO_KEYBOARD>())).dwSubType as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRID_DEVICE_INFO_KEYBOARD),
            "::",
            stringify!(dwSubType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRID_DEVICE_INFO_KEYBOARD>())).dwKeyboardMode as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRID_DEVICE_INFO_KEYBOARD),
            "::",
            stringify!(dwKeyboardMode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRID_DEVICE_INFO_KEYBOARD>())).dwNumberOfFunctionKeys
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRID_DEVICE_INFO_KEYBOARD),
            "::",
            stringify!(dwNumberOfFunctionKeys)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRID_DEVICE_INFO_KEYBOARD>())).dwNumberOfIndicators as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRID_DEVICE_INFO_KEYBOARD),
            "::",
            stringify!(dwNumberOfIndicators)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRID_DEVICE_INFO_KEYBOARD>())).dwNumberOfKeysTotal as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRID_DEVICE_INFO_KEYBOARD),
            "::",
            stringify!(dwNumberOfKeysTotal)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagRID_DEVICE_INFO_HID() {
    assert_eq!(
        ::std::mem::size_of::<tagRID_DEVICE_INFO_HID>(),
        16usize,
        concat!("Size of: ", stringify!(tagRID_DEVICE_INFO_HID))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRID_DEVICE_INFO_HID>(),
        4usize,
        concat!("Alignment of ", stringify!(tagRID_DEVICE_INFO_HID))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRID_DEVICE_INFO_HID>())).dwVendorId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRID_DEVICE_INFO_HID),
            "::",
            stringify!(dwVendorId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRID_DEVICE_INFO_HID>())).dwProductId as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRID_DEVICE_INFO_HID),
            "::",
            stringify!(dwProductId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRID_DEVICE_INFO_HID>())).dwVersionNumber as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRID_DEVICE_INFO_HID),
            "::",
            stringify!(dwVersionNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRID_DEVICE_INFO_HID>())).usUsagePage as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRID_DEVICE_INFO_HID),
            "::",
            stringify!(usUsagePage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRID_DEVICE_INFO_HID>())).usUsage as *const _ as usize },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRID_DEVICE_INFO_HID),
            "::",
            stringify!(usUsage)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagRID_DEVICE_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagRID_DEVICE_INFO__bindgen_ty_1>(),
        24usize,
        concat!("Size of: ", stringify!(tagRID_DEVICE_INFO__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRID_DEVICE_INFO__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tagRID_DEVICE_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRID_DEVICE_INFO__bindgen_ty_1>())).mouse as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRID_DEVICE_INFO__bindgen_ty_1),
            "::",
            stringify!(mouse)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRID_DEVICE_INFO__bindgen_ty_1>())).keyboard as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRID_DEVICE_INFO__bindgen_ty_1),
            "::",
            stringify!(keyboard)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRID_DEVICE_INFO__bindgen_ty_1>())).hid as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRID_DEVICE_INFO__bindgen_ty_1),
            "::",
            stringify!(hid)
        )
    );
}
#[test]
fn bindgen_test_layout_tagRID_DEVICE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<tagRID_DEVICE_INFO>(),
        32usize,
        concat!("Size of: ", stringify!(tagRID_DEVICE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRID_DEVICE_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(tagRID_DEVICE_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRID_DEVICE_INFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRID_DEVICE_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRID_DEVICE_INFO>())).dwType as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRID_DEVICE_INFO),
            "::",
            stringify!(dwType)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagRAWINPUTDEVICE() {
    assert_eq!(
        ::std::mem::size_of::<tagRAWINPUTDEVICE>(),
        16usize,
        concat!("Size of: ", stringify!(tagRAWINPUTDEVICE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRAWINPUTDEVICE>(),
        8usize,
        concat!("Alignment of ", stringify!(tagRAWINPUTDEVICE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRAWINPUTDEVICE>())).usUsagePage as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRAWINPUTDEVICE),
            "::",
            stringify!(usUsagePage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRAWINPUTDEVICE>())).usUsage as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRAWINPUTDEVICE),
            "::",
            stringify!(usUsage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRAWINPUTDEVICE>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRAWINPUTDEVICE),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRAWINPUTDEVICE>())).hwndTarget as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRAWINPUTDEVICE),
            "::",
            stringify!(hwndTarget)
        )
    );
}
pub type RAWINPUTDEVICE = tagRAWINPUTDEVICE;
pub type PRAWINPUTDEVICE = *mut tagRAWINPUTDEVICE;
pub type LPRAWINPUTDEVICE = *mut tagRAWINPUTDEVICE;
pub type PCRAWINPUTDEVICE = *const RAWINPUTDEVICE;
extern "C" {
    pub fn RegisterRawInputDevices(
        pRawInputDevices: PCRAWINPUTDEVICE,
        uiNumDevices: UINT,
        cbSize: UINT,
    ) -> BOOL;
}
extern "C" {
    pub fn GetRegisteredRawInputDevices(
        pRawInputDevices: PRAWINPUTDEVICE,
        puiNumDevices: PUINT,
        cbSize: UINT,
    ) -> UINT;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagRAWINPUTDEVICELIST {
    pub hDevice: HANDLE,
    pub dwType: DWORD,
}
#[test]
fn bindgen_test_layout_tagRAWINPUTDEVICELIST() {
    assert_eq!(
        ::std::mem::size_of::<tagRAWINPUTDEVICELIST>(),
        16usize,
        concat!("Size of: ", stringify!(tagRAWINPUTDEVICELIST))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRAWINPUTDEVICELIST>(),
        8usize,
        concat!("Alignment of ", stringify!(tagRAWINPUTDEVICELIST))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRAWINPUTDEVICELIST>())).hDevice as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRAWINPUTDEVICELIST),
            "::",
            stringify!(hDevice)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRAWINPUTDEVICELIST>())).dwType as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRAWINPUTDEVICELIST),
            "::",
            stringify!(dwType)
        )
    );
}
pub type RAWINPUTDEVICELIST = tagRAWINPUTDEVICELIST;
pub type PRAWINPUTDEVICELIST = *mut tagRAWINPUTDEVICELIST;
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;
}
pub const tagPOINTER_DEVICE_TYPE_POINTER_DEVICE_TYPE_INTEGRATED_PEN: tagPOINTER_DEVICE_TYPE = 1;
pub const tagPOINTER_DEVICE_TYPE_POINTER_DEVICE_TYPE_EXTERNAL_PEN: tagPOINTER_DEVICE_TYPE = 2;
pub const tagPOINTER_DEVICE_TYPE_POINTER_DEVICE_TYPE_TOUCH: tagPOINTER_DEVICE_TYPE = 3;
pub const tagPOINTER_DEVICE_TYPE_POINTER_DEVICE_TYPE_TOUCH_PAD: tagPOINTER_DEVICE_TYPE = 4;
pub const tagPOINTER_DEVICE_TYPE_POINTER_DEVICE_TYPE_MAX: tagPOINTER_DEVICE_TYPE = -1;
pub type tagPOINTER_DEVICE_TYPE = ::std::os::raw::c_int;
pub use self::tagPOINTER_DEVICE_TYPE as POINTER_DEVICE_TYPE;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagPOINTER_DEVICE_INFO {
    pub displayOrientation: DWORD,
    pub device: HANDLE,
    pub pointerDeviceType: POINTER_DEVICE_TYPE,
    pub monitor: HMONITOR,
    pub startingCursorId: ULONG,
    pub maxActiveContacts: USHORT,
    pub productString: [WCHAR; 520usize],
}
#[test]
fn bindgen_test_layout_tagPOINTER_DEVICE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<tagPOINTER_DEVICE_INFO>(),
        1080usize,
        concat!("Size of: ", stringify!(tagPOINTER_DEVICE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagPOINTER_DEVICE_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(tagPOINTER_DEVICE_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPOINTER_DEVICE_INFO>())).displayOrientation as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_DEVICE_INFO),
            "::",
            stringify!(displayOrientation)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOINTER_DEVICE_INFO>())).device as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_DEVICE_INFO),
            "::",
            stringify!(device)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPOINTER_DEVICE_INFO>())).pointerDeviceType as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_DEVICE_INFO),
            "::",
            stringify!(pointerDeviceType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOINTER_DEVICE_INFO>())).monitor as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_DEVICE_INFO),
            "::",
            stringify!(monitor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPOINTER_DEVICE_INFO>())).startingCursorId as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_DEVICE_INFO),
            "::",
            stringify!(startingCursorId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPOINTER_DEVICE_INFO>())).maxActiveContacts as *const _
                as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_DEVICE_INFO),
            "::",
            stringify!(maxActiveContacts)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPOINTER_DEVICE_INFO>())).productString as *const _ as usize
        },
        38usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_DEVICE_INFO),
            "::",
            stringify!(productString)
        )
    );
}
pub type POINTER_DEVICE_INFO = tagPOINTER_DEVICE_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagPOINTER_DEVICE_PROPERTY {
    pub logicalMin: INT32,
    pub logicalMax: INT32,
    pub physicalMin: INT32,
    pub physicalMax: INT32,
    pub unit: UINT32,
    pub unitExponent: UINT32,
    pub usagePageId: USHORT,
    pub usageId: USHORT,
}
#[test]
fn bindgen_test_layout_tagPOINTER_DEVICE_PROPERTY() {
    assert_eq!(
        ::std::mem::size_of::<tagPOINTER_DEVICE_PROPERTY>(),
        28usize,
        concat!("Size of: ", stringify!(tagPOINTER_DEVICE_PROPERTY))
    );
    assert_eq!(
        ::std::mem::align_of::<tagPOINTER_DEVICE_PROPERTY>(),
        4usize,
        concat!("Alignment of ", stringify!(tagPOINTER_DEVICE_PROPERTY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPOINTER_DEVICE_PROPERTY>())).logicalMin as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_DEVICE_PROPERTY),
            "::",
            stringify!(logicalMin)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPOINTER_DEVICE_PROPERTY>())).logicalMax as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_DEVICE_PROPERTY),
            "::",
            stringify!(logicalMax)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPOINTER_DEVICE_PROPERTY>())).physicalMin as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_DEVICE_PROPERTY),
            "::",
            stringify!(physicalMin)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPOINTER_DEVICE_PROPERTY>())).physicalMax as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_DEVICE_PROPERTY),
            "::",
            stringify!(physicalMax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPOINTER_DEVICE_PROPERTY>())).unit as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_DEVICE_PROPERTY),
            "::",
            stringify!(unit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPOINTER_DEVICE_PROPERTY>())).unitExponent as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_DEVICE_PROPERTY),
            "::",
            stringify!(unitExponent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPOINTER_DEVICE_PROPERTY>())).usagePageId as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_DEVICE_PROPERTY),
            "::",
            stringify!(usagePageId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPOINTER_DEVICE_PROPERTY>())).usageId as *const _ as usize
        },
        26usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_DEVICE_PROPERTY),
            "::",
            stringify!(usageId)
        )
    );
}
pub type POINTER_DEVICE_PROPERTY = tagPOINTER_DEVICE_PROPERTY;
pub const tagPOINTER_DEVICE_CURSOR_TYPE_POINTER_DEVICE_CURSOR_TYPE_UNKNOWN:
    tagPOINTER_DEVICE_CURSOR_TYPE = 0;
pub const tagPOINTER_DEVICE_CURSOR_TYPE_POINTER_DEVICE_CURSOR_TYPE_TIP:
    tagPOINTER_DEVICE_CURSOR_TYPE = 1;
pub const tagPOINTER_DEVICE_CURSOR_TYPE_POINTER_DEVICE_CURSOR_TYPE_ERASER:
    tagPOINTER_DEVICE_CURSOR_TYPE = 2;
pub const tagPOINTER_DEVICE_CURSOR_TYPE_POINTER_DEVICE_CURSOR_TYPE_MAX:
    tagPOINTER_DEVICE_CURSOR_TYPE = -1;
pub type tagPOINTER_DEVICE_CURSOR_TYPE = ::std::os::raw::c_int;
pub use self::tagPOINTER_DEVICE_CURSOR_TYPE as POINTER_DEVICE_CURSOR_TYPE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagPOINTER_DEVICE_CURSOR_INFO {
    pub cursorId: UINT32,
    pub cursor: POINTER_DEVICE_CURSOR_TYPE,
}
#[test]
fn bindgen_test_layout_tagPOINTER_DEVICE_CURSOR_INFO() {
    assert_eq!(
        ::std::mem::size_of::<tagPOINTER_DEVICE_CURSOR_INFO>(),
        8usize,
        concat!("Size of: ", stringify!(tagPOINTER_DEVICE_CURSOR_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagPOINTER_DEVICE_CURSOR_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(tagPOINTER_DEVICE_CURSOR_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPOINTER_DEVICE_CURSOR_INFO>())).cursorId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_DEVICE_CURSOR_INFO),
            "::",
            stringify!(cursorId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPOINTER_DEVICE_CURSOR_INFO>())).cursor as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPOINTER_DEVICE_CURSOR_INFO),
            "::",
            stringify!(cursor)
        )
    );
}
pub type POINTER_DEVICE_CURSOR_INFO = tagPOINTER_DEVICE_CURSOR_INFO;
extern "C" {
    pub fn GetPointerDevices(
        deviceCount: *mut UINT32,
        pointerDevices: *mut POINTER_DEVICE_INFO,
    ) -> BOOL;
}
extern "C" {
    pub fn GetPointerDevice(device: HANDLE, pointerDevice: *mut POINTER_DEVICE_INFO) -> BOOL;
}
extern "C" {
    pub fn GetPointerDeviceProperties(
        device: HANDLE,
        propertyCount: *mut UINT32,
        pointerProperties: *mut POINTER_DEVICE_PROPERTY,
    ) -> BOOL;
}
extern "C" {
    pub fn RegisterPointerDeviceNotifications(window: HWND, notifyRange: BOOL) -> BOOL;
}
extern "C" {
    pub fn GetPointerDeviceRects(
        device: HANDLE,
        pointerDeviceRect: *mut RECT,
        displayRect: *mut RECT,
    ) -> BOOL;
}
extern "C" {
    pub fn GetPointerDeviceCursors(
        device: HANDLE,
        cursorCount: *mut UINT32,
        deviceCursors: *mut POINTER_DEVICE_CURSOR_INFO,
    ) -> BOOL;
}
extern "C" {
    pub fn GetRawPointerDeviceData(
        pointerId: UINT32,
        historyCount: UINT32,
        propertiesCount: UINT32,
        pProperties: *mut POINTER_DEVICE_PROPERTY,
        pValues: *mut LONG,
    ) -> BOOL;
}
extern "C" {
    pub fn ChangeWindowMessageFilter(message: UINT, dwFlag: DWORD) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCHANGEFILTERSTRUCT {
    pub cbSize: DWORD,
    pub ExtStatus: DWORD,
}
#[test]
fn bindgen_test_layout_tagCHANGEFILTERSTRUCT() {
    assert_eq!(
        ::std::mem::size_of::<tagCHANGEFILTERSTRUCT>(),
        8usize,
        concat!("Size of: ", stringify!(tagCHANGEFILTERSTRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCHANGEFILTERSTRUCT>(),
        4usize,
        concat!("Alignment of ", stringify!(tagCHANGEFILTERSTRUCT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHANGEFILTERSTRUCT>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHANGEFILTERSTRUCT),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHANGEFILTERSTRUCT>())).ExtStatus as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHANGEFILTERSTRUCT),
            "::",
            stringify!(ExtStatus)
        )
    );
}
pub type CHANGEFILTERSTRUCT = tagCHANGEFILTERSTRUCT;
pub type PCHANGEFILTERSTRUCT = *mut tagCHANGEFILTERSTRUCT;
extern "C" {
    pub fn ChangeWindowMessageFilterEx(
        hwnd: HWND,
        message: UINT,
        action: DWORD,
        pChangeFilterStruct: PCHANGEFILTERSTRUCT,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HGESTUREINFO__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HGESTUREINFO__() {
    assert_eq!(
        ::std::mem::size_of::<HGESTUREINFO__>(),
        4usize,
        concat!("Size of: ", stringify!(HGESTUREINFO__))
    );
    assert_eq!(
        ::std::mem::align_of::<HGESTUREINFO__>(),
        4usize,
        concat!("Alignment of ", stringify!(HGESTUREINFO__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HGESTUREINFO__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HGESTUREINFO__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HGESTUREINFO = *mut HGESTUREINFO__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagGESTUREINFO {
    pub cbSize: UINT,
    pub dwFlags: DWORD,
    pub dwID: DWORD,
    pub hwndTarget: HWND,
    pub ptsLocation: POINTS,
    pub dwInstanceID: DWORD,
    pub dwSequenceID: DWORD,
    pub ullArguments: ULONGLONG,
    pub cbExtraArgs: UINT,
}
#[test]
fn bindgen_test_layout_tagGESTUREINFO() {
    assert_eq!(
        ::std::mem::size_of::<tagGESTUREINFO>(),
        56usize,
        concat!("Size of: ", stringify!(tagGESTUREINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagGESTUREINFO>(),
        8usize,
        concat!("Alignment of ", stringify!(tagGESTUREINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGESTUREINFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGESTUREINFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGESTUREINFO>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGESTUREINFO),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGESTUREINFO>())).dwID as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGESTUREINFO),
            "::",
            stringify!(dwID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGESTUREINFO>())).hwndTarget as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGESTUREINFO),
            "::",
            stringify!(hwndTarget)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGESTUREINFO>())).ptsLocation as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGESTUREINFO),
            "::",
            stringify!(ptsLocation)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGESTUREINFO>())).dwInstanceID as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGESTUREINFO),
            "::",
            stringify!(dwInstanceID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGESTUREINFO>())).dwSequenceID as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGESTUREINFO),
            "::",
            stringify!(dwSequenceID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGESTUREINFO>())).ullArguments as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGESTUREINFO),
            "::",
            stringify!(ullArguments)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGESTUREINFO>())).cbExtraArgs as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGESTUREINFO),
            "::",
            stringify!(cbExtraArgs)
        )
    );
}
pub type GESTUREINFO = tagGESTUREINFO;
pub type PGESTUREINFO = *mut tagGESTUREINFO;
pub type PCGESTUREINFO = *const GESTUREINFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagGESTURENOTIFYSTRUCT {
    pub cbSize: UINT,
    pub dwFlags: DWORD,
    pub hwndTarget: HWND,
    pub ptsLocation: POINTS,
    pub dwInstanceID: DWORD,
}
#[test]
fn bindgen_test_layout_tagGESTURENOTIFYSTRUCT() {
    assert_eq!(
        ::std::mem::size_of::<tagGESTURENOTIFYSTRUCT>(),
        24usize,
        concat!("Size of: ", stringify!(tagGESTURENOTIFYSTRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagGESTURENOTIFYSTRUCT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagGESTURENOTIFYSTRUCT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGESTURENOTIFYSTRUCT>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGESTURENOTIFYSTRUCT),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGESTURENOTIFYSTRUCT>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGESTURENOTIFYSTRUCT),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagGESTURENOTIFYSTRUCT>())).hwndTarget as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGESTURENOTIFYSTRUCT),
            "::",
            stringify!(hwndTarget)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagGESTURENOTIFYSTRUCT>())).ptsLocation as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGESTURENOTIFYSTRUCT),
            "::",
            stringify!(ptsLocation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagGESTURENOTIFYSTRUCT>())).dwInstanceID as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGESTURENOTIFYSTRUCT),
            "::",
            stringify!(dwInstanceID)
        )
    );
}
pub type GESTURENOTIFYSTRUCT = tagGESTURENOTIFYSTRUCT;
pub type PGESTURENOTIFYSTRUCT = *mut tagGESTURENOTIFYSTRUCT;
extern "C" {
    pub fn GetGestureInfo(hGestureInfo: HGESTUREINFO, pGestureInfo: PGESTUREINFO) -> BOOL;
}
extern "C" {
    pub fn GetGestureExtraArgs(
        hGestureInfo: HGESTUREINFO,
        cbExtraArgs: UINT,
        pExtraArgs: PBYTE,
    ) -> BOOL;
}
extern "C" {
    pub fn CloseGestureInfoHandle(hGestureInfo: HGESTUREINFO) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagGESTURECONFIG {
    pub dwID: DWORD,
    pub dwWant: DWORD,
    pub dwBlock: DWORD,
}
#[test]
fn bindgen_test_layout_tagGESTURECONFIG() {
    assert_eq!(
        ::std::mem::size_of::<tagGESTURECONFIG>(),
        12usize,
        concat!("Size of: ", stringify!(tagGESTURECONFIG))
    );
    assert_eq!(
        ::std::mem::align_of::<tagGESTURECONFIG>(),
        4usize,
        concat!("Alignment of ", stringify!(tagGESTURECONFIG))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGESTURECONFIG>())).dwID as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGESTURECONFIG),
            "::",
            stringify!(dwID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGESTURECONFIG>())).dwWant as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGESTURECONFIG),
            "::",
            stringify!(dwWant)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagGESTURECONFIG>())).dwBlock as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagGESTURECONFIG),
            "::",
            stringify!(dwBlock)
        )
    );
}
pub type GESTURECONFIG = tagGESTURECONFIG;
pub type PGESTURECONFIG = *mut tagGESTURECONFIG;
extern "C" {
    pub fn SetGestureConfig(
        hwnd: HWND,
        dwReserved: DWORD,
        cIDs: UINT,
        pGestureConfig: PGESTURECONFIG,
        cbSize: UINT,
    ) -> BOOL;
}
extern "C" {
    pub fn GetGestureConfig(
        hwnd: HWND,
        dwReserved: DWORD,
        dwFlags: DWORD,
        pcIDs: PUINT,
        pGestureConfig: PGESTURECONFIG,
        cbSize: UINT,
    ) -> BOOL;
}
extern "C" {
    pub fn ShutdownBlockReasonCreate(hWnd: HWND, pwszReason: LPCWSTR) -> BOOL;
}
extern "C" {
    pub fn ShutdownBlockReasonQuery(hWnd: HWND, pwszBuff: LPWSTR, pcchBuff: *mut DWORD) -> BOOL;
}
extern "C" {
    pub fn ShutdownBlockReasonDestroy(hWnd: HWND) -> BOOL;
}
pub const tagINPUT_MESSAGE_DEVICE_TYPE_IMDT_UNAVAILABLE: tagINPUT_MESSAGE_DEVICE_TYPE = 0;
pub const tagINPUT_MESSAGE_DEVICE_TYPE_IMDT_KEYBOARD: tagINPUT_MESSAGE_DEVICE_TYPE = 1;
pub const tagINPUT_MESSAGE_DEVICE_TYPE_IMDT_MOUSE: tagINPUT_MESSAGE_DEVICE_TYPE = 2;
pub const tagINPUT_MESSAGE_DEVICE_TYPE_IMDT_TOUCH: tagINPUT_MESSAGE_DEVICE_TYPE = 4;
pub const tagINPUT_MESSAGE_DEVICE_TYPE_IMDT_PEN: tagINPUT_MESSAGE_DEVICE_TYPE = 8;
pub const tagINPUT_MESSAGE_DEVICE_TYPE_IMDT_TOUCHPAD: tagINPUT_MESSAGE_DEVICE_TYPE = 16;
pub type tagINPUT_MESSAGE_DEVICE_TYPE = ::std::os::raw::c_int;
pub use self::tagINPUT_MESSAGE_DEVICE_TYPE as INPUT_MESSAGE_DEVICE_TYPE;
pub const tagINPUT_MESSAGE_ORIGIN_ID_IMO_UNAVAILABLE: tagINPUT_MESSAGE_ORIGIN_ID = 0;
pub const tagINPUT_MESSAGE_ORIGIN_ID_IMO_HARDWARE: tagINPUT_MESSAGE_ORIGIN_ID = 1;
pub const tagINPUT_MESSAGE_ORIGIN_ID_IMO_INJECTED: tagINPUT_MESSAGE_ORIGIN_ID = 2;
pub const tagINPUT_MESSAGE_ORIGIN_ID_IMO_SYSTEM: tagINPUT_MESSAGE_ORIGIN_ID = 4;
pub type tagINPUT_MESSAGE_ORIGIN_ID = ::std::os::raw::c_int;
pub use self::tagINPUT_MESSAGE_ORIGIN_ID as INPUT_MESSAGE_ORIGIN_ID;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagINPUT_MESSAGE_SOURCE {
    pub deviceType: INPUT_MESSAGE_DEVICE_TYPE,
    pub originId: INPUT_MESSAGE_ORIGIN_ID,
}
#[test]
fn bindgen_test_layout_tagINPUT_MESSAGE_SOURCE() {
    assert_eq!(
        ::std::mem::size_of::<tagINPUT_MESSAGE_SOURCE>(),
        8usize,
        concat!("Size of: ", stringify!(tagINPUT_MESSAGE_SOURCE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagINPUT_MESSAGE_SOURCE>(),
        4usize,
        concat!("Alignment of ", stringify!(tagINPUT_MESSAGE_SOURCE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagINPUT_MESSAGE_SOURCE>())).deviceType as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagINPUT_MESSAGE_SOURCE),
            "::",
            stringify!(deviceType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagINPUT_MESSAGE_SOURCE>())).originId as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagINPUT_MESSAGE_SOURCE),
            "::",
            stringify!(originId)
        )
    );
}
pub type INPUT_MESSAGE_SOURCE = tagINPUT_MESSAGE_SOURCE;
extern "C" {
    pub fn GetCurrentInputMessageSource(inputMessageSource: *mut INPUT_MESSAGE_SOURCE) -> BOOL;
}
extern "C" {
    pub fn GetCIMSSM(inputMessageSource: *mut INPUT_MESSAGE_SOURCE) -> BOOL;
}
pub const tagAR_STATE_AR_ENABLED: tagAR_STATE = 0;
pub const tagAR_STATE_AR_DISABLED: tagAR_STATE = 1;
pub const tagAR_STATE_AR_SUPPRESSED: tagAR_STATE = 2;
pub const tagAR_STATE_AR_REMOTESESSION: tagAR_STATE = 4;
pub const tagAR_STATE_AR_MULTIMON: tagAR_STATE = 8;
pub const tagAR_STATE_AR_NOSENSOR: tagAR_STATE = 16;
pub const tagAR_STATE_AR_NOT_SUPPORTED: tagAR_STATE = 32;
pub const tagAR_STATE_AR_DOCKED: tagAR_STATE = 64;
pub const tagAR_STATE_AR_LAPTOP: tagAR_STATE = 128;
pub type tagAR_STATE = ::std::os::raw::c_int;
pub use self::tagAR_STATE as AR_STATE;
pub type PAR_STATE = *mut tagAR_STATE;
pub const ORIENTATION_PREFERENCE_ORIENTATION_PREFERENCE_NONE: ORIENTATION_PREFERENCE = 0;
pub const ORIENTATION_PREFERENCE_ORIENTATION_PREFERENCE_LANDSCAPE: ORIENTATION_PREFERENCE = 1;
pub const ORIENTATION_PREFERENCE_ORIENTATION_PREFERENCE_PORTRAIT: ORIENTATION_PREFERENCE = 2;
pub const ORIENTATION_PREFERENCE_ORIENTATION_PREFERENCE_LANDSCAPE_FLIPPED: ORIENTATION_PREFERENCE =
    4;
pub const ORIENTATION_PREFERENCE_ORIENTATION_PREFERENCE_PORTRAIT_FLIPPED: ORIENTATION_PREFERENCE =
    8;
pub type ORIENTATION_PREFERENCE = ::std::os::raw::c_int;
extern "C" {
    pub fn GetAutoRotationState(pState: PAR_STATE) -> BOOL;
}
extern "C" {
    pub fn GetDisplayAutoRotationPreferences(pOrientation: *mut ORIENTATION_PREFERENCE) -> BOOL;
}
extern "C" {
    pub fn GetDisplayAutoRotationPreferencesByProcessId(
        dwProcessId: DWORD,
        pOrientation: *mut ORIENTATION_PREFERENCE,
        fRotateScreen: *mut BOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn SetDisplayAutoRotationPreferences(orientation: ORIENTATION_PREFERENCE) -> BOOL;
}
extern "C" {
    pub fn IsImmersiveProcess(hProcess: HANDLE) -> BOOL;
}
extern "C" {
    pub fn SetProcessRestrictionExemption(fEnableExemption: BOOL) -> BOOL;
}
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;
}
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 GetDurationFormatEx(
        lpLocaleName: LPCWSTR,
        dwFlags: DWORD,
        lpDuration: *const SYSTEMTIME,
        ullDuration: ULONGLONG,
        lpFormat: LPCWSTR,
        lpDurationStr: LPWSTR,
        cchDuration: ::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],
}
#[test]
fn bindgen_test_layout__cpinfo() {
    assert_eq!(
        ::std::mem::size_of::<_cpinfo>(),
        20usize,
        concat!("Size of: ", stringify!(_cpinfo))
    );
    assert_eq!(
        ::std::mem::align_of::<_cpinfo>(),
        4usize,
        concat!("Alignment of ", stringify!(_cpinfo))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_cpinfo>())).MaxCharSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_cpinfo),
            "::",
            stringify!(MaxCharSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_cpinfo>())).DefaultChar as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_cpinfo),
            "::",
            stringify!(DefaultChar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_cpinfo>())).LeadByte as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_cpinfo),
            "::",
            stringify!(LeadByte)
        )
    );
}
pub type CPINFO = _cpinfo;
pub type LPCPINFO = *mut _cpinfo;
pub type GEOTYPE = DWORD;
pub type GEOCLASS = DWORD;
pub type GEOID = LONG;
#[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],
}
#[test]
fn bindgen_test_layout__cpinfoexA() {
    assert_eq!(
        ::std::mem::size_of::<_cpinfoexA>(),
        284usize,
        concat!("Size of: ", stringify!(_cpinfoexA))
    );
    assert_eq!(
        ::std::mem::align_of::<_cpinfoexA>(),
        4usize,
        concat!("Alignment of ", stringify!(_cpinfoexA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_cpinfoexA>())).MaxCharSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_cpinfoexA),
            "::",
            stringify!(MaxCharSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_cpinfoexA>())).DefaultChar as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_cpinfoexA),
            "::",
            stringify!(DefaultChar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_cpinfoexA>())).LeadByte as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_cpinfoexA),
            "::",
            stringify!(LeadByte)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_cpinfoexA>())).UnicodeDefaultChar as *const _ as usize },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(_cpinfoexA),
            "::",
            stringify!(UnicodeDefaultChar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_cpinfoexA>())).CodePage as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_cpinfoexA),
            "::",
            stringify!(CodePage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_cpinfoexA>())).CodePageName as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_cpinfoexA),
            "::",
            stringify!(CodePageName)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__cpinfoexW() {
    assert_eq!(
        ::std::mem::size_of::<_cpinfoexW>(),
        544usize,
        concat!("Size of: ", stringify!(_cpinfoexW))
    );
    assert_eq!(
        ::std::mem::align_of::<_cpinfoexW>(),
        4usize,
        concat!("Alignment of ", stringify!(_cpinfoexW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_cpinfoexW>())).MaxCharSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_cpinfoexW),
            "::",
            stringify!(MaxCharSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_cpinfoexW>())).DefaultChar as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_cpinfoexW),
            "::",
            stringify!(DefaultChar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_cpinfoexW>())).LeadByte as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_cpinfoexW),
            "::",
            stringify!(LeadByte)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_cpinfoexW>())).UnicodeDefaultChar as *const _ as usize },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(_cpinfoexW),
            "::",
            stringify!(UnicodeDefaultChar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_cpinfoexW>())).CodePage as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_cpinfoexW),
            "::",
            stringify!(CodePage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_cpinfoexW>())).CodePageName as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_cpinfoexW),
            "::",
            stringify!(CodePageName)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__numberfmtA() {
    assert_eq!(
        ::std::mem::size_of::<_numberfmtA>(),
        40usize,
        concat!("Size of: ", stringify!(_numberfmtA))
    );
    assert_eq!(
        ::std::mem::align_of::<_numberfmtA>(),
        8usize,
        concat!("Alignment of ", stringify!(_numberfmtA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_numberfmtA>())).NumDigits as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_numberfmtA),
            "::",
            stringify!(NumDigits)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_numberfmtA>())).LeadingZero as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_numberfmtA),
            "::",
            stringify!(LeadingZero)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_numberfmtA>())).Grouping as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_numberfmtA),
            "::",
            stringify!(Grouping)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_numberfmtA>())).lpDecimalSep as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_numberfmtA),
            "::",
            stringify!(lpDecimalSep)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_numberfmtA>())).lpThousandSep as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_numberfmtA),
            "::",
            stringify!(lpThousandSep)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_numberfmtA>())).NegativeOrder as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_numberfmtA),
            "::",
            stringify!(NegativeOrder)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__numberfmtW() {
    assert_eq!(
        ::std::mem::size_of::<_numberfmtW>(),
        40usize,
        concat!("Size of: ", stringify!(_numberfmtW))
    );
    assert_eq!(
        ::std::mem::align_of::<_numberfmtW>(),
        8usize,
        concat!("Alignment of ", stringify!(_numberfmtW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_numberfmtW>())).NumDigits as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_numberfmtW),
            "::",
            stringify!(NumDigits)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_numberfmtW>())).LeadingZero as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_numberfmtW),
            "::",
            stringify!(LeadingZero)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_numberfmtW>())).Grouping as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_numberfmtW),
            "::",
            stringify!(Grouping)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_numberfmtW>())).lpDecimalSep as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_numberfmtW),
            "::",
            stringify!(lpDecimalSep)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_numberfmtW>())).lpThousandSep as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_numberfmtW),
            "::",
            stringify!(lpThousandSep)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_numberfmtW>())).NegativeOrder as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_numberfmtW),
            "::",
            stringify!(NegativeOrder)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__currencyfmtA() {
    assert_eq!(
        ::std::mem::size_of::<_currencyfmtA>(),
        48usize,
        concat!("Size of: ", stringify!(_currencyfmtA))
    );
    assert_eq!(
        ::std::mem::align_of::<_currencyfmtA>(),
        8usize,
        concat!("Alignment of ", stringify!(_currencyfmtA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_currencyfmtA>())).NumDigits as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_currencyfmtA),
            "::",
            stringify!(NumDigits)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_currencyfmtA>())).LeadingZero as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_currencyfmtA),
            "::",
            stringify!(LeadingZero)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_currencyfmtA>())).Grouping as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_currencyfmtA),
            "::",
            stringify!(Grouping)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_currencyfmtA>())).lpDecimalSep as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_currencyfmtA),
            "::",
            stringify!(lpDecimalSep)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_currencyfmtA>())).lpThousandSep as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_currencyfmtA),
            "::",
            stringify!(lpThousandSep)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_currencyfmtA>())).NegativeOrder as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_currencyfmtA),
            "::",
            stringify!(NegativeOrder)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_currencyfmtA>())).PositiveOrder as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_currencyfmtA),
            "::",
            stringify!(PositiveOrder)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_currencyfmtA>())).lpCurrencySymbol as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_currencyfmtA),
            "::",
            stringify!(lpCurrencySymbol)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__currencyfmtW() {
    assert_eq!(
        ::std::mem::size_of::<_currencyfmtW>(),
        48usize,
        concat!("Size of: ", stringify!(_currencyfmtW))
    );
    assert_eq!(
        ::std::mem::align_of::<_currencyfmtW>(),
        8usize,
        concat!("Alignment of ", stringify!(_currencyfmtW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_currencyfmtW>())).NumDigits as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_currencyfmtW),
            "::",
            stringify!(NumDigits)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_currencyfmtW>())).LeadingZero as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_currencyfmtW),
            "::",
            stringify!(LeadingZero)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_currencyfmtW>())).Grouping as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_currencyfmtW),
            "::",
            stringify!(Grouping)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_currencyfmtW>())).lpDecimalSep as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_currencyfmtW),
            "::",
            stringify!(lpDecimalSep)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_currencyfmtW>())).lpThousandSep as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_currencyfmtW),
            "::",
            stringify!(lpThousandSep)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_currencyfmtW>())).NegativeOrder as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_currencyfmtW),
            "::",
            stringify!(NegativeOrder)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_currencyfmtW>())).PositiveOrder as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_currencyfmtW),
            "::",
            stringify!(PositiveOrder)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_currencyfmtW>())).lpCurrencySymbol as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_currencyfmtW),
            "::",
            stringify!(lpCurrencySymbol)
        )
    );
}
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 = ::std::os::raw::c_int;
pub type NLS_FUNCTION = DWORD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _nlsversioninfo {
    pub dwNLSVersionInfoSize: DWORD,
    pub dwNLSVersion: DWORD,
    pub dwDefinedVersion: DWORD,
    pub dwEffectiveId: DWORD,
    pub guidCustomVersion: GUID,
}
#[test]
fn bindgen_test_layout__nlsversioninfo() {
    assert_eq!(
        ::std::mem::size_of::<_nlsversioninfo>(),
        32usize,
        concat!("Size of: ", stringify!(_nlsversioninfo))
    );
    assert_eq!(
        ::std::mem::align_of::<_nlsversioninfo>(),
        4usize,
        concat!("Alignment of ", stringify!(_nlsversioninfo))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_nlsversioninfo>())).dwNLSVersionInfoSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_nlsversioninfo),
            "::",
            stringify!(dwNLSVersionInfoSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_nlsversioninfo>())).dwNLSVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_nlsversioninfo),
            "::",
            stringify!(dwNLSVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_nlsversioninfo>())).dwDefinedVersion as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_nlsversioninfo),
            "::",
            stringify!(dwDefinedVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_nlsversioninfo>())).dwEffectiveId as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_nlsversioninfo),
            "::",
            stringify!(dwEffectiveId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_nlsversioninfo>())).guidCustomVersion as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_nlsversioninfo),
            "::",
            stringify!(guidCustomVersion)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__nlsversioninfoex() {
    assert_eq!(
        ::std::mem::size_of::<_nlsversioninfoex>(),
        32usize,
        concat!("Size of: ", stringify!(_nlsversioninfoex))
    );
    assert_eq!(
        ::std::mem::align_of::<_nlsversioninfoex>(),
        4usize,
        concat!("Alignment of ", stringify!(_nlsversioninfoex))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_nlsversioninfoex>())).dwNLSVersionInfoSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_nlsversioninfoex),
            "::",
            stringify!(dwNLSVersionInfoSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_nlsversioninfoex>())).dwNLSVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_nlsversioninfoex),
            "::",
            stringify!(dwNLSVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_nlsversioninfoex>())).dwDefinedVersion as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_nlsversioninfoex),
            "::",
            stringify!(dwDefinedVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_nlsversioninfoex>())).dwEffectiveId as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_nlsversioninfoex),
            "::",
            stringify!(dwEffectiveId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_nlsversioninfoex>())).guidCustomVersion as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_nlsversioninfoex),
            "::",
            stringify!(guidCustomVersion)
        )
    );
}
pub type NLSVERSIONINFOEX = _nlsversioninfoex;
pub type LPNLSVERSIONINFOEX = *mut _nlsversioninfoex;
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 const SYSGEOTYPE_GEO_DIALINGCODE: SYSGEOTYPE = 14;
pub const SYSGEOTYPE_GEO_CURRENCYCODE: SYSGEOTYPE = 15;
pub const SYSGEOTYPE_GEO_CURRENCYSYMBOL: SYSGEOTYPE = 16;
pub const SYSGEOTYPE_GEO_NAME: SYSGEOTYPE = 17;
pub const SYSGEOTYPE_GEO_ID: SYSGEOTYPE = 18;
pub type SYSGEOTYPE = ::std::os::raw::c_int;
pub const SYSGEOCLASS_GEOCLASS_NATION: SYSGEOCLASS = 16;
pub const SYSGEOCLASS_GEOCLASS_REGION: SYSGEOCLASS = 14;
pub const SYSGEOCLASS_GEOCLASS_ALL: SYSGEOCLASS = 0;
pub type SYSGEOCLASS = ::std::os::raw::c_int;
pub const _NORM_FORM_NormalizationOther: _NORM_FORM = 0;
pub const _NORM_FORM_NormalizationC: _NORM_FORM = 1;
pub const _NORM_FORM_NormalizationD: _NORM_FORM = 2;
pub const _NORM_FORM_NormalizationKC: _NORM_FORM = 5;
pub const _NORM_FORM_NormalizationKD: _NORM_FORM = 6;
pub type _NORM_FORM = ::std::os::raw::c_int;
pub use self::_NORM_FORM as NORM_FORM;
pub type LANGUAGEGROUP_ENUMPROCA = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: LGRPID,
        arg2: LPSTR,
        arg3: LPSTR,
        arg4: DWORD,
        arg5: LONG_PTR,
    ) -> BOOL,
>;
pub type LANGGROUPLOCALE_ENUMPROCA = ::std::option::Option<
    unsafe extern "C" fn(arg1: LGRPID, arg2: LCID, arg3: LPSTR, arg4: LONG_PTR) -> BOOL,
>;
pub type UILANGUAGE_ENUMPROCA =
    ::std::option::Option<unsafe extern "C" fn(arg1: LPSTR, arg2: LONG_PTR) -> BOOL>;
pub type CODEPAGE_ENUMPROCA = ::std::option::Option<unsafe extern "C" fn(arg1: LPSTR) -> BOOL>;
pub type DATEFMT_ENUMPROCA = ::std::option::Option<unsafe extern "C" fn(arg1: LPSTR) -> BOOL>;
pub type DATEFMT_ENUMPROCEXA =
    ::std::option::Option<unsafe extern "C" fn(arg1: LPSTR, arg2: CALID) -> BOOL>;
pub type TIMEFMT_ENUMPROCA = ::std::option::Option<unsafe extern "C" fn(arg1: LPSTR) -> BOOL>;
pub type CALINFO_ENUMPROCA = ::std::option::Option<unsafe extern "C" fn(arg1: LPSTR) -> BOOL>;
pub type CALINFO_ENUMPROCEXA =
    ::std::option::Option<unsafe extern "C" fn(arg1: LPSTR, arg2: CALID) -> BOOL>;
pub type LOCALE_ENUMPROCA = ::std::option::Option<unsafe extern "C" fn(arg1: LPSTR) -> BOOL>;
pub type LOCALE_ENUMPROCW = ::std::option::Option<unsafe extern "C" fn(arg1: LPWSTR) -> BOOL>;
pub type LANGUAGEGROUP_ENUMPROCW = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: LGRPID,
        arg2: LPWSTR,
        arg3: LPWSTR,
        arg4: DWORD,
        arg5: LONG_PTR,
    ) -> BOOL,
>;
pub type LANGGROUPLOCALE_ENUMPROCW = ::std::option::Option<
    unsafe extern "C" fn(arg1: LGRPID, arg2: LCID, arg3: LPWSTR, arg4: LONG_PTR) -> BOOL,
>;
pub type UILANGUAGE_ENUMPROCW =
    ::std::option::Option<unsafe extern "C" fn(arg1: LPWSTR, arg2: LONG_PTR) -> BOOL>;
pub type CODEPAGE_ENUMPROCW = ::std::option::Option<unsafe extern "C" fn(arg1: LPWSTR) -> BOOL>;
pub type DATEFMT_ENUMPROCW = ::std::option::Option<unsafe extern "C" fn(arg1: LPWSTR) -> BOOL>;
pub type DATEFMT_ENUMPROCEXW =
    ::std::option::Option<unsafe extern "C" fn(arg1: LPWSTR, arg2: CALID) -> BOOL>;
pub type TIMEFMT_ENUMPROCW = ::std::option::Option<unsafe extern "C" fn(arg1: LPWSTR) -> BOOL>;
pub type CALINFO_ENUMPROCW = ::std::option::Option<unsafe extern "C" fn(arg1: LPWSTR) -> BOOL>;
pub type CALINFO_ENUMPROCEXW =
    ::std::option::Option<unsafe extern "C" fn(arg1: LPWSTR, arg2: CALID) -> BOOL>;
pub type GEO_ENUMPROC = ::std::option::Option<unsafe extern "C" fn(arg1: GEOID) -> BOOL>;
pub type GEO_ENUMNAMEPROC =
    ::std::option::Option<unsafe extern "C" fn(arg1: PWSTR, arg2: LPARAM) -> BOOL>;
#[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],
}
#[test]
fn bindgen_test_layout__FILEMUIINFO() {
    assert_eq!(
        ::std::mem::size_of::<_FILEMUIINFO>(),
        80usize,
        concat!("Size of: ", stringify!(_FILEMUIINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILEMUIINFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_FILEMUIINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILEMUIINFO>())).dwSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILEMUIINFO),
            "::",
            stringify!(dwSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILEMUIINFO>())).dwVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILEMUIINFO),
            "::",
            stringify!(dwVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILEMUIINFO>())).dwFileType as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILEMUIINFO),
            "::",
            stringify!(dwFileType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILEMUIINFO>())).pChecksum as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILEMUIINFO),
            "::",
            stringify!(pChecksum)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILEMUIINFO>())).pServiceChecksum as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILEMUIINFO),
            "::",
            stringify!(pServiceChecksum)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILEMUIINFO>())).dwLanguageNameOffset as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILEMUIINFO),
            "::",
            stringify!(dwLanguageNameOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILEMUIINFO>())).dwTypeIDMainSize as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILEMUIINFO),
            "::",
            stringify!(dwTypeIDMainSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILEMUIINFO>())).dwTypeIDMainOffset as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILEMUIINFO),
            "::",
            stringify!(dwTypeIDMainOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILEMUIINFO>())).dwTypeNameMainOffset as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILEMUIINFO),
            "::",
            stringify!(dwTypeNameMainOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILEMUIINFO>())).dwTypeIDMUISize as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILEMUIINFO),
            "::",
            stringify!(dwTypeIDMUISize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILEMUIINFO>())).dwTypeIDMUIOffset as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILEMUIINFO),
            "::",
            stringify!(dwTypeIDMUIOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILEMUIINFO>())).dwTypeNameMUIOffset as *const _ as usize
        },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILEMUIINFO),
            "::",
            stringify!(dwTypeNameMUIOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILEMUIINFO>())).abBuffer as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILEMUIINFO),
            "::",
            stringify!(abBuffer)
        )
    );
}
pub type FILEMUIINFO = _FILEMUIINFO;
pub type PFILEMUIINFO = *mut _FILEMUIINFO;
extern "C" {
    pub fn CompareStringEx(
        lpLocaleName: LPCWSTR,
        dwCmpFlags: DWORD,
        lpString1: LPCWCH,
        cchCount1: ::std::os::raw::c_int,
        lpString2: LPCWCH,
        cchCount2: ::std::os::raw::c_int,
        lpVersionInformation: LPNLSVERSIONINFO,
        lpReserved: LPVOID,
        lParam: LPARAM,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn CompareStringOrdinal(
        lpString1: LPCWCH,
        cchCount1: ::std::os::raw::c_int,
        lpString2: LPCWCH,
        cchCount2: ::std::os::raw::c_int,
        bIgnoreCase: BOOL,
    ) -> ::std::os::raw::c_int;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn GetStringTypeW(
        dwInfoType: DWORD,
        lpSrcStr: LPCWCH,
        cchSrc: ::std::os::raw::c_int,
        lpCharType: LPWORD,
    ) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn GetACP() -> UINT;
}
extern "C" {
    pub fn GetOEMCP() -> UINT;
}
extern "C" {
    pub fn GetCPInfo(CodePage: UINT, lpCPInfo: LPCPINFO) -> BOOL;
}
extern "C" {
    pub fn GetCPInfoExA(CodePage: UINT, dwFlags: DWORD, lpCPInfoEx: LPCPINFOEXA) -> BOOL;
}
extern "C" {
    pub fn GetCPInfoExW(CodePage: UINT, dwFlags: DWORD, lpCPInfoEx: LPCPINFOEXW) -> BOOL;
}
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 FindNLSString(
        Locale: LCID,
        dwFindNLSStringFlags: DWORD,
        lpStringSource: LPCWSTR,
        cchSource: ::std::os::raw::c_int,
        lpStringValue: LPCWSTR,
        cchValue: ::std::os::raw::c_int,
        pcchFound: LPINT,
    ) -> ::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 SetLocaleInfoA(Locale: LCID, LCType: LCTYPE, lpLCData: LPCSTR) -> BOOL;
}
extern "C" {
    pub fn SetLocaleInfoW(Locale: LCID, LCType: LCTYPE, lpLCData: LPCWSTR) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn SetCalendarInfoW(
        Locale: LCID,
        Calendar: CALID,
        CalType: CALTYPE,
        lpCalData: LPCWSTR,
    ) -> BOOL;
}
extern "C" {
    pub fn LoadStringByReference(
        Flags: DWORD,
        Language: PCWSTR,
        SourceString: PCWSTR,
        Buffer: PWSTR,
        cchBuffer: ULONG,
        Directory: PCWSTR,
        pcchBufferOut: PULONG,
    ) -> BOOL;
}
extern "C" {
    pub fn IsDBCSLeadByte(TestChar: BYTE) -> BOOL;
}
extern "C" {
    pub fn IsDBCSLeadByteEx(CodePage: UINT, TestChar: BYTE) -> BOOL;
}
extern "C" {
    pub fn LocaleNameToLCID(lpName: LPCWSTR, dwFlags: DWORD) -> LCID;
}
extern "C" {
    pub fn LCIDToLocaleName(
        Locale: LCID,
        lpName: LPWSTR,
        cchName: ::std::os::raw::c_int,
        dwFlags: DWORD,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetDurationFormat(
        Locale: LCID,
        dwFlags: DWORD,
        lpDuration: *const SYSTEMTIME,
        ullDuration: ULONGLONG,
        lpFormat: LPCWSTR,
        lpDurationStr: LPWSTR,
        cchDuration: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumCalendarInfoW(
        lpCalInfoEnumProc: CALINFO_ENUMPROCW,
        Locale: LCID,
        Calendar: CALID,
        CalType: CALTYPE,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumCalendarInfoExA(
        lpCalInfoEnumProcEx: CALINFO_ENUMPROCEXA,
        Locale: LCID,
        Calendar: CALID,
        CalType: CALTYPE,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumCalendarInfoExW(
        lpCalInfoEnumProcEx: CALINFO_ENUMPROCEXW,
        Locale: LCID,
        Calendar: CALID,
        CalType: CALTYPE,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumTimeFormatsA(
        lpTimeFmtEnumProc: TIMEFMT_ENUMPROCA,
        Locale: LCID,
        dwFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumTimeFormatsW(
        lpTimeFmtEnumProc: TIMEFMT_ENUMPROCW,
        Locale: LCID,
        dwFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumDateFormatsA(
        lpDateFmtEnumProc: DATEFMT_ENUMPROCA,
        Locale: LCID,
        dwFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumDateFormatsW(
        lpDateFmtEnumProc: DATEFMT_ENUMPROCW,
        Locale: LCID,
        dwFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumDateFormatsExA(
        lpDateFmtEnumProcEx: DATEFMT_ENUMPROCEXA,
        Locale: LCID,
        dwFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumDateFormatsExW(
        lpDateFmtEnumProcEx: DATEFMT_ENUMPROCEXW,
        Locale: LCID,
        dwFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn IsValidLanguageGroup(LanguageGroup: LGRPID, dwFlags: DWORD) -> BOOL;
}
extern "C" {
    pub fn GetNLSVersion(
        Function: NLS_FUNCTION,
        Locale: LCID,
        lpVersionInformation: LPNLSVERSIONINFO,
    ) -> BOOL;
}
extern "C" {
    pub fn IsValidLocale(Locale: LCID, dwFlags: DWORD) -> BOOL;
}
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 GetGeoInfoEx(
        location: PWSTR,
        geoType: GEOTYPE,
        geoData: PWSTR,
        geoDataCount: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn EnumSystemGeoID(
        GeoClass: GEOCLASS,
        ParentGeoId: GEOID,
        lpGeoEnumProc: GEO_ENUMPROC,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumSystemGeoNames(
        geoClass: GEOCLASS,
        geoEnumProc: GEO_ENUMNAMEPROC,
        data: LPARAM,
    ) -> BOOL;
}
extern "C" {
    pub fn GetUserGeoID(GeoClass: GEOCLASS) -> GEOID;
}
extern "C" {
    pub fn GetUserDefaultGeoName(
        geoName: LPWSTR,
        geoNameCount: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn SetUserGeoID(GeoId: GEOID) -> BOOL;
}
extern "C" {
    pub fn SetUserGeoName(geoName: PWSTR) -> BOOL;
}
extern "C" {
    pub fn ConvertDefaultLocale(Locale: LCID) -> LCID;
}
extern "C" {
    pub fn GetSystemDefaultUILanguage() -> LANGID;
}
extern "C" {
    pub fn GetThreadLocale() -> LCID;
}
extern "C" {
    pub fn SetThreadLocale(Locale: LCID) -> BOOL;
}
extern "C" {
    pub fn GetUserDefaultUILanguage() -> LANGID;
}
extern "C" {
    pub fn GetUserDefaultLangID() -> LANGID;
}
extern "C" {
    pub fn GetSystemDefaultLangID() -> 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 GetThreadUILanguage() -> LANGID;
}
extern "C" {
    pub fn GetProcessPreferredUILanguages(
        dwFlags: DWORD,
        pulNumLanguages: PULONG,
        pwszLanguagesBuffer: PZZWSTR,
        pcchLanguagesBuffer: PULONG,
    ) -> BOOL;
}
extern "C" {
    pub fn SetProcessPreferredUILanguages(
        dwFlags: DWORD,
        pwszLanguagesBuffer: PCZZWSTR,
        pulNumLanguages: PULONG,
    ) -> BOOL;
}
extern "C" {
    pub fn GetUserPreferredUILanguages(
        dwFlags: DWORD,
        pulNumLanguages: PULONG,
        pwszLanguagesBuffer: PZZWSTR,
        pcchLanguagesBuffer: PULONG,
    ) -> BOOL;
}
extern "C" {
    pub fn GetSystemPreferredUILanguages(
        dwFlags: DWORD,
        pulNumLanguages: PULONG,
        pwszLanguagesBuffer: PZZWSTR,
        pcchLanguagesBuffer: PULONG,
    ) -> BOOL;
}
extern "C" {
    pub fn GetThreadPreferredUILanguages(
        dwFlags: DWORD,
        pulNumLanguages: PULONG,
        pwszLanguagesBuffer: PZZWSTR,
        pcchLanguagesBuffer: PULONG,
    ) -> BOOL;
}
extern "C" {
    pub fn SetThreadPreferredUILanguages(
        dwFlags: DWORD,
        pwszLanguagesBuffer: PCZZWSTR,
        pulNumLanguages: PULONG,
    ) -> BOOL;
}
extern "C" {
    pub fn GetFileMUIInfo(
        dwFlags: DWORD,
        pcwszFilePath: PCWSTR,
        pFileMUIInfo: PFILEMUIINFO,
        pcbFileMUIInfo: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetFileMUIPath(
        dwFlags: DWORD,
        pcwszFilePath: PCWSTR,
        pwszLanguage: PWSTR,
        pcchLanguage: PULONG,
        pwszFileMUIPath: PWSTR,
        pcchFileMUIPath: PULONG,
        pululEnumerator: PULONGLONG,
    ) -> BOOL;
}
extern "C" {
    pub fn GetUILanguageInfo(
        dwFlags: DWORD,
        pwmszLanguage: PCZZWSTR,
        pwszFallbackLanguages: PZZWSTR,
        pcchFallbackLanguages: PDWORD,
        pAttributes: PDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn NotifyUILanguageChange(
        dwFlags: DWORD,
        pcwstrNewLanguage: PCWSTR,
        pcwstrPreviousLanguage: PCWSTR,
        dwReserved: DWORD,
        pdwStatusRtrn: PDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetStringTypeExA(
        Locale: LCID,
        dwInfoType: DWORD,
        lpSrcStr: LPCSTR,
        cchSrc: ::std::os::raw::c_int,
        lpCharType: LPWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetStringTypeA(
        Locale: LCID,
        dwInfoType: DWORD,
        lpSrcStr: LPCSTR,
        cchSrc: ::std::os::raw::c_int,
        lpCharType: LPWORD,
    ) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn EnumSystemLocalesW(lpLocaleEnumProc: LOCALE_ENUMPROCW, dwFlags: DWORD) -> BOOL;
}
extern "C" {
    pub fn EnumSystemLanguageGroupsA(
        lpLanguageGroupEnumProc: LANGUAGEGROUP_ENUMPROCA,
        dwFlags: DWORD,
        lParam: LONG_PTR,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumSystemLanguageGroupsW(
        lpLanguageGroupEnumProc: LANGUAGEGROUP_ENUMPROCW,
        dwFlags: DWORD,
        lParam: LONG_PTR,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumLanguageGroupLocalesA(
        lpLangGroupLocaleEnumProc: LANGGROUPLOCALE_ENUMPROCA,
        LanguageGroup: LGRPID,
        dwFlags: DWORD,
        lParam: LONG_PTR,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumLanguageGroupLocalesW(
        lpLangGroupLocaleEnumProc: LANGGROUPLOCALE_ENUMPROCW,
        LanguageGroup: LGRPID,
        dwFlags: DWORD,
        lParam: LONG_PTR,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumUILanguagesA(
        lpUILanguageEnumProc: UILANGUAGE_ENUMPROCA,
        dwFlags: DWORD,
        lParam: LONG_PTR,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumUILanguagesW(
        lpUILanguageEnumProc: UILANGUAGE_ENUMPROCW,
        dwFlags: DWORD,
        lParam: LONG_PTR,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumSystemCodePagesA(lpCodePageEnumProc: CODEPAGE_ENUMPROCA, dwFlags: DWORD) -> BOOL;
}
extern "C" {
    pub fn EnumSystemCodePagesW(lpCodePageEnumProc: CODEPAGE_ENUMPROCW, dwFlags: DWORD) -> BOOL;
}
extern "C" {
    pub fn IdnToAscii(
        dwFlags: DWORD,
        lpUnicodeCharStr: LPCWSTR,
        cchUnicodeChar: ::std::os::raw::c_int,
        lpASCIICharStr: LPWSTR,
        cchASCIIChar: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn IdnToUnicode(
        dwFlags: DWORD,
        lpASCIICharStr: LPCWSTR,
        cchASCIIChar: ::std::os::raw::c_int,
        lpUnicodeCharStr: LPWSTR,
        cchUnicodeChar: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn IdnToNameprepUnicode(
        dwFlags: DWORD,
        lpUnicodeCharStr: LPCWSTR,
        cchUnicodeChar: ::std::os::raw::c_int,
        lpNameprepCharStr: LPWSTR,
        cchNameprepChar: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn NormalizeString(
        NormForm: NORM_FORM,
        lpSrcString: LPCWSTR,
        cwSrcLength: ::std::os::raw::c_int,
        lpDstString: LPWSTR,
        cwDstLength: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn IsNormalizedString(
        NormForm: NORM_FORM,
        lpString: LPCWSTR,
        cwLength: ::std::os::raw::c_int,
    ) -> BOOL;
}
extern "C" {
    pub fn VerifyScripts(
        dwFlags: DWORD,
        lpLocaleScripts: LPCWSTR,
        cchLocaleScripts: ::std::os::raw::c_int,
        lpTestScripts: LPCWSTR,
        cchTestScripts: ::std::os::raw::c_int,
    ) -> BOOL;
}
extern "C" {
    pub fn GetStringScripts(
        dwFlags: DWORD,
        lpString: LPCWSTR,
        cchString: ::std::os::raw::c_int,
        lpScripts: LPWSTR,
        cchScripts: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetLocaleInfoEx(
        lpLocaleName: LPCWSTR,
        LCType: LCTYPE,
        lpLCData: LPWSTR,
        cchData: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetCalendarInfoEx(
        lpLocaleName: LPCWSTR,
        Calendar: CALID,
        lpReserved: LPCWSTR,
        CalType: CALTYPE,
        lpCalData: LPWSTR,
        cchData: ::std::os::raw::c_int,
        lpValue: LPDWORD,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetNumberFormatEx(
        lpLocaleName: LPCWSTR,
        dwFlags: DWORD,
        lpValue: LPCWSTR,
        lpFormat: *const NUMBERFMTW,
        lpNumberStr: LPWSTR,
        cchNumber: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetCurrencyFormatEx(
        lpLocaleName: LPCWSTR,
        dwFlags: DWORD,
        lpValue: LPCWSTR,
        lpFormat: *const CURRENCYFMTW,
        lpCurrencyStr: LPWSTR,
        cchCurrency: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetUserDefaultLocaleName(
        lpLocaleName: LPWSTR,
        cchLocaleName: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn GetSystemDefaultLocaleName(
        lpLocaleName: LPWSTR,
        cchLocaleName: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn IsNLSDefinedString(
        Function: NLS_FUNCTION,
        dwFlags: DWORD,
        lpVersionInformation: LPNLSVERSIONINFO,
        lpString: LPCWSTR,
        cchStr: INT,
    ) -> BOOL;
}
extern "C" {
    pub fn GetNLSVersionEx(
        function: NLS_FUNCTION,
        lpLocaleName: LPCWSTR,
        lpVersionInformation: LPNLSVERSIONINFOEX,
    ) -> BOOL;
}
extern "C" {
    pub fn IsValidNLSVersion(
        function: NLS_FUNCTION,
        lpLocaleName: LPCWSTR,
        lpVersionInformation: LPNLSVERSIONINFOEX,
    ) -> DWORD;
}
extern "C" {
    pub fn FindNLSStringEx(
        lpLocaleName: LPCWSTR,
        dwFindNLSStringFlags: DWORD,
        lpStringSource: LPCWSTR,
        cchSource: ::std::os::raw::c_int,
        lpStringValue: LPCWSTR,
        cchValue: ::std::os::raw::c_int,
        pcchFound: LPINT,
        lpVersionInformation: LPNLSVERSIONINFO,
        lpReserved: LPVOID,
        sortHandle: LPARAM,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn LCMapStringEx(
        lpLocaleName: LPCWSTR,
        dwMapFlags: DWORD,
        lpSrcStr: LPCWSTR,
        cchSrc: ::std::os::raw::c_int,
        lpDestStr: LPWSTR,
        cchDest: ::std::os::raw::c_int,
        lpVersionInformation: LPNLSVERSIONINFO,
        lpReserved: LPVOID,
        sortHandle: LPARAM,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn IsValidLocaleName(lpLocaleName: LPCWSTR) -> BOOL;
}
pub type CALINFO_ENUMPROCEXEX = ::std::option::Option<
    unsafe extern "C" fn(arg1: LPWSTR, arg2: CALID, arg3: LPWSTR, arg4: LPARAM) -> BOOL,
>;
extern "C" {
    pub fn EnumCalendarInfoExEx(
        pCalInfoEnumProcExEx: CALINFO_ENUMPROCEXEX,
        lpLocaleName: LPCWSTR,
        Calendar: CALID,
        lpReserved: LPCWSTR,
        CalType: CALTYPE,
        lParam: LPARAM,
    ) -> BOOL;
}
pub type DATEFMT_ENUMPROCEXEX =
    ::std::option::Option<unsafe extern "C" fn(arg1: LPWSTR, arg2: CALID, arg3: LPARAM) -> BOOL>;
extern "C" {
    pub fn EnumDateFormatsExEx(
        lpDateFmtEnumProcExEx: DATEFMT_ENUMPROCEXEX,
        lpLocaleName: LPCWSTR,
        dwFlags: DWORD,
        lParam: LPARAM,
    ) -> BOOL;
}
pub type TIMEFMT_ENUMPROCEX =
    ::std::option::Option<unsafe extern "C" fn(arg1: LPWSTR, arg2: LPARAM) -> BOOL>;
extern "C" {
    pub fn EnumTimeFormatsEx(
        lpTimeFmtEnumProcEx: TIMEFMT_ENUMPROCEX,
        lpLocaleName: LPCWSTR,
        dwFlags: DWORD,
        lParam: LPARAM,
    ) -> BOOL;
}
pub type LOCALE_ENUMPROCEX =
    ::std::option::Option<unsafe extern "C" fn(arg1: LPWSTR, arg2: DWORD, arg3: LPARAM) -> BOOL>;
extern "C" {
    pub fn EnumSystemLocalesEx(
        lpLocaleEnumProcEx: LOCALE_ENUMPROCEX,
        dwFlags: DWORD,
        lParam: LPARAM,
        lpReserved: LPVOID,
    ) -> BOOL;
}
extern "C" {
    pub fn ResolveLocaleName(
        lpNameToResolve: LPCWSTR,
        lpLocaleName: LPWSTR,
        cchLocaleName: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _COORD {
    pub X: SHORT,
    pub Y: SHORT,
}
#[test]
fn bindgen_test_layout__COORD() {
    assert_eq!(
        ::std::mem::size_of::<_COORD>(),
        4usize,
        concat!("Size of: ", stringify!(_COORD))
    );
    assert_eq!(
        ::std::mem::align_of::<_COORD>(),
        2usize,
        concat!("Alignment of ", stringify!(_COORD))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COORD>())).X as *const _ as usize },
        0usize,
        concat!("Offset of field: ", stringify!(_COORD), "::", stringify!(X))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COORD>())).Y as *const _ as usize },
        2usize,
        concat!("Offset of field: ", stringify!(_COORD), "::", stringify!(Y))
    );
}
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,
}
#[test]
fn bindgen_test_layout__SMALL_RECT() {
    assert_eq!(
        ::std::mem::size_of::<_SMALL_RECT>(),
        8usize,
        concat!("Size of: ", stringify!(_SMALL_RECT))
    );
    assert_eq!(
        ::std::mem::align_of::<_SMALL_RECT>(),
        2usize,
        concat!("Alignment of ", stringify!(_SMALL_RECT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SMALL_RECT>())).Left as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SMALL_RECT),
            "::",
            stringify!(Left)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SMALL_RECT>())).Top as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_SMALL_RECT),
            "::",
            stringify!(Top)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SMALL_RECT>())).Right as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SMALL_RECT),
            "::",
            stringify!(Right)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SMALL_RECT>())).Bottom as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_SMALL_RECT),
            "::",
            stringify!(Bottom)
        )
    );
}
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: BOOL,
    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,
}
#[test]
fn bindgen_test_layout__KEY_EVENT_RECORD__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_KEY_EVENT_RECORD__bindgen_ty_1>(),
        2usize,
        concat!("Size of: ", stringify!(_KEY_EVENT_RECORD__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_KEY_EVENT_RECORD__bindgen_ty_1>(),
        2usize,
        concat!("Alignment of ", stringify!(_KEY_EVENT_RECORD__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KEY_EVENT_RECORD__bindgen_ty_1>())).UnicodeChar as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_KEY_EVENT_RECORD__bindgen_ty_1),
            "::",
            stringify!(UnicodeChar)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KEY_EVENT_RECORD__bindgen_ty_1>())).AsciiChar as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_KEY_EVENT_RECORD__bindgen_ty_1),
            "::",
            stringify!(AsciiChar)
        )
    );
}
#[test]
fn bindgen_test_layout__KEY_EVENT_RECORD() {
    assert_eq!(
        ::std::mem::size_of::<_KEY_EVENT_RECORD>(),
        16usize,
        concat!("Size of: ", stringify!(_KEY_EVENT_RECORD))
    );
    assert_eq!(
        ::std::mem::align_of::<_KEY_EVENT_RECORD>(),
        4usize,
        concat!("Alignment of ", stringify!(_KEY_EVENT_RECORD))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_KEY_EVENT_RECORD>())).bKeyDown as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_KEY_EVENT_RECORD),
            "::",
            stringify!(bKeyDown)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_KEY_EVENT_RECORD>())).wRepeatCount as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_KEY_EVENT_RECORD),
            "::",
            stringify!(wRepeatCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KEY_EVENT_RECORD>())).wVirtualKeyCode as *const _ as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_KEY_EVENT_RECORD),
            "::",
            stringify!(wVirtualKeyCode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KEY_EVENT_RECORD>())).wVirtualScanCode as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_KEY_EVENT_RECORD),
            "::",
            stringify!(wVirtualScanCode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_KEY_EVENT_RECORD>())).uChar as *const _ as usize },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_KEY_EVENT_RECORD),
            "::",
            stringify!(uChar)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_KEY_EVENT_RECORD>())).dwControlKeyState as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_KEY_EVENT_RECORD),
            "::",
            stringify!(dwControlKeyState)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__MOUSE_EVENT_RECORD() {
    assert_eq!(
        ::std::mem::size_of::<_MOUSE_EVENT_RECORD>(),
        16usize,
        concat!("Size of: ", stringify!(_MOUSE_EVENT_RECORD))
    );
    assert_eq!(
        ::std::mem::align_of::<_MOUSE_EVENT_RECORD>(),
        4usize,
        concat!("Alignment of ", stringify!(_MOUSE_EVENT_RECORD))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MOUSE_EVENT_RECORD>())).dwMousePosition as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MOUSE_EVENT_RECORD),
            "::",
            stringify!(dwMousePosition)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MOUSE_EVENT_RECORD>())).dwButtonState as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_MOUSE_EVENT_RECORD),
            "::",
            stringify!(dwButtonState)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MOUSE_EVENT_RECORD>())).dwControlKeyState as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_MOUSE_EVENT_RECORD),
            "::",
            stringify!(dwControlKeyState)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MOUSE_EVENT_RECORD>())).dwEventFlags as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_MOUSE_EVENT_RECORD),
            "::",
            stringify!(dwEventFlags)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__WINDOW_BUFFER_SIZE_RECORD() {
    assert_eq!(
        ::std::mem::size_of::<_WINDOW_BUFFER_SIZE_RECORD>(),
        4usize,
        concat!("Size of: ", stringify!(_WINDOW_BUFFER_SIZE_RECORD))
    );
    assert_eq!(
        ::std::mem::align_of::<_WINDOW_BUFFER_SIZE_RECORD>(),
        2usize,
        concat!("Alignment of ", stringify!(_WINDOW_BUFFER_SIZE_RECORD))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WINDOW_BUFFER_SIZE_RECORD>())).dwSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_WINDOW_BUFFER_SIZE_RECORD),
            "::",
            stringify!(dwSize)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__MENU_EVENT_RECORD() {
    assert_eq!(
        ::std::mem::size_of::<_MENU_EVENT_RECORD>(),
        4usize,
        concat!("Size of: ", stringify!(_MENU_EVENT_RECORD))
    );
    assert_eq!(
        ::std::mem::align_of::<_MENU_EVENT_RECORD>(),
        4usize,
        concat!("Alignment of ", stringify!(_MENU_EVENT_RECORD))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MENU_EVENT_RECORD>())).dwCommandId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MENU_EVENT_RECORD),
            "::",
            stringify!(dwCommandId)
        )
    );
}
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: BOOL,
}
#[test]
fn bindgen_test_layout__FOCUS_EVENT_RECORD() {
    assert_eq!(
        ::std::mem::size_of::<_FOCUS_EVENT_RECORD>(),
        4usize,
        concat!("Size of: ", stringify!(_FOCUS_EVENT_RECORD))
    );
    assert_eq!(
        ::std::mem::align_of::<_FOCUS_EVENT_RECORD>(),
        4usize,
        concat!("Alignment of ", stringify!(_FOCUS_EVENT_RECORD))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FOCUS_EVENT_RECORD>())).bSetFocus as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FOCUS_EVENT_RECORD),
            "::",
            stringify!(bSetFocus)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__INPUT_RECORD__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_INPUT_RECORD__bindgen_ty_1>(),
        16usize,
        concat!("Size of: ", stringify!(_INPUT_RECORD__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_INPUT_RECORD__bindgen_ty_1>(),
        4usize,
        concat!("Alignment of ", stringify!(_INPUT_RECORD__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_INPUT_RECORD__bindgen_ty_1>())).KeyEvent as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_INPUT_RECORD__bindgen_ty_1),
            "::",
            stringify!(KeyEvent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_INPUT_RECORD__bindgen_ty_1>())).MouseEvent as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_INPUT_RECORD__bindgen_ty_1),
            "::",
            stringify!(MouseEvent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_INPUT_RECORD__bindgen_ty_1>())).WindowBufferSizeEvent
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_INPUT_RECORD__bindgen_ty_1),
            "::",
            stringify!(WindowBufferSizeEvent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_INPUT_RECORD__bindgen_ty_1>())).MenuEvent as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_INPUT_RECORD__bindgen_ty_1),
            "::",
            stringify!(MenuEvent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_INPUT_RECORD__bindgen_ty_1>())).FocusEvent as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_INPUT_RECORD__bindgen_ty_1),
            "::",
            stringify!(FocusEvent)
        )
    );
}
#[test]
fn bindgen_test_layout__INPUT_RECORD() {
    assert_eq!(
        ::std::mem::size_of::<_INPUT_RECORD>(),
        20usize,
        concat!("Size of: ", stringify!(_INPUT_RECORD))
    );
    assert_eq!(
        ::std::mem::align_of::<_INPUT_RECORD>(),
        4usize,
        concat!("Alignment of ", stringify!(_INPUT_RECORD))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_INPUT_RECORD>())).EventType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_INPUT_RECORD),
            "::",
            stringify!(EventType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_INPUT_RECORD>())).Event as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_INPUT_RECORD),
            "::",
            stringify!(Event)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__CHAR_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_CHAR_INFO__bindgen_ty_1>(),
        2usize,
        concat!("Size of: ", stringify!(_CHAR_INFO__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_CHAR_INFO__bindgen_ty_1>(),
        2usize,
        concat!("Alignment of ", stringify!(_CHAR_INFO__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHAR_INFO__bindgen_ty_1>())).UnicodeChar as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHAR_INFO__bindgen_ty_1),
            "::",
            stringify!(UnicodeChar)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHAR_INFO__bindgen_ty_1>())).AsciiChar as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHAR_INFO__bindgen_ty_1),
            "::",
            stringify!(AsciiChar)
        )
    );
}
#[test]
fn bindgen_test_layout__CHAR_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CHAR_INFO>(),
        4usize,
        concat!("Size of: ", stringify!(_CHAR_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CHAR_INFO>(),
        2usize,
        concat!("Alignment of ", stringify!(_CHAR_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CHAR_INFO>())).Char as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHAR_INFO),
            "::",
            stringify!(Char)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CHAR_INFO>())).Attributes as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHAR_INFO),
            "::",
            stringify!(Attributes)
        )
    );
}
pub type CHAR_INFO = _CHAR_INFO;
pub type PCHAR_INFO = *mut _CHAR_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CONSOLE_FONT_INFO {
    pub nFont: DWORD,
    pub dwFontSize: COORD,
}
#[test]
fn bindgen_test_layout__CONSOLE_FONT_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CONSOLE_FONT_INFO>(),
        8usize,
        concat!("Size of: ", stringify!(_CONSOLE_FONT_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CONSOLE_FONT_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_CONSOLE_FONT_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONSOLE_FONT_INFO>())).nFont as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_FONT_INFO),
            "::",
            stringify!(nFont)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONSOLE_FONT_INFO>())).dwFontSize as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_FONT_INFO),
            "::",
            stringify!(dwFontSize)
        )
    );
}
pub type CONSOLE_FONT_INFO = _CONSOLE_FONT_INFO;
pub type PCONSOLE_FONT_INFO = *mut _CONSOLE_FONT_INFO;
pub type HPCON = *mut ::std::os::raw::c_void;
extern "C" {
    pub fn AllocConsole() -> BOOL;
}
extern "C" {
    pub fn FreeConsole() -> BOOL;
}
extern "C" {
    pub fn AttachConsole(dwProcessId: DWORD) -> BOOL;
}
extern "C" {
    pub fn GetConsoleCP() -> UINT;
}
extern "C" {
    pub fn GetConsoleOutputCP() -> UINT;
}
extern "C" {
    pub fn GetConsoleMode(hConsoleHandle: HANDLE, lpMode: LPDWORD) -> BOOL;
}
extern "C" {
    pub fn SetConsoleMode(hConsoleHandle: HANDLE, dwMode: DWORD) -> BOOL;
}
extern "C" {
    pub fn GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: LPDWORD) -> BOOL;
}
extern "C" {
    pub fn ReadConsoleInputA(
        hConsoleInput: HANDLE,
        lpBuffer: PINPUT_RECORD,
        nLength: DWORD,
        lpNumberOfEventsRead: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn ReadConsoleInputW(
        hConsoleInput: HANDLE,
        lpBuffer: PINPUT_RECORD,
        nLength: DWORD,
        lpNumberOfEventsRead: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn PeekConsoleInputA(
        hConsoleInput: HANDLE,
        lpBuffer: PINPUT_RECORD,
        nLength: DWORD,
        lpNumberOfEventsRead: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn PeekConsoleInputW(
        hConsoleInput: HANDLE,
        lpBuffer: PINPUT_RECORD,
        nLength: DWORD,
        lpNumberOfEventsRead: LPDWORD,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CONSOLE_READCONSOLE_CONTROL {
    pub nLength: ULONG,
    pub nInitialChars: ULONG,
    pub dwCtrlWakeupMask: ULONG,
    pub dwControlKeyState: ULONG,
}
#[test]
fn bindgen_test_layout__CONSOLE_READCONSOLE_CONTROL() {
    assert_eq!(
        ::std::mem::size_of::<_CONSOLE_READCONSOLE_CONTROL>(),
        16usize,
        concat!("Size of: ", stringify!(_CONSOLE_READCONSOLE_CONTROL))
    );
    assert_eq!(
        ::std::mem::align_of::<_CONSOLE_READCONSOLE_CONTROL>(),
        4usize,
        concat!("Alignment of ", stringify!(_CONSOLE_READCONSOLE_CONTROL))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONSOLE_READCONSOLE_CONTROL>())).nLength as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_READCONSOLE_CONTROL),
            "::",
            stringify!(nLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONSOLE_READCONSOLE_CONTROL>())).nInitialChars as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_READCONSOLE_CONTROL),
            "::",
            stringify!(nInitialChars)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONSOLE_READCONSOLE_CONTROL>())).dwCtrlWakeupMask as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_READCONSOLE_CONTROL),
            "::",
            stringify!(dwCtrlWakeupMask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONSOLE_READCONSOLE_CONTROL>())).dwControlKeyState as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_READCONSOLE_CONTROL),
            "::",
            stringify!(dwControlKeyState)
        )
    );
}
pub type CONSOLE_READCONSOLE_CONTROL = _CONSOLE_READCONSOLE_CONTROL;
pub type PCONSOLE_READCONSOLE_CONTROL = *mut _CONSOLE_READCONSOLE_CONTROL;
extern "C" {
    pub fn ReadConsoleA(
        hConsoleInput: HANDLE,
        lpBuffer: LPVOID,
        nNumberOfCharsToRead: DWORD,
        lpNumberOfCharsRead: LPDWORD,
        pInputControl: PCONSOLE_READCONSOLE_CONTROL,
    ) -> BOOL;
}
extern "C" {
    pub fn ReadConsoleW(
        hConsoleInput: HANDLE,
        lpBuffer: LPVOID,
        nNumberOfCharsToRead: DWORD,
        lpNumberOfCharsRead: LPDWORD,
        pInputControl: PCONSOLE_READCONSOLE_CONTROL,
    ) -> BOOL;
}
extern "C" {
    pub fn WriteConsoleA(
        hConsoleOutput: HANDLE,
        lpBuffer: *const ::std::os::raw::c_void,
        nNumberOfCharsToWrite: DWORD,
        lpNumberOfCharsWritten: LPDWORD,
        lpReserved: LPVOID,
    ) -> BOOL;
}
extern "C" {
    pub fn WriteConsoleW(
        hConsoleOutput: HANDLE,
        lpBuffer: *const ::std::os::raw::c_void,
        nNumberOfCharsToWrite: DWORD,
        lpNumberOfCharsWritten: LPDWORD,
        lpReserved: LPVOID,
    ) -> BOOL;
}
pub type PHANDLER_ROUTINE = ::std::option::Option<unsafe extern "C" fn(CtrlType: DWORD) -> BOOL>;
extern "C" {
    pub fn SetConsoleCtrlHandler(HandlerRoutine: PHANDLER_ROUTINE, Add: BOOL) -> BOOL;
}
extern "C" {
    pub fn CreatePseudoConsole(
        size: COORD,
        hInput: HANDLE,
        hOutput: HANDLE,
        dwFlags: DWORD,
        phPC: *mut HPCON,
    ) -> HRESULT;
}
extern "C" {
    pub fn ResizePseudoConsole(hPC: HPCON, size: COORD) -> HRESULT;
}
extern "C" {
    pub fn ClosePseudoConsole(hPC: HPCON);
}
extern "C" {
    pub fn FillConsoleOutputCharacterA(
        hConsoleOutput: HANDLE,
        cCharacter: CHAR,
        nLength: DWORD,
        dwWriteCoord: COORD,
        lpNumberOfCharsWritten: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn FillConsoleOutputCharacterW(
        hConsoleOutput: HANDLE,
        cCharacter: WCHAR,
        nLength: DWORD,
        dwWriteCoord: COORD,
        lpNumberOfCharsWritten: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn FillConsoleOutputAttribute(
        hConsoleOutput: HANDLE,
        wAttribute: WORD,
        nLength: DWORD,
        dwWriteCoord: COORD,
        lpNumberOfAttrsWritten: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GenerateConsoleCtrlEvent(dwCtrlEvent: DWORD, dwProcessGroupId: DWORD) -> BOOL;
}
extern "C" {
    pub fn CreateConsoleScreenBuffer(
        dwDesiredAccess: DWORD,
        dwShareMode: DWORD,
        lpSecurityAttributes: *const SECURITY_ATTRIBUTES,
        dwFlags: DWORD,
        lpScreenBufferData: LPVOID,
    ) -> HANDLE;
}
extern "C" {
    pub fn SetConsoleActiveScreenBuffer(hConsoleOutput: HANDLE) -> BOOL;
}
extern "C" {
    pub fn FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL;
}
extern "C" {
    pub fn SetConsoleCP(wCodePageID: UINT) -> BOOL;
}
extern "C" {
    pub fn SetConsoleOutputCP(wCodePageID: UINT) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CONSOLE_CURSOR_INFO {
    pub dwSize: DWORD,
    pub bVisible: BOOL,
}
#[test]
fn bindgen_test_layout__CONSOLE_CURSOR_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CONSOLE_CURSOR_INFO>(),
        8usize,
        concat!("Size of: ", stringify!(_CONSOLE_CURSOR_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CONSOLE_CURSOR_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_CONSOLE_CURSOR_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONSOLE_CURSOR_INFO>())).dwSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_CURSOR_INFO),
            "::",
            stringify!(dwSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONSOLE_CURSOR_INFO>())).bVisible as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_CURSOR_INFO),
            "::",
            stringify!(bVisible)
        )
    );
}
pub type CONSOLE_CURSOR_INFO = _CONSOLE_CURSOR_INFO;
pub type PCONSOLE_CURSOR_INFO = *mut _CONSOLE_CURSOR_INFO;
extern "C" {
    pub fn GetConsoleCursorInfo(
        hConsoleOutput: HANDLE,
        lpConsoleCursorInfo: PCONSOLE_CURSOR_INFO,
    ) -> BOOL;
}
extern "C" {
    pub fn SetConsoleCursorInfo(
        hConsoleOutput: HANDLE,
        lpConsoleCursorInfo: *const CONSOLE_CURSOR_INFO,
    ) -> BOOL;
}
#[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,
}
#[test]
fn bindgen_test_layout__CONSOLE_SCREEN_BUFFER_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CONSOLE_SCREEN_BUFFER_INFO>(),
        22usize,
        concat!("Size of: ", stringify!(_CONSOLE_SCREEN_BUFFER_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CONSOLE_SCREEN_BUFFER_INFO>(),
        2usize,
        concat!("Alignment of ", stringify!(_CONSOLE_SCREEN_BUFFER_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONSOLE_SCREEN_BUFFER_INFO>())).dwSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_SCREEN_BUFFER_INFO),
            "::",
            stringify!(dwSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONSOLE_SCREEN_BUFFER_INFO>())).dwCursorPosition as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_SCREEN_BUFFER_INFO),
            "::",
            stringify!(dwCursorPosition)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONSOLE_SCREEN_BUFFER_INFO>())).wAttributes as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_SCREEN_BUFFER_INFO),
            "::",
            stringify!(wAttributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONSOLE_SCREEN_BUFFER_INFO>())).srWindow as *const _ as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_SCREEN_BUFFER_INFO),
            "::",
            stringify!(srWindow)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONSOLE_SCREEN_BUFFER_INFO>())).dwMaximumWindowSize as *const _
                as usize
        },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_SCREEN_BUFFER_INFO),
            "::",
            stringify!(dwMaximumWindowSize)
        )
    );
}
pub type CONSOLE_SCREEN_BUFFER_INFO = _CONSOLE_SCREEN_BUFFER_INFO;
pub type PCONSOLE_SCREEN_BUFFER_INFO = *mut _CONSOLE_SCREEN_BUFFER_INFO;
extern "C" {
    pub fn GetConsoleScreenBufferInfo(
        hConsoleOutput: HANDLE,
        lpConsoleScreenBufferInfo: PCONSOLE_SCREEN_BUFFER_INFO,
    ) -> BOOL;
}
#[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: BOOL,
    pub ColorTable: [COLORREF; 16usize],
}
#[test]
fn bindgen_test_layout__CONSOLE_SCREEN_BUFFER_INFOEX() {
    assert_eq!(
        ::std::mem::size_of::<_CONSOLE_SCREEN_BUFFER_INFOEX>(),
        96usize,
        concat!("Size of: ", stringify!(_CONSOLE_SCREEN_BUFFER_INFOEX))
    );
    assert_eq!(
        ::std::mem::align_of::<_CONSOLE_SCREEN_BUFFER_INFOEX>(),
        4usize,
        concat!("Alignment of ", stringify!(_CONSOLE_SCREEN_BUFFER_INFOEX))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONSOLE_SCREEN_BUFFER_INFOEX>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_SCREEN_BUFFER_INFOEX),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONSOLE_SCREEN_BUFFER_INFOEX>())).dwSize as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_SCREEN_BUFFER_INFOEX),
            "::",
            stringify!(dwSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONSOLE_SCREEN_BUFFER_INFOEX>())).dwCursorPosition as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_SCREEN_BUFFER_INFOEX),
            "::",
            stringify!(dwCursorPosition)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONSOLE_SCREEN_BUFFER_INFOEX>())).wAttributes as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_SCREEN_BUFFER_INFOEX),
            "::",
            stringify!(wAttributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONSOLE_SCREEN_BUFFER_INFOEX>())).srWindow as *const _ as usize
        },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_SCREEN_BUFFER_INFOEX),
            "::",
            stringify!(srWindow)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONSOLE_SCREEN_BUFFER_INFOEX>())).dwMaximumWindowSize
                as *const _ as usize
        },
        22usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_SCREEN_BUFFER_INFOEX),
            "::",
            stringify!(dwMaximumWindowSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONSOLE_SCREEN_BUFFER_INFOEX>())).wPopupAttributes as *const _
                as usize
        },
        26usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_SCREEN_BUFFER_INFOEX),
            "::",
            stringify!(wPopupAttributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONSOLE_SCREEN_BUFFER_INFOEX>())).bFullscreenSupported
                as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_SCREEN_BUFFER_INFOEX),
            "::",
            stringify!(bFullscreenSupported)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONSOLE_SCREEN_BUFFER_INFOEX>())).ColorTable as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_SCREEN_BUFFER_INFOEX),
            "::",
            stringify!(ColorTable)
        )
    );
}
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 GetConsoleScreenBufferInfoEx(
        hConsoleOutput: HANDLE,
        lpConsoleScreenBufferInfoEx: PCONSOLE_SCREEN_BUFFER_INFOEX,
    ) -> BOOL;
}
extern "C" {
    pub fn SetConsoleScreenBufferInfoEx(
        hConsoleOutput: HANDLE,
        lpConsoleScreenBufferInfoEx: PCONSOLE_SCREEN_BUFFER_INFOEX,
    ) -> BOOL;
}
extern "C" {
    pub fn SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL;
}
extern "C" {
    pub fn SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL;
}
extern "C" {
    pub fn GetLargestConsoleWindowSize(hConsoleOutput: HANDLE) -> COORD;
}
extern "C" {
    pub fn SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL;
}
extern "C" {
    pub fn SetConsoleWindowInfo(
        hConsoleOutput: HANDLE,
        bAbsolute: BOOL,
        lpConsoleWindow: *const SMALL_RECT,
    ) -> BOOL;
}
extern "C" {
    pub fn WriteConsoleOutputCharacterA(
        hConsoleOutput: HANDLE,
        lpCharacter: LPCSTR,
        nLength: DWORD,
        dwWriteCoord: COORD,
        lpNumberOfCharsWritten: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn WriteConsoleOutputCharacterW(
        hConsoleOutput: HANDLE,
        lpCharacter: LPCWSTR,
        nLength: DWORD,
        dwWriteCoord: COORD,
        lpNumberOfCharsWritten: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn WriteConsoleOutputAttribute(
        hConsoleOutput: HANDLE,
        lpAttribute: *const WORD,
        nLength: DWORD,
        dwWriteCoord: COORD,
        lpNumberOfAttrsWritten: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn ReadConsoleOutputCharacterA(
        hConsoleOutput: HANDLE,
        lpCharacter: LPSTR,
        nLength: DWORD,
        dwReadCoord: COORD,
        lpNumberOfCharsRead: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn ReadConsoleOutputCharacterW(
        hConsoleOutput: HANDLE,
        lpCharacter: LPWSTR,
        nLength: DWORD,
        dwReadCoord: COORD,
        lpNumberOfCharsRead: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn ReadConsoleOutputAttribute(
        hConsoleOutput: HANDLE,
        lpAttribute: LPWORD,
        nLength: DWORD,
        dwReadCoord: COORD,
        lpNumberOfAttrsRead: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn WriteConsoleInputA(
        hConsoleInput: HANDLE,
        lpBuffer: *const INPUT_RECORD,
        nLength: DWORD,
        lpNumberOfEventsWritten: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn WriteConsoleInputW(
        hConsoleInput: HANDLE,
        lpBuffer: *const INPUT_RECORD,
        nLength: DWORD,
        lpNumberOfEventsWritten: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn ScrollConsoleScreenBufferA(
        hConsoleOutput: HANDLE,
        lpScrollRectangle: *const SMALL_RECT,
        lpClipRectangle: *const SMALL_RECT,
        dwDestinationOrigin: COORD,
        lpFill: *const CHAR_INFO,
    ) -> BOOL;
}
extern "C" {
    pub fn ScrollConsoleScreenBufferW(
        hConsoleOutput: HANDLE,
        lpScrollRectangle: *const SMALL_RECT,
        lpClipRectangle: *const SMALL_RECT,
        dwDestinationOrigin: COORD,
        lpFill: *const CHAR_INFO,
    ) -> BOOL;
}
extern "C" {
    pub fn WriteConsoleOutputA(
        hConsoleOutput: HANDLE,
        lpBuffer: *const CHAR_INFO,
        dwBufferSize: COORD,
        dwBufferCoord: COORD,
        lpWriteRegion: PSMALL_RECT,
    ) -> BOOL;
}
extern "C" {
    pub fn WriteConsoleOutputW(
        hConsoleOutput: HANDLE,
        lpBuffer: *const CHAR_INFO,
        dwBufferSize: COORD,
        dwBufferCoord: COORD,
        lpWriteRegion: PSMALL_RECT,
    ) -> BOOL;
}
extern "C" {
    pub fn ReadConsoleOutputA(
        hConsoleOutput: HANDLE,
        lpBuffer: PCHAR_INFO,
        dwBufferSize: COORD,
        dwBufferCoord: COORD,
        lpReadRegion: PSMALL_RECT,
    ) -> BOOL;
}
extern "C" {
    pub fn ReadConsoleOutputW(
        hConsoleOutput: HANDLE,
        lpBuffer: PCHAR_INFO,
        dwBufferSize: COORD,
        dwBufferCoord: COORD,
        lpReadRegion: PSMALL_RECT,
    ) -> BOOL;
}
extern "C" {
    pub fn GetConsoleTitleA(lpConsoleTitle: LPSTR, nSize: DWORD) -> DWORD;
}
extern "C" {
    pub fn GetConsoleTitleW(lpConsoleTitle: LPWSTR, nSize: DWORD) -> DWORD;
}
extern "C" {
    pub fn GetConsoleOriginalTitleA(lpConsoleTitle: LPSTR, nSize: DWORD) -> DWORD;
}
extern "C" {
    pub fn GetConsoleOriginalTitleW(lpConsoleTitle: LPWSTR, nSize: DWORD) -> DWORD;
}
extern "C" {
    pub fn SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL;
}
extern "C" {
    pub fn SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL;
}
extern "C" {
    pub fn GetNumberOfConsoleMouseButtons(lpNumberOfMouseButtons: LPDWORD) -> BOOL;
}
extern "C" {
    pub fn GetConsoleFontSize(hConsoleOutput: HANDLE, nFont: DWORD) -> COORD;
}
extern "C" {
    pub fn GetCurrentConsoleFont(
        hConsoleOutput: HANDLE,
        bMaximumWindow: BOOL,
        lpConsoleCurrentFont: PCONSOLE_FONT_INFO,
    ) -> BOOL;
}
#[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],
}
#[test]
fn bindgen_test_layout__CONSOLE_FONT_INFOEX() {
    assert_eq!(
        ::std::mem::size_of::<_CONSOLE_FONT_INFOEX>(),
        84usize,
        concat!("Size of: ", stringify!(_CONSOLE_FONT_INFOEX))
    );
    assert_eq!(
        ::std::mem::align_of::<_CONSOLE_FONT_INFOEX>(),
        4usize,
        concat!("Alignment of ", stringify!(_CONSOLE_FONT_INFOEX))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONSOLE_FONT_INFOEX>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_FONT_INFOEX),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONSOLE_FONT_INFOEX>())).nFont as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_FONT_INFOEX),
            "::",
            stringify!(nFont)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONSOLE_FONT_INFOEX>())).dwFontSize as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_FONT_INFOEX),
            "::",
            stringify!(dwFontSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONSOLE_FONT_INFOEX>())).FontFamily as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_FONT_INFOEX),
            "::",
            stringify!(FontFamily)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONSOLE_FONT_INFOEX>())).FontWeight as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_FONT_INFOEX),
            "::",
            stringify!(FontWeight)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONSOLE_FONT_INFOEX>())).FaceName as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_FONT_INFOEX),
            "::",
            stringify!(FaceName)
        )
    );
}
pub type CONSOLE_FONT_INFOEX = _CONSOLE_FONT_INFOEX;
pub type PCONSOLE_FONT_INFOEX = *mut _CONSOLE_FONT_INFOEX;
extern "C" {
    pub fn GetCurrentConsoleFontEx(
        hConsoleOutput: HANDLE,
        bMaximumWindow: BOOL,
        lpConsoleCurrentFontEx: PCONSOLE_FONT_INFOEX,
    ) -> BOOL;
}
extern "C" {
    pub fn SetCurrentConsoleFontEx(
        hConsoleOutput: HANDLE,
        bMaximumWindow: BOOL,
        lpConsoleCurrentFontEx: PCONSOLE_FONT_INFOEX,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CONSOLE_SELECTION_INFO {
    pub dwFlags: DWORD,
    pub dwSelectionAnchor: COORD,
    pub srSelection: SMALL_RECT,
}
#[test]
fn bindgen_test_layout__CONSOLE_SELECTION_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CONSOLE_SELECTION_INFO>(),
        16usize,
        concat!("Size of: ", stringify!(_CONSOLE_SELECTION_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CONSOLE_SELECTION_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_CONSOLE_SELECTION_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONSOLE_SELECTION_INFO>())).dwFlags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_SELECTION_INFO),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONSOLE_SELECTION_INFO>())).dwSelectionAnchor as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_SELECTION_INFO),
            "::",
            stringify!(dwSelectionAnchor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONSOLE_SELECTION_INFO>())).srSelection as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_SELECTION_INFO),
            "::",
            stringify!(srSelection)
        )
    );
}
pub type CONSOLE_SELECTION_INFO = _CONSOLE_SELECTION_INFO;
pub type PCONSOLE_SELECTION_INFO = *mut _CONSOLE_SELECTION_INFO;
extern "C" {
    pub fn GetConsoleSelectionInfo(lpConsoleSelectionInfo: PCONSOLE_SELECTION_INFO) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CONSOLE_HISTORY_INFO {
    pub cbSize: UINT,
    pub HistoryBufferSize: UINT,
    pub NumberOfHistoryBuffers: UINT,
    pub dwFlags: DWORD,
}
#[test]
fn bindgen_test_layout__CONSOLE_HISTORY_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CONSOLE_HISTORY_INFO>(),
        16usize,
        concat!("Size of: ", stringify!(_CONSOLE_HISTORY_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CONSOLE_HISTORY_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_CONSOLE_HISTORY_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONSOLE_HISTORY_INFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_HISTORY_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONSOLE_HISTORY_INFO>())).HistoryBufferSize as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_HISTORY_INFO),
            "::",
            stringify!(HistoryBufferSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONSOLE_HISTORY_INFO>())).NumberOfHistoryBuffers as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_HISTORY_INFO),
            "::",
            stringify!(NumberOfHistoryBuffers)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONSOLE_HISTORY_INFO>())).dwFlags as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONSOLE_HISTORY_INFO),
            "::",
            stringify!(dwFlags)
        )
    );
}
pub type CONSOLE_HISTORY_INFO = _CONSOLE_HISTORY_INFO;
pub type PCONSOLE_HISTORY_INFO = *mut _CONSOLE_HISTORY_INFO;
extern "C" {
    pub fn GetConsoleHistoryInfo(lpConsoleHistoryInfo: PCONSOLE_HISTORY_INFO) -> BOOL;
}
extern "C" {
    pub fn SetConsoleHistoryInfo(lpConsoleHistoryInfo: PCONSOLE_HISTORY_INFO) -> BOOL;
}
extern "C" {
    pub fn GetConsoleDisplayMode(lpModeFlags: LPDWORD) -> BOOL;
}
extern "C" {
    pub fn SetConsoleDisplayMode(
        hConsoleOutput: HANDLE,
        dwFlags: DWORD,
        lpNewScreenBufferDimensions: PCOORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetConsoleWindow() -> HWND;
}
extern "C" {
    pub fn AddConsoleAliasA(Source: LPSTR, Target: LPSTR, ExeName: LPSTR) -> BOOL;
}
extern "C" {
    pub fn AddConsoleAliasW(Source: LPWSTR, Target: LPWSTR, ExeName: LPWSTR) -> BOOL;
}
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;
}
extern "C" {
    pub fn ExpungeConsoleCommandHistoryA(ExeName: LPSTR);
}
extern "C" {
    pub fn ExpungeConsoleCommandHistoryW(ExeName: LPWSTR);
}
extern "C" {
    pub fn SetConsoleNumberOfCommandsA(Number: DWORD, ExeName: LPSTR) -> BOOL;
}
extern "C" {
    pub fn SetConsoleNumberOfCommandsW(Number: DWORD, ExeName: LPWSTR) -> BOOL;
}
extern "C" {
    pub fn GetConsoleCommandHistoryLengthA(ExeName: LPSTR) -> DWORD;
}
extern "C" {
    pub fn GetConsoleCommandHistoryLengthW(ExeName: LPWSTR) -> DWORD;
}
extern "C" {
    pub fn GetConsoleCommandHistoryA(
        Commands: LPSTR,
        CommandBufferLength: DWORD,
        ExeName: LPSTR,
    ) -> DWORD;
}
extern "C" {
    pub fn GetConsoleCommandHistoryW(
        Commands: LPWSTR,
        CommandBufferLength: DWORD,
        ExeName: LPWSTR,
    ) -> DWORD;
}
extern "C" {
    pub fn GetConsoleProcessList(lpdwProcessList: LPDWORD, dwProcessCount: DWORD) -> DWORD;
}
#[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,
}
#[test]
fn bindgen_test_layout_tagVS_FIXEDFILEINFO() {
    assert_eq!(
        ::std::mem::size_of::<tagVS_FIXEDFILEINFO>(),
        52usize,
        concat!("Size of: ", stringify!(tagVS_FIXEDFILEINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagVS_FIXEDFILEINFO>(),
        4usize,
        concat!("Alignment of ", stringify!(tagVS_FIXEDFILEINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagVS_FIXEDFILEINFO>())).dwSignature as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVS_FIXEDFILEINFO),
            "::",
            stringify!(dwSignature)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVS_FIXEDFILEINFO>())).dwStrucVersion as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVS_FIXEDFILEINFO),
            "::",
            stringify!(dwStrucVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVS_FIXEDFILEINFO>())).dwFileVersionMS as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVS_FIXEDFILEINFO),
            "::",
            stringify!(dwFileVersionMS)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVS_FIXEDFILEINFO>())).dwFileVersionLS as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVS_FIXEDFILEINFO),
            "::",
            stringify!(dwFileVersionLS)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVS_FIXEDFILEINFO>())).dwProductVersionMS as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVS_FIXEDFILEINFO),
            "::",
            stringify!(dwProductVersionMS)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVS_FIXEDFILEINFO>())).dwProductVersionLS as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVS_FIXEDFILEINFO),
            "::",
            stringify!(dwProductVersionLS)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVS_FIXEDFILEINFO>())).dwFileFlagsMask as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVS_FIXEDFILEINFO),
            "::",
            stringify!(dwFileFlagsMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagVS_FIXEDFILEINFO>())).dwFileFlags as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVS_FIXEDFILEINFO),
            "::",
            stringify!(dwFileFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagVS_FIXEDFILEINFO>())).dwFileOS as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVS_FIXEDFILEINFO),
            "::",
            stringify!(dwFileOS)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagVS_FIXEDFILEINFO>())).dwFileType as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVS_FIXEDFILEINFO),
            "::",
            stringify!(dwFileType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVS_FIXEDFILEINFO>())).dwFileSubtype as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVS_FIXEDFILEINFO),
            "::",
            stringify!(dwFileSubtype)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVS_FIXEDFILEINFO>())).dwFileDateMS as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVS_FIXEDFILEINFO),
            "::",
            stringify!(dwFileDateMS)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVS_FIXEDFILEINFO>())).dwFileDateLS as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVS_FIXEDFILEINFO),
            "::",
            stringify!(dwFileDateLS)
        )
    );
}
pub type VS_FIXEDFILEINFO = tagVS_FIXEDFILEINFO;
extern "C" {
    pub fn VerFindFileA(
        uFlags: DWORD,
        szFileName: LPCSTR,
        szWinDir: LPCSTR,
        szAppDir: LPCSTR,
        szCurDir: LPSTR,
        puCurDirLen: PUINT,
        szDestDir: LPSTR,
        puDestDirLen: PUINT,
    ) -> DWORD;
}
extern "C" {
    pub fn VerFindFileW(
        uFlags: DWORD,
        szFileName: LPCWSTR,
        szWinDir: LPCWSTR,
        szAppDir: LPCWSTR,
        szCurDir: LPWSTR,
        puCurDirLen: PUINT,
        szDestDir: LPWSTR,
        puDestDirLen: PUINT,
    ) -> DWORD;
}
extern "C" {
    pub fn VerInstallFileA(
        uFlags: DWORD,
        szSrcFileName: LPCSTR,
        szDestFileName: LPCSTR,
        szSrcDir: LPCSTR,
        szDestDir: LPCSTR,
        szCurDir: LPCSTR,
        szTmpFile: LPSTR,
        puTmpFileLen: PUINT,
    ) -> DWORD;
}
extern "C" {
    pub fn VerInstallFileW(
        uFlags: DWORD,
        szSrcFileName: LPCWSTR,
        szDestFileName: LPCWSTR,
        szSrcDir: LPCWSTR,
        szDestDir: LPCWSTR,
        szCurDir: LPCWSTR,
        szTmpFile: LPWSTR,
        puTmpFileLen: 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,
    ) -> BOOL;
}
extern "C" {
    pub fn GetFileVersionInfoW(
        lptstrFilename: LPCWSTR,
        dwHandle: DWORD,
        dwLen: DWORD,
        lpData: LPVOID,
    ) -> BOOL;
}
extern "C" {
    pub fn GetFileVersionInfoSizeExA(
        dwFlags: DWORD,
        lpwstrFilename: LPCSTR,
        lpdwHandle: LPDWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn GetFileVersionInfoSizeExW(
        dwFlags: DWORD,
        lpwstrFilename: LPCWSTR,
        lpdwHandle: LPDWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn GetFileVersionInfoExA(
        dwFlags: DWORD,
        lpwstrFilename: LPCSTR,
        dwHandle: DWORD,
        dwLen: DWORD,
        lpData: LPVOID,
    ) -> BOOL;
}
extern "C" {
    pub fn GetFileVersionInfoExW(
        dwFlags: DWORD,
        lpwstrFilename: LPCWSTR,
        dwHandle: DWORD,
        dwLen: DWORD,
        lpData: LPVOID,
    ) -> BOOL;
}
extern "C" {
    pub fn VerLanguageNameA(wLang: DWORD, szLang: LPSTR, cchLang: DWORD) -> DWORD;
}
extern "C" {
    pub fn VerLanguageNameW(wLang: DWORD, szLang: LPWSTR, cchLang: DWORD) -> DWORD;
}
extern "C" {
    pub fn VerQueryValueA(
        pBlock: LPCVOID,
        lpSubBlock: LPCSTR,
        lplpBuffer: *mut LPVOID,
        puLen: PUINT,
    ) -> BOOL;
}
extern "C" {
    pub fn VerQueryValueW(
        pBlock: LPCVOID,
        lpSubBlock: LPCWSTR,
        lplpBuffer: *mut LPVOID,
        puLen: PUINT,
    ) -> BOOL;
}
pub type LSTATUS = LONG;
pub type REGSAM = ACCESS_MASK;
#[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,
}
#[test]
fn bindgen_test_layout_val_context() {
    assert_eq!(
        ::std::mem::size_of::<val_context>(),
        24usize,
        concat!("Size of: ", stringify!(val_context))
    );
    assert_eq!(
        ::std::mem::align_of::<val_context>(),
        8usize,
        concat!("Alignment of ", stringify!(val_context))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<val_context>())).valuelen as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(val_context),
            "::",
            stringify!(valuelen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<val_context>())).value_context as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(val_context),
            "::",
            stringify!(value_context)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<val_context>())).val_buff_ptr as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(val_context),
            "::",
            stringify!(val_buff_ptr)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_pvalueA() {
    assert_eq!(
        ::std::mem::size_of::<pvalueA>(),
        32usize,
        concat!("Size of: ", stringify!(pvalueA))
    );
    assert_eq!(
        ::std::mem::align_of::<pvalueA>(),
        8usize,
        concat!("Alignment of ", stringify!(pvalueA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<pvalueA>())).pv_valuename as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(pvalueA),
            "::",
            stringify!(pv_valuename)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<pvalueA>())).pv_valuelen as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(pvalueA),
            "::",
            stringify!(pv_valuelen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<pvalueA>())).pv_value_context as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(pvalueA),
            "::",
            stringify!(pv_value_context)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<pvalueA>())).pv_type as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(pvalueA),
            "::",
            stringify!(pv_type)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_pvalueW() {
    assert_eq!(
        ::std::mem::size_of::<pvalueW>(),
        32usize,
        concat!("Size of: ", stringify!(pvalueW))
    );
    assert_eq!(
        ::std::mem::align_of::<pvalueW>(),
        8usize,
        concat!("Alignment of ", stringify!(pvalueW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<pvalueW>())).pv_valuename as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(pvalueW),
            "::",
            stringify!(pv_valuename)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<pvalueW>())).pv_valuelen as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(pvalueW),
            "::",
            stringify!(pv_valuelen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<pvalueW>())).pv_value_context as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(pvalueW),
            "::",
            stringify!(pv_value_context)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<pvalueW>())).pv_type as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(pvalueW),
            "::",
            stringify!(pv_type)
        )
    );
}
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(
        arg1: LPVOID,
        arg2: PVALCONTEXT,
        arg3: DWORD,
        arg4: LPVOID,
        arg5: *mut DWORD,
        arg6: DWORD,
    ) -> 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,
}
#[test]
fn bindgen_test_layout_provider_info() {
    assert_eq!(
        ::std::mem::size_of::<provider_info>(),
        48usize,
        concat!("Size of: ", stringify!(provider_info))
    );
    assert_eq!(
        ::std::mem::align_of::<provider_info>(),
        8usize,
        concat!("Alignment of ", stringify!(provider_info))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<provider_info>())).pi_R0_1val as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(provider_info),
            "::",
            stringify!(pi_R0_1val)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<provider_info>())).pi_R0_allvals as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(provider_info),
            "::",
            stringify!(pi_R0_allvals)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<provider_info>())).pi_R3_1val as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(provider_info),
            "::",
            stringify!(pi_R3_1val)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<provider_info>())).pi_R3_allvals as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(provider_info),
            "::",
            stringify!(pi_R3_allvals)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<provider_info>())).pi_flags as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(provider_info),
            "::",
            stringify!(pi_flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<provider_info>())).pi_key_context as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(provider_info),
            "::",
            stringify!(pi_key_context)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_value_entA() {
    assert_eq!(
        ::std::mem::size_of::<value_entA>(),
        32usize,
        concat!("Size of: ", stringify!(value_entA))
    );
    assert_eq!(
        ::std::mem::align_of::<value_entA>(),
        8usize,
        concat!("Alignment of ", stringify!(value_entA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<value_entA>())).ve_valuename as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(value_entA),
            "::",
            stringify!(ve_valuename)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<value_entA>())).ve_valuelen as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(value_entA),
            "::",
            stringify!(ve_valuelen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<value_entA>())).ve_valueptr as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(value_entA),
            "::",
            stringify!(ve_valueptr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<value_entA>())).ve_type as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(value_entA),
            "::",
            stringify!(ve_type)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_value_entW() {
    assert_eq!(
        ::std::mem::size_of::<value_entW>(),
        32usize,
        concat!("Size of: ", stringify!(value_entW))
    );
    assert_eq!(
        ::std::mem::align_of::<value_entW>(),
        8usize,
        concat!("Alignment of ", stringify!(value_entW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<value_entW>())).ve_valuename as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(value_entW),
            "::",
            stringify!(ve_valuename)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<value_entW>())).ve_valuelen as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(value_entW),
            "::",
            stringify!(ve_valuelen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<value_entW>())).ve_valueptr as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(value_entW),
            "::",
            stringify!(ve_valueptr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<value_entW>())).ve_type as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(value_entW),
            "::",
            stringify!(ve_type)
        )
    );
}
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) -> LSTATUS;
}
extern "C" {
    pub fn RegOverridePredefKey(hKey: HKEY, hNewHKey: HKEY) -> LSTATUS;
}
extern "C" {
    pub fn RegOpenUserClassesRoot(
        hToken: HANDLE,
        dwOptions: DWORD,
        samDesired: REGSAM,
        phkResult: PHKEY,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegOpenCurrentUser(samDesired: REGSAM, phkResult: PHKEY) -> LSTATUS;
}
extern "C" {
    pub fn RegDisablePredefinedCache() -> LSTATUS;
}
extern "C" {
    pub fn RegDisablePredefinedCacheEx() -> LSTATUS;
}
extern "C" {
    pub fn RegConnectRegistryA(lpMachineName: LPCSTR, hKey: HKEY, phkResult: PHKEY) -> LSTATUS;
}
extern "C" {
    pub fn RegConnectRegistryW(lpMachineName: LPCWSTR, hKey: HKEY, phkResult: PHKEY) -> LSTATUS;
}
extern "C" {
    pub fn RegConnectRegistryExA(
        lpMachineName: LPCSTR,
        hKey: HKEY,
        Flags: ULONG,
        phkResult: PHKEY,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegConnectRegistryExW(
        lpMachineName: LPCWSTR,
        hKey: HKEY,
        Flags: ULONG,
        phkResult: PHKEY,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegCreateKeyA(hKey: HKEY, lpSubKey: LPCSTR, phkResult: PHKEY) -> LSTATUS;
}
extern "C" {
    pub fn RegCreateKeyW(hKey: HKEY, lpSubKey: LPCWSTR, phkResult: PHKEY) -> LSTATUS;
}
extern "C" {
    pub fn RegCreateKeyExA(
        hKey: HKEY,
        lpSubKey: LPCSTR,
        Reserved: DWORD,
        lpClass: LPSTR,
        dwOptions: DWORD,
        samDesired: REGSAM,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
        phkResult: PHKEY,
        lpdwDisposition: LPDWORD,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegCreateKeyExW(
        hKey: HKEY,
        lpSubKey: LPCWSTR,
        Reserved: DWORD,
        lpClass: LPWSTR,
        dwOptions: DWORD,
        samDesired: REGSAM,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
        phkResult: PHKEY,
        lpdwDisposition: LPDWORD,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegCreateKeyTransactedA(
        hKey: HKEY,
        lpSubKey: LPCSTR,
        Reserved: DWORD,
        lpClass: LPSTR,
        dwOptions: DWORD,
        samDesired: REGSAM,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
        phkResult: PHKEY,
        lpdwDisposition: LPDWORD,
        hTransaction: HANDLE,
        pExtendedParemeter: PVOID,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegCreateKeyTransactedW(
        hKey: HKEY,
        lpSubKey: LPCWSTR,
        Reserved: DWORD,
        lpClass: LPWSTR,
        dwOptions: DWORD,
        samDesired: REGSAM,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
        phkResult: PHKEY,
        lpdwDisposition: LPDWORD,
        hTransaction: HANDLE,
        pExtendedParemeter: PVOID,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegDeleteKeyA(hKey: HKEY, lpSubKey: LPCSTR) -> LSTATUS;
}
extern "C" {
    pub fn RegDeleteKeyW(hKey: HKEY, lpSubKey: LPCWSTR) -> LSTATUS;
}
extern "C" {
    pub fn RegDeleteKeyExA(
        hKey: HKEY,
        lpSubKey: LPCSTR,
        samDesired: REGSAM,
        Reserved: DWORD,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegDeleteKeyExW(
        hKey: HKEY,
        lpSubKey: LPCWSTR,
        samDesired: REGSAM,
        Reserved: DWORD,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegDeleteKeyTransactedA(
        hKey: HKEY,
        lpSubKey: LPCSTR,
        samDesired: REGSAM,
        Reserved: DWORD,
        hTransaction: HANDLE,
        pExtendedParameter: PVOID,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegDeleteKeyTransactedW(
        hKey: HKEY,
        lpSubKey: LPCWSTR,
        samDesired: REGSAM,
        Reserved: DWORD,
        hTransaction: HANDLE,
        pExtendedParameter: PVOID,
    ) -> LSTATUS;
}
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 BOOL) -> LONG;
}
extern "C" {
    pub fn RegDeleteValueA(hKey: HKEY, lpValueName: LPCSTR) -> LSTATUS;
}
extern "C" {
    pub fn RegDeleteValueW(hKey: HKEY, lpValueName: LPCWSTR) -> LSTATUS;
}
extern "C" {
    pub fn RegEnumKeyA(hKey: HKEY, dwIndex: DWORD, lpName: LPSTR, cchName: DWORD) -> LSTATUS;
}
extern "C" {
    pub fn RegEnumKeyW(hKey: HKEY, dwIndex: DWORD, lpName: LPWSTR, cchName: DWORD) -> LSTATUS;
}
extern "C" {
    pub fn RegEnumKeyExA(
        hKey: HKEY,
        dwIndex: DWORD,
        lpName: LPSTR,
        lpcchName: LPDWORD,
        lpReserved: LPDWORD,
        lpClass: LPSTR,
        lpcchClass: LPDWORD,
        lpftLastWriteTime: PFILETIME,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegEnumKeyExW(
        hKey: HKEY,
        dwIndex: DWORD,
        lpName: LPWSTR,
        lpcchName: LPDWORD,
        lpReserved: LPDWORD,
        lpClass: LPWSTR,
        lpcchClass: LPDWORD,
        lpftLastWriteTime: PFILETIME,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegEnumValueA(
        hKey: HKEY,
        dwIndex: DWORD,
        lpValueName: LPSTR,
        lpcchValueName: LPDWORD,
        lpReserved: LPDWORD,
        lpType: LPDWORD,
        lpData: LPBYTE,
        lpcbData: LPDWORD,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegEnumValueW(
        hKey: HKEY,
        dwIndex: DWORD,
        lpValueName: LPWSTR,
        lpcchValueName: LPDWORD,
        lpReserved: LPDWORD,
        lpType: LPDWORD,
        lpData: LPBYTE,
        lpcbData: LPDWORD,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegFlushKey(hKey: HKEY) -> LSTATUS;
}
extern "C" {
    pub fn RegGetKeySecurity(
        hKey: HKEY,
        SecurityInformation: SECURITY_INFORMATION,
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        lpcbSecurityDescriptor: LPDWORD,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegLoadKeyA(hKey: HKEY, lpSubKey: LPCSTR, lpFile: LPCSTR) -> LSTATUS;
}
extern "C" {
    pub fn RegLoadKeyW(hKey: HKEY, lpSubKey: LPCWSTR, lpFile: LPCWSTR) -> LSTATUS;
}
extern "C" {
    pub fn RegNotifyChangeKeyValue(
        hKey: HKEY,
        bWatchSubtree: BOOL,
        dwNotifyFilter: DWORD,
        hEvent: HANDLE,
        fAsynchronous: BOOL,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegOpenKeyA(hKey: HKEY, lpSubKey: LPCSTR, phkResult: PHKEY) -> LSTATUS;
}
extern "C" {
    pub fn RegOpenKeyW(hKey: HKEY, lpSubKey: LPCWSTR, phkResult: PHKEY) -> LSTATUS;
}
extern "C" {
    pub fn RegOpenKeyExA(
        hKey: HKEY,
        lpSubKey: LPCSTR,
        ulOptions: DWORD,
        samDesired: REGSAM,
        phkResult: PHKEY,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegOpenKeyExW(
        hKey: HKEY,
        lpSubKey: LPCWSTR,
        ulOptions: DWORD,
        samDesired: REGSAM,
        phkResult: PHKEY,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegOpenKeyTransactedA(
        hKey: HKEY,
        lpSubKey: LPCSTR,
        ulOptions: DWORD,
        samDesired: REGSAM,
        phkResult: PHKEY,
        hTransaction: HANDLE,
        pExtendedParemeter: PVOID,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegOpenKeyTransactedW(
        hKey: HKEY,
        lpSubKey: LPCWSTR,
        ulOptions: DWORD,
        samDesired: REGSAM,
        phkResult: PHKEY,
        hTransaction: HANDLE,
        pExtendedParemeter: PVOID,
    ) -> LSTATUS;
}
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,
    ) -> LSTATUS;
}
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,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegQueryValueA(hKey: HKEY, lpSubKey: LPCSTR, lpData: LPSTR, lpcbData: PLONG) -> LSTATUS;
}
extern "C" {
    pub fn RegQueryValueW(
        hKey: HKEY,
        lpSubKey: LPCWSTR,
        lpData: LPWSTR,
        lpcbData: PLONG,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegQueryMultipleValuesA(
        hKey: HKEY,
        val_list: PVALENTA,
        num_vals: DWORD,
        lpValueBuf: LPSTR,
        ldwTotsize: LPDWORD,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegQueryMultipleValuesW(
        hKey: HKEY,
        val_list: PVALENTW,
        num_vals: DWORD,
        lpValueBuf: LPWSTR,
        ldwTotsize: LPDWORD,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegQueryValueExA(
        hKey: HKEY,
        lpValueName: LPCSTR,
        lpReserved: LPDWORD,
        lpType: LPDWORD,
        lpData: LPBYTE,
        lpcbData: LPDWORD,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegQueryValueExW(
        hKey: HKEY,
        lpValueName: LPCWSTR,
        lpReserved: LPDWORD,
        lpType: LPDWORD,
        lpData: LPBYTE,
        lpcbData: LPDWORD,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegReplaceKeyA(
        hKey: HKEY,
        lpSubKey: LPCSTR,
        lpNewFile: LPCSTR,
        lpOldFile: LPCSTR,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegReplaceKeyW(
        hKey: HKEY,
        lpSubKey: LPCWSTR,
        lpNewFile: LPCWSTR,
        lpOldFile: LPCWSTR,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegRestoreKeyA(hKey: HKEY, lpFile: LPCSTR, dwFlags: DWORD) -> LSTATUS;
}
extern "C" {
    pub fn RegRestoreKeyW(hKey: HKEY, lpFile: LPCWSTR, dwFlags: DWORD) -> LSTATUS;
}
extern "C" {
    pub fn RegRenameKey(hKey: HKEY, lpSubKeyName: LPCWSTR, lpNewKeyName: LPCWSTR) -> LSTATUS;
}
extern "C" {
    pub fn RegSaveKeyA(
        hKey: HKEY,
        lpFile: LPCSTR,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegSaveKeyW(
        hKey: HKEY,
        lpFile: LPCWSTR,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegSetKeySecurity(
        hKey: HKEY,
        SecurityInformation: SECURITY_INFORMATION,
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegSetValueA(
        hKey: HKEY,
        lpSubKey: LPCSTR,
        dwType: DWORD,
        lpData: LPCSTR,
        cbData: DWORD,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegSetValueW(
        hKey: HKEY,
        lpSubKey: LPCWSTR,
        dwType: DWORD,
        lpData: LPCWSTR,
        cbData: DWORD,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegSetValueExA(
        hKey: HKEY,
        lpValueName: LPCSTR,
        Reserved: DWORD,
        dwType: DWORD,
        lpData: *const BYTE,
        cbData: DWORD,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegSetValueExW(
        hKey: HKEY,
        lpValueName: LPCWSTR,
        Reserved: DWORD,
        dwType: DWORD,
        lpData: *const BYTE,
        cbData: DWORD,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegUnLoadKeyA(hKey: HKEY, lpSubKey: LPCSTR) -> LSTATUS;
}
extern "C" {
    pub fn RegUnLoadKeyW(hKey: HKEY, lpSubKey: LPCWSTR) -> LSTATUS;
}
extern "C" {
    pub fn RegDeleteKeyValueA(hKey: HKEY, lpSubKey: LPCSTR, lpValueName: LPCSTR) -> LSTATUS;
}
extern "C" {
    pub fn RegDeleteKeyValueW(hKey: HKEY, lpSubKey: LPCWSTR, lpValueName: LPCWSTR) -> LSTATUS;
}
extern "C" {
    pub fn RegSetKeyValueA(
        hKey: HKEY,
        lpSubKey: LPCSTR,
        lpValueName: LPCSTR,
        dwType: DWORD,
        lpData: LPCVOID,
        cbData: DWORD,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegSetKeyValueW(
        hKey: HKEY,
        lpSubKey: LPCWSTR,
        lpValueName: LPCWSTR,
        dwType: DWORD,
        lpData: LPCVOID,
        cbData: DWORD,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegDeleteTreeA(hKey: HKEY, lpSubKey: LPCSTR) -> LSTATUS;
}
extern "C" {
    pub fn RegDeleteTreeW(hKey: HKEY, lpSubKey: LPCWSTR) -> LSTATUS;
}
extern "C" {
    pub fn RegCopyTreeA(hKeySrc: HKEY, lpSubKey: LPCSTR, hKeyDest: HKEY) -> LSTATUS;
}
extern "C" {
    pub fn RegGetValueA(
        hkey: HKEY,
        lpSubKey: LPCSTR,
        lpValue: LPCSTR,
        dwFlags: DWORD,
        pdwType: LPDWORD,
        pvData: PVOID,
        pcbData: LPDWORD,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegGetValueW(
        hkey: HKEY,
        lpSubKey: LPCWSTR,
        lpValue: LPCWSTR,
        dwFlags: DWORD,
        pdwType: LPDWORD,
        pvData: PVOID,
        pcbData: LPDWORD,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegCopyTreeW(hKeySrc: HKEY, lpSubKey: LPCWSTR, hKeyDest: HKEY) -> LSTATUS;
}
extern "C" {
    pub fn RegLoadMUIStringA(
        hKey: HKEY,
        pszValue: LPCSTR,
        pszOutBuf: LPSTR,
        cbOutBuf: DWORD,
        pcbData: LPDWORD,
        Flags: DWORD,
        pszDirectory: LPCSTR,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegLoadMUIStringW(
        hKey: HKEY,
        pszValue: LPCWSTR,
        pszOutBuf: LPWSTR,
        cbOutBuf: DWORD,
        pcbData: LPDWORD,
        Flags: DWORD,
        pszDirectory: LPCWSTR,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegLoadAppKeyA(
        lpFile: LPCSTR,
        phkResult: PHKEY,
        samDesired: REGSAM,
        dwOptions: DWORD,
        Reserved: DWORD,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegLoadAppKeyW(
        lpFile: LPCWSTR,
        phkResult: PHKEY,
        samDesired: REGSAM,
        dwOptions: DWORD,
        Reserved: DWORD,
    ) -> LSTATUS;
}
extern "C" {
    pub fn InitiateSystemShutdownA(
        lpMachineName: LPSTR,
        lpMessage: LPSTR,
        dwTimeout: DWORD,
        bForceAppsClosed: BOOL,
        bRebootAfterShutdown: BOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn InitiateSystemShutdownW(
        lpMachineName: LPWSTR,
        lpMessage: LPWSTR,
        dwTimeout: DWORD,
        bForceAppsClosed: BOOL,
        bRebootAfterShutdown: BOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn AbortSystemShutdownA(lpMachineName: LPSTR) -> BOOL;
}
extern "C" {
    pub fn AbortSystemShutdownW(lpMachineName: LPWSTR) -> BOOL;
}
extern "C" {
    pub fn InitiateSystemShutdownExA(
        lpMachineName: LPSTR,
        lpMessage: LPSTR,
        dwTimeout: DWORD,
        bForceAppsClosed: BOOL,
        bRebootAfterShutdown: BOOL,
        dwReason: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn InitiateSystemShutdownExW(
        lpMachineName: LPWSTR,
        lpMessage: LPWSTR,
        dwTimeout: DWORD,
        bForceAppsClosed: BOOL,
        bRebootAfterShutdown: BOOL,
        dwReason: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn InitiateShutdownA(
        lpMachineName: LPSTR,
        lpMessage: LPSTR,
        dwGracePeriod: DWORD,
        dwShutdownFlags: DWORD,
        dwReason: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn InitiateShutdownW(
        lpMachineName: LPWSTR,
        lpMessage: LPWSTR,
        dwGracePeriod: DWORD,
        dwShutdownFlags: DWORD,
        dwReason: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn CheckForHiberboot(pHiberboot: PBOOLEAN, bClearFlag: BOOLEAN) -> DWORD;
}
extern "C" {
    pub fn RegSaveKeyExA(
        hKey: HKEY,
        lpFile: LPCSTR,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
        Flags: DWORD,
    ) -> LSTATUS;
}
extern "C" {
    pub fn RegSaveKeyExW(
        hKey: HKEY,
        lpFile: LPCWSTR,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
        Flags: DWORD,
    ) -> LSTATUS;
}
#[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,
}
#[test]
fn bindgen_test_layout__NETRESOURCEA() {
    assert_eq!(
        ::std::mem::size_of::<_NETRESOURCEA>(),
        48usize,
        concat!("Size of: ", stringify!(_NETRESOURCEA))
    );
    assert_eq!(
        ::std::mem::align_of::<_NETRESOURCEA>(),
        8usize,
        concat!("Alignment of ", stringify!(_NETRESOURCEA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NETRESOURCEA>())).dwScope as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NETRESOURCEA),
            "::",
            stringify!(dwScope)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NETRESOURCEA>())).dwType as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_NETRESOURCEA),
            "::",
            stringify!(dwType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NETRESOURCEA>())).dwDisplayType as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NETRESOURCEA),
            "::",
            stringify!(dwDisplayType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NETRESOURCEA>())).dwUsage as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_NETRESOURCEA),
            "::",
            stringify!(dwUsage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NETRESOURCEA>())).lpLocalName as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_NETRESOURCEA),
            "::",
            stringify!(lpLocalName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NETRESOURCEA>())).lpRemoteName as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_NETRESOURCEA),
            "::",
            stringify!(lpRemoteName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NETRESOURCEA>())).lpComment as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_NETRESOURCEA),
            "::",
            stringify!(lpComment)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NETRESOURCEA>())).lpProvider as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_NETRESOURCEA),
            "::",
            stringify!(lpProvider)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__NETRESOURCEW() {
    assert_eq!(
        ::std::mem::size_of::<_NETRESOURCEW>(),
        48usize,
        concat!("Size of: ", stringify!(_NETRESOURCEW))
    );
    assert_eq!(
        ::std::mem::align_of::<_NETRESOURCEW>(),
        8usize,
        concat!("Alignment of ", stringify!(_NETRESOURCEW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NETRESOURCEW>())).dwScope as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NETRESOURCEW),
            "::",
            stringify!(dwScope)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NETRESOURCEW>())).dwType as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_NETRESOURCEW),
            "::",
            stringify!(dwType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NETRESOURCEW>())).dwDisplayType as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NETRESOURCEW),
            "::",
            stringify!(dwDisplayType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NETRESOURCEW>())).dwUsage as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_NETRESOURCEW),
            "::",
            stringify!(dwUsage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NETRESOURCEW>())).lpLocalName as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_NETRESOURCEW),
            "::",
            stringify!(lpLocalName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NETRESOURCEW>())).lpRemoteName as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_NETRESOURCEW),
            "::",
            stringify!(lpRemoteName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NETRESOURCEW>())).lpComment as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_NETRESOURCEW),
            "::",
            stringify!(lpComment)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NETRESOURCEW>())).lpProvider as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_NETRESOURCEW),
            "::",
            stringify!(lpProvider)
        )
    );
}
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: BOOL) -> DWORD;
}
extern "C" {
    pub fn WNetCancelConnectionW(lpName: LPCWSTR, fForce: BOOL) -> DWORD;
}
extern "C" {
    pub fn WNetCancelConnection2A(lpName: LPCSTR, dwFlags: DWORD, fForce: BOOL) -> DWORD;
}
extern "C" {
    pub fn WNetCancelConnection2W(lpName: LPCWSTR, dwFlags: DWORD, fForce: BOOL) -> 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 WNetRestoreSingleConnectionW(hwndParent: HWND, lpDevice: LPCWSTR, fUseUI: BOOL)
        -> 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;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CONNECTDLGSTRUCTA {
    pub cbStructure: DWORD,
    pub hwndOwner: HWND,
    pub lpConnRes: LPNETRESOURCEA,
    pub dwFlags: DWORD,
    pub dwDevNum: DWORD,
}
#[test]
fn bindgen_test_layout__CONNECTDLGSTRUCTA() {
    assert_eq!(
        ::std::mem::size_of::<_CONNECTDLGSTRUCTA>(),
        32usize,
        concat!("Size of: ", stringify!(_CONNECTDLGSTRUCTA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CONNECTDLGSTRUCTA>(),
        8usize,
        concat!("Alignment of ", stringify!(_CONNECTDLGSTRUCTA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONNECTDLGSTRUCTA>())).cbStructure as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONNECTDLGSTRUCTA),
            "::",
            stringify!(cbStructure)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONNECTDLGSTRUCTA>())).hwndOwner as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONNECTDLGSTRUCTA),
            "::",
            stringify!(hwndOwner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONNECTDLGSTRUCTA>())).lpConnRes as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONNECTDLGSTRUCTA),
            "::",
            stringify!(lpConnRes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONNECTDLGSTRUCTA>())).dwFlags as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONNECTDLGSTRUCTA),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONNECTDLGSTRUCTA>())).dwDevNum as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONNECTDLGSTRUCTA),
            "::",
            stringify!(dwDevNum)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__CONNECTDLGSTRUCTW() {
    assert_eq!(
        ::std::mem::size_of::<_CONNECTDLGSTRUCTW>(),
        32usize,
        concat!("Size of: ", stringify!(_CONNECTDLGSTRUCTW))
    );
    assert_eq!(
        ::std::mem::align_of::<_CONNECTDLGSTRUCTW>(),
        8usize,
        concat!("Alignment of ", stringify!(_CONNECTDLGSTRUCTW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONNECTDLGSTRUCTW>())).cbStructure as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONNECTDLGSTRUCTW),
            "::",
            stringify!(cbStructure)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONNECTDLGSTRUCTW>())).hwndOwner as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONNECTDLGSTRUCTW),
            "::",
            stringify!(hwndOwner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONNECTDLGSTRUCTW>())).lpConnRes as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONNECTDLGSTRUCTW),
            "::",
            stringify!(lpConnRes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONNECTDLGSTRUCTW>())).dwFlags as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONNECTDLGSTRUCTW),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONNECTDLGSTRUCTW>())).dwDevNum as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONNECTDLGSTRUCTW),
            "::",
            stringify!(dwDevNum)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__DISCDLGSTRUCTA() {
    assert_eq!(
        ::std::mem::size_of::<_DISCDLGSTRUCTA>(),
        40usize,
        concat!("Size of: ", stringify!(_DISCDLGSTRUCTA))
    );
    assert_eq!(
        ::std::mem::align_of::<_DISCDLGSTRUCTA>(),
        8usize,
        concat!("Alignment of ", stringify!(_DISCDLGSTRUCTA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISCDLGSTRUCTA>())).cbStructure as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISCDLGSTRUCTA),
            "::",
            stringify!(cbStructure)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISCDLGSTRUCTA>())).hwndOwner as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISCDLGSTRUCTA),
            "::",
            stringify!(hwndOwner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISCDLGSTRUCTA>())).lpLocalName as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISCDLGSTRUCTA),
            "::",
            stringify!(lpLocalName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISCDLGSTRUCTA>())).lpRemoteName as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISCDLGSTRUCTA),
            "::",
            stringify!(lpRemoteName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISCDLGSTRUCTA>())).dwFlags as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISCDLGSTRUCTA),
            "::",
            stringify!(dwFlags)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__DISCDLGSTRUCTW() {
    assert_eq!(
        ::std::mem::size_of::<_DISCDLGSTRUCTW>(),
        40usize,
        concat!("Size of: ", stringify!(_DISCDLGSTRUCTW))
    );
    assert_eq!(
        ::std::mem::align_of::<_DISCDLGSTRUCTW>(),
        8usize,
        concat!("Alignment of ", stringify!(_DISCDLGSTRUCTW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISCDLGSTRUCTW>())).cbStructure as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISCDLGSTRUCTW),
            "::",
            stringify!(cbStructure)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISCDLGSTRUCTW>())).hwndOwner as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISCDLGSTRUCTW),
            "::",
            stringify!(hwndOwner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISCDLGSTRUCTW>())).lpLocalName as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISCDLGSTRUCTW),
            "::",
            stringify!(lpLocalName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISCDLGSTRUCTW>())).lpRemoteName as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISCDLGSTRUCTW),
            "::",
            stringify!(lpRemoteName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISCDLGSTRUCTW>())).dwFlags as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISCDLGSTRUCTW),
            "::",
            stringify!(dwFlags)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__UNIVERSAL_NAME_INFOA() {
    assert_eq!(
        ::std::mem::size_of::<_UNIVERSAL_NAME_INFOA>(),
        8usize,
        concat!("Size of: ", stringify!(_UNIVERSAL_NAME_INFOA))
    );
    assert_eq!(
        ::std::mem::align_of::<_UNIVERSAL_NAME_INFOA>(),
        8usize,
        concat!("Alignment of ", stringify!(_UNIVERSAL_NAME_INFOA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_UNIVERSAL_NAME_INFOA>())).lpUniversalName as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_UNIVERSAL_NAME_INFOA),
            "::",
            stringify!(lpUniversalName)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__UNIVERSAL_NAME_INFOW() {
    assert_eq!(
        ::std::mem::size_of::<_UNIVERSAL_NAME_INFOW>(),
        8usize,
        concat!("Size of: ", stringify!(_UNIVERSAL_NAME_INFOW))
    );
    assert_eq!(
        ::std::mem::align_of::<_UNIVERSAL_NAME_INFOW>(),
        8usize,
        concat!("Alignment of ", stringify!(_UNIVERSAL_NAME_INFOW))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_UNIVERSAL_NAME_INFOW>())).lpUniversalName as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_UNIVERSAL_NAME_INFOW),
            "::",
            stringify!(lpUniversalName)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__REMOTE_NAME_INFOA() {
    assert_eq!(
        ::std::mem::size_of::<_REMOTE_NAME_INFOA>(),
        24usize,
        concat!("Size of: ", stringify!(_REMOTE_NAME_INFOA))
    );
    assert_eq!(
        ::std::mem::align_of::<_REMOTE_NAME_INFOA>(),
        8usize,
        concat!("Alignment of ", stringify!(_REMOTE_NAME_INFOA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REMOTE_NAME_INFOA>())).lpUniversalName as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_REMOTE_NAME_INFOA),
            "::",
            stringify!(lpUniversalName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REMOTE_NAME_INFOA>())).lpConnectionName as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_REMOTE_NAME_INFOA),
            "::",
            stringify!(lpConnectionName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REMOTE_NAME_INFOA>())).lpRemainingPath as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_REMOTE_NAME_INFOA),
            "::",
            stringify!(lpRemainingPath)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__REMOTE_NAME_INFOW() {
    assert_eq!(
        ::std::mem::size_of::<_REMOTE_NAME_INFOW>(),
        24usize,
        concat!("Size of: ", stringify!(_REMOTE_NAME_INFOW))
    );
    assert_eq!(
        ::std::mem::align_of::<_REMOTE_NAME_INFOW>(),
        8usize,
        concat!("Alignment of ", stringify!(_REMOTE_NAME_INFOW))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REMOTE_NAME_INFOW>())).lpUniversalName as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_REMOTE_NAME_INFOW),
            "::",
            stringify!(lpUniversalName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REMOTE_NAME_INFOW>())).lpConnectionName as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_REMOTE_NAME_INFOW),
            "::",
            stringify!(lpConnectionName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REMOTE_NAME_INFOW>())).lpRemainingPath as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_REMOTE_NAME_INFOW),
            "::",
            stringify!(lpRemainingPath)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__NETINFOSTRUCT() {
    assert_eq!(
        ::std::mem::size_of::<_NETINFOSTRUCT>(),
        40usize,
        concat!("Size of: ", stringify!(_NETINFOSTRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<_NETINFOSTRUCT>(),
        8usize,
        concat!("Alignment of ", stringify!(_NETINFOSTRUCT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NETINFOSTRUCT>())).cbStructure as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NETINFOSTRUCT),
            "::",
            stringify!(cbStructure)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NETINFOSTRUCT>())).dwProviderVersion as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_NETINFOSTRUCT),
            "::",
            stringify!(dwProviderVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NETINFOSTRUCT>())).dwStatus as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NETINFOSTRUCT),
            "::",
            stringify!(dwStatus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NETINFOSTRUCT>())).dwCharacteristics as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_NETINFOSTRUCT),
            "::",
            stringify!(dwCharacteristics)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NETINFOSTRUCT>())).dwHandle as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_NETINFOSTRUCT),
            "::",
            stringify!(dwHandle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NETINFOSTRUCT>())).wNetType as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_NETINFOSTRUCT),
            "::",
            stringify!(wNetType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NETINFOSTRUCT>())).dwPrinters as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_NETINFOSTRUCT),
            "::",
            stringify!(dwPrinters)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NETINFOSTRUCT>())).dwDrives as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_NETINFOSTRUCT),
            "::",
            stringify!(dwDrives)
        )
    );
}
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;
}
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,
}
#[test]
fn bindgen_test_layout__NETCONNECTINFOSTRUCT() {
    assert_eq!(
        ::std::mem::size_of::<_NETCONNECTINFOSTRUCT>(),
        20usize,
        concat!("Size of: ", stringify!(_NETCONNECTINFOSTRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<_NETCONNECTINFOSTRUCT>(),
        4usize,
        concat!("Alignment of ", stringify!(_NETCONNECTINFOSTRUCT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NETCONNECTINFOSTRUCT>())).cbStructure as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NETCONNECTINFOSTRUCT),
            "::",
            stringify!(cbStructure)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NETCONNECTINFOSTRUCT>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_NETCONNECTINFOSTRUCT),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NETCONNECTINFOSTRUCT>())).dwSpeed as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NETCONNECTINFOSTRUCT),
            "::",
            stringify!(dwSpeed)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NETCONNECTINFOSTRUCT>())).dwDelay as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_NETCONNECTINFOSTRUCT),
            "::",
            stringify!(dwDelay)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NETCONNECTINFOSTRUCT>())).dwOptDataSize as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_NETCONNECTINFOSTRUCT),
            "::",
            stringify!(dwOptDataSize)
        )
    );
}
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;
}
#[repr(C)]
#[repr(align(2))]
#[derive(Debug, Copy, Clone)]
pub struct DDEACK {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize], u8>,
}
#[test]
fn bindgen_test_layout_DDEACK() {
    assert_eq!(
        ::std::mem::size_of::<DDEACK>(),
        2usize,
        concat!("Size of: ", stringify!(DDEACK))
    );
    assert_eq!(
        ::std::mem::align_of::<DDEACK>(),
        2usize,
        concat!("Alignment of ", stringify!(DDEACK))
    );
}
impl DDEACK {
    #[inline]
    pub fn bAppReturnCode(&self) -> ::std::os::raw::c_ushort {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u16) }
    }
    #[inline]
    pub fn set_bAppReturnCode(&mut self, val: ::std::os::raw::c_ushort) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 8u8, val as u64)
        }
    }
    #[inline]
    pub fn reserved(&self) -> ::std::os::raw::c_ushort {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 6u8) as u16) }
    }
    #[inline]
    pub fn set_reserved(&mut self, val: ::std::os::raw::c_ushort) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(8usize, 6u8, val as u64)
        }
    }
    #[inline]
    pub fn fBusy(&self) -> ::std::os::raw::c_ushort {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u16) }
    }
    #[inline]
    pub fn set_fBusy(&mut self, val: ::std::os::raw::c_ushort) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(14usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fAck(&self) -> ::std::os::raw::c_ushort {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u16) }
    }
    #[inline]
    pub fn set_fAck(&mut self, val: ::std::os::raw::c_ushort) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(15usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        bAppReturnCode: ::std::os::raw::c_ushort,
        reserved: ::std::os::raw::c_ushort,
        fBusy: ::std::os::raw::c_ushort,
        fAck: ::std::os::raw::c_ushort,
    ) -> __BindgenBitfieldUnit<[u8; 2usize], u8> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize], u8> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 8u8, {
            let bAppReturnCode: u16 = unsafe { ::std::mem::transmute(bAppReturnCode) };
            bAppReturnCode as u64
        });
        __bindgen_bitfield_unit.set(8usize, 6u8, {
            let reserved: u16 = unsafe { ::std::mem::transmute(reserved) };
            reserved as u64
        });
        __bindgen_bitfield_unit.set(14usize, 1u8, {
            let fBusy: u16 = unsafe { ::std::mem::transmute(fBusy) };
            fBusy as u64
        });
        __bindgen_bitfield_unit.set(15usize, 1u8, {
            let fAck: u16 = unsafe { ::std::mem::transmute(fAck) };
            fAck as u64
        });
        __bindgen_bitfield_unit
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct DDEADVISE {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize], u16>,
    pub cfFormat: ::std::os::raw::c_short,
}
#[test]
fn bindgen_test_layout_DDEADVISE() {
    assert_eq!(
        ::std::mem::size_of::<DDEADVISE>(),
        4usize,
        concat!("Size of: ", stringify!(DDEADVISE))
    );
    assert_eq!(
        ::std::mem::align_of::<DDEADVISE>(),
        2usize,
        concat!("Alignment of ", stringify!(DDEADVISE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DDEADVISE>())).cfFormat as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(DDEADVISE),
            "::",
            stringify!(cfFormat)
        )
    );
}
impl DDEADVISE {
    #[inline]
    pub fn reserved(&self) -> ::std::os::raw::c_ushort {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 14u8) as u16) }
    }
    #[inline]
    pub fn set_reserved(&mut self, val: ::std::os::raw::c_ushort) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 14u8, val as u64)
        }
    }
    #[inline]
    pub fn fDeferUpd(&self) -> ::std::os::raw::c_ushort {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u16) }
    }
    #[inline]
    pub fn set_fDeferUpd(&mut self, val: ::std::os::raw::c_ushort) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(14usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fAckReq(&self) -> ::std::os::raw::c_ushort {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u16) }
    }
    #[inline]
    pub fn set_fAckReq(&mut self, val: ::std::os::raw::c_ushort) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(15usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        reserved: ::std::os::raw::c_ushort,
        fDeferUpd: ::std::os::raw::c_ushort,
        fAckReq: ::std::os::raw::c_ushort,
    ) -> __BindgenBitfieldUnit<[u8; 2usize], u16> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize], u16> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 14u8, {
            let reserved: u16 = unsafe { ::std::mem::transmute(reserved) };
            reserved as u64
        });
        __bindgen_bitfield_unit.set(14usize, 1u8, {
            let fDeferUpd: u16 = unsafe { ::std::mem::transmute(fDeferUpd) };
            fDeferUpd as u64
        });
        __bindgen_bitfield_unit.set(15usize, 1u8, {
            let fAckReq: u16 = unsafe { ::std::mem::transmute(fAckReq) };
            fAckReq as u64
        });
        __bindgen_bitfield_unit
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct DDEDATA {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize], u16>,
    pub cfFormat: ::std::os::raw::c_short,
    pub Value: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout_DDEDATA() {
    assert_eq!(
        ::std::mem::size_of::<DDEDATA>(),
        6usize,
        concat!("Size of: ", stringify!(DDEDATA))
    );
    assert_eq!(
        ::std::mem::align_of::<DDEDATA>(),
        2usize,
        concat!("Alignment of ", stringify!(DDEDATA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DDEDATA>())).cfFormat as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(DDEDATA),
            "::",
            stringify!(cfFormat)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DDEDATA>())).Value as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(DDEDATA),
            "::",
            stringify!(Value)
        )
    );
}
impl DDEDATA {
    #[inline]
    pub fn unused(&self) -> ::std::os::raw::c_ushort {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 12u8) as u16) }
    }
    #[inline]
    pub fn set_unused(&mut self, val: ::std::os::raw::c_ushort) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 12u8, val as u64)
        }
    }
    #[inline]
    pub fn fResponse(&self) -> ::std::os::raw::c_ushort {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) }
    }
    #[inline]
    pub fn set_fResponse(&mut self, val: ::std::os::raw::c_ushort) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(12usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fRelease(&self) -> ::std::os::raw::c_ushort {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) }
    }
    #[inline]
    pub fn set_fRelease(&mut self, val: ::std::os::raw::c_ushort) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(13usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn reserved(&self) -> ::std::os::raw::c_ushort {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u16) }
    }
    #[inline]
    pub fn set_reserved(&mut self, val: ::std::os::raw::c_ushort) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(14usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fAckReq(&self) -> ::std::os::raw::c_ushort {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u16) }
    }
    #[inline]
    pub fn set_fAckReq(&mut self, val: ::std::os::raw::c_ushort) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(15usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        unused: ::std::os::raw::c_ushort,
        fResponse: ::std::os::raw::c_ushort,
        fRelease: ::std::os::raw::c_ushort,
        reserved: ::std::os::raw::c_ushort,
        fAckReq: ::std::os::raw::c_ushort,
    ) -> __BindgenBitfieldUnit<[u8; 2usize], u16> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize], u16> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 12u8, {
            let unused: u16 = unsafe { ::std::mem::transmute(unused) };
            unused as u64
        });
        __bindgen_bitfield_unit.set(12usize, 1u8, {
            let fResponse: u16 = unsafe { ::std::mem::transmute(fResponse) };
            fResponse as u64
        });
        __bindgen_bitfield_unit.set(13usize, 1u8, {
            let fRelease: u16 = unsafe { ::std::mem::transmute(fRelease) };
            fRelease as u64
        });
        __bindgen_bitfield_unit.set(14usize, 1u8, {
            let reserved: u16 = unsafe { ::std::mem::transmute(reserved) };
            reserved as u64
        });
        __bindgen_bitfield_unit.set(15usize, 1u8, {
            let fAckReq: u16 = unsafe { ::std::mem::transmute(fAckReq) };
            fAckReq as u64
        });
        __bindgen_bitfield_unit
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct DDEPOKE {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize], u16>,
    pub cfFormat: ::std::os::raw::c_short,
    pub Value: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout_DDEPOKE() {
    assert_eq!(
        ::std::mem::size_of::<DDEPOKE>(),
        6usize,
        concat!("Size of: ", stringify!(DDEPOKE))
    );
    assert_eq!(
        ::std::mem::align_of::<DDEPOKE>(),
        2usize,
        concat!("Alignment of ", stringify!(DDEPOKE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DDEPOKE>())).cfFormat as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(DDEPOKE),
            "::",
            stringify!(cfFormat)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DDEPOKE>())).Value as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(DDEPOKE),
            "::",
            stringify!(Value)
        )
    );
}
impl DDEPOKE {
    #[inline]
    pub fn unused(&self) -> ::std::os::raw::c_ushort {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 13u8) as u16) }
    }
    #[inline]
    pub fn set_unused(&mut self, val: ::std::os::raw::c_ushort) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 13u8, val as u64)
        }
    }
    #[inline]
    pub fn fRelease(&self) -> ::std::os::raw::c_ushort {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) }
    }
    #[inline]
    pub fn set_fRelease(&mut self, val: ::std::os::raw::c_ushort) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(13usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fReserved(&self) -> ::std::os::raw::c_ushort {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 2u8) as u16) }
    }
    #[inline]
    pub fn set_fReserved(&mut self, val: ::std::os::raw::c_ushort) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(14usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        unused: ::std::os::raw::c_ushort,
        fRelease: ::std::os::raw::c_ushort,
        fReserved: ::std::os::raw::c_ushort,
    ) -> __BindgenBitfieldUnit<[u8; 2usize], u16> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize], u16> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 13u8, {
            let unused: u16 = unsafe { ::std::mem::transmute(unused) };
            unused as u64
        });
        __bindgen_bitfield_unit.set(13usize, 1u8, {
            let fRelease: u16 = unsafe { ::std::mem::transmute(fRelease) };
            fRelease as u64
        });
        __bindgen_bitfield_unit.set(14usize, 2u8, {
            let fReserved: u16 = unsafe { ::std::mem::transmute(fReserved) };
            fReserved as u64
        });
        __bindgen_bitfield_unit
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct DDELN {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize], u16>,
    pub cfFormat: ::std::os::raw::c_short,
}
#[test]
fn bindgen_test_layout_DDELN() {
    assert_eq!(
        ::std::mem::size_of::<DDELN>(),
        4usize,
        concat!("Size of: ", stringify!(DDELN))
    );
    assert_eq!(
        ::std::mem::align_of::<DDELN>(),
        2usize,
        concat!("Alignment of ", stringify!(DDELN))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DDELN>())).cfFormat as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(DDELN),
            "::",
            stringify!(cfFormat)
        )
    );
}
impl DDELN {
    #[inline]
    pub fn unused(&self) -> ::std::os::raw::c_ushort {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 13u8) as u16) }
    }
    #[inline]
    pub fn set_unused(&mut self, val: ::std::os::raw::c_ushort) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 13u8, val as u64)
        }
    }
    #[inline]
    pub fn fRelease(&self) -> ::std::os::raw::c_ushort {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) }
    }
    #[inline]
    pub fn set_fRelease(&mut self, val: ::std::os::raw::c_ushort) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(13usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fDeferUpd(&self) -> ::std::os::raw::c_ushort {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u16) }
    }
    #[inline]
    pub fn set_fDeferUpd(&mut self, val: ::std::os::raw::c_ushort) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(14usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fAckReq(&self) -> ::std::os::raw::c_ushort {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u16) }
    }
    #[inline]
    pub fn set_fAckReq(&mut self, val: ::std::os::raw::c_ushort) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(15usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        unused: ::std::os::raw::c_ushort,
        fRelease: ::std::os::raw::c_ushort,
        fDeferUpd: ::std::os::raw::c_ushort,
        fAckReq: ::std::os::raw::c_ushort,
    ) -> __BindgenBitfieldUnit<[u8; 2usize], u16> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize], u16> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 13u8, {
            let unused: u16 = unsafe { ::std::mem::transmute(unused) };
            unused as u64
        });
        __bindgen_bitfield_unit.set(13usize, 1u8, {
            let fRelease: u16 = unsafe { ::std::mem::transmute(fRelease) };
            fRelease as u64
        });
        __bindgen_bitfield_unit.set(14usize, 1u8, {
            let fDeferUpd: u16 = unsafe { ::std::mem::transmute(fDeferUpd) };
            fDeferUpd as u64
        });
        __bindgen_bitfield_unit.set(15usize, 1u8, {
            let fAckReq: u16 = unsafe { ::std::mem::transmute(fAckReq) };
            fAckReq as u64
        });
        __bindgen_bitfield_unit
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct DDEUP {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize], u16>,
    pub cfFormat: ::std::os::raw::c_short,
    pub rgb: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout_DDEUP() {
    assert_eq!(
        ::std::mem::size_of::<DDEUP>(),
        6usize,
        concat!("Size of: ", stringify!(DDEUP))
    );
    assert_eq!(
        ::std::mem::align_of::<DDEUP>(),
        2usize,
        concat!("Alignment of ", stringify!(DDEUP))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DDEUP>())).cfFormat as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(DDEUP),
            "::",
            stringify!(cfFormat)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DDEUP>())).rgb as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(DDEUP),
            "::",
            stringify!(rgb)
        )
    );
}
impl DDEUP {
    #[inline]
    pub fn unused(&self) -> ::std::os::raw::c_ushort {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 12u8) as u16) }
    }
    #[inline]
    pub fn set_unused(&mut self, val: ::std::os::raw::c_ushort) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 12u8, val as u64)
        }
    }
    #[inline]
    pub fn fAck(&self) -> ::std::os::raw::c_ushort {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) }
    }
    #[inline]
    pub fn set_fAck(&mut self, val: ::std::os::raw::c_ushort) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(12usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fRelease(&self) -> ::std::os::raw::c_ushort {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) }
    }
    #[inline]
    pub fn set_fRelease(&mut self, val: ::std::os::raw::c_ushort) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(13usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fReserved(&self) -> ::std::os::raw::c_ushort {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u16) }
    }
    #[inline]
    pub fn set_fReserved(&mut self, val: ::std::os::raw::c_ushort) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(14usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fAckReq(&self) -> ::std::os::raw::c_ushort {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u16) }
    }
    #[inline]
    pub fn set_fAckReq(&mut self, val: ::std::os::raw::c_ushort) {
        unsafe {
            let val: u16 = ::std::mem::transmute(val);
            self._bitfield_1.set(15usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        unused: ::std::os::raw::c_ushort,
        fAck: ::std::os::raw::c_ushort,
        fRelease: ::std::os::raw::c_ushort,
        fReserved: ::std::os::raw::c_ushort,
        fAckReq: ::std::os::raw::c_ushort,
    ) -> __BindgenBitfieldUnit<[u8; 2usize], u16> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize], u16> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 12u8, {
            let unused: u16 = unsafe { ::std::mem::transmute(unused) };
            unused as u64
        });
        __bindgen_bitfield_unit.set(12usize, 1u8, {
            let fAck: u16 = unsafe { ::std::mem::transmute(fAck) };
            fAck as u64
        });
        __bindgen_bitfield_unit.set(13usize, 1u8, {
            let fRelease: u16 = unsafe { ::std::mem::transmute(fRelease) };
            fRelease as u64
        });
        __bindgen_bitfield_unit.set(14usize, 1u8, {
            let fReserved: u16 = unsafe { ::std::mem::transmute(fReserved) };
            fReserved as u64
        });
        __bindgen_bitfield_unit.set(15usize, 1u8, {
            let fAckReq: u16 = unsafe { ::std::mem::transmute(fAckReq) };
            fAckReq as u64
        });
        __bindgen_bitfield_unit
    }
}
extern "C" {
    pub fn DdeSetQualityOfService(
        hwndClient: HWND,
        pqosNew: *const SECURITY_QUALITY_OF_SERVICE,
        pqosPrev: PSECURITY_QUALITY_OF_SERVICE,
    ) -> BOOL;
}
extern "C" {
    pub fn ImpersonateDdeClientWindow(hWndClient: HWND, hWndServer: HWND) -> BOOL;
}
extern "C" {
    pub fn PackDDElParam(msg: UINT, uiLo: UINT_PTR, uiHi: UINT_PTR) -> LPARAM;
}
extern "C" {
    pub fn UnpackDDElParam(msg: UINT, lParam: LPARAM, puiLo: PUINT_PTR, puiHi: PUINT_PTR) -> BOOL;
}
extern "C" {
    pub fn FreeDDElParam(msg: UINT, lParam: LPARAM) -> BOOL;
}
extern "C" {
    pub fn ReuseDDElParam(
        lParam: LPARAM,
        msgIn: UINT,
        msgOut: UINT,
        uiLo: UINT_PTR,
        uiHi: UINT_PTR,
    ) -> LPARAM;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HCONVLIST__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HCONVLIST__() {
    assert_eq!(
        ::std::mem::size_of::<HCONVLIST__>(),
        4usize,
        concat!("Size of: ", stringify!(HCONVLIST__))
    );
    assert_eq!(
        ::std::mem::align_of::<HCONVLIST__>(),
        4usize,
        concat!("Alignment of ", stringify!(HCONVLIST__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HCONVLIST__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HCONVLIST__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HCONVLIST = *mut HCONVLIST__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HCONV__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HCONV__() {
    assert_eq!(
        ::std::mem::size_of::<HCONV__>(),
        4usize,
        concat!("Size of: ", stringify!(HCONV__))
    );
    assert_eq!(
        ::std::mem::align_of::<HCONV__>(),
        4usize,
        concat!("Alignment of ", stringify!(HCONV__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HCONV__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HCONV__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HCONV = *mut HCONV__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HSZ__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HSZ__() {
    assert_eq!(
        ::std::mem::size_of::<HSZ__>(),
        4usize,
        concat!("Size of: ", stringify!(HSZ__))
    );
    assert_eq!(
        ::std::mem::align_of::<HSZ__>(),
        4usize,
        concat!("Alignment of ", stringify!(HSZ__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HSZ__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HSZ__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HSZ = *mut HSZ__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HDDEDATA__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HDDEDATA__() {
    assert_eq!(
        ::std::mem::size_of::<HDDEDATA__>(),
        4usize,
        concat!("Size of: ", stringify!(HDDEDATA__))
    );
    assert_eq!(
        ::std::mem::align_of::<HDDEDATA__>(),
        4usize,
        concat!("Alignment of ", stringify!(HDDEDATA__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HDDEDATA__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HDDEDATA__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HDDEDATA = *mut HDDEDATA__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagHSZPAIR {
    pub hszSvc: HSZ,
    pub hszTopic: HSZ,
}
#[test]
fn bindgen_test_layout_tagHSZPAIR() {
    assert_eq!(
        ::std::mem::size_of::<tagHSZPAIR>(),
        16usize,
        concat!("Size of: ", stringify!(tagHSZPAIR))
    );
    assert_eq!(
        ::std::mem::align_of::<tagHSZPAIR>(),
        8usize,
        concat!("Alignment of ", stringify!(tagHSZPAIR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHSZPAIR>())).hszSvc as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHSZPAIR),
            "::",
            stringify!(hszSvc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagHSZPAIR>())).hszTopic as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagHSZPAIR),
            "::",
            stringify!(hszTopic)
        )
    );
}
pub type HSZPAIR = tagHSZPAIR;
pub type PHSZPAIR = *mut tagHSZPAIR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCONVCONTEXT {
    pub cb: UINT,
    pub wFlags: UINT,
    pub wCountryID: UINT,
    pub iCodePage: ::std::os::raw::c_int,
    pub dwLangID: DWORD,
    pub dwSecurity: DWORD,
    pub qos: SECURITY_QUALITY_OF_SERVICE,
}
#[test]
fn bindgen_test_layout_tagCONVCONTEXT() {
    assert_eq!(
        ::std::mem::size_of::<tagCONVCONTEXT>(),
        36usize,
        concat!("Size of: ", stringify!(tagCONVCONTEXT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCONVCONTEXT>(),
        4usize,
        concat!("Alignment of ", stringify!(tagCONVCONTEXT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCONVCONTEXT>())).cb as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCONVCONTEXT),
            "::",
            stringify!(cb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCONVCONTEXT>())).wFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCONVCONTEXT),
            "::",
            stringify!(wFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCONVCONTEXT>())).wCountryID as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCONVCONTEXT),
            "::",
            stringify!(wCountryID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCONVCONTEXT>())).iCodePage as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCONVCONTEXT),
            "::",
            stringify!(iCodePage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCONVCONTEXT>())).dwLangID as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCONVCONTEXT),
            "::",
            stringify!(dwLangID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCONVCONTEXT>())).dwSecurity as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCONVCONTEXT),
            "::",
            stringify!(dwSecurity)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCONVCONTEXT>())).qos as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCONVCONTEXT),
            "::",
            stringify!(qos)
        )
    );
}
pub type CONVCONTEXT = tagCONVCONTEXT;
pub type PCONVCONTEXT = *mut tagCONVCONTEXT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCONVINFO {
    pub cb: DWORD,
    pub hUser: DWORD_PTR,
    pub hConvPartner: HCONV,
    pub hszSvcPartner: HSZ,
    pub hszServiceReq: HSZ,
    pub hszTopic: HSZ,
    pub hszItem: HSZ,
    pub wFmt: UINT,
    pub wType: UINT,
    pub wStatus: UINT,
    pub wConvst: UINT,
    pub wLastError: UINT,
    pub hConvList: HCONVLIST,
    pub ConvCtxt: CONVCONTEXT,
    pub hwnd: HWND,
    pub hwndPartner: HWND,
}
#[test]
fn bindgen_test_layout_tagCONVINFO() {
    assert_eq!(
        ::std::mem::size_of::<tagCONVINFO>(),
        144usize,
        concat!("Size of: ", stringify!(tagCONVINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCONVINFO>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCONVINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCONVINFO>())).cb as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCONVINFO),
            "::",
            stringify!(cb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCONVINFO>())).hUser as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCONVINFO),
            "::",
            stringify!(hUser)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCONVINFO>())).hConvPartner as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCONVINFO),
            "::",
            stringify!(hConvPartner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCONVINFO>())).hszSvcPartner as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCONVINFO),
            "::",
            stringify!(hszSvcPartner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCONVINFO>())).hszServiceReq as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCONVINFO),
            "::",
            stringify!(hszServiceReq)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCONVINFO>())).hszTopic as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCONVINFO),
            "::",
            stringify!(hszTopic)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCONVINFO>())).hszItem as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCONVINFO),
            "::",
            stringify!(hszItem)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCONVINFO>())).wFmt as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCONVINFO),
            "::",
            stringify!(wFmt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCONVINFO>())).wType as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCONVINFO),
            "::",
            stringify!(wType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCONVINFO>())).wStatus as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCONVINFO),
            "::",
            stringify!(wStatus)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCONVINFO>())).wConvst as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCONVINFO),
            "::",
            stringify!(wConvst)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCONVINFO>())).wLastError as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCONVINFO),
            "::",
            stringify!(wLastError)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCONVINFO>())).hConvList as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCONVINFO),
            "::",
            stringify!(hConvList)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCONVINFO>())).ConvCtxt as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCONVINFO),
            "::",
            stringify!(ConvCtxt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCONVINFO>())).hwnd as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCONVINFO),
            "::",
            stringify!(hwnd)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCONVINFO>())).hwndPartner as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCONVINFO),
            "::",
            stringify!(hwndPartner)
        )
    );
}
pub type CONVINFO = tagCONVINFO;
pub type PCONVINFO = *mut tagCONVINFO;
pub type PFNCALLBACK = ::std::option::Option<
    unsafe extern "C" fn(
        wType: UINT,
        wFmt: UINT,
        hConv: HCONV,
        hsz1: HSZ,
        hsz2: HSZ,
        hData: HDDEDATA,
        dwData1: ULONG_PTR,
        dwData2: ULONG_PTR,
    ) -> HDDEDATA,
>;
extern "C" {
    pub fn DdeInitializeA(
        pidInst: LPDWORD,
        pfnCallback: PFNCALLBACK,
        afCmd: DWORD,
        ulRes: DWORD,
    ) -> UINT;
}
extern "C" {
    pub fn DdeInitializeW(
        pidInst: LPDWORD,
        pfnCallback: PFNCALLBACK,
        afCmd: DWORD,
        ulRes: DWORD,
    ) -> UINT;
}
extern "C" {
    pub fn DdeUninitialize(idInst: DWORD) -> BOOL;
}
extern "C" {
    pub fn DdeConnectList(
        idInst: DWORD,
        hszService: HSZ,
        hszTopic: HSZ,
        hConvList: HCONVLIST,
        pCC: PCONVCONTEXT,
    ) -> HCONVLIST;
}
extern "C" {
    pub fn DdeQueryNextServer(hConvList: HCONVLIST, hConvPrev: HCONV) -> HCONV;
}
extern "C" {
    pub fn DdeDisconnectList(hConvList: HCONVLIST) -> BOOL;
}
extern "C" {
    pub fn DdeConnect(idInst: DWORD, hszService: HSZ, hszTopic: HSZ, pCC: PCONVCONTEXT) -> HCONV;
}
extern "C" {
    pub fn DdeDisconnect(hConv: HCONV) -> BOOL;
}
extern "C" {
    pub fn DdeReconnect(hConv: HCONV) -> HCONV;
}
extern "C" {
    pub fn DdeQueryConvInfo(hConv: HCONV, idTransaction: DWORD, pConvInfo: PCONVINFO) -> UINT;
}
extern "C" {
    pub fn DdeSetUserHandle(hConv: HCONV, id: DWORD, hUser: DWORD_PTR) -> BOOL;
}
extern "C" {
    pub fn DdeAbandonTransaction(idInst: DWORD, hConv: HCONV, idTransaction: DWORD) -> BOOL;
}
extern "C" {
    pub fn DdePostAdvise(idInst: DWORD, hszTopic: HSZ, hszItem: HSZ) -> BOOL;
}
extern "C" {
    pub fn DdeEnableCallback(idInst: DWORD, hConv: HCONV, wCmd: UINT) -> BOOL;
}
extern "C" {
    pub fn DdeImpersonateClient(hConv: HCONV) -> BOOL;
}
extern "C" {
    pub fn DdeNameService(idInst: DWORD, hsz1: HSZ, hsz2: HSZ, afCmd: UINT) -> HDDEDATA;
}
extern "C" {
    pub fn DdeClientTransaction(
        pData: LPBYTE,
        cbData: DWORD,
        hConv: HCONV,
        hszItem: HSZ,
        wFmt: UINT,
        wType: UINT,
        dwTimeout: DWORD,
        pdwResult: LPDWORD,
    ) -> HDDEDATA;
}
extern "C" {
    pub fn DdeCreateDataHandle(
        idInst: DWORD,
        pSrc: LPBYTE,
        cb: DWORD,
        cbOff: DWORD,
        hszItem: HSZ,
        wFmt: UINT,
        afCmd: UINT,
    ) -> HDDEDATA;
}
extern "C" {
    pub fn DdeAddData(hData: HDDEDATA, pSrc: LPBYTE, cb: DWORD, cbOff: DWORD) -> HDDEDATA;
}
extern "C" {
    pub fn DdeGetData(hData: HDDEDATA, pDst: LPBYTE, cbMax: DWORD, cbOff: DWORD) -> DWORD;
}
extern "C" {
    pub fn DdeAccessData(hData: HDDEDATA, pcbDataSize: LPDWORD) -> LPBYTE;
}
extern "C" {
    pub fn DdeUnaccessData(hData: HDDEDATA) -> BOOL;
}
extern "C" {
    pub fn DdeFreeDataHandle(hData: HDDEDATA) -> BOOL;
}
extern "C" {
    pub fn DdeGetLastError(idInst: DWORD) -> UINT;
}
extern "C" {
    pub fn DdeCreateStringHandleA(
        idInst: DWORD,
        psz: LPCSTR,
        iCodePage: ::std::os::raw::c_int,
    ) -> HSZ;
}
extern "C" {
    pub fn DdeCreateStringHandleW(
        idInst: DWORD,
        psz: LPCWSTR,
        iCodePage: ::std::os::raw::c_int,
    ) -> HSZ;
}
extern "C" {
    pub fn DdeQueryStringA(
        idInst: DWORD,
        hsz: HSZ,
        psz: LPSTR,
        cchMax: DWORD,
        iCodePage: ::std::os::raw::c_int,
    ) -> DWORD;
}
extern "C" {
    pub fn DdeQueryStringW(
        idInst: DWORD,
        hsz: HSZ,
        psz: LPWSTR,
        cchMax: DWORD,
        iCodePage: ::std::os::raw::c_int,
    ) -> DWORD;
}
extern "C" {
    pub fn DdeFreeStringHandle(idInst: DWORD, hsz: HSZ) -> BOOL;
}
extern "C" {
    pub fn DdeKeepStringHandle(idInst: DWORD, hsz: HSZ) -> BOOL;
}
extern "C" {
    pub fn DdeCmpStringHandles(hsz1: HSZ, hsz2: HSZ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagDDEML_MSG_HOOK_DATA {
    pub uiLo: UINT_PTR,
    pub uiHi: UINT_PTR,
    pub cbData: DWORD,
    pub Data: [DWORD; 8usize],
}
#[test]
fn bindgen_test_layout_tagDDEML_MSG_HOOK_DATA() {
    assert_eq!(
        ::std::mem::size_of::<tagDDEML_MSG_HOOK_DATA>(),
        56usize,
        concat!("Size of: ", stringify!(tagDDEML_MSG_HOOK_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagDDEML_MSG_HOOK_DATA>(),
        8usize,
        concat!("Alignment of ", stringify!(tagDDEML_MSG_HOOK_DATA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDDEML_MSG_HOOK_DATA>())).uiLo as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDDEML_MSG_HOOK_DATA),
            "::",
            stringify!(uiLo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDDEML_MSG_HOOK_DATA>())).uiHi as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDDEML_MSG_HOOK_DATA),
            "::",
            stringify!(uiHi)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDDEML_MSG_HOOK_DATA>())).cbData as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDDEML_MSG_HOOK_DATA),
            "::",
            stringify!(cbData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDDEML_MSG_HOOK_DATA>())).Data as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDDEML_MSG_HOOK_DATA),
            "::",
            stringify!(Data)
        )
    );
}
pub type DDEML_MSG_HOOK_DATA = tagDDEML_MSG_HOOK_DATA;
pub type PDDEML_MSG_HOOK_DATA = *mut tagDDEML_MSG_HOOK_DATA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMONMSGSTRUCT {
    pub cb: UINT,
    pub hwndTo: HWND,
    pub dwTime: DWORD,
    pub hTask: HANDLE,
    pub wMsg: UINT,
    pub wParam: WPARAM,
    pub lParam: LPARAM,
    pub dmhd: DDEML_MSG_HOOK_DATA,
}
#[test]
fn bindgen_test_layout_tagMONMSGSTRUCT() {
    assert_eq!(
        ::std::mem::size_of::<tagMONMSGSTRUCT>(),
        112usize,
        concat!("Size of: ", stringify!(tagMONMSGSTRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMONMSGSTRUCT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagMONMSGSTRUCT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONMSGSTRUCT>())).cb as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONMSGSTRUCT),
            "::",
            stringify!(cb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONMSGSTRUCT>())).hwndTo as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONMSGSTRUCT),
            "::",
            stringify!(hwndTo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONMSGSTRUCT>())).dwTime as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONMSGSTRUCT),
            "::",
            stringify!(dwTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONMSGSTRUCT>())).hTask as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONMSGSTRUCT),
            "::",
            stringify!(hTask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONMSGSTRUCT>())).wMsg as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONMSGSTRUCT),
            "::",
            stringify!(wMsg)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONMSGSTRUCT>())).wParam as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONMSGSTRUCT),
            "::",
            stringify!(wParam)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONMSGSTRUCT>())).lParam as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONMSGSTRUCT),
            "::",
            stringify!(lParam)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONMSGSTRUCT>())).dmhd as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONMSGSTRUCT),
            "::",
            stringify!(dmhd)
        )
    );
}
pub type MONMSGSTRUCT = tagMONMSGSTRUCT;
pub type PMONMSGSTRUCT = *mut tagMONMSGSTRUCT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMONCBSTRUCT {
    pub cb: UINT,
    pub dwTime: DWORD,
    pub hTask: HANDLE,
    pub dwRet: DWORD,
    pub wType: UINT,
    pub wFmt: UINT,
    pub hConv: HCONV,
    pub hsz1: HSZ,
    pub hsz2: HSZ,
    pub hData: HDDEDATA,
    pub dwData1: ULONG_PTR,
    pub dwData2: ULONG_PTR,
    pub cc: CONVCONTEXT,
    pub cbData: DWORD,
    pub Data: [DWORD; 8usize],
}
#[test]
fn bindgen_test_layout_tagMONCBSTRUCT() {
    assert_eq!(
        ::std::mem::size_of::<tagMONCBSTRUCT>(),
        152usize,
        concat!("Size of: ", stringify!(tagMONCBSTRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMONCBSTRUCT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagMONCBSTRUCT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONCBSTRUCT>())).cb as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONCBSTRUCT),
            "::",
            stringify!(cb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONCBSTRUCT>())).dwTime as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONCBSTRUCT),
            "::",
            stringify!(dwTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONCBSTRUCT>())).hTask as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONCBSTRUCT),
            "::",
            stringify!(hTask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONCBSTRUCT>())).dwRet as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONCBSTRUCT),
            "::",
            stringify!(dwRet)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONCBSTRUCT>())).wType as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONCBSTRUCT),
            "::",
            stringify!(wType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONCBSTRUCT>())).wFmt as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONCBSTRUCT),
            "::",
            stringify!(wFmt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONCBSTRUCT>())).hConv as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONCBSTRUCT),
            "::",
            stringify!(hConv)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONCBSTRUCT>())).hsz1 as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONCBSTRUCT),
            "::",
            stringify!(hsz1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONCBSTRUCT>())).hsz2 as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONCBSTRUCT),
            "::",
            stringify!(hsz2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONCBSTRUCT>())).hData as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONCBSTRUCT),
            "::",
            stringify!(hData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONCBSTRUCT>())).dwData1 as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONCBSTRUCT),
            "::",
            stringify!(dwData1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONCBSTRUCT>())).dwData2 as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONCBSTRUCT),
            "::",
            stringify!(dwData2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONCBSTRUCT>())).cc as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONCBSTRUCT),
            "::",
            stringify!(cc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONCBSTRUCT>())).cbData as *const _ as usize },
        116usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONCBSTRUCT),
            "::",
            stringify!(cbData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONCBSTRUCT>())).Data as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONCBSTRUCT),
            "::",
            stringify!(Data)
        )
    );
}
pub type MONCBSTRUCT = tagMONCBSTRUCT;
pub type PMONCBSTRUCT = *mut tagMONCBSTRUCT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMONHSZSTRUCTA {
    pub cb: UINT,
    pub fsAction: BOOL,
    pub dwTime: DWORD,
    pub hsz: HSZ,
    pub hTask: HANDLE,
    pub str_: [CHAR; 1usize],
}
#[test]
fn bindgen_test_layout_tagMONHSZSTRUCTA() {
    assert_eq!(
        ::std::mem::size_of::<tagMONHSZSTRUCTA>(),
        40usize,
        concat!("Size of: ", stringify!(tagMONHSZSTRUCTA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMONHSZSTRUCTA>(),
        8usize,
        concat!("Alignment of ", stringify!(tagMONHSZSTRUCTA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONHSZSTRUCTA>())).cb as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONHSZSTRUCTA),
            "::",
            stringify!(cb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONHSZSTRUCTA>())).fsAction as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONHSZSTRUCTA),
            "::",
            stringify!(fsAction)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONHSZSTRUCTA>())).dwTime as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONHSZSTRUCTA),
            "::",
            stringify!(dwTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONHSZSTRUCTA>())).hsz as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONHSZSTRUCTA),
            "::",
            stringify!(hsz)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONHSZSTRUCTA>())).hTask as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONHSZSTRUCTA),
            "::",
            stringify!(hTask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONHSZSTRUCTA>())).str_ as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONHSZSTRUCTA),
            "::",
            stringify!(str_)
        )
    );
}
pub type MONHSZSTRUCTA = tagMONHSZSTRUCTA;
pub type PMONHSZSTRUCTA = *mut tagMONHSZSTRUCTA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMONHSZSTRUCTW {
    pub cb: UINT,
    pub fsAction: BOOL,
    pub dwTime: DWORD,
    pub hsz: HSZ,
    pub hTask: HANDLE,
    pub str_: [WCHAR; 1usize],
}
#[test]
fn bindgen_test_layout_tagMONHSZSTRUCTW() {
    assert_eq!(
        ::std::mem::size_of::<tagMONHSZSTRUCTW>(),
        40usize,
        concat!("Size of: ", stringify!(tagMONHSZSTRUCTW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMONHSZSTRUCTW>(),
        8usize,
        concat!("Alignment of ", stringify!(tagMONHSZSTRUCTW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONHSZSTRUCTW>())).cb as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONHSZSTRUCTW),
            "::",
            stringify!(cb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONHSZSTRUCTW>())).fsAction as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONHSZSTRUCTW),
            "::",
            stringify!(fsAction)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONHSZSTRUCTW>())).dwTime as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONHSZSTRUCTW),
            "::",
            stringify!(dwTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONHSZSTRUCTW>())).hsz as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONHSZSTRUCTW),
            "::",
            stringify!(hsz)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONHSZSTRUCTW>())).hTask as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONHSZSTRUCTW),
            "::",
            stringify!(hTask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONHSZSTRUCTW>())).str_ as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONHSZSTRUCTW),
            "::",
            stringify!(str_)
        )
    );
}
pub type MONHSZSTRUCTW = tagMONHSZSTRUCTW;
pub type PMONHSZSTRUCTW = *mut tagMONHSZSTRUCTW;
pub type MONHSZSTRUCT = MONHSZSTRUCTA;
pub type PMONHSZSTRUCT = PMONHSZSTRUCTA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMONERRSTRUCT {
    pub cb: UINT,
    pub wLastError: UINT,
    pub dwTime: DWORD,
    pub hTask: HANDLE,
}
#[test]
fn bindgen_test_layout_tagMONERRSTRUCT() {
    assert_eq!(
        ::std::mem::size_of::<tagMONERRSTRUCT>(),
        24usize,
        concat!("Size of: ", stringify!(tagMONERRSTRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMONERRSTRUCT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagMONERRSTRUCT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONERRSTRUCT>())).cb as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONERRSTRUCT),
            "::",
            stringify!(cb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONERRSTRUCT>())).wLastError as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONERRSTRUCT),
            "::",
            stringify!(wLastError)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONERRSTRUCT>())).dwTime as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONERRSTRUCT),
            "::",
            stringify!(dwTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONERRSTRUCT>())).hTask as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONERRSTRUCT),
            "::",
            stringify!(hTask)
        )
    );
}
pub type MONERRSTRUCT = tagMONERRSTRUCT;
pub type PMONERRSTRUCT = *mut tagMONERRSTRUCT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMONLINKSTRUCT {
    pub cb: UINT,
    pub dwTime: DWORD,
    pub hTask: HANDLE,
    pub fEstablished: BOOL,
    pub fNoData: BOOL,
    pub hszSvc: HSZ,
    pub hszTopic: HSZ,
    pub hszItem: HSZ,
    pub wFmt: UINT,
    pub fServer: BOOL,
    pub hConvServer: HCONV,
    pub hConvClient: HCONV,
}
#[test]
fn bindgen_test_layout_tagMONLINKSTRUCT() {
    assert_eq!(
        ::std::mem::size_of::<tagMONLINKSTRUCT>(),
        72usize,
        concat!("Size of: ", stringify!(tagMONLINKSTRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMONLINKSTRUCT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagMONLINKSTRUCT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONLINKSTRUCT>())).cb as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONLINKSTRUCT),
            "::",
            stringify!(cb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONLINKSTRUCT>())).dwTime as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONLINKSTRUCT),
            "::",
            stringify!(dwTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONLINKSTRUCT>())).hTask as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONLINKSTRUCT),
            "::",
            stringify!(hTask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONLINKSTRUCT>())).fEstablished as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONLINKSTRUCT),
            "::",
            stringify!(fEstablished)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONLINKSTRUCT>())).fNoData as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONLINKSTRUCT),
            "::",
            stringify!(fNoData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONLINKSTRUCT>())).hszSvc as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONLINKSTRUCT),
            "::",
            stringify!(hszSvc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONLINKSTRUCT>())).hszTopic as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONLINKSTRUCT),
            "::",
            stringify!(hszTopic)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONLINKSTRUCT>())).hszItem as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONLINKSTRUCT),
            "::",
            stringify!(hszItem)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONLINKSTRUCT>())).wFmt as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONLINKSTRUCT),
            "::",
            stringify!(wFmt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONLINKSTRUCT>())).fServer as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONLINKSTRUCT),
            "::",
            stringify!(fServer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONLINKSTRUCT>())).hConvServer as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONLINKSTRUCT),
            "::",
            stringify!(hConvServer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONLINKSTRUCT>())).hConvClient as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONLINKSTRUCT),
            "::",
            stringify!(hConvClient)
        )
    );
}
pub type MONLINKSTRUCT = tagMONLINKSTRUCT;
pub type PMONLINKSTRUCT = *mut tagMONLINKSTRUCT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMONCONVSTRUCT {
    pub cb: UINT,
    pub fConnect: BOOL,
    pub dwTime: DWORD,
    pub hTask: HANDLE,
    pub hszSvc: HSZ,
    pub hszTopic: HSZ,
    pub hConvClient: HCONV,
    pub hConvServer: HCONV,
}
#[test]
fn bindgen_test_layout_tagMONCONVSTRUCT() {
    assert_eq!(
        ::std::mem::size_of::<tagMONCONVSTRUCT>(),
        56usize,
        concat!("Size of: ", stringify!(tagMONCONVSTRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMONCONVSTRUCT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagMONCONVSTRUCT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONCONVSTRUCT>())).cb as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONCONVSTRUCT),
            "::",
            stringify!(cb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONCONVSTRUCT>())).fConnect as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONCONVSTRUCT),
            "::",
            stringify!(fConnect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONCONVSTRUCT>())).dwTime as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONCONVSTRUCT),
            "::",
            stringify!(dwTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONCONVSTRUCT>())).hTask as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONCONVSTRUCT),
            "::",
            stringify!(hTask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONCONVSTRUCT>())).hszSvc as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONCONVSTRUCT),
            "::",
            stringify!(hszSvc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONCONVSTRUCT>())).hszTopic as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONCONVSTRUCT),
            "::",
            stringify!(hszTopic)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONCONVSTRUCT>())).hConvClient as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONCONVSTRUCT),
            "::",
            stringify!(hConvClient)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMONCONVSTRUCT>())).hConvServer as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMONCONVSTRUCT),
            "::",
            stringify!(hConvServer)
        )
    );
}
pub type MONCONVSTRUCT = tagMONCONVSTRUCT;
pub type PMONCONVSTRUCT = *mut tagMONCONVSTRUCT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCRGB {
    pub bRed: BYTE,
    pub bGreen: BYTE,
    pub bBlue: BYTE,
    pub bExtra: BYTE,
}
#[test]
fn bindgen_test_layout_tagCRGB() {
    assert_eq!(
        ::std::mem::size_of::<tagCRGB>(),
        4usize,
        concat!("Size of: ", stringify!(tagCRGB))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCRGB>(),
        1usize,
        concat!("Alignment of ", stringify!(tagCRGB))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCRGB>())).bRed as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCRGB),
            "::",
            stringify!(bRed)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCRGB>())).bGreen as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCRGB),
            "::",
            stringify!(bGreen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCRGB>())).bBlue as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCRGB),
            "::",
            stringify!(bBlue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCRGB>())).bExtra as *const _ as usize },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCRGB),
            "::",
            stringify!(bExtra)
        )
    );
}
pub type CRGB = tagCRGB;
extern "C" {
    pub fn LZStart() -> INT;
}
extern "C" {
    pub fn LZDone();
}
extern "C" {
    pub fn CopyLZFile(hfSource: INT, hfDest: INT) -> LONG;
}
extern "C" {
    pub fn LZCopy(hfSource: INT, hfDest: INT) -> LONG;
}
extern "C" {
    pub fn LZInit(hfSource: INT) -> INT;
}
extern "C" {
    pub fn GetExpandedNameA(lpszSource: LPSTR, lpszBuffer: LPSTR) -> INT;
}
extern "C" {
    pub fn GetExpandedNameW(lpszSource: LPWSTR, lpszBuffer: LPWSTR) -> INT;
}
extern "C" {
    pub fn LZOpenFileA(lpFileName: LPSTR, lpReOpenBuf: LPOFSTRUCT, wStyle: WORD) -> INT;
}
extern "C" {
    pub fn LZOpenFileW(lpFileName: LPWSTR, lpReOpenBuf: LPOFSTRUCT, wStyle: WORD) -> INT;
}
extern "C" {
    pub fn LZSeek(hFile: INT, lOffset: LONG, iOrigin: INT) -> LONG;
}
extern "C" {
    pub fn LZRead(hFile: INT, lpBuffer: *mut CHAR, cbRead: INT) -> INT;
}
extern "C" {
    pub fn LZClose(hFile: INT);
}
pub type MMVERSION = UINT;
pub type MMRESULT = UINT;
pub type LPUINT = *mut UINT;
#[repr(C, packed)]
#[derive(Copy, Clone)]
pub struct mmtime_tag {
    pub wType: UINT,
    pub u: mmtime_tag__bindgen_ty_1,
}
#[repr(C, packed)]
#[derive(Copy, Clone)]
pub union mmtime_tag__bindgen_ty_1 {
    pub ms: DWORD,
    pub sample: DWORD,
    pub cb: DWORD,
    pub ticks: DWORD,
    pub smpte: mmtime_tag__bindgen_ty_1__bindgen_ty_1,
    pub midi: mmtime_tag__bindgen_ty_1__bindgen_ty_2,
    _bindgen_union_align: [u8; 8usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mmtime_tag__bindgen_ty_1__bindgen_ty_1 {
    pub hour: BYTE,
    pub min: BYTE,
    pub sec: BYTE,
    pub frame: BYTE,
    pub fps: BYTE,
    pub dummy: BYTE,
    pub pad: [BYTE; 2usize],
}
#[test]
fn bindgen_test_layout_mmtime_tag__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<mmtime_tag__bindgen_ty_1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(mmtime_tag__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<mmtime_tag__bindgen_ty_1__bindgen_ty_1>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(mmtime_tag__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<mmtime_tag__bindgen_ty_1__bindgen_ty_1>())).hour as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(mmtime_tag__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(hour)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<mmtime_tag__bindgen_ty_1__bindgen_ty_1>())).min as *const _
                as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(mmtime_tag__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(min)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<mmtime_tag__bindgen_ty_1__bindgen_ty_1>())).sec as *const _
                as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(mmtime_tag__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(sec)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<mmtime_tag__bindgen_ty_1__bindgen_ty_1>())).frame as *const _
                as usize
        },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(mmtime_tag__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(frame)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<mmtime_tag__bindgen_ty_1__bindgen_ty_1>())).fps as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(mmtime_tag__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(fps)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<mmtime_tag__bindgen_ty_1__bindgen_ty_1>())).dummy as *const _
                as usize
        },
        5usize,
        concat!(
            "Offset of field: ",
            stringify!(mmtime_tag__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(dummy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<mmtime_tag__bindgen_ty_1__bindgen_ty_1>())).pad as *const _
                as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(mmtime_tag__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pad)
        )
    );
}
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct mmtime_tag__bindgen_ty_1__bindgen_ty_2 {
    pub songptrpos: DWORD,
}
#[test]
fn bindgen_test_layout_mmtime_tag__bindgen_ty_1__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<mmtime_tag__bindgen_ty_1__bindgen_ty_2>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(mmtime_tag__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<mmtime_tag__bindgen_ty_1__bindgen_ty_2>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(mmtime_tag__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<mmtime_tag__bindgen_ty_1__bindgen_ty_2>())).songptrpos
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(mmtime_tag__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(songptrpos)
        )
    );
}
#[test]
fn bindgen_test_layout_mmtime_tag__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<mmtime_tag__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(mmtime_tag__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<mmtime_tag__bindgen_ty_1>(),
        1usize,
        concat!("Alignment of ", stringify!(mmtime_tag__bindgen_ty_1))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<mmtime_tag__bindgen_ty_1>())).ms as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(mmtime_tag__bindgen_ty_1),
            "::",
            stringify!(ms)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<mmtime_tag__bindgen_ty_1>())).sample as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(mmtime_tag__bindgen_ty_1),
            "::",
            stringify!(sample)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<mmtime_tag__bindgen_ty_1>())).cb as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(mmtime_tag__bindgen_ty_1),
            "::",
            stringify!(cb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<mmtime_tag__bindgen_ty_1>())).ticks as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(mmtime_tag__bindgen_ty_1),
            "::",
            stringify!(ticks)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<mmtime_tag__bindgen_ty_1>())).smpte as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(mmtime_tag__bindgen_ty_1),
            "::",
            stringify!(smpte)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<mmtime_tag__bindgen_ty_1>())).midi as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(mmtime_tag__bindgen_ty_1),
            "::",
            stringify!(midi)
        )
    );
}
#[test]
fn bindgen_test_layout_mmtime_tag() {
    assert_eq!(
        ::std::mem::size_of::<mmtime_tag>(),
        12usize,
        concat!("Size of: ", stringify!(mmtime_tag))
    );
    assert_eq!(
        ::std::mem::align_of::<mmtime_tag>(),
        1usize,
        concat!("Alignment of ", stringify!(mmtime_tag))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<mmtime_tag>())).wType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(mmtime_tag),
            "::",
            stringify!(wType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<mmtime_tag>())).u as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(mmtime_tag),
            "::",
            stringify!(u)
        )
    );
}
pub type MMTIME = mmtime_tag;
pub type PMMTIME = *mut mmtime_tag;
pub type NPMMTIME = *mut mmtime_tag;
pub type LPMMTIME = *mut mmtime_tag;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct HDRVR__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HDRVR__() {
    assert_eq!(
        ::std::mem::size_of::<HDRVR__>(),
        4usize,
        concat!("Size of: ", stringify!(HDRVR__))
    );
    assert_eq!(
        ::std::mem::align_of::<HDRVR__>(),
        1usize,
        concat!("Alignment of ", stringify!(HDRVR__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HDRVR__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HDRVR__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HDRVR = *mut HDRVR__;
pub type LPDRVCALLBACK = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: HDRVR,
        arg2: UINT,
        arg3: DWORD_PTR,
        arg4: DWORD_PTR,
        arg5: DWORD_PTR,
    ),
>;
pub type PDRVCALLBACK = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: HDRVR,
        arg2: UINT,
        arg3: DWORD_PTR,
        arg4: DWORD_PTR,
        arg5: DWORD_PTR,
    ),
>;
pub type MCIERROR = DWORD;
pub type MCIDEVICEID = UINT;
pub type YIELDPROC =
    ::std::option::Option<unsafe extern "C" fn(mciId: MCIDEVICEID, dwYieldData: DWORD) -> UINT>;
extern "C" {
    pub fn mciSendCommandA(
        mciId: MCIDEVICEID,
        uMsg: UINT,
        dwParam1: DWORD_PTR,
        dwParam2: DWORD_PTR,
    ) -> MCIERROR;
}
extern "C" {
    pub fn mciSendCommandW(
        mciId: MCIDEVICEID,
        uMsg: UINT,
        dwParam1: DWORD_PTR,
        dwParam2: DWORD_PTR,
    ) -> MCIERROR;
}
extern "C" {
    pub fn mciSendStringA(
        lpstrCommand: LPCSTR,
        lpstrReturnString: LPSTR,
        uReturnLength: UINT,
        hwndCallback: HWND,
    ) -> MCIERROR;
}
extern "C" {
    pub fn mciSendStringW(
        lpstrCommand: LPCWSTR,
        lpstrReturnString: LPWSTR,
        uReturnLength: UINT,
        hwndCallback: HWND,
    ) -> MCIERROR;
}
extern "C" {
    pub fn mciGetDeviceIDA(pszDevice: LPCSTR) -> MCIDEVICEID;
}
extern "C" {
    pub fn mciGetDeviceIDW(pszDevice: LPCWSTR) -> MCIDEVICEID;
}
extern "C" {
    pub fn mciGetDeviceIDFromElementIDA(dwElementID: DWORD, lpstrType: LPCSTR) -> MCIDEVICEID;
}
extern "C" {
    pub fn mciGetDeviceIDFromElementIDW(dwElementID: DWORD, lpstrType: LPCWSTR) -> MCIDEVICEID;
}
extern "C" {
    pub fn mciGetErrorStringA(mcierr: MCIERROR, pszText: LPSTR, cchText: UINT) -> BOOL;
}
extern "C" {
    pub fn mciGetErrorStringW(mcierr: MCIERROR, pszText: LPWSTR, cchText: UINT) -> BOOL;
}
extern "C" {
    pub fn mciSetYieldProc(mciId: MCIDEVICEID, fpYieldProc: YIELDPROC, dwYieldData: DWORD) -> BOOL;
}
extern "C" {
    pub fn mciGetCreatorTask(mciId: MCIDEVICEID) -> HTASK;
}
extern "C" {
    pub fn mciGetYieldProc(mciId: MCIDEVICEID, pdwYieldData: LPDWORD) -> YIELDPROC;
}
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_GENERIC_PARMS {
    pub dwCallback: DWORD_PTR,
}
#[test]
fn bindgen_test_layout_tagMCI_GENERIC_PARMS() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_GENERIC_PARMS>(),
        8usize,
        concat!("Size of: ", stringify!(tagMCI_GENERIC_PARMS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_GENERIC_PARMS>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_GENERIC_PARMS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_GENERIC_PARMS>())).dwCallback as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_GENERIC_PARMS),
            "::",
            stringify!(dwCallback)
        )
    );
}
pub type MCI_GENERIC_PARMS = tagMCI_GENERIC_PARMS;
pub type PMCI_GENERIC_PARMS = *mut tagMCI_GENERIC_PARMS;
pub type LPMCI_GENERIC_PARMS = *mut tagMCI_GENERIC_PARMS;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_OPEN_PARMSA {
    pub dwCallback: DWORD_PTR,
    pub wDeviceID: MCIDEVICEID,
    pub lpstrDeviceType: LPCSTR,
    pub lpstrElementName: LPCSTR,
    pub lpstrAlias: LPCSTR,
}
#[test]
fn bindgen_test_layout_tagMCI_OPEN_PARMSA() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_OPEN_PARMSA>(),
        36usize,
        concat!("Size of: ", stringify!(tagMCI_OPEN_PARMSA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_OPEN_PARMSA>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_OPEN_PARMSA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_OPEN_PARMSA>())).dwCallback as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OPEN_PARMSA),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_OPEN_PARMSA>())).wDeviceID as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OPEN_PARMSA),
            "::",
            stringify!(wDeviceID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_OPEN_PARMSA>())).lpstrDeviceType as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OPEN_PARMSA),
            "::",
            stringify!(lpstrDeviceType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_OPEN_PARMSA>())).lpstrElementName as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OPEN_PARMSA),
            "::",
            stringify!(lpstrElementName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_OPEN_PARMSA>())).lpstrAlias as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OPEN_PARMSA),
            "::",
            stringify!(lpstrAlias)
        )
    );
}
pub type MCI_OPEN_PARMSA = tagMCI_OPEN_PARMSA;
pub type PMCI_OPEN_PARMSA = *mut tagMCI_OPEN_PARMSA;
pub type LPMCI_OPEN_PARMSA = *mut tagMCI_OPEN_PARMSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_OPEN_PARMSW {
    pub dwCallback: DWORD_PTR,
    pub wDeviceID: MCIDEVICEID,
    pub lpstrDeviceType: LPCWSTR,
    pub lpstrElementName: LPCWSTR,
    pub lpstrAlias: LPCWSTR,
}
#[test]
fn bindgen_test_layout_tagMCI_OPEN_PARMSW() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_OPEN_PARMSW>(),
        36usize,
        concat!("Size of: ", stringify!(tagMCI_OPEN_PARMSW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_OPEN_PARMSW>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_OPEN_PARMSW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_OPEN_PARMSW>())).dwCallback as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OPEN_PARMSW),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_OPEN_PARMSW>())).wDeviceID as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OPEN_PARMSW),
            "::",
            stringify!(wDeviceID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_OPEN_PARMSW>())).lpstrDeviceType as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OPEN_PARMSW),
            "::",
            stringify!(lpstrDeviceType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_OPEN_PARMSW>())).lpstrElementName as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OPEN_PARMSW),
            "::",
            stringify!(lpstrElementName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_OPEN_PARMSW>())).lpstrAlias as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OPEN_PARMSW),
            "::",
            stringify!(lpstrAlias)
        )
    );
}
pub type MCI_OPEN_PARMSW = tagMCI_OPEN_PARMSW;
pub type PMCI_OPEN_PARMSW = *mut tagMCI_OPEN_PARMSW;
pub type LPMCI_OPEN_PARMSW = *mut tagMCI_OPEN_PARMSW;
pub type MCI_OPEN_PARMS = MCI_OPEN_PARMSA;
pub type PMCI_OPEN_PARMS = PMCI_OPEN_PARMSA;
pub type LPMCI_OPEN_PARMS = LPMCI_OPEN_PARMSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_PLAY_PARMS {
    pub dwCallback: DWORD_PTR,
    pub dwFrom: DWORD,
    pub dwTo: DWORD,
}
#[test]
fn bindgen_test_layout_tagMCI_PLAY_PARMS() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_PLAY_PARMS>(),
        16usize,
        concat!("Size of: ", stringify!(tagMCI_PLAY_PARMS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_PLAY_PARMS>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_PLAY_PARMS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_PLAY_PARMS>())).dwCallback as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_PLAY_PARMS),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_PLAY_PARMS>())).dwFrom as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_PLAY_PARMS),
            "::",
            stringify!(dwFrom)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_PLAY_PARMS>())).dwTo as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_PLAY_PARMS),
            "::",
            stringify!(dwTo)
        )
    );
}
pub type MCI_PLAY_PARMS = tagMCI_PLAY_PARMS;
pub type PMCI_PLAY_PARMS = *mut tagMCI_PLAY_PARMS;
pub type LPMCI_PLAY_PARMS = *mut tagMCI_PLAY_PARMS;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_SEEK_PARMS {
    pub dwCallback: DWORD_PTR,
    pub dwTo: DWORD,
}
#[test]
fn bindgen_test_layout_tagMCI_SEEK_PARMS() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_SEEK_PARMS>(),
        12usize,
        concat!("Size of: ", stringify!(tagMCI_SEEK_PARMS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_SEEK_PARMS>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_SEEK_PARMS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_SEEK_PARMS>())).dwCallback as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_SEEK_PARMS),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_SEEK_PARMS>())).dwTo as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_SEEK_PARMS),
            "::",
            stringify!(dwTo)
        )
    );
}
pub type MCI_SEEK_PARMS = tagMCI_SEEK_PARMS;
pub type PMCI_SEEK_PARMS = *mut tagMCI_SEEK_PARMS;
pub type LPMCI_SEEK_PARMS = *mut tagMCI_SEEK_PARMS;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_STATUS_PARMS {
    pub dwCallback: DWORD_PTR,
    pub dwReturn: DWORD_PTR,
    pub dwItem: DWORD,
    pub dwTrack: DWORD,
}
#[test]
fn bindgen_test_layout_tagMCI_STATUS_PARMS() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_STATUS_PARMS>(),
        24usize,
        concat!("Size of: ", stringify!(tagMCI_STATUS_PARMS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_STATUS_PARMS>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_STATUS_PARMS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_STATUS_PARMS>())).dwCallback as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_STATUS_PARMS),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_STATUS_PARMS>())).dwReturn as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_STATUS_PARMS),
            "::",
            stringify!(dwReturn)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_STATUS_PARMS>())).dwItem as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_STATUS_PARMS),
            "::",
            stringify!(dwItem)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_STATUS_PARMS>())).dwTrack as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_STATUS_PARMS),
            "::",
            stringify!(dwTrack)
        )
    );
}
pub type MCI_STATUS_PARMS = tagMCI_STATUS_PARMS;
pub type PMCI_STATUS_PARMS = *mut tagMCI_STATUS_PARMS;
pub type LPMCI_STATUS_PARMS = *mut tagMCI_STATUS_PARMS;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_INFO_PARMSA {
    pub dwCallback: DWORD_PTR,
    pub lpstrReturn: LPSTR,
    pub dwRetSize: DWORD,
}
#[test]
fn bindgen_test_layout_tagMCI_INFO_PARMSA() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_INFO_PARMSA>(),
        20usize,
        concat!("Size of: ", stringify!(tagMCI_INFO_PARMSA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_INFO_PARMSA>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_INFO_PARMSA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_INFO_PARMSA>())).dwCallback as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_INFO_PARMSA),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_INFO_PARMSA>())).lpstrReturn as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_INFO_PARMSA),
            "::",
            stringify!(lpstrReturn)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_INFO_PARMSA>())).dwRetSize as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_INFO_PARMSA),
            "::",
            stringify!(dwRetSize)
        )
    );
}
pub type MCI_INFO_PARMSA = tagMCI_INFO_PARMSA;
pub type LPMCI_INFO_PARMSA = *mut tagMCI_INFO_PARMSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_INFO_PARMSW {
    pub dwCallback: DWORD_PTR,
    pub lpstrReturn: LPWSTR,
    pub dwRetSize: DWORD,
}
#[test]
fn bindgen_test_layout_tagMCI_INFO_PARMSW() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_INFO_PARMSW>(),
        20usize,
        concat!("Size of: ", stringify!(tagMCI_INFO_PARMSW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_INFO_PARMSW>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_INFO_PARMSW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_INFO_PARMSW>())).dwCallback as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_INFO_PARMSW),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_INFO_PARMSW>())).lpstrReturn as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_INFO_PARMSW),
            "::",
            stringify!(lpstrReturn)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_INFO_PARMSW>())).dwRetSize as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_INFO_PARMSW),
            "::",
            stringify!(dwRetSize)
        )
    );
}
pub type MCI_INFO_PARMSW = tagMCI_INFO_PARMSW;
pub type LPMCI_INFO_PARMSW = *mut tagMCI_INFO_PARMSW;
pub type MCI_INFO_PARMS = MCI_INFO_PARMSA;
pub type LPMCI_INFO_PARMS = LPMCI_INFO_PARMSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_GETDEVCAPS_PARMS {
    pub dwCallback: DWORD_PTR,
    pub dwReturn: DWORD,
    pub dwItem: DWORD,
}
#[test]
fn bindgen_test_layout_tagMCI_GETDEVCAPS_PARMS() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_GETDEVCAPS_PARMS>(),
        16usize,
        concat!("Size of: ", stringify!(tagMCI_GETDEVCAPS_PARMS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_GETDEVCAPS_PARMS>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_GETDEVCAPS_PARMS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_GETDEVCAPS_PARMS>())).dwCallback as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_GETDEVCAPS_PARMS),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_GETDEVCAPS_PARMS>())).dwReturn as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_GETDEVCAPS_PARMS),
            "::",
            stringify!(dwReturn)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_GETDEVCAPS_PARMS>())).dwItem as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_GETDEVCAPS_PARMS),
            "::",
            stringify!(dwItem)
        )
    );
}
pub type MCI_GETDEVCAPS_PARMS = tagMCI_GETDEVCAPS_PARMS;
pub type PMCI_GETDEVCAPS_PARMS = *mut tagMCI_GETDEVCAPS_PARMS;
pub type LPMCI_GETDEVCAPS_PARMS = *mut tagMCI_GETDEVCAPS_PARMS;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_SYSINFO_PARMSA {
    pub dwCallback: DWORD_PTR,
    pub lpstrReturn: LPSTR,
    pub dwRetSize: DWORD,
    pub dwNumber: DWORD,
    pub wDeviceType: UINT,
}
#[test]
fn bindgen_test_layout_tagMCI_SYSINFO_PARMSA() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_SYSINFO_PARMSA>(),
        28usize,
        concat!("Size of: ", stringify!(tagMCI_SYSINFO_PARMSA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_SYSINFO_PARMSA>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_SYSINFO_PARMSA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_SYSINFO_PARMSA>())).dwCallback as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_SYSINFO_PARMSA),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_SYSINFO_PARMSA>())).lpstrReturn as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_SYSINFO_PARMSA),
            "::",
            stringify!(lpstrReturn)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_SYSINFO_PARMSA>())).dwRetSize as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_SYSINFO_PARMSA),
            "::",
            stringify!(dwRetSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_SYSINFO_PARMSA>())).dwNumber as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_SYSINFO_PARMSA),
            "::",
            stringify!(dwNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_SYSINFO_PARMSA>())).wDeviceType as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_SYSINFO_PARMSA),
            "::",
            stringify!(wDeviceType)
        )
    );
}
pub type MCI_SYSINFO_PARMSA = tagMCI_SYSINFO_PARMSA;
pub type PMCI_SYSINFO_PARMSA = *mut tagMCI_SYSINFO_PARMSA;
pub type LPMCI_SYSINFO_PARMSA = *mut tagMCI_SYSINFO_PARMSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_SYSINFO_PARMSW {
    pub dwCallback: DWORD_PTR,
    pub lpstrReturn: LPWSTR,
    pub dwRetSize: DWORD,
    pub dwNumber: DWORD,
    pub wDeviceType: UINT,
}
#[test]
fn bindgen_test_layout_tagMCI_SYSINFO_PARMSW() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_SYSINFO_PARMSW>(),
        28usize,
        concat!("Size of: ", stringify!(tagMCI_SYSINFO_PARMSW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_SYSINFO_PARMSW>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_SYSINFO_PARMSW))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_SYSINFO_PARMSW>())).dwCallback as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_SYSINFO_PARMSW),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_SYSINFO_PARMSW>())).lpstrReturn as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_SYSINFO_PARMSW),
            "::",
            stringify!(lpstrReturn)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_SYSINFO_PARMSW>())).dwRetSize as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_SYSINFO_PARMSW),
            "::",
            stringify!(dwRetSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_SYSINFO_PARMSW>())).dwNumber as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_SYSINFO_PARMSW),
            "::",
            stringify!(dwNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_SYSINFO_PARMSW>())).wDeviceType as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_SYSINFO_PARMSW),
            "::",
            stringify!(wDeviceType)
        )
    );
}
pub type MCI_SYSINFO_PARMSW = tagMCI_SYSINFO_PARMSW;
pub type PMCI_SYSINFO_PARMSW = *mut tagMCI_SYSINFO_PARMSW;
pub type LPMCI_SYSINFO_PARMSW = *mut tagMCI_SYSINFO_PARMSW;
pub type MCI_SYSINFO_PARMS = MCI_SYSINFO_PARMSA;
pub type PMCI_SYSINFO_PARMS = PMCI_SYSINFO_PARMSA;
pub type LPMCI_SYSINFO_PARMS = LPMCI_SYSINFO_PARMSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_SET_PARMS {
    pub dwCallback: DWORD_PTR,
    pub dwTimeFormat: DWORD,
    pub dwAudio: DWORD,
}
#[test]
fn bindgen_test_layout_tagMCI_SET_PARMS() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_SET_PARMS>(),
        16usize,
        concat!("Size of: ", stringify!(tagMCI_SET_PARMS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_SET_PARMS>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_SET_PARMS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_SET_PARMS>())).dwCallback as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_SET_PARMS),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_SET_PARMS>())).dwTimeFormat as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_SET_PARMS),
            "::",
            stringify!(dwTimeFormat)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_SET_PARMS>())).dwAudio as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_SET_PARMS),
            "::",
            stringify!(dwAudio)
        )
    );
}
pub type MCI_SET_PARMS = tagMCI_SET_PARMS;
pub type PMCI_SET_PARMS = *mut tagMCI_SET_PARMS;
pub type LPMCI_SET_PARMS = *mut tagMCI_SET_PARMS;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_BREAK_PARMS {
    pub dwCallback: DWORD_PTR,
    pub nVirtKey: ::std::os::raw::c_int,
    pub hwndBreak: HWND,
}
#[test]
fn bindgen_test_layout_tagMCI_BREAK_PARMS() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_BREAK_PARMS>(),
        20usize,
        concat!("Size of: ", stringify!(tagMCI_BREAK_PARMS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_BREAK_PARMS>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_BREAK_PARMS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_BREAK_PARMS>())).dwCallback as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_BREAK_PARMS),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_BREAK_PARMS>())).nVirtKey as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_BREAK_PARMS),
            "::",
            stringify!(nVirtKey)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_BREAK_PARMS>())).hwndBreak as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_BREAK_PARMS),
            "::",
            stringify!(hwndBreak)
        )
    );
}
pub type MCI_BREAK_PARMS = tagMCI_BREAK_PARMS;
pub type PMCI_BREAK_PARMS = *mut tagMCI_BREAK_PARMS;
pub type LPMCI_BREAK_PARMS = *mut tagMCI_BREAK_PARMS;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_SAVE_PARMSA {
    pub dwCallback: DWORD_PTR,
    pub lpfilename: LPCSTR,
}
#[test]
fn bindgen_test_layout_tagMCI_SAVE_PARMSA() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_SAVE_PARMSA>(),
        16usize,
        concat!("Size of: ", stringify!(tagMCI_SAVE_PARMSA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_SAVE_PARMSA>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_SAVE_PARMSA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_SAVE_PARMSA>())).dwCallback as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_SAVE_PARMSA),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_SAVE_PARMSA>())).lpfilename as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_SAVE_PARMSA),
            "::",
            stringify!(lpfilename)
        )
    );
}
pub type MCI_SAVE_PARMSA = tagMCI_SAVE_PARMSA;
pub type PMCI_SAVE_PARMSA = *mut tagMCI_SAVE_PARMSA;
pub type LPMCI_SAVE_PARMSA = *mut tagMCI_SAVE_PARMSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_SAVE_PARMSW {
    pub dwCallback: DWORD_PTR,
    pub lpfilename: LPCWSTR,
}
#[test]
fn bindgen_test_layout_tagMCI_SAVE_PARMSW() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_SAVE_PARMSW>(),
        16usize,
        concat!("Size of: ", stringify!(tagMCI_SAVE_PARMSW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_SAVE_PARMSW>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_SAVE_PARMSW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_SAVE_PARMSW>())).dwCallback as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_SAVE_PARMSW),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_SAVE_PARMSW>())).lpfilename as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_SAVE_PARMSW),
            "::",
            stringify!(lpfilename)
        )
    );
}
pub type MCI_SAVE_PARMSW = tagMCI_SAVE_PARMSW;
pub type PMCI_SAVE_PARMSW = *mut tagMCI_SAVE_PARMSW;
pub type LPMCI_SAVE_PARMSW = *mut tagMCI_SAVE_PARMSW;
pub type MCI_SAVE_PARMS = MCI_SAVE_PARMSA;
pub type PMCI_SAVE_PARMS = PMCI_SAVE_PARMSA;
pub type LPMCI_SAVE_PARMS = LPMCI_SAVE_PARMSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_LOAD_PARMSA {
    pub dwCallback: DWORD_PTR,
    pub lpfilename: LPCSTR,
}
#[test]
fn bindgen_test_layout_tagMCI_LOAD_PARMSA() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_LOAD_PARMSA>(),
        16usize,
        concat!("Size of: ", stringify!(tagMCI_LOAD_PARMSA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_LOAD_PARMSA>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_LOAD_PARMSA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_LOAD_PARMSA>())).dwCallback as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_LOAD_PARMSA),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_LOAD_PARMSA>())).lpfilename as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_LOAD_PARMSA),
            "::",
            stringify!(lpfilename)
        )
    );
}
pub type MCI_LOAD_PARMSA = tagMCI_LOAD_PARMSA;
pub type PMCI_LOAD_PARMSA = *mut tagMCI_LOAD_PARMSA;
pub type LPMCI_LOAD_PARMSA = *mut tagMCI_LOAD_PARMSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_LOAD_PARMSW {
    pub dwCallback: DWORD_PTR,
    pub lpfilename: LPCWSTR,
}
#[test]
fn bindgen_test_layout_tagMCI_LOAD_PARMSW() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_LOAD_PARMSW>(),
        16usize,
        concat!("Size of: ", stringify!(tagMCI_LOAD_PARMSW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_LOAD_PARMSW>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_LOAD_PARMSW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_LOAD_PARMSW>())).dwCallback as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_LOAD_PARMSW),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_LOAD_PARMSW>())).lpfilename as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_LOAD_PARMSW),
            "::",
            stringify!(lpfilename)
        )
    );
}
pub type MCI_LOAD_PARMSW = tagMCI_LOAD_PARMSW;
pub type PMCI_LOAD_PARMSW = *mut tagMCI_LOAD_PARMSW;
pub type LPMCI_LOAD_PARMSW = *mut tagMCI_LOAD_PARMSW;
pub type MCI_LOAD_PARMS = MCI_LOAD_PARMSA;
pub type PMCI_LOAD_PARMS = PMCI_LOAD_PARMSA;
pub type LPMCI_LOAD_PARMS = LPMCI_LOAD_PARMSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_RECORD_PARMS {
    pub dwCallback: DWORD_PTR,
    pub dwFrom: DWORD,
    pub dwTo: DWORD,
}
#[test]
fn bindgen_test_layout_tagMCI_RECORD_PARMS() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_RECORD_PARMS>(),
        16usize,
        concat!("Size of: ", stringify!(tagMCI_RECORD_PARMS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_RECORD_PARMS>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_RECORD_PARMS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_RECORD_PARMS>())).dwCallback as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_RECORD_PARMS),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_RECORD_PARMS>())).dwFrom as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_RECORD_PARMS),
            "::",
            stringify!(dwFrom)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_RECORD_PARMS>())).dwTo as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_RECORD_PARMS),
            "::",
            stringify!(dwTo)
        )
    );
}
pub type MCI_RECORD_PARMS = tagMCI_RECORD_PARMS;
pub type LPMCI_RECORD_PARMS = *mut tagMCI_RECORD_PARMS;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_VD_PLAY_PARMS {
    pub dwCallback: DWORD_PTR,
    pub dwFrom: DWORD,
    pub dwTo: DWORD,
    pub dwSpeed: DWORD,
}
#[test]
fn bindgen_test_layout_tagMCI_VD_PLAY_PARMS() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_VD_PLAY_PARMS>(),
        20usize,
        concat!("Size of: ", stringify!(tagMCI_VD_PLAY_PARMS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_VD_PLAY_PARMS>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_VD_PLAY_PARMS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_VD_PLAY_PARMS>())).dwCallback as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_VD_PLAY_PARMS),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_VD_PLAY_PARMS>())).dwFrom as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_VD_PLAY_PARMS),
            "::",
            stringify!(dwFrom)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_VD_PLAY_PARMS>())).dwTo as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_VD_PLAY_PARMS),
            "::",
            stringify!(dwTo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_VD_PLAY_PARMS>())).dwSpeed as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_VD_PLAY_PARMS),
            "::",
            stringify!(dwSpeed)
        )
    );
}
pub type MCI_VD_PLAY_PARMS = tagMCI_VD_PLAY_PARMS;
pub type PMCI_VD_PLAY_PARMS = *mut tagMCI_VD_PLAY_PARMS;
pub type LPMCI_VD_PLAY_PARMS = *mut tagMCI_VD_PLAY_PARMS;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_VD_STEP_PARMS {
    pub dwCallback: DWORD_PTR,
    pub dwFrames: DWORD,
}
#[test]
fn bindgen_test_layout_tagMCI_VD_STEP_PARMS() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_VD_STEP_PARMS>(),
        12usize,
        concat!("Size of: ", stringify!(tagMCI_VD_STEP_PARMS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_VD_STEP_PARMS>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_VD_STEP_PARMS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_VD_STEP_PARMS>())).dwCallback as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_VD_STEP_PARMS),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_VD_STEP_PARMS>())).dwFrames as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_VD_STEP_PARMS),
            "::",
            stringify!(dwFrames)
        )
    );
}
pub type MCI_VD_STEP_PARMS = tagMCI_VD_STEP_PARMS;
pub type PMCI_VD_STEP_PARMS = *mut tagMCI_VD_STEP_PARMS;
pub type LPMCI_VD_STEP_PARMS = *mut tagMCI_VD_STEP_PARMS;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_VD_ESCAPE_PARMSA {
    pub dwCallback: DWORD_PTR,
    pub lpstrCommand: LPCSTR,
}
#[test]
fn bindgen_test_layout_tagMCI_VD_ESCAPE_PARMSA() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_VD_ESCAPE_PARMSA>(),
        16usize,
        concat!("Size of: ", stringify!(tagMCI_VD_ESCAPE_PARMSA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_VD_ESCAPE_PARMSA>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_VD_ESCAPE_PARMSA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_VD_ESCAPE_PARMSA>())).dwCallback as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_VD_ESCAPE_PARMSA),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_VD_ESCAPE_PARMSA>())).lpstrCommand as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_VD_ESCAPE_PARMSA),
            "::",
            stringify!(lpstrCommand)
        )
    );
}
pub type MCI_VD_ESCAPE_PARMSA = tagMCI_VD_ESCAPE_PARMSA;
pub type PMCI_VD_ESCAPE_PARMSA = *mut tagMCI_VD_ESCAPE_PARMSA;
pub type LPMCI_VD_ESCAPE_PARMSA = *mut tagMCI_VD_ESCAPE_PARMSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_VD_ESCAPE_PARMSW {
    pub dwCallback: DWORD_PTR,
    pub lpstrCommand: LPCWSTR,
}
#[test]
fn bindgen_test_layout_tagMCI_VD_ESCAPE_PARMSW() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_VD_ESCAPE_PARMSW>(),
        16usize,
        concat!("Size of: ", stringify!(tagMCI_VD_ESCAPE_PARMSW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_VD_ESCAPE_PARMSW>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_VD_ESCAPE_PARMSW))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_VD_ESCAPE_PARMSW>())).dwCallback as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_VD_ESCAPE_PARMSW),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_VD_ESCAPE_PARMSW>())).lpstrCommand as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_VD_ESCAPE_PARMSW),
            "::",
            stringify!(lpstrCommand)
        )
    );
}
pub type MCI_VD_ESCAPE_PARMSW = tagMCI_VD_ESCAPE_PARMSW;
pub type PMCI_VD_ESCAPE_PARMSW = *mut tagMCI_VD_ESCAPE_PARMSW;
pub type LPMCI_VD_ESCAPE_PARMSW = *mut tagMCI_VD_ESCAPE_PARMSW;
pub type MCI_VD_ESCAPE_PARMS = MCI_VD_ESCAPE_PARMSA;
pub type PMCI_VD_ESCAPE_PARMS = PMCI_VD_ESCAPE_PARMSA;
pub type LPMCI_VD_ESCAPE_PARMS = LPMCI_VD_ESCAPE_PARMSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_WAVE_OPEN_PARMSA {
    pub dwCallback: DWORD_PTR,
    pub wDeviceID: MCIDEVICEID,
    pub lpstrDeviceType: LPCSTR,
    pub lpstrElementName: LPCSTR,
    pub lpstrAlias: LPCSTR,
    pub dwBufferSeconds: DWORD,
}
#[test]
fn bindgen_test_layout_tagMCI_WAVE_OPEN_PARMSA() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_WAVE_OPEN_PARMSA>(),
        40usize,
        concat!("Size of: ", stringify!(tagMCI_WAVE_OPEN_PARMSA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_WAVE_OPEN_PARMSA>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_WAVE_OPEN_PARMSA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_WAVE_OPEN_PARMSA>())).dwCallback as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_WAVE_OPEN_PARMSA),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_WAVE_OPEN_PARMSA>())).wDeviceID as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_WAVE_OPEN_PARMSA),
            "::",
            stringify!(wDeviceID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_WAVE_OPEN_PARMSA>())).lpstrDeviceType as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_WAVE_OPEN_PARMSA),
            "::",
            stringify!(lpstrDeviceType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_WAVE_OPEN_PARMSA>())).lpstrElementName as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_WAVE_OPEN_PARMSA),
            "::",
            stringify!(lpstrElementName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_WAVE_OPEN_PARMSA>())).lpstrAlias as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_WAVE_OPEN_PARMSA),
            "::",
            stringify!(lpstrAlias)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_WAVE_OPEN_PARMSA>())).dwBufferSeconds as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_WAVE_OPEN_PARMSA),
            "::",
            stringify!(dwBufferSeconds)
        )
    );
}
pub type MCI_WAVE_OPEN_PARMSA = tagMCI_WAVE_OPEN_PARMSA;
pub type PMCI_WAVE_OPEN_PARMSA = *mut tagMCI_WAVE_OPEN_PARMSA;
pub type LPMCI_WAVE_OPEN_PARMSA = *mut tagMCI_WAVE_OPEN_PARMSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_WAVE_OPEN_PARMSW {
    pub dwCallback: DWORD_PTR,
    pub wDeviceID: MCIDEVICEID,
    pub lpstrDeviceType: LPCWSTR,
    pub lpstrElementName: LPCWSTR,
    pub lpstrAlias: LPCWSTR,
    pub dwBufferSeconds: DWORD,
}
#[test]
fn bindgen_test_layout_tagMCI_WAVE_OPEN_PARMSW() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_WAVE_OPEN_PARMSW>(),
        40usize,
        concat!("Size of: ", stringify!(tagMCI_WAVE_OPEN_PARMSW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_WAVE_OPEN_PARMSW>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_WAVE_OPEN_PARMSW))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_WAVE_OPEN_PARMSW>())).dwCallback as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_WAVE_OPEN_PARMSW),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_WAVE_OPEN_PARMSW>())).wDeviceID as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_WAVE_OPEN_PARMSW),
            "::",
            stringify!(wDeviceID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_WAVE_OPEN_PARMSW>())).lpstrDeviceType as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_WAVE_OPEN_PARMSW),
            "::",
            stringify!(lpstrDeviceType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_WAVE_OPEN_PARMSW>())).lpstrElementName as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_WAVE_OPEN_PARMSW),
            "::",
            stringify!(lpstrElementName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_WAVE_OPEN_PARMSW>())).lpstrAlias as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_WAVE_OPEN_PARMSW),
            "::",
            stringify!(lpstrAlias)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_WAVE_OPEN_PARMSW>())).dwBufferSeconds as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_WAVE_OPEN_PARMSW),
            "::",
            stringify!(dwBufferSeconds)
        )
    );
}
pub type MCI_WAVE_OPEN_PARMSW = tagMCI_WAVE_OPEN_PARMSW;
pub type PMCI_WAVE_OPEN_PARMSW = *mut tagMCI_WAVE_OPEN_PARMSW;
pub type LPMCI_WAVE_OPEN_PARMSW = *mut tagMCI_WAVE_OPEN_PARMSW;
pub type MCI_WAVE_OPEN_PARMS = MCI_WAVE_OPEN_PARMSA;
pub type PMCI_WAVE_OPEN_PARMS = PMCI_WAVE_OPEN_PARMSA;
pub type LPMCI_WAVE_OPEN_PARMS = LPMCI_WAVE_OPEN_PARMSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_WAVE_DELETE_PARMS {
    pub dwCallback: DWORD_PTR,
    pub dwFrom: DWORD,
    pub dwTo: DWORD,
}
#[test]
fn bindgen_test_layout_tagMCI_WAVE_DELETE_PARMS() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_WAVE_DELETE_PARMS>(),
        16usize,
        concat!("Size of: ", stringify!(tagMCI_WAVE_DELETE_PARMS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_WAVE_DELETE_PARMS>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_WAVE_DELETE_PARMS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_WAVE_DELETE_PARMS>())).dwCallback as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_WAVE_DELETE_PARMS),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_WAVE_DELETE_PARMS>())).dwFrom as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_WAVE_DELETE_PARMS),
            "::",
            stringify!(dwFrom)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_WAVE_DELETE_PARMS>())).dwTo as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_WAVE_DELETE_PARMS),
            "::",
            stringify!(dwTo)
        )
    );
}
pub type MCI_WAVE_DELETE_PARMS = tagMCI_WAVE_DELETE_PARMS;
pub type PMCI_WAVE_DELETE_PARMS = *mut tagMCI_WAVE_DELETE_PARMS;
pub type LPMCI_WAVE_DELETE_PARMS = *mut tagMCI_WAVE_DELETE_PARMS;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_WAVE_SET_PARMS {
    pub dwCallback: DWORD_PTR,
    pub dwTimeFormat: DWORD,
    pub dwAudio: DWORD,
    pub wInput: UINT,
    pub wOutput: UINT,
    pub wFormatTag: WORD,
    pub wReserved2: WORD,
    pub nChannels: WORD,
    pub wReserved3: WORD,
    pub nSamplesPerSec: DWORD,
    pub nAvgBytesPerSec: DWORD,
    pub nBlockAlign: WORD,
    pub wReserved4: WORD,
    pub wBitsPerSample: WORD,
    pub wReserved5: WORD,
}
#[test]
fn bindgen_test_layout_tagMCI_WAVE_SET_PARMS() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_WAVE_SET_PARMS>(),
        48usize,
        concat!("Size of: ", stringify!(tagMCI_WAVE_SET_PARMS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_WAVE_SET_PARMS>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_WAVE_SET_PARMS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_WAVE_SET_PARMS>())).dwCallback as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_WAVE_SET_PARMS),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_WAVE_SET_PARMS>())).dwTimeFormat as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_WAVE_SET_PARMS),
            "::",
            stringify!(dwTimeFormat)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_WAVE_SET_PARMS>())).dwAudio as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_WAVE_SET_PARMS),
            "::",
            stringify!(dwAudio)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_WAVE_SET_PARMS>())).wInput as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_WAVE_SET_PARMS),
            "::",
            stringify!(wInput)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_WAVE_SET_PARMS>())).wOutput as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_WAVE_SET_PARMS),
            "::",
            stringify!(wOutput)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_WAVE_SET_PARMS>())).wFormatTag as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_WAVE_SET_PARMS),
            "::",
            stringify!(wFormatTag)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_WAVE_SET_PARMS>())).wReserved2 as *const _ as usize
        },
        26usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_WAVE_SET_PARMS),
            "::",
            stringify!(wReserved2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_WAVE_SET_PARMS>())).nChannels as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_WAVE_SET_PARMS),
            "::",
            stringify!(nChannels)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_WAVE_SET_PARMS>())).wReserved3 as *const _ as usize
        },
        30usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_WAVE_SET_PARMS),
            "::",
            stringify!(wReserved3)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_WAVE_SET_PARMS>())).nSamplesPerSec as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_WAVE_SET_PARMS),
            "::",
            stringify!(nSamplesPerSec)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_WAVE_SET_PARMS>())).nAvgBytesPerSec as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_WAVE_SET_PARMS),
            "::",
            stringify!(nAvgBytesPerSec)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_WAVE_SET_PARMS>())).nBlockAlign as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_WAVE_SET_PARMS),
            "::",
            stringify!(nBlockAlign)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_WAVE_SET_PARMS>())).wReserved4 as *const _ as usize
        },
        42usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_WAVE_SET_PARMS),
            "::",
            stringify!(wReserved4)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_WAVE_SET_PARMS>())).wBitsPerSample as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_WAVE_SET_PARMS),
            "::",
            stringify!(wBitsPerSample)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_WAVE_SET_PARMS>())).wReserved5 as *const _ as usize
        },
        46usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_WAVE_SET_PARMS),
            "::",
            stringify!(wReserved5)
        )
    );
}
pub type MCI_WAVE_SET_PARMS = tagMCI_WAVE_SET_PARMS;
pub type PMCI_WAVE_SET_PARMS = *mut tagMCI_WAVE_SET_PARMS;
pub type LPMCI_WAVE_SET_PARMS = *mut tagMCI_WAVE_SET_PARMS;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_SEQ_SET_PARMS {
    pub dwCallback: DWORD_PTR,
    pub dwTimeFormat: DWORD,
    pub dwAudio: DWORD,
    pub dwTempo: DWORD,
    pub dwPort: DWORD,
    pub dwSlave: DWORD,
    pub dwMaster: DWORD,
    pub dwOffset: DWORD,
}
#[test]
fn bindgen_test_layout_tagMCI_SEQ_SET_PARMS() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_SEQ_SET_PARMS>(),
        36usize,
        concat!("Size of: ", stringify!(tagMCI_SEQ_SET_PARMS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_SEQ_SET_PARMS>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_SEQ_SET_PARMS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_SEQ_SET_PARMS>())).dwCallback as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_SEQ_SET_PARMS),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_SEQ_SET_PARMS>())).dwTimeFormat as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_SEQ_SET_PARMS),
            "::",
            stringify!(dwTimeFormat)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_SEQ_SET_PARMS>())).dwAudio as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_SEQ_SET_PARMS),
            "::",
            stringify!(dwAudio)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_SEQ_SET_PARMS>())).dwTempo as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_SEQ_SET_PARMS),
            "::",
            stringify!(dwTempo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_SEQ_SET_PARMS>())).dwPort as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_SEQ_SET_PARMS),
            "::",
            stringify!(dwPort)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_SEQ_SET_PARMS>())).dwSlave as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_SEQ_SET_PARMS),
            "::",
            stringify!(dwSlave)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_SEQ_SET_PARMS>())).dwMaster as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_SEQ_SET_PARMS),
            "::",
            stringify!(dwMaster)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_SEQ_SET_PARMS>())).dwOffset as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_SEQ_SET_PARMS),
            "::",
            stringify!(dwOffset)
        )
    );
}
pub type MCI_SEQ_SET_PARMS = tagMCI_SEQ_SET_PARMS;
pub type PMCI_SEQ_SET_PARMS = *mut tagMCI_SEQ_SET_PARMS;
pub type LPMCI_SEQ_SET_PARMS = *mut tagMCI_SEQ_SET_PARMS;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_ANIM_OPEN_PARMSA {
    pub dwCallback: DWORD_PTR,
    pub wDeviceID: MCIDEVICEID,
    pub lpstrDeviceType: LPCSTR,
    pub lpstrElementName: LPCSTR,
    pub lpstrAlias: LPCSTR,
    pub dwStyle: DWORD,
    pub hWndParent: HWND,
}
#[test]
fn bindgen_test_layout_tagMCI_ANIM_OPEN_PARMSA() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_ANIM_OPEN_PARMSA>(),
        48usize,
        concat!("Size of: ", stringify!(tagMCI_ANIM_OPEN_PARMSA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_ANIM_OPEN_PARMSA>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_ANIM_OPEN_PARMSA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_ANIM_OPEN_PARMSA>())).dwCallback as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_OPEN_PARMSA),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_ANIM_OPEN_PARMSA>())).wDeviceID as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_OPEN_PARMSA),
            "::",
            stringify!(wDeviceID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_ANIM_OPEN_PARMSA>())).lpstrDeviceType as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_OPEN_PARMSA),
            "::",
            stringify!(lpstrDeviceType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_ANIM_OPEN_PARMSA>())).lpstrElementName as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_OPEN_PARMSA),
            "::",
            stringify!(lpstrElementName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_ANIM_OPEN_PARMSA>())).lpstrAlias as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_OPEN_PARMSA),
            "::",
            stringify!(lpstrAlias)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_ANIM_OPEN_PARMSA>())).dwStyle as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_OPEN_PARMSA),
            "::",
            stringify!(dwStyle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_ANIM_OPEN_PARMSA>())).hWndParent as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_OPEN_PARMSA),
            "::",
            stringify!(hWndParent)
        )
    );
}
pub type MCI_ANIM_OPEN_PARMSA = tagMCI_ANIM_OPEN_PARMSA;
pub type PMCI_ANIM_OPEN_PARMSA = *mut tagMCI_ANIM_OPEN_PARMSA;
pub type LPMCI_ANIM_OPEN_PARMSA = *mut tagMCI_ANIM_OPEN_PARMSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_ANIM_OPEN_PARMSW {
    pub dwCallback: DWORD_PTR,
    pub wDeviceID: MCIDEVICEID,
    pub lpstrDeviceType: LPCWSTR,
    pub lpstrElementName: LPCWSTR,
    pub lpstrAlias: LPCWSTR,
    pub dwStyle: DWORD,
    pub hWndParent: HWND,
}
#[test]
fn bindgen_test_layout_tagMCI_ANIM_OPEN_PARMSW() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_ANIM_OPEN_PARMSW>(),
        48usize,
        concat!("Size of: ", stringify!(tagMCI_ANIM_OPEN_PARMSW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_ANIM_OPEN_PARMSW>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_ANIM_OPEN_PARMSW))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_ANIM_OPEN_PARMSW>())).dwCallback as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_OPEN_PARMSW),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_ANIM_OPEN_PARMSW>())).wDeviceID as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_OPEN_PARMSW),
            "::",
            stringify!(wDeviceID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_ANIM_OPEN_PARMSW>())).lpstrDeviceType as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_OPEN_PARMSW),
            "::",
            stringify!(lpstrDeviceType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_ANIM_OPEN_PARMSW>())).lpstrElementName as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_OPEN_PARMSW),
            "::",
            stringify!(lpstrElementName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_ANIM_OPEN_PARMSW>())).lpstrAlias as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_OPEN_PARMSW),
            "::",
            stringify!(lpstrAlias)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_ANIM_OPEN_PARMSW>())).dwStyle as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_OPEN_PARMSW),
            "::",
            stringify!(dwStyle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_ANIM_OPEN_PARMSW>())).hWndParent as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_OPEN_PARMSW),
            "::",
            stringify!(hWndParent)
        )
    );
}
pub type MCI_ANIM_OPEN_PARMSW = tagMCI_ANIM_OPEN_PARMSW;
pub type PMCI_ANIM_OPEN_PARMSW = *mut tagMCI_ANIM_OPEN_PARMSW;
pub type LPMCI_ANIM_OPEN_PARMSW = *mut tagMCI_ANIM_OPEN_PARMSW;
pub type MCI_ANIM_OPEN_PARMS = MCI_ANIM_OPEN_PARMSA;
pub type PMCI_ANIM_OPEN_PARMS = PMCI_ANIM_OPEN_PARMSA;
pub type LPMCI_ANIM_OPEN_PARMS = LPMCI_ANIM_OPEN_PARMSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_ANIM_PLAY_PARMS {
    pub dwCallback: DWORD_PTR,
    pub dwFrom: DWORD,
    pub dwTo: DWORD,
    pub dwSpeed: DWORD,
}
#[test]
fn bindgen_test_layout_tagMCI_ANIM_PLAY_PARMS() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_ANIM_PLAY_PARMS>(),
        20usize,
        concat!("Size of: ", stringify!(tagMCI_ANIM_PLAY_PARMS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_ANIM_PLAY_PARMS>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_ANIM_PLAY_PARMS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_ANIM_PLAY_PARMS>())).dwCallback as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_PLAY_PARMS),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_ANIM_PLAY_PARMS>())).dwFrom as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_PLAY_PARMS),
            "::",
            stringify!(dwFrom)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_ANIM_PLAY_PARMS>())).dwTo as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_PLAY_PARMS),
            "::",
            stringify!(dwTo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_ANIM_PLAY_PARMS>())).dwSpeed as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_PLAY_PARMS),
            "::",
            stringify!(dwSpeed)
        )
    );
}
pub type MCI_ANIM_PLAY_PARMS = tagMCI_ANIM_PLAY_PARMS;
pub type PMCI_ANIM_PLAY_PARMS = *mut tagMCI_ANIM_PLAY_PARMS;
pub type LPMCI_ANIM_PLAY_PARMS = *mut tagMCI_ANIM_PLAY_PARMS;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_ANIM_STEP_PARMS {
    pub dwCallback: DWORD_PTR,
    pub dwFrames: DWORD,
}
#[test]
fn bindgen_test_layout_tagMCI_ANIM_STEP_PARMS() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_ANIM_STEP_PARMS>(),
        12usize,
        concat!("Size of: ", stringify!(tagMCI_ANIM_STEP_PARMS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_ANIM_STEP_PARMS>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_ANIM_STEP_PARMS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_ANIM_STEP_PARMS>())).dwCallback as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_STEP_PARMS),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_ANIM_STEP_PARMS>())).dwFrames as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_STEP_PARMS),
            "::",
            stringify!(dwFrames)
        )
    );
}
pub type MCI_ANIM_STEP_PARMS = tagMCI_ANIM_STEP_PARMS;
pub type PMCI_ANIM_STEP_PARMS = *mut tagMCI_ANIM_STEP_PARMS;
pub type LPMCI_ANIM_STEP_PARMS = *mut tagMCI_ANIM_STEP_PARMS;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_ANIM_WINDOW_PARMSA {
    pub dwCallback: DWORD_PTR,
    pub hWnd: HWND,
    pub nCmdShow: UINT,
    pub lpstrText: LPCSTR,
}
#[test]
fn bindgen_test_layout_tagMCI_ANIM_WINDOW_PARMSA() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_ANIM_WINDOW_PARMSA>(),
        28usize,
        concat!("Size of: ", stringify!(tagMCI_ANIM_WINDOW_PARMSA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_ANIM_WINDOW_PARMSA>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_ANIM_WINDOW_PARMSA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_ANIM_WINDOW_PARMSA>())).dwCallback as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_WINDOW_PARMSA),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_ANIM_WINDOW_PARMSA>())).hWnd as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_WINDOW_PARMSA),
            "::",
            stringify!(hWnd)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_ANIM_WINDOW_PARMSA>())).nCmdShow as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_WINDOW_PARMSA),
            "::",
            stringify!(nCmdShow)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_ANIM_WINDOW_PARMSA>())).lpstrText as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_WINDOW_PARMSA),
            "::",
            stringify!(lpstrText)
        )
    );
}
pub type MCI_ANIM_WINDOW_PARMSA = tagMCI_ANIM_WINDOW_PARMSA;
pub type PMCI_ANIM_WINDOW_PARMSA = *mut tagMCI_ANIM_WINDOW_PARMSA;
pub type LPMCI_ANIM_WINDOW_PARMSA = *mut tagMCI_ANIM_WINDOW_PARMSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_ANIM_WINDOW_PARMSW {
    pub dwCallback: DWORD_PTR,
    pub hWnd: HWND,
    pub nCmdShow: UINT,
    pub lpstrText: LPCWSTR,
}
#[test]
fn bindgen_test_layout_tagMCI_ANIM_WINDOW_PARMSW() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_ANIM_WINDOW_PARMSW>(),
        28usize,
        concat!("Size of: ", stringify!(tagMCI_ANIM_WINDOW_PARMSW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_ANIM_WINDOW_PARMSW>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_ANIM_WINDOW_PARMSW))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_ANIM_WINDOW_PARMSW>())).dwCallback as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_WINDOW_PARMSW),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_ANIM_WINDOW_PARMSW>())).hWnd as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_WINDOW_PARMSW),
            "::",
            stringify!(hWnd)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_ANIM_WINDOW_PARMSW>())).nCmdShow as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_WINDOW_PARMSW),
            "::",
            stringify!(nCmdShow)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_ANIM_WINDOW_PARMSW>())).lpstrText as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_WINDOW_PARMSW),
            "::",
            stringify!(lpstrText)
        )
    );
}
pub type MCI_ANIM_WINDOW_PARMSW = tagMCI_ANIM_WINDOW_PARMSW;
pub type PMCI_ANIM_WINDOW_PARMSW = *mut tagMCI_ANIM_WINDOW_PARMSW;
pub type LPMCI_ANIM_WINDOW_PARMSW = *mut tagMCI_ANIM_WINDOW_PARMSW;
pub type MCI_ANIM_WINDOW_PARMS = MCI_ANIM_WINDOW_PARMSA;
pub type PMCI_ANIM_WINDOW_PARMS = PMCI_ANIM_WINDOW_PARMSA;
pub type LPMCI_ANIM_WINDOW_PARMS = LPMCI_ANIM_WINDOW_PARMSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_ANIM_RECT_PARMS {
    pub dwCallback: DWORD_PTR,
    pub rc: RECT,
}
#[test]
fn bindgen_test_layout_tagMCI_ANIM_RECT_PARMS() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_ANIM_RECT_PARMS>(),
        24usize,
        concat!("Size of: ", stringify!(tagMCI_ANIM_RECT_PARMS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_ANIM_RECT_PARMS>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_ANIM_RECT_PARMS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_ANIM_RECT_PARMS>())).dwCallback as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_RECT_PARMS),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_ANIM_RECT_PARMS>())).rc as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_RECT_PARMS),
            "::",
            stringify!(rc)
        )
    );
}
pub type MCI_ANIM_RECT_PARMS = tagMCI_ANIM_RECT_PARMS;
pub type PMCI_ANIM_RECT_PARMS = *mut MCI_ANIM_RECT_PARMS;
pub type LPMCI_ANIM_RECT_PARMS = *mut MCI_ANIM_RECT_PARMS;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_ANIM_UPDATE_PARMS {
    pub dwCallback: DWORD_PTR,
    pub rc: RECT,
    pub hDC: HDC,
}
#[test]
fn bindgen_test_layout_tagMCI_ANIM_UPDATE_PARMS() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_ANIM_UPDATE_PARMS>(),
        32usize,
        concat!("Size of: ", stringify!(tagMCI_ANIM_UPDATE_PARMS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_ANIM_UPDATE_PARMS>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_ANIM_UPDATE_PARMS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_ANIM_UPDATE_PARMS>())).dwCallback as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_UPDATE_PARMS),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_ANIM_UPDATE_PARMS>())).rc as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_UPDATE_PARMS),
            "::",
            stringify!(rc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_ANIM_UPDATE_PARMS>())).hDC as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_ANIM_UPDATE_PARMS),
            "::",
            stringify!(hDC)
        )
    );
}
pub type MCI_ANIM_UPDATE_PARMS = tagMCI_ANIM_UPDATE_PARMS;
pub type PMCI_ANIM_UPDATE_PARMS = *mut tagMCI_ANIM_UPDATE_PARMS;
pub type LPMCI_ANIM_UPDATE_PARMS = *mut tagMCI_ANIM_UPDATE_PARMS;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_OVLY_OPEN_PARMSA {
    pub dwCallback: DWORD_PTR,
    pub wDeviceID: MCIDEVICEID,
    pub lpstrDeviceType: LPCSTR,
    pub lpstrElementName: LPCSTR,
    pub lpstrAlias: LPCSTR,
    pub dwStyle: DWORD,
    pub hWndParent: HWND,
}
#[test]
fn bindgen_test_layout_tagMCI_OVLY_OPEN_PARMSA() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_OVLY_OPEN_PARMSA>(),
        48usize,
        concat!("Size of: ", stringify!(tagMCI_OVLY_OPEN_PARMSA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_OVLY_OPEN_PARMSA>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_OVLY_OPEN_PARMSA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_OVLY_OPEN_PARMSA>())).dwCallback as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_OPEN_PARMSA),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_OVLY_OPEN_PARMSA>())).wDeviceID as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_OPEN_PARMSA),
            "::",
            stringify!(wDeviceID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_OVLY_OPEN_PARMSA>())).lpstrDeviceType as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_OPEN_PARMSA),
            "::",
            stringify!(lpstrDeviceType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_OVLY_OPEN_PARMSA>())).lpstrElementName as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_OPEN_PARMSA),
            "::",
            stringify!(lpstrElementName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_OVLY_OPEN_PARMSA>())).lpstrAlias as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_OPEN_PARMSA),
            "::",
            stringify!(lpstrAlias)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_OVLY_OPEN_PARMSA>())).dwStyle as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_OPEN_PARMSA),
            "::",
            stringify!(dwStyle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_OVLY_OPEN_PARMSA>())).hWndParent as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_OPEN_PARMSA),
            "::",
            stringify!(hWndParent)
        )
    );
}
pub type MCI_OVLY_OPEN_PARMSA = tagMCI_OVLY_OPEN_PARMSA;
pub type PMCI_OVLY_OPEN_PARMSA = *mut tagMCI_OVLY_OPEN_PARMSA;
pub type LPMCI_OVLY_OPEN_PARMSA = *mut tagMCI_OVLY_OPEN_PARMSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_OVLY_OPEN_PARMSW {
    pub dwCallback: DWORD_PTR,
    pub wDeviceID: MCIDEVICEID,
    pub lpstrDeviceType: LPCWSTR,
    pub lpstrElementName: LPCWSTR,
    pub lpstrAlias: LPCWSTR,
    pub dwStyle: DWORD,
    pub hWndParent: HWND,
}
#[test]
fn bindgen_test_layout_tagMCI_OVLY_OPEN_PARMSW() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_OVLY_OPEN_PARMSW>(),
        48usize,
        concat!("Size of: ", stringify!(tagMCI_OVLY_OPEN_PARMSW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_OVLY_OPEN_PARMSW>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_OVLY_OPEN_PARMSW))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_OVLY_OPEN_PARMSW>())).dwCallback as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_OPEN_PARMSW),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_OVLY_OPEN_PARMSW>())).wDeviceID as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_OPEN_PARMSW),
            "::",
            stringify!(wDeviceID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_OVLY_OPEN_PARMSW>())).lpstrDeviceType as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_OPEN_PARMSW),
            "::",
            stringify!(lpstrDeviceType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_OVLY_OPEN_PARMSW>())).lpstrElementName as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_OPEN_PARMSW),
            "::",
            stringify!(lpstrElementName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_OVLY_OPEN_PARMSW>())).lpstrAlias as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_OPEN_PARMSW),
            "::",
            stringify!(lpstrAlias)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_OVLY_OPEN_PARMSW>())).dwStyle as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_OPEN_PARMSW),
            "::",
            stringify!(dwStyle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_OVLY_OPEN_PARMSW>())).hWndParent as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_OPEN_PARMSW),
            "::",
            stringify!(hWndParent)
        )
    );
}
pub type MCI_OVLY_OPEN_PARMSW = tagMCI_OVLY_OPEN_PARMSW;
pub type PMCI_OVLY_OPEN_PARMSW = *mut tagMCI_OVLY_OPEN_PARMSW;
pub type LPMCI_OVLY_OPEN_PARMSW = *mut tagMCI_OVLY_OPEN_PARMSW;
pub type MCI_OVLY_OPEN_PARMS = MCI_OVLY_OPEN_PARMSA;
pub type PMCI_OVLY_OPEN_PARMS = PMCI_OVLY_OPEN_PARMSA;
pub type LPMCI_OVLY_OPEN_PARMS = LPMCI_OVLY_OPEN_PARMSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_OVLY_WINDOW_PARMSA {
    pub dwCallback: DWORD_PTR,
    pub hWnd: HWND,
    pub nCmdShow: UINT,
    pub lpstrText: LPCSTR,
}
#[test]
fn bindgen_test_layout_tagMCI_OVLY_WINDOW_PARMSA() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_OVLY_WINDOW_PARMSA>(),
        28usize,
        concat!("Size of: ", stringify!(tagMCI_OVLY_WINDOW_PARMSA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_OVLY_WINDOW_PARMSA>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_OVLY_WINDOW_PARMSA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_OVLY_WINDOW_PARMSA>())).dwCallback as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_WINDOW_PARMSA),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_OVLY_WINDOW_PARMSA>())).hWnd as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_WINDOW_PARMSA),
            "::",
            stringify!(hWnd)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_OVLY_WINDOW_PARMSA>())).nCmdShow as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_WINDOW_PARMSA),
            "::",
            stringify!(nCmdShow)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_OVLY_WINDOW_PARMSA>())).lpstrText as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_WINDOW_PARMSA),
            "::",
            stringify!(lpstrText)
        )
    );
}
pub type MCI_OVLY_WINDOW_PARMSA = tagMCI_OVLY_WINDOW_PARMSA;
pub type PMCI_OVLY_WINDOW_PARMSA = *mut tagMCI_OVLY_WINDOW_PARMSA;
pub type LPMCI_OVLY_WINDOW_PARMSA = *mut tagMCI_OVLY_WINDOW_PARMSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_OVLY_WINDOW_PARMSW {
    pub dwCallback: DWORD_PTR,
    pub hWnd: HWND,
    pub nCmdShow: UINT,
    pub lpstrText: LPCWSTR,
}
#[test]
fn bindgen_test_layout_tagMCI_OVLY_WINDOW_PARMSW() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_OVLY_WINDOW_PARMSW>(),
        28usize,
        concat!("Size of: ", stringify!(tagMCI_OVLY_WINDOW_PARMSW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_OVLY_WINDOW_PARMSW>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_OVLY_WINDOW_PARMSW))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_OVLY_WINDOW_PARMSW>())).dwCallback as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_WINDOW_PARMSW),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_OVLY_WINDOW_PARMSW>())).hWnd as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_WINDOW_PARMSW),
            "::",
            stringify!(hWnd)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_OVLY_WINDOW_PARMSW>())).nCmdShow as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_WINDOW_PARMSW),
            "::",
            stringify!(nCmdShow)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_OVLY_WINDOW_PARMSW>())).lpstrText as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_WINDOW_PARMSW),
            "::",
            stringify!(lpstrText)
        )
    );
}
pub type MCI_OVLY_WINDOW_PARMSW = tagMCI_OVLY_WINDOW_PARMSW;
pub type PMCI_OVLY_WINDOW_PARMSW = *mut tagMCI_OVLY_WINDOW_PARMSW;
pub type LPMCI_OVLY_WINDOW_PARMSW = *mut tagMCI_OVLY_WINDOW_PARMSW;
pub type MCI_OVLY_WINDOW_PARMS = MCI_OVLY_WINDOW_PARMSA;
pub type PMCI_OVLY_WINDOW_PARMS = PMCI_OVLY_WINDOW_PARMSA;
pub type LPMCI_OVLY_WINDOW_PARMS = LPMCI_OVLY_WINDOW_PARMSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_OVLY_RECT_PARMS {
    pub dwCallback: DWORD_PTR,
    pub rc: RECT,
}
#[test]
fn bindgen_test_layout_tagMCI_OVLY_RECT_PARMS() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_OVLY_RECT_PARMS>(),
        24usize,
        concat!("Size of: ", stringify!(tagMCI_OVLY_RECT_PARMS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_OVLY_RECT_PARMS>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_OVLY_RECT_PARMS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_OVLY_RECT_PARMS>())).dwCallback as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_RECT_PARMS),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_OVLY_RECT_PARMS>())).rc as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_RECT_PARMS),
            "::",
            stringify!(rc)
        )
    );
}
pub type MCI_OVLY_RECT_PARMS = tagMCI_OVLY_RECT_PARMS;
pub type PMCI_OVLY_RECT_PARMS = *mut tagMCI_OVLY_RECT_PARMS;
pub type LPMCI_OVLY_RECT_PARMS = *mut tagMCI_OVLY_RECT_PARMS;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_OVLY_SAVE_PARMSA {
    pub dwCallback: DWORD_PTR,
    pub lpfilename: LPCSTR,
    pub rc: RECT,
}
#[test]
fn bindgen_test_layout_tagMCI_OVLY_SAVE_PARMSA() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_OVLY_SAVE_PARMSA>(),
        32usize,
        concat!("Size of: ", stringify!(tagMCI_OVLY_SAVE_PARMSA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_OVLY_SAVE_PARMSA>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_OVLY_SAVE_PARMSA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_OVLY_SAVE_PARMSA>())).dwCallback as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_SAVE_PARMSA),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_OVLY_SAVE_PARMSA>())).lpfilename as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_SAVE_PARMSA),
            "::",
            stringify!(lpfilename)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_OVLY_SAVE_PARMSA>())).rc as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_SAVE_PARMSA),
            "::",
            stringify!(rc)
        )
    );
}
pub type MCI_OVLY_SAVE_PARMSA = tagMCI_OVLY_SAVE_PARMSA;
pub type PMCI_OVLY_SAVE_PARMSA = *mut tagMCI_OVLY_SAVE_PARMSA;
pub type LPMCI_OVLY_SAVE_PARMSA = *mut tagMCI_OVLY_SAVE_PARMSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_OVLY_SAVE_PARMSW {
    pub dwCallback: DWORD_PTR,
    pub lpfilename: LPCWSTR,
    pub rc: RECT,
}
#[test]
fn bindgen_test_layout_tagMCI_OVLY_SAVE_PARMSW() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_OVLY_SAVE_PARMSW>(),
        32usize,
        concat!("Size of: ", stringify!(tagMCI_OVLY_SAVE_PARMSW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_OVLY_SAVE_PARMSW>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_OVLY_SAVE_PARMSW))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_OVLY_SAVE_PARMSW>())).dwCallback as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_SAVE_PARMSW),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_OVLY_SAVE_PARMSW>())).lpfilename as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_SAVE_PARMSW),
            "::",
            stringify!(lpfilename)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_OVLY_SAVE_PARMSW>())).rc as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_SAVE_PARMSW),
            "::",
            stringify!(rc)
        )
    );
}
pub type MCI_OVLY_SAVE_PARMSW = tagMCI_OVLY_SAVE_PARMSW;
pub type PMCI_OVLY_SAVE_PARMSW = *mut tagMCI_OVLY_SAVE_PARMSW;
pub type LPMCI_OVLY_SAVE_PARMSW = *mut tagMCI_OVLY_SAVE_PARMSW;
pub type MCI_OVLY_SAVE_PARMS = MCI_OVLY_SAVE_PARMSA;
pub type PMCI_OVLY_SAVE_PARMS = PMCI_OVLY_SAVE_PARMSA;
pub type LPMCI_OVLY_SAVE_PARMS = LPMCI_OVLY_SAVE_PARMSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_OVLY_LOAD_PARMSA {
    pub dwCallback: DWORD_PTR,
    pub lpfilename: LPCSTR,
    pub rc: RECT,
}
#[test]
fn bindgen_test_layout_tagMCI_OVLY_LOAD_PARMSA() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_OVLY_LOAD_PARMSA>(),
        32usize,
        concat!("Size of: ", stringify!(tagMCI_OVLY_LOAD_PARMSA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_OVLY_LOAD_PARMSA>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_OVLY_LOAD_PARMSA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_OVLY_LOAD_PARMSA>())).dwCallback as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_LOAD_PARMSA),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_OVLY_LOAD_PARMSA>())).lpfilename as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_LOAD_PARMSA),
            "::",
            stringify!(lpfilename)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_OVLY_LOAD_PARMSA>())).rc as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_LOAD_PARMSA),
            "::",
            stringify!(rc)
        )
    );
}
pub type MCI_OVLY_LOAD_PARMSA = tagMCI_OVLY_LOAD_PARMSA;
pub type PMCI_OVLY_LOAD_PARMSA = *mut tagMCI_OVLY_LOAD_PARMSA;
pub type LPMCI_OVLY_LOAD_PARMSA = *mut tagMCI_OVLY_LOAD_PARMSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMCI_OVLY_LOAD_PARMSW {
    pub dwCallback: DWORD_PTR,
    pub lpfilename: LPCWSTR,
    pub rc: RECT,
}
#[test]
fn bindgen_test_layout_tagMCI_OVLY_LOAD_PARMSW() {
    assert_eq!(
        ::std::mem::size_of::<tagMCI_OVLY_LOAD_PARMSW>(),
        32usize,
        concat!("Size of: ", stringify!(tagMCI_OVLY_LOAD_PARMSW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMCI_OVLY_LOAD_PARMSW>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMCI_OVLY_LOAD_PARMSW))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_OVLY_LOAD_PARMSW>())).dwCallback as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_LOAD_PARMSW),
            "::",
            stringify!(dwCallback)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMCI_OVLY_LOAD_PARMSW>())).lpfilename as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_LOAD_PARMSW),
            "::",
            stringify!(lpfilename)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMCI_OVLY_LOAD_PARMSW>())).rc as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMCI_OVLY_LOAD_PARMSW),
            "::",
            stringify!(rc)
        )
    );
}
pub type MCI_OVLY_LOAD_PARMSW = tagMCI_OVLY_LOAD_PARMSW;
pub type PMCI_OVLY_LOAD_PARMSW = *mut tagMCI_OVLY_LOAD_PARMSW;
pub type LPMCI_OVLY_LOAD_PARMSW = *mut tagMCI_OVLY_LOAD_PARMSW;
pub type MCI_OVLY_LOAD_PARMS = MCI_OVLY_LOAD_PARMSA;
pub type PMCI_OVLY_LOAD_PARMS = PMCI_OVLY_LOAD_PARMSA;
pub type LPMCI_OVLY_LOAD_PARMS = LPMCI_OVLY_LOAD_PARMSA;
extern "C" {
    pub fn mciGetDriverData(wDeviceID: MCIDEVICEID) -> DWORD_PTR;
}
extern "C" {
    pub fn mciLoadCommandResource(hInstance: HANDLE, lpResName: LPCWSTR, wType: UINT) -> UINT;
}
extern "C" {
    pub fn mciSetDriverData(wDeviceID: MCIDEVICEID, dwData: DWORD_PTR) -> BOOL;
}
extern "C" {
    pub fn mciDriverYield(wDeviceID: MCIDEVICEID) -> UINT;
}
extern "C" {
    pub fn mciDriverNotify(hwndCallback: HANDLE, wDeviceID: MCIDEVICEID, uStatus: UINT) -> BOOL;
}
extern "C" {
    pub fn mciFreeCommandResource(wTable: UINT) -> BOOL;
}
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct DRVCONFIGINFOEX {
    pub dwDCISize: DWORD,
    pub lpszDCISectionName: LPCWSTR,
    pub lpszDCIAliasName: LPCWSTR,
    pub dnDevNode: DWORD,
}
#[test]
fn bindgen_test_layout_DRVCONFIGINFOEX() {
    assert_eq!(
        ::std::mem::size_of::<DRVCONFIGINFOEX>(),
        24usize,
        concat!("Size of: ", stringify!(DRVCONFIGINFOEX))
    );
    assert_eq!(
        ::std::mem::align_of::<DRVCONFIGINFOEX>(),
        1usize,
        concat!("Alignment of ", stringify!(DRVCONFIGINFOEX))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DRVCONFIGINFOEX>())).dwDCISize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DRVCONFIGINFOEX),
            "::",
            stringify!(dwDCISize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DRVCONFIGINFOEX>())).lpszDCISectionName as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(DRVCONFIGINFOEX),
            "::",
            stringify!(lpszDCISectionName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DRVCONFIGINFOEX>())).lpszDCIAliasName as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(DRVCONFIGINFOEX),
            "::",
            stringify!(lpszDCIAliasName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DRVCONFIGINFOEX>())).dnDevNode as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(DRVCONFIGINFOEX),
            "::",
            stringify!(dnDevNode)
        )
    );
}
pub type PDRVCONFIGINFOEX = *mut DRVCONFIGINFOEX;
pub type NPDRVCONFIGINFOEX = *mut DRVCONFIGINFOEX;
pub type LPDRVCONFIGINFOEX = *mut DRVCONFIGINFOEX;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagDRVCONFIGINFO {
    pub dwDCISize: DWORD,
    pub lpszDCISectionName: LPCWSTR,
    pub lpszDCIAliasName: LPCWSTR,
}
#[test]
fn bindgen_test_layout_tagDRVCONFIGINFO() {
    assert_eq!(
        ::std::mem::size_of::<tagDRVCONFIGINFO>(),
        20usize,
        concat!("Size of: ", stringify!(tagDRVCONFIGINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagDRVCONFIGINFO>(),
        1usize,
        concat!("Alignment of ", stringify!(tagDRVCONFIGINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDRVCONFIGINFO>())).dwDCISize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDRVCONFIGINFO),
            "::",
            stringify!(dwDCISize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagDRVCONFIGINFO>())).lpszDCISectionName as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDRVCONFIGINFO),
            "::",
            stringify!(lpszDCISectionName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagDRVCONFIGINFO>())).lpszDCIAliasName as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDRVCONFIGINFO),
            "::",
            stringify!(lpszDCIAliasName)
        )
    );
}
pub type DRVCONFIGINFO = tagDRVCONFIGINFO;
pub type PDRVCONFIGINFO = *mut tagDRVCONFIGINFO;
pub type NPDRVCONFIGINFO = *mut tagDRVCONFIGINFO;
pub type LPDRVCONFIGINFO = *mut tagDRVCONFIGINFO;
pub type DRIVERPROC = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: DWORD_PTR,
        arg2: HDRVR,
        arg3: UINT,
        arg4: LPARAM,
        arg5: LPARAM,
    ) -> LRESULT,
>;
extern "C" {
    pub fn CloseDriver(hDriver: HDRVR, lParam1: LPARAM, lParam2: LPARAM) -> LRESULT;
}
extern "C" {
    pub fn OpenDriver(szDriverName: LPCWSTR, szSectionName: LPCWSTR, lParam2: LPARAM) -> HDRVR;
}
extern "C" {
    pub fn SendDriverMessage(
        hDriver: HDRVR,
        message: UINT,
        lParam1: LPARAM,
        lParam2: LPARAM,
    ) -> LRESULT;
}
extern "C" {
    pub fn DrvGetModuleHandle(hDriver: HDRVR) -> HMODULE;
}
extern "C" {
    pub fn GetDriverModuleHandle(hDriver: HDRVR) -> HMODULE;
}
extern "C" {
    pub fn DefDriverProc(
        dwDriverIdentifier: DWORD_PTR,
        hdrvr: HDRVR,
        uMsg: UINT,
        lParam1: LPARAM,
        lParam2: LPARAM,
    ) -> LRESULT;
}
extern "C" {
    pub fn DriverCallback(
        dwCallback: DWORD_PTR,
        dwFlags: DWORD,
        hDevice: HDRVR,
        dwMsg: DWORD,
        dwUser: DWORD_PTR,
        dwParam1: DWORD_PTR,
        dwParam2: DWORD_PTR,
    ) -> BOOL;
}
extern "C" {
    pub fn sndOpenSound(
        EventName: LPCWSTR,
        AppName: LPCWSTR,
        Flags: INT32,
        FileHandle: PHANDLE,
    ) -> LONG;
}
pub type DRIVERMSGPROC = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: DWORD,
        arg2: DWORD,
        arg3: DWORD_PTR,
        arg4: DWORD_PTR,
        arg5: DWORD_PTR,
    ) -> DWORD,
>;
extern "C" {
    pub fn mmDrvInstall(
        hDriver: HDRVR,
        wszDrvEntry: LPCWSTR,
        drvMessage: DRIVERMSGPROC,
        wFlags: UINT,
    ) -> UINT;
}
pub type FOURCC = DWORD;
pub type HPSTR = *mut ::std::os::raw::c_char;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct HMMIO__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HMMIO__() {
    assert_eq!(
        ::std::mem::size_of::<HMMIO__>(),
        4usize,
        concat!("Size of: ", stringify!(HMMIO__))
    );
    assert_eq!(
        ::std::mem::align_of::<HMMIO__>(),
        1usize,
        concat!("Alignment of ", stringify!(HMMIO__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HMMIO__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HMMIO__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HMMIO = *mut HMMIO__;
pub type LPMMIOPROC = ::std::option::Option<
    unsafe extern "C" fn(arg1: LPSTR, arg2: UINT, arg3: LPARAM, arg4: LPARAM) -> LRESULT,
>;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _MMIOINFO {
    pub dwFlags: DWORD,
    pub fccIOProc: FOURCC,
    pub pIOProc: LPMMIOPROC,
    pub wErrorRet: UINT,
    pub htask: HTASK,
    pub cchBuffer: LONG,
    pub pchBuffer: HPSTR,
    pub pchNext: HPSTR,
    pub pchEndRead: HPSTR,
    pub pchEndWrite: HPSTR,
    pub lBufOffset: LONG,
    pub lDiskOffset: LONG,
    pub adwInfo: [DWORD; 3usize],
    pub dwReserved1: DWORD,
    pub dwReserved2: DWORD,
    pub hmmio: HMMIO,
}
#[test]
fn bindgen_test_layout__MMIOINFO() {
    assert_eq!(
        ::std::mem::size_of::<_MMIOINFO>(),
        100usize,
        concat!("Size of: ", stringify!(_MMIOINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_MMIOINFO>(),
        1usize,
        concat!("Alignment of ", stringify!(_MMIOINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MMIOINFO>())).dwFlags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MMIOINFO),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MMIOINFO>())).fccIOProc as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_MMIOINFO),
            "::",
            stringify!(fccIOProc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MMIOINFO>())).pIOProc as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_MMIOINFO),
            "::",
            stringify!(pIOProc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MMIOINFO>())).wErrorRet as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_MMIOINFO),
            "::",
            stringify!(wErrorRet)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MMIOINFO>())).htask as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_MMIOINFO),
            "::",
            stringify!(htask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MMIOINFO>())).cchBuffer as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_MMIOINFO),
            "::",
            stringify!(cchBuffer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MMIOINFO>())).pchBuffer as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_MMIOINFO),
            "::",
            stringify!(pchBuffer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MMIOINFO>())).pchNext as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_MMIOINFO),
            "::",
            stringify!(pchNext)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MMIOINFO>())).pchEndRead as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_MMIOINFO),
            "::",
            stringify!(pchEndRead)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MMIOINFO>())).pchEndWrite as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_MMIOINFO),
            "::",
            stringify!(pchEndWrite)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MMIOINFO>())).lBufOffset as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_MMIOINFO),
            "::",
            stringify!(lBufOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MMIOINFO>())).lDiskOffset as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(_MMIOINFO),
            "::",
            stringify!(lDiskOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MMIOINFO>())).adwInfo as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_MMIOINFO),
            "::",
            stringify!(adwInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MMIOINFO>())).dwReserved1 as *const _ as usize },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(_MMIOINFO),
            "::",
            stringify!(dwReserved1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MMIOINFO>())).dwReserved2 as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_MMIOINFO),
            "::",
            stringify!(dwReserved2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MMIOINFO>())).hmmio as *const _ as usize },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(_MMIOINFO),
            "::",
            stringify!(hmmio)
        )
    );
}
pub type MMIOINFO = _MMIOINFO;
pub type PMMIOINFO = *mut _MMIOINFO;
pub type NPMMIOINFO = *mut _MMIOINFO;
pub type LPMMIOINFO = *mut _MMIOINFO;
pub type LPCMMIOINFO = *const MMIOINFO;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _MMCKINFO {
    pub ckid: FOURCC,
    pub cksize: DWORD,
    pub fccType: FOURCC,
    pub dwDataOffset: DWORD,
    pub dwFlags: DWORD,
}
#[test]
fn bindgen_test_layout__MMCKINFO() {
    assert_eq!(
        ::std::mem::size_of::<_MMCKINFO>(),
        20usize,
        concat!("Size of: ", stringify!(_MMCKINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_MMCKINFO>(),
        1usize,
        concat!("Alignment of ", stringify!(_MMCKINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MMCKINFO>())).ckid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MMCKINFO),
            "::",
            stringify!(ckid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MMCKINFO>())).cksize as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_MMCKINFO),
            "::",
            stringify!(cksize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MMCKINFO>())).fccType as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_MMCKINFO),
            "::",
            stringify!(fccType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MMCKINFO>())).dwDataOffset as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_MMCKINFO),
            "::",
            stringify!(dwDataOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MMCKINFO>())).dwFlags as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_MMCKINFO),
            "::",
            stringify!(dwFlags)
        )
    );
}
pub type MMCKINFO = _MMCKINFO;
pub type PMMCKINFO = *mut _MMCKINFO;
pub type NPMMCKINFO = *mut _MMCKINFO;
pub type LPMMCKINFO = *mut _MMCKINFO;
pub type LPCMMCKINFO = *const MMCKINFO;
extern "C" {
    pub fn mmioStringToFOURCCA(sz: LPCSTR, uFlags: UINT) -> FOURCC;
}
extern "C" {
    pub fn mmioStringToFOURCCW(sz: LPCWSTR, uFlags: UINT) -> FOURCC;
}
extern "C" {
    pub fn mmioInstallIOProcA(fccIOProc: FOURCC, pIOProc: LPMMIOPROC, dwFlags: DWORD)
        -> LPMMIOPROC;
}
extern "C" {
    pub fn mmioInstallIOProcW(fccIOProc: FOURCC, pIOProc: LPMMIOPROC, dwFlags: DWORD)
        -> LPMMIOPROC;
}
extern "C" {
    pub fn mmioOpenA(pszFileName: LPSTR, pmmioinfo: LPMMIOINFO, fdwOpen: DWORD) -> HMMIO;
}
extern "C" {
    pub fn mmioOpenW(pszFileName: LPWSTR, pmmioinfo: LPMMIOINFO, fdwOpen: DWORD) -> HMMIO;
}
extern "C" {
    pub fn mmioRenameA(
        pszFileName: LPCSTR,
        pszNewFileName: LPCSTR,
        pmmioinfo: LPCMMIOINFO,
        fdwRename: DWORD,
    ) -> MMRESULT;
}
extern "C" {
    pub fn mmioRenameW(
        pszFileName: LPCWSTR,
        pszNewFileName: LPCWSTR,
        pmmioinfo: LPCMMIOINFO,
        fdwRename: DWORD,
    ) -> MMRESULT;
}
extern "C" {
    pub fn mmioClose(hmmio: HMMIO, fuClose: UINT) -> MMRESULT;
}
extern "C" {
    pub fn mmioRead(hmmio: HMMIO, pch: HPSTR, cch: LONG) -> LONG;
}
extern "C" {
    pub fn mmioWrite(hmmio: HMMIO, pch: *const ::std::os::raw::c_char, cch: LONG) -> LONG;
}
extern "C" {
    pub fn mmioSeek(hmmio: HMMIO, lOffset: LONG, iOrigin: ::std::os::raw::c_int) -> LONG;
}
extern "C" {
    pub fn mmioGetInfo(hmmio: HMMIO, pmmioinfo: LPMMIOINFO, fuInfo: UINT) -> MMRESULT;
}
extern "C" {
    pub fn mmioSetInfo(hmmio: HMMIO, pmmioinfo: LPCMMIOINFO, fuInfo: UINT) -> MMRESULT;
}
extern "C" {
    pub fn mmioSetBuffer(
        hmmio: HMMIO,
        pchBuffer: LPSTR,
        cchBuffer: LONG,
        fuBuffer: UINT,
    ) -> MMRESULT;
}
extern "C" {
    pub fn mmioFlush(hmmio: HMMIO, fuFlush: UINT) -> MMRESULT;
}
extern "C" {
    pub fn mmioAdvance(hmmio: HMMIO, pmmioinfo: LPMMIOINFO, fuAdvance: UINT) -> MMRESULT;
}
extern "C" {
    pub fn mmioSendMessage(hmmio: HMMIO, uMsg: UINT, lParam1: LPARAM, lParam2: LPARAM) -> LRESULT;
}
extern "C" {
    pub fn mmioDescend(
        hmmio: HMMIO,
        pmmcki: LPMMCKINFO,
        pmmckiParent: *const MMCKINFO,
        fuDescend: UINT,
    ) -> MMRESULT;
}
extern "C" {
    pub fn mmioAscend(hmmio: HMMIO, pmmcki: LPMMCKINFO, fuAscend: UINT) -> MMRESULT;
}
extern "C" {
    pub fn mmioCreateChunk(hmmio: HMMIO, pmmcki: LPMMCKINFO, fuCreate: UINT) -> MMRESULT;
}
pub type LPTIMECALLBACK = ::std::option::Option<
    unsafe extern "C" fn(arg1: UINT, arg2: UINT, arg3: DWORD_PTR, arg4: DWORD_PTR, arg5: DWORD_PTR),
>;
extern "C" {
    pub fn timeSetEvent(
        uDelay: UINT,
        uResolution: UINT,
        fptc: LPTIMECALLBACK,
        dwUser: DWORD_PTR,
        fuEvent: UINT,
    ) -> MMRESULT;
}
extern "C" {
    pub fn timeKillEvent(uTimerID: UINT) -> MMRESULT;
}
extern "C" {
    pub fn sndPlaySoundA(pszSound: LPCSTR, fuSound: UINT) -> BOOL;
}
extern "C" {
    pub fn sndPlaySoundW(pszSound: LPCWSTR, fuSound: UINT) -> BOOL;
}
extern "C" {
    pub fn PlaySoundA(pszSound: LPCSTR, hmod: HMODULE, fdwSound: DWORD) -> BOOL;
}
extern "C" {
    pub fn PlaySoundW(pszSound: LPCWSTR, hmod: HMODULE, fdwSound: DWORD) -> BOOL;
}
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct HWAVE__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HWAVE__() {
    assert_eq!(
        ::std::mem::size_of::<HWAVE__>(),
        4usize,
        concat!("Size of: ", stringify!(HWAVE__))
    );
    assert_eq!(
        ::std::mem::align_of::<HWAVE__>(),
        1usize,
        concat!("Alignment of ", stringify!(HWAVE__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HWAVE__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HWAVE__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HWAVE = *mut HWAVE__;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct HWAVEIN__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HWAVEIN__() {
    assert_eq!(
        ::std::mem::size_of::<HWAVEIN__>(),
        4usize,
        concat!("Size of: ", stringify!(HWAVEIN__))
    );
    assert_eq!(
        ::std::mem::align_of::<HWAVEIN__>(),
        1usize,
        concat!("Alignment of ", stringify!(HWAVEIN__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HWAVEIN__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HWAVEIN__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HWAVEIN = *mut HWAVEIN__;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct HWAVEOUT__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HWAVEOUT__() {
    assert_eq!(
        ::std::mem::size_of::<HWAVEOUT__>(),
        4usize,
        concat!("Size of: ", stringify!(HWAVEOUT__))
    );
    assert_eq!(
        ::std::mem::align_of::<HWAVEOUT__>(),
        1usize,
        concat!("Alignment of ", stringify!(HWAVEOUT__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HWAVEOUT__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HWAVEOUT__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HWAVEOUT = *mut HWAVEOUT__;
pub type LPHWAVEIN = *mut HWAVEIN;
pub type LPHWAVEOUT = *mut HWAVEOUT;
pub type LPWAVECALLBACK = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: HDRVR,
        arg2: UINT,
        arg3: DWORD_PTR,
        arg4: DWORD_PTR,
        arg5: DWORD_PTR,
    ),
>;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct wavehdr_tag {
    pub lpData: LPSTR,
    pub dwBufferLength: DWORD,
    pub dwBytesRecorded: DWORD,
    pub dwUser: DWORD_PTR,
    pub dwFlags: DWORD,
    pub dwLoops: DWORD,
    pub lpNext: *mut wavehdr_tag,
    pub reserved: DWORD_PTR,
}
#[test]
fn bindgen_test_layout_wavehdr_tag() {
    assert_eq!(
        ::std::mem::size_of::<wavehdr_tag>(),
        48usize,
        concat!("Size of: ", stringify!(wavehdr_tag))
    );
    assert_eq!(
        ::std::mem::align_of::<wavehdr_tag>(),
        1usize,
        concat!("Alignment of ", stringify!(wavehdr_tag))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<wavehdr_tag>())).lpData as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(wavehdr_tag),
            "::",
            stringify!(lpData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<wavehdr_tag>())).dwBufferLength as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(wavehdr_tag),
            "::",
            stringify!(dwBufferLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<wavehdr_tag>())).dwBytesRecorded as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(wavehdr_tag),
            "::",
            stringify!(dwBytesRecorded)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<wavehdr_tag>())).dwUser as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(wavehdr_tag),
            "::",
            stringify!(dwUser)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<wavehdr_tag>())).dwFlags as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(wavehdr_tag),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<wavehdr_tag>())).dwLoops as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(wavehdr_tag),
            "::",
            stringify!(dwLoops)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<wavehdr_tag>())).lpNext as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(wavehdr_tag),
            "::",
            stringify!(lpNext)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<wavehdr_tag>())).reserved as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(wavehdr_tag),
            "::",
            stringify!(reserved)
        )
    );
}
pub type WAVEHDR = wavehdr_tag;
pub type PWAVEHDR = *mut wavehdr_tag;
pub type NPWAVEHDR = *mut wavehdr_tag;
pub type LPWAVEHDR = *mut wavehdr_tag;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagWAVEOUTCAPSA {
    pub wMid: WORD,
    pub wPid: WORD,
    pub vDriverVersion: MMVERSION,
    pub szPname: [CHAR; 32usize],
    pub dwFormats: DWORD,
    pub wChannels: WORD,
    pub wReserved1: WORD,
    pub dwSupport: DWORD,
}
#[test]
fn bindgen_test_layout_tagWAVEOUTCAPSA() {
    assert_eq!(
        ::std::mem::size_of::<tagWAVEOUTCAPSA>(),
        52usize,
        concat!("Size of: ", stringify!(tagWAVEOUTCAPSA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagWAVEOUTCAPSA>(),
        1usize,
        concat!("Alignment of ", stringify!(tagWAVEOUTCAPSA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPSA>())).wMid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPSA),
            "::",
            stringify!(wMid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPSA>())).wPid as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPSA),
            "::",
            stringify!(wPid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPSA>())).vDriverVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPSA),
            "::",
            stringify!(vDriverVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPSA>())).szPname as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPSA),
            "::",
            stringify!(szPname)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPSA>())).dwFormats as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPSA),
            "::",
            stringify!(dwFormats)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPSA>())).wChannels as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPSA),
            "::",
            stringify!(wChannels)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPSA>())).wReserved1 as *const _ as usize },
        46usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPSA),
            "::",
            stringify!(wReserved1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPSA>())).dwSupport as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPSA),
            "::",
            stringify!(dwSupport)
        )
    );
}
pub type WAVEOUTCAPSA = tagWAVEOUTCAPSA;
pub type PWAVEOUTCAPSA = *mut tagWAVEOUTCAPSA;
pub type NPWAVEOUTCAPSA = *mut tagWAVEOUTCAPSA;
pub type LPWAVEOUTCAPSA = *mut tagWAVEOUTCAPSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagWAVEOUTCAPSW {
    pub wMid: WORD,
    pub wPid: WORD,
    pub vDriverVersion: MMVERSION,
    pub szPname: [WCHAR; 32usize],
    pub dwFormats: DWORD,
    pub wChannels: WORD,
    pub wReserved1: WORD,
    pub dwSupport: DWORD,
}
#[test]
fn bindgen_test_layout_tagWAVEOUTCAPSW() {
    assert_eq!(
        ::std::mem::size_of::<tagWAVEOUTCAPSW>(),
        84usize,
        concat!("Size of: ", stringify!(tagWAVEOUTCAPSW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagWAVEOUTCAPSW>(),
        1usize,
        concat!("Alignment of ", stringify!(tagWAVEOUTCAPSW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPSW>())).wMid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPSW),
            "::",
            stringify!(wMid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPSW>())).wPid as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPSW),
            "::",
            stringify!(wPid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPSW>())).vDriverVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPSW),
            "::",
            stringify!(vDriverVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPSW>())).szPname as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPSW),
            "::",
            stringify!(szPname)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPSW>())).dwFormats as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPSW),
            "::",
            stringify!(dwFormats)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPSW>())).wChannels as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPSW),
            "::",
            stringify!(wChannels)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPSW>())).wReserved1 as *const _ as usize },
        78usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPSW),
            "::",
            stringify!(wReserved1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPSW>())).dwSupport as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPSW),
            "::",
            stringify!(dwSupport)
        )
    );
}
pub type WAVEOUTCAPSW = tagWAVEOUTCAPSW;
pub type PWAVEOUTCAPSW = *mut tagWAVEOUTCAPSW;
pub type NPWAVEOUTCAPSW = *mut tagWAVEOUTCAPSW;
pub type LPWAVEOUTCAPSW = *mut tagWAVEOUTCAPSW;
pub type WAVEOUTCAPS = WAVEOUTCAPSA;
pub type PWAVEOUTCAPS = PWAVEOUTCAPSA;
pub type NPWAVEOUTCAPS = NPWAVEOUTCAPSA;
pub type LPWAVEOUTCAPS = LPWAVEOUTCAPSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagWAVEOUTCAPS2A {
    pub wMid: WORD,
    pub wPid: WORD,
    pub vDriverVersion: MMVERSION,
    pub szPname: [CHAR; 32usize],
    pub dwFormats: DWORD,
    pub wChannels: WORD,
    pub wReserved1: WORD,
    pub dwSupport: DWORD,
    pub ManufacturerGuid: GUID,
    pub ProductGuid: GUID,
    pub NameGuid: GUID,
}
#[test]
fn bindgen_test_layout_tagWAVEOUTCAPS2A() {
    assert_eq!(
        ::std::mem::size_of::<tagWAVEOUTCAPS2A>(),
        100usize,
        concat!("Size of: ", stringify!(tagWAVEOUTCAPS2A))
    );
    assert_eq!(
        ::std::mem::align_of::<tagWAVEOUTCAPS2A>(),
        1usize,
        concat!("Alignment of ", stringify!(tagWAVEOUTCAPS2A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPS2A>())).wMid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPS2A),
            "::",
            stringify!(wMid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPS2A>())).wPid as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPS2A),
            "::",
            stringify!(wPid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPS2A>())).vDriverVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPS2A),
            "::",
            stringify!(vDriverVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPS2A>())).szPname as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPS2A),
            "::",
            stringify!(szPname)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPS2A>())).dwFormats as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPS2A),
            "::",
            stringify!(dwFormats)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPS2A>())).wChannels as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPS2A),
            "::",
            stringify!(wChannels)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPS2A>())).wReserved1 as *const _ as usize },
        46usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPS2A),
            "::",
            stringify!(wReserved1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPS2A>())).dwSupport as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPS2A),
            "::",
            stringify!(dwSupport)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagWAVEOUTCAPS2A>())).ManufacturerGuid as *const _ as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPS2A),
            "::",
            stringify!(ManufacturerGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPS2A>())).ProductGuid as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPS2A),
            "::",
            stringify!(ProductGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPS2A>())).NameGuid as *const _ as usize },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPS2A),
            "::",
            stringify!(NameGuid)
        )
    );
}
pub type WAVEOUTCAPS2A = tagWAVEOUTCAPS2A;
pub type PWAVEOUTCAPS2A = *mut tagWAVEOUTCAPS2A;
pub type NPWAVEOUTCAPS2A = *mut tagWAVEOUTCAPS2A;
pub type LPWAVEOUTCAPS2A = *mut tagWAVEOUTCAPS2A;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagWAVEOUTCAPS2W {
    pub wMid: WORD,
    pub wPid: WORD,
    pub vDriverVersion: MMVERSION,
    pub szPname: [WCHAR; 32usize],
    pub dwFormats: DWORD,
    pub wChannels: WORD,
    pub wReserved1: WORD,
    pub dwSupport: DWORD,
    pub ManufacturerGuid: GUID,
    pub ProductGuid: GUID,
    pub NameGuid: GUID,
}
#[test]
fn bindgen_test_layout_tagWAVEOUTCAPS2W() {
    assert_eq!(
        ::std::mem::size_of::<tagWAVEOUTCAPS2W>(),
        132usize,
        concat!("Size of: ", stringify!(tagWAVEOUTCAPS2W))
    );
    assert_eq!(
        ::std::mem::align_of::<tagWAVEOUTCAPS2W>(),
        1usize,
        concat!("Alignment of ", stringify!(tagWAVEOUTCAPS2W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPS2W>())).wMid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPS2W),
            "::",
            stringify!(wMid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPS2W>())).wPid as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPS2W),
            "::",
            stringify!(wPid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPS2W>())).vDriverVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPS2W),
            "::",
            stringify!(vDriverVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPS2W>())).szPname as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPS2W),
            "::",
            stringify!(szPname)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPS2W>())).dwFormats as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPS2W),
            "::",
            stringify!(dwFormats)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPS2W>())).wChannels as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPS2W),
            "::",
            stringify!(wChannels)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPS2W>())).wReserved1 as *const _ as usize },
        78usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPS2W),
            "::",
            stringify!(wReserved1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPS2W>())).dwSupport as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPS2W),
            "::",
            stringify!(dwSupport)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagWAVEOUTCAPS2W>())).ManufacturerGuid as *const _ as usize
        },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPS2W),
            "::",
            stringify!(ManufacturerGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPS2W>())).ProductGuid as *const _ as usize },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPS2W),
            "::",
            stringify!(ProductGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEOUTCAPS2W>())).NameGuid as *const _ as usize },
        116usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEOUTCAPS2W),
            "::",
            stringify!(NameGuid)
        )
    );
}
pub type WAVEOUTCAPS2W = tagWAVEOUTCAPS2W;
pub type PWAVEOUTCAPS2W = *mut tagWAVEOUTCAPS2W;
pub type NPWAVEOUTCAPS2W = *mut tagWAVEOUTCAPS2W;
pub type LPWAVEOUTCAPS2W = *mut tagWAVEOUTCAPS2W;
pub type WAVEOUTCAPS2 = WAVEOUTCAPS2A;
pub type PWAVEOUTCAPS2 = PWAVEOUTCAPS2A;
pub type NPWAVEOUTCAPS2 = NPWAVEOUTCAPS2A;
pub type LPWAVEOUTCAPS2 = LPWAVEOUTCAPS2A;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagWAVEINCAPSA {
    pub wMid: WORD,
    pub wPid: WORD,
    pub vDriverVersion: MMVERSION,
    pub szPname: [CHAR; 32usize],
    pub dwFormats: DWORD,
    pub wChannels: WORD,
    pub wReserved1: WORD,
}
#[test]
fn bindgen_test_layout_tagWAVEINCAPSA() {
    assert_eq!(
        ::std::mem::size_of::<tagWAVEINCAPSA>(),
        48usize,
        concat!("Size of: ", stringify!(tagWAVEINCAPSA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagWAVEINCAPSA>(),
        1usize,
        concat!("Alignment of ", stringify!(tagWAVEINCAPSA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEINCAPSA>())).wMid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPSA),
            "::",
            stringify!(wMid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEINCAPSA>())).wPid as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPSA),
            "::",
            stringify!(wPid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEINCAPSA>())).vDriverVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPSA),
            "::",
            stringify!(vDriverVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEINCAPSA>())).szPname as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPSA),
            "::",
            stringify!(szPname)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEINCAPSA>())).dwFormats as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPSA),
            "::",
            stringify!(dwFormats)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEINCAPSA>())).wChannels as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPSA),
            "::",
            stringify!(wChannels)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEINCAPSA>())).wReserved1 as *const _ as usize },
        46usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPSA),
            "::",
            stringify!(wReserved1)
        )
    );
}
pub type WAVEINCAPSA = tagWAVEINCAPSA;
pub type PWAVEINCAPSA = *mut tagWAVEINCAPSA;
pub type NPWAVEINCAPSA = *mut tagWAVEINCAPSA;
pub type LPWAVEINCAPSA = *mut tagWAVEINCAPSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagWAVEINCAPSW {
    pub wMid: WORD,
    pub wPid: WORD,
    pub vDriverVersion: MMVERSION,
    pub szPname: [WCHAR; 32usize],
    pub dwFormats: DWORD,
    pub wChannels: WORD,
    pub wReserved1: WORD,
}
#[test]
fn bindgen_test_layout_tagWAVEINCAPSW() {
    assert_eq!(
        ::std::mem::size_of::<tagWAVEINCAPSW>(),
        80usize,
        concat!("Size of: ", stringify!(tagWAVEINCAPSW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagWAVEINCAPSW>(),
        1usize,
        concat!("Alignment of ", stringify!(tagWAVEINCAPSW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEINCAPSW>())).wMid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPSW),
            "::",
            stringify!(wMid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEINCAPSW>())).wPid as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPSW),
            "::",
            stringify!(wPid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEINCAPSW>())).vDriverVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPSW),
            "::",
            stringify!(vDriverVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEINCAPSW>())).szPname as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPSW),
            "::",
            stringify!(szPname)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEINCAPSW>())).dwFormats as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPSW),
            "::",
            stringify!(dwFormats)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEINCAPSW>())).wChannels as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPSW),
            "::",
            stringify!(wChannels)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEINCAPSW>())).wReserved1 as *const _ as usize },
        78usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPSW),
            "::",
            stringify!(wReserved1)
        )
    );
}
pub type WAVEINCAPSW = tagWAVEINCAPSW;
pub type PWAVEINCAPSW = *mut tagWAVEINCAPSW;
pub type NPWAVEINCAPSW = *mut tagWAVEINCAPSW;
pub type LPWAVEINCAPSW = *mut tagWAVEINCAPSW;
pub type WAVEINCAPS = WAVEINCAPSA;
pub type PWAVEINCAPS = PWAVEINCAPSA;
pub type NPWAVEINCAPS = NPWAVEINCAPSA;
pub type LPWAVEINCAPS = LPWAVEINCAPSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagWAVEINCAPS2A {
    pub wMid: WORD,
    pub wPid: WORD,
    pub vDriverVersion: MMVERSION,
    pub szPname: [CHAR; 32usize],
    pub dwFormats: DWORD,
    pub wChannels: WORD,
    pub wReserved1: WORD,
    pub ManufacturerGuid: GUID,
    pub ProductGuid: GUID,
    pub NameGuid: GUID,
}
#[test]
fn bindgen_test_layout_tagWAVEINCAPS2A() {
    assert_eq!(
        ::std::mem::size_of::<tagWAVEINCAPS2A>(),
        96usize,
        concat!("Size of: ", stringify!(tagWAVEINCAPS2A))
    );
    assert_eq!(
        ::std::mem::align_of::<tagWAVEINCAPS2A>(),
        1usize,
        concat!("Alignment of ", stringify!(tagWAVEINCAPS2A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEINCAPS2A>())).wMid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPS2A),
            "::",
            stringify!(wMid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEINCAPS2A>())).wPid as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPS2A),
            "::",
            stringify!(wPid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEINCAPS2A>())).vDriverVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPS2A),
            "::",
            stringify!(vDriverVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEINCAPS2A>())).szPname as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPS2A),
            "::",
            stringify!(szPname)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEINCAPS2A>())).dwFormats as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPS2A),
            "::",
            stringify!(dwFormats)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEINCAPS2A>())).wChannels as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPS2A),
            "::",
            stringify!(wChannels)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEINCAPS2A>())).wReserved1 as *const _ as usize },
        46usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPS2A),
            "::",
            stringify!(wReserved1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagWAVEINCAPS2A>())).ManufacturerGuid as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPS2A),
            "::",
            stringify!(ManufacturerGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEINCAPS2A>())).ProductGuid as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPS2A),
            "::",
            stringify!(ProductGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEINCAPS2A>())).NameGuid as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPS2A),
            "::",
            stringify!(NameGuid)
        )
    );
}
pub type WAVEINCAPS2A = tagWAVEINCAPS2A;
pub type PWAVEINCAPS2A = *mut tagWAVEINCAPS2A;
pub type NPWAVEINCAPS2A = *mut tagWAVEINCAPS2A;
pub type LPWAVEINCAPS2A = *mut tagWAVEINCAPS2A;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagWAVEINCAPS2W {
    pub wMid: WORD,
    pub wPid: WORD,
    pub vDriverVersion: MMVERSION,
    pub szPname: [WCHAR; 32usize],
    pub dwFormats: DWORD,
    pub wChannels: WORD,
    pub wReserved1: WORD,
    pub ManufacturerGuid: GUID,
    pub ProductGuid: GUID,
    pub NameGuid: GUID,
}
#[test]
fn bindgen_test_layout_tagWAVEINCAPS2W() {
    assert_eq!(
        ::std::mem::size_of::<tagWAVEINCAPS2W>(),
        128usize,
        concat!("Size of: ", stringify!(tagWAVEINCAPS2W))
    );
    assert_eq!(
        ::std::mem::align_of::<tagWAVEINCAPS2W>(),
        1usize,
        concat!("Alignment of ", stringify!(tagWAVEINCAPS2W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEINCAPS2W>())).wMid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPS2W),
            "::",
            stringify!(wMid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEINCAPS2W>())).wPid as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPS2W),
            "::",
            stringify!(wPid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEINCAPS2W>())).vDriverVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPS2W),
            "::",
            stringify!(vDriverVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEINCAPS2W>())).szPname as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPS2W),
            "::",
            stringify!(szPname)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEINCAPS2W>())).dwFormats as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPS2W),
            "::",
            stringify!(dwFormats)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEINCAPS2W>())).wChannels as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPS2W),
            "::",
            stringify!(wChannels)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEINCAPS2W>())).wReserved1 as *const _ as usize },
        78usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPS2W),
            "::",
            stringify!(wReserved1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagWAVEINCAPS2W>())).ManufacturerGuid as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPS2W),
            "::",
            stringify!(ManufacturerGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEINCAPS2W>())).ProductGuid as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPS2W),
            "::",
            stringify!(ProductGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagWAVEINCAPS2W>())).NameGuid as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tagWAVEINCAPS2W),
            "::",
            stringify!(NameGuid)
        )
    );
}
pub type WAVEINCAPS2W = tagWAVEINCAPS2W;
pub type PWAVEINCAPS2W = *mut tagWAVEINCAPS2W;
pub type NPWAVEINCAPS2W = *mut tagWAVEINCAPS2W;
pub type LPWAVEINCAPS2W = *mut tagWAVEINCAPS2W;
pub type WAVEINCAPS2 = WAVEINCAPS2A;
pub type PWAVEINCAPS2 = PWAVEINCAPS2A;
pub type NPWAVEINCAPS2 = NPWAVEINCAPS2A;
pub type LPWAVEINCAPS2 = LPWAVEINCAPS2A;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct waveformat_tag {
    pub wFormatTag: WORD,
    pub nChannels: WORD,
    pub nSamplesPerSec: DWORD,
    pub nAvgBytesPerSec: DWORD,
    pub nBlockAlign: WORD,
}
#[test]
fn bindgen_test_layout_waveformat_tag() {
    assert_eq!(
        ::std::mem::size_of::<waveformat_tag>(),
        14usize,
        concat!("Size of: ", stringify!(waveformat_tag))
    );
    assert_eq!(
        ::std::mem::align_of::<waveformat_tag>(),
        1usize,
        concat!("Alignment of ", stringify!(waveformat_tag))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<waveformat_tag>())).wFormatTag as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(waveformat_tag),
            "::",
            stringify!(wFormatTag)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<waveformat_tag>())).nChannels as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(waveformat_tag),
            "::",
            stringify!(nChannels)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<waveformat_tag>())).nSamplesPerSec as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(waveformat_tag),
            "::",
            stringify!(nSamplesPerSec)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<waveformat_tag>())).nAvgBytesPerSec as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(waveformat_tag),
            "::",
            stringify!(nAvgBytesPerSec)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<waveformat_tag>())).nBlockAlign as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(waveformat_tag),
            "::",
            stringify!(nBlockAlign)
        )
    );
}
pub type WAVEFORMAT = waveformat_tag;
pub type PWAVEFORMAT = *mut waveformat_tag;
pub type NPWAVEFORMAT = *mut waveformat_tag;
pub type LPWAVEFORMAT = *mut waveformat_tag;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct pcmwaveformat_tag {
    pub wf: WAVEFORMAT,
    pub wBitsPerSample: WORD,
}
#[test]
fn bindgen_test_layout_pcmwaveformat_tag() {
    assert_eq!(
        ::std::mem::size_of::<pcmwaveformat_tag>(),
        16usize,
        concat!("Size of: ", stringify!(pcmwaveformat_tag))
    );
    assert_eq!(
        ::std::mem::align_of::<pcmwaveformat_tag>(),
        1usize,
        concat!("Alignment of ", stringify!(pcmwaveformat_tag))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<pcmwaveformat_tag>())).wf as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(pcmwaveformat_tag),
            "::",
            stringify!(wf)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<pcmwaveformat_tag>())).wBitsPerSample as *const _ as usize
        },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(pcmwaveformat_tag),
            "::",
            stringify!(wBitsPerSample)
        )
    );
}
pub type PCMWAVEFORMAT = pcmwaveformat_tag;
pub type PPCMWAVEFORMAT = *mut pcmwaveformat_tag;
pub type NPPCMWAVEFORMAT = *mut pcmwaveformat_tag;
pub type LPPCMWAVEFORMAT = *mut pcmwaveformat_tag;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tWAVEFORMATEX {
    pub wFormatTag: WORD,
    pub nChannels: WORD,
    pub nSamplesPerSec: DWORD,
    pub nAvgBytesPerSec: DWORD,
    pub nBlockAlign: WORD,
    pub wBitsPerSample: WORD,
    pub cbSize: WORD,
}
#[test]
fn bindgen_test_layout_tWAVEFORMATEX() {
    assert_eq!(
        ::std::mem::size_of::<tWAVEFORMATEX>(),
        18usize,
        concat!("Size of: ", stringify!(tWAVEFORMATEX))
    );
    assert_eq!(
        ::std::mem::align_of::<tWAVEFORMATEX>(),
        1usize,
        concat!("Alignment of ", stringify!(tWAVEFORMATEX))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tWAVEFORMATEX>())).wFormatTag as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tWAVEFORMATEX),
            "::",
            stringify!(wFormatTag)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tWAVEFORMATEX>())).nChannels as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tWAVEFORMATEX),
            "::",
            stringify!(nChannels)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tWAVEFORMATEX>())).nSamplesPerSec as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tWAVEFORMATEX),
            "::",
            stringify!(nSamplesPerSec)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tWAVEFORMATEX>())).nAvgBytesPerSec as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tWAVEFORMATEX),
            "::",
            stringify!(nAvgBytesPerSec)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tWAVEFORMATEX>())).nBlockAlign as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tWAVEFORMATEX),
            "::",
            stringify!(nBlockAlign)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tWAVEFORMATEX>())).wBitsPerSample as *const _ as usize },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(tWAVEFORMATEX),
            "::",
            stringify!(wBitsPerSample)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tWAVEFORMATEX>())).cbSize as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tWAVEFORMATEX),
            "::",
            stringify!(cbSize)
        )
    );
}
pub type WAVEFORMATEX = tWAVEFORMATEX;
pub type PWAVEFORMATEX = *mut tWAVEFORMATEX;
pub type NPWAVEFORMATEX = *mut tWAVEFORMATEX;
pub type LPWAVEFORMATEX = *mut tWAVEFORMATEX;
pub type LPCWAVEFORMATEX = *const WAVEFORMATEX;
extern "C" {
    pub fn waveOutGetNumDevs() -> UINT;
}
extern "C" {
    pub fn waveOutGetDevCapsA(uDeviceID: UINT_PTR, pwoc: LPWAVEOUTCAPSA, cbwoc: UINT) -> MMRESULT;
}
extern "C" {
    pub fn waveOutGetDevCapsW(uDeviceID: UINT_PTR, pwoc: LPWAVEOUTCAPSW, cbwoc: UINT) -> MMRESULT;
}
extern "C" {
    pub fn waveOutGetVolume(hwo: HWAVEOUT, pdwVolume: LPDWORD) -> MMRESULT;
}
extern "C" {
    pub fn waveOutSetVolume(hwo: HWAVEOUT, dwVolume: DWORD) -> MMRESULT;
}
extern "C" {
    pub fn waveOutGetErrorTextA(mmrError: MMRESULT, pszText: LPSTR, cchText: UINT) -> MMRESULT;
}
extern "C" {
    pub fn waveOutGetErrorTextW(mmrError: MMRESULT, pszText: LPWSTR, cchText: UINT) -> MMRESULT;
}
extern "C" {
    pub fn waveOutOpen(
        phwo: LPHWAVEOUT,
        uDeviceID: UINT,
        pwfx: LPCWAVEFORMATEX,
        dwCallback: DWORD_PTR,
        dwInstance: DWORD_PTR,
        fdwOpen: DWORD,
    ) -> MMRESULT;
}
extern "C" {
    pub fn waveOutClose(hwo: HWAVEOUT) -> MMRESULT;
}
extern "C" {
    pub fn waveOutPrepareHeader(hwo: HWAVEOUT, pwh: LPWAVEHDR, cbwh: UINT) -> MMRESULT;
}
extern "C" {
    pub fn waveOutUnprepareHeader(hwo: HWAVEOUT, pwh: LPWAVEHDR, cbwh: UINT) -> MMRESULT;
}
extern "C" {
    pub fn waveOutWrite(hwo: HWAVEOUT, pwh: LPWAVEHDR, cbwh: UINT) -> MMRESULT;
}
extern "C" {
    pub fn waveOutPause(hwo: HWAVEOUT) -> MMRESULT;
}
extern "C" {
    pub fn waveOutRestart(hwo: HWAVEOUT) -> MMRESULT;
}
extern "C" {
    pub fn waveOutReset(hwo: HWAVEOUT) -> MMRESULT;
}
extern "C" {
    pub fn waveOutBreakLoop(hwo: HWAVEOUT) -> MMRESULT;
}
extern "C" {
    pub fn waveOutGetPosition(hwo: HWAVEOUT, pmmt: LPMMTIME, cbmmt: UINT) -> MMRESULT;
}
extern "C" {
    pub fn waveOutGetPitch(hwo: HWAVEOUT, pdwPitch: LPDWORD) -> MMRESULT;
}
extern "C" {
    pub fn waveOutSetPitch(hwo: HWAVEOUT, dwPitch: DWORD) -> MMRESULT;
}
extern "C" {
    pub fn waveOutGetPlaybackRate(hwo: HWAVEOUT, pdwRate: LPDWORD) -> MMRESULT;
}
extern "C" {
    pub fn waveOutSetPlaybackRate(hwo: HWAVEOUT, dwRate: DWORD) -> MMRESULT;
}
extern "C" {
    pub fn waveOutGetID(hwo: HWAVEOUT, puDeviceID: LPUINT) -> MMRESULT;
}
extern "C" {
    pub fn waveOutMessage(hwo: HWAVEOUT, uMsg: UINT, dw1: DWORD_PTR, dw2: DWORD_PTR) -> MMRESULT;
}
extern "C" {
    pub fn waveInGetNumDevs() -> UINT;
}
extern "C" {
    pub fn waveInGetDevCapsA(uDeviceID: UINT_PTR, pwic: LPWAVEINCAPSA, cbwic: UINT) -> MMRESULT;
}
extern "C" {
    pub fn waveInGetDevCapsW(uDeviceID: UINT_PTR, pwic: LPWAVEINCAPSW, cbwic: UINT) -> MMRESULT;
}
extern "C" {
    pub fn waveInGetErrorTextA(mmrError: MMRESULT, pszText: LPSTR, cchText: UINT) -> MMRESULT;
}
extern "C" {
    pub fn waveInGetErrorTextW(mmrError: MMRESULT, pszText: LPWSTR, cchText: UINT) -> MMRESULT;
}
extern "C" {
    pub fn waveInOpen(
        phwi: LPHWAVEIN,
        uDeviceID: UINT,
        pwfx: LPCWAVEFORMATEX,
        dwCallback: DWORD_PTR,
        dwInstance: DWORD_PTR,
        fdwOpen: DWORD,
    ) -> MMRESULT;
}
extern "C" {
    pub fn waveInClose(hwi: HWAVEIN) -> MMRESULT;
}
extern "C" {
    pub fn waveInPrepareHeader(hwi: HWAVEIN, pwh: LPWAVEHDR, cbwh: UINT) -> MMRESULT;
}
extern "C" {
    pub fn waveInUnprepareHeader(hwi: HWAVEIN, pwh: LPWAVEHDR, cbwh: UINT) -> MMRESULT;
}
extern "C" {
    pub fn waveInAddBuffer(hwi: HWAVEIN, pwh: LPWAVEHDR, cbwh: UINT) -> MMRESULT;
}
extern "C" {
    pub fn waveInStart(hwi: HWAVEIN) -> MMRESULT;
}
extern "C" {
    pub fn waveInStop(hwi: HWAVEIN) -> MMRESULT;
}
extern "C" {
    pub fn waveInReset(hwi: HWAVEIN) -> MMRESULT;
}
extern "C" {
    pub fn waveInGetPosition(hwi: HWAVEIN, pmmt: LPMMTIME, cbmmt: UINT) -> MMRESULT;
}
extern "C" {
    pub fn waveInGetID(hwi: HWAVEIN, puDeviceID: LPUINT) -> MMRESULT;
}
extern "C" {
    pub fn waveInMessage(hwi: HWAVEIN, uMsg: UINT, dw1: DWORD_PTR, dw2: DWORD_PTR) -> MMRESULT;
}
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct HMIDI__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HMIDI__() {
    assert_eq!(
        ::std::mem::size_of::<HMIDI__>(),
        4usize,
        concat!("Size of: ", stringify!(HMIDI__))
    );
    assert_eq!(
        ::std::mem::align_of::<HMIDI__>(),
        1usize,
        concat!("Alignment of ", stringify!(HMIDI__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HMIDI__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HMIDI__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HMIDI = *mut HMIDI__;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct HMIDIIN__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HMIDIIN__() {
    assert_eq!(
        ::std::mem::size_of::<HMIDIIN__>(),
        4usize,
        concat!("Size of: ", stringify!(HMIDIIN__))
    );
    assert_eq!(
        ::std::mem::align_of::<HMIDIIN__>(),
        1usize,
        concat!("Alignment of ", stringify!(HMIDIIN__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HMIDIIN__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HMIDIIN__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HMIDIIN = *mut HMIDIIN__;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct HMIDIOUT__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HMIDIOUT__() {
    assert_eq!(
        ::std::mem::size_of::<HMIDIOUT__>(),
        4usize,
        concat!("Size of: ", stringify!(HMIDIOUT__))
    );
    assert_eq!(
        ::std::mem::align_of::<HMIDIOUT__>(),
        1usize,
        concat!("Alignment of ", stringify!(HMIDIOUT__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HMIDIOUT__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HMIDIOUT__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HMIDIOUT = *mut HMIDIOUT__;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct HMIDISTRM__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HMIDISTRM__() {
    assert_eq!(
        ::std::mem::size_of::<HMIDISTRM__>(),
        4usize,
        concat!("Size of: ", stringify!(HMIDISTRM__))
    );
    assert_eq!(
        ::std::mem::align_of::<HMIDISTRM__>(),
        1usize,
        concat!("Alignment of ", stringify!(HMIDISTRM__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HMIDISTRM__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HMIDISTRM__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HMIDISTRM = *mut HMIDISTRM__;
pub type LPHMIDI = *mut HMIDI;
pub type LPHMIDIIN = *mut HMIDIIN;
pub type LPHMIDIOUT = *mut HMIDIOUT;
pub type LPHMIDISTRM = *mut HMIDISTRM;
pub type LPMIDICALLBACK = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: HDRVR,
        arg2: UINT,
        arg3: DWORD_PTR,
        arg4: DWORD_PTR,
        arg5: DWORD_PTR,
    ),
>;
pub type PATCHARRAY = [WORD; 128usize];
pub type LPPATCHARRAY = *mut WORD;
pub type KEYARRAY = [WORD; 128usize];
pub type LPKEYARRAY = *mut WORD;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMIDIOUTCAPSA {
    pub wMid: WORD,
    pub wPid: WORD,
    pub vDriverVersion: MMVERSION,
    pub szPname: [CHAR; 32usize],
    pub wTechnology: WORD,
    pub wVoices: WORD,
    pub wNotes: WORD,
    pub wChannelMask: WORD,
    pub dwSupport: DWORD,
}
#[test]
fn bindgen_test_layout_tagMIDIOUTCAPSA() {
    assert_eq!(
        ::std::mem::size_of::<tagMIDIOUTCAPSA>(),
        52usize,
        concat!("Size of: ", stringify!(tagMIDIOUTCAPSA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMIDIOUTCAPSA>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMIDIOUTCAPSA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPSA>())).wMid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPSA),
            "::",
            stringify!(wMid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPSA>())).wPid as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPSA),
            "::",
            stringify!(wPid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPSA>())).vDriverVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPSA),
            "::",
            stringify!(vDriverVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPSA>())).szPname as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPSA),
            "::",
            stringify!(szPname)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPSA>())).wTechnology as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPSA),
            "::",
            stringify!(wTechnology)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPSA>())).wVoices as *const _ as usize },
        42usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPSA),
            "::",
            stringify!(wVoices)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPSA>())).wNotes as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPSA),
            "::",
            stringify!(wNotes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPSA>())).wChannelMask as *const _ as usize },
        46usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPSA),
            "::",
            stringify!(wChannelMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPSA>())).dwSupport as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPSA),
            "::",
            stringify!(dwSupport)
        )
    );
}
pub type MIDIOUTCAPSA = tagMIDIOUTCAPSA;
pub type PMIDIOUTCAPSA = *mut tagMIDIOUTCAPSA;
pub type NPMIDIOUTCAPSA = *mut tagMIDIOUTCAPSA;
pub type LPMIDIOUTCAPSA = *mut tagMIDIOUTCAPSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMIDIOUTCAPSW {
    pub wMid: WORD,
    pub wPid: WORD,
    pub vDriverVersion: MMVERSION,
    pub szPname: [WCHAR; 32usize],
    pub wTechnology: WORD,
    pub wVoices: WORD,
    pub wNotes: WORD,
    pub wChannelMask: WORD,
    pub dwSupport: DWORD,
}
#[test]
fn bindgen_test_layout_tagMIDIOUTCAPSW() {
    assert_eq!(
        ::std::mem::size_of::<tagMIDIOUTCAPSW>(),
        84usize,
        concat!("Size of: ", stringify!(tagMIDIOUTCAPSW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMIDIOUTCAPSW>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMIDIOUTCAPSW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPSW>())).wMid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPSW),
            "::",
            stringify!(wMid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPSW>())).wPid as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPSW),
            "::",
            stringify!(wPid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPSW>())).vDriverVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPSW),
            "::",
            stringify!(vDriverVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPSW>())).szPname as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPSW),
            "::",
            stringify!(szPname)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPSW>())).wTechnology as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPSW),
            "::",
            stringify!(wTechnology)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPSW>())).wVoices as *const _ as usize },
        74usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPSW),
            "::",
            stringify!(wVoices)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPSW>())).wNotes as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPSW),
            "::",
            stringify!(wNotes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPSW>())).wChannelMask as *const _ as usize },
        78usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPSW),
            "::",
            stringify!(wChannelMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPSW>())).dwSupport as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPSW),
            "::",
            stringify!(dwSupport)
        )
    );
}
pub type MIDIOUTCAPSW = tagMIDIOUTCAPSW;
pub type PMIDIOUTCAPSW = *mut tagMIDIOUTCAPSW;
pub type NPMIDIOUTCAPSW = *mut tagMIDIOUTCAPSW;
pub type LPMIDIOUTCAPSW = *mut tagMIDIOUTCAPSW;
pub type MIDIOUTCAPS = MIDIOUTCAPSA;
pub type PMIDIOUTCAPS = PMIDIOUTCAPSA;
pub type NPMIDIOUTCAPS = NPMIDIOUTCAPSA;
pub type LPMIDIOUTCAPS = LPMIDIOUTCAPSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMIDIOUTCAPS2A {
    pub wMid: WORD,
    pub wPid: WORD,
    pub vDriverVersion: MMVERSION,
    pub szPname: [CHAR; 32usize],
    pub wTechnology: WORD,
    pub wVoices: WORD,
    pub wNotes: WORD,
    pub wChannelMask: WORD,
    pub dwSupport: DWORD,
    pub ManufacturerGuid: GUID,
    pub ProductGuid: GUID,
    pub NameGuid: GUID,
}
#[test]
fn bindgen_test_layout_tagMIDIOUTCAPS2A() {
    assert_eq!(
        ::std::mem::size_of::<tagMIDIOUTCAPS2A>(),
        100usize,
        concat!("Size of: ", stringify!(tagMIDIOUTCAPS2A))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMIDIOUTCAPS2A>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMIDIOUTCAPS2A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPS2A>())).wMid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPS2A),
            "::",
            stringify!(wMid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPS2A>())).wPid as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPS2A),
            "::",
            stringify!(wPid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPS2A>())).vDriverVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPS2A),
            "::",
            stringify!(vDriverVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPS2A>())).szPname as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPS2A),
            "::",
            stringify!(szPname)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPS2A>())).wTechnology as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPS2A),
            "::",
            stringify!(wTechnology)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPS2A>())).wVoices as *const _ as usize },
        42usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPS2A),
            "::",
            stringify!(wVoices)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPS2A>())).wNotes as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPS2A),
            "::",
            stringify!(wNotes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPS2A>())).wChannelMask as *const _ as usize },
        46usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPS2A),
            "::",
            stringify!(wChannelMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPS2A>())).dwSupport as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPS2A),
            "::",
            stringify!(dwSupport)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIDIOUTCAPS2A>())).ManufacturerGuid as *const _ as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPS2A),
            "::",
            stringify!(ManufacturerGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPS2A>())).ProductGuid as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPS2A),
            "::",
            stringify!(ProductGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPS2A>())).NameGuid as *const _ as usize },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPS2A),
            "::",
            stringify!(NameGuid)
        )
    );
}
pub type MIDIOUTCAPS2A = tagMIDIOUTCAPS2A;
pub type PMIDIOUTCAPS2A = *mut tagMIDIOUTCAPS2A;
pub type NPMIDIOUTCAPS2A = *mut tagMIDIOUTCAPS2A;
pub type LPMIDIOUTCAPS2A = *mut tagMIDIOUTCAPS2A;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMIDIOUTCAPS2W {
    pub wMid: WORD,
    pub wPid: WORD,
    pub vDriverVersion: MMVERSION,
    pub szPname: [WCHAR; 32usize],
    pub wTechnology: WORD,
    pub wVoices: WORD,
    pub wNotes: WORD,
    pub wChannelMask: WORD,
    pub dwSupport: DWORD,
    pub ManufacturerGuid: GUID,
    pub ProductGuid: GUID,
    pub NameGuid: GUID,
}
#[test]
fn bindgen_test_layout_tagMIDIOUTCAPS2W() {
    assert_eq!(
        ::std::mem::size_of::<tagMIDIOUTCAPS2W>(),
        132usize,
        concat!("Size of: ", stringify!(tagMIDIOUTCAPS2W))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMIDIOUTCAPS2W>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMIDIOUTCAPS2W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPS2W>())).wMid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPS2W),
            "::",
            stringify!(wMid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPS2W>())).wPid as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPS2W),
            "::",
            stringify!(wPid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPS2W>())).vDriverVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPS2W),
            "::",
            stringify!(vDriverVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPS2W>())).szPname as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPS2W),
            "::",
            stringify!(szPname)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPS2W>())).wTechnology as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPS2W),
            "::",
            stringify!(wTechnology)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPS2W>())).wVoices as *const _ as usize },
        74usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPS2W),
            "::",
            stringify!(wVoices)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPS2W>())).wNotes as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPS2W),
            "::",
            stringify!(wNotes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPS2W>())).wChannelMask as *const _ as usize },
        78usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPS2W),
            "::",
            stringify!(wChannelMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPS2W>())).dwSupport as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPS2W),
            "::",
            stringify!(dwSupport)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIDIOUTCAPS2W>())).ManufacturerGuid as *const _ as usize
        },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPS2W),
            "::",
            stringify!(ManufacturerGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPS2W>())).ProductGuid as *const _ as usize },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPS2W),
            "::",
            stringify!(ProductGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIOUTCAPS2W>())).NameGuid as *const _ as usize },
        116usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIOUTCAPS2W),
            "::",
            stringify!(NameGuid)
        )
    );
}
pub type MIDIOUTCAPS2W = tagMIDIOUTCAPS2W;
pub type PMIDIOUTCAPS2W = *mut tagMIDIOUTCAPS2W;
pub type NPMIDIOUTCAPS2W = *mut tagMIDIOUTCAPS2W;
pub type LPMIDIOUTCAPS2W = *mut tagMIDIOUTCAPS2W;
pub type MIDIOUTCAPS2 = MIDIOUTCAPS2A;
pub type PMIDIOUTCAPS2 = PMIDIOUTCAPS2A;
pub type NPMIDIOUTCAPS2 = NPMIDIOUTCAPS2A;
pub type LPMIDIOUTCAPS2 = LPMIDIOUTCAPS2A;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMIDIINCAPSA {
    pub wMid: WORD,
    pub wPid: WORD,
    pub vDriverVersion: MMVERSION,
    pub szPname: [CHAR; 32usize],
    pub dwSupport: DWORD,
}
#[test]
fn bindgen_test_layout_tagMIDIINCAPSA() {
    assert_eq!(
        ::std::mem::size_of::<tagMIDIINCAPSA>(),
        44usize,
        concat!("Size of: ", stringify!(tagMIDIINCAPSA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMIDIINCAPSA>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMIDIINCAPSA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIINCAPSA>())).wMid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIINCAPSA),
            "::",
            stringify!(wMid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIINCAPSA>())).wPid as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIINCAPSA),
            "::",
            stringify!(wPid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIINCAPSA>())).vDriverVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIINCAPSA),
            "::",
            stringify!(vDriverVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIINCAPSA>())).szPname as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIINCAPSA),
            "::",
            stringify!(szPname)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIINCAPSA>())).dwSupport as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIINCAPSA),
            "::",
            stringify!(dwSupport)
        )
    );
}
pub type MIDIINCAPSA = tagMIDIINCAPSA;
pub type PMIDIINCAPSA = *mut tagMIDIINCAPSA;
pub type NPMIDIINCAPSA = *mut tagMIDIINCAPSA;
pub type LPMIDIINCAPSA = *mut tagMIDIINCAPSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMIDIINCAPSW {
    pub wMid: WORD,
    pub wPid: WORD,
    pub vDriverVersion: MMVERSION,
    pub szPname: [WCHAR; 32usize],
    pub dwSupport: DWORD,
}
#[test]
fn bindgen_test_layout_tagMIDIINCAPSW() {
    assert_eq!(
        ::std::mem::size_of::<tagMIDIINCAPSW>(),
        76usize,
        concat!("Size of: ", stringify!(tagMIDIINCAPSW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMIDIINCAPSW>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMIDIINCAPSW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIINCAPSW>())).wMid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIINCAPSW),
            "::",
            stringify!(wMid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIINCAPSW>())).wPid as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIINCAPSW),
            "::",
            stringify!(wPid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIINCAPSW>())).vDriverVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIINCAPSW),
            "::",
            stringify!(vDriverVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIINCAPSW>())).szPname as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIINCAPSW),
            "::",
            stringify!(szPname)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIINCAPSW>())).dwSupport as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIINCAPSW),
            "::",
            stringify!(dwSupport)
        )
    );
}
pub type MIDIINCAPSW = tagMIDIINCAPSW;
pub type PMIDIINCAPSW = *mut tagMIDIINCAPSW;
pub type NPMIDIINCAPSW = *mut tagMIDIINCAPSW;
pub type LPMIDIINCAPSW = *mut tagMIDIINCAPSW;
pub type MIDIINCAPS = MIDIINCAPSA;
pub type PMIDIINCAPS = PMIDIINCAPSA;
pub type NPMIDIINCAPS = NPMIDIINCAPSA;
pub type LPMIDIINCAPS = LPMIDIINCAPSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMIDIINCAPS2A {
    pub wMid: WORD,
    pub wPid: WORD,
    pub vDriverVersion: MMVERSION,
    pub szPname: [CHAR; 32usize],
    pub dwSupport: DWORD,
    pub ManufacturerGuid: GUID,
    pub ProductGuid: GUID,
    pub NameGuid: GUID,
}
#[test]
fn bindgen_test_layout_tagMIDIINCAPS2A() {
    assert_eq!(
        ::std::mem::size_of::<tagMIDIINCAPS2A>(),
        92usize,
        concat!("Size of: ", stringify!(tagMIDIINCAPS2A))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMIDIINCAPS2A>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMIDIINCAPS2A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIINCAPS2A>())).wMid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIINCAPS2A),
            "::",
            stringify!(wMid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIINCAPS2A>())).wPid as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIINCAPS2A),
            "::",
            stringify!(wPid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIINCAPS2A>())).vDriverVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIINCAPS2A),
            "::",
            stringify!(vDriverVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIINCAPS2A>())).szPname as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIINCAPS2A),
            "::",
            stringify!(szPname)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIINCAPS2A>())).dwSupport as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIINCAPS2A),
            "::",
            stringify!(dwSupport)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIDIINCAPS2A>())).ManufacturerGuid as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIINCAPS2A),
            "::",
            stringify!(ManufacturerGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIINCAPS2A>())).ProductGuid as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIINCAPS2A),
            "::",
            stringify!(ProductGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIINCAPS2A>())).NameGuid as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIINCAPS2A),
            "::",
            stringify!(NameGuid)
        )
    );
}
pub type MIDIINCAPS2A = tagMIDIINCAPS2A;
pub type PMIDIINCAPS2A = *mut tagMIDIINCAPS2A;
pub type NPMIDIINCAPS2A = *mut tagMIDIINCAPS2A;
pub type LPMIDIINCAPS2A = *mut tagMIDIINCAPS2A;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMIDIINCAPS2W {
    pub wMid: WORD,
    pub wPid: WORD,
    pub vDriverVersion: MMVERSION,
    pub szPname: [WCHAR; 32usize],
    pub dwSupport: DWORD,
    pub ManufacturerGuid: GUID,
    pub ProductGuid: GUID,
    pub NameGuid: GUID,
}
#[test]
fn bindgen_test_layout_tagMIDIINCAPS2W() {
    assert_eq!(
        ::std::mem::size_of::<tagMIDIINCAPS2W>(),
        124usize,
        concat!("Size of: ", stringify!(tagMIDIINCAPS2W))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMIDIINCAPS2W>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMIDIINCAPS2W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIINCAPS2W>())).wMid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIINCAPS2W),
            "::",
            stringify!(wMid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIINCAPS2W>())).wPid as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIINCAPS2W),
            "::",
            stringify!(wPid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIINCAPS2W>())).vDriverVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIINCAPS2W),
            "::",
            stringify!(vDriverVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIINCAPS2W>())).szPname as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIINCAPS2W),
            "::",
            stringify!(szPname)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIINCAPS2W>())).dwSupport as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIINCAPS2W),
            "::",
            stringify!(dwSupport)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIDIINCAPS2W>())).ManufacturerGuid as *const _ as usize
        },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIINCAPS2W),
            "::",
            stringify!(ManufacturerGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIINCAPS2W>())).ProductGuid as *const _ as usize },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIINCAPS2W),
            "::",
            stringify!(ProductGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIDIINCAPS2W>())).NameGuid as *const _ as usize },
        108usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIDIINCAPS2W),
            "::",
            stringify!(NameGuid)
        )
    );
}
pub type MIDIINCAPS2W = tagMIDIINCAPS2W;
pub type PMIDIINCAPS2W = *mut tagMIDIINCAPS2W;
pub type NPMIDIINCAPS2W = *mut tagMIDIINCAPS2W;
pub type LPMIDIINCAPS2W = *mut tagMIDIINCAPS2W;
pub type MIDIINCAPS2 = MIDIINCAPS2A;
pub type PMIDIINCAPS2 = PMIDIINCAPS2A;
pub type NPMIDIINCAPS2 = NPMIDIINCAPS2A;
pub type LPMIDIINCAPS2 = LPMIDIINCAPS2A;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct midihdr_tag {
    pub lpData: LPSTR,
    pub dwBufferLength: DWORD,
    pub dwBytesRecorded: DWORD,
    pub dwUser: DWORD_PTR,
    pub dwFlags: DWORD,
    pub lpNext: *mut midihdr_tag,
    pub reserved: DWORD_PTR,
    pub dwOffset: DWORD,
    pub dwReserved: [DWORD_PTR; 8usize],
}
#[test]
fn bindgen_test_layout_midihdr_tag() {
    assert_eq!(
        ::std::mem::size_of::<midihdr_tag>(),
        112usize,
        concat!("Size of: ", stringify!(midihdr_tag))
    );
    assert_eq!(
        ::std::mem::align_of::<midihdr_tag>(),
        1usize,
        concat!("Alignment of ", stringify!(midihdr_tag))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<midihdr_tag>())).lpData as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(midihdr_tag),
            "::",
            stringify!(lpData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<midihdr_tag>())).dwBufferLength as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(midihdr_tag),
            "::",
            stringify!(dwBufferLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<midihdr_tag>())).dwBytesRecorded as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(midihdr_tag),
            "::",
            stringify!(dwBytesRecorded)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<midihdr_tag>())).dwUser as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(midihdr_tag),
            "::",
            stringify!(dwUser)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<midihdr_tag>())).dwFlags as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(midihdr_tag),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<midihdr_tag>())).lpNext as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(midihdr_tag),
            "::",
            stringify!(lpNext)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<midihdr_tag>())).reserved as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(midihdr_tag),
            "::",
            stringify!(reserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<midihdr_tag>())).dwOffset as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(midihdr_tag),
            "::",
            stringify!(dwOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<midihdr_tag>())).dwReserved as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(midihdr_tag),
            "::",
            stringify!(dwReserved)
        )
    );
}
pub type MIDIHDR = midihdr_tag;
pub type PMIDIHDR = *mut midihdr_tag;
pub type NPMIDIHDR = *mut midihdr_tag;
pub type LPMIDIHDR = *mut midihdr_tag;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct midievent_tag {
    pub dwDeltaTime: DWORD,
    pub dwStreamID: DWORD,
    pub dwEvent: DWORD,
    pub dwParms: [DWORD; 1usize],
}
#[test]
fn bindgen_test_layout_midievent_tag() {
    assert_eq!(
        ::std::mem::size_of::<midievent_tag>(),
        16usize,
        concat!("Size of: ", stringify!(midievent_tag))
    );
    assert_eq!(
        ::std::mem::align_of::<midievent_tag>(),
        1usize,
        concat!("Alignment of ", stringify!(midievent_tag))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<midievent_tag>())).dwDeltaTime as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(midievent_tag),
            "::",
            stringify!(dwDeltaTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<midievent_tag>())).dwStreamID as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(midievent_tag),
            "::",
            stringify!(dwStreamID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<midievent_tag>())).dwEvent as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(midievent_tag),
            "::",
            stringify!(dwEvent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<midievent_tag>())).dwParms as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(midievent_tag),
            "::",
            stringify!(dwParms)
        )
    );
}
pub type MIDIEVENT = midievent_tag;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct midistrmbuffver_tag {
    pub dwVersion: DWORD,
    pub dwMid: DWORD,
    pub dwOEMVersion: DWORD,
}
#[test]
fn bindgen_test_layout_midistrmbuffver_tag() {
    assert_eq!(
        ::std::mem::size_of::<midistrmbuffver_tag>(),
        12usize,
        concat!("Size of: ", stringify!(midistrmbuffver_tag))
    );
    assert_eq!(
        ::std::mem::align_of::<midistrmbuffver_tag>(),
        1usize,
        concat!("Alignment of ", stringify!(midistrmbuffver_tag))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<midistrmbuffver_tag>())).dwVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(midistrmbuffver_tag),
            "::",
            stringify!(dwVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<midistrmbuffver_tag>())).dwMid as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(midistrmbuffver_tag),
            "::",
            stringify!(dwMid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<midistrmbuffver_tag>())).dwOEMVersion as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(midistrmbuffver_tag),
            "::",
            stringify!(dwOEMVersion)
        )
    );
}
pub type MIDISTRMBUFFVER = midistrmbuffver_tag;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct midiproptimediv_tag {
    pub cbStruct: DWORD,
    pub dwTimeDiv: DWORD,
}
#[test]
fn bindgen_test_layout_midiproptimediv_tag() {
    assert_eq!(
        ::std::mem::size_of::<midiproptimediv_tag>(),
        8usize,
        concat!("Size of: ", stringify!(midiproptimediv_tag))
    );
    assert_eq!(
        ::std::mem::align_of::<midiproptimediv_tag>(),
        1usize,
        concat!("Alignment of ", stringify!(midiproptimediv_tag))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<midiproptimediv_tag>())).cbStruct as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(midiproptimediv_tag),
            "::",
            stringify!(cbStruct)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<midiproptimediv_tag>())).dwTimeDiv as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(midiproptimediv_tag),
            "::",
            stringify!(dwTimeDiv)
        )
    );
}
pub type MIDIPROPTIMEDIV = midiproptimediv_tag;
pub type LPMIDIPROPTIMEDIV = *mut midiproptimediv_tag;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct midiproptempo_tag {
    pub cbStruct: DWORD,
    pub dwTempo: DWORD,
}
#[test]
fn bindgen_test_layout_midiproptempo_tag() {
    assert_eq!(
        ::std::mem::size_of::<midiproptempo_tag>(),
        8usize,
        concat!("Size of: ", stringify!(midiproptempo_tag))
    );
    assert_eq!(
        ::std::mem::align_of::<midiproptempo_tag>(),
        1usize,
        concat!("Alignment of ", stringify!(midiproptempo_tag))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<midiproptempo_tag>())).cbStruct as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(midiproptempo_tag),
            "::",
            stringify!(cbStruct)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<midiproptempo_tag>())).dwTempo as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(midiproptempo_tag),
            "::",
            stringify!(dwTempo)
        )
    );
}
pub type MIDIPROPTEMPO = midiproptempo_tag;
pub type LPMIDIPROPTEMPO = *mut midiproptempo_tag;
extern "C" {
    pub fn midiOutGetNumDevs() -> UINT;
}
extern "C" {
    pub fn midiStreamOpen(
        phms: LPHMIDISTRM,
        puDeviceID: LPUINT,
        cMidi: DWORD,
        dwCallback: DWORD_PTR,
        dwInstance: DWORD_PTR,
        fdwOpen: DWORD,
    ) -> MMRESULT;
}
extern "C" {
    pub fn midiStreamClose(hms: HMIDISTRM) -> MMRESULT;
}
extern "C" {
    pub fn midiStreamProperty(hms: HMIDISTRM, lppropdata: LPBYTE, dwProperty: DWORD) -> MMRESULT;
}
extern "C" {
    pub fn midiStreamPosition(hms: HMIDISTRM, lpmmt: LPMMTIME, cbmmt: UINT) -> MMRESULT;
}
extern "C" {
    pub fn midiStreamOut(hms: HMIDISTRM, pmh: LPMIDIHDR, cbmh: UINT) -> MMRESULT;
}
extern "C" {
    pub fn midiStreamPause(hms: HMIDISTRM) -> MMRESULT;
}
extern "C" {
    pub fn midiStreamRestart(hms: HMIDISTRM) -> MMRESULT;
}
extern "C" {
    pub fn midiStreamStop(hms: HMIDISTRM) -> MMRESULT;
}
extern "C" {
    pub fn midiConnect(hmi: HMIDI, hmo: HMIDIOUT, pReserved: LPVOID) -> MMRESULT;
}
extern "C" {
    pub fn midiDisconnect(hmi: HMIDI, hmo: HMIDIOUT, pReserved: LPVOID) -> MMRESULT;
}
extern "C" {
    pub fn midiOutGetDevCapsA(uDeviceID: UINT_PTR, pmoc: LPMIDIOUTCAPSA, cbmoc: UINT) -> MMRESULT;
}
extern "C" {
    pub fn midiOutGetDevCapsW(uDeviceID: UINT_PTR, pmoc: LPMIDIOUTCAPSW, cbmoc: UINT) -> MMRESULT;
}
extern "C" {
    pub fn midiOutGetVolume(hmo: HMIDIOUT, pdwVolume: LPDWORD) -> MMRESULT;
}
extern "C" {
    pub fn midiOutSetVolume(hmo: HMIDIOUT, dwVolume: DWORD) -> MMRESULT;
}
extern "C" {
    pub fn midiOutGetErrorTextA(mmrError: MMRESULT, pszText: LPSTR, cchText: UINT) -> MMRESULT;
}
extern "C" {
    pub fn midiOutGetErrorTextW(mmrError: MMRESULT, pszText: LPWSTR, cchText: UINT) -> MMRESULT;
}
extern "C" {
    pub fn midiOutOpen(
        phmo: LPHMIDIOUT,
        uDeviceID: UINT,
        dwCallback: DWORD_PTR,
        dwInstance: DWORD_PTR,
        fdwOpen: DWORD,
    ) -> MMRESULT;
}
extern "C" {
    pub fn midiOutClose(hmo: HMIDIOUT) -> MMRESULT;
}
extern "C" {
    pub fn midiOutPrepareHeader(hmo: HMIDIOUT, pmh: LPMIDIHDR, cbmh: UINT) -> MMRESULT;
}
extern "C" {
    pub fn midiOutUnprepareHeader(hmo: HMIDIOUT, pmh: LPMIDIHDR, cbmh: UINT) -> MMRESULT;
}
extern "C" {
    pub fn midiOutShortMsg(hmo: HMIDIOUT, dwMsg: DWORD) -> MMRESULT;
}
extern "C" {
    pub fn midiOutLongMsg(hmo: HMIDIOUT, pmh: LPMIDIHDR, cbmh: UINT) -> MMRESULT;
}
extern "C" {
    pub fn midiOutReset(hmo: HMIDIOUT) -> MMRESULT;
}
extern "C" {
    pub fn midiOutCachePatches(hmo: HMIDIOUT, uBank: UINT, pwpa: LPWORD, fuCache: UINT)
        -> MMRESULT;
}
extern "C" {
    pub fn midiOutCacheDrumPatches(
        hmo: HMIDIOUT,
        uPatch: UINT,
        pwkya: LPWORD,
        fuCache: UINT,
    ) -> MMRESULT;
}
extern "C" {
    pub fn midiOutGetID(hmo: HMIDIOUT, puDeviceID: LPUINT) -> MMRESULT;
}
extern "C" {
    pub fn midiOutMessage(hmo: HMIDIOUT, uMsg: UINT, dw1: DWORD_PTR, dw2: DWORD_PTR) -> MMRESULT;
}
extern "C" {
    pub fn midiInGetNumDevs() -> UINT;
}
extern "C" {
    pub fn midiInGetDevCapsA(uDeviceID: UINT_PTR, pmic: LPMIDIINCAPSA, cbmic: UINT) -> MMRESULT;
}
extern "C" {
    pub fn midiInGetDevCapsW(uDeviceID: UINT_PTR, pmic: LPMIDIINCAPSW, cbmic: UINT) -> MMRESULT;
}
extern "C" {
    pub fn midiInGetErrorTextA(mmrError: MMRESULT, pszText: LPSTR, cchText: UINT) -> MMRESULT;
}
extern "C" {
    pub fn midiInGetErrorTextW(mmrError: MMRESULT, pszText: LPWSTR, cchText: UINT) -> MMRESULT;
}
extern "C" {
    pub fn midiInOpen(
        phmi: LPHMIDIIN,
        uDeviceID: UINT,
        dwCallback: DWORD_PTR,
        dwInstance: DWORD_PTR,
        fdwOpen: DWORD,
    ) -> MMRESULT;
}
extern "C" {
    pub fn midiInClose(hmi: HMIDIIN) -> MMRESULT;
}
extern "C" {
    pub fn midiInPrepareHeader(hmi: HMIDIIN, pmh: LPMIDIHDR, cbmh: UINT) -> MMRESULT;
}
extern "C" {
    pub fn midiInUnprepareHeader(hmi: HMIDIIN, pmh: LPMIDIHDR, cbmh: UINT) -> MMRESULT;
}
extern "C" {
    pub fn midiInAddBuffer(hmi: HMIDIIN, pmh: LPMIDIHDR, cbmh: UINT) -> MMRESULT;
}
extern "C" {
    pub fn midiInStart(hmi: HMIDIIN) -> MMRESULT;
}
extern "C" {
    pub fn midiInStop(hmi: HMIDIIN) -> MMRESULT;
}
extern "C" {
    pub fn midiInReset(hmi: HMIDIIN) -> MMRESULT;
}
extern "C" {
    pub fn midiInGetID(hmi: HMIDIIN, puDeviceID: LPUINT) -> MMRESULT;
}
extern "C" {
    pub fn midiInMessage(hmi: HMIDIIN, uMsg: UINT, dw1: DWORD_PTR, dw2: DWORD_PTR) -> MMRESULT;
}
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagAUXCAPSA {
    pub wMid: WORD,
    pub wPid: WORD,
    pub vDriverVersion: MMVERSION,
    pub szPname: [CHAR; 32usize],
    pub wTechnology: WORD,
    pub wReserved1: WORD,
    pub dwSupport: DWORD,
}
#[test]
fn bindgen_test_layout_tagAUXCAPSA() {
    assert_eq!(
        ::std::mem::size_of::<tagAUXCAPSA>(),
        48usize,
        concat!("Size of: ", stringify!(tagAUXCAPSA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagAUXCAPSA>(),
        1usize,
        concat!("Alignment of ", stringify!(tagAUXCAPSA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPSA>())).wMid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPSA),
            "::",
            stringify!(wMid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPSA>())).wPid as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPSA),
            "::",
            stringify!(wPid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPSA>())).vDriverVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPSA),
            "::",
            stringify!(vDriverVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPSA>())).szPname as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPSA),
            "::",
            stringify!(szPname)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPSA>())).wTechnology as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPSA),
            "::",
            stringify!(wTechnology)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPSA>())).wReserved1 as *const _ as usize },
        42usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPSA),
            "::",
            stringify!(wReserved1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPSA>())).dwSupport as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPSA),
            "::",
            stringify!(dwSupport)
        )
    );
}
pub type AUXCAPSA = tagAUXCAPSA;
pub type PAUXCAPSA = *mut tagAUXCAPSA;
pub type NPAUXCAPSA = *mut tagAUXCAPSA;
pub type LPAUXCAPSA = *mut tagAUXCAPSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagAUXCAPSW {
    pub wMid: WORD,
    pub wPid: WORD,
    pub vDriverVersion: MMVERSION,
    pub szPname: [WCHAR; 32usize],
    pub wTechnology: WORD,
    pub wReserved1: WORD,
    pub dwSupport: DWORD,
}
#[test]
fn bindgen_test_layout_tagAUXCAPSW() {
    assert_eq!(
        ::std::mem::size_of::<tagAUXCAPSW>(),
        80usize,
        concat!("Size of: ", stringify!(tagAUXCAPSW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagAUXCAPSW>(),
        1usize,
        concat!("Alignment of ", stringify!(tagAUXCAPSW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPSW>())).wMid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPSW),
            "::",
            stringify!(wMid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPSW>())).wPid as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPSW),
            "::",
            stringify!(wPid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPSW>())).vDriverVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPSW),
            "::",
            stringify!(vDriverVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPSW>())).szPname as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPSW),
            "::",
            stringify!(szPname)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPSW>())).wTechnology as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPSW),
            "::",
            stringify!(wTechnology)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPSW>())).wReserved1 as *const _ as usize },
        74usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPSW),
            "::",
            stringify!(wReserved1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPSW>())).dwSupport as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPSW),
            "::",
            stringify!(dwSupport)
        )
    );
}
pub type AUXCAPSW = tagAUXCAPSW;
pub type PAUXCAPSW = *mut tagAUXCAPSW;
pub type NPAUXCAPSW = *mut tagAUXCAPSW;
pub type LPAUXCAPSW = *mut tagAUXCAPSW;
pub type AUXCAPS = AUXCAPSA;
pub type PAUXCAPS = PAUXCAPSA;
pub type NPAUXCAPS = NPAUXCAPSA;
pub type LPAUXCAPS = LPAUXCAPSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagAUXCAPS2A {
    pub wMid: WORD,
    pub wPid: WORD,
    pub vDriverVersion: MMVERSION,
    pub szPname: [CHAR; 32usize],
    pub wTechnology: WORD,
    pub wReserved1: WORD,
    pub dwSupport: DWORD,
    pub ManufacturerGuid: GUID,
    pub ProductGuid: GUID,
    pub NameGuid: GUID,
}
#[test]
fn bindgen_test_layout_tagAUXCAPS2A() {
    assert_eq!(
        ::std::mem::size_of::<tagAUXCAPS2A>(),
        96usize,
        concat!("Size of: ", stringify!(tagAUXCAPS2A))
    );
    assert_eq!(
        ::std::mem::align_of::<tagAUXCAPS2A>(),
        1usize,
        concat!("Alignment of ", stringify!(tagAUXCAPS2A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPS2A>())).wMid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPS2A),
            "::",
            stringify!(wMid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPS2A>())).wPid as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPS2A),
            "::",
            stringify!(wPid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPS2A>())).vDriverVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPS2A),
            "::",
            stringify!(vDriverVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPS2A>())).szPname as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPS2A),
            "::",
            stringify!(szPname)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPS2A>())).wTechnology as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPS2A),
            "::",
            stringify!(wTechnology)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPS2A>())).wReserved1 as *const _ as usize },
        42usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPS2A),
            "::",
            stringify!(wReserved1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPS2A>())).dwSupport as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPS2A),
            "::",
            stringify!(dwSupport)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPS2A>())).ManufacturerGuid as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPS2A),
            "::",
            stringify!(ManufacturerGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPS2A>())).ProductGuid as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPS2A),
            "::",
            stringify!(ProductGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPS2A>())).NameGuid as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPS2A),
            "::",
            stringify!(NameGuid)
        )
    );
}
pub type AUXCAPS2A = tagAUXCAPS2A;
pub type PAUXCAPS2A = *mut tagAUXCAPS2A;
pub type NPAUXCAPS2A = *mut tagAUXCAPS2A;
pub type LPAUXCAPS2A = *mut tagAUXCAPS2A;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagAUXCAPS2W {
    pub wMid: WORD,
    pub wPid: WORD,
    pub vDriverVersion: MMVERSION,
    pub szPname: [WCHAR; 32usize],
    pub wTechnology: WORD,
    pub wReserved1: WORD,
    pub dwSupport: DWORD,
    pub ManufacturerGuid: GUID,
    pub ProductGuid: GUID,
    pub NameGuid: GUID,
}
#[test]
fn bindgen_test_layout_tagAUXCAPS2W() {
    assert_eq!(
        ::std::mem::size_of::<tagAUXCAPS2W>(),
        128usize,
        concat!("Size of: ", stringify!(tagAUXCAPS2W))
    );
    assert_eq!(
        ::std::mem::align_of::<tagAUXCAPS2W>(),
        1usize,
        concat!("Alignment of ", stringify!(tagAUXCAPS2W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPS2W>())).wMid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPS2W),
            "::",
            stringify!(wMid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPS2W>())).wPid as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPS2W),
            "::",
            stringify!(wPid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPS2W>())).vDriverVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPS2W),
            "::",
            stringify!(vDriverVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPS2W>())).szPname as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPS2W),
            "::",
            stringify!(szPname)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPS2W>())).wTechnology as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPS2W),
            "::",
            stringify!(wTechnology)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPS2W>())).wReserved1 as *const _ as usize },
        74usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPS2W),
            "::",
            stringify!(wReserved1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPS2W>())).dwSupport as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPS2W),
            "::",
            stringify!(dwSupport)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPS2W>())).ManufacturerGuid as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPS2W),
            "::",
            stringify!(ManufacturerGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPS2W>())).ProductGuid as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPS2W),
            "::",
            stringify!(ProductGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagAUXCAPS2W>())).NameGuid as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tagAUXCAPS2W),
            "::",
            stringify!(NameGuid)
        )
    );
}
pub type AUXCAPS2W = tagAUXCAPS2W;
pub type PAUXCAPS2W = *mut tagAUXCAPS2W;
pub type NPAUXCAPS2W = *mut tagAUXCAPS2W;
pub type LPAUXCAPS2W = *mut tagAUXCAPS2W;
pub type AUXCAPS2 = AUXCAPS2A;
pub type PAUXCAPS2 = PAUXCAPS2A;
pub type NPAUXCAPS2 = NPAUXCAPS2A;
pub type LPAUXCAPS2 = LPAUXCAPS2A;
extern "C" {
    pub fn auxGetNumDevs() -> UINT;
}
extern "C" {
    pub fn auxGetDevCapsA(uDeviceID: UINT_PTR, pac: LPAUXCAPSA, cbac: UINT) -> MMRESULT;
}
extern "C" {
    pub fn auxGetDevCapsW(uDeviceID: UINT_PTR, pac: LPAUXCAPSW, cbac: UINT) -> MMRESULT;
}
extern "C" {
    pub fn auxSetVolume(uDeviceID: UINT, dwVolume: DWORD) -> MMRESULT;
}
extern "C" {
    pub fn auxGetVolume(uDeviceID: UINT, pdwVolume: LPDWORD) -> MMRESULT;
}
extern "C" {
    pub fn auxOutMessage(uDeviceID: UINT, uMsg: UINT, dw1: DWORD_PTR, dw2: DWORD_PTR) -> MMRESULT;
}
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct HMIXEROBJ__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HMIXEROBJ__() {
    assert_eq!(
        ::std::mem::size_of::<HMIXEROBJ__>(),
        4usize,
        concat!("Size of: ", stringify!(HMIXEROBJ__))
    );
    assert_eq!(
        ::std::mem::align_of::<HMIXEROBJ__>(),
        1usize,
        concat!("Alignment of ", stringify!(HMIXEROBJ__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HMIXEROBJ__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HMIXEROBJ__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HMIXEROBJ = *mut HMIXEROBJ__;
pub type LPHMIXEROBJ = *mut HMIXEROBJ;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct HMIXER__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HMIXER__() {
    assert_eq!(
        ::std::mem::size_of::<HMIXER__>(),
        4usize,
        concat!("Size of: ", stringify!(HMIXER__))
    );
    assert_eq!(
        ::std::mem::align_of::<HMIXER__>(),
        1usize,
        concat!("Alignment of ", stringify!(HMIXER__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HMIXER__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HMIXER__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HMIXER = *mut HMIXER__;
pub type LPHMIXER = *mut HMIXER;
extern "C" {
    pub fn mixerGetNumDevs() -> UINT;
}
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMIXERCAPSA {
    pub wMid: WORD,
    pub wPid: WORD,
    pub vDriverVersion: MMVERSION,
    pub szPname: [CHAR; 32usize],
    pub fdwSupport: DWORD,
    pub cDestinations: DWORD,
}
#[test]
fn bindgen_test_layout_tagMIXERCAPSA() {
    assert_eq!(
        ::std::mem::size_of::<tagMIXERCAPSA>(),
        48usize,
        concat!("Size of: ", stringify!(tagMIXERCAPSA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMIXERCAPSA>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMIXERCAPSA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCAPSA>())).wMid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCAPSA),
            "::",
            stringify!(wMid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCAPSA>())).wPid as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCAPSA),
            "::",
            stringify!(wPid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCAPSA>())).vDriverVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCAPSA),
            "::",
            stringify!(vDriverVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCAPSA>())).szPname as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCAPSA),
            "::",
            stringify!(szPname)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCAPSA>())).fdwSupport as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCAPSA),
            "::",
            stringify!(fdwSupport)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCAPSA>())).cDestinations as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCAPSA),
            "::",
            stringify!(cDestinations)
        )
    );
}
pub type MIXERCAPSA = tagMIXERCAPSA;
pub type PMIXERCAPSA = *mut tagMIXERCAPSA;
pub type LPMIXERCAPSA = *mut tagMIXERCAPSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMIXERCAPSW {
    pub wMid: WORD,
    pub wPid: WORD,
    pub vDriverVersion: MMVERSION,
    pub szPname: [WCHAR; 32usize],
    pub fdwSupport: DWORD,
    pub cDestinations: DWORD,
}
#[test]
fn bindgen_test_layout_tagMIXERCAPSW() {
    assert_eq!(
        ::std::mem::size_of::<tagMIXERCAPSW>(),
        80usize,
        concat!("Size of: ", stringify!(tagMIXERCAPSW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMIXERCAPSW>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMIXERCAPSW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCAPSW>())).wMid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCAPSW),
            "::",
            stringify!(wMid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCAPSW>())).wPid as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCAPSW),
            "::",
            stringify!(wPid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCAPSW>())).vDriverVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCAPSW),
            "::",
            stringify!(vDriverVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCAPSW>())).szPname as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCAPSW),
            "::",
            stringify!(szPname)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCAPSW>())).fdwSupport as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCAPSW),
            "::",
            stringify!(fdwSupport)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCAPSW>())).cDestinations as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCAPSW),
            "::",
            stringify!(cDestinations)
        )
    );
}
pub type MIXERCAPSW = tagMIXERCAPSW;
pub type PMIXERCAPSW = *mut tagMIXERCAPSW;
pub type LPMIXERCAPSW = *mut tagMIXERCAPSW;
pub type MIXERCAPS = MIXERCAPSA;
pub type PMIXERCAPS = PMIXERCAPSA;
pub type LPMIXERCAPS = LPMIXERCAPSA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMIXERCAPS2A {
    pub wMid: WORD,
    pub wPid: WORD,
    pub vDriverVersion: MMVERSION,
    pub szPname: [CHAR; 32usize],
    pub fdwSupport: DWORD,
    pub cDestinations: DWORD,
    pub ManufacturerGuid: GUID,
    pub ProductGuid: GUID,
    pub NameGuid: GUID,
}
#[test]
fn bindgen_test_layout_tagMIXERCAPS2A() {
    assert_eq!(
        ::std::mem::size_of::<tagMIXERCAPS2A>(),
        96usize,
        concat!("Size of: ", stringify!(tagMIXERCAPS2A))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMIXERCAPS2A>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMIXERCAPS2A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCAPS2A>())).wMid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCAPS2A),
            "::",
            stringify!(wMid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCAPS2A>())).wPid as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCAPS2A),
            "::",
            stringify!(wPid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCAPS2A>())).vDriverVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCAPS2A),
            "::",
            stringify!(vDriverVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCAPS2A>())).szPname as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCAPS2A),
            "::",
            stringify!(szPname)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCAPS2A>())).fdwSupport as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCAPS2A),
            "::",
            stringify!(fdwSupport)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCAPS2A>())).cDestinations as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCAPS2A),
            "::",
            stringify!(cDestinations)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCAPS2A>())).ManufacturerGuid as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCAPS2A),
            "::",
            stringify!(ManufacturerGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCAPS2A>())).ProductGuid as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCAPS2A),
            "::",
            stringify!(ProductGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCAPS2A>())).NameGuid as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCAPS2A),
            "::",
            stringify!(NameGuid)
        )
    );
}
pub type MIXERCAPS2A = tagMIXERCAPS2A;
pub type PMIXERCAPS2A = *mut tagMIXERCAPS2A;
pub type LPMIXERCAPS2A = *mut tagMIXERCAPS2A;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMIXERCAPS2W {
    pub wMid: WORD,
    pub wPid: WORD,
    pub vDriverVersion: MMVERSION,
    pub szPname: [WCHAR; 32usize],
    pub fdwSupport: DWORD,
    pub cDestinations: DWORD,
    pub ManufacturerGuid: GUID,
    pub ProductGuid: GUID,
    pub NameGuid: GUID,
}
#[test]
fn bindgen_test_layout_tagMIXERCAPS2W() {
    assert_eq!(
        ::std::mem::size_of::<tagMIXERCAPS2W>(),
        128usize,
        concat!("Size of: ", stringify!(tagMIXERCAPS2W))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMIXERCAPS2W>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMIXERCAPS2W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCAPS2W>())).wMid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCAPS2W),
            "::",
            stringify!(wMid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCAPS2W>())).wPid as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCAPS2W),
            "::",
            stringify!(wPid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCAPS2W>())).vDriverVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCAPS2W),
            "::",
            stringify!(vDriverVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCAPS2W>())).szPname as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCAPS2W),
            "::",
            stringify!(szPname)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCAPS2W>())).fdwSupport as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCAPS2W),
            "::",
            stringify!(fdwSupport)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCAPS2W>())).cDestinations as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCAPS2W),
            "::",
            stringify!(cDestinations)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCAPS2W>())).ManufacturerGuid as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCAPS2W),
            "::",
            stringify!(ManufacturerGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCAPS2W>())).ProductGuid as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCAPS2W),
            "::",
            stringify!(ProductGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCAPS2W>())).NameGuid as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCAPS2W),
            "::",
            stringify!(NameGuid)
        )
    );
}
pub type MIXERCAPS2W = tagMIXERCAPS2W;
pub type PMIXERCAPS2W = *mut tagMIXERCAPS2W;
pub type LPMIXERCAPS2W = *mut tagMIXERCAPS2W;
pub type MIXERCAPS2 = MIXERCAPS2A;
pub type PMIXERCAPS2 = PMIXERCAPS2A;
pub type LPMIXERCAPS2 = LPMIXERCAPS2A;
extern "C" {
    pub fn mixerGetDevCapsA(uMxId: UINT_PTR, pmxcaps: LPMIXERCAPSA, cbmxcaps: UINT) -> MMRESULT;
}
extern "C" {
    pub fn mixerGetDevCapsW(uMxId: UINT_PTR, pmxcaps: LPMIXERCAPSW, cbmxcaps: UINT) -> MMRESULT;
}
extern "C" {
    pub fn mixerOpen(
        phmx: LPHMIXER,
        uMxId: UINT,
        dwCallback: DWORD_PTR,
        dwInstance: DWORD_PTR,
        fdwOpen: DWORD,
    ) -> MMRESULT;
}
extern "C" {
    pub fn mixerClose(hmx: HMIXER) -> MMRESULT;
}
extern "C" {
    pub fn mixerMessage(hmx: HMIXER, uMsg: UINT, dwParam1: DWORD_PTR, dwParam2: DWORD_PTR)
        -> DWORD;
}
#[repr(C, packed)]
#[derive(Copy, Clone)]
pub struct tagMIXERLINEA {
    pub cbStruct: DWORD,
    pub dwDestination: DWORD,
    pub dwSource: DWORD,
    pub dwLineID: DWORD,
    pub fdwLine: DWORD,
    pub dwUser: DWORD_PTR,
    pub dwComponentType: DWORD,
    pub cChannels: DWORD,
    pub cConnections: DWORD,
    pub cControls: DWORD,
    pub szShortName: [CHAR; 16usize],
    pub szName: [CHAR; 64usize],
    pub Target: tagMIXERLINEA__bindgen_ty_1,
}
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMIXERLINEA__bindgen_ty_1 {
    pub dwType: DWORD,
    pub dwDeviceID: DWORD,
    pub wMid: WORD,
    pub wPid: WORD,
    pub vDriverVersion: MMVERSION,
    pub szPname: [CHAR; 32usize],
}
#[test]
fn bindgen_test_layout_tagMIXERLINEA__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagMIXERLINEA__bindgen_ty_1>(),
        48usize,
        concat!("Size of: ", stringify!(tagMIXERLINEA__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMIXERLINEA__bindgen_ty_1>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMIXERLINEA__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERLINEA__bindgen_ty_1>())).dwType as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEA__bindgen_ty_1),
            "::",
            stringify!(dwType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERLINEA__bindgen_ty_1>())).dwDeviceID as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEA__bindgen_ty_1),
            "::",
            stringify!(dwDeviceID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERLINEA__bindgen_ty_1>())).wMid as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEA__bindgen_ty_1),
            "::",
            stringify!(wMid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERLINEA__bindgen_ty_1>())).wPid as *const _ as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEA__bindgen_ty_1),
            "::",
            stringify!(wPid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERLINEA__bindgen_ty_1>())).vDriverVersion as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEA__bindgen_ty_1),
            "::",
            stringify!(vDriverVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERLINEA__bindgen_ty_1>())).szPname as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEA__bindgen_ty_1),
            "::",
            stringify!(szPname)
        )
    );
}
#[test]
fn bindgen_test_layout_tagMIXERLINEA() {
    assert_eq!(
        ::std::mem::size_of::<tagMIXERLINEA>(),
        172usize,
        concat!("Size of: ", stringify!(tagMIXERLINEA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMIXERLINEA>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMIXERLINEA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINEA>())).cbStruct as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEA),
            "::",
            stringify!(cbStruct)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINEA>())).dwDestination as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEA),
            "::",
            stringify!(dwDestination)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINEA>())).dwSource as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEA),
            "::",
            stringify!(dwSource)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINEA>())).dwLineID as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEA),
            "::",
            stringify!(dwLineID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINEA>())).fdwLine as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEA),
            "::",
            stringify!(fdwLine)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINEA>())).dwUser as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEA),
            "::",
            stringify!(dwUser)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINEA>())).dwComponentType as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEA),
            "::",
            stringify!(dwComponentType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINEA>())).cChannels as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEA),
            "::",
            stringify!(cChannels)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINEA>())).cConnections as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEA),
            "::",
            stringify!(cConnections)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINEA>())).cControls as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEA),
            "::",
            stringify!(cControls)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINEA>())).szShortName as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEA),
            "::",
            stringify!(szShortName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINEA>())).szName as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEA),
            "::",
            stringify!(szName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINEA>())).Target as *const _ as usize },
        124usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEA),
            "::",
            stringify!(Target)
        )
    );
}
pub type MIXERLINEA = tagMIXERLINEA;
pub type PMIXERLINEA = *mut tagMIXERLINEA;
pub type LPMIXERLINEA = *mut tagMIXERLINEA;
#[repr(C, packed)]
#[derive(Copy, Clone)]
pub struct tagMIXERLINEW {
    pub cbStruct: DWORD,
    pub dwDestination: DWORD,
    pub dwSource: DWORD,
    pub dwLineID: DWORD,
    pub fdwLine: DWORD,
    pub dwUser: DWORD_PTR,
    pub dwComponentType: DWORD,
    pub cChannels: DWORD,
    pub cConnections: DWORD,
    pub cControls: DWORD,
    pub szShortName: [WCHAR; 16usize],
    pub szName: [WCHAR; 64usize],
    pub Target: tagMIXERLINEW__bindgen_ty_1,
}
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMIXERLINEW__bindgen_ty_1 {
    pub dwType: DWORD,
    pub dwDeviceID: DWORD,
    pub wMid: WORD,
    pub wPid: WORD,
    pub vDriverVersion: MMVERSION,
    pub szPname: [WCHAR; 32usize],
}
#[test]
fn bindgen_test_layout_tagMIXERLINEW__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagMIXERLINEW__bindgen_ty_1>(),
        80usize,
        concat!("Size of: ", stringify!(tagMIXERLINEW__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMIXERLINEW__bindgen_ty_1>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMIXERLINEW__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERLINEW__bindgen_ty_1>())).dwType as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEW__bindgen_ty_1),
            "::",
            stringify!(dwType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERLINEW__bindgen_ty_1>())).dwDeviceID as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEW__bindgen_ty_1),
            "::",
            stringify!(dwDeviceID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERLINEW__bindgen_ty_1>())).wMid as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEW__bindgen_ty_1),
            "::",
            stringify!(wMid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERLINEW__bindgen_ty_1>())).wPid as *const _ as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEW__bindgen_ty_1),
            "::",
            stringify!(wPid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERLINEW__bindgen_ty_1>())).vDriverVersion as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEW__bindgen_ty_1),
            "::",
            stringify!(vDriverVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERLINEW__bindgen_ty_1>())).szPname as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEW__bindgen_ty_1),
            "::",
            stringify!(szPname)
        )
    );
}
#[test]
fn bindgen_test_layout_tagMIXERLINEW() {
    assert_eq!(
        ::std::mem::size_of::<tagMIXERLINEW>(),
        284usize,
        concat!("Size of: ", stringify!(tagMIXERLINEW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMIXERLINEW>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMIXERLINEW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINEW>())).cbStruct as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEW),
            "::",
            stringify!(cbStruct)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINEW>())).dwDestination as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEW),
            "::",
            stringify!(dwDestination)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINEW>())).dwSource as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEW),
            "::",
            stringify!(dwSource)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINEW>())).dwLineID as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEW),
            "::",
            stringify!(dwLineID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINEW>())).fdwLine as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEW),
            "::",
            stringify!(fdwLine)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINEW>())).dwUser as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEW),
            "::",
            stringify!(dwUser)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINEW>())).dwComponentType as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEW),
            "::",
            stringify!(dwComponentType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINEW>())).cChannels as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEW),
            "::",
            stringify!(cChannels)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINEW>())).cConnections as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEW),
            "::",
            stringify!(cConnections)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINEW>())).cControls as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEW),
            "::",
            stringify!(cControls)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINEW>())).szShortName as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEW),
            "::",
            stringify!(szShortName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINEW>())).szName as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEW),
            "::",
            stringify!(szName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINEW>())).Target as *const _ as usize },
        204usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINEW),
            "::",
            stringify!(Target)
        )
    );
}
pub type MIXERLINEW = tagMIXERLINEW;
pub type PMIXERLINEW = *mut tagMIXERLINEW;
pub type LPMIXERLINEW = *mut tagMIXERLINEW;
pub type MIXERLINE = MIXERLINEA;
pub type PMIXERLINE = PMIXERLINEA;
pub type LPMIXERLINE = LPMIXERLINEA;
extern "C" {
    pub fn mixerGetLineInfoA(hmxobj: HMIXEROBJ, pmxl: LPMIXERLINEA, fdwInfo: DWORD) -> MMRESULT;
}
extern "C" {
    pub fn mixerGetLineInfoW(hmxobj: HMIXEROBJ, pmxl: LPMIXERLINEW, fdwInfo: DWORD) -> MMRESULT;
}
extern "C" {
    pub fn mixerGetID(hmxobj: HMIXEROBJ, puMxId: *mut UINT, fdwId: DWORD) -> MMRESULT;
}
#[repr(C, packed)]
#[derive(Copy, Clone)]
pub struct tagMIXERCONTROLA {
    pub cbStruct: DWORD,
    pub dwControlID: DWORD,
    pub dwControlType: DWORD,
    pub fdwControl: DWORD,
    pub cMultipleItems: DWORD,
    pub szShortName: [CHAR; 16usize],
    pub szName: [CHAR; 64usize],
    pub Bounds: tagMIXERCONTROLA__bindgen_ty_1,
    pub Metrics: tagMIXERCONTROLA__bindgen_ty_2,
}
#[repr(C, packed)]
#[derive(Copy, Clone)]
pub union tagMIXERCONTROLA__bindgen_ty_1 {
    pub __bindgen_anon_1: tagMIXERCONTROLA__bindgen_ty_1__bindgen_ty_1,
    pub __bindgen_anon_2: tagMIXERCONTROLA__bindgen_ty_1__bindgen_ty_2,
    pub dwReserved: [DWORD; 6usize],
    _bindgen_union_align: [u8; 24usize],
}
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMIXERCONTROLA__bindgen_ty_1__bindgen_ty_1 {
    pub lMinimum: LONG,
    pub lMaximum: LONG,
}
#[test]
fn bindgen_test_layout_tagMIXERCONTROLA__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagMIXERCONTROLA__bindgen_ty_1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(tagMIXERCONTROLA__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tagMIXERCONTROLA__bindgen_ty_1__bindgen_ty_1>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(tagMIXERCONTROLA__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERCONTROLA__bindgen_ty_1__bindgen_ty_1>())).lMinimum
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLA__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(lMinimum)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERCONTROLA__bindgen_ty_1__bindgen_ty_1>())).lMaximum
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLA__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(lMaximum)
        )
    );
}
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMIXERCONTROLA__bindgen_ty_1__bindgen_ty_2 {
    pub dwMinimum: DWORD,
    pub dwMaximum: DWORD,
}
#[test]
fn bindgen_test_layout_tagMIXERCONTROLA__bindgen_ty_1__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<tagMIXERCONTROLA__bindgen_ty_1__bindgen_ty_2>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(tagMIXERCONTROLA__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tagMIXERCONTROLA__bindgen_ty_1__bindgen_ty_2>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(tagMIXERCONTROLA__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERCONTROLA__bindgen_ty_1__bindgen_ty_2>())).dwMinimum
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLA__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(dwMinimum)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERCONTROLA__bindgen_ty_1__bindgen_ty_2>())).dwMaximum
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLA__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(dwMaximum)
        )
    );
}
#[test]
fn bindgen_test_layout_tagMIXERCONTROLA__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagMIXERCONTROLA__bindgen_ty_1>(),
        24usize,
        concat!("Size of: ", stringify!(tagMIXERCONTROLA__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMIXERCONTROLA__bindgen_ty_1>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMIXERCONTROLA__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERCONTROLA__bindgen_ty_1>())).dwReserved as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLA__bindgen_ty_1),
            "::",
            stringify!(dwReserved)
        )
    );
}
#[repr(C, packed)]
#[derive(Copy, Clone)]
pub union tagMIXERCONTROLA__bindgen_ty_2 {
    pub cSteps: DWORD,
    pub cbCustomData: DWORD,
    pub dwReserved: [DWORD; 6usize],
    _bindgen_union_align: [u8; 24usize],
}
#[test]
fn bindgen_test_layout_tagMIXERCONTROLA__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<tagMIXERCONTROLA__bindgen_ty_2>(),
        24usize,
        concat!("Size of: ", stringify!(tagMIXERCONTROLA__bindgen_ty_2))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMIXERCONTROLA__bindgen_ty_2>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMIXERCONTROLA__bindgen_ty_2))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERCONTROLA__bindgen_ty_2>())).cSteps as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLA__bindgen_ty_2),
            "::",
            stringify!(cSteps)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERCONTROLA__bindgen_ty_2>())).cbCustomData as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLA__bindgen_ty_2),
            "::",
            stringify!(cbCustomData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERCONTROLA__bindgen_ty_2>())).dwReserved as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLA__bindgen_ty_2),
            "::",
            stringify!(dwReserved)
        )
    );
}
#[test]
fn bindgen_test_layout_tagMIXERCONTROLA() {
    assert_eq!(
        ::std::mem::size_of::<tagMIXERCONTROLA>(),
        148usize,
        concat!("Size of: ", stringify!(tagMIXERCONTROLA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMIXERCONTROLA>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMIXERCONTROLA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCONTROLA>())).cbStruct as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLA),
            "::",
            stringify!(cbStruct)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCONTROLA>())).dwControlID as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLA),
            "::",
            stringify!(dwControlID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCONTROLA>())).dwControlType as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLA),
            "::",
            stringify!(dwControlType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCONTROLA>())).fdwControl as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLA),
            "::",
            stringify!(fdwControl)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCONTROLA>())).cMultipleItems as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLA),
            "::",
            stringify!(cMultipleItems)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCONTROLA>())).szShortName as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLA),
            "::",
            stringify!(szShortName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCONTROLA>())).szName as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLA),
            "::",
            stringify!(szName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCONTROLA>())).Bounds as *const _ as usize },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLA),
            "::",
            stringify!(Bounds)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCONTROLA>())).Metrics as *const _ as usize },
        124usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLA),
            "::",
            stringify!(Metrics)
        )
    );
}
pub type MIXERCONTROLA = tagMIXERCONTROLA;
pub type PMIXERCONTROLA = *mut tagMIXERCONTROLA;
pub type LPMIXERCONTROLA = *mut tagMIXERCONTROLA;
#[repr(C, packed)]
#[derive(Copy, Clone)]
pub struct tagMIXERCONTROLW {
    pub cbStruct: DWORD,
    pub dwControlID: DWORD,
    pub dwControlType: DWORD,
    pub fdwControl: DWORD,
    pub cMultipleItems: DWORD,
    pub szShortName: [WCHAR; 16usize],
    pub szName: [WCHAR; 64usize],
    pub Bounds: tagMIXERCONTROLW__bindgen_ty_1,
    pub Metrics: tagMIXERCONTROLW__bindgen_ty_2,
}
#[repr(C, packed)]
#[derive(Copy, Clone)]
pub union tagMIXERCONTROLW__bindgen_ty_1 {
    pub __bindgen_anon_1: tagMIXERCONTROLW__bindgen_ty_1__bindgen_ty_1,
    pub __bindgen_anon_2: tagMIXERCONTROLW__bindgen_ty_1__bindgen_ty_2,
    pub dwReserved: [DWORD; 6usize],
    _bindgen_union_align: [u8; 24usize],
}
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMIXERCONTROLW__bindgen_ty_1__bindgen_ty_1 {
    pub lMinimum: LONG,
    pub lMaximum: LONG,
}
#[test]
fn bindgen_test_layout_tagMIXERCONTROLW__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagMIXERCONTROLW__bindgen_ty_1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(tagMIXERCONTROLW__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tagMIXERCONTROLW__bindgen_ty_1__bindgen_ty_1>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(tagMIXERCONTROLW__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERCONTROLW__bindgen_ty_1__bindgen_ty_1>())).lMinimum
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLW__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(lMinimum)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERCONTROLW__bindgen_ty_1__bindgen_ty_1>())).lMaximum
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLW__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(lMaximum)
        )
    );
}
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tagMIXERCONTROLW__bindgen_ty_1__bindgen_ty_2 {
    pub dwMinimum: DWORD,
    pub dwMaximum: DWORD,
}
#[test]
fn bindgen_test_layout_tagMIXERCONTROLW__bindgen_ty_1__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<tagMIXERCONTROLW__bindgen_ty_1__bindgen_ty_2>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(tagMIXERCONTROLW__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tagMIXERCONTROLW__bindgen_ty_1__bindgen_ty_2>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(tagMIXERCONTROLW__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERCONTROLW__bindgen_ty_1__bindgen_ty_2>())).dwMinimum
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLW__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(dwMinimum)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERCONTROLW__bindgen_ty_1__bindgen_ty_2>())).dwMaximum
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLW__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(dwMaximum)
        )
    );
}
#[test]
fn bindgen_test_layout_tagMIXERCONTROLW__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagMIXERCONTROLW__bindgen_ty_1>(),
        24usize,
        concat!("Size of: ", stringify!(tagMIXERCONTROLW__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMIXERCONTROLW__bindgen_ty_1>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMIXERCONTROLW__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERCONTROLW__bindgen_ty_1>())).dwReserved as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLW__bindgen_ty_1),
            "::",
            stringify!(dwReserved)
        )
    );
}
#[repr(C, packed)]
#[derive(Copy, Clone)]
pub union tagMIXERCONTROLW__bindgen_ty_2 {
    pub cSteps: DWORD,
    pub cbCustomData: DWORD,
    pub dwReserved: [DWORD; 6usize],
    _bindgen_union_align: [u8; 24usize],
}
#[test]
fn bindgen_test_layout_tagMIXERCONTROLW__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<tagMIXERCONTROLW__bindgen_ty_2>(),
        24usize,
        concat!("Size of: ", stringify!(tagMIXERCONTROLW__bindgen_ty_2))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMIXERCONTROLW__bindgen_ty_2>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMIXERCONTROLW__bindgen_ty_2))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERCONTROLW__bindgen_ty_2>())).cSteps as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLW__bindgen_ty_2),
            "::",
            stringify!(cSteps)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERCONTROLW__bindgen_ty_2>())).cbCustomData as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLW__bindgen_ty_2),
            "::",
            stringify!(cbCustomData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERCONTROLW__bindgen_ty_2>())).dwReserved as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLW__bindgen_ty_2),
            "::",
            stringify!(dwReserved)
        )
    );
}
#[test]
fn bindgen_test_layout_tagMIXERCONTROLW() {
    assert_eq!(
        ::std::mem::size_of::<tagMIXERCONTROLW>(),
        228usize,
        concat!("Size of: ", stringify!(tagMIXERCONTROLW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMIXERCONTROLW>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMIXERCONTROLW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCONTROLW>())).cbStruct as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLW),
            "::",
            stringify!(cbStruct)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCONTROLW>())).dwControlID as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLW),
            "::",
            stringify!(dwControlID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCONTROLW>())).dwControlType as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLW),
            "::",
            stringify!(dwControlType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCONTROLW>())).fdwControl as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLW),
            "::",
            stringify!(fdwControl)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCONTROLW>())).cMultipleItems as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLW),
            "::",
            stringify!(cMultipleItems)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCONTROLW>())).szShortName as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLW),
            "::",
            stringify!(szShortName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCONTROLW>())).szName as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLW),
            "::",
            stringify!(szName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCONTROLW>())).Bounds as *const _ as usize },
        180usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLW),
            "::",
            stringify!(Bounds)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERCONTROLW>())).Metrics as *const _ as usize },
        204usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLW),
            "::",
            stringify!(Metrics)
        )
    );
}
pub type MIXERCONTROLW = tagMIXERCONTROLW;
pub type PMIXERCONTROLW = *mut tagMIXERCONTROLW;
pub type LPMIXERCONTROLW = *mut tagMIXERCONTROLW;
pub type MIXERCONTROL = MIXERCONTROLA;
pub type PMIXERCONTROL = PMIXERCONTROLA;
pub type LPMIXERCONTROL = LPMIXERCONTROLA;
#[repr(C, packed)]
#[derive(Copy, Clone)]
pub struct tagMIXERLINECONTROLSA {
    pub cbStruct: DWORD,
    pub dwLineID: DWORD,
    pub __bindgen_anon_1: tagMIXERLINECONTROLSA__bindgen_ty_1,
    pub cControls: DWORD,
    pub cbmxctrl: DWORD,
    pub pamxctrl: LPMIXERCONTROLA,
}
#[repr(C, packed)]
#[derive(Copy, Clone)]
pub union tagMIXERLINECONTROLSA__bindgen_ty_1 {
    pub dwControlID: DWORD,
    pub dwControlType: DWORD,
    _bindgen_union_align: [u8; 4usize],
}
#[test]
fn bindgen_test_layout_tagMIXERLINECONTROLSA__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagMIXERLINECONTROLSA__bindgen_ty_1>(),
        4usize,
        concat!("Size of: ", stringify!(tagMIXERLINECONTROLSA__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMIXERLINECONTROLSA__bindgen_ty_1>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(tagMIXERLINECONTROLSA__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERLINECONTROLSA__bindgen_ty_1>())).dwControlID as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINECONTROLSA__bindgen_ty_1),
            "::",
            stringify!(dwControlID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERLINECONTROLSA__bindgen_ty_1>())).dwControlType
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINECONTROLSA__bindgen_ty_1),
            "::",
            stringify!(dwControlType)
        )
    );
}
#[test]
fn bindgen_test_layout_tagMIXERLINECONTROLSA() {
    assert_eq!(
        ::std::mem::size_of::<tagMIXERLINECONTROLSA>(),
        28usize,
        concat!("Size of: ", stringify!(tagMIXERLINECONTROLSA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMIXERLINECONTROLSA>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMIXERLINECONTROLSA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINECONTROLSA>())).cbStruct as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINECONTROLSA),
            "::",
            stringify!(cbStruct)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINECONTROLSA>())).dwLineID as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINECONTROLSA),
            "::",
            stringify!(dwLineID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINECONTROLSA>())).cControls as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINECONTROLSA),
            "::",
            stringify!(cControls)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINECONTROLSA>())).cbmxctrl as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINECONTROLSA),
            "::",
            stringify!(cbmxctrl)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINECONTROLSA>())).pamxctrl as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINECONTROLSA),
            "::",
            stringify!(pamxctrl)
        )
    );
}
pub type MIXERLINECONTROLSA = tagMIXERLINECONTROLSA;
pub type PMIXERLINECONTROLSA = *mut tagMIXERLINECONTROLSA;
pub type LPMIXERLINECONTROLSA = *mut tagMIXERLINECONTROLSA;
#[repr(C, packed)]
#[derive(Copy, Clone)]
pub struct tagMIXERLINECONTROLSW {
    pub cbStruct: DWORD,
    pub dwLineID: DWORD,
    pub __bindgen_anon_1: tagMIXERLINECONTROLSW__bindgen_ty_1,
    pub cControls: DWORD,
    pub cbmxctrl: DWORD,
    pub pamxctrl: LPMIXERCONTROLW,
}
#[repr(C, packed)]
#[derive(Copy, Clone)]
pub union tagMIXERLINECONTROLSW__bindgen_ty_1 {
    pub dwControlID: DWORD,
    pub dwControlType: DWORD,
    _bindgen_union_align: [u8; 4usize],
}
#[test]
fn bindgen_test_layout_tagMIXERLINECONTROLSW__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagMIXERLINECONTROLSW__bindgen_ty_1>(),
        4usize,
        concat!("Size of: ", stringify!(tagMIXERLINECONTROLSW__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMIXERLINECONTROLSW__bindgen_ty_1>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(tagMIXERLINECONTROLSW__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERLINECONTROLSW__bindgen_ty_1>())).dwControlID as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINECONTROLSW__bindgen_ty_1),
            "::",
            stringify!(dwControlID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERLINECONTROLSW__bindgen_ty_1>())).dwControlType
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINECONTROLSW__bindgen_ty_1),
            "::",
            stringify!(dwControlType)
        )
    );
}
#[test]
fn bindgen_test_layout_tagMIXERLINECONTROLSW() {
    assert_eq!(
        ::std::mem::size_of::<tagMIXERLINECONTROLSW>(),
        28usize,
        concat!("Size of: ", stringify!(tagMIXERLINECONTROLSW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMIXERLINECONTROLSW>(),
        1usize,
        concat!("Alignment of ", stringify!(tagMIXERLINECONTROLSW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINECONTROLSW>())).cbStruct as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINECONTROLSW),
            "::",
            stringify!(cbStruct)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINECONTROLSW>())).dwLineID as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINECONTROLSW),
            "::",
            stringify!(dwLineID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINECONTROLSW>())).cControls as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINECONTROLSW),
            "::",
            stringify!(cControls)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINECONTROLSW>())).cbmxctrl as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINECONTROLSW),
            "::",
            stringify!(cbmxctrl)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMIXERLINECONTROLSW>())).pamxctrl as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERLINECONTROLSW),
            "::",
            stringify!(pamxctrl)
        )
    );
}
pub type MIXERLINECONTROLSW = tagMIXERLINECONTROLSW;
pub type PMIXERLINECONTROLSW = *mut tagMIXERLINECONTROLSW;
pub type LPMIXERLINECONTROLSW = *mut tagMIXERLINECONTROLSW;
pub type MIXERLINECONTROLS = MIXERLINECONTROLSA;
pub type PMIXERLINECONTROLS = PMIXERLINECONTROLSA;
pub type LPMIXERLINECONTROLS = LPMIXERLINECONTROLSA;
extern "C" {
    pub fn mixerGetLineControlsA(
        hmxobj: HMIXEROBJ,
        pmxlc: LPMIXERLINECONTROLSA,
        fdwControls: DWORD,
    ) -> MMRESULT;
}
extern "C" {
    pub fn mixerGetLineControlsW(
        hmxobj: HMIXEROBJ,
        pmxlc: LPMIXERLINECONTROLSW,
        fdwControls: DWORD,
    ) -> MMRESULT;
}
#[repr(C, packed)]
#[derive(Copy, Clone)]
pub struct tMIXERCONTROLDETAILS {
    pub cbStruct: DWORD,
    pub dwControlID: DWORD,
    pub cChannels: DWORD,
    pub __bindgen_anon_1: tMIXERCONTROLDETAILS__bindgen_ty_1,
    pub cbDetails: DWORD,
    pub paDetails: LPVOID,
}
#[repr(C, packed)]
#[derive(Copy, Clone)]
pub union tMIXERCONTROLDETAILS__bindgen_ty_1 {
    pub hwndOwner: HWND,
    pub cMultipleItems: DWORD,
    _bindgen_union_align: [u8; 8usize],
}
#[test]
fn bindgen_test_layout_tMIXERCONTROLDETAILS__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tMIXERCONTROLDETAILS__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(tMIXERCONTROLDETAILS__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tMIXERCONTROLDETAILS__bindgen_ty_1>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(tMIXERCONTROLDETAILS__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tMIXERCONTROLDETAILS__bindgen_ty_1>())).hwndOwner as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tMIXERCONTROLDETAILS__bindgen_ty_1),
            "::",
            stringify!(hwndOwner)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tMIXERCONTROLDETAILS__bindgen_ty_1>())).cMultipleItems
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tMIXERCONTROLDETAILS__bindgen_ty_1),
            "::",
            stringify!(cMultipleItems)
        )
    );
}
#[test]
fn bindgen_test_layout_tMIXERCONTROLDETAILS() {
    assert_eq!(
        ::std::mem::size_of::<tMIXERCONTROLDETAILS>(),
        32usize,
        concat!("Size of: ", stringify!(tMIXERCONTROLDETAILS))
    );
    assert_eq!(
        ::std::mem::align_of::<tMIXERCONTROLDETAILS>(),
        1usize,
        concat!("Alignment of ", stringify!(tMIXERCONTROLDETAILS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tMIXERCONTROLDETAILS>())).cbStruct as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tMIXERCONTROLDETAILS),
            "::",
            stringify!(cbStruct)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tMIXERCONTROLDETAILS>())).dwControlID as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tMIXERCONTROLDETAILS),
            "::",
            stringify!(dwControlID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tMIXERCONTROLDETAILS>())).cChannels as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tMIXERCONTROLDETAILS),
            "::",
            stringify!(cChannels)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tMIXERCONTROLDETAILS>())).cbDetails as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tMIXERCONTROLDETAILS),
            "::",
            stringify!(cbDetails)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tMIXERCONTROLDETAILS>())).paDetails as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tMIXERCONTROLDETAILS),
            "::",
            stringify!(paDetails)
        )
    );
}
pub type MIXERCONTROLDETAILS = tMIXERCONTROLDETAILS;
pub type PMIXERCONTROLDETAILS = *mut tMIXERCONTROLDETAILS;
pub type LPMIXERCONTROLDETAILS = *mut tMIXERCONTROLDETAILS;
#[repr(C, packed)]
#[derive(Copy, Clone)]
pub struct tagMIXERCONTROLDETAILS_LISTTEXTA {
    pub dwParam1: DWORD,
    pub dwParam2: DWORD,
    pub szName: [CHAR; 64usize],
}
#[test]
fn bindgen_test_layout_tagMIXERCONTROLDETAILS_LISTTEXTA() {
    assert_eq!(
        ::std::mem::size_of::<tagMIXERCONTROLDETAILS_LISTTEXTA>(),
        72usize,
        concat!("Size of: ", stringify!(tagMIXERCONTROLDETAILS_LISTTEXTA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMIXERCONTROLDETAILS_LISTTEXTA>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(tagMIXERCONTROLDETAILS_LISTTEXTA)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERCONTROLDETAILS_LISTTEXTA>())).dwParam1 as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLDETAILS_LISTTEXTA),
            "::",
            stringify!(dwParam1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERCONTROLDETAILS_LISTTEXTA>())).dwParam2 as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLDETAILS_LISTTEXTA),
            "::",
            stringify!(dwParam2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERCONTROLDETAILS_LISTTEXTA>())).szName as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLDETAILS_LISTTEXTA),
            "::",
            stringify!(szName)
        )
    );
}
pub type MIXERCONTROLDETAILS_LISTTEXTA = tagMIXERCONTROLDETAILS_LISTTEXTA;
pub type PMIXERCONTROLDETAILS_LISTTEXTA = *mut tagMIXERCONTROLDETAILS_LISTTEXTA;
pub type LPMIXERCONTROLDETAILS_LISTTEXTA = *mut tagMIXERCONTROLDETAILS_LISTTEXTA;
#[repr(C, packed)]
#[derive(Copy, Clone)]
pub struct tagMIXERCONTROLDETAILS_LISTTEXTW {
    pub dwParam1: DWORD,
    pub dwParam2: DWORD,
    pub szName: [WCHAR; 64usize],
}
#[test]
fn bindgen_test_layout_tagMIXERCONTROLDETAILS_LISTTEXTW() {
    assert_eq!(
        ::std::mem::size_of::<tagMIXERCONTROLDETAILS_LISTTEXTW>(),
        136usize,
        concat!("Size of: ", stringify!(tagMIXERCONTROLDETAILS_LISTTEXTW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMIXERCONTROLDETAILS_LISTTEXTW>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(tagMIXERCONTROLDETAILS_LISTTEXTW)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERCONTROLDETAILS_LISTTEXTW>())).dwParam1 as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLDETAILS_LISTTEXTW),
            "::",
            stringify!(dwParam1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERCONTROLDETAILS_LISTTEXTW>())).dwParam2 as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLDETAILS_LISTTEXTW),
            "::",
            stringify!(dwParam2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagMIXERCONTROLDETAILS_LISTTEXTW>())).szName as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMIXERCONTROLDETAILS_LISTTEXTW),
            "::",
            stringify!(szName)
        )
    );
}
pub type MIXERCONTROLDETAILS_LISTTEXTW = tagMIXERCONTROLDETAILS_LISTTEXTW;
pub type PMIXERCONTROLDETAILS_LISTTEXTW = *mut tagMIXERCONTROLDETAILS_LISTTEXTW;
pub type LPMIXERCONTROLDETAILS_LISTTEXTW = *mut tagMIXERCONTROLDETAILS_LISTTEXTW;
pub type MIXERCONTROLDETAILS_LISTTEXT = MIXERCONTROLDETAILS_LISTTEXTA;
pub type PMIXERCONTROLDETAILS_LISTTEXT = PMIXERCONTROLDETAILS_LISTTEXTA;
pub type LPMIXERCONTROLDETAILS_LISTTEXT = LPMIXERCONTROLDETAILS_LISTTEXTA;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tMIXERCONTROLDETAILS_BOOLEAN {
    pub fValue: LONG,
}
#[test]
fn bindgen_test_layout_tMIXERCONTROLDETAILS_BOOLEAN() {
    assert_eq!(
        ::std::mem::size_of::<tMIXERCONTROLDETAILS_BOOLEAN>(),
        4usize,
        concat!("Size of: ", stringify!(tMIXERCONTROLDETAILS_BOOLEAN))
    );
    assert_eq!(
        ::std::mem::align_of::<tMIXERCONTROLDETAILS_BOOLEAN>(),
        1usize,
        concat!("Alignment of ", stringify!(tMIXERCONTROLDETAILS_BOOLEAN))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tMIXERCONTROLDETAILS_BOOLEAN>())).fValue as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tMIXERCONTROLDETAILS_BOOLEAN),
            "::",
            stringify!(fValue)
        )
    );
}
pub type MIXERCONTROLDETAILS_BOOLEAN = tMIXERCONTROLDETAILS_BOOLEAN;
pub type PMIXERCONTROLDETAILS_BOOLEAN = *mut tMIXERCONTROLDETAILS_BOOLEAN;
pub type LPMIXERCONTROLDETAILS_BOOLEAN = *mut tMIXERCONTROLDETAILS_BOOLEAN;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tMIXERCONTROLDETAILS_SIGNED {
    pub lValue: LONG,
}
#[test]
fn bindgen_test_layout_tMIXERCONTROLDETAILS_SIGNED() {
    assert_eq!(
        ::std::mem::size_of::<tMIXERCONTROLDETAILS_SIGNED>(),
        4usize,
        concat!("Size of: ", stringify!(tMIXERCONTROLDETAILS_SIGNED))
    );
    assert_eq!(
        ::std::mem::align_of::<tMIXERCONTROLDETAILS_SIGNED>(),
        1usize,
        concat!("Alignment of ", stringify!(tMIXERCONTROLDETAILS_SIGNED))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tMIXERCONTROLDETAILS_SIGNED>())).lValue as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tMIXERCONTROLDETAILS_SIGNED),
            "::",
            stringify!(lValue)
        )
    );
}
pub type MIXERCONTROLDETAILS_SIGNED = tMIXERCONTROLDETAILS_SIGNED;
pub type PMIXERCONTROLDETAILS_SIGNED = *mut tMIXERCONTROLDETAILS_SIGNED;
pub type LPMIXERCONTROLDETAILS_SIGNED = *mut tMIXERCONTROLDETAILS_SIGNED;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct tMIXERCONTROLDETAILS_UNSIGNED {
    pub dwValue: DWORD,
}
#[test]
fn bindgen_test_layout_tMIXERCONTROLDETAILS_UNSIGNED() {
    assert_eq!(
        ::std::mem::size_of::<tMIXERCONTROLDETAILS_UNSIGNED>(),
        4usize,
        concat!("Size of: ", stringify!(tMIXERCONTROLDETAILS_UNSIGNED))
    );
    assert_eq!(
        ::std::mem::align_of::<tMIXERCONTROLDETAILS_UNSIGNED>(),
        1usize,
        concat!("Alignment of ", stringify!(tMIXERCONTROLDETAILS_UNSIGNED))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tMIXERCONTROLDETAILS_UNSIGNED>())).dwValue as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tMIXERCONTROLDETAILS_UNSIGNED),
            "::",
            stringify!(dwValue)
        )
    );
}
pub type MIXERCONTROLDETAILS_UNSIGNED = tMIXERCONTROLDETAILS_UNSIGNED;
pub type PMIXERCONTROLDETAILS_UNSIGNED = *mut tMIXERCONTROLDETAILS_UNSIGNED;
pub type LPMIXERCONTROLDETAILS_UNSIGNED = *mut tMIXERCONTROLDETAILS_UNSIGNED;
extern "C" {
    pub fn mixerGetControlDetailsA(
        hmxobj: HMIXEROBJ,
        pmxcd: LPMIXERCONTROLDETAILS,
        fdwDetails: DWORD,
    ) -> MMRESULT;
}
extern "C" {
    pub fn mixerGetControlDetailsW(
        hmxobj: HMIXEROBJ,
        pmxcd: LPMIXERCONTROLDETAILS,
        fdwDetails: DWORD,
    ) -> MMRESULT;
}
extern "C" {
    pub fn mixerSetControlDetails(
        hmxobj: HMIXEROBJ,
        pmxcd: LPMIXERCONTROLDETAILS,
        fdwDetails: DWORD,
    ) -> MMRESULT;
}
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct timecaps_tag {
    pub wPeriodMin: UINT,
    pub wPeriodMax: UINT,
}
#[test]
fn bindgen_test_layout_timecaps_tag() {
    assert_eq!(
        ::std::mem::size_of::<timecaps_tag>(),
        8usize,
        concat!("Size of: ", stringify!(timecaps_tag))
    );
    assert_eq!(
        ::std::mem::align_of::<timecaps_tag>(),
        1usize,
        concat!("Alignment of ", stringify!(timecaps_tag))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<timecaps_tag>())).wPeriodMin as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(timecaps_tag),
            "::",
            stringify!(wPeriodMin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<timecaps_tag>())).wPeriodMax as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(timecaps_tag),
            "::",
            stringify!(wPeriodMax)
        )
    );
}
pub type TIMECAPS = timecaps_tag;
pub type PTIMECAPS = *mut timecaps_tag;
pub type NPTIMECAPS = *mut timecaps_tag;
pub type LPTIMECAPS = *mut timecaps_tag;
extern "C" {
    pub fn timeGetSystemTime(pmmt: LPMMTIME, cbmmt: UINT) -> MMRESULT;
}
extern "C" {
    pub fn timeGetTime() -> DWORD;
}
extern "C" {
    pub fn timeGetDevCaps(ptc: LPTIMECAPS, cbtc: UINT) -> MMRESULT;
}
extern "C" {
    pub fn timeBeginPeriod(uPeriod: UINT) -> MMRESULT;
}
extern "C" {
    pub fn timeEndPeriod(uPeriod: UINT) -> MMRESULT;
}
#[repr(C, packed)]
#[derive(Copy, Clone)]
pub struct tagJOYCAPSA {
    pub wMid: WORD,
    pub wPid: WORD,
    pub szPname: [CHAR; 32usize],
    pub wXmin: UINT,
    pub wXmax: UINT,
    pub wYmin: UINT,
    pub wYmax: UINT,
    pub wZmin: UINT,
    pub wZmax: UINT,
    pub wNumButtons: UINT,
    pub wPeriodMin: UINT,
    pub wPeriodMax: UINT,
    pub wRmin: UINT,
    pub wRmax: UINT,
    pub wUmin: UINT,
    pub wUmax: UINT,
    pub wVmin: UINT,
    pub wVmax: UINT,
    pub wCaps: UINT,
    pub wMaxAxes: UINT,
    pub wNumAxes: UINT,
    pub wMaxButtons: UINT,
    pub szRegKey: [CHAR; 32usize],
    pub szOEMVxD: [CHAR; 260usize],
}
#[test]
fn bindgen_test_layout_tagJOYCAPSA() {
    assert_eq!(
        ::std::mem::size_of::<tagJOYCAPSA>(),
        404usize,
        concat!("Size of: ", stringify!(tagJOYCAPSA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagJOYCAPSA>(),
        1usize,
        concat!("Alignment of ", stringify!(tagJOYCAPSA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSA>())).wMid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSA),
            "::",
            stringify!(wMid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSA>())).wPid as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSA),
            "::",
            stringify!(wPid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSA>())).szPname as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSA),
            "::",
            stringify!(szPname)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSA>())).wXmin as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSA),
            "::",
            stringify!(wXmin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSA>())).wXmax as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSA),
            "::",
            stringify!(wXmax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSA>())).wYmin as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSA),
            "::",
            stringify!(wYmin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSA>())).wYmax as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSA),
            "::",
            stringify!(wYmax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSA>())).wZmin as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSA),
            "::",
            stringify!(wZmin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSA>())).wZmax as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSA),
            "::",
            stringify!(wZmax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSA>())).wNumButtons as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSA),
            "::",
            stringify!(wNumButtons)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSA>())).wPeriodMin as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSA),
            "::",
            stringify!(wPeriodMin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSA>())).wPeriodMax as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSA),
            "::",
            stringify!(wPeriodMax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSA>())).wRmin as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSA),
            "::",
            stringify!(wRmin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSA>())).wRmax as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSA),
            "::",
            stringify!(wRmax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSA>())).wUmin as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSA),
            "::",
            stringify!(wUmin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSA>())).wUmax as *const _ as usize },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSA),
            "::",
            stringify!(wUmax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSA>())).wVmin as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSA),
            "::",
            stringify!(wVmin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSA>())).wVmax as *const _ as usize },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSA),
            "::",
            stringify!(wVmax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSA>())).wCaps as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSA),
            "::",
            stringify!(wCaps)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSA>())).wMaxAxes as *const _ as usize },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSA),
            "::",
            stringify!(wMaxAxes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSA>())).wNumAxes as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSA),
            "::",
            stringify!(wNumAxes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSA>())).wMaxButtons as *const _ as usize },
        108usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSA),
            "::",
            stringify!(wMaxButtons)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSA>())).szRegKey as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSA),
            "::",
            stringify!(szRegKey)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSA>())).szOEMVxD as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSA),
            "::",
            stringify!(szOEMVxD)
        )
    );
}
pub type JOYCAPSA = tagJOYCAPSA;
pub type PJOYCAPSA = *mut tagJOYCAPSA;
pub type NPJOYCAPSA = *mut tagJOYCAPSA;
pub type LPJOYCAPSA = *mut tagJOYCAPSA;
#[repr(C, packed)]
#[derive(Copy, Clone)]
pub struct tagJOYCAPSW {
    pub wMid: WORD,
    pub wPid: WORD,
    pub szPname: [WCHAR; 32usize],
    pub wXmin: UINT,
    pub wXmax: UINT,
    pub wYmin: UINT,
    pub wYmax: UINT,
    pub wZmin: UINT,
    pub wZmax: UINT,
    pub wNumButtons: UINT,
    pub wPeriodMin: UINT,
    pub wPeriodMax: UINT,
    pub wRmin: UINT,
    pub wRmax: UINT,
    pub wUmin: UINT,
    pub wUmax: UINT,
    pub wVmin: UINT,
    pub wVmax: UINT,
    pub wCaps: UINT,
    pub wMaxAxes: UINT,
    pub wNumAxes: UINT,
    pub wMaxButtons: UINT,
    pub szRegKey: [WCHAR; 32usize],
    pub szOEMVxD: [WCHAR; 260usize],
}
#[test]
fn bindgen_test_layout_tagJOYCAPSW() {
    assert_eq!(
        ::std::mem::size_of::<tagJOYCAPSW>(),
        728usize,
        concat!("Size of: ", stringify!(tagJOYCAPSW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagJOYCAPSW>(),
        1usize,
        concat!("Alignment of ", stringify!(tagJOYCAPSW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSW>())).wMid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSW),
            "::",
            stringify!(wMid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSW>())).wPid as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSW),
            "::",
            stringify!(wPid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSW>())).szPname as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSW),
            "::",
            stringify!(szPname)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSW>())).wXmin as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSW),
            "::",
            stringify!(wXmin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSW>())).wXmax as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSW),
            "::",
            stringify!(wXmax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSW>())).wYmin as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSW),
            "::",
            stringify!(wYmin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSW>())).wYmax as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSW),
            "::",
            stringify!(wYmax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSW>())).wZmin as *const _ as usize },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSW),
            "::",
            stringify!(wZmin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSW>())).wZmax as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSW),
            "::",
            stringify!(wZmax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSW>())).wNumButtons as *const _ as usize },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSW),
            "::",
            stringify!(wNumButtons)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSW>())).wPeriodMin as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSW),
            "::",
            stringify!(wPeriodMin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSW>())).wPeriodMax as *const _ as usize },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSW),
            "::",
            stringify!(wPeriodMax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSW>())).wRmin as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSW),
            "::",
            stringify!(wRmin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSW>())).wRmax as *const _ as usize },
        108usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSW),
            "::",
            stringify!(wRmax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSW>())).wUmin as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSW),
            "::",
            stringify!(wUmin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSW>())).wUmax as *const _ as usize },
        116usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSW),
            "::",
            stringify!(wUmax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSW>())).wVmin as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSW),
            "::",
            stringify!(wVmin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSW>())).wVmax as *const _ as usize },
        124usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSW),
            "::",
            stringify!(wVmax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSW>())).wCaps as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSW),
            "::",
            stringify!(wCaps)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSW>())).wMaxAxes as *const _ as usize },
        132usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSW),
            "::",
            stringify!(wMaxAxes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSW>())).wNumAxes as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSW),
            "::",
            stringify!(wNumAxes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSW>())).wMaxButtons as *const _ as usize },
        140usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSW),
            "::",
            stringify!(wMaxButtons)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSW>())).szRegKey as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSW),
            "::",
            stringify!(szRegKey)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPSW>())).szOEMVxD as *const _ as usize },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPSW),
            "::",
            stringify!(szOEMVxD)
        )
    );
}
pub type JOYCAPSW = tagJOYCAPSW;
pub type PJOYCAPSW = *mut tagJOYCAPSW;
pub type NPJOYCAPSW = *mut tagJOYCAPSW;
pub type LPJOYCAPSW = *mut tagJOYCAPSW;
pub type JOYCAPS = JOYCAPSA;
pub type PJOYCAPS = PJOYCAPSA;
pub type NPJOYCAPS = NPJOYCAPSA;
pub type LPJOYCAPS = LPJOYCAPSA;
#[repr(C, packed)]
#[derive(Copy, Clone)]
pub struct tagJOYCAPS2A {
    pub wMid: WORD,
    pub wPid: WORD,
    pub szPname: [CHAR; 32usize],
    pub wXmin: UINT,
    pub wXmax: UINT,
    pub wYmin: UINT,
    pub wYmax: UINT,
    pub wZmin: UINT,
    pub wZmax: UINT,
    pub wNumButtons: UINT,
    pub wPeriodMin: UINT,
    pub wPeriodMax: UINT,
    pub wRmin: UINT,
    pub wRmax: UINT,
    pub wUmin: UINT,
    pub wUmax: UINT,
    pub wVmin: UINT,
    pub wVmax: UINT,
    pub wCaps: UINT,
    pub wMaxAxes: UINT,
    pub wNumAxes: UINT,
    pub wMaxButtons: UINT,
    pub szRegKey: [CHAR; 32usize],
    pub szOEMVxD: [CHAR; 260usize],
    pub ManufacturerGuid: GUID,
    pub ProductGuid: GUID,
    pub NameGuid: GUID,
}
#[test]
fn bindgen_test_layout_tagJOYCAPS2A() {
    assert_eq!(
        ::std::mem::size_of::<tagJOYCAPS2A>(),
        452usize,
        concat!("Size of: ", stringify!(tagJOYCAPS2A))
    );
    assert_eq!(
        ::std::mem::align_of::<tagJOYCAPS2A>(),
        1usize,
        concat!("Alignment of ", stringify!(tagJOYCAPS2A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2A>())).wMid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2A),
            "::",
            stringify!(wMid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2A>())).wPid as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2A),
            "::",
            stringify!(wPid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2A>())).szPname as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2A),
            "::",
            stringify!(szPname)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2A>())).wXmin as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2A),
            "::",
            stringify!(wXmin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2A>())).wXmax as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2A),
            "::",
            stringify!(wXmax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2A>())).wYmin as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2A),
            "::",
            stringify!(wYmin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2A>())).wYmax as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2A),
            "::",
            stringify!(wYmax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2A>())).wZmin as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2A),
            "::",
            stringify!(wZmin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2A>())).wZmax as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2A),
            "::",
            stringify!(wZmax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2A>())).wNumButtons as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2A),
            "::",
            stringify!(wNumButtons)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2A>())).wPeriodMin as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2A),
            "::",
            stringify!(wPeriodMin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2A>())).wPeriodMax as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2A),
            "::",
            stringify!(wPeriodMax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2A>())).wRmin as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2A),
            "::",
            stringify!(wRmin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2A>())).wRmax as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2A),
            "::",
            stringify!(wRmax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2A>())).wUmin as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2A),
            "::",
            stringify!(wUmin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2A>())).wUmax as *const _ as usize },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2A),
            "::",
            stringify!(wUmax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2A>())).wVmin as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2A),
            "::",
            stringify!(wVmin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2A>())).wVmax as *const _ as usize },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2A),
            "::",
            stringify!(wVmax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2A>())).wCaps as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2A),
            "::",
            stringify!(wCaps)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2A>())).wMaxAxes as *const _ as usize },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2A),
            "::",
            stringify!(wMaxAxes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2A>())).wNumAxes as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2A),
            "::",
            stringify!(wNumAxes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2A>())).wMaxButtons as *const _ as usize },
        108usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2A),
            "::",
            stringify!(wMaxButtons)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2A>())).szRegKey as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2A),
            "::",
            stringify!(szRegKey)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2A>())).szOEMVxD as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2A),
            "::",
            stringify!(szOEMVxD)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2A>())).ManufacturerGuid as *const _ as usize },
        404usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2A),
            "::",
            stringify!(ManufacturerGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2A>())).ProductGuid as *const _ as usize },
        420usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2A),
            "::",
            stringify!(ProductGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2A>())).NameGuid as *const _ as usize },
        436usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2A),
            "::",
            stringify!(NameGuid)
        )
    );
}
pub type JOYCAPS2A = tagJOYCAPS2A;
pub type PJOYCAPS2A = *mut tagJOYCAPS2A;
pub type NPJOYCAPS2A = *mut tagJOYCAPS2A;
pub type LPJOYCAPS2A = *mut tagJOYCAPS2A;
#[repr(C, packed)]
#[derive(Copy, Clone)]
pub struct tagJOYCAPS2W {
    pub wMid: WORD,
    pub wPid: WORD,
    pub szPname: [WCHAR; 32usize],
    pub wXmin: UINT,
    pub wXmax: UINT,
    pub wYmin: UINT,
    pub wYmax: UINT,
    pub wZmin: UINT,
    pub wZmax: UINT,
    pub wNumButtons: UINT,
    pub wPeriodMin: UINT,
    pub wPeriodMax: UINT,
    pub wRmin: UINT,
    pub wRmax: UINT,
    pub wUmin: UINT,
    pub wUmax: UINT,
    pub wVmin: UINT,
    pub wVmax: UINT,
    pub wCaps: UINT,
    pub wMaxAxes: UINT,
    pub wNumAxes: UINT,
    pub wMaxButtons: UINT,
    pub szRegKey: [WCHAR; 32usize],
    pub szOEMVxD: [WCHAR; 260usize],
    pub ManufacturerGuid: GUID,
    pub ProductGuid: GUID,
    pub NameGuid: GUID,
}
#[test]
fn bindgen_test_layout_tagJOYCAPS2W() {
    assert_eq!(
        ::std::mem::size_of::<tagJOYCAPS2W>(),
        776usize,
        concat!("Size of: ", stringify!(tagJOYCAPS2W))
    );
    assert_eq!(
        ::std::mem::align_of::<tagJOYCAPS2W>(),
        1usize,
        concat!("Alignment of ", stringify!(tagJOYCAPS2W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2W>())).wMid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2W),
            "::",
            stringify!(wMid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2W>())).wPid as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2W),
            "::",
            stringify!(wPid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2W>())).szPname as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2W),
            "::",
            stringify!(szPname)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2W>())).wXmin as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2W),
            "::",
            stringify!(wXmin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2W>())).wXmax as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2W),
            "::",
            stringify!(wXmax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2W>())).wYmin as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2W),
            "::",
            stringify!(wYmin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2W>())).wYmax as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2W),
            "::",
            stringify!(wYmax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2W>())).wZmin as *const _ as usize },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2W),
            "::",
            stringify!(wZmin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2W>())).wZmax as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2W),
            "::",
            stringify!(wZmax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2W>())).wNumButtons as *const _ as usize },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2W),
            "::",
            stringify!(wNumButtons)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2W>())).wPeriodMin as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2W),
            "::",
            stringify!(wPeriodMin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2W>())).wPeriodMax as *const _ as usize },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2W),
            "::",
            stringify!(wPeriodMax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2W>())).wRmin as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2W),
            "::",
            stringify!(wRmin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2W>())).wRmax as *const _ as usize },
        108usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2W),
            "::",
            stringify!(wRmax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2W>())).wUmin as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2W),
            "::",
            stringify!(wUmin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2W>())).wUmax as *const _ as usize },
        116usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2W),
            "::",
            stringify!(wUmax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2W>())).wVmin as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2W),
            "::",
            stringify!(wVmin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2W>())).wVmax as *const _ as usize },
        124usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2W),
            "::",
            stringify!(wVmax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2W>())).wCaps as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2W),
            "::",
            stringify!(wCaps)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2W>())).wMaxAxes as *const _ as usize },
        132usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2W),
            "::",
            stringify!(wMaxAxes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2W>())).wNumAxes as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2W),
            "::",
            stringify!(wNumAxes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2W>())).wMaxButtons as *const _ as usize },
        140usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2W),
            "::",
            stringify!(wMaxButtons)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2W>())).szRegKey as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2W),
            "::",
            stringify!(szRegKey)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2W>())).szOEMVxD as *const _ as usize },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2W),
            "::",
            stringify!(szOEMVxD)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2W>())).ManufacturerGuid as *const _ as usize },
        728usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2W),
            "::",
            stringify!(ManufacturerGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2W>())).ProductGuid as *const _ as usize },
        744usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2W),
            "::",
            stringify!(ProductGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagJOYCAPS2W>())).NameGuid as *const _ as usize },
        760usize,
        concat!(
            "Offset of field: ",
            stringify!(tagJOYCAPS2W),
            "::",
            stringify!(NameGuid)
        )
    );
}
pub type JOYCAPS2W = tagJOYCAPS2W;
pub type PJOYCAPS2W = *mut tagJOYCAPS2W;
pub type NPJOYCAPS2W = *mut tagJOYCAPS2W;
pub type LPJOYCAPS2W = *mut tagJOYCAPS2W;
pub type JOYCAPS2 = JOYCAPS2A;
pub type PJOYCAPS2 = PJOYCAPS2A;
pub type NPJOYCAPS2 = NPJOYCAPS2A;
pub type LPJOYCAPS2 = LPJOYCAPS2A;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct joyinfo_tag {
    pub wXpos: UINT,
    pub wYpos: UINT,
    pub wZpos: UINT,
    pub wButtons: UINT,
}
#[test]
fn bindgen_test_layout_joyinfo_tag() {
    assert_eq!(
        ::std::mem::size_of::<joyinfo_tag>(),
        16usize,
        concat!("Size of: ", stringify!(joyinfo_tag))
    );
    assert_eq!(
        ::std::mem::align_of::<joyinfo_tag>(),
        1usize,
        concat!("Alignment of ", stringify!(joyinfo_tag))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<joyinfo_tag>())).wXpos as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(joyinfo_tag),
            "::",
            stringify!(wXpos)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<joyinfo_tag>())).wYpos as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(joyinfo_tag),
            "::",
            stringify!(wYpos)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<joyinfo_tag>())).wZpos as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(joyinfo_tag),
            "::",
            stringify!(wZpos)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<joyinfo_tag>())).wButtons as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(joyinfo_tag),
            "::",
            stringify!(wButtons)
        )
    );
}
pub type JOYINFO = joyinfo_tag;
pub type PJOYINFO = *mut joyinfo_tag;
pub type NPJOYINFO = *mut joyinfo_tag;
pub type LPJOYINFO = *mut joyinfo_tag;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct joyinfoex_tag {
    pub dwSize: DWORD,
    pub dwFlags: DWORD,
    pub dwXpos: DWORD,
    pub dwYpos: DWORD,
    pub dwZpos: DWORD,
    pub dwRpos: DWORD,
    pub dwUpos: DWORD,
    pub dwVpos: DWORD,
    pub dwButtons: DWORD,
    pub dwButtonNumber: DWORD,
    pub dwPOV: DWORD,
    pub dwReserved1: DWORD,
    pub dwReserved2: DWORD,
}
#[test]
fn bindgen_test_layout_joyinfoex_tag() {
    assert_eq!(
        ::std::mem::size_of::<joyinfoex_tag>(),
        52usize,
        concat!("Size of: ", stringify!(joyinfoex_tag))
    );
    assert_eq!(
        ::std::mem::align_of::<joyinfoex_tag>(),
        1usize,
        concat!("Alignment of ", stringify!(joyinfoex_tag))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<joyinfoex_tag>())).dwSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(joyinfoex_tag),
            "::",
            stringify!(dwSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<joyinfoex_tag>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(joyinfoex_tag),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<joyinfoex_tag>())).dwXpos as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(joyinfoex_tag),
            "::",
            stringify!(dwXpos)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<joyinfoex_tag>())).dwYpos as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(joyinfoex_tag),
            "::",
            stringify!(dwYpos)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<joyinfoex_tag>())).dwZpos as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(joyinfoex_tag),
            "::",
            stringify!(dwZpos)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<joyinfoex_tag>())).dwRpos as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(joyinfoex_tag),
            "::",
            stringify!(dwRpos)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<joyinfoex_tag>())).dwUpos as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(joyinfoex_tag),
            "::",
            stringify!(dwUpos)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<joyinfoex_tag>())).dwVpos as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(joyinfoex_tag),
            "::",
            stringify!(dwVpos)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<joyinfoex_tag>())).dwButtons as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(joyinfoex_tag),
            "::",
            stringify!(dwButtons)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<joyinfoex_tag>())).dwButtonNumber as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(joyinfoex_tag),
            "::",
            stringify!(dwButtonNumber)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<joyinfoex_tag>())).dwPOV as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(joyinfoex_tag),
            "::",
            stringify!(dwPOV)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<joyinfoex_tag>())).dwReserved1 as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(joyinfoex_tag),
            "::",
            stringify!(dwReserved1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<joyinfoex_tag>())).dwReserved2 as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(joyinfoex_tag),
            "::",
            stringify!(dwReserved2)
        )
    );
}
pub type JOYINFOEX = joyinfoex_tag;
pub type PJOYINFOEX = *mut joyinfoex_tag;
pub type NPJOYINFOEX = *mut joyinfoex_tag;
pub type LPJOYINFOEX = *mut joyinfoex_tag;
extern "C" {
    pub fn joyGetPosEx(uJoyID: UINT, pji: LPJOYINFOEX) -> MMRESULT;
}
extern "C" {
    pub fn joyGetNumDevs() -> UINT;
}
extern "C" {
    pub fn joyGetDevCapsA(uJoyID: UINT_PTR, pjc: LPJOYCAPSA, cbjc: UINT) -> MMRESULT;
}
extern "C" {
    pub fn joyGetDevCapsW(uJoyID: UINT_PTR, pjc: LPJOYCAPSW, cbjc: UINT) -> MMRESULT;
}
extern "C" {
    pub fn joyGetPos(uJoyID: UINT, pji: LPJOYINFO) -> MMRESULT;
}
extern "C" {
    pub fn joyGetThreshold(uJoyID: UINT, puThreshold: LPUINT) -> MMRESULT;
}
extern "C" {
    pub fn joyReleaseCapture(uJoyID: UINT) -> MMRESULT;
}
extern "C" {
    pub fn joySetCapture(hwnd: HWND, uJoyID: UINT, uPeriod: UINT, fChanged: BOOL) -> MMRESULT;
}
extern "C" {
    pub fn joySetThreshold(uJoyID: UINT, uThreshold: UINT) -> MMRESULT;
}
extern "C" {
    pub fn joyConfigChanged(dwFlags: DWORD) -> MMRESULT;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NCB {
    pub ncb_command: UCHAR,
    pub ncb_retcode: UCHAR,
    pub ncb_lsn: UCHAR,
    pub ncb_num: UCHAR,
    pub ncb_buffer: PUCHAR,
    pub ncb_length: WORD,
    pub ncb_callname: [UCHAR; 16usize],
    pub ncb_name: [UCHAR; 16usize],
    pub ncb_rto: UCHAR,
    pub ncb_sto: UCHAR,
    pub ncb_post: ::std::option::Option<unsafe extern "C" fn(arg1: *mut _NCB)>,
    pub ncb_lana_num: UCHAR,
    pub ncb_cmd_cplt: UCHAR,
    pub ncb_reserve: [UCHAR; 18usize],
    pub ncb_event: HANDLE,
}
#[test]
fn bindgen_test_layout__NCB() {
    assert_eq!(
        ::std::mem::size_of::<_NCB>(),
        96usize,
        concat!("Size of: ", stringify!(_NCB))
    );
    assert_eq!(
        ::std::mem::align_of::<_NCB>(),
        8usize,
        concat!("Alignment of ", stringify!(_NCB))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NCB>())).ncb_command as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCB),
            "::",
            stringify!(ncb_command)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NCB>())).ncb_retcode as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCB),
            "::",
            stringify!(ncb_retcode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NCB>())).ncb_lsn as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCB),
            "::",
            stringify!(ncb_lsn)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NCB>())).ncb_num as *const _ as usize },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCB),
            "::",
            stringify!(ncb_num)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NCB>())).ncb_buffer as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCB),
            "::",
            stringify!(ncb_buffer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NCB>())).ncb_length as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCB),
            "::",
            stringify!(ncb_length)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NCB>())).ncb_callname as *const _ as usize },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCB),
            "::",
            stringify!(ncb_callname)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NCB>())).ncb_name as *const _ as usize },
        34usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCB),
            "::",
            stringify!(ncb_name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NCB>())).ncb_rto as *const _ as usize },
        50usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCB),
            "::",
            stringify!(ncb_rto)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NCB>())).ncb_sto as *const _ as usize },
        51usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCB),
            "::",
            stringify!(ncb_sto)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NCB>())).ncb_post as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCB),
            "::",
            stringify!(ncb_post)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NCB>())).ncb_lana_num as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCB),
            "::",
            stringify!(ncb_lana_num)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NCB>())).ncb_cmd_cplt as *const _ as usize },
        65usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCB),
            "::",
            stringify!(ncb_cmd_cplt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NCB>())).ncb_reserve as *const _ as usize },
        66usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCB),
            "::",
            stringify!(ncb_reserve)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NCB>())).ncb_event as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCB),
            "::",
            stringify!(ncb_event)
        )
    );
}
pub type NCB = _NCB;
pub type PNCB = *mut _NCB;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ADAPTER_STATUS {
    pub adapter_address: [UCHAR; 6usize],
    pub rev_major: UCHAR,
    pub reserved0: UCHAR,
    pub adapter_type: UCHAR,
    pub rev_minor: UCHAR,
    pub duration: WORD,
    pub frmr_recv: WORD,
    pub frmr_xmit: WORD,
    pub iframe_recv_err: WORD,
    pub xmit_aborts: WORD,
    pub xmit_success: DWORD,
    pub recv_success: DWORD,
    pub iframe_xmit_err: WORD,
    pub recv_buff_unavail: WORD,
    pub t1_timeouts: WORD,
    pub ti_timeouts: WORD,
    pub reserved1: DWORD,
    pub free_ncbs: WORD,
    pub max_cfg_ncbs: WORD,
    pub max_ncbs: WORD,
    pub xmit_buf_unavail: WORD,
    pub max_dgram_size: WORD,
    pub pending_sess: WORD,
    pub max_cfg_sess: WORD,
    pub max_sess: WORD,
    pub max_sess_pkt_size: WORD,
    pub name_count: WORD,
}
#[test]
fn bindgen_test_layout__ADAPTER_STATUS() {
    assert_eq!(
        ::std::mem::size_of::<_ADAPTER_STATUS>(),
        60usize,
        concat!("Size of: ", stringify!(_ADAPTER_STATUS))
    );
    assert_eq!(
        ::std::mem::align_of::<_ADAPTER_STATUS>(),
        4usize,
        concat!("Alignment of ", stringify!(_ADAPTER_STATUS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ADAPTER_STATUS>())).adapter_address as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADAPTER_STATUS),
            "::",
            stringify!(adapter_address)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ADAPTER_STATUS>())).rev_major as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADAPTER_STATUS),
            "::",
            stringify!(rev_major)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ADAPTER_STATUS>())).reserved0 as *const _ as usize },
        7usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADAPTER_STATUS),
            "::",
            stringify!(reserved0)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ADAPTER_STATUS>())).adapter_type as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADAPTER_STATUS),
            "::",
            stringify!(adapter_type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ADAPTER_STATUS>())).rev_minor as *const _ as usize },
        9usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADAPTER_STATUS),
            "::",
            stringify!(rev_minor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ADAPTER_STATUS>())).duration as *const _ as usize },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADAPTER_STATUS),
            "::",
            stringify!(duration)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ADAPTER_STATUS>())).frmr_recv as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADAPTER_STATUS),
            "::",
            stringify!(frmr_recv)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ADAPTER_STATUS>())).frmr_xmit as *const _ as usize },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADAPTER_STATUS),
            "::",
            stringify!(frmr_xmit)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ADAPTER_STATUS>())).iframe_recv_err as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADAPTER_STATUS),
            "::",
            stringify!(iframe_recv_err)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ADAPTER_STATUS>())).xmit_aborts as *const _ as usize },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADAPTER_STATUS),
            "::",
            stringify!(xmit_aborts)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ADAPTER_STATUS>())).xmit_success as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADAPTER_STATUS),
            "::",
            stringify!(xmit_success)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ADAPTER_STATUS>())).recv_success as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADAPTER_STATUS),
            "::",
            stringify!(recv_success)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ADAPTER_STATUS>())).iframe_xmit_err as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADAPTER_STATUS),
            "::",
            stringify!(iframe_xmit_err)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ADAPTER_STATUS>())).recv_buff_unavail as *const _ as usize
        },
        30usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADAPTER_STATUS),
            "::",
            stringify!(recv_buff_unavail)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ADAPTER_STATUS>())).t1_timeouts as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADAPTER_STATUS),
            "::",
            stringify!(t1_timeouts)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ADAPTER_STATUS>())).ti_timeouts as *const _ as usize },
        34usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADAPTER_STATUS),
            "::",
            stringify!(ti_timeouts)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ADAPTER_STATUS>())).reserved1 as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADAPTER_STATUS),
            "::",
            stringify!(reserved1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ADAPTER_STATUS>())).free_ncbs as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADAPTER_STATUS),
            "::",
            stringify!(free_ncbs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ADAPTER_STATUS>())).max_cfg_ncbs as *const _ as usize },
        42usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADAPTER_STATUS),
            "::",
            stringify!(max_cfg_ncbs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ADAPTER_STATUS>())).max_ncbs as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADAPTER_STATUS),
            "::",
            stringify!(max_ncbs)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ADAPTER_STATUS>())).xmit_buf_unavail as *const _ as usize
        },
        46usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADAPTER_STATUS),
            "::",
            stringify!(xmit_buf_unavail)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ADAPTER_STATUS>())).max_dgram_size as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADAPTER_STATUS),
            "::",
            stringify!(max_dgram_size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ADAPTER_STATUS>())).pending_sess as *const _ as usize },
        50usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADAPTER_STATUS),
            "::",
            stringify!(pending_sess)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ADAPTER_STATUS>())).max_cfg_sess as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADAPTER_STATUS),
            "::",
            stringify!(max_cfg_sess)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ADAPTER_STATUS>())).max_sess as *const _ as usize },
        54usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADAPTER_STATUS),
            "::",
            stringify!(max_sess)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ADAPTER_STATUS>())).max_sess_pkt_size as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADAPTER_STATUS),
            "::",
            stringify!(max_sess_pkt_size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ADAPTER_STATUS>())).name_count as *const _ as usize },
        58usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADAPTER_STATUS),
            "::",
            stringify!(name_count)
        )
    );
}
pub type ADAPTER_STATUS = _ADAPTER_STATUS;
pub type PADAPTER_STATUS = *mut _ADAPTER_STATUS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NAME_BUFFER {
    pub name: [UCHAR; 16usize],
    pub name_num: UCHAR,
    pub name_flags: UCHAR,
}
#[test]
fn bindgen_test_layout__NAME_BUFFER() {
    assert_eq!(
        ::std::mem::size_of::<_NAME_BUFFER>(),
        18usize,
        concat!("Size of: ", stringify!(_NAME_BUFFER))
    );
    assert_eq!(
        ::std::mem::align_of::<_NAME_BUFFER>(),
        1usize,
        concat!("Alignment of ", stringify!(_NAME_BUFFER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NAME_BUFFER>())).name as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NAME_BUFFER),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NAME_BUFFER>())).name_num as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_NAME_BUFFER),
            "::",
            stringify!(name_num)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NAME_BUFFER>())).name_flags as *const _ as usize },
        17usize,
        concat!(
            "Offset of field: ",
            stringify!(_NAME_BUFFER),
            "::",
            stringify!(name_flags)
        )
    );
}
pub type NAME_BUFFER = _NAME_BUFFER;
pub type PNAME_BUFFER = *mut _NAME_BUFFER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SESSION_HEADER {
    pub sess_name: UCHAR,
    pub num_sess: UCHAR,
    pub rcv_dg_outstanding: UCHAR,
    pub rcv_any_outstanding: UCHAR,
}
#[test]
fn bindgen_test_layout__SESSION_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<_SESSION_HEADER>(),
        4usize,
        concat!("Size of: ", stringify!(_SESSION_HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<_SESSION_HEADER>(),
        1usize,
        concat!("Alignment of ", stringify!(_SESSION_HEADER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SESSION_HEADER>())).sess_name as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SESSION_HEADER),
            "::",
            stringify!(sess_name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SESSION_HEADER>())).num_sess as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_SESSION_HEADER),
            "::",
            stringify!(num_sess)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SESSION_HEADER>())).rcv_dg_outstanding as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_SESSION_HEADER),
            "::",
            stringify!(rcv_dg_outstanding)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SESSION_HEADER>())).rcv_any_outstanding as *const _ as usize
        },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(_SESSION_HEADER),
            "::",
            stringify!(rcv_any_outstanding)
        )
    );
}
pub type SESSION_HEADER = _SESSION_HEADER;
pub type PSESSION_HEADER = *mut _SESSION_HEADER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SESSION_BUFFER {
    pub lsn: UCHAR,
    pub state: UCHAR,
    pub local_name: [UCHAR; 16usize],
    pub remote_name: [UCHAR; 16usize],
    pub rcvs_outstanding: UCHAR,
    pub sends_outstanding: UCHAR,
}
#[test]
fn bindgen_test_layout__SESSION_BUFFER() {
    assert_eq!(
        ::std::mem::size_of::<_SESSION_BUFFER>(),
        36usize,
        concat!("Size of: ", stringify!(_SESSION_BUFFER))
    );
    assert_eq!(
        ::std::mem::align_of::<_SESSION_BUFFER>(),
        1usize,
        concat!("Alignment of ", stringify!(_SESSION_BUFFER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SESSION_BUFFER>())).lsn as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SESSION_BUFFER),
            "::",
            stringify!(lsn)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SESSION_BUFFER>())).state as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_SESSION_BUFFER),
            "::",
            stringify!(state)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SESSION_BUFFER>())).local_name as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_SESSION_BUFFER),
            "::",
            stringify!(local_name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SESSION_BUFFER>())).remote_name as *const _ as usize },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(_SESSION_BUFFER),
            "::",
            stringify!(remote_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SESSION_BUFFER>())).rcvs_outstanding as *const _ as usize
        },
        34usize,
        concat!(
            "Offset of field: ",
            stringify!(_SESSION_BUFFER),
            "::",
            stringify!(rcvs_outstanding)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SESSION_BUFFER>())).sends_outstanding as *const _ as usize
        },
        35usize,
        concat!(
            "Offset of field: ",
            stringify!(_SESSION_BUFFER),
            "::",
            stringify!(sends_outstanding)
        )
    );
}
pub type SESSION_BUFFER = _SESSION_BUFFER;
pub type PSESSION_BUFFER = *mut _SESSION_BUFFER;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _LANA_ENUM {
    pub length: UCHAR,
    pub lana: [UCHAR; 255usize],
}
#[test]
fn bindgen_test_layout__LANA_ENUM() {
    assert_eq!(
        ::std::mem::size_of::<_LANA_ENUM>(),
        256usize,
        concat!("Size of: ", stringify!(_LANA_ENUM))
    );
    assert_eq!(
        ::std::mem::align_of::<_LANA_ENUM>(),
        1usize,
        concat!("Alignment of ", stringify!(_LANA_ENUM))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_LANA_ENUM>())).length as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_LANA_ENUM),
            "::",
            stringify!(length)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_LANA_ENUM>())).lana as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_LANA_ENUM),
            "::",
            stringify!(lana)
        )
    );
}
pub type LANA_ENUM = _LANA_ENUM;
pub type PLANA_ENUM = *mut _LANA_ENUM;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FIND_NAME_HEADER {
    pub node_count: WORD,
    pub reserved: UCHAR,
    pub unique_group: UCHAR,
}
#[test]
fn bindgen_test_layout__FIND_NAME_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<_FIND_NAME_HEADER>(),
        4usize,
        concat!("Size of: ", stringify!(_FIND_NAME_HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<_FIND_NAME_HEADER>(),
        2usize,
        concat!("Alignment of ", stringify!(_FIND_NAME_HEADER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FIND_NAME_HEADER>())).node_count as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FIND_NAME_HEADER),
            "::",
            stringify!(node_count)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FIND_NAME_HEADER>())).reserved as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_FIND_NAME_HEADER),
            "::",
            stringify!(reserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FIND_NAME_HEADER>())).unique_group as *const _ as usize },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(_FIND_NAME_HEADER),
            "::",
            stringify!(unique_group)
        )
    );
}
pub type FIND_NAME_HEADER = _FIND_NAME_HEADER;
pub type PFIND_NAME_HEADER = *mut _FIND_NAME_HEADER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FIND_NAME_BUFFER {
    pub length: UCHAR,
    pub access_control: UCHAR,
    pub frame_control: UCHAR,
    pub destination_addr: [UCHAR; 6usize],
    pub source_addr: [UCHAR; 6usize],
    pub routing_info: [UCHAR; 18usize],
}
#[test]
fn bindgen_test_layout__FIND_NAME_BUFFER() {
    assert_eq!(
        ::std::mem::size_of::<_FIND_NAME_BUFFER>(),
        33usize,
        concat!("Size of: ", stringify!(_FIND_NAME_BUFFER))
    );
    assert_eq!(
        ::std::mem::align_of::<_FIND_NAME_BUFFER>(),
        1usize,
        concat!("Alignment of ", stringify!(_FIND_NAME_BUFFER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FIND_NAME_BUFFER>())).length as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FIND_NAME_BUFFER),
            "::",
            stringify!(length)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FIND_NAME_BUFFER>())).access_control as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_FIND_NAME_BUFFER),
            "::",
            stringify!(access_control)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FIND_NAME_BUFFER>())).frame_control as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_FIND_NAME_BUFFER),
            "::",
            stringify!(frame_control)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FIND_NAME_BUFFER>())).destination_addr as *const _ as usize
        },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(_FIND_NAME_BUFFER),
            "::",
            stringify!(destination_addr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FIND_NAME_BUFFER>())).source_addr as *const _ as usize },
        9usize,
        concat!(
            "Offset of field: ",
            stringify!(_FIND_NAME_BUFFER),
            "::",
            stringify!(source_addr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FIND_NAME_BUFFER>())).routing_info as *const _ as usize },
        15usize,
        concat!(
            "Offset of field: ",
            stringify!(_FIND_NAME_BUFFER),
            "::",
            stringify!(routing_info)
        )
    );
}
pub type FIND_NAME_BUFFER = _FIND_NAME_BUFFER;
pub type PFIND_NAME_BUFFER = *mut _FIND_NAME_BUFFER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ACTION_HEADER {
    pub transport_id: ULONG,
    pub action_code: USHORT,
    pub reserved: USHORT,
}
#[test]
fn bindgen_test_layout__ACTION_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<_ACTION_HEADER>(),
        8usize,
        concat!("Size of: ", stringify!(_ACTION_HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<_ACTION_HEADER>(),
        4usize,
        concat!("Alignment of ", stringify!(_ACTION_HEADER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ACTION_HEADER>())).transport_id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTION_HEADER),
            "::",
            stringify!(transport_id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ACTION_HEADER>())).action_code as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTION_HEADER),
            "::",
            stringify!(action_code)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ACTION_HEADER>())).reserved as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_ACTION_HEADER),
            "::",
            stringify!(reserved)
        )
    );
}
pub type ACTION_HEADER = _ACTION_HEADER;
pub type PACTION_HEADER = *mut _ACTION_HEADER;
extern "C" {
    pub fn Netbios(pncb: PNCB) -> UCHAR;
}
pub type I_RPC_HANDLE = *mut ::std::os::raw::c_void;
pub type RPC_STATUS = ::std::os::raw::c_long;
pub type RPC_CSTR = *mut ::std::os::raw::c_uchar;
pub type RPC_WSTR = *mut ::std::os::raw::c_ushort;
pub type RPC_CWSTR = *const ::std::os::raw::c_ushort;
pub type RPC_BINDING_HANDLE = I_RPC_HANDLE;
pub type handle_t = RPC_BINDING_HANDLE;
pub type UUID = GUID;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RPC_BINDING_VECTOR {
    pub Count: ::std::os::raw::c_ulong,
    pub BindingH: [RPC_BINDING_HANDLE; 1usize],
}
#[test]
fn bindgen_test_layout__RPC_BINDING_VECTOR() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_BINDING_VECTOR>(),
        16usize,
        concat!("Size of: ", stringify!(_RPC_BINDING_VECTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_BINDING_VECTOR>(),
        8usize,
        concat!("Alignment of ", stringify!(_RPC_BINDING_VECTOR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_BINDING_VECTOR>())).Count as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_VECTOR),
            "::",
            stringify!(Count)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_BINDING_VECTOR>())).BindingH as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_VECTOR),
            "::",
            stringify!(BindingH)
        )
    );
}
pub type RPC_BINDING_VECTOR = _RPC_BINDING_VECTOR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _UUID_VECTOR {
    pub Count: ::std::os::raw::c_ulong,
    pub Uuid: [*mut UUID; 1usize],
}
#[test]
fn bindgen_test_layout__UUID_VECTOR() {
    assert_eq!(
        ::std::mem::size_of::<_UUID_VECTOR>(),
        16usize,
        concat!("Size of: ", stringify!(_UUID_VECTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<_UUID_VECTOR>(),
        8usize,
        concat!("Alignment of ", stringify!(_UUID_VECTOR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_UUID_VECTOR>())).Count as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_UUID_VECTOR),
            "::",
            stringify!(Count)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_UUID_VECTOR>())).Uuid as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_UUID_VECTOR),
            "::",
            stringify!(Uuid)
        )
    );
}
pub type UUID_VECTOR = _UUID_VECTOR;
pub type RPC_IF_HANDLE = *mut ::std::os::raw::c_void;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RPC_IF_ID {
    pub Uuid: UUID,
    pub VersMajor: ::std::os::raw::c_ushort,
    pub VersMinor: ::std::os::raw::c_ushort,
}
#[test]
fn bindgen_test_layout__RPC_IF_ID() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_IF_ID>(),
        20usize,
        concat!("Size of: ", stringify!(_RPC_IF_ID))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_IF_ID>(),
        4usize,
        concat!("Alignment of ", stringify!(_RPC_IF_ID))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_IF_ID>())).Uuid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_IF_ID),
            "::",
            stringify!(Uuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_IF_ID>())).VersMajor as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_IF_ID),
            "::",
            stringify!(VersMajor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_IF_ID>())).VersMinor as *const _ as usize },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_IF_ID),
            "::",
            stringify!(VersMinor)
        )
    );
}
pub type RPC_IF_ID = _RPC_IF_ID;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RPC_PROTSEQ_VECTORA {
    pub Count: ::std::os::raw::c_uint,
    pub Protseq: [*mut ::std::os::raw::c_uchar; 1usize],
}
#[test]
fn bindgen_test_layout__RPC_PROTSEQ_VECTORA() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_PROTSEQ_VECTORA>(),
        16usize,
        concat!("Size of: ", stringify!(_RPC_PROTSEQ_VECTORA))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_PROTSEQ_VECTORA>(),
        8usize,
        concat!("Alignment of ", stringify!(_RPC_PROTSEQ_VECTORA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_PROTSEQ_VECTORA>())).Count as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_PROTSEQ_VECTORA),
            "::",
            stringify!(Count)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_PROTSEQ_VECTORA>())).Protseq as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_PROTSEQ_VECTORA),
            "::",
            stringify!(Protseq)
        )
    );
}
pub type RPC_PROTSEQ_VECTORA = _RPC_PROTSEQ_VECTORA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RPC_PROTSEQ_VECTORW {
    pub Count: ::std::os::raw::c_uint,
    pub Protseq: [*mut ::std::os::raw::c_ushort; 1usize],
}
#[test]
fn bindgen_test_layout__RPC_PROTSEQ_VECTORW() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_PROTSEQ_VECTORW>(),
        16usize,
        concat!("Size of: ", stringify!(_RPC_PROTSEQ_VECTORW))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_PROTSEQ_VECTORW>(),
        8usize,
        concat!("Alignment of ", stringify!(_RPC_PROTSEQ_VECTORW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_PROTSEQ_VECTORW>())).Count as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_PROTSEQ_VECTORW),
            "::",
            stringify!(Count)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_PROTSEQ_VECTORW>())).Protseq as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_PROTSEQ_VECTORW),
            "::",
            stringify!(Protseq)
        )
    );
}
pub type RPC_PROTSEQ_VECTORW = _RPC_PROTSEQ_VECTORW;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RPC_POLICY {
    pub Length: ::std::os::raw::c_uint,
    pub EndpointFlags: ::std::os::raw::c_ulong,
    pub NICFlags: ::std::os::raw::c_ulong,
}
#[test]
fn bindgen_test_layout__RPC_POLICY() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_POLICY>(),
        12usize,
        concat!("Size of: ", stringify!(_RPC_POLICY))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_POLICY>(),
        4usize,
        concat!("Alignment of ", stringify!(_RPC_POLICY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_POLICY>())).Length as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_POLICY),
            "::",
            stringify!(Length)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_POLICY>())).EndpointFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_POLICY),
            "::",
            stringify!(EndpointFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_POLICY>())).NICFlags as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_POLICY),
            "::",
            stringify!(NICFlags)
        )
    );
}
pub type RPC_POLICY = _RPC_POLICY;
pub type PRPC_POLICY = *mut _RPC_POLICY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct RPC_STATS_VECTOR {
    pub Count: ::std::os::raw::c_uint,
    pub Stats: [::std::os::raw::c_ulong; 1usize],
}
#[test]
fn bindgen_test_layout_RPC_STATS_VECTOR() {
    assert_eq!(
        ::std::mem::size_of::<RPC_STATS_VECTOR>(),
        8usize,
        concat!("Size of: ", stringify!(RPC_STATS_VECTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<RPC_STATS_VECTOR>(),
        4usize,
        concat!("Alignment of ", stringify!(RPC_STATS_VECTOR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<RPC_STATS_VECTOR>())).Count as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_STATS_VECTOR),
            "::",
            stringify!(Count)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<RPC_STATS_VECTOR>())).Stats as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_STATS_VECTOR),
            "::",
            stringify!(Stats)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct RPC_IF_ID_VECTOR {
    pub Count: ::std::os::raw::c_ulong,
    pub IfId: [*mut RPC_IF_ID; 1usize],
}
#[test]
fn bindgen_test_layout_RPC_IF_ID_VECTOR() {
    assert_eq!(
        ::std::mem::size_of::<RPC_IF_ID_VECTOR>(),
        16usize,
        concat!("Size of: ", stringify!(RPC_IF_ID_VECTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<RPC_IF_ID_VECTOR>(),
        8usize,
        concat!("Alignment of ", stringify!(RPC_IF_ID_VECTOR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<RPC_IF_ID_VECTOR>())).Count as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_IF_ID_VECTOR),
            "::",
            stringify!(Count)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<RPC_IF_ID_VECTOR>())).IfId as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_IF_ID_VECTOR),
            "::",
            stringify!(IfId)
        )
    );
}
extern "C" {
    pub fn RpcBindingCopy(
        SourceBinding: RPC_BINDING_HANDLE,
        DestinationBinding: *mut RPC_BINDING_HANDLE,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcBindingFree(Binding: *mut RPC_BINDING_HANDLE) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcBindingSetOption(
        hBinding: RPC_BINDING_HANDLE,
        option: ::std::os::raw::c_ulong,
        optionValue: ULONG_PTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcBindingInqOption(
        hBinding: RPC_BINDING_HANDLE,
        option: ::std::os::raw::c_ulong,
        pOptionValue: *mut ULONG_PTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcBindingFromStringBindingA(
        StringBinding: RPC_CSTR,
        Binding: *mut RPC_BINDING_HANDLE,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcBindingFromStringBindingW(
        StringBinding: RPC_WSTR,
        Binding: *mut RPC_BINDING_HANDLE,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcSsGetContextBinding(
        ContextHandle: *mut ::std::os::raw::c_void,
        Binding: *mut RPC_BINDING_HANDLE,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcBindingInqObject(Binding: RPC_BINDING_HANDLE, ObjectUuid: *mut UUID) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcBindingReset(Binding: RPC_BINDING_HANDLE) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcBindingSetObject(Binding: RPC_BINDING_HANDLE, ObjectUuid: *mut UUID) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcMgmtInqDefaultProtectLevel(
        AuthnSvc: ::std::os::raw::c_ulong,
        AuthnLevel: *mut ::std::os::raw::c_ulong,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcBindingToStringBindingA(
        Binding: RPC_BINDING_HANDLE,
        StringBinding: *mut RPC_CSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcBindingToStringBindingW(
        Binding: RPC_BINDING_HANDLE,
        StringBinding: *mut RPC_WSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcBindingVectorFree(BindingVector: *mut *mut RPC_BINDING_VECTOR) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcStringBindingComposeA(
        ObjUuid: RPC_CSTR,
        ProtSeq: RPC_CSTR,
        NetworkAddr: RPC_CSTR,
        Endpoint: RPC_CSTR,
        Options: RPC_CSTR,
        StringBinding: *mut RPC_CSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcStringBindingComposeW(
        ObjUuid: RPC_WSTR,
        ProtSeq: RPC_WSTR,
        NetworkAddr: RPC_WSTR,
        Endpoint: RPC_WSTR,
        Options: RPC_WSTR,
        StringBinding: *mut RPC_WSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcStringBindingParseA(
        StringBinding: RPC_CSTR,
        ObjUuid: *mut RPC_CSTR,
        Protseq: *mut RPC_CSTR,
        NetworkAddr: *mut RPC_CSTR,
        Endpoint: *mut RPC_CSTR,
        NetworkOptions: *mut RPC_CSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcStringBindingParseW(
        StringBinding: RPC_WSTR,
        ObjUuid: *mut RPC_WSTR,
        Protseq: *mut RPC_WSTR,
        NetworkAddr: *mut RPC_WSTR,
        Endpoint: *mut RPC_WSTR,
        NetworkOptions: *mut RPC_WSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcStringFreeA(String: *mut RPC_CSTR) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcStringFreeW(String: *mut RPC_WSTR) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcIfInqId(RpcIfHandle: RPC_IF_HANDLE, RpcIfId: *mut RPC_IF_ID) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNetworkIsProtseqValidA(Protseq: RPC_CSTR) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNetworkIsProtseqValidW(Protseq: RPC_WSTR) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcMgmtInqComTimeout(
        Binding: RPC_BINDING_HANDLE,
        Timeout: *mut ::std::os::raw::c_uint,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcMgmtSetComTimeout(
        Binding: RPC_BINDING_HANDLE,
        Timeout: ::std::os::raw::c_uint,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcMgmtSetCancelTimeout(Timeout: ::std::os::raw::c_long) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNetworkInqProtseqsA(ProtseqVector: *mut *mut RPC_PROTSEQ_VECTORA) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNetworkInqProtseqsW(ProtseqVector: *mut *mut RPC_PROTSEQ_VECTORW) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcObjectInqType(ObjUuid: *mut UUID, TypeUuid: *mut UUID) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcObjectSetInqFn(
        InquiryFn: ::std::option::Option<
            unsafe extern "C" fn(arg1: *mut UUID, arg2: *mut UUID, arg3: *mut RPC_STATUS),
        >,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcObjectSetType(ObjUuid: *mut UUID, TypeUuid: *mut UUID) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcProtseqVectorFreeA(ProtseqVector: *mut *mut RPC_PROTSEQ_VECTORA) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcProtseqVectorFreeW(ProtseqVector: *mut *mut RPC_PROTSEQ_VECTORW) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerInqBindings(BindingVector: *mut *mut RPC_BINDING_VECTOR) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerInqBindingsEx(
        SecurityDescriptor: *mut ::std::os::raw::c_void,
        BindingVector: *mut *mut RPC_BINDING_VECTOR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerInqIf(
        IfSpec: RPC_IF_HANDLE,
        MgrTypeUuid: *mut UUID,
        MgrEpv: *mut *mut ::std::os::raw::c_void,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerListen(
        MinimumCallThreads: ::std::os::raw::c_uint,
        MaxCalls: ::std::os::raw::c_uint,
        DontWait: ::std::os::raw::c_uint,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerRegisterIf(
        IfSpec: RPC_IF_HANDLE,
        MgrTypeUuid: *mut UUID,
        MgrEpv: *mut ::std::os::raw::c_void,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerRegisterIfEx(
        IfSpec: RPC_IF_HANDLE,
        MgrTypeUuid: *mut UUID,
        MgrEpv: *mut ::std::os::raw::c_void,
        Flags: ::std::os::raw::c_uint,
        MaxCalls: ::std::os::raw::c_uint,
        IfCallback: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: RPC_IF_HANDLE,
                arg2: *mut ::std::os::raw::c_void,
            ) -> RPC_STATUS,
        >,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerRegisterIf2(
        IfSpec: RPC_IF_HANDLE,
        MgrTypeUuid: *mut UUID,
        MgrEpv: *mut ::std::os::raw::c_void,
        Flags: ::std::os::raw::c_uint,
        MaxCalls: ::std::os::raw::c_uint,
        MaxRpcSize: ::std::os::raw::c_uint,
        IfCallbackFn: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: RPC_IF_HANDLE,
                arg2: *mut ::std::os::raw::c_void,
            ) -> RPC_STATUS,
        >,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerRegisterIf3(
        IfSpec: RPC_IF_HANDLE,
        MgrTypeUuid: *mut UUID,
        MgrEpv: *mut ::std::os::raw::c_void,
        Flags: ::std::os::raw::c_uint,
        MaxCalls: ::std::os::raw::c_uint,
        MaxRpcSize: ::std::os::raw::c_uint,
        IfCallback: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: RPC_IF_HANDLE,
                arg2: *mut ::std::os::raw::c_void,
            ) -> RPC_STATUS,
        >,
        SecurityDescriptor: *mut ::std::os::raw::c_void,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerUnregisterIf(
        IfSpec: RPC_IF_HANDLE,
        MgrTypeUuid: *mut UUID,
        WaitForCallsToComplete: ::std::os::raw::c_uint,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerUnregisterIfEx(
        IfSpec: RPC_IF_HANDLE,
        MgrTypeUuid: *mut UUID,
        RundownContextHandles: ::std::os::raw::c_int,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerUseAllProtseqs(
        MaxCalls: ::std::os::raw::c_uint,
        SecurityDescriptor: *mut ::std::os::raw::c_void,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerUseAllProtseqsEx(
        MaxCalls: ::std::os::raw::c_uint,
        SecurityDescriptor: *mut ::std::os::raw::c_void,
        Policy: PRPC_POLICY,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerUseAllProtseqsIf(
        MaxCalls: ::std::os::raw::c_uint,
        IfSpec: RPC_IF_HANDLE,
        SecurityDescriptor: *mut ::std::os::raw::c_void,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerUseAllProtseqsIfEx(
        MaxCalls: ::std::os::raw::c_uint,
        IfSpec: RPC_IF_HANDLE,
        SecurityDescriptor: *mut ::std::os::raw::c_void,
        Policy: PRPC_POLICY,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerUseProtseqA(
        Protseq: RPC_CSTR,
        MaxCalls: ::std::os::raw::c_uint,
        SecurityDescriptor: *mut ::std::os::raw::c_void,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerUseProtseqExA(
        Protseq: RPC_CSTR,
        MaxCalls: ::std::os::raw::c_uint,
        SecurityDescriptor: *mut ::std::os::raw::c_void,
        Policy: PRPC_POLICY,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerUseProtseqW(
        Protseq: RPC_WSTR,
        MaxCalls: ::std::os::raw::c_uint,
        SecurityDescriptor: *mut ::std::os::raw::c_void,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerUseProtseqExW(
        Protseq: RPC_WSTR,
        MaxCalls: ::std::os::raw::c_uint,
        SecurityDescriptor: *mut ::std::os::raw::c_void,
        Policy: PRPC_POLICY,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerUseProtseqEpA(
        Protseq: RPC_CSTR,
        MaxCalls: ::std::os::raw::c_uint,
        Endpoint: RPC_CSTR,
        SecurityDescriptor: *mut ::std::os::raw::c_void,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerUseProtseqEpExA(
        Protseq: RPC_CSTR,
        MaxCalls: ::std::os::raw::c_uint,
        Endpoint: RPC_CSTR,
        SecurityDescriptor: *mut ::std::os::raw::c_void,
        Policy: PRPC_POLICY,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerUseProtseqEpW(
        Protseq: RPC_WSTR,
        MaxCalls: ::std::os::raw::c_uint,
        Endpoint: RPC_WSTR,
        SecurityDescriptor: *mut ::std::os::raw::c_void,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerUseProtseqEpExW(
        Protseq: RPC_WSTR,
        MaxCalls: ::std::os::raw::c_uint,
        Endpoint: RPC_WSTR,
        SecurityDescriptor: *mut ::std::os::raw::c_void,
        Policy: PRPC_POLICY,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerUseProtseqIfA(
        Protseq: RPC_CSTR,
        MaxCalls: ::std::os::raw::c_uint,
        IfSpec: RPC_IF_HANDLE,
        SecurityDescriptor: *mut ::std::os::raw::c_void,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerUseProtseqIfExA(
        Protseq: RPC_CSTR,
        MaxCalls: ::std::os::raw::c_uint,
        IfSpec: RPC_IF_HANDLE,
        SecurityDescriptor: *mut ::std::os::raw::c_void,
        Policy: PRPC_POLICY,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerUseProtseqIfW(
        Protseq: RPC_WSTR,
        MaxCalls: ::std::os::raw::c_uint,
        IfSpec: RPC_IF_HANDLE,
        SecurityDescriptor: *mut ::std::os::raw::c_void,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerUseProtseqIfExW(
        Protseq: RPC_WSTR,
        MaxCalls: ::std::os::raw::c_uint,
        IfSpec: RPC_IF_HANDLE,
        SecurityDescriptor: *mut ::std::os::raw::c_void,
        Policy: PRPC_POLICY,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerYield();
}
extern "C" {
    pub fn RpcMgmtStatsVectorFree(StatsVector: *mut *mut RPC_STATS_VECTOR) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcMgmtInqStats(
        Binding: RPC_BINDING_HANDLE,
        Statistics: *mut *mut RPC_STATS_VECTOR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcMgmtIsServerListening(Binding: RPC_BINDING_HANDLE) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcMgmtStopServerListening(Binding: RPC_BINDING_HANDLE) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcMgmtWaitServerListen() -> RPC_STATUS;
}
extern "C" {
    pub fn RpcMgmtSetServerStackSize(ThreadStackSize: ::std::os::raw::c_ulong) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcSsDontSerializeContext();
}
extern "C" {
    pub fn RpcMgmtEnableIdleCleanup() -> RPC_STATUS;
}
extern "C" {
    pub fn RpcMgmtInqIfIds(
        Binding: RPC_BINDING_HANDLE,
        IfIdVector: *mut *mut RPC_IF_ID_VECTOR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcIfIdVectorFree(IfIdVector: *mut *mut RPC_IF_ID_VECTOR) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcMgmtInqServerPrincNameA(
        Binding: RPC_BINDING_HANDLE,
        AuthnSvc: ::std::os::raw::c_ulong,
        ServerPrincName: *mut RPC_CSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcMgmtInqServerPrincNameW(
        Binding: RPC_BINDING_HANDLE,
        AuthnSvc: ::std::os::raw::c_ulong,
        ServerPrincName: *mut RPC_WSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerInqDefaultPrincNameA(
        AuthnSvc: ::std::os::raw::c_ulong,
        PrincName: *mut RPC_CSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerInqDefaultPrincNameW(
        AuthnSvc: ::std::os::raw::c_ulong,
        PrincName: *mut RPC_WSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcEpResolveBinding(Binding: RPC_BINDING_HANDLE, IfSpec: RPC_IF_HANDLE) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsBindingInqEntryNameA(
        Binding: RPC_BINDING_HANDLE,
        EntryNameSyntax: ::std::os::raw::c_ulong,
        EntryName: *mut RPC_CSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsBindingInqEntryNameW(
        Binding: RPC_BINDING_HANDLE,
        EntryNameSyntax: ::std::os::raw::c_ulong,
        EntryName: *mut RPC_WSTR,
    ) -> RPC_STATUS;
}
pub type RPC_AUTH_IDENTITY_HANDLE = *mut ::std::os::raw::c_void;
pub type RPC_AUTHZ_HANDLE = *mut ::std::os::raw::c_void;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RPC_SECURITY_QOS {
    pub Version: ::std::os::raw::c_ulong,
    pub Capabilities: ::std::os::raw::c_ulong,
    pub IdentityTracking: ::std::os::raw::c_ulong,
    pub ImpersonationType: ::std::os::raw::c_ulong,
}
#[test]
fn bindgen_test_layout__RPC_SECURITY_QOS() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_SECURITY_QOS>(),
        16usize,
        concat!("Size of: ", stringify!(_RPC_SECURITY_QOS))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_SECURITY_QOS>(),
        4usize,
        concat!("Alignment of ", stringify!(_RPC_SECURITY_QOS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_SECURITY_QOS>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_SECURITY_QOS>())).Capabilities as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS),
            "::",
            stringify!(Capabilities)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS>())).IdentityTracking as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS),
            "::",
            stringify!(IdentityTracking)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS>())).ImpersonationType as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS),
            "::",
            stringify!(ImpersonationType)
        )
    );
}
pub type RPC_SECURITY_QOS = _RPC_SECURITY_QOS;
pub type PRPC_SECURITY_QOS = *mut _RPC_SECURITY_QOS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SEC_WINNT_AUTH_IDENTITY_W {
    pub User: *mut ::std::os::raw::c_ushort,
    pub UserLength: ::std::os::raw::c_ulong,
    pub Domain: *mut ::std::os::raw::c_ushort,
    pub DomainLength: ::std::os::raw::c_ulong,
    pub Password: *mut ::std::os::raw::c_ushort,
    pub PasswordLength: ::std::os::raw::c_ulong,
    pub Flags: ::std::os::raw::c_ulong,
}
#[test]
fn bindgen_test_layout__SEC_WINNT_AUTH_IDENTITY_W() {
    assert_eq!(
        ::std::mem::size_of::<_SEC_WINNT_AUTH_IDENTITY_W>(),
        48usize,
        concat!("Size of: ", stringify!(_SEC_WINNT_AUTH_IDENTITY_W))
    );
    assert_eq!(
        ::std::mem::align_of::<_SEC_WINNT_AUTH_IDENTITY_W>(),
        8usize,
        concat!("Alignment of ", stringify!(_SEC_WINNT_AUTH_IDENTITY_W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SEC_WINNT_AUTH_IDENTITY_W>())).User as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SEC_WINNT_AUTH_IDENTITY_W),
            "::",
            stringify!(User)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SEC_WINNT_AUTH_IDENTITY_W>())).UserLength as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SEC_WINNT_AUTH_IDENTITY_W),
            "::",
            stringify!(UserLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SEC_WINNT_AUTH_IDENTITY_W>())).Domain as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SEC_WINNT_AUTH_IDENTITY_W),
            "::",
            stringify!(Domain)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SEC_WINNT_AUTH_IDENTITY_W>())).DomainLength as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_SEC_WINNT_AUTH_IDENTITY_W),
            "::",
            stringify!(DomainLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SEC_WINNT_AUTH_IDENTITY_W>())).Password as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_SEC_WINNT_AUTH_IDENTITY_W),
            "::",
            stringify!(Password)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SEC_WINNT_AUTH_IDENTITY_W>())).PasswordLength as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_SEC_WINNT_AUTH_IDENTITY_W),
            "::",
            stringify!(PasswordLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SEC_WINNT_AUTH_IDENTITY_W>())).Flags as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_SEC_WINNT_AUTH_IDENTITY_W),
            "::",
            stringify!(Flags)
        )
    );
}
pub type SEC_WINNT_AUTH_IDENTITY_W = _SEC_WINNT_AUTH_IDENTITY_W;
pub type PSEC_WINNT_AUTH_IDENTITY_W = *mut _SEC_WINNT_AUTH_IDENTITY_W;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SEC_WINNT_AUTH_IDENTITY_A {
    pub User: *mut ::std::os::raw::c_uchar,
    pub UserLength: ::std::os::raw::c_ulong,
    pub Domain: *mut ::std::os::raw::c_uchar,
    pub DomainLength: ::std::os::raw::c_ulong,
    pub Password: *mut ::std::os::raw::c_uchar,
    pub PasswordLength: ::std::os::raw::c_ulong,
    pub Flags: ::std::os::raw::c_ulong,
}
#[test]
fn bindgen_test_layout__SEC_WINNT_AUTH_IDENTITY_A() {
    assert_eq!(
        ::std::mem::size_of::<_SEC_WINNT_AUTH_IDENTITY_A>(),
        48usize,
        concat!("Size of: ", stringify!(_SEC_WINNT_AUTH_IDENTITY_A))
    );
    assert_eq!(
        ::std::mem::align_of::<_SEC_WINNT_AUTH_IDENTITY_A>(),
        8usize,
        concat!("Alignment of ", stringify!(_SEC_WINNT_AUTH_IDENTITY_A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SEC_WINNT_AUTH_IDENTITY_A>())).User as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SEC_WINNT_AUTH_IDENTITY_A),
            "::",
            stringify!(User)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SEC_WINNT_AUTH_IDENTITY_A>())).UserLength as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SEC_WINNT_AUTH_IDENTITY_A),
            "::",
            stringify!(UserLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SEC_WINNT_AUTH_IDENTITY_A>())).Domain as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SEC_WINNT_AUTH_IDENTITY_A),
            "::",
            stringify!(Domain)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SEC_WINNT_AUTH_IDENTITY_A>())).DomainLength as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_SEC_WINNT_AUTH_IDENTITY_A),
            "::",
            stringify!(DomainLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SEC_WINNT_AUTH_IDENTITY_A>())).Password as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_SEC_WINNT_AUTH_IDENTITY_A),
            "::",
            stringify!(Password)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SEC_WINNT_AUTH_IDENTITY_A>())).PasswordLength as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_SEC_WINNT_AUTH_IDENTITY_A),
            "::",
            stringify!(PasswordLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SEC_WINNT_AUTH_IDENTITY_A>())).Flags as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_SEC_WINNT_AUTH_IDENTITY_A),
            "::",
            stringify!(Flags)
        )
    );
}
pub type SEC_WINNT_AUTH_IDENTITY_A = _SEC_WINNT_AUTH_IDENTITY_A;
pub type PSEC_WINNT_AUTH_IDENTITY_A = *mut _SEC_WINNT_AUTH_IDENTITY_A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RPC_HTTP_TRANSPORT_CREDENTIALS_W {
    pub TransportCredentials: *mut SEC_WINNT_AUTH_IDENTITY_W,
    pub Flags: ::std::os::raw::c_ulong,
    pub AuthenticationTarget: ::std::os::raw::c_ulong,
    pub NumberOfAuthnSchemes: ::std::os::raw::c_ulong,
    pub AuthnSchemes: *mut ::std::os::raw::c_ulong,
    pub ServerCertificateSubject: *mut ::std::os::raw::c_ushort,
}
#[test]
fn bindgen_test_layout__RPC_HTTP_TRANSPORT_CREDENTIALS_W() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_HTTP_TRANSPORT_CREDENTIALS_W>(),
        40usize,
        concat!("Size of: ", stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_W))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_HTTP_TRANSPORT_CREDENTIALS_W>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_W)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_W>())).TransportCredentials
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_W),
            "::",
            stringify!(TransportCredentials)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_W>())).Flags as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_W),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_W>())).AuthenticationTarget
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_W),
            "::",
            stringify!(AuthenticationTarget)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_W>())).NumberOfAuthnSchemes
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_W),
            "::",
            stringify!(NumberOfAuthnSchemes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_W>())).AuthnSchemes as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_W),
            "::",
            stringify!(AuthnSchemes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_W>())).ServerCertificateSubject
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_W),
            "::",
            stringify!(ServerCertificateSubject)
        )
    );
}
pub type RPC_HTTP_TRANSPORT_CREDENTIALS_W = _RPC_HTTP_TRANSPORT_CREDENTIALS_W;
pub type PRPC_HTTP_TRANSPORT_CREDENTIALS_W = *mut _RPC_HTTP_TRANSPORT_CREDENTIALS_W;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RPC_HTTP_TRANSPORT_CREDENTIALS_A {
    pub TransportCredentials: *mut SEC_WINNT_AUTH_IDENTITY_A,
    pub Flags: ::std::os::raw::c_ulong,
    pub AuthenticationTarget: ::std::os::raw::c_ulong,
    pub NumberOfAuthnSchemes: ::std::os::raw::c_ulong,
    pub AuthnSchemes: *mut ::std::os::raw::c_ulong,
    pub ServerCertificateSubject: *mut ::std::os::raw::c_uchar,
}
#[test]
fn bindgen_test_layout__RPC_HTTP_TRANSPORT_CREDENTIALS_A() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_HTTP_TRANSPORT_CREDENTIALS_A>(),
        40usize,
        concat!("Size of: ", stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_A))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_HTTP_TRANSPORT_CREDENTIALS_A>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_A)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_A>())).TransportCredentials
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_A),
            "::",
            stringify!(TransportCredentials)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_A>())).Flags as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_A),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_A>())).AuthenticationTarget
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_A),
            "::",
            stringify!(AuthenticationTarget)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_A>())).NumberOfAuthnSchemes
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_A),
            "::",
            stringify!(NumberOfAuthnSchemes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_A>())).AuthnSchemes as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_A),
            "::",
            stringify!(AuthnSchemes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_A>())).ServerCertificateSubject
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_A),
            "::",
            stringify!(ServerCertificateSubject)
        )
    );
}
pub type RPC_HTTP_TRANSPORT_CREDENTIALS_A = _RPC_HTTP_TRANSPORT_CREDENTIALS_A;
pub type PRPC_HTTP_TRANSPORT_CREDENTIALS_A = *mut _RPC_HTTP_TRANSPORT_CREDENTIALS_A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W {
    pub TransportCredentials: *mut SEC_WINNT_AUTH_IDENTITY_W,
    pub Flags: ::std::os::raw::c_ulong,
    pub AuthenticationTarget: ::std::os::raw::c_ulong,
    pub NumberOfAuthnSchemes: ::std::os::raw::c_ulong,
    pub AuthnSchemes: *mut ::std::os::raw::c_ulong,
    pub ServerCertificateSubject: *mut ::std::os::raw::c_ushort,
    pub ProxyCredentials: *mut SEC_WINNT_AUTH_IDENTITY_W,
    pub NumberOfProxyAuthnSchemes: ::std::os::raw::c_ulong,
    pub ProxyAuthnSchemes: *mut ::std::os::raw::c_ulong,
}
#[test]
fn bindgen_test_layout__RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W>(),
        64usize,
        concat!(
            "Size of: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W>())).TransportCredentials
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W),
            "::",
            stringify!(TransportCredentials)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W>())).Flags as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W>())).AuthenticationTarget
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W),
            "::",
            stringify!(AuthenticationTarget)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W>())).NumberOfAuthnSchemes
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W),
            "::",
            stringify!(NumberOfAuthnSchemes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W>())).AuthnSchemes
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W),
            "::",
            stringify!(AuthnSchemes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W>()))
                .ServerCertificateSubject as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W),
            "::",
            stringify!(ServerCertificateSubject)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W>())).ProxyCredentials
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W),
            "::",
            stringify!(ProxyCredentials)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W>()))
                .NumberOfProxyAuthnSchemes as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W),
            "::",
            stringify!(NumberOfProxyAuthnSchemes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W>())).ProxyAuthnSchemes
                as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W),
            "::",
            stringify!(ProxyAuthnSchemes)
        )
    );
}
pub type RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W = _RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W;
pub type PRPC_HTTP_TRANSPORT_CREDENTIALS_V2_W = *mut _RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A {
    pub TransportCredentials: *mut SEC_WINNT_AUTH_IDENTITY_A,
    pub Flags: ::std::os::raw::c_ulong,
    pub AuthenticationTarget: ::std::os::raw::c_ulong,
    pub NumberOfAuthnSchemes: ::std::os::raw::c_ulong,
    pub AuthnSchemes: *mut ::std::os::raw::c_ulong,
    pub ServerCertificateSubject: *mut ::std::os::raw::c_uchar,
    pub ProxyCredentials: *mut SEC_WINNT_AUTH_IDENTITY_A,
    pub NumberOfProxyAuthnSchemes: ::std::os::raw::c_ulong,
    pub ProxyAuthnSchemes: *mut ::std::os::raw::c_ulong,
}
#[test]
fn bindgen_test_layout__RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A>(),
        64usize,
        concat!(
            "Size of: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A>())).TransportCredentials
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A),
            "::",
            stringify!(TransportCredentials)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A>())).Flags as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A>())).AuthenticationTarget
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A),
            "::",
            stringify!(AuthenticationTarget)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A>())).NumberOfAuthnSchemes
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A),
            "::",
            stringify!(NumberOfAuthnSchemes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A>())).AuthnSchemes
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A),
            "::",
            stringify!(AuthnSchemes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A>()))
                .ServerCertificateSubject as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A),
            "::",
            stringify!(ServerCertificateSubject)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A>())).ProxyCredentials
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A),
            "::",
            stringify!(ProxyCredentials)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A>()))
                .NumberOfProxyAuthnSchemes as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A),
            "::",
            stringify!(NumberOfProxyAuthnSchemes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A>())).ProxyAuthnSchemes
                as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A),
            "::",
            stringify!(ProxyAuthnSchemes)
        )
    );
}
pub type RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A = _RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A;
pub type PRPC_HTTP_TRANSPORT_CREDENTIALS_V2_A = *mut _RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W {
    pub TransportCredentials: RPC_AUTH_IDENTITY_HANDLE,
    pub Flags: ::std::os::raw::c_ulong,
    pub AuthenticationTarget: ::std::os::raw::c_ulong,
    pub NumberOfAuthnSchemes: ::std::os::raw::c_ulong,
    pub AuthnSchemes: *mut ::std::os::raw::c_ulong,
    pub ServerCertificateSubject: *mut ::std::os::raw::c_ushort,
    pub ProxyCredentials: RPC_AUTH_IDENTITY_HANDLE,
    pub NumberOfProxyAuthnSchemes: ::std::os::raw::c_ulong,
    pub ProxyAuthnSchemes: *mut ::std::os::raw::c_ulong,
}
#[test]
fn bindgen_test_layout__RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W>(),
        64usize,
        concat!(
            "Size of: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W>())).TransportCredentials
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W),
            "::",
            stringify!(TransportCredentials)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W>())).Flags as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W>())).AuthenticationTarget
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W),
            "::",
            stringify!(AuthenticationTarget)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W>())).NumberOfAuthnSchemes
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W),
            "::",
            stringify!(NumberOfAuthnSchemes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W>())).AuthnSchemes
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W),
            "::",
            stringify!(AuthnSchemes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W>()))
                .ServerCertificateSubject as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W),
            "::",
            stringify!(ServerCertificateSubject)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W>())).ProxyCredentials
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W),
            "::",
            stringify!(ProxyCredentials)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W>()))
                .NumberOfProxyAuthnSchemes as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W),
            "::",
            stringify!(NumberOfProxyAuthnSchemes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W>())).ProxyAuthnSchemes
                as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W),
            "::",
            stringify!(ProxyAuthnSchemes)
        )
    );
}
pub type RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W = _RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W;
pub type PRPC_HTTP_TRANSPORT_CREDENTIALS_V3_W = *mut _RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A {
    pub TransportCredentials: RPC_AUTH_IDENTITY_HANDLE,
    pub Flags: ::std::os::raw::c_ulong,
    pub AuthenticationTarget: ::std::os::raw::c_ulong,
    pub NumberOfAuthnSchemes: ::std::os::raw::c_ulong,
    pub AuthnSchemes: *mut ::std::os::raw::c_ulong,
    pub ServerCertificateSubject: *mut ::std::os::raw::c_uchar,
    pub ProxyCredentials: RPC_AUTH_IDENTITY_HANDLE,
    pub NumberOfProxyAuthnSchemes: ::std::os::raw::c_ulong,
    pub ProxyAuthnSchemes: *mut ::std::os::raw::c_ulong,
}
#[test]
fn bindgen_test_layout__RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A>(),
        64usize,
        concat!(
            "Size of: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A>())).TransportCredentials
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A),
            "::",
            stringify!(TransportCredentials)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A>())).Flags as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A>())).AuthenticationTarget
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A),
            "::",
            stringify!(AuthenticationTarget)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A>())).NumberOfAuthnSchemes
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A),
            "::",
            stringify!(NumberOfAuthnSchemes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A>())).AuthnSchemes
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A),
            "::",
            stringify!(AuthnSchemes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A>()))
                .ServerCertificateSubject as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A),
            "::",
            stringify!(ServerCertificateSubject)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A>())).ProxyCredentials
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A),
            "::",
            stringify!(ProxyCredentials)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A>()))
                .NumberOfProxyAuthnSchemes as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A),
            "::",
            stringify!(NumberOfProxyAuthnSchemes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A>())).ProxyAuthnSchemes
                as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A),
            "::",
            stringify!(ProxyAuthnSchemes)
        )
    );
}
pub type RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A = _RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A;
pub type PRPC_HTTP_TRANSPORT_CREDENTIALS_V3_A = *mut _RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _RPC_SECURITY_QOS_V2_W {
    pub Version: ::std::os::raw::c_ulong,
    pub Capabilities: ::std::os::raw::c_ulong,
    pub IdentityTracking: ::std::os::raw::c_ulong,
    pub ImpersonationType: ::std::os::raw::c_ulong,
    pub AdditionalSecurityInfoType: ::std::os::raw::c_ulong,
    pub u: _RPC_SECURITY_QOS_V2_W__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _RPC_SECURITY_QOS_V2_W__bindgen_ty_1 {
    pub HttpCredentials: *mut RPC_HTTP_TRANSPORT_CREDENTIALS_W,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__RPC_SECURITY_QOS_V2_W__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_SECURITY_QOS_V2_W__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_RPC_SECURITY_QOS_V2_W__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_SECURITY_QOS_V2_W__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_RPC_SECURITY_QOS_V2_W__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V2_W__bindgen_ty_1>())).HttpCredentials
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V2_W__bindgen_ty_1),
            "::",
            stringify!(HttpCredentials)
        )
    );
}
#[test]
fn bindgen_test_layout__RPC_SECURITY_QOS_V2_W() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_SECURITY_QOS_V2_W>(),
        32usize,
        concat!("Size of: ", stringify!(_RPC_SECURITY_QOS_V2_W))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_SECURITY_QOS_V2_W>(),
        8usize,
        concat!("Alignment of ", stringify!(_RPC_SECURITY_QOS_V2_W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V2_W>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V2_W),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V2_W>())).Capabilities as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V2_W),
            "::",
            stringify!(Capabilities)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V2_W>())).IdentityTracking as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V2_W),
            "::",
            stringify!(IdentityTracking)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V2_W>())).ImpersonationType as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V2_W),
            "::",
            stringify!(ImpersonationType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V2_W>())).AdditionalSecurityInfoType
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V2_W),
            "::",
            stringify!(AdditionalSecurityInfoType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V2_W>())).u as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V2_W),
            "::",
            stringify!(u)
        )
    );
}
pub type RPC_SECURITY_QOS_V2_W = _RPC_SECURITY_QOS_V2_W;
pub type PRPC_SECURITY_QOS_V2_W = *mut _RPC_SECURITY_QOS_V2_W;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _RPC_SECURITY_QOS_V2_A {
    pub Version: ::std::os::raw::c_ulong,
    pub Capabilities: ::std::os::raw::c_ulong,
    pub IdentityTracking: ::std::os::raw::c_ulong,
    pub ImpersonationType: ::std::os::raw::c_ulong,
    pub AdditionalSecurityInfoType: ::std::os::raw::c_ulong,
    pub u: _RPC_SECURITY_QOS_V2_A__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _RPC_SECURITY_QOS_V2_A__bindgen_ty_1 {
    pub HttpCredentials: *mut RPC_HTTP_TRANSPORT_CREDENTIALS_A,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__RPC_SECURITY_QOS_V2_A__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_SECURITY_QOS_V2_A__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_RPC_SECURITY_QOS_V2_A__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_SECURITY_QOS_V2_A__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_RPC_SECURITY_QOS_V2_A__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V2_A__bindgen_ty_1>())).HttpCredentials
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V2_A__bindgen_ty_1),
            "::",
            stringify!(HttpCredentials)
        )
    );
}
#[test]
fn bindgen_test_layout__RPC_SECURITY_QOS_V2_A() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_SECURITY_QOS_V2_A>(),
        32usize,
        concat!("Size of: ", stringify!(_RPC_SECURITY_QOS_V2_A))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_SECURITY_QOS_V2_A>(),
        8usize,
        concat!("Alignment of ", stringify!(_RPC_SECURITY_QOS_V2_A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V2_A>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V2_A),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V2_A>())).Capabilities as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V2_A),
            "::",
            stringify!(Capabilities)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V2_A>())).IdentityTracking as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V2_A),
            "::",
            stringify!(IdentityTracking)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V2_A>())).ImpersonationType as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V2_A),
            "::",
            stringify!(ImpersonationType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V2_A>())).AdditionalSecurityInfoType
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V2_A),
            "::",
            stringify!(AdditionalSecurityInfoType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V2_A>())).u as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V2_A),
            "::",
            stringify!(u)
        )
    );
}
pub type RPC_SECURITY_QOS_V2_A = _RPC_SECURITY_QOS_V2_A;
pub type PRPC_SECURITY_QOS_V2_A = *mut _RPC_SECURITY_QOS_V2_A;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _RPC_SECURITY_QOS_V3_W {
    pub Version: ::std::os::raw::c_ulong,
    pub Capabilities: ::std::os::raw::c_ulong,
    pub IdentityTracking: ::std::os::raw::c_ulong,
    pub ImpersonationType: ::std::os::raw::c_ulong,
    pub AdditionalSecurityInfoType: ::std::os::raw::c_ulong,
    pub u: _RPC_SECURITY_QOS_V3_W__bindgen_ty_1,
    pub Sid: *mut ::std::os::raw::c_void,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _RPC_SECURITY_QOS_V3_W__bindgen_ty_1 {
    pub HttpCredentials: *mut RPC_HTTP_TRANSPORT_CREDENTIALS_W,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__RPC_SECURITY_QOS_V3_W__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_SECURITY_QOS_V3_W__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_RPC_SECURITY_QOS_V3_W__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_SECURITY_QOS_V3_W__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_RPC_SECURITY_QOS_V3_W__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V3_W__bindgen_ty_1>())).HttpCredentials
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V3_W__bindgen_ty_1),
            "::",
            stringify!(HttpCredentials)
        )
    );
}
#[test]
fn bindgen_test_layout__RPC_SECURITY_QOS_V3_W() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_SECURITY_QOS_V3_W>(),
        40usize,
        concat!("Size of: ", stringify!(_RPC_SECURITY_QOS_V3_W))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_SECURITY_QOS_V3_W>(),
        8usize,
        concat!("Alignment of ", stringify!(_RPC_SECURITY_QOS_V3_W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V3_W>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V3_W),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V3_W>())).Capabilities as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V3_W),
            "::",
            stringify!(Capabilities)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V3_W>())).IdentityTracking as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V3_W),
            "::",
            stringify!(IdentityTracking)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V3_W>())).ImpersonationType as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V3_W),
            "::",
            stringify!(ImpersonationType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V3_W>())).AdditionalSecurityInfoType
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V3_W),
            "::",
            stringify!(AdditionalSecurityInfoType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V3_W>())).u as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V3_W),
            "::",
            stringify!(u)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V3_W>())).Sid as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V3_W),
            "::",
            stringify!(Sid)
        )
    );
}
pub type RPC_SECURITY_QOS_V3_W = _RPC_SECURITY_QOS_V3_W;
pub type PRPC_SECURITY_QOS_V3_W = *mut _RPC_SECURITY_QOS_V3_W;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _RPC_SECURITY_QOS_V3_A {
    pub Version: ::std::os::raw::c_ulong,
    pub Capabilities: ::std::os::raw::c_ulong,
    pub IdentityTracking: ::std::os::raw::c_ulong,
    pub ImpersonationType: ::std::os::raw::c_ulong,
    pub AdditionalSecurityInfoType: ::std::os::raw::c_ulong,
    pub u: _RPC_SECURITY_QOS_V3_A__bindgen_ty_1,
    pub Sid: *mut ::std::os::raw::c_void,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _RPC_SECURITY_QOS_V3_A__bindgen_ty_1 {
    pub HttpCredentials: *mut RPC_HTTP_TRANSPORT_CREDENTIALS_A,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__RPC_SECURITY_QOS_V3_A__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_SECURITY_QOS_V3_A__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_RPC_SECURITY_QOS_V3_A__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_SECURITY_QOS_V3_A__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_RPC_SECURITY_QOS_V3_A__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V3_A__bindgen_ty_1>())).HttpCredentials
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V3_A__bindgen_ty_1),
            "::",
            stringify!(HttpCredentials)
        )
    );
}
#[test]
fn bindgen_test_layout__RPC_SECURITY_QOS_V3_A() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_SECURITY_QOS_V3_A>(),
        40usize,
        concat!("Size of: ", stringify!(_RPC_SECURITY_QOS_V3_A))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_SECURITY_QOS_V3_A>(),
        8usize,
        concat!("Alignment of ", stringify!(_RPC_SECURITY_QOS_V3_A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V3_A>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V3_A),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V3_A>())).Capabilities as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V3_A),
            "::",
            stringify!(Capabilities)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V3_A>())).IdentityTracking as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V3_A),
            "::",
            stringify!(IdentityTracking)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V3_A>())).ImpersonationType as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V3_A),
            "::",
            stringify!(ImpersonationType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V3_A>())).AdditionalSecurityInfoType
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V3_A),
            "::",
            stringify!(AdditionalSecurityInfoType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V3_A>())).u as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V3_A),
            "::",
            stringify!(u)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V3_A>())).Sid as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V3_A),
            "::",
            stringify!(Sid)
        )
    );
}
pub type RPC_SECURITY_QOS_V3_A = _RPC_SECURITY_QOS_V3_A;
pub type PRPC_SECURITY_QOS_V3_A = *mut _RPC_SECURITY_QOS_V3_A;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _RPC_SECURITY_QOS_V4_W {
    pub Version: ::std::os::raw::c_ulong,
    pub Capabilities: ::std::os::raw::c_ulong,
    pub IdentityTracking: ::std::os::raw::c_ulong,
    pub ImpersonationType: ::std::os::raw::c_ulong,
    pub AdditionalSecurityInfoType: ::std::os::raw::c_ulong,
    pub u: _RPC_SECURITY_QOS_V4_W__bindgen_ty_1,
    pub Sid: *mut ::std::os::raw::c_void,
    pub EffectiveOnly: ::std::os::raw::c_uint,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _RPC_SECURITY_QOS_V4_W__bindgen_ty_1 {
    pub HttpCredentials: *mut RPC_HTTP_TRANSPORT_CREDENTIALS_W,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__RPC_SECURITY_QOS_V4_W__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_SECURITY_QOS_V4_W__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_RPC_SECURITY_QOS_V4_W__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_SECURITY_QOS_V4_W__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_RPC_SECURITY_QOS_V4_W__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V4_W__bindgen_ty_1>())).HttpCredentials
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V4_W__bindgen_ty_1),
            "::",
            stringify!(HttpCredentials)
        )
    );
}
#[test]
fn bindgen_test_layout__RPC_SECURITY_QOS_V4_W() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_SECURITY_QOS_V4_W>(),
        48usize,
        concat!("Size of: ", stringify!(_RPC_SECURITY_QOS_V4_W))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_SECURITY_QOS_V4_W>(),
        8usize,
        concat!("Alignment of ", stringify!(_RPC_SECURITY_QOS_V4_W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V4_W>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V4_W),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V4_W>())).Capabilities as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V4_W),
            "::",
            stringify!(Capabilities)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V4_W>())).IdentityTracking as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V4_W),
            "::",
            stringify!(IdentityTracking)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V4_W>())).ImpersonationType as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V4_W),
            "::",
            stringify!(ImpersonationType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V4_W>())).AdditionalSecurityInfoType
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V4_W),
            "::",
            stringify!(AdditionalSecurityInfoType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V4_W>())).u as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V4_W),
            "::",
            stringify!(u)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V4_W>())).Sid as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V4_W),
            "::",
            stringify!(Sid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V4_W>())).EffectiveOnly as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V4_W),
            "::",
            stringify!(EffectiveOnly)
        )
    );
}
pub type RPC_SECURITY_QOS_V4_W = _RPC_SECURITY_QOS_V4_W;
pub type PRPC_SECURITY_QOS_V4_W = *mut _RPC_SECURITY_QOS_V4_W;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _RPC_SECURITY_QOS_V4_A {
    pub Version: ::std::os::raw::c_ulong,
    pub Capabilities: ::std::os::raw::c_ulong,
    pub IdentityTracking: ::std::os::raw::c_ulong,
    pub ImpersonationType: ::std::os::raw::c_ulong,
    pub AdditionalSecurityInfoType: ::std::os::raw::c_ulong,
    pub u: _RPC_SECURITY_QOS_V4_A__bindgen_ty_1,
    pub Sid: *mut ::std::os::raw::c_void,
    pub EffectiveOnly: ::std::os::raw::c_uint,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _RPC_SECURITY_QOS_V4_A__bindgen_ty_1 {
    pub HttpCredentials: *mut RPC_HTTP_TRANSPORT_CREDENTIALS_A,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__RPC_SECURITY_QOS_V4_A__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_SECURITY_QOS_V4_A__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_RPC_SECURITY_QOS_V4_A__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_SECURITY_QOS_V4_A__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_RPC_SECURITY_QOS_V4_A__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V4_A__bindgen_ty_1>())).HttpCredentials
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V4_A__bindgen_ty_1),
            "::",
            stringify!(HttpCredentials)
        )
    );
}
#[test]
fn bindgen_test_layout__RPC_SECURITY_QOS_V4_A() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_SECURITY_QOS_V4_A>(),
        48usize,
        concat!("Size of: ", stringify!(_RPC_SECURITY_QOS_V4_A))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_SECURITY_QOS_V4_A>(),
        8usize,
        concat!("Alignment of ", stringify!(_RPC_SECURITY_QOS_V4_A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V4_A>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V4_A),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V4_A>())).Capabilities as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V4_A),
            "::",
            stringify!(Capabilities)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V4_A>())).IdentityTracking as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V4_A),
            "::",
            stringify!(IdentityTracking)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V4_A>())).ImpersonationType as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V4_A),
            "::",
            stringify!(ImpersonationType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V4_A>())).AdditionalSecurityInfoType
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V4_A),
            "::",
            stringify!(AdditionalSecurityInfoType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V4_A>())).u as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V4_A),
            "::",
            stringify!(u)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V4_A>())).Sid as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V4_A),
            "::",
            stringify!(Sid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V4_A>())).EffectiveOnly as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V4_A),
            "::",
            stringify!(EffectiveOnly)
        )
    );
}
pub type RPC_SECURITY_QOS_V4_A = _RPC_SECURITY_QOS_V4_A;
pub type PRPC_SECURITY_QOS_V4_A = *mut _RPC_SECURITY_QOS_V4_A;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _RPC_SECURITY_QOS_V5_W {
    pub Version: ::std::os::raw::c_ulong,
    pub Capabilities: ::std::os::raw::c_ulong,
    pub IdentityTracking: ::std::os::raw::c_ulong,
    pub ImpersonationType: ::std::os::raw::c_ulong,
    pub AdditionalSecurityInfoType: ::std::os::raw::c_ulong,
    pub u: _RPC_SECURITY_QOS_V5_W__bindgen_ty_1,
    pub Sid: *mut ::std::os::raw::c_void,
    pub EffectiveOnly: ::std::os::raw::c_uint,
    pub ServerSecurityDescriptor: *mut ::std::os::raw::c_void,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _RPC_SECURITY_QOS_V5_W__bindgen_ty_1 {
    pub HttpCredentials: *mut RPC_HTTP_TRANSPORT_CREDENTIALS_W,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__RPC_SECURITY_QOS_V5_W__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_SECURITY_QOS_V5_W__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_RPC_SECURITY_QOS_V5_W__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_SECURITY_QOS_V5_W__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_RPC_SECURITY_QOS_V5_W__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V5_W__bindgen_ty_1>())).HttpCredentials
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V5_W__bindgen_ty_1),
            "::",
            stringify!(HttpCredentials)
        )
    );
}
#[test]
fn bindgen_test_layout__RPC_SECURITY_QOS_V5_W() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_SECURITY_QOS_V5_W>(),
        56usize,
        concat!("Size of: ", stringify!(_RPC_SECURITY_QOS_V5_W))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_SECURITY_QOS_V5_W>(),
        8usize,
        concat!("Alignment of ", stringify!(_RPC_SECURITY_QOS_V5_W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V5_W>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V5_W),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V5_W>())).Capabilities as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V5_W),
            "::",
            stringify!(Capabilities)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V5_W>())).IdentityTracking as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V5_W),
            "::",
            stringify!(IdentityTracking)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V5_W>())).ImpersonationType as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V5_W),
            "::",
            stringify!(ImpersonationType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V5_W>())).AdditionalSecurityInfoType
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V5_W),
            "::",
            stringify!(AdditionalSecurityInfoType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V5_W>())).u as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V5_W),
            "::",
            stringify!(u)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V5_W>())).Sid as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V5_W),
            "::",
            stringify!(Sid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V5_W>())).EffectiveOnly as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V5_W),
            "::",
            stringify!(EffectiveOnly)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V5_W>())).ServerSecurityDescriptor as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V5_W),
            "::",
            stringify!(ServerSecurityDescriptor)
        )
    );
}
pub type RPC_SECURITY_QOS_V5_W = _RPC_SECURITY_QOS_V5_W;
pub type PRPC_SECURITY_QOS_V5_W = *mut _RPC_SECURITY_QOS_V5_W;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _RPC_SECURITY_QOS_V5_A {
    pub Version: ::std::os::raw::c_ulong,
    pub Capabilities: ::std::os::raw::c_ulong,
    pub IdentityTracking: ::std::os::raw::c_ulong,
    pub ImpersonationType: ::std::os::raw::c_ulong,
    pub AdditionalSecurityInfoType: ::std::os::raw::c_ulong,
    pub u: _RPC_SECURITY_QOS_V5_A__bindgen_ty_1,
    pub Sid: *mut ::std::os::raw::c_void,
    pub EffectiveOnly: ::std::os::raw::c_uint,
    pub ServerSecurityDescriptor: *mut ::std::os::raw::c_void,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _RPC_SECURITY_QOS_V5_A__bindgen_ty_1 {
    pub HttpCredentials: *mut RPC_HTTP_TRANSPORT_CREDENTIALS_A,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__RPC_SECURITY_QOS_V5_A__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_SECURITY_QOS_V5_A__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_RPC_SECURITY_QOS_V5_A__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_SECURITY_QOS_V5_A__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_RPC_SECURITY_QOS_V5_A__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V5_A__bindgen_ty_1>())).HttpCredentials
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V5_A__bindgen_ty_1),
            "::",
            stringify!(HttpCredentials)
        )
    );
}
#[test]
fn bindgen_test_layout__RPC_SECURITY_QOS_V5_A() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_SECURITY_QOS_V5_A>(),
        56usize,
        concat!("Size of: ", stringify!(_RPC_SECURITY_QOS_V5_A))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_SECURITY_QOS_V5_A>(),
        8usize,
        concat!("Alignment of ", stringify!(_RPC_SECURITY_QOS_V5_A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V5_A>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V5_A),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V5_A>())).Capabilities as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V5_A),
            "::",
            stringify!(Capabilities)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V5_A>())).IdentityTracking as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V5_A),
            "::",
            stringify!(IdentityTracking)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V5_A>())).ImpersonationType as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V5_A),
            "::",
            stringify!(ImpersonationType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V5_A>())).AdditionalSecurityInfoType
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V5_A),
            "::",
            stringify!(AdditionalSecurityInfoType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V5_A>())).u as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V5_A),
            "::",
            stringify!(u)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V5_A>())).Sid as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V5_A),
            "::",
            stringify!(Sid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V5_A>())).EffectiveOnly as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V5_A),
            "::",
            stringify!(EffectiveOnly)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SECURITY_QOS_V5_A>())).ServerSecurityDescriptor as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SECURITY_QOS_V5_A),
            "::",
            stringify!(ServerSecurityDescriptor)
        )
    );
}
pub type RPC_SECURITY_QOS_V5_A = _RPC_SECURITY_QOS_V5_A;
pub type PRPC_SECURITY_QOS_V5_A = *mut _RPC_SECURITY_QOS_V5_A;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _RPC_BINDING_HANDLE_TEMPLATE_V1_W {
    pub Version: ::std::os::raw::c_ulong,
    pub Flags: ::std::os::raw::c_ulong,
    pub ProtocolSequence: ::std::os::raw::c_ulong,
    pub NetworkAddress: *mut ::std::os::raw::c_ushort,
    pub StringEndpoint: *mut ::std::os::raw::c_ushort,
    pub u1: _RPC_BINDING_HANDLE_TEMPLATE_V1_W__bindgen_ty_1,
    pub ObjectUuid: UUID,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _RPC_BINDING_HANDLE_TEMPLATE_V1_W__bindgen_ty_1 {
    pub Reserved: *mut ::std::os::raw::c_ushort,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__RPC_BINDING_HANDLE_TEMPLATE_V1_W__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_BINDING_HANDLE_TEMPLATE_V1_W__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_RPC_BINDING_HANDLE_TEMPLATE_V1_W__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_BINDING_HANDLE_TEMPLATE_V1_W__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_RPC_BINDING_HANDLE_TEMPLATE_V1_W__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_BINDING_HANDLE_TEMPLATE_V1_W__bindgen_ty_1>())).Reserved
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_HANDLE_TEMPLATE_V1_W__bindgen_ty_1),
            "::",
            stringify!(Reserved)
        )
    );
}
#[test]
fn bindgen_test_layout__RPC_BINDING_HANDLE_TEMPLATE_V1_W() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_BINDING_HANDLE_TEMPLATE_V1_W>(),
        56usize,
        concat!("Size of: ", stringify!(_RPC_BINDING_HANDLE_TEMPLATE_V1_W))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_BINDING_HANDLE_TEMPLATE_V1_W>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_RPC_BINDING_HANDLE_TEMPLATE_V1_W)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_BINDING_HANDLE_TEMPLATE_V1_W>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_HANDLE_TEMPLATE_V1_W),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_BINDING_HANDLE_TEMPLATE_V1_W>())).Flags as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_HANDLE_TEMPLATE_V1_W),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_BINDING_HANDLE_TEMPLATE_V1_W>())).ProtocolSequence
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_HANDLE_TEMPLATE_V1_W),
            "::",
            stringify!(ProtocolSequence)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_BINDING_HANDLE_TEMPLATE_V1_W>())).NetworkAddress as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_HANDLE_TEMPLATE_V1_W),
            "::",
            stringify!(NetworkAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_BINDING_HANDLE_TEMPLATE_V1_W>())).StringEndpoint as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_HANDLE_TEMPLATE_V1_W),
            "::",
            stringify!(StringEndpoint)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_BINDING_HANDLE_TEMPLATE_V1_W>())).u1 as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_HANDLE_TEMPLATE_V1_W),
            "::",
            stringify!(u1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_BINDING_HANDLE_TEMPLATE_V1_W>())).ObjectUuid as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_HANDLE_TEMPLATE_V1_W),
            "::",
            stringify!(ObjectUuid)
        )
    );
}
pub type RPC_BINDING_HANDLE_TEMPLATE_V1_W = _RPC_BINDING_HANDLE_TEMPLATE_V1_W;
pub type PRPC_BINDING_HANDLE_TEMPLATE_V1_W = *mut _RPC_BINDING_HANDLE_TEMPLATE_V1_W;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _RPC_BINDING_HANDLE_TEMPLATE_V1_A {
    pub Version: ::std::os::raw::c_ulong,
    pub Flags: ::std::os::raw::c_ulong,
    pub ProtocolSequence: ::std::os::raw::c_ulong,
    pub NetworkAddress: *mut ::std::os::raw::c_uchar,
    pub StringEndpoint: *mut ::std::os::raw::c_uchar,
    pub u1: _RPC_BINDING_HANDLE_TEMPLATE_V1_A__bindgen_ty_1,
    pub ObjectUuid: UUID,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _RPC_BINDING_HANDLE_TEMPLATE_V1_A__bindgen_ty_1 {
    pub Reserved: *mut ::std::os::raw::c_uchar,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__RPC_BINDING_HANDLE_TEMPLATE_V1_A__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_BINDING_HANDLE_TEMPLATE_V1_A__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_RPC_BINDING_HANDLE_TEMPLATE_V1_A__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_BINDING_HANDLE_TEMPLATE_V1_A__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_RPC_BINDING_HANDLE_TEMPLATE_V1_A__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_BINDING_HANDLE_TEMPLATE_V1_A__bindgen_ty_1>())).Reserved
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_HANDLE_TEMPLATE_V1_A__bindgen_ty_1),
            "::",
            stringify!(Reserved)
        )
    );
}
#[test]
fn bindgen_test_layout__RPC_BINDING_HANDLE_TEMPLATE_V1_A() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_BINDING_HANDLE_TEMPLATE_V1_A>(),
        56usize,
        concat!("Size of: ", stringify!(_RPC_BINDING_HANDLE_TEMPLATE_V1_A))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_BINDING_HANDLE_TEMPLATE_V1_A>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_RPC_BINDING_HANDLE_TEMPLATE_V1_A)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_BINDING_HANDLE_TEMPLATE_V1_A>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_HANDLE_TEMPLATE_V1_A),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_BINDING_HANDLE_TEMPLATE_V1_A>())).Flags as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_HANDLE_TEMPLATE_V1_A),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_BINDING_HANDLE_TEMPLATE_V1_A>())).ProtocolSequence
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_HANDLE_TEMPLATE_V1_A),
            "::",
            stringify!(ProtocolSequence)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_BINDING_HANDLE_TEMPLATE_V1_A>())).NetworkAddress as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_HANDLE_TEMPLATE_V1_A),
            "::",
            stringify!(NetworkAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_BINDING_HANDLE_TEMPLATE_V1_A>())).StringEndpoint as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_HANDLE_TEMPLATE_V1_A),
            "::",
            stringify!(StringEndpoint)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_BINDING_HANDLE_TEMPLATE_V1_A>())).u1 as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_HANDLE_TEMPLATE_V1_A),
            "::",
            stringify!(u1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_BINDING_HANDLE_TEMPLATE_V1_A>())).ObjectUuid as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_HANDLE_TEMPLATE_V1_A),
            "::",
            stringify!(ObjectUuid)
        )
    );
}
pub type RPC_BINDING_HANDLE_TEMPLATE_V1_A = _RPC_BINDING_HANDLE_TEMPLATE_V1_A;
pub type PRPC_BINDING_HANDLE_TEMPLATE_V1_A = *mut _RPC_BINDING_HANDLE_TEMPLATE_V1_A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RPC_BINDING_HANDLE_SECURITY_V1_W {
    pub Version: ::std::os::raw::c_ulong,
    pub ServerPrincName: *mut ::std::os::raw::c_ushort,
    pub AuthnLevel: ::std::os::raw::c_ulong,
    pub AuthnSvc: ::std::os::raw::c_ulong,
    pub AuthIdentity: *mut SEC_WINNT_AUTH_IDENTITY_W,
    pub SecurityQos: *mut RPC_SECURITY_QOS,
}
#[test]
fn bindgen_test_layout__RPC_BINDING_HANDLE_SECURITY_V1_W() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_BINDING_HANDLE_SECURITY_V1_W>(),
        40usize,
        concat!("Size of: ", stringify!(_RPC_BINDING_HANDLE_SECURITY_V1_W))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_BINDING_HANDLE_SECURITY_V1_W>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_RPC_BINDING_HANDLE_SECURITY_V1_W)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_BINDING_HANDLE_SECURITY_V1_W>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_HANDLE_SECURITY_V1_W),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_BINDING_HANDLE_SECURITY_V1_W>())).ServerPrincName
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_HANDLE_SECURITY_V1_W),
            "::",
            stringify!(ServerPrincName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_BINDING_HANDLE_SECURITY_V1_W>())).AuthnLevel as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_HANDLE_SECURITY_V1_W),
            "::",
            stringify!(AuthnLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_BINDING_HANDLE_SECURITY_V1_W>())).AuthnSvc as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_HANDLE_SECURITY_V1_W),
            "::",
            stringify!(AuthnSvc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_BINDING_HANDLE_SECURITY_V1_W>())).AuthIdentity as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_HANDLE_SECURITY_V1_W),
            "::",
            stringify!(AuthIdentity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_BINDING_HANDLE_SECURITY_V1_W>())).SecurityQos as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_HANDLE_SECURITY_V1_W),
            "::",
            stringify!(SecurityQos)
        )
    );
}
pub type RPC_BINDING_HANDLE_SECURITY_V1_W = _RPC_BINDING_HANDLE_SECURITY_V1_W;
pub type PRPC_BINDING_HANDLE_SECURITY_V1_W = *mut _RPC_BINDING_HANDLE_SECURITY_V1_W;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RPC_BINDING_HANDLE_SECURITY_V1_A {
    pub Version: ::std::os::raw::c_ulong,
    pub ServerPrincName: *mut ::std::os::raw::c_uchar,
    pub AuthnLevel: ::std::os::raw::c_ulong,
    pub AuthnSvc: ::std::os::raw::c_ulong,
    pub AuthIdentity: *mut SEC_WINNT_AUTH_IDENTITY_A,
    pub SecurityQos: *mut RPC_SECURITY_QOS,
}
#[test]
fn bindgen_test_layout__RPC_BINDING_HANDLE_SECURITY_V1_A() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_BINDING_HANDLE_SECURITY_V1_A>(),
        40usize,
        concat!("Size of: ", stringify!(_RPC_BINDING_HANDLE_SECURITY_V1_A))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_BINDING_HANDLE_SECURITY_V1_A>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_RPC_BINDING_HANDLE_SECURITY_V1_A)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_BINDING_HANDLE_SECURITY_V1_A>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_HANDLE_SECURITY_V1_A),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_BINDING_HANDLE_SECURITY_V1_A>())).ServerPrincName
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_HANDLE_SECURITY_V1_A),
            "::",
            stringify!(ServerPrincName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_BINDING_HANDLE_SECURITY_V1_A>())).AuthnLevel as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_HANDLE_SECURITY_V1_A),
            "::",
            stringify!(AuthnLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_BINDING_HANDLE_SECURITY_V1_A>())).AuthnSvc as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_HANDLE_SECURITY_V1_A),
            "::",
            stringify!(AuthnSvc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_BINDING_HANDLE_SECURITY_V1_A>())).AuthIdentity as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_HANDLE_SECURITY_V1_A),
            "::",
            stringify!(AuthIdentity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_BINDING_HANDLE_SECURITY_V1_A>())).SecurityQos as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_HANDLE_SECURITY_V1_A),
            "::",
            stringify!(SecurityQos)
        )
    );
}
pub type RPC_BINDING_HANDLE_SECURITY_V1_A = _RPC_BINDING_HANDLE_SECURITY_V1_A;
pub type PRPC_BINDING_HANDLE_SECURITY_V1_A = *mut _RPC_BINDING_HANDLE_SECURITY_V1_A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RPC_BINDING_HANDLE_OPTIONS_V1 {
    pub Version: ::std::os::raw::c_ulong,
    pub Flags: ::std::os::raw::c_ulong,
    pub ComTimeout: ::std::os::raw::c_ulong,
    pub CallTimeout: ::std::os::raw::c_ulong,
}
#[test]
fn bindgen_test_layout__RPC_BINDING_HANDLE_OPTIONS_V1() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_BINDING_HANDLE_OPTIONS_V1>(),
        16usize,
        concat!("Size of: ", stringify!(_RPC_BINDING_HANDLE_OPTIONS_V1))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_BINDING_HANDLE_OPTIONS_V1>(),
        4usize,
        concat!("Alignment of ", stringify!(_RPC_BINDING_HANDLE_OPTIONS_V1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_BINDING_HANDLE_OPTIONS_V1>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_HANDLE_OPTIONS_V1),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_BINDING_HANDLE_OPTIONS_V1>())).Flags as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_HANDLE_OPTIONS_V1),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_BINDING_HANDLE_OPTIONS_V1>())).ComTimeout as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_HANDLE_OPTIONS_V1),
            "::",
            stringify!(ComTimeout)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_BINDING_HANDLE_OPTIONS_V1>())).CallTimeout as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_BINDING_HANDLE_OPTIONS_V1),
            "::",
            stringify!(CallTimeout)
        )
    );
}
pub type RPC_BINDING_HANDLE_OPTIONS_V1 = _RPC_BINDING_HANDLE_OPTIONS_V1;
pub type PRPC_BINDING_HANDLE_OPTIONS_V1 = *mut _RPC_BINDING_HANDLE_OPTIONS_V1;
extern "C" {
    pub fn RpcBindingCreateA(
        Template: *mut RPC_BINDING_HANDLE_TEMPLATE_V1_A,
        Security: *mut RPC_BINDING_HANDLE_SECURITY_V1_A,
        Options: *mut RPC_BINDING_HANDLE_OPTIONS_V1,
        Binding: *mut RPC_BINDING_HANDLE,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcBindingCreateW(
        Template: *mut RPC_BINDING_HANDLE_TEMPLATE_V1_W,
        Security: *mut RPC_BINDING_HANDLE_SECURITY_V1_W,
        Options: *mut RPC_BINDING_HANDLE_OPTIONS_V1,
        Binding: *mut RPC_BINDING_HANDLE,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcBindingGetTrainingContextHandle(
        Binding: RPC_BINDING_HANDLE,
        ContextHandle: *mut *mut ::std::os::raw::c_void,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerInqBindingHandle(Binding: *mut RPC_BINDING_HANDLE) -> RPC_STATUS;
}
pub const _RPC_HTTP_REDIRECTOR_STAGE_RPCHTTP_RS_REDIRECT: _RPC_HTTP_REDIRECTOR_STAGE = 1;
pub const _RPC_HTTP_REDIRECTOR_STAGE_RPCHTTP_RS_ACCESS_1: _RPC_HTTP_REDIRECTOR_STAGE = 2;
pub const _RPC_HTTP_REDIRECTOR_STAGE_RPCHTTP_RS_SESSION: _RPC_HTTP_REDIRECTOR_STAGE = 3;
pub const _RPC_HTTP_REDIRECTOR_STAGE_RPCHTTP_RS_ACCESS_2: _RPC_HTTP_REDIRECTOR_STAGE = 4;
pub const _RPC_HTTP_REDIRECTOR_STAGE_RPCHTTP_RS_INTERFACE: _RPC_HTTP_REDIRECTOR_STAGE = 5;
pub type _RPC_HTTP_REDIRECTOR_STAGE = ::std::os::raw::c_int;
pub use self::_RPC_HTTP_REDIRECTOR_STAGE as RPC_HTTP_REDIRECTOR_STAGE;
pub type RPC_NEW_HTTP_PROXY_CHANNEL = ::std::option::Option<
    unsafe extern "C" fn(
        RedirectorStage: RPC_HTTP_REDIRECTOR_STAGE,
        ServerName: RPC_WSTR,
        ServerPort: RPC_WSTR,
        RemoteUser: RPC_WSTR,
        AuthType: RPC_WSTR,
        ResourceUuid: *mut ::std::os::raw::c_void,
        SessionId: *mut ::std::os::raw::c_void,
        Interface: *mut ::std::os::raw::c_void,
        Reserved: *mut ::std::os::raw::c_void,
        Flags: ::std::os::raw::c_ulong,
        NewServerName: *mut RPC_WSTR,
        NewServerPort: *mut RPC_WSTR,
    ) -> RPC_STATUS,
>;
pub type RPC_HTTP_PROXY_FREE_STRING = ::std::option::Option<unsafe extern "C" fn(String: RPC_WSTR)>;
extern "C" {
    pub fn RpcImpersonateClient(BindingHandle: RPC_BINDING_HANDLE) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcImpersonateClient2(BindingHandle: RPC_BINDING_HANDLE) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcRevertToSelfEx(BindingHandle: RPC_BINDING_HANDLE) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcRevertToSelf() -> RPC_STATUS;
}
extern "C" {
    pub fn RpcImpersonateClientContainer(BindingHandle: RPC_BINDING_HANDLE) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcRevertContainerImpersonation() -> RPC_STATUS;
}
extern "C" {
    pub fn RpcBindingInqAuthClientA(
        ClientBinding: RPC_BINDING_HANDLE,
        Privs: *mut RPC_AUTHZ_HANDLE,
        ServerPrincName: *mut RPC_CSTR,
        AuthnLevel: *mut ::std::os::raw::c_ulong,
        AuthnSvc: *mut ::std::os::raw::c_ulong,
        AuthzSvc: *mut ::std::os::raw::c_ulong,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcBindingInqAuthClientW(
        ClientBinding: RPC_BINDING_HANDLE,
        Privs: *mut RPC_AUTHZ_HANDLE,
        ServerPrincName: *mut RPC_WSTR,
        AuthnLevel: *mut ::std::os::raw::c_ulong,
        AuthnSvc: *mut ::std::os::raw::c_ulong,
        AuthzSvc: *mut ::std::os::raw::c_ulong,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcBindingInqAuthClientExA(
        ClientBinding: RPC_BINDING_HANDLE,
        Privs: *mut RPC_AUTHZ_HANDLE,
        ServerPrincName: *mut RPC_CSTR,
        AuthnLevel: *mut ::std::os::raw::c_ulong,
        AuthnSvc: *mut ::std::os::raw::c_ulong,
        AuthzSvc: *mut ::std::os::raw::c_ulong,
        Flags: ::std::os::raw::c_ulong,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcBindingInqAuthClientExW(
        ClientBinding: RPC_BINDING_HANDLE,
        Privs: *mut RPC_AUTHZ_HANDLE,
        ServerPrincName: *mut RPC_WSTR,
        AuthnLevel: *mut ::std::os::raw::c_ulong,
        AuthnSvc: *mut ::std::os::raw::c_ulong,
        AuthzSvc: *mut ::std::os::raw::c_ulong,
        Flags: ::std::os::raw::c_ulong,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcBindingInqAuthInfoA(
        Binding: RPC_BINDING_HANDLE,
        ServerPrincName: *mut RPC_CSTR,
        AuthnLevel: *mut ::std::os::raw::c_ulong,
        AuthnSvc: *mut ::std::os::raw::c_ulong,
        AuthIdentity: *mut RPC_AUTH_IDENTITY_HANDLE,
        AuthzSvc: *mut ::std::os::raw::c_ulong,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcBindingInqAuthInfoW(
        Binding: RPC_BINDING_HANDLE,
        ServerPrincName: *mut RPC_WSTR,
        AuthnLevel: *mut ::std::os::raw::c_ulong,
        AuthnSvc: *mut ::std::os::raw::c_ulong,
        AuthIdentity: *mut RPC_AUTH_IDENTITY_HANDLE,
        AuthzSvc: *mut ::std::os::raw::c_ulong,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcBindingSetAuthInfoA(
        Binding: RPC_BINDING_HANDLE,
        ServerPrincName: RPC_CSTR,
        AuthnLevel: ::std::os::raw::c_ulong,
        AuthnSvc: ::std::os::raw::c_ulong,
        AuthIdentity: RPC_AUTH_IDENTITY_HANDLE,
        AuthzSvc: ::std::os::raw::c_ulong,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcBindingSetAuthInfoExA(
        Binding: RPC_BINDING_HANDLE,
        ServerPrincName: RPC_CSTR,
        AuthnLevel: ::std::os::raw::c_ulong,
        AuthnSvc: ::std::os::raw::c_ulong,
        AuthIdentity: RPC_AUTH_IDENTITY_HANDLE,
        AuthzSvc: ::std::os::raw::c_ulong,
        SecurityQos: *mut RPC_SECURITY_QOS,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcBindingSetAuthInfoW(
        Binding: RPC_BINDING_HANDLE,
        ServerPrincName: RPC_WSTR,
        AuthnLevel: ::std::os::raw::c_ulong,
        AuthnSvc: ::std::os::raw::c_ulong,
        AuthIdentity: RPC_AUTH_IDENTITY_HANDLE,
        AuthzSvc: ::std::os::raw::c_ulong,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcBindingSetAuthInfoExW(
        Binding: RPC_BINDING_HANDLE,
        ServerPrincName: RPC_WSTR,
        AuthnLevel: ::std::os::raw::c_ulong,
        AuthnSvc: ::std::os::raw::c_ulong,
        AuthIdentity: RPC_AUTH_IDENTITY_HANDLE,
        AuthzSvc: ::std::os::raw::c_ulong,
        SecurityQOS: *mut RPC_SECURITY_QOS,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcBindingInqAuthInfoExA(
        Binding: RPC_BINDING_HANDLE,
        ServerPrincName: *mut RPC_CSTR,
        AuthnLevel: *mut ::std::os::raw::c_ulong,
        AuthnSvc: *mut ::std::os::raw::c_ulong,
        AuthIdentity: *mut RPC_AUTH_IDENTITY_HANDLE,
        AuthzSvc: *mut ::std::os::raw::c_ulong,
        RpcQosVersion: ::std::os::raw::c_ulong,
        SecurityQOS: *mut RPC_SECURITY_QOS,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcBindingInqAuthInfoExW(
        Binding: RPC_BINDING_HANDLE,
        ServerPrincName: *mut RPC_WSTR,
        AuthnLevel: *mut ::std::os::raw::c_ulong,
        AuthnSvc: *mut ::std::os::raw::c_ulong,
        AuthIdentity: *mut RPC_AUTH_IDENTITY_HANDLE,
        AuthzSvc: *mut ::std::os::raw::c_ulong,
        RpcQosVersion: ::std::os::raw::c_ulong,
        SecurityQOS: *mut RPC_SECURITY_QOS,
    ) -> RPC_STATUS;
}
pub type RPC_AUTH_KEY_RETRIEVAL_FN = ::std::option::Option<
    unsafe extern "C" fn(
        Arg: *mut ::std::os::raw::c_void,
        ServerPrincName: RPC_WSTR,
        KeyVer: ::std::os::raw::c_ulong,
        Key: *mut *mut ::std::os::raw::c_void,
        Status: *mut RPC_STATUS,
    ),
>;
extern "C" {
    pub fn RpcServerCompleteSecurityCallback(
        BindingHandle: RPC_BINDING_HANDLE,
        Status: RPC_STATUS,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerRegisterAuthInfoA(
        ServerPrincName: RPC_CSTR,
        AuthnSvc: ::std::os::raw::c_ulong,
        GetKeyFn: RPC_AUTH_KEY_RETRIEVAL_FN,
        Arg: *mut ::std::os::raw::c_void,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerRegisterAuthInfoW(
        ServerPrincName: RPC_WSTR,
        AuthnSvc: ::std::os::raw::c_ulong,
        GetKeyFn: RPC_AUTH_KEY_RETRIEVAL_FN,
        Arg: *mut ::std::os::raw::c_void,
    ) -> RPC_STATUS;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct RPC_CLIENT_INFORMATION1 {
    pub UserName: *mut ::std::os::raw::c_uchar,
    pub ComputerName: *mut ::std::os::raw::c_uchar,
    pub Privilege: ::std::os::raw::c_ushort,
    pub AuthFlags: ::std::os::raw::c_ulong,
}
#[test]
fn bindgen_test_layout_RPC_CLIENT_INFORMATION1() {
    assert_eq!(
        ::std::mem::size_of::<RPC_CLIENT_INFORMATION1>(),
        24usize,
        concat!("Size of: ", stringify!(RPC_CLIENT_INFORMATION1))
    );
    assert_eq!(
        ::std::mem::align_of::<RPC_CLIENT_INFORMATION1>(),
        8usize,
        concat!("Alignment of ", stringify!(RPC_CLIENT_INFORMATION1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RPC_CLIENT_INFORMATION1>())).UserName as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_CLIENT_INFORMATION1),
            "::",
            stringify!(UserName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RPC_CLIENT_INFORMATION1>())).ComputerName as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_CLIENT_INFORMATION1),
            "::",
            stringify!(ComputerName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RPC_CLIENT_INFORMATION1>())).Privilege as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_CLIENT_INFORMATION1),
            "::",
            stringify!(Privilege)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RPC_CLIENT_INFORMATION1>())).AuthFlags as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_CLIENT_INFORMATION1),
            "::",
            stringify!(AuthFlags)
        )
    );
}
pub type PRPC_CLIENT_INFORMATION1 = *mut RPC_CLIENT_INFORMATION1;
extern "C" {
    pub fn RpcBindingServerFromClient(
        ClientBinding: RPC_BINDING_HANDLE,
        ServerBinding: *mut RPC_BINDING_HANDLE,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcRaiseException(exception: RPC_STATUS);
}
extern "C" {
    pub fn RpcTestCancel() -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerTestCancel(BindingHandle: RPC_BINDING_HANDLE) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcCancelThread(Thread: *mut ::std::os::raw::c_void) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcCancelThreadEx(
        Thread: *mut ::std::os::raw::c_void,
        Timeout: ::std::os::raw::c_long,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn UuidCreate(Uuid: *mut UUID) -> RPC_STATUS;
}
extern "C" {
    pub fn UuidCreateSequential(Uuid: *mut UUID) -> RPC_STATUS;
}
extern "C" {
    pub fn UuidToStringA(Uuid: *const UUID, StringUuid: *mut RPC_CSTR) -> RPC_STATUS;
}
extern "C" {
    pub fn UuidFromStringA(StringUuid: RPC_CSTR, Uuid: *mut UUID) -> RPC_STATUS;
}
extern "C" {
    pub fn UuidToStringW(Uuid: *const UUID, StringUuid: *mut RPC_WSTR) -> RPC_STATUS;
}
extern "C" {
    pub fn UuidFromStringW(StringUuid: RPC_WSTR, Uuid: *mut UUID) -> RPC_STATUS;
}
extern "C" {
    pub fn UuidCompare(
        Uuid1: *mut UUID,
        Uuid2: *mut UUID,
        Status: *mut RPC_STATUS,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn UuidCreateNil(NilUuid: *mut UUID) -> RPC_STATUS;
}
extern "C" {
    pub fn UuidEqual(
        Uuid1: *mut UUID,
        Uuid2: *mut UUID,
        Status: *mut RPC_STATUS,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn UuidHash(Uuid: *mut UUID, Status: *mut RPC_STATUS) -> ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn UuidIsNil(Uuid: *mut UUID, Status: *mut RPC_STATUS) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn RpcEpRegisterNoReplaceA(
        IfSpec: RPC_IF_HANDLE,
        BindingVector: *mut RPC_BINDING_VECTOR,
        UuidVector: *mut UUID_VECTOR,
        Annotation: RPC_CSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcEpRegisterNoReplaceW(
        IfSpec: RPC_IF_HANDLE,
        BindingVector: *mut RPC_BINDING_VECTOR,
        UuidVector: *mut UUID_VECTOR,
        Annotation: RPC_WSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcEpRegisterA(
        IfSpec: RPC_IF_HANDLE,
        BindingVector: *mut RPC_BINDING_VECTOR,
        UuidVector: *mut UUID_VECTOR,
        Annotation: RPC_CSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcEpRegisterW(
        IfSpec: RPC_IF_HANDLE,
        BindingVector: *mut RPC_BINDING_VECTOR,
        UuidVector: *mut UUID_VECTOR,
        Annotation: RPC_WSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcEpUnregister(
        IfSpec: RPC_IF_HANDLE,
        BindingVector: *mut RPC_BINDING_VECTOR,
        UuidVector: *mut UUID_VECTOR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn DceErrorInqTextA(RpcStatus: RPC_STATUS, ErrorText: RPC_CSTR) -> RPC_STATUS;
}
extern "C" {
    pub fn DceErrorInqTextW(RpcStatus: RPC_STATUS, ErrorText: RPC_WSTR) -> RPC_STATUS;
}
pub type RPC_EP_INQ_HANDLE = *mut I_RPC_HANDLE;
extern "C" {
    pub fn RpcMgmtEpEltInqBegin(
        EpBinding: RPC_BINDING_HANDLE,
        InquiryType: ::std::os::raw::c_ulong,
        IfId: *mut RPC_IF_ID,
        VersOption: ::std::os::raw::c_ulong,
        ObjectUuid: *mut UUID,
        InquiryContext: *mut RPC_EP_INQ_HANDLE,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcMgmtEpEltInqDone(InquiryContext: *mut RPC_EP_INQ_HANDLE) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcMgmtEpEltInqNextA(
        InquiryContext: RPC_EP_INQ_HANDLE,
        IfId: *mut RPC_IF_ID,
        Binding: *mut RPC_BINDING_HANDLE,
        ObjectUuid: *mut UUID,
        Annotation: *mut RPC_CSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcMgmtEpEltInqNextW(
        InquiryContext: RPC_EP_INQ_HANDLE,
        IfId: *mut RPC_IF_ID,
        Binding: *mut RPC_BINDING_HANDLE,
        ObjectUuid: *mut UUID,
        Annotation: *mut RPC_WSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcMgmtEpUnregister(
        EpBinding: RPC_BINDING_HANDLE,
        IfId: *mut RPC_IF_ID,
        Binding: RPC_BINDING_HANDLE,
        ObjectUuid: *mut UUID,
    ) -> RPC_STATUS;
}
pub type RPC_MGMT_AUTHORIZATION_FN = ::std::option::Option<
    unsafe extern "C" fn(
        ClientBinding: RPC_BINDING_HANDLE,
        RequestedMgmtOperation: ::std::os::raw::c_ulong,
        Status: *mut RPC_STATUS,
    ) -> ::std::os::raw::c_int,
>;
extern "C" {
    pub fn RpcMgmtSetAuthorizationFn(AuthorizationFn: RPC_MGMT_AUTHORIZATION_FN) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcExceptionFilter(ExceptionCode: ::std::os::raw::c_ulong) -> ::std::os::raw::c_int;
}
pub type RPC_INTERFACE_GROUP = *mut ::std::os::raw::c_void;
pub type PRPC_INTERFACE_GROUP = *mut *mut ::std::os::raw::c_void;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct RPC_ENDPOINT_TEMPLATEW {
    pub Version: ::std::os::raw::c_ulong,
    pub ProtSeq: RPC_WSTR,
    pub Endpoint: RPC_WSTR,
    pub SecurityDescriptor: *mut ::std::os::raw::c_void,
    pub Backlog: ::std::os::raw::c_ulong,
}
#[test]
fn bindgen_test_layout_RPC_ENDPOINT_TEMPLATEW() {
    assert_eq!(
        ::std::mem::size_of::<RPC_ENDPOINT_TEMPLATEW>(),
        40usize,
        concat!("Size of: ", stringify!(RPC_ENDPOINT_TEMPLATEW))
    );
    assert_eq!(
        ::std::mem::align_of::<RPC_ENDPOINT_TEMPLATEW>(),
        8usize,
        concat!("Alignment of ", stringify!(RPC_ENDPOINT_TEMPLATEW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<RPC_ENDPOINT_TEMPLATEW>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_ENDPOINT_TEMPLATEW),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<RPC_ENDPOINT_TEMPLATEW>())).ProtSeq as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_ENDPOINT_TEMPLATEW),
            "::",
            stringify!(ProtSeq)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<RPC_ENDPOINT_TEMPLATEW>())).Endpoint as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_ENDPOINT_TEMPLATEW),
            "::",
            stringify!(Endpoint)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RPC_ENDPOINT_TEMPLATEW>())).SecurityDescriptor as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_ENDPOINT_TEMPLATEW),
            "::",
            stringify!(SecurityDescriptor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<RPC_ENDPOINT_TEMPLATEW>())).Backlog as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_ENDPOINT_TEMPLATEW),
            "::",
            stringify!(Backlog)
        )
    );
}
pub type PRPC_ENDPOINT_TEMPLATEW = *mut RPC_ENDPOINT_TEMPLATEW;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct RPC_ENDPOINT_TEMPLATEA {
    pub Version: ::std::os::raw::c_ulong,
    pub ProtSeq: RPC_CSTR,
    pub Endpoint: RPC_CSTR,
    pub SecurityDescriptor: *mut ::std::os::raw::c_void,
    pub Backlog: ::std::os::raw::c_ulong,
}
#[test]
fn bindgen_test_layout_RPC_ENDPOINT_TEMPLATEA() {
    assert_eq!(
        ::std::mem::size_of::<RPC_ENDPOINT_TEMPLATEA>(),
        40usize,
        concat!("Size of: ", stringify!(RPC_ENDPOINT_TEMPLATEA))
    );
    assert_eq!(
        ::std::mem::align_of::<RPC_ENDPOINT_TEMPLATEA>(),
        8usize,
        concat!("Alignment of ", stringify!(RPC_ENDPOINT_TEMPLATEA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<RPC_ENDPOINT_TEMPLATEA>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_ENDPOINT_TEMPLATEA),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<RPC_ENDPOINT_TEMPLATEA>())).ProtSeq as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_ENDPOINT_TEMPLATEA),
            "::",
            stringify!(ProtSeq)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<RPC_ENDPOINT_TEMPLATEA>())).Endpoint as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_ENDPOINT_TEMPLATEA),
            "::",
            stringify!(Endpoint)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RPC_ENDPOINT_TEMPLATEA>())).SecurityDescriptor as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_ENDPOINT_TEMPLATEA),
            "::",
            stringify!(SecurityDescriptor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<RPC_ENDPOINT_TEMPLATEA>())).Backlog as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_ENDPOINT_TEMPLATEA),
            "::",
            stringify!(Backlog)
        )
    );
}
pub type PRPC_ENDPOINT_TEMPLATEA = *mut RPC_ENDPOINT_TEMPLATEA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct RPC_INTERFACE_TEMPLATEA {
    pub Version: ::std::os::raw::c_ulong,
    pub IfSpec: RPC_IF_HANDLE,
    pub MgrTypeUuid: *mut UUID,
    pub MgrEpv: *mut ::std::os::raw::c_void,
    pub Flags: ::std::os::raw::c_uint,
    pub MaxCalls: ::std::os::raw::c_uint,
    pub MaxRpcSize: ::std::os::raw::c_uint,
    pub IfCallback: ::std::option::Option<
        unsafe extern "C" fn(arg1: RPC_IF_HANDLE, arg2: *mut ::std::os::raw::c_void) -> RPC_STATUS,
    >,
    pub UuidVector: *mut UUID_VECTOR,
    pub Annotation: RPC_CSTR,
    pub SecurityDescriptor: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_RPC_INTERFACE_TEMPLATEA() {
    assert_eq!(
        ::std::mem::size_of::<RPC_INTERFACE_TEMPLATEA>(),
        80usize,
        concat!("Size of: ", stringify!(RPC_INTERFACE_TEMPLATEA))
    );
    assert_eq!(
        ::std::mem::align_of::<RPC_INTERFACE_TEMPLATEA>(),
        8usize,
        concat!("Alignment of ", stringify!(RPC_INTERFACE_TEMPLATEA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<RPC_INTERFACE_TEMPLATEA>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_INTERFACE_TEMPLATEA),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<RPC_INTERFACE_TEMPLATEA>())).IfSpec as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_INTERFACE_TEMPLATEA),
            "::",
            stringify!(IfSpec)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RPC_INTERFACE_TEMPLATEA>())).MgrTypeUuid as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_INTERFACE_TEMPLATEA),
            "::",
            stringify!(MgrTypeUuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<RPC_INTERFACE_TEMPLATEA>())).MgrEpv as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_INTERFACE_TEMPLATEA),
            "::",
            stringify!(MgrEpv)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<RPC_INTERFACE_TEMPLATEA>())).Flags as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_INTERFACE_TEMPLATEA),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RPC_INTERFACE_TEMPLATEA>())).MaxCalls as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_INTERFACE_TEMPLATEA),
            "::",
            stringify!(MaxCalls)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RPC_INTERFACE_TEMPLATEA>())).MaxRpcSize as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_INTERFACE_TEMPLATEA),
            "::",
            stringify!(MaxRpcSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RPC_INTERFACE_TEMPLATEA>())).IfCallback as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_INTERFACE_TEMPLATEA),
            "::",
            stringify!(IfCallback)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RPC_INTERFACE_TEMPLATEA>())).UuidVector as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_INTERFACE_TEMPLATEA),
            "::",
            stringify!(UuidVector)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RPC_INTERFACE_TEMPLATEA>())).Annotation as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_INTERFACE_TEMPLATEA),
            "::",
            stringify!(Annotation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RPC_INTERFACE_TEMPLATEA>())).SecurityDescriptor as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_INTERFACE_TEMPLATEA),
            "::",
            stringify!(SecurityDescriptor)
        )
    );
}
pub type PRPC_INTERFACE_TEMPLATEA = *mut RPC_INTERFACE_TEMPLATEA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct RPC_INTERFACE_TEMPLATEW {
    pub Version: ::std::os::raw::c_ulong,
    pub IfSpec: RPC_IF_HANDLE,
    pub MgrTypeUuid: *mut UUID,
    pub MgrEpv: *mut ::std::os::raw::c_void,
    pub Flags: ::std::os::raw::c_uint,
    pub MaxCalls: ::std::os::raw::c_uint,
    pub MaxRpcSize: ::std::os::raw::c_uint,
    pub IfCallback: ::std::option::Option<
        unsafe extern "C" fn(arg1: RPC_IF_HANDLE, arg2: *mut ::std::os::raw::c_void) -> RPC_STATUS,
    >,
    pub UuidVector: *mut UUID_VECTOR,
    pub Annotation: RPC_WSTR,
    pub SecurityDescriptor: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_RPC_INTERFACE_TEMPLATEW() {
    assert_eq!(
        ::std::mem::size_of::<RPC_INTERFACE_TEMPLATEW>(),
        80usize,
        concat!("Size of: ", stringify!(RPC_INTERFACE_TEMPLATEW))
    );
    assert_eq!(
        ::std::mem::align_of::<RPC_INTERFACE_TEMPLATEW>(),
        8usize,
        concat!("Alignment of ", stringify!(RPC_INTERFACE_TEMPLATEW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<RPC_INTERFACE_TEMPLATEW>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_INTERFACE_TEMPLATEW),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<RPC_INTERFACE_TEMPLATEW>())).IfSpec as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_INTERFACE_TEMPLATEW),
            "::",
            stringify!(IfSpec)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RPC_INTERFACE_TEMPLATEW>())).MgrTypeUuid as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_INTERFACE_TEMPLATEW),
            "::",
            stringify!(MgrTypeUuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<RPC_INTERFACE_TEMPLATEW>())).MgrEpv as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_INTERFACE_TEMPLATEW),
            "::",
            stringify!(MgrEpv)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<RPC_INTERFACE_TEMPLATEW>())).Flags as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_INTERFACE_TEMPLATEW),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RPC_INTERFACE_TEMPLATEW>())).MaxCalls as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_INTERFACE_TEMPLATEW),
            "::",
            stringify!(MaxCalls)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RPC_INTERFACE_TEMPLATEW>())).MaxRpcSize as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_INTERFACE_TEMPLATEW),
            "::",
            stringify!(MaxRpcSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RPC_INTERFACE_TEMPLATEW>())).IfCallback as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_INTERFACE_TEMPLATEW),
            "::",
            stringify!(IfCallback)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RPC_INTERFACE_TEMPLATEW>())).UuidVector as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_INTERFACE_TEMPLATEW),
            "::",
            stringify!(UuidVector)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RPC_INTERFACE_TEMPLATEW>())).Annotation as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_INTERFACE_TEMPLATEW),
            "::",
            stringify!(Annotation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RPC_INTERFACE_TEMPLATEW>())).SecurityDescriptor as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_INTERFACE_TEMPLATEW),
            "::",
            stringify!(SecurityDescriptor)
        )
    );
}
pub type PRPC_INTERFACE_TEMPLATEW = *mut RPC_INTERFACE_TEMPLATEW;
extern "C" {
    pub fn RpcServerInterfaceGroupCreateW(
        Interfaces: *mut RPC_INTERFACE_TEMPLATEW,
        NumIfs: ::std::os::raw::c_ulong,
        Endpoints: *mut RPC_ENDPOINT_TEMPLATEW,
        NumEndpoints: ::std::os::raw::c_ulong,
        IdlePeriod: ::std::os::raw::c_ulong,
        IdleCallbackFn: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: RPC_INTERFACE_GROUP,
                arg2: *mut ::std::os::raw::c_void,
                arg3: ::std::os::raw::c_ulong,
            ),
        >,
        IdleCallbackContext: *mut ::std::os::raw::c_void,
        IfGroup: PRPC_INTERFACE_GROUP,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerInterfaceGroupCreateA(
        Interfaces: *mut RPC_INTERFACE_TEMPLATEA,
        NumIfs: ::std::os::raw::c_ulong,
        Endpoints: *mut RPC_ENDPOINT_TEMPLATEA,
        NumEndpoints: ::std::os::raw::c_ulong,
        IdlePeriod: ::std::os::raw::c_ulong,
        IdleCallbackFn: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: RPC_INTERFACE_GROUP,
                arg2: *mut ::std::os::raw::c_void,
                arg3: ::std::os::raw::c_ulong,
            ),
        >,
        IdleCallbackContext: *mut ::std::os::raw::c_void,
        IfGroup: PRPC_INTERFACE_GROUP,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerInterfaceGroupClose(IfGroup: RPC_INTERFACE_GROUP) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerInterfaceGroupActivate(IfGroup: RPC_INTERFACE_GROUP) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerInterfaceGroupDeactivate(
        IfGroup: RPC_INTERFACE_GROUP,
        ForceDeactivation: ::std::os::raw::c_ulong,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerInterfaceGroupInqBindings(
        IfGroup: RPC_INTERFACE_GROUP,
        BindingVector: *mut *mut RPC_BINDING_VECTOR,
    ) -> RPC_STATUS;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RPC_VERSION {
    pub MajorVersion: ::std::os::raw::c_ushort,
    pub MinorVersion: ::std::os::raw::c_ushort,
}
#[test]
fn bindgen_test_layout__RPC_VERSION() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_VERSION>(),
        4usize,
        concat!("Size of: ", stringify!(_RPC_VERSION))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_VERSION>(),
        2usize,
        concat!("Alignment of ", stringify!(_RPC_VERSION))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_VERSION>())).MajorVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_VERSION),
            "::",
            stringify!(MajorVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_VERSION>())).MinorVersion as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_VERSION),
            "::",
            stringify!(MinorVersion)
        )
    );
}
pub type RPC_VERSION = _RPC_VERSION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RPC_SYNTAX_IDENTIFIER {
    pub SyntaxGUID: GUID,
    pub SyntaxVersion: RPC_VERSION,
}
#[test]
fn bindgen_test_layout__RPC_SYNTAX_IDENTIFIER() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_SYNTAX_IDENTIFIER>(),
        20usize,
        concat!("Size of: ", stringify!(_RPC_SYNTAX_IDENTIFIER))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_SYNTAX_IDENTIFIER>(),
        4usize,
        concat!("Alignment of ", stringify!(_RPC_SYNTAX_IDENTIFIER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SYNTAX_IDENTIFIER>())).SyntaxGUID as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SYNTAX_IDENTIFIER),
            "::",
            stringify!(SyntaxGUID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SYNTAX_IDENTIFIER>())).SyntaxVersion as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SYNTAX_IDENTIFIER),
            "::",
            stringify!(SyntaxVersion)
        )
    );
}
pub type RPC_SYNTAX_IDENTIFIER = _RPC_SYNTAX_IDENTIFIER;
pub type PRPC_SYNTAX_IDENTIFIER = *mut _RPC_SYNTAX_IDENTIFIER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RPC_MESSAGE {
    pub Handle: RPC_BINDING_HANDLE,
    pub DataRepresentation: ::std::os::raw::c_ulong,
    pub Buffer: *mut ::std::os::raw::c_void,
    pub BufferLength: ::std::os::raw::c_uint,
    pub ProcNum: ::std::os::raw::c_uint,
    pub TransferSyntax: PRPC_SYNTAX_IDENTIFIER,
    pub RpcInterfaceInformation: *mut ::std::os::raw::c_void,
    pub ReservedForRuntime: *mut ::std::os::raw::c_void,
    pub ManagerEpv: *mut ::std::os::raw::c_void,
    pub ImportContext: *mut ::std::os::raw::c_void,
    pub RpcFlags: ::std::os::raw::c_ulong,
}
#[test]
fn bindgen_test_layout__RPC_MESSAGE() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_MESSAGE>(),
        80usize,
        concat!("Size of: ", stringify!(_RPC_MESSAGE))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_MESSAGE>(),
        8usize,
        concat!("Alignment of ", stringify!(_RPC_MESSAGE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_MESSAGE>())).Handle as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_MESSAGE),
            "::",
            stringify!(Handle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_MESSAGE>())).DataRepresentation as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_MESSAGE),
            "::",
            stringify!(DataRepresentation)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_MESSAGE>())).Buffer as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_MESSAGE),
            "::",
            stringify!(Buffer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_MESSAGE>())).BufferLength as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_MESSAGE),
            "::",
            stringify!(BufferLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_MESSAGE>())).ProcNum as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_MESSAGE),
            "::",
            stringify!(ProcNum)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_MESSAGE>())).TransferSyntax as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_MESSAGE),
            "::",
            stringify!(TransferSyntax)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_MESSAGE>())).RpcInterfaceInformation as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_MESSAGE),
            "::",
            stringify!(RpcInterfaceInformation)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_MESSAGE>())).ReservedForRuntime as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_MESSAGE),
            "::",
            stringify!(ReservedForRuntime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_MESSAGE>())).ManagerEpv as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_MESSAGE),
            "::",
            stringify!(ManagerEpv)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_MESSAGE>())).ImportContext as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_MESSAGE),
            "::",
            stringify!(ImportContext)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_MESSAGE>())).RpcFlags as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_MESSAGE),
            "::",
            stringify!(RpcFlags)
        )
    );
}
pub type RPC_MESSAGE = _RPC_MESSAGE;
pub type PRPC_MESSAGE = *mut _RPC_MESSAGE;
pub const RPC_ADDRESS_CHANGE_TYPE_PROTOCOL_NOT_LOADED: RPC_ADDRESS_CHANGE_TYPE = 1;
pub const RPC_ADDRESS_CHANGE_TYPE_PROTOCOL_LOADED: RPC_ADDRESS_CHANGE_TYPE = 2;
pub const RPC_ADDRESS_CHANGE_TYPE_PROTOCOL_ADDRESS_CHANGE: RPC_ADDRESS_CHANGE_TYPE = 3;
pub type RPC_ADDRESS_CHANGE_TYPE = ::std::os::raw::c_int;
pub type RPC_DISPATCH_FUNCTION = ::std::option::Option<unsafe extern "C" fn(Message: PRPC_MESSAGE)>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct RPC_DISPATCH_TABLE {
    pub DispatchTableCount: ::std::os::raw::c_uint,
    pub DispatchTable: *mut RPC_DISPATCH_FUNCTION,
    pub Reserved: LONG_PTR,
}
#[test]
fn bindgen_test_layout_RPC_DISPATCH_TABLE() {
    assert_eq!(
        ::std::mem::size_of::<RPC_DISPATCH_TABLE>(),
        24usize,
        concat!("Size of: ", stringify!(RPC_DISPATCH_TABLE))
    );
    assert_eq!(
        ::std::mem::align_of::<RPC_DISPATCH_TABLE>(),
        8usize,
        concat!("Alignment of ", stringify!(RPC_DISPATCH_TABLE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RPC_DISPATCH_TABLE>())).DispatchTableCount as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_DISPATCH_TABLE),
            "::",
            stringify!(DispatchTableCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RPC_DISPATCH_TABLE>())).DispatchTable as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_DISPATCH_TABLE),
            "::",
            stringify!(DispatchTable)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<RPC_DISPATCH_TABLE>())).Reserved as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_DISPATCH_TABLE),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type PRPC_DISPATCH_TABLE = *mut RPC_DISPATCH_TABLE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RPC_PROTSEQ_ENDPOINT {
    pub RpcProtocolSequence: *mut ::std::os::raw::c_uchar,
    pub Endpoint: *mut ::std::os::raw::c_uchar,
}
#[test]
fn bindgen_test_layout__RPC_PROTSEQ_ENDPOINT() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_PROTSEQ_ENDPOINT>(),
        16usize,
        concat!("Size of: ", stringify!(_RPC_PROTSEQ_ENDPOINT))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_PROTSEQ_ENDPOINT>(),
        8usize,
        concat!("Alignment of ", stringify!(_RPC_PROTSEQ_ENDPOINT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_PROTSEQ_ENDPOINT>())).RpcProtocolSequence as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_PROTSEQ_ENDPOINT),
            "::",
            stringify!(RpcProtocolSequence)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_PROTSEQ_ENDPOINT>())).Endpoint as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_PROTSEQ_ENDPOINT),
            "::",
            stringify!(Endpoint)
        )
    );
}
pub type RPC_PROTSEQ_ENDPOINT = _RPC_PROTSEQ_ENDPOINT;
pub type PRPC_PROTSEQ_ENDPOINT = *mut _RPC_PROTSEQ_ENDPOINT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RPC_SERVER_INTERFACE {
    pub Length: ::std::os::raw::c_uint,
    pub InterfaceId: RPC_SYNTAX_IDENTIFIER,
    pub TransferSyntax: RPC_SYNTAX_IDENTIFIER,
    pub DispatchTable: PRPC_DISPATCH_TABLE,
    pub RpcProtseqEndpointCount: ::std::os::raw::c_uint,
    pub RpcProtseqEndpoint: PRPC_PROTSEQ_ENDPOINT,
    pub DefaultManagerEpv: *mut ::std::os::raw::c_void,
    pub InterpreterInfo: *const ::std::os::raw::c_void,
    pub Flags: ::std::os::raw::c_uint,
}
#[test]
fn bindgen_test_layout__RPC_SERVER_INTERFACE() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_SERVER_INTERFACE>(),
        96usize,
        concat!("Size of: ", stringify!(_RPC_SERVER_INTERFACE))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_SERVER_INTERFACE>(),
        8usize,
        concat!("Alignment of ", stringify!(_RPC_SERVER_INTERFACE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_SERVER_INTERFACE>())).Length as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SERVER_INTERFACE),
            "::",
            stringify!(Length)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SERVER_INTERFACE>())).InterfaceId as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SERVER_INTERFACE),
            "::",
            stringify!(InterfaceId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SERVER_INTERFACE>())).TransferSyntax as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SERVER_INTERFACE),
            "::",
            stringify!(TransferSyntax)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SERVER_INTERFACE>())).DispatchTable as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SERVER_INTERFACE),
            "::",
            stringify!(DispatchTable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SERVER_INTERFACE>())).RpcProtseqEndpointCount as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SERVER_INTERFACE),
            "::",
            stringify!(RpcProtseqEndpointCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SERVER_INTERFACE>())).RpcProtseqEndpoint as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SERVER_INTERFACE),
            "::",
            stringify!(RpcProtseqEndpoint)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SERVER_INTERFACE>())).DefaultManagerEpv as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SERVER_INTERFACE),
            "::",
            stringify!(DefaultManagerEpv)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SERVER_INTERFACE>())).InterpreterInfo as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SERVER_INTERFACE),
            "::",
            stringify!(InterpreterInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_SERVER_INTERFACE>())).Flags as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SERVER_INTERFACE),
            "::",
            stringify!(Flags)
        )
    );
}
pub type RPC_SERVER_INTERFACE = _RPC_SERVER_INTERFACE;
pub type PRPC_SERVER_INTERFACE = *mut _RPC_SERVER_INTERFACE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RPC_CLIENT_INTERFACE {
    pub Length: ::std::os::raw::c_uint,
    pub InterfaceId: RPC_SYNTAX_IDENTIFIER,
    pub TransferSyntax: RPC_SYNTAX_IDENTIFIER,
    pub DispatchTable: PRPC_DISPATCH_TABLE,
    pub RpcProtseqEndpointCount: ::std::os::raw::c_uint,
    pub RpcProtseqEndpoint: PRPC_PROTSEQ_ENDPOINT,
    pub Reserved: ULONG_PTR,
    pub InterpreterInfo: *const ::std::os::raw::c_void,
    pub Flags: ::std::os::raw::c_uint,
}
#[test]
fn bindgen_test_layout__RPC_CLIENT_INTERFACE() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_CLIENT_INTERFACE>(),
        96usize,
        concat!("Size of: ", stringify!(_RPC_CLIENT_INTERFACE))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_CLIENT_INTERFACE>(),
        8usize,
        concat!("Alignment of ", stringify!(_RPC_CLIENT_INTERFACE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_CLIENT_INTERFACE>())).Length as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_CLIENT_INTERFACE),
            "::",
            stringify!(Length)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_CLIENT_INTERFACE>())).InterfaceId as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_CLIENT_INTERFACE),
            "::",
            stringify!(InterfaceId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_CLIENT_INTERFACE>())).TransferSyntax as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_CLIENT_INTERFACE),
            "::",
            stringify!(TransferSyntax)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_CLIENT_INTERFACE>())).DispatchTable as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_CLIENT_INTERFACE),
            "::",
            stringify!(DispatchTable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_CLIENT_INTERFACE>())).RpcProtseqEndpointCount as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_CLIENT_INTERFACE),
            "::",
            stringify!(RpcProtseqEndpointCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_CLIENT_INTERFACE>())).RpcProtseqEndpoint as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_CLIENT_INTERFACE),
            "::",
            stringify!(RpcProtseqEndpoint)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_CLIENT_INTERFACE>())).Reserved as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_CLIENT_INTERFACE),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_CLIENT_INTERFACE>())).InterpreterInfo as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_CLIENT_INTERFACE),
            "::",
            stringify!(InterpreterInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_CLIENT_INTERFACE>())).Flags as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_CLIENT_INTERFACE),
            "::",
            stringify!(Flags)
        )
    );
}
pub type RPC_CLIENT_INTERFACE = _RPC_CLIENT_INTERFACE;
pub type PRPC_CLIENT_INTERFACE = *mut _RPC_CLIENT_INTERFACE;
extern "C" {
    pub fn I_RpcNegotiateTransferSyntax(Message: *mut RPC_MESSAGE) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcGetBuffer(Message: *mut RPC_MESSAGE) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcGetBufferWithObject(Message: *mut RPC_MESSAGE, ObjectUuid: *mut UUID)
        -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcSendReceive(Message: *mut RPC_MESSAGE) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcFreeBuffer(Message: *mut RPC_MESSAGE) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcSend(Message: PRPC_MESSAGE) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcReceive(Message: PRPC_MESSAGE, Size: ::std::os::raw::c_uint) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcFreePipeBuffer(Message: *mut RPC_MESSAGE) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcReallocPipeBuffer(
        Message: PRPC_MESSAGE,
        NewSize: ::std::os::raw::c_uint,
    ) -> RPC_STATUS;
}
pub type I_RPC_MUTEX = *mut ::std::os::raw::c_void;
extern "C" {
    pub fn I_RpcRequestMutex(Mutex: *mut I_RPC_MUTEX);
}
extern "C" {
    pub fn I_RpcClearMutex(Mutex: I_RPC_MUTEX);
}
extern "C" {
    pub fn I_RpcDeleteMutex(Mutex: I_RPC_MUTEX);
}
extern "C" {
    pub fn I_RpcAllocate(Size: ::std::os::raw::c_uint) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn I_RpcFree(Object: *mut ::std::os::raw::c_void);
}
extern "C" {
    pub fn I_RpcFreeSystemHandleCollection(
        CallObj: *mut ::std::os::raw::c_void,
        FreeFlags: ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn I_RpcSetSystemHandle(
        Handle: *mut ::std::os::raw::c_void,
        Type: ::std::os::raw::c_uchar,
        AccessMask: ::std::os::raw::c_ulong,
        CallObj: *mut ::std::os::raw::c_void,
        HandleIndex: *mut ::std::os::raw::c_ulong,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcGetSystemHandle(
        pMemory: *mut ::std::os::raw::c_uchar,
        Type: ::std::os::raw::c_uchar,
        AccessMask: ::std::os::raw::c_ulong,
        HandleIndex: ::std::os::raw::c_ulong,
        CallObj: *mut ::std::os::raw::c_void,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcFreeSystemHandle(
        Type: ::std::os::raw::c_uchar,
        Handle: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn I_RpcPauseExecution(Milliseconds: ::std::os::raw::c_ulong);
}
extern "C" {
    pub fn I_RpcGetExtendedError() -> RPC_STATUS;
}
pub const _LRPC_SYSTEM_HANDLE_MARSHAL_DIRECTION_MarshalDirectionMarshal:
    _LRPC_SYSTEM_HANDLE_MARSHAL_DIRECTION = 0;
pub const _LRPC_SYSTEM_HANDLE_MARSHAL_DIRECTION_MarshalDirectionUnmarshal:
    _LRPC_SYSTEM_HANDLE_MARSHAL_DIRECTION = 1;
pub type _LRPC_SYSTEM_HANDLE_MARSHAL_DIRECTION = ::std::os::raw::c_int;
pub use self::_LRPC_SYSTEM_HANDLE_MARSHAL_DIRECTION as LRPC_SYSTEM_HANDLE_MARSHAL_DIRECTION;
extern "C" {
    pub fn I_RpcSystemHandleTypeSpecificWork(
        Handle: *mut ::std::os::raw::c_void,
        ActualType: ::std::os::raw::c_uchar,
        IdlType: ::std::os::raw::c_uchar,
        MarshalDirection: LRPC_SYSTEM_HANDLE_MARSHAL_DIRECTION,
    ) -> RPC_STATUS;
}
pub type PRPC_RUNDOWN =
    ::std::option::Option<unsafe extern "C" fn(AssociationContext: *mut ::std::os::raw::c_void)>;
extern "C" {
    pub fn I_RpcMonitorAssociation(
        Handle: RPC_BINDING_HANDLE,
        RundownRoutine: PRPC_RUNDOWN,
        Context: *mut ::std::os::raw::c_void,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcStopMonitorAssociation(Handle: RPC_BINDING_HANDLE) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcGetCurrentCallHandle() -> RPC_BINDING_HANDLE;
}
extern "C" {
    pub fn I_RpcGetAssociationContext(
        BindingHandle: RPC_BINDING_HANDLE,
        AssociationContext: *mut *mut ::std::os::raw::c_void,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcGetServerContextList(
        BindingHandle: RPC_BINDING_HANDLE,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn I_RpcSetServerContextList(
        BindingHandle: RPC_BINDING_HANDLE,
        ServerContextList: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn I_RpcNsInterfaceExported(
        EntryNameSyntax: ::std::os::raw::c_ulong,
        EntryName: *mut ::std::os::raw::c_ushort,
        RpcInterfaceInformation: *mut RPC_SERVER_INTERFACE,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcNsInterfaceUnexported(
        EntryNameSyntax: ::std::os::raw::c_ulong,
        EntryName: *mut ::std::os::raw::c_ushort,
        RpcInterfaceInformation: *mut RPC_SERVER_INTERFACE,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcBindingToStaticStringBindingW(
        Binding: RPC_BINDING_HANDLE,
        StringBinding: *mut *mut ::std::os::raw::c_ushort,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcBindingInqSecurityContext(
        Binding: RPC_BINDING_HANDLE,
        SecurityContextHandle: *mut *mut ::std::os::raw::c_void,
    ) -> RPC_STATUS;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RPC_SEC_CONTEXT_KEY_INFO {
    pub EncryptAlgorithm: ::std::os::raw::c_ulong,
    pub KeySize: ::std::os::raw::c_ulong,
    pub SignatureAlgorithm: ::std::os::raw::c_ulong,
}
#[test]
fn bindgen_test_layout__RPC_SEC_CONTEXT_KEY_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_SEC_CONTEXT_KEY_INFO>(),
        12usize,
        concat!("Size of: ", stringify!(_RPC_SEC_CONTEXT_KEY_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_SEC_CONTEXT_KEY_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_RPC_SEC_CONTEXT_KEY_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SEC_CONTEXT_KEY_INFO>())).EncryptAlgorithm as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SEC_CONTEXT_KEY_INFO),
            "::",
            stringify!(EncryptAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SEC_CONTEXT_KEY_INFO>())).KeySize as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SEC_CONTEXT_KEY_INFO),
            "::",
            stringify!(KeySize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_SEC_CONTEXT_KEY_INFO>())).SignatureAlgorithm as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_SEC_CONTEXT_KEY_INFO),
            "::",
            stringify!(SignatureAlgorithm)
        )
    );
}
pub type RPC_SEC_CONTEXT_KEY_INFO = _RPC_SEC_CONTEXT_KEY_INFO;
pub type PRPC_SEC_CONTEXT_KEY_INFO = *mut _RPC_SEC_CONTEXT_KEY_INFO;
extern "C" {
    pub fn I_RpcBindingInqSecurityContextKeyInfo(
        Binding: RPC_BINDING_HANDLE,
        KeyInfo: *mut ::std::os::raw::c_void,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcBindingInqWireIdForSnego(
        Binding: RPC_BINDING_HANDLE,
        WireId: *mut ::std::os::raw::c_uchar,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcBindingInqMarshalledTargetInfo(
        Binding: RPC_BINDING_HANDLE,
        MarshalledTargetInfoSize: *mut ::std::os::raw::c_ulong,
        MarshalledTargetInfo: *mut RPC_CSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcBindingInqLocalClientPID(
        Binding: RPC_BINDING_HANDLE,
        Pid: *mut ::std::os::raw::c_ulong,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcBindingHandleToAsyncHandle(
        Binding: RPC_BINDING_HANDLE,
        AsyncHandle: *mut *mut ::std::os::raw::c_void,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcNsBindingSetEntryNameW(
        Binding: RPC_BINDING_HANDLE,
        EntryNameSyntax: ::std::os::raw::c_ulong,
        EntryName: RPC_WSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcNsBindingSetEntryNameA(
        Binding: RPC_BINDING_HANDLE,
        EntryNameSyntax: ::std::os::raw::c_ulong,
        EntryName: RPC_CSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcServerUseProtseqEp2A(
        NetworkAddress: RPC_CSTR,
        Protseq: RPC_CSTR,
        MaxCalls: ::std::os::raw::c_uint,
        Endpoint: RPC_CSTR,
        SecurityDescriptor: *mut ::std::os::raw::c_void,
        Policy: *mut ::std::os::raw::c_void,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcServerUseProtseqEp2W(
        NetworkAddress: RPC_WSTR,
        Protseq: RPC_WSTR,
        MaxCalls: ::std::os::raw::c_uint,
        Endpoint: RPC_WSTR,
        SecurityDescriptor: *mut ::std::os::raw::c_void,
        Policy: *mut ::std::os::raw::c_void,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcServerUseProtseq2W(
        NetworkAddress: RPC_WSTR,
        Protseq: RPC_WSTR,
        MaxCalls: ::std::os::raw::c_uint,
        SecurityDescriptor: *mut ::std::os::raw::c_void,
        Policy: *mut ::std::os::raw::c_void,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcServerUseProtseq2A(
        NetworkAddress: RPC_CSTR,
        Protseq: RPC_CSTR,
        MaxCalls: ::std::os::raw::c_uint,
        SecurityDescriptor: *mut ::std::os::raw::c_void,
        Policy: *mut ::std::os::raw::c_void,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcServerStartService(
        Protseq: RPC_WSTR,
        Endpoint: RPC_WSTR,
        IfSpec: RPC_IF_HANDLE,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcBindingInqDynamicEndpointW(
        Binding: RPC_BINDING_HANDLE,
        DynamicEndpoint: *mut RPC_WSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcBindingInqDynamicEndpointA(
        Binding: RPC_BINDING_HANDLE,
        DynamicEndpoint: *mut RPC_CSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcServerCheckClientRestriction(Context: RPC_BINDING_HANDLE) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcBindingInqTransportType(
        Binding: RPC_BINDING_HANDLE,
        Type: *mut ::std::os::raw::c_uint,
    ) -> RPC_STATUS;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RPC_TRANSFER_SYNTAX {
    pub Uuid: UUID,
    pub VersMajor: ::std::os::raw::c_ushort,
    pub VersMinor: ::std::os::raw::c_ushort,
}
#[test]
fn bindgen_test_layout__RPC_TRANSFER_SYNTAX() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_TRANSFER_SYNTAX>(),
        20usize,
        concat!("Size of: ", stringify!(_RPC_TRANSFER_SYNTAX))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_TRANSFER_SYNTAX>(),
        4usize,
        concat!("Alignment of ", stringify!(_RPC_TRANSFER_SYNTAX))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_TRANSFER_SYNTAX>())).Uuid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_TRANSFER_SYNTAX),
            "::",
            stringify!(Uuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_TRANSFER_SYNTAX>())).VersMajor as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_TRANSFER_SYNTAX),
            "::",
            stringify!(VersMajor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_TRANSFER_SYNTAX>())).VersMinor as *const _ as usize },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_TRANSFER_SYNTAX),
            "::",
            stringify!(VersMinor)
        )
    );
}
pub type RPC_TRANSFER_SYNTAX = _RPC_TRANSFER_SYNTAX;
extern "C" {
    pub fn I_RpcIfInqTransferSyntaxes(
        RpcIfHandle: RPC_IF_HANDLE,
        TransferSyntaxes: *mut RPC_TRANSFER_SYNTAX,
        TransferSyntaxSize: ::std::os::raw::c_uint,
        TransferSyntaxCount: *mut ::std::os::raw::c_uint,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_UuidCreate(Uuid: *mut UUID) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcUninitializeNdrOle();
}
extern "C" {
    pub fn I_RpcBindingCopy(
        SourceBinding: RPC_BINDING_HANDLE,
        DestinationBinding: *mut RPC_BINDING_HANDLE,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcBindingIsClientLocal(
        BindingHandle: RPC_BINDING_HANDLE,
        ClientLocalFlag: *mut ::std::os::raw::c_uint,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcBindingInqConnId(
        Binding: RPC_BINDING_HANDLE,
        ConnId: *mut *mut ::std::os::raw::c_void,
        pfFirstCall: *mut ::std::os::raw::c_int,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcBindingCreateNP(
        ServerName: RPC_WSTR,
        ServiceName: RPC_WSTR,
        NetworkOptions: RPC_WSTR,
        Binding: *mut RPC_BINDING_HANDLE,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcSsDontSerializeContext();
}
extern "C" {
    pub fn I_RpcLaunchDatagramReceiveThread(pAddress: *mut ::std::os::raw::c_void) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcServerRegisterForwardFunction(
        pForwardFunction: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut UUID,
                arg2: *mut RPC_VERSION,
                arg3: *mut UUID,
                arg4: *mut ::std::os::raw::c_uchar,
                arg5: *mut *mut ::std::os::raw::c_void,
            ) -> RPC_STATUS,
        >,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcServerInqAddressChangeFn(
    ) -> ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>;
}
extern "C" {
    pub fn I_RpcServerSetAddressChangeFn(
        pAddressChangeFn: ::std::option::Option<
            unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void),
        >,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcServerInqLocalConnAddress(
        Binding: RPC_BINDING_HANDLE,
        Buffer: *mut ::std::os::raw::c_void,
        BufferSize: *mut ::std::os::raw::c_ulong,
        AddressFormat: *mut ::std::os::raw::c_ulong,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcServerInqRemoteConnAddress(
        Binding: RPC_BINDING_HANDLE,
        Buffer: *mut ::std::os::raw::c_void,
        BufferSize: *mut ::std::os::raw::c_ulong,
        AddressFormat: *mut ::std::os::raw::c_ulong,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcSessionStrictContextHandle();
}
extern "C" {
    pub fn I_RpcTurnOnEEInfoPropagation() -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcConnectionInqSockBuffSize(
        RecvBuffSize: *mut ::std::os::raw::c_ulong,
        SendBuffSize: *mut ::std::os::raw::c_ulong,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcConnectionSetSockBuffSize(
        RecvBuffSize: ::std::os::raw::c_ulong,
        SendBuffSize: ::std::os::raw::c_ulong,
    ) -> RPC_STATUS;
}
pub type RPCLT_PDU_FILTER_FUNC = ::std::option::Option<
    unsafe extern "C" fn(
        Buffer: *mut ::std::os::raw::c_void,
        BufferLength: ::std::os::raw::c_uint,
        fDatagram: ::std::os::raw::c_int,
    ),
>;
pub type RPC_SETFILTER_FUNC =
    ::std::option::Option<unsafe extern "C" fn(pfnFilter: RPCLT_PDU_FILTER_FUNC)>;
extern "C" {
    pub fn I_RpcServerStartListening(hWnd: *mut ::std::os::raw::c_void) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcServerStopListening() -> RPC_STATUS;
}
pub type RPC_BLOCKING_FN = ::std::option::Option<
    unsafe extern "C" fn(
        hWnd: *mut ::std::os::raw::c_void,
        Context: *mut ::std::os::raw::c_void,
        hSyncEvent: *mut ::std::os::raw::c_void,
    ) -> RPC_STATUS,
>;
extern "C" {
    pub fn I_RpcBindingSetAsync(
        Binding: RPC_BINDING_HANDLE,
        BlockingFn: RPC_BLOCKING_FN,
        ServerTid: ::std::os::raw::c_ulong,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcSetThreadParams(
        fClientFree: ::std::os::raw::c_int,
        Context: *mut ::std::os::raw::c_void,
        hWndClient: *mut ::std::os::raw::c_void,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcWindowProc(
        hWnd: *mut ::std::os::raw::c_void,
        Message: ::std::os::raw::c_uint,
        wParam: ::std::os::raw::c_uint,
        lParam: ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn I_RpcServerUnregisterEndpointA(Protseq: RPC_CSTR, Endpoint: RPC_CSTR) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcServerUnregisterEndpointW(Protseq: RPC_WSTR, Endpoint: RPC_WSTR) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcServerInqTransportType(Type: *mut ::std::os::raw::c_uint) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcMapWin32Status(Status: RPC_STATUS) -> ::std::os::raw::c_long;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RPC_C_OPT_COOKIE_AUTH_DESCRIPTOR {
    pub BufferSize: ::std::os::raw::c_ulong,
    pub Buffer: *mut ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout__RPC_C_OPT_COOKIE_AUTH_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_C_OPT_COOKIE_AUTH_DESCRIPTOR>(),
        16usize,
        concat!("Size of: ", stringify!(_RPC_C_OPT_COOKIE_AUTH_DESCRIPTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_C_OPT_COOKIE_AUTH_DESCRIPTOR>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_RPC_C_OPT_COOKIE_AUTH_DESCRIPTOR)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_C_OPT_COOKIE_AUTH_DESCRIPTOR>())).BufferSize as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_C_OPT_COOKIE_AUTH_DESCRIPTOR),
            "::",
            stringify!(BufferSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_C_OPT_COOKIE_AUTH_DESCRIPTOR>())).Buffer as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_C_OPT_COOKIE_AUTH_DESCRIPTOR),
            "::",
            stringify!(Buffer)
        )
    );
}
pub type RPC_C_OPT_COOKIE_AUTH_DESCRIPTOR = _RPC_C_OPT_COOKIE_AUTH_DESCRIPTOR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RDR_CALLOUT_STATE {
    pub LastError: RPC_STATUS,
    pub LastEEInfo: *mut ::std::os::raw::c_void,
    pub LastCalledStage: RPC_HTTP_REDIRECTOR_STAGE,
    pub ServerName: *mut ::std::os::raw::c_ushort,
    pub ServerPort: *mut ::std::os::raw::c_ushort,
    pub RemoteUser: *mut ::std::os::raw::c_ushort,
    pub AuthType: *mut ::std::os::raw::c_ushort,
    pub ResourceTypePresent: ::std::os::raw::c_uchar,
    pub SessionIdPresent: ::std::os::raw::c_uchar,
    pub InterfacePresent: ::std::os::raw::c_uchar,
    pub ResourceType: UUID,
    pub SessionId: UUID,
    pub Interface: RPC_SYNTAX_IDENTIFIER,
    pub CertContext: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout__RDR_CALLOUT_STATE() {
    assert_eq!(
        ::std::mem::size_of::<_RDR_CALLOUT_STATE>(),
        120usize,
        concat!("Size of: ", stringify!(_RDR_CALLOUT_STATE))
    );
    assert_eq!(
        ::std::mem::align_of::<_RDR_CALLOUT_STATE>(),
        8usize,
        concat!("Alignment of ", stringify!(_RDR_CALLOUT_STATE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RDR_CALLOUT_STATE>())).LastError as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RDR_CALLOUT_STATE),
            "::",
            stringify!(LastError)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RDR_CALLOUT_STATE>())).LastEEInfo as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RDR_CALLOUT_STATE),
            "::",
            stringify!(LastEEInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RDR_CALLOUT_STATE>())).LastCalledStage as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_RDR_CALLOUT_STATE),
            "::",
            stringify!(LastCalledStage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RDR_CALLOUT_STATE>())).ServerName as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_RDR_CALLOUT_STATE),
            "::",
            stringify!(ServerName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RDR_CALLOUT_STATE>())).ServerPort as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_RDR_CALLOUT_STATE),
            "::",
            stringify!(ServerPort)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RDR_CALLOUT_STATE>())).RemoteUser as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_RDR_CALLOUT_STATE),
            "::",
            stringify!(RemoteUser)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RDR_CALLOUT_STATE>())).AuthType as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_RDR_CALLOUT_STATE),
            "::",
            stringify!(AuthType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RDR_CALLOUT_STATE>())).ResourceTypePresent as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_RDR_CALLOUT_STATE),
            "::",
            stringify!(ResourceTypePresent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RDR_CALLOUT_STATE>())).SessionIdPresent as *const _ as usize
        },
        57usize,
        concat!(
            "Offset of field: ",
            stringify!(_RDR_CALLOUT_STATE),
            "::",
            stringify!(SessionIdPresent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RDR_CALLOUT_STATE>())).InterfacePresent as *const _ as usize
        },
        58usize,
        concat!(
            "Offset of field: ",
            stringify!(_RDR_CALLOUT_STATE),
            "::",
            stringify!(InterfacePresent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RDR_CALLOUT_STATE>())).ResourceType as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_RDR_CALLOUT_STATE),
            "::",
            stringify!(ResourceType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RDR_CALLOUT_STATE>())).SessionId as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(_RDR_CALLOUT_STATE),
            "::",
            stringify!(SessionId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RDR_CALLOUT_STATE>())).Interface as *const _ as usize },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(_RDR_CALLOUT_STATE),
            "::",
            stringify!(Interface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RDR_CALLOUT_STATE>())).CertContext as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_RDR_CALLOUT_STATE),
            "::",
            stringify!(CertContext)
        )
    );
}
pub type RDR_CALLOUT_STATE = _RDR_CALLOUT_STATE;
pub type I_RpcProxyIsValidMachineFn = ::std::option::Option<
    unsafe extern "C" fn(
        Machine: RPC_WSTR,
        DotMachine: RPC_WSTR,
        PortNumber: ::std::os::raw::c_ulong,
    ) -> RPC_STATUS,
>;
pub type I_RpcProxyGetClientAddressFn = ::std::option::Option<
    unsafe extern "C" fn(
        Context: *mut ::std::os::raw::c_void,
        Buffer: *mut ::std::os::raw::c_char,
        BufferLength: *mut ::std::os::raw::c_ulong,
    ) -> RPC_STATUS,
>;
pub type I_RpcProxyGetConnectionTimeoutFn = ::std::option::Option<
    unsafe extern "C" fn(ConnectionTimeout: *mut ::std::os::raw::c_ulong) -> RPC_STATUS,
>;
pub type I_RpcPerformCalloutFn = ::std::option::Option<
    unsafe extern "C" fn(
        Context: *mut ::std::os::raw::c_void,
        CallOutState: *mut RDR_CALLOUT_STATE,
        Stage: RPC_HTTP_REDIRECTOR_STAGE,
    ) -> RPC_STATUS,
>;
pub type I_RpcFreeCalloutStateFn =
    ::std::option::Option<unsafe extern "C" fn(CallOutState: *mut RDR_CALLOUT_STATE)>;
pub type I_RpcProxyGetClientSessionAndResourceUUID = ::std::option::Option<
    unsafe extern "C" fn(
        Context: *mut ::std::os::raw::c_void,
        SessionIdPresent: *mut ::std::os::raw::c_int,
        SessionId: *mut UUID,
        ResourceIdPresent: *mut ::std::os::raw::c_int,
        ResourceId: *mut UUID,
    ) -> RPC_STATUS,
>;
pub type I_RpcProxyFilterIfFn = ::std::option::Option<
    unsafe extern "C" fn(
        Context: *mut ::std::os::raw::c_void,
        IfUuid: *mut UUID,
        IfMajorVersion: ::std::os::raw::c_ushort,
        fAllow: *mut ::std::os::raw::c_int,
    ) -> RPC_STATUS,
>;
pub const RpcProxyPerfCounters_RpcCurrentUniqueUser: RpcProxyPerfCounters = 1;
pub const RpcProxyPerfCounters_RpcBackEndConnectionAttempts: RpcProxyPerfCounters = 2;
pub const RpcProxyPerfCounters_RpcBackEndConnectionFailed: RpcProxyPerfCounters = 3;
pub const RpcProxyPerfCounters_RpcRequestsPerSecond: RpcProxyPerfCounters = 4;
pub const RpcProxyPerfCounters_RpcIncomingConnections: RpcProxyPerfCounters = 5;
pub const RpcProxyPerfCounters_RpcIncomingBandwidth: RpcProxyPerfCounters = 6;
pub const RpcProxyPerfCounters_RpcOutgoingBandwidth: RpcProxyPerfCounters = 7;
pub const RpcProxyPerfCounters_RpcAttemptedLbsDecisions: RpcProxyPerfCounters = 8;
pub const RpcProxyPerfCounters_RpcFailedLbsDecisions: RpcProxyPerfCounters = 9;
pub const RpcProxyPerfCounters_RpcAttemptedLbsMessages: RpcProxyPerfCounters = 10;
pub const RpcProxyPerfCounters_RpcFailedLbsMessages: RpcProxyPerfCounters = 11;
pub const RpcProxyPerfCounters_RpcLastCounter: RpcProxyPerfCounters = 12;
pub type RpcProxyPerfCounters = ::std::os::raw::c_int;
pub use self::RpcProxyPerfCounters as RpcPerfCounters;
pub type I_RpcProxyUpdatePerfCounterFn = ::std::option::Option<
    unsafe extern "C" fn(
        Counter: RpcPerfCounters,
        ModifyTrend: ::std::os::raw::c_int,
        Size: ::std::os::raw::c_ulong,
    ),
>;
pub type I_RpcProxyUpdatePerfCounterBackendServerFn = ::std::option::Option<
    unsafe extern "C" fn(
        MachineName: *mut ::std::os::raw::c_ushort,
        IsConnectEvent: ::std::os::raw::c_int,
    ),
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagI_RpcProxyCallbackInterface {
    pub IsValidMachineFn: I_RpcProxyIsValidMachineFn,
    pub GetClientAddressFn: I_RpcProxyGetClientAddressFn,
    pub GetConnectionTimeoutFn: I_RpcProxyGetConnectionTimeoutFn,
    pub PerformCalloutFn: I_RpcPerformCalloutFn,
    pub FreeCalloutStateFn: I_RpcFreeCalloutStateFn,
    pub GetClientSessionAndResourceUUIDFn: I_RpcProxyGetClientSessionAndResourceUUID,
    pub ProxyFilterIfFn: I_RpcProxyFilterIfFn,
    pub RpcProxyUpdatePerfCounterFn: I_RpcProxyUpdatePerfCounterFn,
    pub RpcProxyUpdatePerfCounterBackendServerFn: I_RpcProxyUpdatePerfCounterBackendServerFn,
}
#[test]
fn bindgen_test_layout_tagI_RpcProxyCallbackInterface() {
    assert_eq!(
        ::std::mem::size_of::<tagI_RpcProxyCallbackInterface>(),
        72usize,
        concat!("Size of: ", stringify!(tagI_RpcProxyCallbackInterface))
    );
    assert_eq!(
        ::std::mem::align_of::<tagI_RpcProxyCallbackInterface>(),
        8usize,
        concat!("Alignment of ", stringify!(tagI_RpcProxyCallbackInterface))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagI_RpcProxyCallbackInterface>())).IsValidMachineFn as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagI_RpcProxyCallbackInterface),
            "::",
            stringify!(IsValidMachineFn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagI_RpcProxyCallbackInterface>())).GetClientAddressFn
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagI_RpcProxyCallbackInterface),
            "::",
            stringify!(GetClientAddressFn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagI_RpcProxyCallbackInterface>())).GetConnectionTimeoutFn
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagI_RpcProxyCallbackInterface),
            "::",
            stringify!(GetConnectionTimeoutFn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagI_RpcProxyCallbackInterface>())).PerformCalloutFn as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagI_RpcProxyCallbackInterface),
            "::",
            stringify!(PerformCalloutFn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagI_RpcProxyCallbackInterface>())).FreeCalloutStateFn
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagI_RpcProxyCallbackInterface),
            "::",
            stringify!(FreeCalloutStateFn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagI_RpcProxyCallbackInterface>()))
                .GetClientSessionAndResourceUUIDFn as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagI_RpcProxyCallbackInterface),
            "::",
            stringify!(GetClientSessionAndResourceUUIDFn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagI_RpcProxyCallbackInterface>())).ProxyFilterIfFn as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagI_RpcProxyCallbackInterface),
            "::",
            stringify!(ProxyFilterIfFn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagI_RpcProxyCallbackInterface>())).RpcProxyUpdatePerfCounterFn
                as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagI_RpcProxyCallbackInterface),
            "::",
            stringify!(RpcProxyUpdatePerfCounterFn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagI_RpcProxyCallbackInterface>()))
                .RpcProxyUpdatePerfCounterBackendServerFn as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagI_RpcProxyCallbackInterface),
            "::",
            stringify!(RpcProxyUpdatePerfCounterBackendServerFn)
        )
    );
}
pub type I_RpcProxyCallbackInterface = tagI_RpcProxyCallbackInterface;
extern "C" {
    pub fn I_RpcProxyNewConnection(
        ConnectionType: ::std::os::raw::c_ulong,
        ServerAddress: *mut ::std::os::raw::c_ushort,
        ServerPort: *mut ::std::os::raw::c_ushort,
        MinConnTimeout: *mut ::std::os::raw::c_ushort,
        ConnectionParameter: *mut ::std::os::raw::c_void,
        CallOutState: *mut RDR_CALLOUT_STATE,
        ProxyCallbackInterface: *mut I_RpcProxyCallbackInterface,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcReplyToClientWithStatus(
        ConnectionParameter: *mut ::std::os::raw::c_void,
        RpcStatus: RPC_STATUS,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcRecordCalloutFailure(
        RpcStatus: RPC_STATUS,
        CallOutState: *mut RDR_CALLOUT_STATE,
        DllName: *mut ::std::os::raw::c_ushort,
    );
}
extern "C" {
    pub fn I_RpcMgmtEnableDedicatedThreadPool() -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcGetDefaultSD(ppSecurityDescriptor: *mut *mut ::std::os::raw::c_void) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcOpenClientProcess(
        Binding: RPC_BINDING_HANDLE,
        DesiredAccess: ::std::os::raw::c_ulong,
        ClientProcess: *mut *mut ::std::os::raw::c_void,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcBindingIsServerLocal(
        Binding: RPC_BINDING_HANDLE,
        ServerLocalFlag: *mut ::std::os::raw::c_uint,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcBindingSetPrivateOption(
        hBinding: RPC_BINDING_HANDLE,
        option: ::std::os::raw::c_ulong,
        optionValue: ULONG_PTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcServerSubscribeForDisconnectNotification(
        Binding: RPC_BINDING_HANDLE,
        hEvent: *mut ::std::os::raw::c_void,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcServerGetAssociationID(
        Binding: RPC_BINDING_HANDLE,
        AssociationID: *mut ::std::os::raw::c_ulong,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcServerDisableExceptionFilter() -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn I_RpcServerSubscribeForDisconnectNotification2(
        Binding: RPC_BINDING_HANDLE,
        hEvent: *mut ::std::os::raw::c_void,
        SubscriptionId: *mut UUID,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcServerUnsubscribeForDisconnectNotification(
        Binding: RPC_BINDING_HANDLE,
        SubscriptionId: UUID,
    ) -> RPC_STATUS;
}
pub type RPC_NS_HANDLE = *mut ::std::os::raw::c_void;
extern "C" {
    pub fn RpcNsBindingExportA(
        EntryNameSyntax: ::std::os::raw::c_ulong,
        EntryName: RPC_CSTR,
        IfSpec: RPC_IF_HANDLE,
        BindingVec: *mut RPC_BINDING_VECTOR,
        ObjectUuidVec: *mut UUID_VECTOR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsBindingUnexportA(
        EntryNameSyntax: ::std::os::raw::c_ulong,
        EntryName: RPC_CSTR,
        IfSpec: RPC_IF_HANDLE,
        ObjectUuidVec: *mut UUID_VECTOR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsBindingExportW(
        EntryNameSyntax: ::std::os::raw::c_ulong,
        EntryName: RPC_WSTR,
        IfSpec: RPC_IF_HANDLE,
        BindingVec: *mut RPC_BINDING_VECTOR,
        ObjectUuidVec: *mut UUID_VECTOR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsBindingUnexportW(
        EntryNameSyntax: ::std::os::raw::c_ulong,
        EntryName: RPC_WSTR,
        IfSpec: RPC_IF_HANDLE,
        ObjectUuidVec: *mut UUID_VECTOR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsBindingExportPnPA(
        EntryNameSyntax: ::std::os::raw::c_ulong,
        EntryName: RPC_CSTR,
        IfSpec: RPC_IF_HANDLE,
        ObjectVector: *mut UUID_VECTOR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsBindingUnexportPnPA(
        EntryNameSyntax: ::std::os::raw::c_ulong,
        EntryName: RPC_CSTR,
        IfSpec: RPC_IF_HANDLE,
        ObjectVector: *mut UUID_VECTOR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsBindingExportPnPW(
        EntryNameSyntax: ::std::os::raw::c_ulong,
        EntryName: RPC_WSTR,
        IfSpec: RPC_IF_HANDLE,
        ObjectVector: *mut UUID_VECTOR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsBindingUnexportPnPW(
        EntryNameSyntax: ::std::os::raw::c_ulong,
        EntryName: RPC_WSTR,
        IfSpec: RPC_IF_HANDLE,
        ObjectVector: *mut UUID_VECTOR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsBindingLookupBeginA(
        EntryNameSyntax: ::std::os::raw::c_ulong,
        EntryName: RPC_CSTR,
        IfSpec: RPC_IF_HANDLE,
        ObjUuid: *mut UUID,
        BindingMaxCount: ::std::os::raw::c_ulong,
        LookupContext: *mut RPC_NS_HANDLE,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsBindingLookupBeginW(
        EntryNameSyntax: ::std::os::raw::c_ulong,
        EntryName: RPC_WSTR,
        IfSpec: RPC_IF_HANDLE,
        ObjUuid: *mut UUID,
        BindingMaxCount: ::std::os::raw::c_ulong,
        LookupContext: *mut RPC_NS_HANDLE,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsBindingLookupNext(
        LookupContext: RPC_NS_HANDLE,
        BindingVec: *mut *mut RPC_BINDING_VECTOR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsBindingLookupDone(LookupContext: *mut RPC_NS_HANDLE) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsGroupDeleteA(
        GroupNameSyntax: ::std::os::raw::c_ulong,
        GroupName: RPC_CSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsGroupMbrAddA(
        GroupNameSyntax: ::std::os::raw::c_ulong,
        GroupName: RPC_CSTR,
        MemberNameSyntax: ::std::os::raw::c_ulong,
        MemberName: RPC_CSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsGroupMbrRemoveA(
        GroupNameSyntax: ::std::os::raw::c_ulong,
        GroupName: RPC_CSTR,
        MemberNameSyntax: ::std::os::raw::c_ulong,
        MemberName: RPC_CSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsGroupMbrInqBeginA(
        GroupNameSyntax: ::std::os::raw::c_ulong,
        GroupName: RPC_CSTR,
        MemberNameSyntax: ::std::os::raw::c_ulong,
        InquiryContext: *mut RPC_NS_HANDLE,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsGroupMbrInqNextA(
        InquiryContext: RPC_NS_HANDLE,
        MemberName: *mut RPC_CSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsGroupDeleteW(
        GroupNameSyntax: ::std::os::raw::c_ulong,
        GroupName: RPC_WSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsGroupMbrAddW(
        GroupNameSyntax: ::std::os::raw::c_ulong,
        GroupName: RPC_WSTR,
        MemberNameSyntax: ::std::os::raw::c_ulong,
        MemberName: RPC_WSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsGroupMbrRemoveW(
        GroupNameSyntax: ::std::os::raw::c_ulong,
        GroupName: RPC_WSTR,
        MemberNameSyntax: ::std::os::raw::c_ulong,
        MemberName: RPC_WSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsGroupMbrInqBeginW(
        GroupNameSyntax: ::std::os::raw::c_ulong,
        GroupName: RPC_WSTR,
        MemberNameSyntax: ::std::os::raw::c_ulong,
        InquiryContext: *mut RPC_NS_HANDLE,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsGroupMbrInqNextW(
        InquiryContext: RPC_NS_HANDLE,
        MemberName: *mut RPC_WSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsGroupMbrInqDone(InquiryContext: *mut RPC_NS_HANDLE) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsProfileDeleteA(
        ProfileNameSyntax: ::std::os::raw::c_ulong,
        ProfileName: RPC_CSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsProfileEltAddA(
        ProfileNameSyntax: ::std::os::raw::c_ulong,
        ProfileName: RPC_CSTR,
        IfId: *mut RPC_IF_ID,
        MemberNameSyntax: ::std::os::raw::c_ulong,
        MemberName: RPC_CSTR,
        Priority: ::std::os::raw::c_ulong,
        Annotation: RPC_CSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsProfileEltRemoveA(
        ProfileNameSyntax: ::std::os::raw::c_ulong,
        ProfileName: RPC_CSTR,
        IfId: *mut RPC_IF_ID,
        MemberNameSyntax: ::std::os::raw::c_ulong,
        MemberName: RPC_CSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsProfileEltInqBeginA(
        ProfileNameSyntax: ::std::os::raw::c_ulong,
        ProfileName: RPC_CSTR,
        InquiryType: ::std::os::raw::c_ulong,
        IfId: *mut RPC_IF_ID,
        VersOption: ::std::os::raw::c_ulong,
        MemberNameSyntax: ::std::os::raw::c_ulong,
        MemberName: RPC_CSTR,
        InquiryContext: *mut RPC_NS_HANDLE,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsProfileEltInqNextA(
        InquiryContext: RPC_NS_HANDLE,
        IfId: *mut RPC_IF_ID,
        MemberName: *mut RPC_CSTR,
        Priority: *mut ::std::os::raw::c_ulong,
        Annotation: *mut RPC_CSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsProfileDeleteW(
        ProfileNameSyntax: ::std::os::raw::c_ulong,
        ProfileName: RPC_WSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsProfileEltAddW(
        ProfileNameSyntax: ::std::os::raw::c_ulong,
        ProfileName: RPC_WSTR,
        IfId: *mut RPC_IF_ID,
        MemberNameSyntax: ::std::os::raw::c_ulong,
        MemberName: RPC_WSTR,
        Priority: ::std::os::raw::c_ulong,
        Annotation: RPC_WSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsProfileEltRemoveW(
        ProfileNameSyntax: ::std::os::raw::c_ulong,
        ProfileName: RPC_WSTR,
        IfId: *mut RPC_IF_ID,
        MemberNameSyntax: ::std::os::raw::c_ulong,
        MemberName: RPC_WSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsProfileEltInqBeginW(
        ProfileNameSyntax: ::std::os::raw::c_ulong,
        ProfileName: RPC_WSTR,
        InquiryType: ::std::os::raw::c_ulong,
        IfId: *mut RPC_IF_ID,
        VersOption: ::std::os::raw::c_ulong,
        MemberNameSyntax: ::std::os::raw::c_ulong,
        MemberName: RPC_WSTR,
        InquiryContext: *mut RPC_NS_HANDLE,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsProfileEltInqNextW(
        InquiryContext: RPC_NS_HANDLE,
        IfId: *mut RPC_IF_ID,
        MemberName: *mut RPC_WSTR,
        Priority: *mut ::std::os::raw::c_ulong,
        Annotation: *mut RPC_WSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsProfileEltInqDone(InquiryContext: *mut RPC_NS_HANDLE) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsEntryObjectInqBeginA(
        EntryNameSyntax: ::std::os::raw::c_ulong,
        EntryName: RPC_CSTR,
        InquiryContext: *mut RPC_NS_HANDLE,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsEntryObjectInqBeginW(
        EntryNameSyntax: ::std::os::raw::c_ulong,
        EntryName: RPC_WSTR,
        InquiryContext: *mut RPC_NS_HANDLE,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsEntryObjectInqNext(InquiryContext: RPC_NS_HANDLE, ObjUuid: *mut UUID)
        -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsEntryObjectInqDone(InquiryContext: *mut RPC_NS_HANDLE) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsEntryExpandNameA(
        EntryNameSyntax: ::std::os::raw::c_ulong,
        EntryName: RPC_CSTR,
        ExpandedName: *mut RPC_CSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsMgmtBindingUnexportA(
        EntryNameSyntax: ::std::os::raw::c_ulong,
        EntryName: RPC_CSTR,
        IfId: *mut RPC_IF_ID,
        VersOption: ::std::os::raw::c_ulong,
        ObjectUuidVec: *mut UUID_VECTOR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsMgmtEntryCreateA(
        EntryNameSyntax: ::std::os::raw::c_ulong,
        EntryName: RPC_CSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsMgmtEntryDeleteA(
        EntryNameSyntax: ::std::os::raw::c_ulong,
        EntryName: RPC_CSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsMgmtEntryInqIfIdsA(
        EntryNameSyntax: ::std::os::raw::c_ulong,
        EntryName: RPC_CSTR,
        IfIdVec: *mut *mut RPC_IF_ID_VECTOR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsMgmtHandleSetExpAge(
        NsHandle: RPC_NS_HANDLE,
        ExpirationAge: ::std::os::raw::c_ulong,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsMgmtInqExpAge(ExpirationAge: *mut ::std::os::raw::c_ulong) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsMgmtSetExpAge(ExpirationAge: ::std::os::raw::c_ulong) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsEntryExpandNameW(
        EntryNameSyntax: ::std::os::raw::c_ulong,
        EntryName: RPC_WSTR,
        ExpandedName: *mut RPC_WSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsMgmtBindingUnexportW(
        EntryNameSyntax: ::std::os::raw::c_ulong,
        EntryName: RPC_WSTR,
        IfId: *mut RPC_IF_ID,
        VersOption: ::std::os::raw::c_ulong,
        ObjectUuidVec: *mut UUID_VECTOR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsMgmtEntryCreateW(
        EntryNameSyntax: ::std::os::raw::c_ulong,
        EntryName: RPC_WSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsMgmtEntryDeleteW(
        EntryNameSyntax: ::std::os::raw::c_ulong,
        EntryName: RPC_WSTR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsMgmtEntryInqIfIdsW(
        EntryNameSyntax: ::std::os::raw::c_ulong,
        EntryName: RPC_WSTR,
        IfIdVec: *mut *mut RPC_IF_ID_VECTOR,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsBindingImportBeginA(
        EntryNameSyntax: ::std::os::raw::c_ulong,
        EntryName: RPC_CSTR,
        IfSpec: RPC_IF_HANDLE,
        ObjUuid: *mut UUID,
        ImportContext: *mut RPC_NS_HANDLE,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsBindingImportBeginW(
        EntryNameSyntax: ::std::os::raw::c_ulong,
        EntryName: RPC_WSTR,
        IfSpec: RPC_IF_HANDLE,
        ObjUuid: *mut UUID,
        ImportContext: *mut RPC_NS_HANDLE,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsBindingImportNext(
        ImportContext: RPC_NS_HANDLE,
        Binding: *mut RPC_BINDING_HANDLE,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsBindingImportDone(ImportContext: *mut RPC_NS_HANDLE) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcNsBindingSelect(
        BindingVec: *mut RPC_BINDING_VECTOR,
        Binding: *mut RPC_BINDING_HANDLE,
    ) -> RPC_STATUS;
}
pub const _RPC_NOTIFICATION_TYPES_RpcNotificationTypeNone: _RPC_NOTIFICATION_TYPES = 0;
pub const _RPC_NOTIFICATION_TYPES_RpcNotificationTypeEvent: _RPC_NOTIFICATION_TYPES = 1;
pub const _RPC_NOTIFICATION_TYPES_RpcNotificationTypeApc: _RPC_NOTIFICATION_TYPES = 2;
pub const _RPC_NOTIFICATION_TYPES_RpcNotificationTypeIoc: _RPC_NOTIFICATION_TYPES = 3;
pub const _RPC_NOTIFICATION_TYPES_RpcNotificationTypeHwnd: _RPC_NOTIFICATION_TYPES = 4;
pub const _RPC_NOTIFICATION_TYPES_RpcNotificationTypeCallback: _RPC_NOTIFICATION_TYPES = 5;
pub type _RPC_NOTIFICATION_TYPES = ::std::os::raw::c_int;
pub use self::_RPC_NOTIFICATION_TYPES as RPC_NOTIFICATION_TYPES;
pub const _RPC_ASYNC_EVENT_RpcCallComplete: _RPC_ASYNC_EVENT = 0;
pub const _RPC_ASYNC_EVENT_RpcSendComplete: _RPC_ASYNC_EVENT = 1;
pub const _RPC_ASYNC_EVENT_RpcReceiveComplete: _RPC_ASYNC_EVENT = 2;
pub const _RPC_ASYNC_EVENT_RpcClientDisconnect: _RPC_ASYNC_EVENT = 3;
pub const _RPC_ASYNC_EVENT_RpcClientCancel: _RPC_ASYNC_EVENT = 4;
pub type _RPC_ASYNC_EVENT = ::std::os::raw::c_int;
pub use self::_RPC_ASYNC_EVENT as RPC_ASYNC_EVENT;
pub type PFN_RPCNOTIFICATION_ROUTINE = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: *mut _RPC_ASYNC_STATE,
        arg2: *mut ::std::os::raw::c_void,
        arg3: RPC_ASYNC_EVENT,
    ),
>;
#[repr(C)]
#[derive(Copy, Clone)]
pub union _RPC_ASYNC_NOTIFICATION_INFO {
    pub APC: _RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_1,
    pub IOC: _RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_2,
    pub HWND: _RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_3,
    pub hEvent: HANDLE,
    pub NotificationRoutine: PFN_RPCNOTIFICATION_ROUTINE,
    _bindgen_union_align: [u64; 4usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_1 {
    pub NotificationRoutine: PFN_RPCNOTIFICATION_ROUTINE,
    pub hThread: HANDLE,
}
#[test]
fn bindgen_test_layout__RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_1>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_1>()))
                .NotificationRoutine as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_1),
            "::",
            stringify!(NotificationRoutine)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_1>())).hThread
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_1),
            "::",
            stringify!(hThread)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_2 {
    pub hIOPort: HANDLE,
    pub dwNumberOfBytesTransferred: DWORD,
    pub dwCompletionKey: DWORD_PTR,
    pub lpOverlapped: LPOVERLAPPED,
}
#[test]
fn bindgen_test_layout__RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_2>(),
        32usize,
        concat!(
            "Size of: ",
            stringify!(_RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_2>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_2>())).hIOPort
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_2),
            "::",
            stringify!(hIOPort)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_2>()))
                .dwNumberOfBytesTransferred as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_2),
            "::",
            stringify!(dwNumberOfBytesTransferred)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_2>())).dwCompletionKey
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_2),
            "::",
            stringify!(dwCompletionKey)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_2>())).lpOverlapped
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_2),
            "::",
            stringify!(lpOverlapped)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_3 {
    pub hWnd: HWND,
    pub Msg: UINT,
}
#[test]
fn bindgen_test_layout__RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_3() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_3>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_3)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_3>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_3)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_3>())).hWnd as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_3),
            "::",
            stringify!(hWnd)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_3>())).Msg as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_ASYNC_NOTIFICATION_INFO__bindgen_ty_3),
            "::",
            stringify!(Msg)
        )
    );
}
#[test]
fn bindgen_test_layout__RPC_ASYNC_NOTIFICATION_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_ASYNC_NOTIFICATION_INFO>(),
        32usize,
        concat!("Size of: ", stringify!(_RPC_ASYNC_NOTIFICATION_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_ASYNC_NOTIFICATION_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_RPC_ASYNC_NOTIFICATION_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_ASYNC_NOTIFICATION_INFO>())).APC as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_ASYNC_NOTIFICATION_INFO),
            "::",
            stringify!(APC)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_ASYNC_NOTIFICATION_INFO>())).IOC as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_ASYNC_NOTIFICATION_INFO),
            "::",
            stringify!(IOC)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_ASYNC_NOTIFICATION_INFO>())).HWND as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_ASYNC_NOTIFICATION_INFO),
            "::",
            stringify!(HWND)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_ASYNC_NOTIFICATION_INFO>())).hEvent as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_ASYNC_NOTIFICATION_INFO),
            "::",
            stringify!(hEvent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_ASYNC_NOTIFICATION_INFO>())).NotificationRoutine as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_ASYNC_NOTIFICATION_INFO),
            "::",
            stringify!(NotificationRoutine)
        )
    );
}
pub type RPC_ASYNC_NOTIFICATION_INFO = _RPC_ASYNC_NOTIFICATION_INFO;
pub type PRPC_ASYNC_NOTIFICATION_INFO = *mut _RPC_ASYNC_NOTIFICATION_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _RPC_ASYNC_STATE {
    pub Size: ::std::os::raw::c_uint,
    pub Signature: ::std::os::raw::c_ulong,
    pub Lock: ::std::os::raw::c_long,
    pub Flags: ::std::os::raw::c_ulong,
    pub StubInfo: *mut ::std::os::raw::c_void,
    pub UserInfo: *mut ::std::os::raw::c_void,
    pub RuntimeInfo: *mut ::std::os::raw::c_void,
    pub Event: RPC_ASYNC_EVENT,
    pub NotificationType: RPC_NOTIFICATION_TYPES,
    pub u: RPC_ASYNC_NOTIFICATION_INFO,
    pub Reserved: [LONG_PTR; 4usize],
}
#[test]
fn bindgen_test_layout__RPC_ASYNC_STATE() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_ASYNC_STATE>(),
        112usize,
        concat!("Size of: ", stringify!(_RPC_ASYNC_STATE))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_ASYNC_STATE>(),
        8usize,
        concat!("Alignment of ", stringify!(_RPC_ASYNC_STATE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_ASYNC_STATE>())).Size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_ASYNC_STATE),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_ASYNC_STATE>())).Signature as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_ASYNC_STATE),
            "::",
            stringify!(Signature)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_ASYNC_STATE>())).Lock as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_ASYNC_STATE),
            "::",
            stringify!(Lock)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_ASYNC_STATE>())).Flags as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_ASYNC_STATE),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_ASYNC_STATE>())).StubInfo as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_ASYNC_STATE),
            "::",
            stringify!(StubInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_ASYNC_STATE>())).UserInfo as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_ASYNC_STATE),
            "::",
            stringify!(UserInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_ASYNC_STATE>())).RuntimeInfo as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_ASYNC_STATE),
            "::",
            stringify!(RuntimeInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_ASYNC_STATE>())).Event as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_ASYNC_STATE),
            "::",
            stringify!(Event)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_ASYNC_STATE>())).NotificationType as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_ASYNC_STATE),
            "::",
            stringify!(NotificationType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_ASYNC_STATE>())).u as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_ASYNC_STATE),
            "::",
            stringify!(u)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RPC_ASYNC_STATE>())).Reserved as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_ASYNC_STATE),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type RPC_ASYNC_STATE = _RPC_ASYNC_STATE;
pub type PRPC_ASYNC_STATE = *mut _RPC_ASYNC_STATE;
extern "C" {
    pub fn RpcAsyncRegisterInfo(pAsync: PRPC_ASYNC_STATE) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcAsyncInitializeHandle(
        pAsync: PRPC_ASYNC_STATE,
        Size: ::std::os::raw::c_uint,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcAsyncGetCallStatus(pAsync: PRPC_ASYNC_STATE) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcAsyncCompleteCall(
        pAsync: PRPC_ASYNC_STATE,
        Reply: *mut ::std::os::raw::c_void,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcAsyncAbortCall(
        pAsync: PRPC_ASYNC_STATE,
        ExceptionCode: ::std::os::raw::c_ulong,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcAsyncCancelCall(pAsync: PRPC_ASYNC_STATE, fAbort: BOOL) -> RPC_STATUS;
}
pub const tagExtendedErrorParamTypes_eeptAnsiString: tagExtendedErrorParamTypes = 1;
pub const tagExtendedErrorParamTypes_eeptUnicodeString: tagExtendedErrorParamTypes = 2;
pub const tagExtendedErrorParamTypes_eeptLongVal: tagExtendedErrorParamTypes = 3;
pub const tagExtendedErrorParamTypes_eeptShortVal: tagExtendedErrorParamTypes = 4;
pub const tagExtendedErrorParamTypes_eeptPointerVal: tagExtendedErrorParamTypes = 5;
pub const tagExtendedErrorParamTypes_eeptNone: tagExtendedErrorParamTypes = 6;
pub const tagExtendedErrorParamTypes_eeptBinary: tagExtendedErrorParamTypes = 7;
pub type tagExtendedErrorParamTypes = ::std::os::raw::c_int;
pub use self::tagExtendedErrorParamTypes as ExtendedErrorParamTypes;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagBinaryParam {
    pub Buffer: *mut ::std::os::raw::c_void,
    pub Size: ::std::os::raw::c_short,
}
#[test]
fn bindgen_test_layout_tagBinaryParam() {
    assert_eq!(
        ::std::mem::size_of::<tagBinaryParam>(),
        16usize,
        concat!("Size of: ", stringify!(tagBinaryParam))
    );
    assert_eq!(
        ::std::mem::align_of::<tagBinaryParam>(),
        8usize,
        concat!("Alignment of ", stringify!(tagBinaryParam))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBinaryParam>())).Buffer as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBinaryParam),
            "::",
            stringify!(Buffer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBinaryParam>())).Size as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBinaryParam),
            "::",
            stringify!(Size)
        )
    );
}
pub type BinaryParam = tagBinaryParam;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagRPC_EE_INFO_PARAM {
    pub ParameterType: ExtendedErrorParamTypes,
    pub u: tagRPC_EE_INFO_PARAM__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tagRPC_EE_INFO_PARAM__bindgen_ty_1 {
    pub AnsiString: LPSTR,
    pub UnicodeString: LPWSTR,
    pub LVal: ::std::os::raw::c_long,
    pub SVal: ::std::os::raw::c_short,
    pub PVal: ULONGLONG,
    pub BVal: BinaryParam,
    _bindgen_union_align: [u64; 2usize],
}
#[test]
fn bindgen_test_layout_tagRPC_EE_INFO_PARAM__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagRPC_EE_INFO_PARAM__bindgen_ty_1>(),
        16usize,
        concat!("Size of: ", stringify!(tagRPC_EE_INFO_PARAM__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRPC_EE_INFO_PARAM__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tagRPC_EE_INFO_PARAM__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_EE_INFO_PARAM__bindgen_ty_1>())).AnsiString as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_EE_INFO_PARAM__bindgen_ty_1),
            "::",
            stringify!(AnsiString)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_EE_INFO_PARAM__bindgen_ty_1>())).UnicodeString as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_EE_INFO_PARAM__bindgen_ty_1),
            "::",
            stringify!(UnicodeString)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_EE_INFO_PARAM__bindgen_ty_1>())).LVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_EE_INFO_PARAM__bindgen_ty_1),
            "::",
            stringify!(LVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_EE_INFO_PARAM__bindgen_ty_1>())).SVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_EE_INFO_PARAM__bindgen_ty_1),
            "::",
            stringify!(SVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_EE_INFO_PARAM__bindgen_ty_1>())).PVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_EE_INFO_PARAM__bindgen_ty_1),
            "::",
            stringify!(PVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_EE_INFO_PARAM__bindgen_ty_1>())).BVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_EE_INFO_PARAM__bindgen_ty_1),
            "::",
            stringify!(BVal)
        )
    );
}
#[test]
fn bindgen_test_layout_tagRPC_EE_INFO_PARAM() {
    assert_eq!(
        ::std::mem::size_of::<tagRPC_EE_INFO_PARAM>(),
        24usize,
        concat!("Size of: ", stringify!(tagRPC_EE_INFO_PARAM))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRPC_EE_INFO_PARAM>(),
        8usize,
        concat!("Alignment of ", stringify!(tagRPC_EE_INFO_PARAM))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_EE_INFO_PARAM>())).ParameterType as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_EE_INFO_PARAM),
            "::",
            stringify!(ParameterType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRPC_EE_INFO_PARAM>())).u as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_EE_INFO_PARAM),
            "::",
            stringify!(u)
        )
    );
}
pub type RPC_EE_INFO_PARAM = tagRPC_EE_INFO_PARAM;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagRPC_EXTENDED_ERROR_INFO {
    pub Version: ULONG,
    pub ComputerName: LPWSTR,
    pub ProcessID: ULONG,
    pub u: tagRPC_EXTENDED_ERROR_INFO__bindgen_ty_1,
    pub GeneratingComponent: ULONG,
    pub Status: ULONG,
    pub DetectionLocation: USHORT,
    pub Flags: USHORT,
    pub NumberOfParameters: ::std::os::raw::c_int,
    pub Parameters: [RPC_EE_INFO_PARAM; 4usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tagRPC_EXTENDED_ERROR_INFO__bindgen_ty_1 {
    pub SystemTime: SYSTEMTIME,
    pub FileTime: FILETIME,
    _bindgen_union_align: [u32; 4usize],
}
#[test]
fn bindgen_test_layout_tagRPC_EXTENDED_ERROR_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagRPC_EXTENDED_ERROR_INFO__bindgen_ty_1>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(tagRPC_EXTENDED_ERROR_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tagRPC_EXTENDED_ERROR_INFO__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tagRPC_EXTENDED_ERROR_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_EXTENDED_ERROR_INFO__bindgen_ty_1>())).SystemTime
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_EXTENDED_ERROR_INFO__bindgen_ty_1),
            "::",
            stringify!(SystemTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_EXTENDED_ERROR_INFO__bindgen_ty_1>())).FileTime
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_EXTENDED_ERROR_INFO__bindgen_ty_1),
            "::",
            stringify!(FileTime)
        )
    );
}
#[test]
fn bindgen_test_layout_tagRPC_EXTENDED_ERROR_INFO() {
    assert_eq!(
        ::std::mem::size_of::<tagRPC_EXTENDED_ERROR_INFO>(),
        152usize,
        concat!("Size of: ", stringify!(tagRPC_EXTENDED_ERROR_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRPC_EXTENDED_ERROR_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(tagRPC_EXTENDED_ERROR_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_EXTENDED_ERROR_INFO>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_EXTENDED_ERROR_INFO),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_EXTENDED_ERROR_INFO>())).ComputerName as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_EXTENDED_ERROR_INFO),
            "::",
            stringify!(ComputerName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_EXTENDED_ERROR_INFO>())).ProcessID as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_EXTENDED_ERROR_INFO),
            "::",
            stringify!(ProcessID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRPC_EXTENDED_ERROR_INFO>())).u as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_EXTENDED_ERROR_INFO),
            "::",
            stringify!(u)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_EXTENDED_ERROR_INFO>())).GeneratingComponent as *const _
                as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_EXTENDED_ERROR_INFO),
            "::",
            stringify!(GeneratingComponent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_EXTENDED_ERROR_INFO>())).Status as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_EXTENDED_ERROR_INFO),
            "::",
            stringify!(Status)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_EXTENDED_ERROR_INFO>())).DetectionLocation as *const _
                as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_EXTENDED_ERROR_INFO),
            "::",
            stringify!(DetectionLocation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_EXTENDED_ERROR_INFO>())).Flags as *const _ as usize
        },
        46usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_EXTENDED_ERROR_INFO),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_EXTENDED_ERROR_INFO>())).NumberOfParameters as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_EXTENDED_ERROR_INFO),
            "::",
            stringify!(NumberOfParameters)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_EXTENDED_ERROR_INFO>())).Parameters as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_EXTENDED_ERROR_INFO),
            "::",
            stringify!(Parameters)
        )
    );
}
pub type RPC_EXTENDED_ERROR_INFO = tagRPC_EXTENDED_ERROR_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagRPC_ERROR_ENUM_HANDLE {
    pub Signature: ULONG,
    pub CurrentPos: *mut ::std::os::raw::c_void,
    pub Head: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_tagRPC_ERROR_ENUM_HANDLE() {
    assert_eq!(
        ::std::mem::size_of::<tagRPC_ERROR_ENUM_HANDLE>(),
        24usize,
        concat!("Size of: ", stringify!(tagRPC_ERROR_ENUM_HANDLE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRPC_ERROR_ENUM_HANDLE>(),
        8usize,
        concat!("Alignment of ", stringify!(tagRPC_ERROR_ENUM_HANDLE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_ERROR_ENUM_HANDLE>())).Signature as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_ERROR_ENUM_HANDLE),
            "::",
            stringify!(Signature)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_ERROR_ENUM_HANDLE>())).CurrentPos as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_ERROR_ENUM_HANDLE),
            "::",
            stringify!(CurrentPos)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRPC_ERROR_ENUM_HANDLE>())).Head as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_ERROR_ENUM_HANDLE),
            "::",
            stringify!(Head)
        )
    );
}
pub type RPC_ERROR_ENUM_HANDLE = tagRPC_ERROR_ENUM_HANDLE;
extern "C" {
    pub fn RpcErrorStartEnumeration(EnumHandle: *mut RPC_ERROR_ENUM_HANDLE) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcErrorGetNextRecord(
        EnumHandle: *mut RPC_ERROR_ENUM_HANDLE,
        CopyStrings: BOOL,
        ErrorInfo: *mut RPC_EXTENDED_ERROR_INFO,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcErrorEndEnumeration(EnumHandle: *mut RPC_ERROR_ENUM_HANDLE) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcErrorResetEnumeration(EnumHandle: *mut RPC_ERROR_ENUM_HANDLE) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcErrorGetNumberOfRecords(
        EnumHandle: *mut RPC_ERROR_ENUM_HANDLE,
        Records: *mut ::std::os::raw::c_int,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcErrorSaveErrorInfo(
        EnumHandle: *mut RPC_ERROR_ENUM_HANDLE,
        ErrorBlob: *mut PVOID,
        BlobSize: *mut size_t,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcErrorLoadErrorInfo(
        ErrorBlob: PVOID,
        BlobSize: size_t,
        EnumHandle: *mut RPC_ERROR_ENUM_HANDLE,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcErrorAddRecord(ErrorInfo: *mut RPC_EXTENDED_ERROR_INFO) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcErrorClearInformation();
}
extern "C" {
    pub fn RpcAsyncCleanupThread(dwTimeout: DWORD) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcGetAuthorizationContextForClient(
        ClientBinding: RPC_BINDING_HANDLE,
        ImpersonateOnReturn: BOOL,
        Reserved1: PVOID,
        pExpirationTime: PLARGE_INTEGER,
        Reserved2: LUID,
        Reserved3: DWORD,
        Reserved4: PVOID,
        pAuthzClientContext: *mut PVOID,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcFreeAuthorizationContext(pAuthzClientContext: *mut PVOID) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcSsContextLockExclusive(
        ServerBindingHandle: RPC_BINDING_HANDLE,
        UserContext: PVOID,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcSsContextLockShared(
        ServerBindingHandle: RPC_BINDING_HANDLE,
        UserContext: PVOID,
    ) -> RPC_STATUS;
}
pub const tagRpcLocalAddressFormat_rlafInvalid: tagRpcLocalAddressFormat = 0;
pub const tagRpcLocalAddressFormat_rlafIPv4: tagRpcLocalAddressFormat = 1;
pub const tagRpcLocalAddressFormat_rlafIPv6: tagRpcLocalAddressFormat = 2;
pub type tagRpcLocalAddressFormat = ::std::os::raw::c_int;
pub use self::tagRpcLocalAddressFormat as RpcLocalAddressFormat;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RPC_CALL_LOCAL_ADDRESS_V1 {
    pub Version: ::std::os::raw::c_uint,
    pub Buffer: *mut ::std::os::raw::c_void,
    pub BufferSize: ::std::os::raw::c_ulong,
    pub AddressFormat: RpcLocalAddressFormat,
}
#[test]
fn bindgen_test_layout__RPC_CALL_LOCAL_ADDRESS_V1() {
    assert_eq!(
        ::std::mem::size_of::<_RPC_CALL_LOCAL_ADDRESS_V1>(),
        24usize,
        concat!("Size of: ", stringify!(_RPC_CALL_LOCAL_ADDRESS_V1))
    );
    assert_eq!(
        ::std::mem::align_of::<_RPC_CALL_LOCAL_ADDRESS_V1>(),
        8usize,
        concat!("Alignment of ", stringify!(_RPC_CALL_LOCAL_ADDRESS_V1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_CALL_LOCAL_ADDRESS_V1>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_CALL_LOCAL_ADDRESS_V1),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_CALL_LOCAL_ADDRESS_V1>())).Buffer as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_CALL_LOCAL_ADDRESS_V1),
            "::",
            stringify!(Buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_CALL_LOCAL_ADDRESS_V1>())).BufferSize as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_CALL_LOCAL_ADDRESS_V1),
            "::",
            stringify!(BufferSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RPC_CALL_LOCAL_ADDRESS_V1>())).AddressFormat as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_RPC_CALL_LOCAL_ADDRESS_V1),
            "::",
            stringify!(AddressFormat)
        )
    );
}
pub type RPC_CALL_LOCAL_ADDRESS_V1 = _RPC_CALL_LOCAL_ADDRESS_V1;
pub type PRPC_CALL_LOCAL_ADDRESS_V1 = *mut _RPC_CALL_LOCAL_ADDRESS_V1;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagRPC_CALL_ATTRIBUTES_V1_W {
    pub Version: ::std::os::raw::c_uint,
    pub Flags: ::std::os::raw::c_ulong,
    pub ServerPrincipalNameBufferLength: ::std::os::raw::c_ulong,
    pub ServerPrincipalName: *mut ::std::os::raw::c_ushort,
    pub ClientPrincipalNameBufferLength: ::std::os::raw::c_ulong,
    pub ClientPrincipalName: *mut ::std::os::raw::c_ushort,
    pub AuthenticationLevel: ::std::os::raw::c_ulong,
    pub AuthenticationService: ::std::os::raw::c_ulong,
    pub NullSession: BOOL,
}
#[test]
fn bindgen_test_layout_tagRPC_CALL_ATTRIBUTES_V1_W() {
    assert_eq!(
        ::std::mem::size_of::<tagRPC_CALL_ATTRIBUTES_V1_W>(),
        56usize,
        concat!("Size of: ", stringify!(tagRPC_CALL_ATTRIBUTES_V1_W))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRPC_CALL_ATTRIBUTES_V1_W>(),
        8usize,
        concat!("Alignment of ", stringify!(tagRPC_CALL_ATTRIBUTES_V1_W))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V1_W>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V1_W),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V1_W>())).Flags as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V1_W),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V1_W>())).ServerPrincipalNameBufferLength
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V1_W),
            "::",
            stringify!(ServerPrincipalNameBufferLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V1_W>())).ServerPrincipalName as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V1_W),
            "::",
            stringify!(ServerPrincipalName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V1_W>())).ClientPrincipalNameBufferLength
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V1_W),
            "::",
            stringify!(ClientPrincipalNameBufferLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V1_W>())).ClientPrincipalName as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V1_W),
            "::",
            stringify!(ClientPrincipalName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V1_W>())).AuthenticationLevel as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V1_W),
            "::",
            stringify!(AuthenticationLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V1_W>())).AuthenticationService
                as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V1_W),
            "::",
            stringify!(AuthenticationService)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V1_W>())).NullSession as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V1_W),
            "::",
            stringify!(NullSession)
        )
    );
}
pub type RPC_CALL_ATTRIBUTES_V1_W = tagRPC_CALL_ATTRIBUTES_V1_W;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagRPC_CALL_ATTRIBUTES_V1_A {
    pub Version: ::std::os::raw::c_uint,
    pub Flags: ::std::os::raw::c_ulong,
    pub ServerPrincipalNameBufferLength: ::std::os::raw::c_ulong,
    pub ServerPrincipalName: *mut ::std::os::raw::c_uchar,
    pub ClientPrincipalNameBufferLength: ::std::os::raw::c_ulong,
    pub ClientPrincipalName: *mut ::std::os::raw::c_uchar,
    pub AuthenticationLevel: ::std::os::raw::c_ulong,
    pub AuthenticationService: ::std::os::raw::c_ulong,
    pub NullSession: BOOL,
}
#[test]
fn bindgen_test_layout_tagRPC_CALL_ATTRIBUTES_V1_A() {
    assert_eq!(
        ::std::mem::size_of::<tagRPC_CALL_ATTRIBUTES_V1_A>(),
        56usize,
        concat!("Size of: ", stringify!(tagRPC_CALL_ATTRIBUTES_V1_A))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRPC_CALL_ATTRIBUTES_V1_A>(),
        8usize,
        concat!("Alignment of ", stringify!(tagRPC_CALL_ATTRIBUTES_V1_A))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V1_A>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V1_A),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V1_A>())).Flags as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V1_A),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V1_A>())).ServerPrincipalNameBufferLength
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V1_A),
            "::",
            stringify!(ServerPrincipalNameBufferLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V1_A>())).ServerPrincipalName as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V1_A),
            "::",
            stringify!(ServerPrincipalName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V1_A>())).ClientPrincipalNameBufferLength
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V1_A),
            "::",
            stringify!(ClientPrincipalNameBufferLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V1_A>())).ClientPrincipalName as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V1_A),
            "::",
            stringify!(ClientPrincipalName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V1_A>())).AuthenticationLevel as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V1_A),
            "::",
            stringify!(AuthenticationLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V1_A>())).AuthenticationService
                as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V1_A),
            "::",
            stringify!(AuthenticationService)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V1_A>())).NullSession as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V1_A),
            "::",
            stringify!(NullSession)
        )
    );
}
pub type RPC_CALL_ATTRIBUTES_V1_A = tagRPC_CALL_ATTRIBUTES_V1_A;
pub const tagRpcCallType_rctInvalid: tagRpcCallType = 0;
pub const tagRpcCallType_rctNormal: tagRpcCallType = 1;
pub const tagRpcCallType_rctTraining: tagRpcCallType = 2;
pub const tagRpcCallType_rctGuaranteed: tagRpcCallType = 3;
pub type tagRpcCallType = ::std::os::raw::c_int;
pub use self::tagRpcCallType as RpcCallType;
pub const tagRpcCallClientLocality_rcclInvalid: tagRpcCallClientLocality = 0;
pub const tagRpcCallClientLocality_rcclLocal: tagRpcCallClientLocality = 1;
pub const tagRpcCallClientLocality_rcclRemote: tagRpcCallClientLocality = 2;
pub const tagRpcCallClientLocality_rcclClientUnknownLocality: tagRpcCallClientLocality = 3;
pub type tagRpcCallClientLocality = ::std::os::raw::c_int;
pub use self::tagRpcCallClientLocality as RpcCallClientLocality;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagRPC_CALL_ATTRIBUTES_V2_W {
    pub Version: ::std::os::raw::c_uint,
    pub Flags: ::std::os::raw::c_ulong,
    pub ServerPrincipalNameBufferLength: ::std::os::raw::c_ulong,
    pub ServerPrincipalName: *mut ::std::os::raw::c_ushort,
    pub ClientPrincipalNameBufferLength: ::std::os::raw::c_ulong,
    pub ClientPrincipalName: *mut ::std::os::raw::c_ushort,
    pub AuthenticationLevel: ::std::os::raw::c_ulong,
    pub AuthenticationService: ::std::os::raw::c_ulong,
    pub NullSession: BOOL,
    pub KernelModeCaller: BOOL,
    pub ProtocolSequence: ::std::os::raw::c_ulong,
    pub IsClientLocal: RpcCallClientLocality,
    pub ClientPID: HANDLE,
    pub CallStatus: ::std::os::raw::c_ulong,
    pub CallType: RpcCallType,
    pub CallLocalAddress: *mut RPC_CALL_LOCAL_ADDRESS_V1,
    pub OpNum: ::std::os::raw::c_ushort,
    pub InterfaceUuid: UUID,
}
#[test]
fn bindgen_test_layout_tagRPC_CALL_ATTRIBUTES_V2_W() {
    assert_eq!(
        ::std::mem::size_of::<tagRPC_CALL_ATTRIBUTES_V2_W>(),
        112usize,
        concat!("Size of: ", stringify!(tagRPC_CALL_ATTRIBUTES_V2_W))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRPC_CALL_ATTRIBUTES_V2_W>(),
        8usize,
        concat!("Alignment of ", stringify!(tagRPC_CALL_ATTRIBUTES_V2_W))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_W>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_W),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_W>())).Flags as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_W),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_W>())).ServerPrincipalNameBufferLength
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_W),
            "::",
            stringify!(ServerPrincipalNameBufferLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_W>())).ServerPrincipalName as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_W),
            "::",
            stringify!(ServerPrincipalName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_W>())).ClientPrincipalNameBufferLength
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_W),
            "::",
            stringify!(ClientPrincipalNameBufferLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_W>())).ClientPrincipalName as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_W),
            "::",
            stringify!(ClientPrincipalName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_W>())).AuthenticationLevel as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_W),
            "::",
            stringify!(AuthenticationLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_W>())).AuthenticationService
                as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_W),
            "::",
            stringify!(AuthenticationService)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_W>())).NullSession as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_W),
            "::",
            stringify!(NullSession)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_W>())).KernelModeCaller as *const _
                as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_W),
            "::",
            stringify!(KernelModeCaller)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_W>())).ProtocolSequence as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_W),
            "::",
            stringify!(ProtocolSequence)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_W>())).IsClientLocal as *const _
                as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_W),
            "::",
            stringify!(IsClientLocal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_W>())).ClientPID as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_W),
            "::",
            stringify!(ClientPID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_W>())).CallStatus as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_W),
            "::",
            stringify!(CallStatus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_W>())).CallType as *const _ as usize
        },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_W),
            "::",
            stringify!(CallType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_W>())).CallLocalAddress as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_W),
            "::",
            stringify!(CallLocalAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_W>())).OpNum as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_W),
            "::",
            stringify!(OpNum)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_W>())).InterfaceUuid as *const _
                as usize
        },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_W),
            "::",
            stringify!(InterfaceUuid)
        )
    );
}
pub type RPC_CALL_ATTRIBUTES_V2_W = tagRPC_CALL_ATTRIBUTES_V2_W;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagRPC_CALL_ATTRIBUTES_V2_A {
    pub Version: ::std::os::raw::c_uint,
    pub Flags: ::std::os::raw::c_ulong,
    pub ServerPrincipalNameBufferLength: ::std::os::raw::c_ulong,
    pub ServerPrincipalName: *mut ::std::os::raw::c_uchar,
    pub ClientPrincipalNameBufferLength: ::std::os::raw::c_ulong,
    pub ClientPrincipalName: *mut ::std::os::raw::c_uchar,
    pub AuthenticationLevel: ::std::os::raw::c_ulong,
    pub AuthenticationService: ::std::os::raw::c_ulong,
    pub NullSession: BOOL,
    pub KernelModeCaller: BOOL,
    pub ProtocolSequence: ::std::os::raw::c_ulong,
    pub IsClientLocal: ::std::os::raw::c_ulong,
    pub ClientPID: HANDLE,
    pub CallStatus: ::std::os::raw::c_ulong,
    pub CallType: RpcCallType,
    pub CallLocalAddress: *mut RPC_CALL_LOCAL_ADDRESS_V1,
    pub OpNum: ::std::os::raw::c_ushort,
    pub InterfaceUuid: UUID,
}
#[test]
fn bindgen_test_layout_tagRPC_CALL_ATTRIBUTES_V2_A() {
    assert_eq!(
        ::std::mem::size_of::<tagRPC_CALL_ATTRIBUTES_V2_A>(),
        112usize,
        concat!("Size of: ", stringify!(tagRPC_CALL_ATTRIBUTES_V2_A))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRPC_CALL_ATTRIBUTES_V2_A>(),
        8usize,
        concat!("Alignment of ", stringify!(tagRPC_CALL_ATTRIBUTES_V2_A))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_A>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_A),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_A>())).Flags as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_A),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_A>())).ServerPrincipalNameBufferLength
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_A),
            "::",
            stringify!(ServerPrincipalNameBufferLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_A>())).ServerPrincipalName as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_A),
            "::",
            stringify!(ServerPrincipalName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_A>())).ClientPrincipalNameBufferLength
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_A),
            "::",
            stringify!(ClientPrincipalNameBufferLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_A>())).ClientPrincipalName as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_A),
            "::",
            stringify!(ClientPrincipalName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_A>())).AuthenticationLevel as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_A),
            "::",
            stringify!(AuthenticationLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_A>())).AuthenticationService
                as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_A),
            "::",
            stringify!(AuthenticationService)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_A>())).NullSession as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_A),
            "::",
            stringify!(NullSession)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_A>())).KernelModeCaller as *const _
                as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_A),
            "::",
            stringify!(KernelModeCaller)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_A>())).ProtocolSequence as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_A),
            "::",
            stringify!(ProtocolSequence)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_A>())).IsClientLocal as *const _
                as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_A),
            "::",
            stringify!(IsClientLocal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_A>())).ClientPID as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_A),
            "::",
            stringify!(ClientPID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_A>())).CallStatus as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_A),
            "::",
            stringify!(CallStatus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_A>())).CallType as *const _ as usize
        },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_A),
            "::",
            stringify!(CallType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_A>())).CallLocalAddress as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_A),
            "::",
            stringify!(CallLocalAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_A>())).OpNum as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_A),
            "::",
            stringify!(OpNum)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V2_A>())).InterfaceUuid as *const _
                as usize
        },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V2_A),
            "::",
            stringify!(InterfaceUuid)
        )
    );
}
pub type RPC_CALL_ATTRIBUTES_V2_A = tagRPC_CALL_ATTRIBUTES_V2_A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagRPC_CALL_ATTRIBUTES_V3_W {
    pub Version: ::std::os::raw::c_uint,
    pub Flags: ::std::os::raw::c_ulong,
    pub ServerPrincipalNameBufferLength: ::std::os::raw::c_ulong,
    pub ServerPrincipalName: *mut ::std::os::raw::c_ushort,
    pub ClientPrincipalNameBufferLength: ::std::os::raw::c_ulong,
    pub ClientPrincipalName: *mut ::std::os::raw::c_ushort,
    pub AuthenticationLevel: ::std::os::raw::c_ulong,
    pub AuthenticationService: ::std::os::raw::c_ulong,
    pub NullSession: BOOL,
    pub KernelModeCaller: BOOL,
    pub ProtocolSequence: ::std::os::raw::c_ulong,
    pub IsClientLocal: RpcCallClientLocality,
    pub ClientPID: HANDLE,
    pub CallStatus: ::std::os::raw::c_ulong,
    pub CallType: RpcCallType,
    pub CallLocalAddress: *mut RPC_CALL_LOCAL_ADDRESS_V1,
    pub OpNum: ::std::os::raw::c_ushort,
    pub InterfaceUuid: UUID,
    pub ClientIdentifierBufferLength: ::std::os::raw::c_ulong,
    pub ClientIdentifier: *mut ::std::os::raw::c_uchar,
}
#[test]
fn bindgen_test_layout_tagRPC_CALL_ATTRIBUTES_V3_W() {
    assert_eq!(
        ::std::mem::size_of::<tagRPC_CALL_ATTRIBUTES_V3_W>(),
        120usize,
        concat!("Size of: ", stringify!(tagRPC_CALL_ATTRIBUTES_V3_W))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRPC_CALL_ATTRIBUTES_V3_W>(),
        8usize,
        concat!("Alignment of ", stringify!(tagRPC_CALL_ATTRIBUTES_V3_W))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_W>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_W),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_W>())).Flags as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_W),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_W>())).ServerPrincipalNameBufferLength
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_W),
            "::",
            stringify!(ServerPrincipalNameBufferLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_W>())).ServerPrincipalName as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_W),
            "::",
            stringify!(ServerPrincipalName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_W>())).ClientPrincipalNameBufferLength
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_W),
            "::",
            stringify!(ClientPrincipalNameBufferLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_W>())).ClientPrincipalName as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_W),
            "::",
            stringify!(ClientPrincipalName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_W>())).AuthenticationLevel as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_W),
            "::",
            stringify!(AuthenticationLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_W>())).AuthenticationService
                as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_W),
            "::",
            stringify!(AuthenticationService)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_W>())).NullSession as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_W),
            "::",
            stringify!(NullSession)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_W>())).KernelModeCaller as *const _
                as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_W),
            "::",
            stringify!(KernelModeCaller)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_W>())).ProtocolSequence as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_W),
            "::",
            stringify!(ProtocolSequence)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_W>())).IsClientLocal as *const _
                as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_W),
            "::",
            stringify!(IsClientLocal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_W>())).ClientPID as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_W),
            "::",
            stringify!(ClientPID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_W>())).CallStatus as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_W),
            "::",
            stringify!(CallStatus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_W>())).CallType as *const _ as usize
        },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_W),
            "::",
            stringify!(CallType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_W>())).CallLocalAddress as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_W),
            "::",
            stringify!(CallLocalAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_W>())).OpNum as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_W),
            "::",
            stringify!(OpNum)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_W>())).InterfaceUuid as *const _
                as usize
        },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_W),
            "::",
            stringify!(InterfaceUuid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_W>())).ClientIdentifierBufferLength
                as *const _ as usize
        },
        108usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_W),
            "::",
            stringify!(ClientIdentifierBufferLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_W>())).ClientIdentifier as *const _
                as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_W),
            "::",
            stringify!(ClientIdentifier)
        )
    );
}
pub type RPC_CALL_ATTRIBUTES_V3_W = tagRPC_CALL_ATTRIBUTES_V3_W;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagRPC_CALL_ATTRIBUTES_V3_A {
    pub Version: ::std::os::raw::c_uint,
    pub Flags: ::std::os::raw::c_ulong,
    pub ServerPrincipalNameBufferLength: ::std::os::raw::c_ulong,
    pub ServerPrincipalName: *mut ::std::os::raw::c_uchar,
    pub ClientPrincipalNameBufferLength: ::std::os::raw::c_ulong,
    pub ClientPrincipalName: *mut ::std::os::raw::c_uchar,
    pub AuthenticationLevel: ::std::os::raw::c_ulong,
    pub AuthenticationService: ::std::os::raw::c_ulong,
    pub NullSession: BOOL,
    pub KernelModeCaller: BOOL,
    pub ProtocolSequence: ::std::os::raw::c_ulong,
    pub IsClientLocal: ::std::os::raw::c_ulong,
    pub ClientPID: HANDLE,
    pub CallStatus: ::std::os::raw::c_ulong,
    pub CallType: RpcCallType,
    pub CallLocalAddress: *mut RPC_CALL_LOCAL_ADDRESS_V1,
    pub OpNum: ::std::os::raw::c_ushort,
    pub InterfaceUuid: UUID,
    pub ClientIdentifierBufferLength: ::std::os::raw::c_ulong,
    pub ClientIdentifier: *mut ::std::os::raw::c_uchar,
}
#[test]
fn bindgen_test_layout_tagRPC_CALL_ATTRIBUTES_V3_A() {
    assert_eq!(
        ::std::mem::size_of::<tagRPC_CALL_ATTRIBUTES_V3_A>(),
        120usize,
        concat!("Size of: ", stringify!(tagRPC_CALL_ATTRIBUTES_V3_A))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRPC_CALL_ATTRIBUTES_V3_A>(),
        8usize,
        concat!("Alignment of ", stringify!(tagRPC_CALL_ATTRIBUTES_V3_A))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_A>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_A),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_A>())).Flags as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_A),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_A>())).ServerPrincipalNameBufferLength
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_A),
            "::",
            stringify!(ServerPrincipalNameBufferLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_A>())).ServerPrincipalName as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_A),
            "::",
            stringify!(ServerPrincipalName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_A>())).ClientPrincipalNameBufferLength
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_A),
            "::",
            stringify!(ClientPrincipalNameBufferLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_A>())).ClientPrincipalName as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_A),
            "::",
            stringify!(ClientPrincipalName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_A>())).AuthenticationLevel as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_A),
            "::",
            stringify!(AuthenticationLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_A>())).AuthenticationService
                as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_A),
            "::",
            stringify!(AuthenticationService)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_A>())).NullSession as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_A),
            "::",
            stringify!(NullSession)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_A>())).KernelModeCaller as *const _
                as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_A),
            "::",
            stringify!(KernelModeCaller)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_A>())).ProtocolSequence as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_A),
            "::",
            stringify!(ProtocolSequence)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_A>())).IsClientLocal as *const _
                as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_A),
            "::",
            stringify!(IsClientLocal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_A>())).ClientPID as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_A),
            "::",
            stringify!(ClientPID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_A>())).CallStatus as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_A),
            "::",
            stringify!(CallStatus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_A>())).CallType as *const _ as usize
        },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_A),
            "::",
            stringify!(CallType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_A>())).CallLocalAddress as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_A),
            "::",
            stringify!(CallLocalAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_A>())).OpNum as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_A),
            "::",
            stringify!(OpNum)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_A>())).InterfaceUuid as *const _
                as usize
        },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_A),
            "::",
            stringify!(InterfaceUuid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_A>())).ClientIdentifierBufferLength
                as *const _ as usize
        },
        108usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_A),
            "::",
            stringify!(ClientIdentifierBufferLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPC_CALL_ATTRIBUTES_V3_A>())).ClientIdentifier as *const _
                as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPC_CALL_ATTRIBUTES_V3_A),
            "::",
            stringify!(ClientIdentifier)
        )
    );
}
pub type RPC_CALL_ATTRIBUTES_V3_A = tagRPC_CALL_ATTRIBUTES_V3_A;
extern "C" {
    pub fn RpcServerInqCallAttributesW(
        ClientBinding: RPC_BINDING_HANDLE,
        RpcCallAttributes: *mut ::std::os::raw::c_void,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerInqCallAttributesA(
        ClientBinding: RPC_BINDING_HANDLE,
        RpcCallAttributes: *mut ::std::os::raw::c_void,
    ) -> RPC_STATUS;
}
pub type RPC_CALL_ATTRIBUTES = RPC_CALL_ATTRIBUTES_V3_A;
pub const _RPC_NOTIFICATIONS_RpcNotificationCallNone: _RPC_NOTIFICATIONS = 0;
pub const _RPC_NOTIFICATIONS_RpcNotificationClientDisconnect: _RPC_NOTIFICATIONS = 1;
pub const _RPC_NOTIFICATIONS_RpcNotificationCallCancel: _RPC_NOTIFICATIONS = 2;
pub type _RPC_NOTIFICATIONS = ::std::os::raw::c_int;
pub use self::_RPC_NOTIFICATIONS as RPC_NOTIFICATIONS;
extern "C" {
    pub fn RpcServerSubscribeForNotification(
        Binding: RPC_BINDING_HANDLE,
        Notification: RPC_NOTIFICATIONS,
        NotificationType: RPC_NOTIFICATION_TYPES,
        NotificationInfo: *mut RPC_ASYNC_NOTIFICATION_INFO,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcServerUnsubscribeForNotification(
        Binding: RPC_BINDING_HANDLE,
        Notification: RPC_NOTIFICATIONS,
        NotificationsQueued: *mut ::std::os::raw::c_ulong,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcBindingBind(
        pAsync: PRPC_ASYNC_STATE,
        Binding: RPC_BINDING_HANDLE,
        IfSpec: RPC_IF_HANDLE,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcBindingUnbind(Binding: RPC_BINDING_HANDLE) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcAsyncSetHandle(Message: PRPC_MESSAGE, pAsync: PRPC_ASYNC_STATE) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcAsyncAbortCall(
        pAsync: PRPC_ASYNC_STATE,
        ExceptionCode: ::std::os::raw::c_ulong,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcExceptionFilter(ExceptionCode: ::std::os::raw::c_ulong) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn I_RpcBindingInqClientTokenAttributes(
        Binding: RPC_BINDING_HANDLE,
        TokenId: *mut LUID,
        AuthenticationId: *mut LUID,
        ModifiedId: *mut LUID,
    ) -> RPC_STATUS;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HDROP__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HDROP__() {
    assert_eq!(
        ::std::mem::size_of::<HDROP__>(),
        4usize,
        concat!("Size of: ", stringify!(HDROP__))
    );
    assert_eq!(
        ::std::mem::align_of::<HDROP__>(),
        4usize,
        concat!("Alignment of ", stringify!(HDROP__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HDROP__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HDROP__),
            "::",
            stringify!(unused)
        )
    );
}
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) -> BOOL;
}
extern "C" {
    pub fn DragFinish(hDrop: HDROP);
}
extern "C" {
    pub fn DragAcceptFiles(hWnd: HWND, fAccept: BOOL);
}
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: BOOL,
    pub lpFileList: PZZSTR,
    pub grfKeyState: DWORD,
}
#[test]
fn bindgen_test_layout__DRAGINFOA() {
    assert_eq!(
        ::std::mem::size_of::<_DRAGINFOA>(),
        32usize,
        concat!("Size of: ", stringify!(_DRAGINFOA))
    );
    assert_eq!(
        ::std::mem::align_of::<_DRAGINFOA>(),
        8usize,
        concat!("Alignment of ", stringify!(_DRAGINFOA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRAGINFOA>())).uSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRAGINFOA),
            "::",
            stringify!(uSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRAGINFOA>())).pt as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRAGINFOA),
            "::",
            stringify!(pt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRAGINFOA>())).fNC as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRAGINFOA),
            "::",
            stringify!(fNC)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRAGINFOA>())).lpFileList as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRAGINFOA),
            "::",
            stringify!(lpFileList)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRAGINFOA>())).grfKeyState as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRAGINFOA),
            "::",
            stringify!(grfKeyState)
        )
    );
}
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: BOOL,
    pub lpFileList: PZZWSTR,
    pub grfKeyState: DWORD,
}
#[test]
fn bindgen_test_layout__DRAGINFOW() {
    assert_eq!(
        ::std::mem::size_of::<_DRAGINFOW>(),
        32usize,
        concat!("Size of: ", stringify!(_DRAGINFOW))
    );
    assert_eq!(
        ::std::mem::align_of::<_DRAGINFOW>(),
        8usize,
        concat!("Alignment of ", stringify!(_DRAGINFOW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRAGINFOW>())).uSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRAGINFOW),
            "::",
            stringify!(uSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRAGINFOW>())).pt as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRAGINFOW),
            "::",
            stringify!(pt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRAGINFOW>())).fNC as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRAGINFOW),
            "::",
            stringify!(fNC)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRAGINFOW>())).lpFileList as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRAGINFOW),
            "::",
            stringify!(lpFileList)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRAGINFOW>())).grfKeyState as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRAGINFOW),
            "::",
            stringify!(grfKeyState)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__AppBarData() {
    assert_eq!(
        ::std::mem::size_of::<_AppBarData>(),
        48usize,
        concat!("Size of: ", stringify!(_AppBarData))
    );
    assert_eq!(
        ::std::mem::align_of::<_AppBarData>(),
        8usize,
        concat!("Alignment of ", stringify!(_AppBarData))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_AppBarData>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_AppBarData),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_AppBarData>())).hWnd as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_AppBarData),
            "::",
            stringify!(hWnd)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_AppBarData>())).uCallbackMessage as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_AppBarData),
            "::",
            stringify!(uCallbackMessage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_AppBarData>())).uEdge as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_AppBarData),
            "::",
            stringify!(uEdge)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_AppBarData>())).rc as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_AppBarData),
            "::",
            stringify!(rc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_AppBarData>())).lParam as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_AppBarData),
            "::",
            stringify!(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: PCZZSTR,
    pub pTo: PCZZSTR,
    pub fFlags: FILEOP_FLAGS,
    pub fAnyOperationsAborted: BOOL,
    pub hNameMappings: LPVOID,
    pub lpszProgressTitle: PCSTR,
}
#[test]
fn bindgen_test_layout__SHFILEOPSTRUCTA() {
    assert_eq!(
        ::std::mem::size_of::<_SHFILEOPSTRUCTA>(),
        56usize,
        concat!("Size of: ", stringify!(_SHFILEOPSTRUCTA))
    );
    assert_eq!(
        ::std::mem::align_of::<_SHFILEOPSTRUCTA>(),
        8usize,
        concat!("Alignment of ", stringify!(_SHFILEOPSTRUCTA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHFILEOPSTRUCTA>())).hwnd as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHFILEOPSTRUCTA),
            "::",
            stringify!(hwnd)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHFILEOPSTRUCTA>())).wFunc as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHFILEOPSTRUCTA),
            "::",
            stringify!(wFunc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHFILEOPSTRUCTA>())).pFrom as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHFILEOPSTRUCTA),
            "::",
            stringify!(pFrom)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHFILEOPSTRUCTA>())).pTo as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHFILEOPSTRUCTA),
            "::",
            stringify!(pTo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHFILEOPSTRUCTA>())).fFlags as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHFILEOPSTRUCTA),
            "::",
            stringify!(fFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SHFILEOPSTRUCTA>())).fAnyOperationsAborted as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHFILEOPSTRUCTA),
            "::",
            stringify!(fAnyOperationsAborted)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHFILEOPSTRUCTA>())).hNameMappings as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHFILEOPSTRUCTA),
            "::",
            stringify!(hNameMappings)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SHFILEOPSTRUCTA>())).lpszProgressTitle as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHFILEOPSTRUCTA),
            "::",
            stringify!(lpszProgressTitle)
        )
    );
}
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: PCZZWSTR,
    pub pTo: PCZZWSTR,
    pub fFlags: FILEOP_FLAGS,
    pub fAnyOperationsAborted: BOOL,
    pub hNameMappings: LPVOID,
    pub lpszProgressTitle: PCWSTR,
}
#[test]
fn bindgen_test_layout__SHFILEOPSTRUCTW() {
    assert_eq!(
        ::std::mem::size_of::<_SHFILEOPSTRUCTW>(),
        56usize,
        concat!("Size of: ", stringify!(_SHFILEOPSTRUCTW))
    );
    assert_eq!(
        ::std::mem::align_of::<_SHFILEOPSTRUCTW>(),
        8usize,
        concat!("Alignment of ", stringify!(_SHFILEOPSTRUCTW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHFILEOPSTRUCTW>())).hwnd as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHFILEOPSTRUCTW),
            "::",
            stringify!(hwnd)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHFILEOPSTRUCTW>())).wFunc as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHFILEOPSTRUCTW),
            "::",
            stringify!(wFunc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHFILEOPSTRUCTW>())).pFrom as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHFILEOPSTRUCTW),
            "::",
            stringify!(pFrom)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHFILEOPSTRUCTW>())).pTo as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHFILEOPSTRUCTW),
            "::",
            stringify!(pTo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHFILEOPSTRUCTW>())).fFlags as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHFILEOPSTRUCTW),
            "::",
            stringify!(fFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SHFILEOPSTRUCTW>())).fAnyOperationsAborted as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHFILEOPSTRUCTW),
            "::",
            stringify!(fAnyOperationsAborted)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHFILEOPSTRUCTW>())).hNameMappings as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHFILEOPSTRUCTW),
            "::",
            stringify!(hNameMappings)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SHFILEOPSTRUCTW>())).lpszProgressTitle as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHFILEOPSTRUCTW),
            "::",
            stringify!(lpszProgressTitle)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__SHNAMEMAPPINGA() {
    assert_eq!(
        ::std::mem::size_of::<_SHNAMEMAPPINGA>(),
        24usize,
        concat!("Size of: ", stringify!(_SHNAMEMAPPINGA))
    );
    assert_eq!(
        ::std::mem::align_of::<_SHNAMEMAPPINGA>(),
        8usize,
        concat!("Alignment of ", stringify!(_SHNAMEMAPPINGA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHNAMEMAPPINGA>())).pszOldPath as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHNAMEMAPPINGA),
            "::",
            stringify!(pszOldPath)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHNAMEMAPPINGA>())).pszNewPath as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHNAMEMAPPINGA),
            "::",
            stringify!(pszNewPath)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHNAMEMAPPINGA>())).cchOldPath as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHNAMEMAPPINGA),
            "::",
            stringify!(cchOldPath)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHNAMEMAPPINGA>())).cchNewPath as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHNAMEMAPPINGA),
            "::",
            stringify!(cchNewPath)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__SHNAMEMAPPINGW() {
    assert_eq!(
        ::std::mem::size_of::<_SHNAMEMAPPINGW>(),
        24usize,
        concat!("Size of: ", stringify!(_SHNAMEMAPPINGW))
    );
    assert_eq!(
        ::std::mem::align_of::<_SHNAMEMAPPINGW>(),
        8usize,
        concat!("Alignment of ", stringify!(_SHNAMEMAPPINGW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHNAMEMAPPINGW>())).pszOldPath as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHNAMEMAPPINGW),
            "::",
            stringify!(pszOldPath)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHNAMEMAPPINGW>())).pszNewPath as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHNAMEMAPPINGW),
            "::",
            stringify!(pszNewPath)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHNAMEMAPPINGW>())).cchOldPath as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHNAMEMAPPINGW),
            "::",
            stringify!(cchOldPath)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHNAMEMAPPINGW>())).cchNewPath as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHNAMEMAPPINGW),
            "::",
            stringify!(cchNewPath)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__SHELLEXECUTEINFOA__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_SHELLEXECUTEINFOA__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_SHELLEXECUTEINFOA__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_SHELLEXECUTEINFOA__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_SHELLEXECUTEINFOA__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SHELLEXECUTEINFOA__bindgen_ty_1>())).hIcon as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHELLEXECUTEINFOA__bindgen_ty_1),
            "::",
            stringify!(hIcon)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SHELLEXECUTEINFOA__bindgen_ty_1>())).hMonitor as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHELLEXECUTEINFOA__bindgen_ty_1),
            "::",
            stringify!(hMonitor)
        )
    );
}
#[test]
fn bindgen_test_layout__SHELLEXECUTEINFOA() {
    assert_eq!(
        ::std::mem::size_of::<_SHELLEXECUTEINFOA>(),
        112usize,
        concat!("Size of: ", stringify!(_SHELLEXECUTEINFOA))
    );
    assert_eq!(
        ::std::mem::align_of::<_SHELLEXECUTEINFOA>(),
        8usize,
        concat!("Alignment of ", stringify!(_SHELLEXECUTEINFOA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHELLEXECUTEINFOA>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHELLEXECUTEINFOA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHELLEXECUTEINFOA>())).fMask as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHELLEXECUTEINFOA),
            "::",
            stringify!(fMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHELLEXECUTEINFOA>())).hwnd as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHELLEXECUTEINFOA),
            "::",
            stringify!(hwnd)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHELLEXECUTEINFOA>())).lpVerb as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHELLEXECUTEINFOA),
            "::",
            stringify!(lpVerb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHELLEXECUTEINFOA>())).lpFile as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHELLEXECUTEINFOA),
            "::",
            stringify!(lpFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHELLEXECUTEINFOA>())).lpParameters as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHELLEXECUTEINFOA),
            "::",
            stringify!(lpParameters)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHELLEXECUTEINFOA>())).lpDirectory as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHELLEXECUTEINFOA),
            "::",
            stringify!(lpDirectory)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHELLEXECUTEINFOA>())).nShow as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHELLEXECUTEINFOA),
            "::",
            stringify!(nShow)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHELLEXECUTEINFOA>())).hInstApp as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHELLEXECUTEINFOA),
            "::",
            stringify!(hInstApp)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHELLEXECUTEINFOA>())).lpIDList as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHELLEXECUTEINFOA),
            "::",
            stringify!(lpIDList)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHELLEXECUTEINFOA>())).lpClass as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHELLEXECUTEINFOA),
            "::",
            stringify!(lpClass)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHELLEXECUTEINFOA>())).hkeyClass as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHELLEXECUTEINFOA),
            "::",
            stringify!(hkeyClass)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHELLEXECUTEINFOA>())).dwHotKey as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHELLEXECUTEINFOA),
            "::",
            stringify!(dwHotKey)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHELLEXECUTEINFOA>())).hProcess as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHELLEXECUTEINFOA),
            "::",
            stringify!(hProcess)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__SHELLEXECUTEINFOW__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_SHELLEXECUTEINFOW__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_SHELLEXECUTEINFOW__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_SHELLEXECUTEINFOW__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_SHELLEXECUTEINFOW__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SHELLEXECUTEINFOW__bindgen_ty_1>())).hIcon as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHELLEXECUTEINFOW__bindgen_ty_1),
            "::",
            stringify!(hIcon)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SHELLEXECUTEINFOW__bindgen_ty_1>())).hMonitor as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHELLEXECUTEINFOW__bindgen_ty_1),
            "::",
            stringify!(hMonitor)
        )
    );
}
#[test]
fn bindgen_test_layout__SHELLEXECUTEINFOW() {
    assert_eq!(
        ::std::mem::size_of::<_SHELLEXECUTEINFOW>(),
        112usize,
        concat!("Size of: ", stringify!(_SHELLEXECUTEINFOW))
    );
    assert_eq!(
        ::std::mem::align_of::<_SHELLEXECUTEINFOW>(),
        8usize,
        concat!("Alignment of ", stringify!(_SHELLEXECUTEINFOW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHELLEXECUTEINFOW>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHELLEXECUTEINFOW),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHELLEXECUTEINFOW>())).fMask as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHELLEXECUTEINFOW),
            "::",
            stringify!(fMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHELLEXECUTEINFOW>())).hwnd as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHELLEXECUTEINFOW),
            "::",
            stringify!(hwnd)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHELLEXECUTEINFOW>())).lpVerb as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHELLEXECUTEINFOW),
            "::",
            stringify!(lpVerb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHELLEXECUTEINFOW>())).lpFile as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHELLEXECUTEINFOW),
            "::",
            stringify!(lpFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHELLEXECUTEINFOW>())).lpParameters as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHELLEXECUTEINFOW),
            "::",
            stringify!(lpParameters)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHELLEXECUTEINFOW>())).lpDirectory as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHELLEXECUTEINFOW),
            "::",
            stringify!(lpDirectory)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHELLEXECUTEINFOW>())).nShow as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHELLEXECUTEINFOW),
            "::",
            stringify!(nShow)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHELLEXECUTEINFOW>())).hInstApp as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHELLEXECUTEINFOW),
            "::",
            stringify!(hInstApp)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHELLEXECUTEINFOW>())).lpIDList as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHELLEXECUTEINFOW),
            "::",
            stringify!(lpIDList)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHELLEXECUTEINFOW>())).lpClass as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHELLEXECUTEINFOW),
            "::",
            stringify!(lpClass)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHELLEXECUTEINFOW>())).hkeyClass as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHELLEXECUTEINFOW),
            "::",
            stringify!(hkeyClass)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHELLEXECUTEINFOW>())).dwHotKey as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHELLEXECUTEINFOW),
            "::",
            stringify!(dwHotKey)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHELLEXECUTEINFOW>())).hProcess as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHELLEXECUTEINFOW),
            "::",
            stringify!(hProcess)
        )
    );
}
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) -> BOOL;
}
extern "C" {
    pub fn ShellExecuteExW(pExecInfo: *mut SHELLEXECUTEINFOW) -> BOOL;
}
#[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: BOOL,
    pub dwCreationFlags: DWORD,
    pub lpStartupInfo: LPSTARTUPINFOW,
    pub lpProcessInformation: LPPROCESS_INFORMATION,
}
#[test]
fn bindgen_test_layout__SHCREATEPROCESSINFOW() {
    assert_eq!(
        ::std::mem::size_of::<_SHCREATEPROCESSINFOW>(),
        88usize,
        concat!("Size of: ", stringify!(_SHCREATEPROCESSINFOW))
    );
    assert_eq!(
        ::std::mem::align_of::<_SHCREATEPROCESSINFOW>(),
        8usize,
        concat!("Alignment of ", stringify!(_SHCREATEPROCESSINFOW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHCREATEPROCESSINFOW>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHCREATEPROCESSINFOW),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHCREATEPROCESSINFOW>())).fMask as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHCREATEPROCESSINFOW),
            "::",
            stringify!(fMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHCREATEPROCESSINFOW>())).hwnd as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHCREATEPROCESSINFOW),
            "::",
            stringify!(hwnd)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHCREATEPROCESSINFOW>())).pszFile as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHCREATEPROCESSINFOW),
            "::",
            stringify!(pszFile)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SHCREATEPROCESSINFOW>())).pszParameters as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHCREATEPROCESSINFOW),
            "::",
            stringify!(pszParameters)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SHCREATEPROCESSINFOW>())).pszCurrentDirectory as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHCREATEPROCESSINFOW),
            "::",
            stringify!(pszCurrentDirectory)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SHCREATEPROCESSINFOW>())).hUserToken as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHCREATEPROCESSINFOW),
            "::",
            stringify!(hUserToken)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SHCREATEPROCESSINFOW>())).lpProcessAttributes as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHCREATEPROCESSINFOW),
            "::",
            stringify!(lpProcessAttributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SHCREATEPROCESSINFOW>())).lpThreadAttributes as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHCREATEPROCESSINFOW),
            "::",
            stringify!(lpThreadAttributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SHCREATEPROCESSINFOW>())).bInheritHandles as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHCREATEPROCESSINFOW),
            "::",
            stringify!(bInheritHandles)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SHCREATEPROCESSINFOW>())).dwCreationFlags as *const _ as usize
        },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHCREATEPROCESSINFOW),
            "::",
            stringify!(dwCreationFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SHCREATEPROCESSINFOW>())).lpStartupInfo as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHCREATEPROCESSINFOW),
            "::",
            stringify!(lpStartupInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SHCREATEPROCESSINFOW>())).lpProcessInformation as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHCREATEPROCESSINFOW),
            "::",
            stringify!(lpProcessInformation)
        )
    );
}
pub type SHCREATEPROCESSINFOW = _SHCREATEPROCESSINFOW;
pub type PSHCREATEPROCESSINFOW = *mut _SHCREATEPROCESSINFOW;
extern "C" {
    pub fn SHCreateProcessAsUserW(pscpi: PSHCREATEPROCESSINFOW) -> BOOL;
}
extern "C" {
    pub fn SHEvaluateSystemCommandTemplate(
        pszCmdTemplate: PCWSTR,
        ppszApplication: *mut PWSTR,
        ppszCommandLine: *mut PWSTR,
        ppszParameters: *mut PWSTR,
    ) -> HRESULT;
}
pub const ASSOCCLASS_ASSOCCLASS_SHELL_KEY: ASSOCCLASS = 0;
pub const ASSOCCLASS_ASSOCCLASS_PROGID_KEY: ASSOCCLASS = 1;
pub const ASSOCCLASS_ASSOCCLASS_PROGID_STR: ASSOCCLASS = 2;
pub const ASSOCCLASS_ASSOCCLASS_CLSID_KEY: ASSOCCLASS = 3;
pub const ASSOCCLASS_ASSOCCLASS_CLSID_STR: ASSOCCLASS = 4;
pub const ASSOCCLASS_ASSOCCLASS_APP_KEY: ASSOCCLASS = 5;
pub const ASSOCCLASS_ASSOCCLASS_APP_STR: ASSOCCLASS = 6;
pub const ASSOCCLASS_ASSOCCLASS_SYSTEM_STR: ASSOCCLASS = 7;
pub const ASSOCCLASS_ASSOCCLASS_FOLDER: ASSOCCLASS = 8;
pub const ASSOCCLASS_ASSOCCLASS_STAR: ASSOCCLASS = 9;
pub const ASSOCCLASS_ASSOCCLASS_FIXED_PROGID_STR: ASSOCCLASS = 10;
pub const ASSOCCLASS_ASSOCCLASS_PROTOCOL_STR: ASSOCCLASS = 11;
pub type ASSOCCLASS = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ASSOCIATIONELEMENT {
    pub ac: ASSOCCLASS,
    pub hkClass: HKEY,
    pub pszClass: PCWSTR,
}
#[test]
fn bindgen_test_layout_ASSOCIATIONELEMENT() {
    assert_eq!(
        ::std::mem::size_of::<ASSOCIATIONELEMENT>(),
        24usize,
        concat!("Size of: ", stringify!(ASSOCIATIONELEMENT))
    );
    assert_eq!(
        ::std::mem::align_of::<ASSOCIATIONELEMENT>(),
        8usize,
        concat!("Alignment of ", stringify!(ASSOCIATIONELEMENT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ASSOCIATIONELEMENT>())).ac as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ASSOCIATIONELEMENT),
            "::",
            stringify!(ac)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ASSOCIATIONELEMENT>())).hkClass as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ASSOCIATIONELEMENT),
            "::",
            stringify!(hkClass)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ASSOCIATIONELEMENT>())).pszClass as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ASSOCIATIONELEMENT),
            "::",
            stringify!(pszClass)
        )
    );
}
extern "C" {
    pub fn AssocCreateForClasses(
        rgClasses: *const ASSOCIATIONELEMENT,
        cClasses: ULONG,
        riid: *const IID,
        ppv: *mut *mut ::std::os::raw::c_void,
    ) -> HRESULT;
}
#[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,
}
#[test]
fn bindgen_test_layout__SHQUERYRBINFO() {
    assert_eq!(
        ::std::mem::size_of::<_SHQUERYRBINFO>(),
        24usize,
        concat!("Size of: ", stringify!(_SHQUERYRBINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_SHQUERYRBINFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_SHQUERYRBINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHQUERYRBINFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHQUERYRBINFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHQUERYRBINFO>())).i64Size as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHQUERYRBINFO),
            "::",
            stringify!(i64Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHQUERYRBINFO>())).i64NumItems as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHQUERYRBINFO),
            "::",
            stringify!(i64NumItems)
        )
    );
}
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;
}
pub const QUERY_USER_NOTIFICATION_STATE_QUNS_NOT_PRESENT: QUERY_USER_NOTIFICATION_STATE = 1;
pub const QUERY_USER_NOTIFICATION_STATE_QUNS_BUSY: QUERY_USER_NOTIFICATION_STATE = 2;
pub const QUERY_USER_NOTIFICATION_STATE_QUNS_RUNNING_D3D_FULL_SCREEN:
    QUERY_USER_NOTIFICATION_STATE = 3;
pub const QUERY_USER_NOTIFICATION_STATE_QUNS_PRESENTATION_MODE: QUERY_USER_NOTIFICATION_STATE = 4;
pub const QUERY_USER_NOTIFICATION_STATE_QUNS_ACCEPTS_NOTIFICATIONS: QUERY_USER_NOTIFICATION_STATE =
    5;
pub const QUERY_USER_NOTIFICATION_STATE_QUNS_QUIET_TIME: QUERY_USER_NOTIFICATION_STATE = 6;
pub const QUERY_USER_NOTIFICATION_STATE_QUNS_APP: QUERY_USER_NOTIFICATION_STATE = 7;
pub type QUERY_USER_NOTIFICATION_STATE = ::std::os::raw::c_int;
extern "C" {
    pub fn SHQueryUserNotificationState(pquns: *mut QUERY_USER_NOTIFICATION_STATE) -> HRESULT;
}
extern "C" {
    pub fn SHGetPropertyStoreForWindow(
        hwnd: HWND,
        riid: *const IID,
        ppv: *mut *mut ::std::os::raw::c_void,
    ) -> 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,
    pub hBalloonIcon: HICON,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _NOTIFYICONDATAA__bindgen_ty_1 {
    pub uTimeout: UINT,
    pub uVersion: UINT,
    _bindgen_union_align: u32,
}
#[test]
fn bindgen_test_layout__NOTIFYICONDATAA__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_NOTIFYICONDATAA__bindgen_ty_1>(),
        4usize,
        concat!("Size of: ", stringify!(_NOTIFYICONDATAA__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_NOTIFYICONDATAA__bindgen_ty_1>(),
        4usize,
        concat!("Alignment of ", stringify!(_NOTIFYICONDATAA__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NOTIFYICONDATAA__bindgen_ty_1>())).uTimeout as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONDATAA__bindgen_ty_1),
            "::",
            stringify!(uTimeout)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NOTIFYICONDATAA__bindgen_ty_1>())).uVersion as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONDATAA__bindgen_ty_1),
            "::",
            stringify!(uVersion)
        )
    );
}
#[test]
fn bindgen_test_layout__NOTIFYICONDATAA() {
    assert_eq!(
        ::std::mem::size_of::<_NOTIFYICONDATAA>(),
        528usize,
        concat!("Size of: ", stringify!(_NOTIFYICONDATAA))
    );
    assert_eq!(
        ::std::mem::align_of::<_NOTIFYICONDATAA>(),
        8usize,
        concat!("Alignment of ", stringify!(_NOTIFYICONDATAA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NOTIFYICONDATAA>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONDATAA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NOTIFYICONDATAA>())).hWnd as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONDATAA),
            "::",
            stringify!(hWnd)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NOTIFYICONDATAA>())).uID as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONDATAA),
            "::",
            stringify!(uID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NOTIFYICONDATAA>())).uFlags as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONDATAA),
            "::",
            stringify!(uFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NOTIFYICONDATAA>())).uCallbackMessage as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONDATAA),
            "::",
            stringify!(uCallbackMessage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NOTIFYICONDATAA>())).hIcon as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONDATAA),
            "::",
            stringify!(hIcon)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NOTIFYICONDATAA>())).szTip as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONDATAA),
            "::",
            stringify!(szTip)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NOTIFYICONDATAA>())).dwState as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONDATAA),
            "::",
            stringify!(dwState)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NOTIFYICONDATAA>())).dwStateMask as *const _ as usize },
        172usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONDATAA),
            "::",
            stringify!(dwStateMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NOTIFYICONDATAA>())).szInfo as *const _ as usize },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONDATAA),
            "::",
            stringify!(szInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NOTIFYICONDATAA>())).szInfoTitle as *const _ as usize },
        436usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONDATAA),
            "::",
            stringify!(szInfoTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NOTIFYICONDATAA>())).dwInfoFlags as *const _ as usize },
        500usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONDATAA),
            "::",
            stringify!(dwInfoFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NOTIFYICONDATAA>())).guidItem as *const _ as usize },
        504usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONDATAA),
            "::",
            stringify!(guidItem)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NOTIFYICONDATAA>())).hBalloonIcon as *const _ as usize },
        520usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONDATAA),
            "::",
            stringify!(hBalloonIcon)
        )
    );
}
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,
    pub hBalloonIcon: HICON,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _NOTIFYICONDATAW__bindgen_ty_1 {
    pub uTimeout: UINT,
    pub uVersion: UINT,
    _bindgen_union_align: u32,
}
#[test]
fn bindgen_test_layout__NOTIFYICONDATAW__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_NOTIFYICONDATAW__bindgen_ty_1>(),
        4usize,
        concat!("Size of: ", stringify!(_NOTIFYICONDATAW__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_NOTIFYICONDATAW__bindgen_ty_1>(),
        4usize,
        concat!("Alignment of ", stringify!(_NOTIFYICONDATAW__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NOTIFYICONDATAW__bindgen_ty_1>())).uTimeout as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONDATAW__bindgen_ty_1),
            "::",
            stringify!(uTimeout)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NOTIFYICONDATAW__bindgen_ty_1>())).uVersion as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONDATAW__bindgen_ty_1),
            "::",
            stringify!(uVersion)
        )
    );
}
#[test]
fn bindgen_test_layout__NOTIFYICONDATAW() {
    assert_eq!(
        ::std::mem::size_of::<_NOTIFYICONDATAW>(),
        976usize,
        concat!("Size of: ", stringify!(_NOTIFYICONDATAW))
    );
    assert_eq!(
        ::std::mem::align_of::<_NOTIFYICONDATAW>(),
        8usize,
        concat!("Alignment of ", stringify!(_NOTIFYICONDATAW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NOTIFYICONDATAW>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONDATAW),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NOTIFYICONDATAW>())).hWnd as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONDATAW),
            "::",
            stringify!(hWnd)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NOTIFYICONDATAW>())).uID as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONDATAW),
            "::",
            stringify!(uID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NOTIFYICONDATAW>())).uFlags as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONDATAW),
            "::",
            stringify!(uFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NOTIFYICONDATAW>())).uCallbackMessage as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONDATAW),
            "::",
            stringify!(uCallbackMessage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NOTIFYICONDATAW>())).hIcon as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONDATAW),
            "::",
            stringify!(hIcon)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NOTIFYICONDATAW>())).szTip as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONDATAW),
            "::",
            stringify!(szTip)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NOTIFYICONDATAW>())).dwState as *const _ as usize },
        296usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONDATAW),
            "::",
            stringify!(dwState)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NOTIFYICONDATAW>())).dwStateMask as *const _ as usize },
        300usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONDATAW),
            "::",
            stringify!(dwStateMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NOTIFYICONDATAW>())).szInfo as *const _ as usize },
        304usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONDATAW),
            "::",
            stringify!(szInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NOTIFYICONDATAW>())).szInfoTitle as *const _ as usize },
        820usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONDATAW),
            "::",
            stringify!(szInfoTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NOTIFYICONDATAW>())).dwInfoFlags as *const _ as usize },
        948usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONDATAW),
            "::",
            stringify!(dwInfoFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NOTIFYICONDATAW>())).guidItem as *const _ as usize },
        952usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONDATAW),
            "::",
            stringify!(guidItem)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NOTIFYICONDATAW>())).hBalloonIcon as *const _ as usize },
        968usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONDATAW),
            "::",
            stringify!(hBalloonIcon)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__NOTIFYICONIDENTIFIER() {
    assert_eq!(
        ::std::mem::size_of::<_NOTIFYICONIDENTIFIER>(),
        40usize,
        concat!("Size of: ", stringify!(_NOTIFYICONIDENTIFIER))
    );
    assert_eq!(
        ::std::mem::align_of::<_NOTIFYICONIDENTIFIER>(),
        8usize,
        concat!("Alignment of ", stringify!(_NOTIFYICONIDENTIFIER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NOTIFYICONIDENTIFIER>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONIDENTIFIER),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NOTIFYICONIDENTIFIER>())).hWnd as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONIDENTIFIER),
            "::",
            stringify!(hWnd)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NOTIFYICONIDENTIFIER>())).uID as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONIDENTIFIER),
            "::",
            stringify!(uID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NOTIFYICONIDENTIFIER>())).guidItem as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_NOTIFYICONIDENTIFIER),
            "::",
            stringify!(guidItem)
        )
    );
}
pub type NOTIFYICONIDENTIFIER = _NOTIFYICONIDENTIFIER;
pub type PNOTIFYICONIDENTIFIER = *mut _NOTIFYICONIDENTIFIER;
extern "C" {
    pub fn Shell_NotifyIconA(dwMessage: DWORD, lpData: PNOTIFYICONDATAA) -> BOOL;
}
extern "C" {
    pub fn Shell_NotifyIconW(dwMessage: DWORD, lpData: PNOTIFYICONDATAW) -> BOOL;
}
extern "C" {
    pub fn Shell_NotifyIconGetRect(
        identifier: *const NOTIFYICONIDENTIFIER,
        iconLocation: *mut RECT,
    ) -> HRESULT;
}
#[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],
}
#[test]
fn bindgen_test_layout__SHFILEINFOA() {
    assert_eq!(
        ::std::mem::size_of::<_SHFILEINFOA>(),
        360usize,
        concat!("Size of: ", stringify!(_SHFILEINFOA))
    );
    assert_eq!(
        ::std::mem::align_of::<_SHFILEINFOA>(),
        8usize,
        concat!("Alignment of ", stringify!(_SHFILEINFOA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHFILEINFOA>())).hIcon as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHFILEINFOA),
            "::",
            stringify!(hIcon)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHFILEINFOA>())).iIcon as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHFILEINFOA),
            "::",
            stringify!(iIcon)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHFILEINFOA>())).dwAttributes as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHFILEINFOA),
            "::",
            stringify!(dwAttributes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHFILEINFOA>())).szDisplayName as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHFILEINFOA),
            "::",
            stringify!(szDisplayName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHFILEINFOA>())).szTypeName as *const _ as usize },
        276usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHFILEINFOA),
            "::",
            stringify!(szTypeName)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__SHFILEINFOW() {
    assert_eq!(
        ::std::mem::size_of::<_SHFILEINFOW>(),
        696usize,
        concat!("Size of: ", stringify!(_SHFILEINFOW))
    );
    assert_eq!(
        ::std::mem::align_of::<_SHFILEINFOW>(),
        8usize,
        concat!("Alignment of ", stringify!(_SHFILEINFOW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHFILEINFOW>())).hIcon as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHFILEINFOW),
            "::",
            stringify!(hIcon)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHFILEINFOW>())).iIcon as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHFILEINFOW),
            "::",
            stringify!(iIcon)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHFILEINFOW>())).dwAttributes as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHFILEINFOW),
            "::",
            stringify!(dwAttributes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHFILEINFOW>())).szDisplayName as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHFILEINFOW),
            "::",
            stringify!(szDisplayName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHFILEINFOW>())).szTypeName as *const _ as usize },
        536usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHFILEINFOW),
            "::",
            stringify!(szTypeName)
        )
    );
}
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;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _SHSTOCKICONINFO {
    pub cbSize: DWORD,
    pub hIcon: HICON,
    pub iSysImageIndex: ::std::os::raw::c_int,
    pub iIcon: ::std::os::raw::c_int,
    pub szPath: [WCHAR; 260usize],
}
#[test]
fn bindgen_test_layout__SHSTOCKICONINFO() {
    assert_eq!(
        ::std::mem::size_of::<_SHSTOCKICONINFO>(),
        544usize,
        concat!("Size of: ", stringify!(_SHSTOCKICONINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_SHSTOCKICONINFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_SHSTOCKICONINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHSTOCKICONINFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHSTOCKICONINFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHSTOCKICONINFO>())).hIcon as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHSTOCKICONINFO),
            "::",
            stringify!(hIcon)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHSTOCKICONINFO>())).iSysImageIndex as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHSTOCKICONINFO),
            "::",
            stringify!(iSysImageIndex)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHSTOCKICONINFO>())).iIcon as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHSTOCKICONINFO),
            "::",
            stringify!(iIcon)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHSTOCKICONINFO>())).szPath as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHSTOCKICONINFO),
            "::",
            stringify!(szPath)
        )
    );
}
pub type SHSTOCKICONINFO = _SHSTOCKICONINFO;
pub const SHSTOCKICONID_SIID_DOCNOASSOC: SHSTOCKICONID = 0;
pub const SHSTOCKICONID_SIID_DOCASSOC: SHSTOCKICONID = 1;
pub const SHSTOCKICONID_SIID_APPLICATION: SHSTOCKICONID = 2;
pub const SHSTOCKICONID_SIID_FOLDER: SHSTOCKICONID = 3;
pub const SHSTOCKICONID_SIID_FOLDEROPEN: SHSTOCKICONID = 4;
pub const SHSTOCKICONID_SIID_DRIVE525: SHSTOCKICONID = 5;
pub const SHSTOCKICONID_SIID_DRIVE35: SHSTOCKICONID = 6;
pub const SHSTOCKICONID_SIID_DRIVEREMOVE: SHSTOCKICONID = 7;
pub const SHSTOCKICONID_SIID_DRIVEFIXED: SHSTOCKICONID = 8;
pub const SHSTOCKICONID_SIID_DRIVENET: SHSTOCKICONID = 9;
pub const SHSTOCKICONID_SIID_DRIVENETDISABLED: SHSTOCKICONID = 10;
pub const SHSTOCKICONID_SIID_DRIVECD: SHSTOCKICONID = 11;
pub const SHSTOCKICONID_SIID_DRIVERAM: SHSTOCKICONID = 12;
pub const SHSTOCKICONID_SIID_WORLD: SHSTOCKICONID = 13;
pub const SHSTOCKICONID_SIID_SERVER: SHSTOCKICONID = 15;
pub const SHSTOCKICONID_SIID_PRINTER: SHSTOCKICONID = 16;
pub const SHSTOCKICONID_SIID_MYNETWORK: SHSTOCKICONID = 17;
pub const SHSTOCKICONID_SIID_FIND: SHSTOCKICONID = 22;
pub const SHSTOCKICONID_SIID_HELP: SHSTOCKICONID = 23;
pub const SHSTOCKICONID_SIID_SHARE: SHSTOCKICONID = 28;
pub const SHSTOCKICONID_SIID_LINK: SHSTOCKICONID = 29;
pub const SHSTOCKICONID_SIID_SLOWFILE: SHSTOCKICONID = 30;
pub const SHSTOCKICONID_SIID_RECYCLER: SHSTOCKICONID = 31;
pub const SHSTOCKICONID_SIID_RECYCLERFULL: SHSTOCKICONID = 32;
pub const SHSTOCKICONID_SIID_MEDIACDAUDIO: SHSTOCKICONID = 40;
pub const SHSTOCKICONID_SIID_LOCK: SHSTOCKICONID = 47;
pub const SHSTOCKICONID_SIID_AUTOLIST: SHSTOCKICONID = 49;
pub const SHSTOCKICONID_SIID_PRINTERNET: SHSTOCKICONID = 50;
pub const SHSTOCKICONID_SIID_SERVERSHARE: SHSTOCKICONID = 51;
pub const SHSTOCKICONID_SIID_PRINTERFAX: SHSTOCKICONID = 52;
pub const SHSTOCKICONID_SIID_PRINTERFAXNET: SHSTOCKICONID = 53;
pub const SHSTOCKICONID_SIID_PRINTERFILE: SHSTOCKICONID = 54;
pub const SHSTOCKICONID_SIID_STACK: SHSTOCKICONID = 55;
pub const SHSTOCKICONID_SIID_MEDIASVCD: SHSTOCKICONID = 56;
pub const SHSTOCKICONID_SIID_STUFFEDFOLDER: SHSTOCKICONID = 57;
pub const SHSTOCKICONID_SIID_DRIVEUNKNOWN: SHSTOCKICONID = 58;
pub const SHSTOCKICONID_SIID_DRIVEDVD: SHSTOCKICONID = 59;
pub const SHSTOCKICONID_SIID_MEDIADVD: SHSTOCKICONID = 60;
pub const SHSTOCKICONID_SIID_MEDIADVDRAM: SHSTOCKICONID = 61;
pub const SHSTOCKICONID_SIID_MEDIADVDRW: SHSTOCKICONID = 62;
pub const SHSTOCKICONID_SIID_MEDIADVDR: SHSTOCKICONID = 63;
pub const SHSTOCKICONID_SIID_MEDIADVDROM: SHSTOCKICONID = 64;
pub const SHSTOCKICONID_SIID_MEDIACDAUDIOPLUS: SHSTOCKICONID = 65;
pub const SHSTOCKICONID_SIID_MEDIACDRW: SHSTOCKICONID = 66;
pub const SHSTOCKICONID_SIID_MEDIACDR: SHSTOCKICONID = 67;
pub const SHSTOCKICONID_SIID_MEDIACDBURN: SHSTOCKICONID = 68;
pub const SHSTOCKICONID_SIID_MEDIABLANKCD: SHSTOCKICONID = 69;
pub const SHSTOCKICONID_SIID_MEDIACDROM: SHSTOCKICONID = 70;
pub const SHSTOCKICONID_SIID_AUDIOFILES: SHSTOCKICONID = 71;
pub const SHSTOCKICONID_SIID_IMAGEFILES: SHSTOCKICONID = 72;
pub const SHSTOCKICONID_SIID_VIDEOFILES: SHSTOCKICONID = 73;
pub const SHSTOCKICONID_SIID_MIXEDFILES: SHSTOCKICONID = 74;
pub const SHSTOCKICONID_SIID_FOLDERBACK: SHSTOCKICONID = 75;
pub const SHSTOCKICONID_SIID_FOLDERFRONT: SHSTOCKICONID = 76;
pub const SHSTOCKICONID_SIID_SHIELD: SHSTOCKICONID = 77;
pub const SHSTOCKICONID_SIID_WARNING: SHSTOCKICONID = 78;
pub const SHSTOCKICONID_SIID_INFO: SHSTOCKICONID = 79;
pub const SHSTOCKICONID_SIID_ERROR: SHSTOCKICONID = 80;
pub const SHSTOCKICONID_SIID_KEY: SHSTOCKICONID = 81;
pub const SHSTOCKICONID_SIID_SOFTWARE: SHSTOCKICONID = 82;
pub const SHSTOCKICONID_SIID_RENAME: SHSTOCKICONID = 83;
pub const SHSTOCKICONID_SIID_DELETE: SHSTOCKICONID = 84;
pub const SHSTOCKICONID_SIID_MEDIAAUDIODVD: SHSTOCKICONID = 85;
pub const SHSTOCKICONID_SIID_MEDIAMOVIEDVD: SHSTOCKICONID = 86;
pub const SHSTOCKICONID_SIID_MEDIAENHANCEDCD: SHSTOCKICONID = 87;
pub const SHSTOCKICONID_SIID_MEDIAENHANCEDDVD: SHSTOCKICONID = 88;
pub const SHSTOCKICONID_SIID_MEDIAHDDVD: SHSTOCKICONID = 89;
pub const SHSTOCKICONID_SIID_MEDIABLURAY: SHSTOCKICONID = 90;
pub const SHSTOCKICONID_SIID_MEDIAVCD: SHSTOCKICONID = 91;
pub const SHSTOCKICONID_SIID_MEDIADVDPLUSR: SHSTOCKICONID = 92;
pub const SHSTOCKICONID_SIID_MEDIADVDPLUSRW: SHSTOCKICONID = 93;
pub const SHSTOCKICONID_SIID_DESKTOPPC: SHSTOCKICONID = 94;
pub const SHSTOCKICONID_SIID_MOBILEPC: SHSTOCKICONID = 95;
pub const SHSTOCKICONID_SIID_USERS: SHSTOCKICONID = 96;
pub const SHSTOCKICONID_SIID_MEDIASMARTMEDIA: SHSTOCKICONID = 97;
pub const SHSTOCKICONID_SIID_MEDIACOMPACTFLASH: SHSTOCKICONID = 98;
pub const SHSTOCKICONID_SIID_DEVICECELLPHONE: SHSTOCKICONID = 99;
pub const SHSTOCKICONID_SIID_DEVICECAMERA: SHSTOCKICONID = 100;
pub const SHSTOCKICONID_SIID_DEVICEVIDEOCAMERA: SHSTOCKICONID = 101;
pub const SHSTOCKICONID_SIID_DEVICEAUDIOPLAYER: SHSTOCKICONID = 102;
pub const SHSTOCKICONID_SIID_NETWORKCONNECT: SHSTOCKICONID = 103;
pub const SHSTOCKICONID_SIID_INTERNET: SHSTOCKICONID = 104;
pub const SHSTOCKICONID_SIID_ZIPFILE: SHSTOCKICONID = 105;
pub const SHSTOCKICONID_SIID_SETTINGS: SHSTOCKICONID = 106;
pub const SHSTOCKICONID_SIID_DRIVEHDDVD: SHSTOCKICONID = 132;
pub const SHSTOCKICONID_SIID_DRIVEBD: SHSTOCKICONID = 133;
pub const SHSTOCKICONID_SIID_MEDIAHDDVDROM: SHSTOCKICONID = 134;
pub const SHSTOCKICONID_SIID_MEDIAHDDVDR: SHSTOCKICONID = 135;
pub const SHSTOCKICONID_SIID_MEDIAHDDVDRAM: SHSTOCKICONID = 136;
pub const SHSTOCKICONID_SIID_MEDIABDROM: SHSTOCKICONID = 137;
pub const SHSTOCKICONID_SIID_MEDIABDR: SHSTOCKICONID = 138;
pub const SHSTOCKICONID_SIID_MEDIABDRE: SHSTOCKICONID = 139;
pub const SHSTOCKICONID_SIID_CLUSTEREDDRIVE: SHSTOCKICONID = 140;
pub const SHSTOCKICONID_SIID_MAX_ICONS: SHSTOCKICONID = 181;
pub type SHSTOCKICONID = ::std::os::raw::c_int;
extern "C" {
    pub fn SHGetStockIconInfo(
        siid: SHSTOCKICONID,
        uFlags: UINT,
        psii: *mut SHSTOCKICONINFO,
    ) -> HRESULT;
}
extern "C" {
    pub fn SHGetDiskFreeSpaceExA(
        pszDirectoryName: LPCSTR,
        pulFreeBytesAvailableToCaller: *mut ULARGE_INTEGER,
        pulTotalNumberOfBytes: *mut ULARGE_INTEGER,
        pulTotalNumberOfFreeBytes: *mut ULARGE_INTEGER,
    ) -> BOOL;
}
extern "C" {
    pub fn SHGetDiskFreeSpaceExW(
        pszDirectoryName: LPCWSTR,
        pulFreeBytesAvailableToCaller: *mut ULARGE_INTEGER,
        pulTotalNumberOfBytes: *mut ULARGE_INTEGER,
        pulTotalNumberOfFreeBytes: *mut ULARGE_INTEGER,
    ) -> BOOL;
}
extern "C" {
    pub fn SHGetNewLinkInfoA(
        pszLinkTo: LPCSTR,
        pszDir: LPCSTR,
        pszName: LPSTR,
        pfMustCopy: *mut BOOL,
        uFlags: UINT,
    ) -> BOOL;
}
extern "C" {
    pub fn SHGetNewLinkInfoW(
        pszLinkTo: LPCWSTR,
        pszDir: LPCWSTR,
        pszName: LPWSTR,
        pfMustCopy: *mut BOOL,
        uFlags: UINT,
    ) -> BOOL;
}
extern "C" {
    pub fn SHInvokePrinterCommandA(
        hwnd: HWND,
        uAction: UINT,
        lpBuf1: LPCSTR,
        lpBuf2: LPCSTR,
        fModal: BOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn SHInvokePrinterCommandW(
        hwnd: HWND,
        uAction: UINT,
        lpBuf1: LPCWSTR,
        lpBuf2: LPCWSTR,
        fModal: BOOL,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _OPEN_PRINTER_PROPS_INFOA {
    pub dwSize: DWORD,
    pub pszSheetName: LPSTR,
    pub uSheetIndex: UINT,
    pub dwFlags: DWORD,
    pub bModal: BOOL,
}
#[test]
fn bindgen_test_layout__OPEN_PRINTER_PROPS_INFOA() {
    assert_eq!(
        ::std::mem::size_of::<_OPEN_PRINTER_PROPS_INFOA>(),
        32usize,
        concat!("Size of: ", stringify!(_OPEN_PRINTER_PROPS_INFOA))
    );
    assert_eq!(
        ::std::mem::align_of::<_OPEN_PRINTER_PROPS_INFOA>(),
        8usize,
        concat!("Alignment of ", stringify!(_OPEN_PRINTER_PROPS_INFOA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OPEN_PRINTER_PROPS_INFOA>())).dwSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OPEN_PRINTER_PROPS_INFOA),
            "::",
            stringify!(dwSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OPEN_PRINTER_PROPS_INFOA>())).pszSheetName as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_OPEN_PRINTER_PROPS_INFOA),
            "::",
            stringify!(pszSheetName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OPEN_PRINTER_PROPS_INFOA>())).uSheetIndex as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_OPEN_PRINTER_PROPS_INFOA),
            "::",
            stringify!(uSheetIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OPEN_PRINTER_PROPS_INFOA>())).dwFlags as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_OPEN_PRINTER_PROPS_INFOA),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OPEN_PRINTER_PROPS_INFOA>())).bModal as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_OPEN_PRINTER_PROPS_INFOA),
            "::",
            stringify!(bModal)
        )
    );
}
pub type OPEN_PRINTER_PROPS_INFOA = _OPEN_PRINTER_PROPS_INFOA;
pub type POPEN_PRINTER_PROPS_INFOA = *mut _OPEN_PRINTER_PROPS_INFOA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _OPEN_PRINTER_PROPS_INFOW {
    pub dwSize: DWORD,
    pub pszSheetName: LPWSTR,
    pub uSheetIndex: UINT,
    pub dwFlags: DWORD,
    pub bModal: BOOL,
}
#[test]
fn bindgen_test_layout__OPEN_PRINTER_PROPS_INFOW() {
    assert_eq!(
        ::std::mem::size_of::<_OPEN_PRINTER_PROPS_INFOW>(),
        32usize,
        concat!("Size of: ", stringify!(_OPEN_PRINTER_PROPS_INFOW))
    );
    assert_eq!(
        ::std::mem::align_of::<_OPEN_PRINTER_PROPS_INFOW>(),
        8usize,
        concat!("Alignment of ", stringify!(_OPEN_PRINTER_PROPS_INFOW))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OPEN_PRINTER_PROPS_INFOW>())).dwSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OPEN_PRINTER_PROPS_INFOW),
            "::",
            stringify!(dwSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OPEN_PRINTER_PROPS_INFOW>())).pszSheetName as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_OPEN_PRINTER_PROPS_INFOW),
            "::",
            stringify!(pszSheetName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OPEN_PRINTER_PROPS_INFOW>())).uSheetIndex as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_OPEN_PRINTER_PROPS_INFOW),
            "::",
            stringify!(uSheetIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OPEN_PRINTER_PROPS_INFOW>())).dwFlags as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_OPEN_PRINTER_PROPS_INFOW),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OPEN_PRINTER_PROPS_INFOW>())).bModal as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_OPEN_PRINTER_PROPS_INFOW),
            "::",
            stringify!(bModal)
        )
    );
}
pub type OPEN_PRINTER_PROPS_INFOW = _OPEN_PRINTER_PROPS_INFOW;
pub type POPEN_PRINTER_PROPS_INFOW = *mut _OPEN_PRINTER_PROPS_INFOW;
pub type OPEN_PRINTER_PROPS_INFO = OPEN_PRINTER_PROPS_INFOA;
pub type POPEN_PRINTER_PROPS_INFO = POPEN_PRINTER_PROPS_INFOA;
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 SHRemoveLocalizedName(pszPath: PCWSTR) -> HRESULT;
}
extern "C" {
    pub fn SHGetLocalizedName(
        pszPath: PCWSTR,
        pszResModule: PWSTR,
        cch: UINT,
        pidsRes: *mut ::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) -> BOOL;
}
extern "C" {
    pub fn IsLFNDriveW(pszPath: LPCWSTR) -> BOOL;
}
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) -> BOOL;
}
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>;
extern "C" {
    pub fn InitNetworkAddressControl() -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagNC_ADDRESS {
    pub pAddrInfo: *mut NET_ADDRESS_INFO_,
    pub PortNumber: USHORT,
    pub PrefixLength: BYTE,
}
#[test]
fn bindgen_test_layout_tagNC_ADDRESS() {
    assert_eq!(
        ::std::mem::size_of::<tagNC_ADDRESS>(),
        16usize,
        concat!("Size of: ", stringify!(tagNC_ADDRESS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagNC_ADDRESS>(),
        8usize,
        concat!("Alignment of ", stringify!(tagNC_ADDRESS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNC_ADDRESS>())).pAddrInfo as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNC_ADDRESS),
            "::",
            stringify!(pAddrInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNC_ADDRESS>())).PortNumber as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNC_ADDRESS),
            "::",
            stringify!(PortNumber)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagNC_ADDRESS>())).PrefixLength as *const _ as usize },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(tagNC_ADDRESS),
            "::",
            stringify!(PrefixLength)
        )
    );
}
pub type NC_ADDRESS = tagNC_ADDRESS;
pub type PNC_ADDRESS = *mut tagNC_ADDRESS;
extern "C" {
    pub fn SHGetDriveMedia(pszDrive: PCWSTR, pdwMediaContent: *mut DWORD) -> HRESULT;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PERF_DATA_BLOCK {
    pub Signature: [WCHAR; 4usize],
    pub LittleEndian: DWORD,
    pub Version: DWORD,
    pub Revision: DWORD,
    pub TotalByteLength: DWORD,
    pub HeaderLength: DWORD,
    pub NumObjectTypes: DWORD,
    pub DefaultObject: LONG,
    pub SystemTime: SYSTEMTIME,
    pub PerfTime: LARGE_INTEGER,
    pub PerfFreq: LARGE_INTEGER,
    pub PerfTime100nSec: LARGE_INTEGER,
    pub SystemNameLength: DWORD,
    pub SystemNameOffset: DWORD,
}
#[test]
fn bindgen_test_layout__PERF_DATA_BLOCK() {
    assert_eq!(
        ::std::mem::size_of::<_PERF_DATA_BLOCK>(),
        88usize,
        concat!("Size of: ", stringify!(_PERF_DATA_BLOCK))
    );
    assert_eq!(
        ::std::mem::align_of::<_PERF_DATA_BLOCK>(),
        8usize,
        concat!("Alignment of ", stringify!(_PERF_DATA_BLOCK))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PERF_DATA_BLOCK>())).Signature as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_DATA_BLOCK),
            "::",
            stringify!(Signature)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PERF_DATA_BLOCK>())).LittleEndian as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_DATA_BLOCK),
            "::",
            stringify!(LittleEndian)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PERF_DATA_BLOCK>())).Version as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_DATA_BLOCK),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PERF_DATA_BLOCK>())).Revision as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_DATA_BLOCK),
            "::",
            stringify!(Revision)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERF_DATA_BLOCK>())).TotalByteLength as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_DATA_BLOCK),
            "::",
            stringify!(TotalByteLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PERF_DATA_BLOCK>())).HeaderLength as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_DATA_BLOCK),
            "::",
            stringify!(HeaderLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PERF_DATA_BLOCK>())).NumObjectTypes as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_DATA_BLOCK),
            "::",
            stringify!(NumObjectTypes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PERF_DATA_BLOCK>())).DefaultObject as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_DATA_BLOCK),
            "::",
            stringify!(DefaultObject)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PERF_DATA_BLOCK>())).SystemTime as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_DATA_BLOCK),
            "::",
            stringify!(SystemTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PERF_DATA_BLOCK>())).PerfTime as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_DATA_BLOCK),
            "::",
            stringify!(PerfTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PERF_DATA_BLOCK>())).PerfFreq as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_DATA_BLOCK),
            "::",
            stringify!(PerfFreq)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERF_DATA_BLOCK>())).PerfTime100nSec as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_DATA_BLOCK),
            "::",
            stringify!(PerfTime100nSec)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERF_DATA_BLOCK>())).SystemNameLength as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_DATA_BLOCK),
            "::",
            stringify!(SystemNameLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERF_DATA_BLOCK>())).SystemNameOffset as *const _ as usize
        },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_DATA_BLOCK),
            "::",
            stringify!(SystemNameOffset)
        )
    );
}
pub type PERF_DATA_BLOCK = _PERF_DATA_BLOCK;
pub type PPERF_DATA_BLOCK = *mut _PERF_DATA_BLOCK;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PERF_OBJECT_TYPE {
    pub TotalByteLength: DWORD,
    pub DefinitionLength: DWORD,
    pub HeaderLength: DWORD,
    pub ObjectNameTitleIndex: DWORD,
    pub ObjectNameTitle: DWORD,
    pub ObjectHelpTitleIndex: DWORD,
    pub ObjectHelpTitle: DWORD,
    pub DetailLevel: DWORD,
    pub NumCounters: DWORD,
    pub DefaultCounter: LONG,
    pub NumInstances: LONG,
    pub CodePage: DWORD,
    pub PerfTime: LARGE_INTEGER,
    pub PerfFreq: LARGE_INTEGER,
}
#[test]
fn bindgen_test_layout__PERF_OBJECT_TYPE() {
    assert_eq!(
        ::std::mem::size_of::<_PERF_OBJECT_TYPE>(),
        64usize,
        concat!("Size of: ", stringify!(_PERF_OBJECT_TYPE))
    );
    assert_eq!(
        ::std::mem::align_of::<_PERF_OBJECT_TYPE>(),
        8usize,
        concat!("Alignment of ", stringify!(_PERF_OBJECT_TYPE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERF_OBJECT_TYPE>())).TotalByteLength as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_OBJECT_TYPE),
            "::",
            stringify!(TotalByteLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERF_OBJECT_TYPE>())).DefinitionLength as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_OBJECT_TYPE),
            "::",
            stringify!(DefinitionLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PERF_OBJECT_TYPE>())).HeaderLength as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_OBJECT_TYPE),
            "::",
            stringify!(HeaderLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERF_OBJECT_TYPE>())).ObjectNameTitleIndex as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_OBJECT_TYPE),
            "::",
            stringify!(ObjectNameTitleIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERF_OBJECT_TYPE>())).ObjectNameTitle as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_OBJECT_TYPE),
            "::",
            stringify!(ObjectNameTitle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERF_OBJECT_TYPE>())).ObjectHelpTitleIndex as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_OBJECT_TYPE),
            "::",
            stringify!(ObjectHelpTitleIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERF_OBJECT_TYPE>())).ObjectHelpTitle as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_OBJECT_TYPE),
            "::",
            stringify!(ObjectHelpTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PERF_OBJECT_TYPE>())).DetailLevel as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_OBJECT_TYPE),
            "::",
            stringify!(DetailLevel)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PERF_OBJECT_TYPE>())).NumCounters as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_OBJECT_TYPE),
            "::",
            stringify!(NumCounters)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERF_OBJECT_TYPE>())).DefaultCounter as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_OBJECT_TYPE),
            "::",
            stringify!(DefaultCounter)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PERF_OBJECT_TYPE>())).NumInstances as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_OBJECT_TYPE),
            "::",
            stringify!(NumInstances)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PERF_OBJECT_TYPE>())).CodePage as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_OBJECT_TYPE),
            "::",
            stringify!(CodePage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PERF_OBJECT_TYPE>())).PerfTime as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_OBJECT_TYPE),
            "::",
            stringify!(PerfTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PERF_OBJECT_TYPE>())).PerfFreq as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_OBJECT_TYPE),
            "::",
            stringify!(PerfFreq)
        )
    );
}
pub type PERF_OBJECT_TYPE = _PERF_OBJECT_TYPE;
pub type PPERF_OBJECT_TYPE = *mut _PERF_OBJECT_TYPE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PERF_COUNTER_DEFINITION {
    pub ByteLength: DWORD,
    pub CounterNameTitleIndex: DWORD,
    pub CounterNameTitle: DWORD,
    pub CounterHelpTitleIndex: DWORD,
    pub CounterHelpTitle: DWORD,
    pub DefaultScale: LONG,
    pub DetailLevel: DWORD,
    pub CounterType: DWORD,
    pub CounterSize: DWORD,
    pub CounterOffset: DWORD,
}
#[test]
fn bindgen_test_layout__PERF_COUNTER_DEFINITION() {
    assert_eq!(
        ::std::mem::size_of::<_PERF_COUNTER_DEFINITION>(),
        40usize,
        concat!("Size of: ", stringify!(_PERF_COUNTER_DEFINITION))
    );
    assert_eq!(
        ::std::mem::align_of::<_PERF_COUNTER_DEFINITION>(),
        4usize,
        concat!("Alignment of ", stringify!(_PERF_COUNTER_DEFINITION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERF_COUNTER_DEFINITION>())).ByteLength as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_COUNTER_DEFINITION),
            "::",
            stringify!(ByteLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERF_COUNTER_DEFINITION>())).CounterNameTitleIndex as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_COUNTER_DEFINITION),
            "::",
            stringify!(CounterNameTitleIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERF_COUNTER_DEFINITION>())).CounterNameTitle as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_COUNTER_DEFINITION),
            "::",
            stringify!(CounterNameTitle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERF_COUNTER_DEFINITION>())).CounterHelpTitleIndex as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_COUNTER_DEFINITION),
            "::",
            stringify!(CounterHelpTitleIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERF_COUNTER_DEFINITION>())).CounterHelpTitle as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_COUNTER_DEFINITION),
            "::",
            stringify!(CounterHelpTitle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERF_COUNTER_DEFINITION>())).DefaultScale as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_COUNTER_DEFINITION),
            "::",
            stringify!(DefaultScale)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERF_COUNTER_DEFINITION>())).DetailLevel as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_COUNTER_DEFINITION),
            "::",
            stringify!(DetailLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERF_COUNTER_DEFINITION>())).CounterType as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_COUNTER_DEFINITION),
            "::",
            stringify!(CounterType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERF_COUNTER_DEFINITION>())).CounterSize as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_COUNTER_DEFINITION),
            "::",
            stringify!(CounterSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERF_COUNTER_DEFINITION>())).CounterOffset as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_COUNTER_DEFINITION),
            "::",
            stringify!(CounterOffset)
        )
    );
}
pub type PERF_COUNTER_DEFINITION = _PERF_COUNTER_DEFINITION;
pub type PPERF_COUNTER_DEFINITION = *mut _PERF_COUNTER_DEFINITION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PERF_INSTANCE_DEFINITION {
    pub ByteLength: DWORD,
    pub ParentObjectTitleIndex: DWORD,
    pub ParentObjectInstance: DWORD,
    pub UniqueID: LONG,
    pub NameOffset: DWORD,
    pub NameLength: DWORD,
}
#[test]
fn bindgen_test_layout__PERF_INSTANCE_DEFINITION() {
    assert_eq!(
        ::std::mem::size_of::<_PERF_INSTANCE_DEFINITION>(),
        24usize,
        concat!("Size of: ", stringify!(_PERF_INSTANCE_DEFINITION))
    );
    assert_eq!(
        ::std::mem::align_of::<_PERF_INSTANCE_DEFINITION>(),
        4usize,
        concat!("Alignment of ", stringify!(_PERF_INSTANCE_DEFINITION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERF_INSTANCE_DEFINITION>())).ByteLength as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_INSTANCE_DEFINITION),
            "::",
            stringify!(ByteLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERF_INSTANCE_DEFINITION>())).ParentObjectTitleIndex as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_INSTANCE_DEFINITION),
            "::",
            stringify!(ParentObjectTitleIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERF_INSTANCE_DEFINITION>())).ParentObjectInstance as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_INSTANCE_DEFINITION),
            "::",
            stringify!(ParentObjectInstance)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERF_INSTANCE_DEFINITION>())).UniqueID as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_INSTANCE_DEFINITION),
            "::",
            stringify!(UniqueID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERF_INSTANCE_DEFINITION>())).NameOffset as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_INSTANCE_DEFINITION),
            "::",
            stringify!(NameOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERF_INSTANCE_DEFINITION>())).NameLength as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_INSTANCE_DEFINITION),
            "::",
            stringify!(NameLength)
        )
    );
}
pub type PERF_INSTANCE_DEFINITION = _PERF_INSTANCE_DEFINITION;
pub type PPERF_INSTANCE_DEFINITION = *mut _PERF_INSTANCE_DEFINITION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PERF_COUNTER_BLOCK {
    pub ByteLength: DWORD,
}
#[test]
fn bindgen_test_layout__PERF_COUNTER_BLOCK() {
    assert_eq!(
        ::std::mem::size_of::<_PERF_COUNTER_BLOCK>(),
        4usize,
        concat!("Size of: ", stringify!(_PERF_COUNTER_BLOCK))
    );
    assert_eq!(
        ::std::mem::align_of::<_PERF_COUNTER_BLOCK>(),
        4usize,
        concat!("Alignment of ", stringify!(_PERF_COUNTER_BLOCK))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PERF_COUNTER_BLOCK>())).ByteLength as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_COUNTER_BLOCK),
            "::",
            stringify!(ByteLength)
        )
    );
}
pub type PERF_COUNTER_BLOCK = _PERF_COUNTER_BLOCK;
pub type PPERF_COUNTER_BLOCK = *mut _PERF_COUNTER_BLOCK;
pub type ALG_ID = ::std::os::raw::c_uint;
pub type HCRYPTPROV = ULONG_PTR;
pub type HCRYPTKEY = ULONG_PTR;
pub type HCRYPTHASH = ULONG_PTR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CMS_KEY_INFO {
    pub dwVersion: DWORD,
    pub Algid: ALG_ID,
    pub pbOID: *mut BYTE,
    pub cbOID: DWORD,
}
#[test]
fn bindgen_test_layout__CMS_KEY_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMS_KEY_INFO>(),
        24usize,
        concat!("Size of: ", stringify!(_CMS_KEY_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMS_KEY_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMS_KEY_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMS_KEY_INFO>())).dwVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMS_KEY_INFO),
            "::",
            stringify!(dwVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMS_KEY_INFO>())).Algid as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMS_KEY_INFO),
            "::",
            stringify!(Algid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMS_KEY_INFO>())).pbOID as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMS_KEY_INFO),
            "::",
            stringify!(pbOID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMS_KEY_INFO>())).cbOID as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMS_KEY_INFO),
            "::",
            stringify!(cbOID)
        )
    );
}
pub type CMS_KEY_INFO = _CMS_KEY_INFO;
pub type PCMS_KEY_INFO = *mut _CMS_KEY_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _HMAC_Info {
    pub HashAlgid: ALG_ID,
    pub pbInnerString: *mut BYTE,
    pub cbInnerString: DWORD,
    pub pbOuterString: *mut BYTE,
    pub cbOuterString: DWORD,
}
#[test]
fn bindgen_test_layout__HMAC_Info() {
    assert_eq!(
        ::std::mem::size_of::<_HMAC_Info>(),
        40usize,
        concat!("Size of: ", stringify!(_HMAC_Info))
    );
    assert_eq!(
        ::std::mem::align_of::<_HMAC_Info>(),
        8usize,
        concat!("Alignment of ", stringify!(_HMAC_Info))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_HMAC_Info>())).HashAlgid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_HMAC_Info),
            "::",
            stringify!(HashAlgid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_HMAC_Info>())).pbInnerString as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_HMAC_Info),
            "::",
            stringify!(pbInnerString)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_HMAC_Info>())).cbInnerString as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_HMAC_Info),
            "::",
            stringify!(cbInnerString)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_HMAC_Info>())).pbOuterString as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_HMAC_Info),
            "::",
            stringify!(pbOuterString)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_HMAC_Info>())).cbOuterString as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_HMAC_Info),
            "::",
            stringify!(cbOuterString)
        )
    );
}
pub type HMAC_INFO = _HMAC_Info;
pub type PHMAC_INFO = *mut _HMAC_Info;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCHANNEL_ALG {
    pub dwUse: DWORD,
    pub Algid: ALG_ID,
    pub cBits: DWORD,
    pub dwFlags: DWORD,
    pub dwReserved: DWORD,
}
#[test]
fn bindgen_test_layout__SCHANNEL_ALG() {
    assert_eq!(
        ::std::mem::size_of::<_SCHANNEL_ALG>(),
        20usize,
        concat!("Size of: ", stringify!(_SCHANNEL_ALG))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCHANNEL_ALG>(),
        4usize,
        concat!("Alignment of ", stringify!(_SCHANNEL_ALG))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCHANNEL_ALG>())).dwUse as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCHANNEL_ALG),
            "::",
            stringify!(dwUse)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCHANNEL_ALG>())).Algid as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCHANNEL_ALG),
            "::",
            stringify!(Algid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCHANNEL_ALG>())).cBits as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCHANNEL_ALG),
            "::",
            stringify!(cBits)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCHANNEL_ALG>())).dwFlags as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCHANNEL_ALG),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCHANNEL_ALG>())).dwReserved as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCHANNEL_ALG),
            "::",
            stringify!(dwReserved)
        )
    );
}
pub type SCHANNEL_ALG = _SCHANNEL_ALG;
pub type PSCHANNEL_ALG = *mut _SCHANNEL_ALG;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PROV_ENUMALGS {
    pub aiAlgid: ALG_ID,
    pub dwBitLen: DWORD,
    pub dwNameLen: DWORD,
    pub szName: [CHAR; 20usize],
}
#[test]
fn bindgen_test_layout__PROV_ENUMALGS() {
    assert_eq!(
        ::std::mem::size_of::<_PROV_ENUMALGS>(),
        32usize,
        concat!("Size of: ", stringify!(_PROV_ENUMALGS))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROV_ENUMALGS>(),
        4usize,
        concat!("Alignment of ", stringify!(_PROV_ENUMALGS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROV_ENUMALGS>())).aiAlgid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROV_ENUMALGS),
            "::",
            stringify!(aiAlgid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROV_ENUMALGS>())).dwBitLen as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROV_ENUMALGS),
            "::",
            stringify!(dwBitLen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROV_ENUMALGS>())).dwNameLen as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROV_ENUMALGS),
            "::",
            stringify!(dwNameLen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROV_ENUMALGS>())).szName as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROV_ENUMALGS),
            "::",
            stringify!(szName)
        )
    );
}
pub type PROV_ENUMALGS = _PROV_ENUMALGS;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PROV_ENUMALGS_EX {
    pub aiAlgid: ALG_ID,
    pub dwDefaultLen: DWORD,
    pub dwMinLen: DWORD,
    pub dwMaxLen: DWORD,
    pub dwProtocols: DWORD,
    pub dwNameLen: DWORD,
    pub szName: [CHAR; 20usize],
    pub dwLongNameLen: DWORD,
    pub szLongName: [CHAR; 40usize],
}
#[test]
fn bindgen_test_layout__PROV_ENUMALGS_EX() {
    assert_eq!(
        ::std::mem::size_of::<_PROV_ENUMALGS_EX>(),
        88usize,
        concat!("Size of: ", stringify!(_PROV_ENUMALGS_EX))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROV_ENUMALGS_EX>(),
        4usize,
        concat!("Alignment of ", stringify!(_PROV_ENUMALGS_EX))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROV_ENUMALGS_EX>())).aiAlgid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROV_ENUMALGS_EX),
            "::",
            stringify!(aiAlgid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROV_ENUMALGS_EX>())).dwDefaultLen as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROV_ENUMALGS_EX),
            "::",
            stringify!(dwDefaultLen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROV_ENUMALGS_EX>())).dwMinLen as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROV_ENUMALGS_EX),
            "::",
            stringify!(dwMinLen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROV_ENUMALGS_EX>())).dwMaxLen as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROV_ENUMALGS_EX),
            "::",
            stringify!(dwMaxLen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROV_ENUMALGS_EX>())).dwProtocols as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROV_ENUMALGS_EX),
            "::",
            stringify!(dwProtocols)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROV_ENUMALGS_EX>())).dwNameLen as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROV_ENUMALGS_EX),
            "::",
            stringify!(dwNameLen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROV_ENUMALGS_EX>())).szName as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROV_ENUMALGS_EX),
            "::",
            stringify!(szName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROV_ENUMALGS_EX>())).dwLongNameLen as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROV_ENUMALGS_EX),
            "::",
            stringify!(dwLongNameLen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROV_ENUMALGS_EX>())).szLongName as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROV_ENUMALGS_EX),
            "::",
            stringify!(szLongName)
        )
    );
}
pub type PROV_ENUMALGS_EX = _PROV_ENUMALGS_EX;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PUBLICKEYSTRUC {
    pub bType: BYTE,
    pub bVersion: BYTE,
    pub reserved: WORD,
    pub aiKeyAlg: ALG_ID,
}
#[test]
fn bindgen_test_layout__PUBLICKEYSTRUC() {
    assert_eq!(
        ::std::mem::size_of::<_PUBLICKEYSTRUC>(),
        8usize,
        concat!("Size of: ", stringify!(_PUBLICKEYSTRUC))
    );
    assert_eq!(
        ::std::mem::align_of::<_PUBLICKEYSTRUC>(),
        4usize,
        concat!("Alignment of ", stringify!(_PUBLICKEYSTRUC))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PUBLICKEYSTRUC>())).bType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PUBLICKEYSTRUC),
            "::",
            stringify!(bType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PUBLICKEYSTRUC>())).bVersion as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_PUBLICKEYSTRUC),
            "::",
            stringify!(bVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PUBLICKEYSTRUC>())).reserved as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_PUBLICKEYSTRUC),
            "::",
            stringify!(reserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PUBLICKEYSTRUC>())).aiKeyAlg as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PUBLICKEYSTRUC),
            "::",
            stringify!(aiKeyAlg)
        )
    );
}
pub type BLOBHEADER = _PUBLICKEYSTRUC;
pub type PUBLICKEYSTRUC = _PUBLICKEYSTRUC;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _RSAPUBKEY {
    pub magic: DWORD,
    pub bitlen: DWORD,
    pub pubexp: DWORD,
}
#[test]
fn bindgen_test_layout__RSAPUBKEY() {
    assert_eq!(
        ::std::mem::size_of::<_RSAPUBKEY>(),
        12usize,
        concat!("Size of: ", stringify!(_RSAPUBKEY))
    );
    assert_eq!(
        ::std::mem::align_of::<_RSAPUBKEY>(),
        4usize,
        concat!("Alignment of ", stringify!(_RSAPUBKEY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RSAPUBKEY>())).magic as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RSAPUBKEY),
            "::",
            stringify!(magic)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RSAPUBKEY>())).bitlen as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_RSAPUBKEY),
            "::",
            stringify!(bitlen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RSAPUBKEY>())).pubexp as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_RSAPUBKEY),
            "::",
            stringify!(pubexp)
        )
    );
}
pub type RSAPUBKEY = _RSAPUBKEY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PUBKEY {
    pub magic: DWORD,
    pub bitlen: DWORD,
}
#[test]
fn bindgen_test_layout__PUBKEY() {
    assert_eq!(
        ::std::mem::size_of::<_PUBKEY>(),
        8usize,
        concat!("Size of: ", stringify!(_PUBKEY))
    );
    assert_eq!(
        ::std::mem::align_of::<_PUBKEY>(),
        4usize,
        concat!("Alignment of ", stringify!(_PUBKEY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PUBKEY>())).magic as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PUBKEY),
            "::",
            stringify!(magic)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PUBKEY>())).bitlen as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PUBKEY),
            "::",
            stringify!(bitlen)
        )
    );
}
pub type DHPUBKEY = _PUBKEY;
pub type DSSPUBKEY = _PUBKEY;
pub type KEAPUBKEY = _PUBKEY;
pub type TEKPUBKEY = _PUBKEY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DSSSEED {
    pub counter: DWORD,
    pub seed: [BYTE; 20usize],
}
#[test]
fn bindgen_test_layout__DSSSEED() {
    assert_eq!(
        ::std::mem::size_of::<_DSSSEED>(),
        24usize,
        concat!("Size of: ", stringify!(_DSSSEED))
    );
    assert_eq!(
        ::std::mem::align_of::<_DSSSEED>(),
        4usize,
        concat!("Alignment of ", stringify!(_DSSSEED))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DSSSEED>())).counter as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DSSSEED),
            "::",
            stringify!(counter)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DSSSEED>())).seed as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DSSSEED),
            "::",
            stringify!(seed)
        )
    );
}
pub type DSSSEED = _DSSSEED;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PUBKEYVER3 {
    pub magic: DWORD,
    pub bitlenP: DWORD,
    pub bitlenQ: DWORD,
    pub bitlenJ: DWORD,
    pub DSSSeed: DSSSEED,
}
#[test]
fn bindgen_test_layout__PUBKEYVER3() {
    assert_eq!(
        ::std::mem::size_of::<_PUBKEYVER3>(),
        40usize,
        concat!("Size of: ", stringify!(_PUBKEYVER3))
    );
    assert_eq!(
        ::std::mem::align_of::<_PUBKEYVER3>(),
        4usize,
        concat!("Alignment of ", stringify!(_PUBKEYVER3))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PUBKEYVER3>())).magic as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PUBKEYVER3),
            "::",
            stringify!(magic)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PUBKEYVER3>())).bitlenP as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PUBKEYVER3),
            "::",
            stringify!(bitlenP)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PUBKEYVER3>())).bitlenQ as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PUBKEYVER3),
            "::",
            stringify!(bitlenQ)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PUBKEYVER3>())).bitlenJ as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_PUBKEYVER3),
            "::",
            stringify!(bitlenJ)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PUBKEYVER3>())).DSSSeed as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PUBKEYVER3),
            "::",
            stringify!(DSSSeed)
        )
    );
}
pub type DHPUBKEY_VER3 = _PUBKEYVER3;
pub type DSSPUBKEY_VER3 = _PUBKEYVER3;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRIVKEYVER3 {
    pub magic: DWORD,
    pub bitlenP: DWORD,
    pub bitlenQ: DWORD,
    pub bitlenJ: DWORD,
    pub bitlenX: DWORD,
    pub DSSSeed: DSSSEED,
}
#[test]
fn bindgen_test_layout__PRIVKEYVER3() {
    assert_eq!(
        ::std::mem::size_of::<_PRIVKEYVER3>(),
        44usize,
        concat!("Size of: ", stringify!(_PRIVKEYVER3))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRIVKEYVER3>(),
        4usize,
        concat!("Alignment of ", stringify!(_PRIVKEYVER3))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRIVKEYVER3>())).magic as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRIVKEYVER3),
            "::",
            stringify!(magic)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRIVKEYVER3>())).bitlenP as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRIVKEYVER3),
            "::",
            stringify!(bitlenP)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRIVKEYVER3>())).bitlenQ as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRIVKEYVER3),
            "::",
            stringify!(bitlenQ)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRIVKEYVER3>())).bitlenJ as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRIVKEYVER3),
            "::",
            stringify!(bitlenJ)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRIVKEYVER3>())).bitlenX as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRIVKEYVER3),
            "::",
            stringify!(bitlenX)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRIVKEYVER3>())).DSSSeed as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRIVKEYVER3),
            "::",
            stringify!(DSSSeed)
        )
    );
}
pub type DHPRIVKEY_VER3 = _PRIVKEYVER3;
pub type DSSPRIVKEY_VER3 = _PRIVKEYVER3;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _KEY_TYPE_SUBTYPE {
    pub dwKeySpec: DWORD,
    pub Type: GUID,
    pub Subtype: GUID,
}
#[test]
fn bindgen_test_layout__KEY_TYPE_SUBTYPE() {
    assert_eq!(
        ::std::mem::size_of::<_KEY_TYPE_SUBTYPE>(),
        36usize,
        concat!("Size of: ", stringify!(_KEY_TYPE_SUBTYPE))
    );
    assert_eq!(
        ::std::mem::align_of::<_KEY_TYPE_SUBTYPE>(),
        4usize,
        concat!("Alignment of ", stringify!(_KEY_TYPE_SUBTYPE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_KEY_TYPE_SUBTYPE>())).dwKeySpec as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_KEY_TYPE_SUBTYPE),
            "::",
            stringify!(dwKeySpec)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_KEY_TYPE_SUBTYPE>())).Type as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_KEY_TYPE_SUBTYPE),
            "::",
            stringify!(Type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_KEY_TYPE_SUBTYPE>())).Subtype as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_KEY_TYPE_SUBTYPE),
            "::",
            stringify!(Subtype)
        )
    );
}
pub type KEY_TYPE_SUBTYPE = _KEY_TYPE_SUBTYPE;
pub type PKEY_TYPE_SUBTYPE = *mut _KEY_TYPE_SUBTYPE;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CERT_FORTEZZA_DATA_PROP {
    pub SerialNumber: [::std::os::raw::c_uchar; 8usize],
    pub CertIndex: ::std::os::raw::c_int,
    pub CertLabel: [::std::os::raw::c_uchar; 36usize],
}
#[test]
fn bindgen_test_layout__CERT_FORTEZZA_DATA_PROP() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_FORTEZZA_DATA_PROP>(),
        48usize,
        concat!("Size of: ", stringify!(_CERT_FORTEZZA_DATA_PROP))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_FORTEZZA_DATA_PROP>(),
        4usize,
        concat!("Alignment of ", stringify!(_CERT_FORTEZZA_DATA_PROP))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_FORTEZZA_DATA_PROP>())).SerialNumber as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_FORTEZZA_DATA_PROP),
            "::",
            stringify!(SerialNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_FORTEZZA_DATA_PROP>())).CertIndex as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_FORTEZZA_DATA_PROP),
            "::",
            stringify!(CertIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_FORTEZZA_DATA_PROP>())).CertLabel as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_FORTEZZA_DATA_PROP),
            "::",
            stringify!(CertLabel)
        )
    );
}
pub type CERT_FORTEZZA_DATA_PROP = _CERT_FORTEZZA_DATA_PROP;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CRYPT_RC4_KEY_STATE {
    pub Key: [::std::os::raw::c_uchar; 16usize],
    pub SBox: [::std::os::raw::c_uchar; 256usize],
    pub i: ::std::os::raw::c_uchar,
    pub j: ::std::os::raw::c_uchar,
}
#[test]
fn bindgen_test_layout__CRYPT_RC4_KEY_STATE() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_RC4_KEY_STATE>(),
        274usize,
        concat!("Size of: ", stringify!(_CRYPT_RC4_KEY_STATE))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_RC4_KEY_STATE>(),
        1usize,
        concat!("Alignment of ", stringify!(_CRYPT_RC4_KEY_STATE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_RC4_KEY_STATE>())).Key as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_RC4_KEY_STATE),
            "::",
            stringify!(Key)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_RC4_KEY_STATE>())).SBox as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_RC4_KEY_STATE),
            "::",
            stringify!(SBox)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_RC4_KEY_STATE>())).i as *const _ as usize },
        272usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_RC4_KEY_STATE),
            "::",
            stringify!(i)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_RC4_KEY_STATE>())).j as *const _ as usize },
        273usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_RC4_KEY_STATE),
            "::",
            stringify!(j)
        )
    );
}
pub type CRYPT_RC4_KEY_STATE = _CRYPT_RC4_KEY_STATE;
pub type PCRYPT_RC4_KEY_STATE = *mut _CRYPT_RC4_KEY_STATE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_DES_KEY_STATE {
    pub Key: [::std::os::raw::c_uchar; 8usize],
    pub IV: [::std::os::raw::c_uchar; 8usize],
    pub Feedback: [::std::os::raw::c_uchar; 8usize],
}
#[test]
fn bindgen_test_layout__CRYPT_DES_KEY_STATE() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_DES_KEY_STATE>(),
        24usize,
        concat!("Size of: ", stringify!(_CRYPT_DES_KEY_STATE))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_DES_KEY_STATE>(),
        1usize,
        concat!("Alignment of ", stringify!(_CRYPT_DES_KEY_STATE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_DES_KEY_STATE>())).Key as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_DES_KEY_STATE),
            "::",
            stringify!(Key)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_DES_KEY_STATE>())).IV as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_DES_KEY_STATE),
            "::",
            stringify!(IV)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_DES_KEY_STATE>())).Feedback as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_DES_KEY_STATE),
            "::",
            stringify!(Feedback)
        )
    );
}
pub type CRYPT_DES_KEY_STATE = _CRYPT_DES_KEY_STATE;
pub type PCRYPT_DES_KEY_STATE = *mut _CRYPT_DES_KEY_STATE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_3DES_KEY_STATE {
    pub Key: [::std::os::raw::c_uchar; 24usize],
    pub IV: [::std::os::raw::c_uchar; 8usize],
    pub Feedback: [::std::os::raw::c_uchar; 8usize],
}
#[test]
fn bindgen_test_layout__CRYPT_3DES_KEY_STATE() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_3DES_KEY_STATE>(),
        40usize,
        concat!("Size of: ", stringify!(_CRYPT_3DES_KEY_STATE))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_3DES_KEY_STATE>(),
        1usize,
        concat!("Alignment of ", stringify!(_CRYPT_3DES_KEY_STATE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_3DES_KEY_STATE>())).Key as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_3DES_KEY_STATE),
            "::",
            stringify!(Key)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_3DES_KEY_STATE>())).IV as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_3DES_KEY_STATE),
            "::",
            stringify!(IV)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_3DES_KEY_STATE>())).Feedback as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_3DES_KEY_STATE),
            "::",
            stringify!(Feedback)
        )
    );
}
pub type CRYPT_3DES_KEY_STATE = _CRYPT_3DES_KEY_STATE;
pub type PCRYPT_3DES_KEY_STATE = *mut _CRYPT_3DES_KEY_STATE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_AES_128_KEY_STATE {
    pub Key: [::std::os::raw::c_uchar; 16usize],
    pub IV: [::std::os::raw::c_uchar; 16usize],
    pub EncryptionState: [[::std::os::raw::c_uchar; 16usize]; 11usize],
    pub DecryptionState: [[::std::os::raw::c_uchar; 16usize]; 11usize],
    pub Feedback: [::std::os::raw::c_uchar; 16usize],
}
#[test]
fn bindgen_test_layout__CRYPT_AES_128_KEY_STATE() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_AES_128_KEY_STATE>(),
        400usize,
        concat!("Size of: ", stringify!(_CRYPT_AES_128_KEY_STATE))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_AES_128_KEY_STATE>(),
        1usize,
        concat!("Alignment of ", stringify!(_CRYPT_AES_128_KEY_STATE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_AES_128_KEY_STATE>())).Key as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_AES_128_KEY_STATE),
            "::",
            stringify!(Key)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_AES_128_KEY_STATE>())).IV as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_AES_128_KEY_STATE),
            "::",
            stringify!(IV)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_AES_128_KEY_STATE>())).EncryptionState as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_AES_128_KEY_STATE),
            "::",
            stringify!(EncryptionState)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_AES_128_KEY_STATE>())).DecryptionState as *const _
                as usize
        },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_AES_128_KEY_STATE),
            "::",
            stringify!(DecryptionState)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_AES_128_KEY_STATE>())).Feedback as *const _ as usize
        },
        384usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_AES_128_KEY_STATE),
            "::",
            stringify!(Feedback)
        )
    );
}
pub type CRYPT_AES_128_KEY_STATE = _CRYPT_AES_128_KEY_STATE;
pub type PCRYPT_AES_128_KEY_STATE = *mut _CRYPT_AES_128_KEY_STATE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_AES_256_KEY_STATE {
    pub Key: [::std::os::raw::c_uchar; 32usize],
    pub IV: [::std::os::raw::c_uchar; 16usize],
    pub EncryptionState: [[::std::os::raw::c_uchar; 16usize]; 15usize],
    pub DecryptionState: [[::std::os::raw::c_uchar; 16usize]; 15usize],
    pub Feedback: [::std::os::raw::c_uchar; 16usize],
}
#[test]
fn bindgen_test_layout__CRYPT_AES_256_KEY_STATE() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_AES_256_KEY_STATE>(),
        544usize,
        concat!("Size of: ", stringify!(_CRYPT_AES_256_KEY_STATE))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_AES_256_KEY_STATE>(),
        1usize,
        concat!("Alignment of ", stringify!(_CRYPT_AES_256_KEY_STATE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_AES_256_KEY_STATE>())).Key as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_AES_256_KEY_STATE),
            "::",
            stringify!(Key)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_AES_256_KEY_STATE>())).IV as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_AES_256_KEY_STATE),
            "::",
            stringify!(IV)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_AES_256_KEY_STATE>())).EncryptionState as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_AES_256_KEY_STATE),
            "::",
            stringify!(EncryptionState)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_AES_256_KEY_STATE>())).DecryptionState as *const _
                as usize
        },
        288usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_AES_256_KEY_STATE),
            "::",
            stringify!(DecryptionState)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_AES_256_KEY_STATE>())).Feedback as *const _ as usize
        },
        528usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_AES_256_KEY_STATE),
            "::",
            stringify!(Feedback)
        )
    );
}
pub type CRYPT_AES_256_KEY_STATE = _CRYPT_AES_256_KEY_STATE;
pub type PCRYPT_AES_256_KEY_STATE = *mut _CRYPT_AES_256_KEY_STATE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPTOAPI_BLOB {
    pub cbData: DWORD,
    pub pbData: *mut BYTE,
}
#[test]
fn bindgen_test_layout__CRYPTOAPI_BLOB() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPTOAPI_BLOB>(),
        16usize,
        concat!("Size of: ", stringify!(_CRYPTOAPI_BLOB))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPTOAPI_BLOB>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPTOAPI_BLOB))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPTOAPI_BLOB>())).cbData as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPTOAPI_BLOB),
            "::",
            stringify!(cbData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPTOAPI_BLOB>())).pbData as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPTOAPI_BLOB),
            "::",
            stringify!(pbData)
        )
    );
}
pub type CRYPT_INTEGER_BLOB = _CRYPTOAPI_BLOB;
pub type PCRYPT_INTEGER_BLOB = *mut _CRYPTOAPI_BLOB;
pub type CRYPT_UINT_BLOB = _CRYPTOAPI_BLOB;
pub type PCRYPT_UINT_BLOB = *mut _CRYPTOAPI_BLOB;
pub type CRYPT_OBJID_BLOB = _CRYPTOAPI_BLOB;
pub type PCRYPT_OBJID_BLOB = *mut _CRYPTOAPI_BLOB;
pub type CERT_NAME_BLOB = _CRYPTOAPI_BLOB;
pub type PCERT_NAME_BLOB = *mut _CRYPTOAPI_BLOB;
pub type CERT_RDN_VALUE_BLOB = _CRYPTOAPI_BLOB;
pub type PCERT_RDN_VALUE_BLOB = *mut _CRYPTOAPI_BLOB;
pub type CERT_BLOB = _CRYPTOAPI_BLOB;
pub type PCERT_BLOB = *mut _CRYPTOAPI_BLOB;
pub type CRL_BLOB = _CRYPTOAPI_BLOB;
pub type PCRL_BLOB = *mut _CRYPTOAPI_BLOB;
pub type DATA_BLOB = _CRYPTOAPI_BLOB;
pub type PDATA_BLOB = *mut _CRYPTOAPI_BLOB;
pub type CRYPT_DATA_BLOB = _CRYPTOAPI_BLOB;
pub type PCRYPT_DATA_BLOB = *mut _CRYPTOAPI_BLOB;
pub type CRYPT_HASH_BLOB = _CRYPTOAPI_BLOB;
pub type PCRYPT_HASH_BLOB = *mut _CRYPTOAPI_BLOB;
pub type CRYPT_DIGEST_BLOB = _CRYPTOAPI_BLOB;
pub type PCRYPT_DIGEST_BLOB = *mut _CRYPTOAPI_BLOB;
pub type CRYPT_DER_BLOB = _CRYPTOAPI_BLOB;
pub type PCRYPT_DER_BLOB = *mut _CRYPTOAPI_BLOB;
pub type CRYPT_ATTR_BLOB = _CRYPTOAPI_BLOB;
pub type PCRYPT_ATTR_BLOB = *mut _CRYPTOAPI_BLOB;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CMS_DH_KEY_INFO {
    pub dwVersion: DWORD,
    pub Algid: ALG_ID,
    pub pszContentEncObjId: LPSTR,
    pub PubInfo: CRYPT_DATA_BLOB,
    pub pReserved: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout__CMS_DH_KEY_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMS_DH_KEY_INFO>(),
        40usize,
        concat!("Size of: ", stringify!(_CMS_DH_KEY_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMS_DH_KEY_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMS_DH_KEY_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMS_DH_KEY_INFO>())).dwVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMS_DH_KEY_INFO),
            "::",
            stringify!(dwVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMS_DH_KEY_INFO>())).Algid as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMS_DH_KEY_INFO),
            "::",
            stringify!(Algid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMS_DH_KEY_INFO>())).pszContentEncObjId as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMS_DH_KEY_INFO),
            "::",
            stringify!(pszContentEncObjId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMS_DH_KEY_INFO>())).PubInfo as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMS_DH_KEY_INFO),
            "::",
            stringify!(PubInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMS_DH_KEY_INFO>())).pReserved as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMS_DH_KEY_INFO),
            "::",
            stringify!(pReserved)
        )
    );
}
pub type CMS_DH_KEY_INFO = _CMS_DH_KEY_INFO;
pub type PCMS_DH_KEY_INFO = *mut _CMS_DH_KEY_INFO;
extern "C" {
    pub fn CryptAcquireContextA(
        phProv: *mut HCRYPTPROV,
        szContainer: LPCSTR,
        szProvider: LPCSTR,
        dwProvType: DWORD,
        dwFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptAcquireContextW(
        phProv: *mut HCRYPTPROV,
        szContainer: LPCWSTR,
        szProvider: LPCWSTR,
        dwProvType: DWORD,
        dwFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptReleaseContext(hProv: HCRYPTPROV, dwFlags: DWORD) -> BOOL;
}
extern "C" {
    pub fn CryptGenKey(
        hProv: HCRYPTPROV,
        Algid: ALG_ID,
        dwFlags: DWORD,
        phKey: *mut HCRYPTKEY,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptDeriveKey(
        hProv: HCRYPTPROV,
        Algid: ALG_ID,
        hBaseData: HCRYPTHASH,
        dwFlags: DWORD,
        phKey: *mut HCRYPTKEY,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptDestroyKey(hKey: HCRYPTKEY) -> BOOL;
}
extern "C" {
    pub fn CryptSetKeyParam(
        hKey: HCRYPTKEY,
        dwParam: DWORD,
        pbData: *const BYTE,
        dwFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptGetKeyParam(
        hKey: HCRYPTKEY,
        dwParam: DWORD,
        pbData: *mut BYTE,
        pdwDataLen: *mut DWORD,
        dwFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptSetHashParam(
        hHash: HCRYPTHASH,
        dwParam: DWORD,
        pbData: *const BYTE,
        dwFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptGetHashParam(
        hHash: HCRYPTHASH,
        dwParam: DWORD,
        pbData: *mut BYTE,
        pdwDataLen: *mut DWORD,
        dwFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptSetProvParam(
        hProv: HCRYPTPROV,
        dwParam: DWORD,
        pbData: *const BYTE,
        dwFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptGetProvParam(
        hProv: HCRYPTPROV,
        dwParam: DWORD,
        pbData: *mut BYTE,
        pdwDataLen: *mut DWORD,
        dwFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptGenRandom(hProv: HCRYPTPROV, dwLen: DWORD, pbBuffer: *mut BYTE) -> BOOL;
}
extern "C" {
    pub fn CryptGetUserKey(hProv: HCRYPTPROV, dwKeySpec: DWORD, phUserKey: *mut HCRYPTKEY) -> BOOL;
}
extern "C" {
    pub fn CryptExportKey(
        hKey: HCRYPTKEY,
        hExpKey: HCRYPTKEY,
        dwBlobType: DWORD,
        dwFlags: DWORD,
        pbData: *mut BYTE,
        pdwDataLen: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptImportKey(
        hProv: HCRYPTPROV,
        pbData: *const BYTE,
        dwDataLen: DWORD,
        hPubKey: HCRYPTKEY,
        dwFlags: DWORD,
        phKey: *mut HCRYPTKEY,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptEncrypt(
        hKey: HCRYPTKEY,
        hHash: HCRYPTHASH,
        Final: BOOL,
        dwFlags: DWORD,
        pbData: *mut BYTE,
        pdwDataLen: *mut DWORD,
        dwBufLen: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptDecrypt(
        hKey: HCRYPTKEY,
        hHash: HCRYPTHASH,
        Final: BOOL,
        dwFlags: DWORD,
        pbData: *mut BYTE,
        pdwDataLen: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptCreateHash(
        hProv: HCRYPTPROV,
        Algid: ALG_ID,
        hKey: HCRYPTKEY,
        dwFlags: DWORD,
        phHash: *mut HCRYPTHASH,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptHashData(
        hHash: HCRYPTHASH,
        pbData: *const BYTE,
        dwDataLen: DWORD,
        dwFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptHashSessionKey(hHash: HCRYPTHASH, hKey: HCRYPTKEY, dwFlags: DWORD) -> BOOL;
}
extern "C" {
    pub fn CryptDestroyHash(hHash: HCRYPTHASH) -> BOOL;
}
extern "C" {
    pub fn CryptSignHashA(
        hHash: HCRYPTHASH,
        dwKeySpec: DWORD,
        szDescription: LPCSTR,
        dwFlags: DWORD,
        pbSignature: *mut BYTE,
        pdwSigLen: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptSignHashW(
        hHash: HCRYPTHASH,
        dwKeySpec: DWORD,
        szDescription: LPCWSTR,
        dwFlags: DWORD,
        pbSignature: *mut BYTE,
        pdwSigLen: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptVerifySignatureA(
        hHash: HCRYPTHASH,
        pbSignature: *const BYTE,
        dwSigLen: DWORD,
        hPubKey: HCRYPTKEY,
        szDescription: LPCSTR,
        dwFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptVerifySignatureW(
        hHash: HCRYPTHASH,
        pbSignature: *const BYTE,
        dwSigLen: DWORD,
        hPubKey: HCRYPTKEY,
        szDescription: LPCWSTR,
        dwFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptSetProviderA(pszProvName: LPCSTR, dwProvType: DWORD) -> BOOL;
}
extern "C" {
    pub fn CryptSetProviderW(pszProvName: LPCWSTR, dwProvType: DWORD) -> BOOL;
}
extern "C" {
    pub fn CryptSetProviderExA(
        pszProvName: LPCSTR,
        dwProvType: DWORD,
        pdwReserved: *mut DWORD,
        dwFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptSetProviderExW(
        pszProvName: LPCWSTR,
        dwProvType: DWORD,
        pdwReserved: *mut DWORD,
        dwFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptGetDefaultProviderA(
        dwProvType: DWORD,
        pdwReserved: *mut DWORD,
        dwFlags: DWORD,
        pszProvName: LPSTR,
        pcbProvName: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptGetDefaultProviderW(
        dwProvType: DWORD,
        pdwReserved: *mut DWORD,
        dwFlags: DWORD,
        pszProvName: LPWSTR,
        pcbProvName: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptEnumProviderTypesA(
        dwIndex: DWORD,
        pdwReserved: *mut DWORD,
        dwFlags: DWORD,
        pdwProvType: *mut DWORD,
        szTypeName: LPSTR,
        pcbTypeName: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptEnumProviderTypesW(
        dwIndex: DWORD,
        pdwReserved: *mut DWORD,
        dwFlags: DWORD,
        pdwProvType: *mut DWORD,
        szTypeName: LPWSTR,
        pcbTypeName: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptEnumProvidersA(
        dwIndex: DWORD,
        pdwReserved: *mut DWORD,
        dwFlags: DWORD,
        pdwProvType: *mut DWORD,
        szProvName: LPSTR,
        pcbProvName: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptEnumProvidersW(
        dwIndex: DWORD,
        pdwReserved: *mut DWORD,
        dwFlags: DWORD,
        pdwProvType: *mut DWORD,
        szProvName: LPWSTR,
        pcbProvName: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptContextAddRef(hProv: HCRYPTPROV, pdwReserved: *mut DWORD, dwFlags: DWORD) -> BOOL;
}
extern "C" {
    pub fn CryptDuplicateKey(
        hKey: HCRYPTKEY,
        pdwReserved: *mut DWORD,
        dwFlags: DWORD,
        phKey: *mut HCRYPTKEY,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptDuplicateHash(
        hHash: HCRYPTHASH,
        pdwReserved: *mut DWORD,
        dwFlags: DWORD,
        phHash: *mut HCRYPTHASH,
    ) -> BOOL;
}
extern "C" {
    pub fn GetEncSChannel(pData: *mut *mut BYTE, dwDecSize: *mut DWORD) -> BOOL;
}
pub type NTSTATUS = LONG;
pub type PNTSTATUS = *mut NTSTATUS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __BCRYPT_KEY_LENGTHS_STRUCT {
    pub dwMinLength: ULONG,
    pub dwMaxLength: ULONG,
    pub dwIncrement: ULONG,
}
#[test]
fn bindgen_test_layout___BCRYPT_KEY_LENGTHS_STRUCT() {
    assert_eq!(
        ::std::mem::size_of::<__BCRYPT_KEY_LENGTHS_STRUCT>(),
        12usize,
        concat!("Size of: ", stringify!(__BCRYPT_KEY_LENGTHS_STRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<__BCRYPT_KEY_LENGTHS_STRUCT>(),
        4usize,
        concat!("Alignment of ", stringify!(__BCRYPT_KEY_LENGTHS_STRUCT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__BCRYPT_KEY_LENGTHS_STRUCT>())).dwMinLength as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__BCRYPT_KEY_LENGTHS_STRUCT),
            "::",
            stringify!(dwMinLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__BCRYPT_KEY_LENGTHS_STRUCT>())).dwMaxLength as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(__BCRYPT_KEY_LENGTHS_STRUCT),
            "::",
            stringify!(dwMaxLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__BCRYPT_KEY_LENGTHS_STRUCT>())).dwIncrement as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(__BCRYPT_KEY_LENGTHS_STRUCT),
            "::",
            stringify!(dwIncrement)
        )
    );
}
pub type BCRYPT_KEY_LENGTHS_STRUCT = __BCRYPT_KEY_LENGTHS_STRUCT;
pub type BCRYPT_AUTH_TAG_LENGTHS_STRUCT = BCRYPT_KEY_LENGTHS_STRUCT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _BCRYPT_OID {
    pub cbOID: ULONG,
    pub pbOID: PUCHAR,
}
#[test]
fn bindgen_test_layout__BCRYPT_OID() {
    assert_eq!(
        ::std::mem::size_of::<_BCRYPT_OID>(),
        16usize,
        concat!("Size of: ", stringify!(_BCRYPT_OID))
    );
    assert_eq!(
        ::std::mem::align_of::<_BCRYPT_OID>(),
        8usize,
        concat!("Alignment of ", stringify!(_BCRYPT_OID))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCRYPT_OID>())).cbOID as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_OID),
            "::",
            stringify!(cbOID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCRYPT_OID>())).pbOID as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_OID),
            "::",
            stringify!(pbOID)
        )
    );
}
pub type BCRYPT_OID = _BCRYPT_OID;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _BCRYPT_OID_LIST {
    pub dwOIDCount: ULONG,
    pub pOIDs: *mut BCRYPT_OID,
}
#[test]
fn bindgen_test_layout__BCRYPT_OID_LIST() {
    assert_eq!(
        ::std::mem::size_of::<_BCRYPT_OID_LIST>(),
        16usize,
        concat!("Size of: ", stringify!(_BCRYPT_OID_LIST))
    );
    assert_eq!(
        ::std::mem::align_of::<_BCRYPT_OID_LIST>(),
        8usize,
        concat!("Alignment of ", stringify!(_BCRYPT_OID_LIST))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCRYPT_OID_LIST>())).dwOIDCount as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_OID_LIST),
            "::",
            stringify!(dwOIDCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCRYPT_OID_LIST>())).pOIDs as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_OID_LIST),
            "::",
            stringify!(pOIDs)
        )
    );
}
pub type BCRYPT_OID_LIST = _BCRYPT_OID_LIST;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _BCRYPT_PKCS1_PADDING_INFO {
    pub pszAlgId: LPCWSTR,
}
#[test]
fn bindgen_test_layout__BCRYPT_PKCS1_PADDING_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_BCRYPT_PKCS1_PADDING_INFO>(),
        8usize,
        concat!("Size of: ", stringify!(_BCRYPT_PKCS1_PADDING_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_BCRYPT_PKCS1_PADDING_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_BCRYPT_PKCS1_PADDING_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_PKCS1_PADDING_INFO>())).pszAlgId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_PKCS1_PADDING_INFO),
            "::",
            stringify!(pszAlgId)
        )
    );
}
pub type BCRYPT_PKCS1_PADDING_INFO = _BCRYPT_PKCS1_PADDING_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _BCRYPT_PSS_PADDING_INFO {
    pub pszAlgId: LPCWSTR,
    pub cbSalt: ULONG,
}
#[test]
fn bindgen_test_layout__BCRYPT_PSS_PADDING_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_BCRYPT_PSS_PADDING_INFO>(),
        16usize,
        concat!("Size of: ", stringify!(_BCRYPT_PSS_PADDING_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_BCRYPT_PSS_PADDING_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_BCRYPT_PSS_PADDING_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_PSS_PADDING_INFO>())).pszAlgId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_PSS_PADDING_INFO),
            "::",
            stringify!(pszAlgId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCRYPT_PSS_PADDING_INFO>())).cbSalt as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_PSS_PADDING_INFO),
            "::",
            stringify!(cbSalt)
        )
    );
}
pub type BCRYPT_PSS_PADDING_INFO = _BCRYPT_PSS_PADDING_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _BCRYPT_OAEP_PADDING_INFO {
    pub pszAlgId: LPCWSTR,
    pub pbLabel: PUCHAR,
    pub cbLabel: ULONG,
}
#[test]
fn bindgen_test_layout__BCRYPT_OAEP_PADDING_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_BCRYPT_OAEP_PADDING_INFO>(),
        24usize,
        concat!("Size of: ", stringify!(_BCRYPT_OAEP_PADDING_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_BCRYPT_OAEP_PADDING_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_BCRYPT_OAEP_PADDING_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_OAEP_PADDING_INFO>())).pszAlgId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_OAEP_PADDING_INFO),
            "::",
            stringify!(pszAlgId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_OAEP_PADDING_INFO>())).pbLabel as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_OAEP_PADDING_INFO),
            "::",
            stringify!(pbLabel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_OAEP_PADDING_INFO>())).cbLabel as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_OAEP_PADDING_INFO),
            "::",
            stringify!(cbLabel)
        )
    );
}
pub type BCRYPT_OAEP_PADDING_INFO = _BCRYPT_OAEP_PADDING_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO {
    pub cbSize: ULONG,
    pub dwInfoVersion: ULONG,
    pub pbNonce: PUCHAR,
    pub cbNonce: ULONG,
    pub pbAuthData: PUCHAR,
    pub cbAuthData: ULONG,
    pub pbTag: PUCHAR,
    pub cbTag: ULONG,
    pub pbMacContext: PUCHAR,
    pub cbMacContext: ULONG,
    pub cbAAD: ULONG,
    pub cbData: ULONGLONG,
    pub dwFlags: ULONG,
}
#[test]
fn bindgen_test_layout__BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO>(),
        88usize,
        concat!(
            "Size of: ",
            stringify!(_BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO>())).cbSize as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO>())).dwInfoVersion
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO),
            "::",
            stringify!(dwInfoVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO>())).pbNonce as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO),
            "::",
            stringify!(pbNonce)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO>())).cbNonce as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO),
            "::",
            stringify!(cbNonce)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO>())).pbAuthData
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO),
            "::",
            stringify!(pbAuthData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO>())).cbAuthData
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO),
            "::",
            stringify!(cbAuthData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO>())).pbTag as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO),
            "::",
            stringify!(pbTag)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO>())).cbTag as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO),
            "::",
            stringify!(cbTag)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO>())).pbMacContext
                as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO),
            "::",
            stringify!(pbMacContext)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO>())).cbMacContext
                as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO),
            "::",
            stringify!(cbMacContext)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO>())).cbAAD as *const _
                as usize
        },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO),
            "::",
            stringify!(cbAAD)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO>())).cbData as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO),
            "::",
            stringify!(cbData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO>())).dwFlags as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO),
            "::",
            stringify!(dwFlags)
        )
    );
}
pub type BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO = _BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO;
pub type PBCRYPT_AUTHENTICATED_CIPHER_MODE_INFO = *mut _BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _BCryptBuffer {
    pub cbBuffer: ULONG,
    pub BufferType: ULONG,
    pub pvBuffer: PVOID,
}
#[test]
fn bindgen_test_layout__BCryptBuffer() {
    assert_eq!(
        ::std::mem::size_of::<_BCryptBuffer>(),
        16usize,
        concat!("Size of: ", stringify!(_BCryptBuffer))
    );
    assert_eq!(
        ::std::mem::align_of::<_BCryptBuffer>(),
        8usize,
        concat!("Alignment of ", stringify!(_BCryptBuffer))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCryptBuffer>())).cbBuffer as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCryptBuffer),
            "::",
            stringify!(cbBuffer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCryptBuffer>())).BufferType as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCryptBuffer),
            "::",
            stringify!(BufferType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCryptBuffer>())).pvBuffer as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCryptBuffer),
            "::",
            stringify!(pvBuffer)
        )
    );
}
pub type BCryptBuffer = _BCryptBuffer;
pub type PBCryptBuffer = *mut _BCryptBuffer;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _BCryptBufferDesc {
    pub ulVersion: ULONG,
    pub cBuffers: ULONG,
    pub pBuffers: PBCryptBuffer,
}
#[test]
fn bindgen_test_layout__BCryptBufferDesc() {
    assert_eq!(
        ::std::mem::size_of::<_BCryptBufferDesc>(),
        16usize,
        concat!("Size of: ", stringify!(_BCryptBufferDesc))
    );
    assert_eq!(
        ::std::mem::align_of::<_BCryptBufferDesc>(),
        8usize,
        concat!("Alignment of ", stringify!(_BCryptBufferDesc))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCryptBufferDesc>())).ulVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCryptBufferDesc),
            "::",
            stringify!(ulVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCryptBufferDesc>())).cBuffers as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCryptBufferDesc),
            "::",
            stringify!(cBuffers)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCryptBufferDesc>())).pBuffers as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCryptBufferDesc),
            "::",
            stringify!(pBuffers)
        )
    );
}
pub type BCryptBufferDesc = _BCryptBufferDesc;
pub type PBCryptBufferDesc = *mut _BCryptBufferDesc;
pub type BCRYPT_HANDLE = PVOID;
pub type BCRYPT_ALG_HANDLE = PVOID;
pub type BCRYPT_KEY_HANDLE = PVOID;
pub type BCRYPT_HASH_HANDLE = PVOID;
pub type BCRYPT_SECRET_HANDLE = PVOID;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _BCRYPT_KEY_BLOB {
    pub Magic: ULONG,
}
#[test]
fn bindgen_test_layout__BCRYPT_KEY_BLOB() {
    assert_eq!(
        ::std::mem::size_of::<_BCRYPT_KEY_BLOB>(),
        4usize,
        concat!("Size of: ", stringify!(_BCRYPT_KEY_BLOB))
    );
    assert_eq!(
        ::std::mem::align_of::<_BCRYPT_KEY_BLOB>(),
        4usize,
        concat!("Alignment of ", stringify!(_BCRYPT_KEY_BLOB))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCRYPT_KEY_BLOB>())).Magic as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_KEY_BLOB),
            "::",
            stringify!(Magic)
        )
    );
}
pub type BCRYPT_KEY_BLOB = _BCRYPT_KEY_BLOB;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _BCRYPT_RSAKEY_BLOB {
    pub Magic: ULONG,
    pub BitLength: ULONG,
    pub cbPublicExp: ULONG,
    pub cbModulus: ULONG,
    pub cbPrime1: ULONG,
    pub cbPrime2: ULONG,
}
#[test]
fn bindgen_test_layout__BCRYPT_RSAKEY_BLOB() {
    assert_eq!(
        ::std::mem::size_of::<_BCRYPT_RSAKEY_BLOB>(),
        24usize,
        concat!("Size of: ", stringify!(_BCRYPT_RSAKEY_BLOB))
    );
    assert_eq!(
        ::std::mem::align_of::<_BCRYPT_RSAKEY_BLOB>(),
        4usize,
        concat!("Alignment of ", stringify!(_BCRYPT_RSAKEY_BLOB))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCRYPT_RSAKEY_BLOB>())).Magic as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_RSAKEY_BLOB),
            "::",
            stringify!(Magic)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCRYPT_RSAKEY_BLOB>())).BitLength as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_RSAKEY_BLOB),
            "::",
            stringify!(BitLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCRYPT_RSAKEY_BLOB>())).cbPublicExp as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_RSAKEY_BLOB),
            "::",
            stringify!(cbPublicExp)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCRYPT_RSAKEY_BLOB>())).cbModulus as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_RSAKEY_BLOB),
            "::",
            stringify!(cbModulus)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCRYPT_RSAKEY_BLOB>())).cbPrime1 as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_RSAKEY_BLOB),
            "::",
            stringify!(cbPrime1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCRYPT_RSAKEY_BLOB>())).cbPrime2 as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_RSAKEY_BLOB),
            "::",
            stringify!(cbPrime2)
        )
    );
}
pub type BCRYPT_RSAKEY_BLOB = _BCRYPT_RSAKEY_BLOB;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _BCRYPT_ECCKEY_BLOB {
    pub dwMagic: ULONG,
    pub cbKey: ULONG,
}
#[test]
fn bindgen_test_layout__BCRYPT_ECCKEY_BLOB() {
    assert_eq!(
        ::std::mem::size_of::<_BCRYPT_ECCKEY_BLOB>(),
        8usize,
        concat!("Size of: ", stringify!(_BCRYPT_ECCKEY_BLOB))
    );
    assert_eq!(
        ::std::mem::align_of::<_BCRYPT_ECCKEY_BLOB>(),
        4usize,
        concat!("Alignment of ", stringify!(_BCRYPT_ECCKEY_BLOB))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCRYPT_ECCKEY_BLOB>())).dwMagic as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_ECCKEY_BLOB),
            "::",
            stringify!(dwMagic)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCRYPT_ECCKEY_BLOB>())).cbKey as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_ECCKEY_BLOB),
            "::",
            stringify!(cbKey)
        )
    );
}
pub type BCRYPT_ECCKEY_BLOB = _BCRYPT_ECCKEY_BLOB;
pub type PBCRYPT_ECCKEY_BLOB = *mut _BCRYPT_ECCKEY_BLOB;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SSL_ECCKEY_BLOB {
    pub dwCurveType: ULONG,
    pub cbKey: ULONG,
}
#[test]
fn bindgen_test_layout__SSL_ECCKEY_BLOB() {
    assert_eq!(
        ::std::mem::size_of::<_SSL_ECCKEY_BLOB>(),
        8usize,
        concat!("Size of: ", stringify!(_SSL_ECCKEY_BLOB))
    );
    assert_eq!(
        ::std::mem::align_of::<_SSL_ECCKEY_BLOB>(),
        4usize,
        concat!("Alignment of ", stringify!(_SSL_ECCKEY_BLOB))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SSL_ECCKEY_BLOB>())).dwCurveType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SSL_ECCKEY_BLOB),
            "::",
            stringify!(dwCurveType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SSL_ECCKEY_BLOB>())).cbKey as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SSL_ECCKEY_BLOB),
            "::",
            stringify!(cbKey)
        )
    );
}
pub type SSL_ECCKEY_BLOB = _SSL_ECCKEY_BLOB;
pub type PSSL_ECCKEY_BLOB = *mut _SSL_ECCKEY_BLOB;
pub const ECC_CURVE_TYPE_ENUM_BCRYPT_ECC_PRIME_SHORT_WEIERSTRASS_CURVE: ECC_CURVE_TYPE_ENUM = 1;
pub const ECC_CURVE_TYPE_ENUM_BCRYPT_ECC_PRIME_TWISTED_EDWARDS_CURVE: ECC_CURVE_TYPE_ENUM = 2;
pub const ECC_CURVE_TYPE_ENUM_BCRYPT_ECC_PRIME_MONTGOMERY_CURVE: ECC_CURVE_TYPE_ENUM = 3;
pub type ECC_CURVE_TYPE_ENUM = ::std::os::raw::c_int;
pub const ECC_CURVE_ALG_ID_ENUM_BCRYPT_NO_CURVE_GENERATION_ALG_ID: ECC_CURVE_ALG_ID_ENUM = 0;
pub type ECC_CURVE_ALG_ID_ENUM = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _BCRYPT_ECCFULLKEY_BLOB {
    pub dwMagic: ULONG,
    pub dwVersion: ULONG,
    pub dwCurveType: ECC_CURVE_TYPE_ENUM,
    pub dwCurveGenerationAlgId: ECC_CURVE_ALG_ID_ENUM,
    pub cbFieldLength: ULONG,
    pub cbSubgroupOrder: ULONG,
    pub cbCofactor: ULONG,
    pub cbSeed: ULONG,
}
#[test]
fn bindgen_test_layout__BCRYPT_ECCFULLKEY_BLOB() {
    assert_eq!(
        ::std::mem::size_of::<_BCRYPT_ECCFULLKEY_BLOB>(),
        32usize,
        concat!("Size of: ", stringify!(_BCRYPT_ECCFULLKEY_BLOB))
    );
    assert_eq!(
        ::std::mem::align_of::<_BCRYPT_ECCFULLKEY_BLOB>(),
        4usize,
        concat!("Alignment of ", stringify!(_BCRYPT_ECCFULLKEY_BLOB))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCRYPT_ECCFULLKEY_BLOB>())).dwMagic as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_ECCFULLKEY_BLOB),
            "::",
            stringify!(dwMagic)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_ECCFULLKEY_BLOB>())).dwVersion as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_ECCFULLKEY_BLOB),
            "::",
            stringify!(dwVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_ECCFULLKEY_BLOB>())).dwCurveType as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_ECCFULLKEY_BLOB),
            "::",
            stringify!(dwCurveType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_ECCFULLKEY_BLOB>())).dwCurveGenerationAlgId as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_ECCFULLKEY_BLOB),
            "::",
            stringify!(dwCurveGenerationAlgId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_ECCFULLKEY_BLOB>())).cbFieldLength as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_ECCFULLKEY_BLOB),
            "::",
            stringify!(cbFieldLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_ECCFULLKEY_BLOB>())).cbSubgroupOrder as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_ECCFULLKEY_BLOB),
            "::",
            stringify!(cbSubgroupOrder)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_ECCFULLKEY_BLOB>())).cbCofactor as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_ECCFULLKEY_BLOB),
            "::",
            stringify!(cbCofactor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCRYPT_ECCFULLKEY_BLOB>())).cbSeed as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_ECCFULLKEY_BLOB),
            "::",
            stringify!(cbSeed)
        )
    );
}
pub type BCRYPT_ECCFULLKEY_BLOB = _BCRYPT_ECCFULLKEY_BLOB;
pub type PBCRYPT_ECCFULLKEY_BLOB = *mut _BCRYPT_ECCFULLKEY_BLOB;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _BCRYPT_DH_KEY_BLOB {
    pub dwMagic: ULONG,
    pub cbKey: ULONG,
}
#[test]
fn bindgen_test_layout__BCRYPT_DH_KEY_BLOB() {
    assert_eq!(
        ::std::mem::size_of::<_BCRYPT_DH_KEY_BLOB>(),
        8usize,
        concat!("Size of: ", stringify!(_BCRYPT_DH_KEY_BLOB))
    );
    assert_eq!(
        ::std::mem::align_of::<_BCRYPT_DH_KEY_BLOB>(),
        4usize,
        concat!("Alignment of ", stringify!(_BCRYPT_DH_KEY_BLOB))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCRYPT_DH_KEY_BLOB>())).dwMagic as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_DH_KEY_BLOB),
            "::",
            stringify!(dwMagic)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCRYPT_DH_KEY_BLOB>())).cbKey as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_DH_KEY_BLOB),
            "::",
            stringify!(cbKey)
        )
    );
}
pub type BCRYPT_DH_KEY_BLOB = _BCRYPT_DH_KEY_BLOB;
pub type PBCRYPT_DH_KEY_BLOB = *mut _BCRYPT_DH_KEY_BLOB;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _BCRYPT_DH_PARAMETER_HEADER {
    pub cbLength: ULONG,
    pub dwMagic: ULONG,
    pub cbKeyLength: ULONG,
}
#[test]
fn bindgen_test_layout__BCRYPT_DH_PARAMETER_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<_BCRYPT_DH_PARAMETER_HEADER>(),
        12usize,
        concat!("Size of: ", stringify!(_BCRYPT_DH_PARAMETER_HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<_BCRYPT_DH_PARAMETER_HEADER>(),
        4usize,
        concat!("Alignment of ", stringify!(_BCRYPT_DH_PARAMETER_HEADER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_DH_PARAMETER_HEADER>())).cbLength as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_DH_PARAMETER_HEADER),
            "::",
            stringify!(cbLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_DH_PARAMETER_HEADER>())).dwMagic as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_DH_PARAMETER_HEADER),
            "::",
            stringify!(dwMagic)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_DH_PARAMETER_HEADER>())).cbKeyLength as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_DH_PARAMETER_HEADER),
            "::",
            stringify!(cbKeyLength)
        )
    );
}
pub type BCRYPT_DH_PARAMETER_HEADER = _BCRYPT_DH_PARAMETER_HEADER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _BCRYPT_DSA_KEY_BLOB {
    pub dwMagic: ULONG,
    pub cbKey: ULONG,
    pub Count: [UCHAR; 4usize],
    pub Seed: [UCHAR; 20usize],
    pub q: [UCHAR; 20usize],
}
#[test]
fn bindgen_test_layout__BCRYPT_DSA_KEY_BLOB() {
    assert_eq!(
        ::std::mem::size_of::<_BCRYPT_DSA_KEY_BLOB>(),
        52usize,
        concat!("Size of: ", stringify!(_BCRYPT_DSA_KEY_BLOB))
    );
    assert_eq!(
        ::std::mem::align_of::<_BCRYPT_DSA_KEY_BLOB>(),
        4usize,
        concat!("Alignment of ", stringify!(_BCRYPT_DSA_KEY_BLOB))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCRYPT_DSA_KEY_BLOB>())).dwMagic as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_DSA_KEY_BLOB),
            "::",
            stringify!(dwMagic)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCRYPT_DSA_KEY_BLOB>())).cbKey as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_DSA_KEY_BLOB),
            "::",
            stringify!(cbKey)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCRYPT_DSA_KEY_BLOB>())).Count as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_DSA_KEY_BLOB),
            "::",
            stringify!(Count)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCRYPT_DSA_KEY_BLOB>())).Seed as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_DSA_KEY_BLOB),
            "::",
            stringify!(Seed)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCRYPT_DSA_KEY_BLOB>())).q as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_DSA_KEY_BLOB),
            "::",
            stringify!(q)
        )
    );
}
pub type BCRYPT_DSA_KEY_BLOB = _BCRYPT_DSA_KEY_BLOB;
pub type PBCRYPT_DSA_KEY_BLOB = *mut _BCRYPT_DSA_KEY_BLOB;
pub const HASHALGORITHM_ENUM_DSA_HASH_ALGORITHM_SHA1: HASHALGORITHM_ENUM = 0;
pub const HASHALGORITHM_ENUM_DSA_HASH_ALGORITHM_SHA256: HASHALGORITHM_ENUM = 1;
pub const HASHALGORITHM_ENUM_DSA_HASH_ALGORITHM_SHA512: HASHALGORITHM_ENUM = 2;
pub type HASHALGORITHM_ENUM = ::std::os::raw::c_int;
pub const DSAFIPSVERSION_ENUM_DSA_FIPS186_2: DSAFIPSVERSION_ENUM = 0;
pub const DSAFIPSVERSION_ENUM_DSA_FIPS186_3: DSAFIPSVERSION_ENUM = 1;
pub type DSAFIPSVERSION_ENUM = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _BCRYPT_DSA_KEY_BLOB_V2 {
    pub dwMagic: ULONG,
    pub cbKey: ULONG,
    pub hashAlgorithm: HASHALGORITHM_ENUM,
    pub standardVersion: DSAFIPSVERSION_ENUM,
    pub cbSeedLength: ULONG,
    pub cbGroupSize: ULONG,
    pub Count: [UCHAR; 4usize],
}
#[test]
fn bindgen_test_layout__BCRYPT_DSA_KEY_BLOB_V2() {
    assert_eq!(
        ::std::mem::size_of::<_BCRYPT_DSA_KEY_BLOB_V2>(),
        28usize,
        concat!("Size of: ", stringify!(_BCRYPT_DSA_KEY_BLOB_V2))
    );
    assert_eq!(
        ::std::mem::align_of::<_BCRYPT_DSA_KEY_BLOB_V2>(),
        4usize,
        concat!("Alignment of ", stringify!(_BCRYPT_DSA_KEY_BLOB_V2))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCRYPT_DSA_KEY_BLOB_V2>())).dwMagic as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_DSA_KEY_BLOB_V2),
            "::",
            stringify!(dwMagic)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCRYPT_DSA_KEY_BLOB_V2>())).cbKey as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_DSA_KEY_BLOB_V2),
            "::",
            stringify!(cbKey)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_DSA_KEY_BLOB_V2>())).hashAlgorithm as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_DSA_KEY_BLOB_V2),
            "::",
            stringify!(hashAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_DSA_KEY_BLOB_V2>())).standardVersion as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_DSA_KEY_BLOB_V2),
            "::",
            stringify!(standardVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_DSA_KEY_BLOB_V2>())).cbSeedLength as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_DSA_KEY_BLOB_V2),
            "::",
            stringify!(cbSeedLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_DSA_KEY_BLOB_V2>())).cbGroupSize as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_DSA_KEY_BLOB_V2),
            "::",
            stringify!(cbGroupSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCRYPT_DSA_KEY_BLOB_V2>())).Count as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_DSA_KEY_BLOB_V2),
            "::",
            stringify!(Count)
        )
    );
}
pub type BCRYPT_DSA_KEY_BLOB_V2 = _BCRYPT_DSA_KEY_BLOB_V2;
pub type PBCRYPT_DSA_KEY_BLOB_V2 = *mut _BCRYPT_DSA_KEY_BLOB_V2;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _BCRYPT_KEY_DATA_BLOB_HEADER {
    pub dwMagic: ULONG,
    pub dwVersion: ULONG,
    pub cbKeyData: ULONG,
}
#[test]
fn bindgen_test_layout__BCRYPT_KEY_DATA_BLOB_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<_BCRYPT_KEY_DATA_BLOB_HEADER>(),
        12usize,
        concat!("Size of: ", stringify!(_BCRYPT_KEY_DATA_BLOB_HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<_BCRYPT_KEY_DATA_BLOB_HEADER>(),
        4usize,
        concat!("Alignment of ", stringify!(_BCRYPT_KEY_DATA_BLOB_HEADER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_KEY_DATA_BLOB_HEADER>())).dwMagic as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_KEY_DATA_BLOB_HEADER),
            "::",
            stringify!(dwMagic)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_KEY_DATA_BLOB_HEADER>())).dwVersion as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_KEY_DATA_BLOB_HEADER),
            "::",
            stringify!(dwVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_KEY_DATA_BLOB_HEADER>())).cbKeyData as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_KEY_DATA_BLOB_HEADER),
            "::",
            stringify!(cbKeyData)
        )
    );
}
pub type BCRYPT_KEY_DATA_BLOB_HEADER = _BCRYPT_KEY_DATA_BLOB_HEADER;
pub type PBCRYPT_KEY_DATA_BLOB_HEADER = *mut _BCRYPT_KEY_DATA_BLOB_HEADER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _BCRYPT_DSA_PARAMETER_HEADER {
    pub cbLength: ULONG,
    pub dwMagic: ULONG,
    pub cbKeyLength: ULONG,
    pub Count: [UCHAR; 4usize],
    pub Seed: [UCHAR; 20usize],
    pub q: [UCHAR; 20usize],
}
#[test]
fn bindgen_test_layout__BCRYPT_DSA_PARAMETER_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<_BCRYPT_DSA_PARAMETER_HEADER>(),
        56usize,
        concat!("Size of: ", stringify!(_BCRYPT_DSA_PARAMETER_HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<_BCRYPT_DSA_PARAMETER_HEADER>(),
        4usize,
        concat!("Alignment of ", stringify!(_BCRYPT_DSA_PARAMETER_HEADER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_DSA_PARAMETER_HEADER>())).cbLength as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_DSA_PARAMETER_HEADER),
            "::",
            stringify!(cbLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_DSA_PARAMETER_HEADER>())).dwMagic as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_DSA_PARAMETER_HEADER),
            "::",
            stringify!(dwMagic)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_DSA_PARAMETER_HEADER>())).cbKeyLength as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_DSA_PARAMETER_HEADER),
            "::",
            stringify!(cbKeyLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_DSA_PARAMETER_HEADER>())).Count as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_DSA_PARAMETER_HEADER),
            "::",
            stringify!(Count)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_DSA_PARAMETER_HEADER>())).Seed as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_DSA_PARAMETER_HEADER),
            "::",
            stringify!(Seed)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BCRYPT_DSA_PARAMETER_HEADER>())).q as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_DSA_PARAMETER_HEADER),
            "::",
            stringify!(q)
        )
    );
}
pub type BCRYPT_DSA_PARAMETER_HEADER = _BCRYPT_DSA_PARAMETER_HEADER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _BCRYPT_DSA_PARAMETER_HEADER_V2 {
    pub cbLength: ULONG,
    pub dwMagic: ULONG,
    pub cbKeyLength: ULONG,
    pub hashAlgorithm: HASHALGORITHM_ENUM,
    pub standardVersion: DSAFIPSVERSION_ENUM,
    pub cbSeedLength: ULONG,
    pub cbGroupSize: ULONG,
    pub Count: [UCHAR; 4usize],
}
#[test]
fn bindgen_test_layout__BCRYPT_DSA_PARAMETER_HEADER_V2() {
    assert_eq!(
        ::std::mem::size_of::<_BCRYPT_DSA_PARAMETER_HEADER_V2>(),
        32usize,
        concat!("Size of: ", stringify!(_BCRYPT_DSA_PARAMETER_HEADER_V2))
    );
    assert_eq!(
        ::std::mem::align_of::<_BCRYPT_DSA_PARAMETER_HEADER_V2>(),
        4usize,
        concat!("Alignment of ", stringify!(_BCRYPT_DSA_PARAMETER_HEADER_V2))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_DSA_PARAMETER_HEADER_V2>())).cbLength as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_DSA_PARAMETER_HEADER_V2),
            "::",
            stringify!(cbLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_DSA_PARAMETER_HEADER_V2>())).dwMagic as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_DSA_PARAMETER_HEADER_V2),
            "::",
            stringify!(dwMagic)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_DSA_PARAMETER_HEADER_V2>())).cbKeyLength as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_DSA_PARAMETER_HEADER_V2),
            "::",
            stringify!(cbKeyLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_DSA_PARAMETER_HEADER_V2>())).hashAlgorithm as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_DSA_PARAMETER_HEADER_V2),
            "::",
            stringify!(hashAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_DSA_PARAMETER_HEADER_V2>())).standardVersion as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_DSA_PARAMETER_HEADER_V2),
            "::",
            stringify!(standardVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_DSA_PARAMETER_HEADER_V2>())).cbSeedLength as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_DSA_PARAMETER_HEADER_V2),
            "::",
            stringify!(cbSeedLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_DSA_PARAMETER_HEADER_V2>())).cbGroupSize as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_DSA_PARAMETER_HEADER_V2),
            "::",
            stringify!(cbGroupSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_DSA_PARAMETER_HEADER_V2>())).Count as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_DSA_PARAMETER_HEADER_V2),
            "::",
            stringify!(Count)
        )
    );
}
pub type BCRYPT_DSA_PARAMETER_HEADER_V2 = _BCRYPT_DSA_PARAMETER_HEADER_V2;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _BCRYPT_ECC_CURVE_NAMES {
    pub dwEccCurveNames: ULONG,
    pub pEccCurveNames: *mut LPWSTR,
}
#[test]
fn bindgen_test_layout__BCRYPT_ECC_CURVE_NAMES() {
    assert_eq!(
        ::std::mem::size_of::<_BCRYPT_ECC_CURVE_NAMES>(),
        16usize,
        concat!("Size of: ", stringify!(_BCRYPT_ECC_CURVE_NAMES))
    );
    assert_eq!(
        ::std::mem::align_of::<_BCRYPT_ECC_CURVE_NAMES>(),
        8usize,
        concat!("Alignment of ", stringify!(_BCRYPT_ECC_CURVE_NAMES))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_ECC_CURVE_NAMES>())).dwEccCurveNames as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_ECC_CURVE_NAMES),
            "::",
            stringify!(dwEccCurveNames)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_ECC_CURVE_NAMES>())).pEccCurveNames as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_ECC_CURVE_NAMES),
            "::",
            stringify!(pEccCurveNames)
        )
    );
}
pub type BCRYPT_ECC_CURVE_NAMES = _BCRYPT_ECC_CURVE_NAMES;
pub const BCRYPT_HASH_OPERATION_TYPE_BCRYPT_HASH_OPERATION_HASH_DATA: BCRYPT_HASH_OPERATION_TYPE =
    1;
pub const BCRYPT_HASH_OPERATION_TYPE_BCRYPT_HASH_OPERATION_FINISH_HASH: BCRYPT_HASH_OPERATION_TYPE =
    2;
pub type BCRYPT_HASH_OPERATION_TYPE = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _BCRYPT_MULTI_HASH_OPERATION {
    pub iHash: ULONG,
    pub hashOperation: BCRYPT_HASH_OPERATION_TYPE,
    pub pbBuffer: PUCHAR,
    pub cbBuffer: ULONG,
}
#[test]
fn bindgen_test_layout__BCRYPT_MULTI_HASH_OPERATION() {
    assert_eq!(
        ::std::mem::size_of::<_BCRYPT_MULTI_HASH_OPERATION>(),
        24usize,
        concat!("Size of: ", stringify!(_BCRYPT_MULTI_HASH_OPERATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_BCRYPT_MULTI_HASH_OPERATION>(),
        8usize,
        concat!("Alignment of ", stringify!(_BCRYPT_MULTI_HASH_OPERATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_MULTI_HASH_OPERATION>())).iHash as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_MULTI_HASH_OPERATION),
            "::",
            stringify!(iHash)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_MULTI_HASH_OPERATION>())).hashOperation as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_MULTI_HASH_OPERATION),
            "::",
            stringify!(hashOperation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_MULTI_HASH_OPERATION>())).pbBuffer as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_MULTI_HASH_OPERATION),
            "::",
            stringify!(pbBuffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_MULTI_HASH_OPERATION>())).cbBuffer as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_MULTI_HASH_OPERATION),
            "::",
            stringify!(cbBuffer)
        )
    );
}
pub type BCRYPT_MULTI_HASH_OPERATION = _BCRYPT_MULTI_HASH_OPERATION;
pub const BCRYPT_MULTI_OPERATION_TYPE_BCRYPT_OPERATION_TYPE_HASH: BCRYPT_MULTI_OPERATION_TYPE = 1;
pub type BCRYPT_MULTI_OPERATION_TYPE = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _BCRYPT_MULTI_OBJECT_LENGTH_STRUCT {
    pub cbPerObject: ULONG,
    pub cbPerElement: ULONG,
}
#[test]
fn bindgen_test_layout__BCRYPT_MULTI_OBJECT_LENGTH_STRUCT() {
    assert_eq!(
        ::std::mem::size_of::<_BCRYPT_MULTI_OBJECT_LENGTH_STRUCT>(),
        8usize,
        concat!("Size of: ", stringify!(_BCRYPT_MULTI_OBJECT_LENGTH_STRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<_BCRYPT_MULTI_OBJECT_LENGTH_STRUCT>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_BCRYPT_MULTI_OBJECT_LENGTH_STRUCT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_MULTI_OBJECT_LENGTH_STRUCT>())).cbPerObject as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_MULTI_OBJECT_LENGTH_STRUCT),
            "::",
            stringify!(cbPerObject)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_MULTI_OBJECT_LENGTH_STRUCT>())).cbPerElement as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_MULTI_OBJECT_LENGTH_STRUCT),
            "::",
            stringify!(cbPerElement)
        )
    );
}
pub type BCRYPT_MULTI_OBJECT_LENGTH_STRUCT = _BCRYPT_MULTI_OBJECT_LENGTH_STRUCT;
extern "C" {
    pub fn BCryptOpenAlgorithmProvider(
        phAlgorithm: *mut BCRYPT_ALG_HANDLE,
        pszAlgId: LPCWSTR,
        pszImplementation: LPCWSTR,
        dwFlags: ULONG,
    ) -> NTSTATUS;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _BCRYPT_ALGORITHM_IDENTIFIER {
    pub pszName: LPWSTR,
    pub dwClass: ULONG,
    pub dwFlags: ULONG,
}
#[test]
fn bindgen_test_layout__BCRYPT_ALGORITHM_IDENTIFIER() {
    assert_eq!(
        ::std::mem::size_of::<_BCRYPT_ALGORITHM_IDENTIFIER>(),
        16usize,
        concat!("Size of: ", stringify!(_BCRYPT_ALGORITHM_IDENTIFIER))
    );
    assert_eq!(
        ::std::mem::align_of::<_BCRYPT_ALGORITHM_IDENTIFIER>(),
        8usize,
        concat!("Alignment of ", stringify!(_BCRYPT_ALGORITHM_IDENTIFIER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_ALGORITHM_IDENTIFIER>())).pszName as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_ALGORITHM_IDENTIFIER),
            "::",
            stringify!(pszName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_ALGORITHM_IDENTIFIER>())).dwClass as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_ALGORITHM_IDENTIFIER),
            "::",
            stringify!(dwClass)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_ALGORITHM_IDENTIFIER>())).dwFlags as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_ALGORITHM_IDENTIFIER),
            "::",
            stringify!(dwFlags)
        )
    );
}
pub type BCRYPT_ALGORITHM_IDENTIFIER = _BCRYPT_ALGORITHM_IDENTIFIER;
extern "C" {
    pub fn BCryptEnumAlgorithms(
        dwAlgOperations: ULONG,
        pAlgCount: *mut ULONG,
        ppAlgList: *mut *mut BCRYPT_ALGORITHM_IDENTIFIER,
        dwFlags: ULONG,
    ) -> NTSTATUS;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _BCRYPT_PROVIDER_NAME {
    pub pszProviderName: LPWSTR,
}
#[test]
fn bindgen_test_layout__BCRYPT_PROVIDER_NAME() {
    assert_eq!(
        ::std::mem::size_of::<_BCRYPT_PROVIDER_NAME>(),
        8usize,
        concat!("Size of: ", stringify!(_BCRYPT_PROVIDER_NAME))
    );
    assert_eq!(
        ::std::mem::align_of::<_BCRYPT_PROVIDER_NAME>(),
        8usize,
        concat!("Alignment of ", stringify!(_BCRYPT_PROVIDER_NAME))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_PROVIDER_NAME>())).pszProviderName as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_PROVIDER_NAME),
            "::",
            stringify!(pszProviderName)
        )
    );
}
pub type BCRYPT_PROVIDER_NAME = _BCRYPT_PROVIDER_NAME;
extern "C" {
    pub fn BCryptEnumProviders(
        pszAlgId: LPCWSTR,
        pImplCount: *mut ULONG,
        ppImplList: *mut *mut BCRYPT_PROVIDER_NAME,
        dwFlags: ULONG,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptGetProperty(
        hObject: BCRYPT_HANDLE,
        pszProperty: LPCWSTR,
        pbOutput: PUCHAR,
        cbOutput: ULONG,
        pcbResult: *mut ULONG,
        dwFlags: ULONG,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptSetProperty(
        hObject: BCRYPT_HANDLE,
        pszProperty: LPCWSTR,
        pbInput: PUCHAR,
        cbInput: ULONG,
        dwFlags: ULONG,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptCloseAlgorithmProvider(hAlgorithm: BCRYPT_ALG_HANDLE, dwFlags: ULONG) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptFreeBuffer(pvBuffer: PVOID);
}
extern "C" {
    pub fn BCryptGenerateSymmetricKey(
        hAlgorithm: BCRYPT_ALG_HANDLE,
        phKey: *mut BCRYPT_KEY_HANDLE,
        pbKeyObject: PUCHAR,
        cbKeyObject: ULONG,
        pbSecret: PUCHAR,
        cbSecret: ULONG,
        dwFlags: ULONG,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptGenerateKeyPair(
        hAlgorithm: BCRYPT_ALG_HANDLE,
        phKey: *mut BCRYPT_KEY_HANDLE,
        dwLength: ULONG,
        dwFlags: ULONG,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptEncrypt(
        hKey: BCRYPT_KEY_HANDLE,
        pbInput: PUCHAR,
        cbInput: ULONG,
        pPaddingInfo: *mut ::std::os::raw::c_void,
        pbIV: PUCHAR,
        cbIV: ULONG,
        pbOutput: PUCHAR,
        cbOutput: ULONG,
        pcbResult: *mut ULONG,
        dwFlags: ULONG,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptDecrypt(
        hKey: BCRYPT_KEY_HANDLE,
        pbInput: PUCHAR,
        cbInput: ULONG,
        pPaddingInfo: *mut ::std::os::raw::c_void,
        pbIV: PUCHAR,
        cbIV: ULONG,
        pbOutput: PUCHAR,
        cbOutput: ULONG,
        pcbResult: *mut ULONG,
        dwFlags: ULONG,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptExportKey(
        hKey: BCRYPT_KEY_HANDLE,
        hExportKey: BCRYPT_KEY_HANDLE,
        pszBlobType: LPCWSTR,
        pbOutput: PUCHAR,
        cbOutput: ULONG,
        pcbResult: *mut ULONG,
        dwFlags: ULONG,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptImportKey(
        hAlgorithm: BCRYPT_ALG_HANDLE,
        hImportKey: BCRYPT_KEY_HANDLE,
        pszBlobType: LPCWSTR,
        phKey: *mut BCRYPT_KEY_HANDLE,
        pbKeyObject: PUCHAR,
        cbKeyObject: ULONG,
        pbInput: PUCHAR,
        cbInput: ULONG,
        dwFlags: ULONG,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptImportKeyPair(
        hAlgorithm: BCRYPT_ALG_HANDLE,
        hImportKey: BCRYPT_KEY_HANDLE,
        pszBlobType: LPCWSTR,
        phKey: *mut BCRYPT_KEY_HANDLE,
        pbInput: PUCHAR,
        cbInput: ULONG,
        dwFlags: ULONG,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptDuplicateKey(
        hKey: BCRYPT_KEY_HANDLE,
        phNewKey: *mut BCRYPT_KEY_HANDLE,
        pbKeyObject: PUCHAR,
        cbKeyObject: ULONG,
        dwFlags: ULONG,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptFinalizeKeyPair(hKey: BCRYPT_KEY_HANDLE, dwFlags: ULONG) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptDestroyKey(hKey: BCRYPT_KEY_HANDLE) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptDestroySecret(hSecret: BCRYPT_SECRET_HANDLE) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptSignHash(
        hKey: BCRYPT_KEY_HANDLE,
        pPaddingInfo: *mut ::std::os::raw::c_void,
        pbInput: PUCHAR,
        cbInput: ULONG,
        pbOutput: PUCHAR,
        cbOutput: ULONG,
        pcbResult: *mut ULONG,
        dwFlags: ULONG,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptVerifySignature(
        hKey: BCRYPT_KEY_HANDLE,
        pPaddingInfo: *mut ::std::os::raw::c_void,
        pbHash: PUCHAR,
        cbHash: ULONG,
        pbSignature: PUCHAR,
        cbSignature: ULONG,
        dwFlags: ULONG,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptSecretAgreement(
        hPrivKey: BCRYPT_KEY_HANDLE,
        hPubKey: BCRYPT_KEY_HANDLE,
        phAgreedSecret: *mut BCRYPT_SECRET_HANDLE,
        dwFlags: ULONG,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptDeriveKey(
        hSharedSecret: BCRYPT_SECRET_HANDLE,
        pwszKDF: LPCWSTR,
        pParameterList: *mut BCryptBufferDesc,
        pbDerivedKey: PUCHAR,
        cbDerivedKey: ULONG,
        pcbResult: *mut ULONG,
        dwFlags: ULONG,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptKeyDerivation(
        hKey: BCRYPT_KEY_HANDLE,
        pParameterList: *mut BCryptBufferDesc,
        pbDerivedKey: PUCHAR,
        cbDerivedKey: ULONG,
        pcbResult: *mut ULONG,
        dwFlags: ULONG,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptCreateHash(
        hAlgorithm: BCRYPT_ALG_HANDLE,
        phHash: *mut BCRYPT_HASH_HANDLE,
        pbHashObject: PUCHAR,
        cbHashObject: ULONG,
        pbSecret: PUCHAR,
        cbSecret: ULONG,
        dwFlags: ULONG,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptHashData(
        hHash: BCRYPT_HASH_HANDLE,
        pbInput: PUCHAR,
        cbInput: ULONG,
        dwFlags: ULONG,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptFinishHash(
        hHash: BCRYPT_HASH_HANDLE,
        pbOutput: PUCHAR,
        cbOutput: ULONG,
        dwFlags: ULONG,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptCreateMultiHash(
        hAlgorithm: BCRYPT_ALG_HANDLE,
        phHash: *mut BCRYPT_HASH_HANDLE,
        nHashes: ULONG,
        pbHashObject: PUCHAR,
        cbHashObject: ULONG,
        pbSecret: PUCHAR,
        cbSecret: ULONG,
        dwFlags: ULONG,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptProcessMultiOperations(
        hObject: BCRYPT_HANDLE,
        operationType: BCRYPT_MULTI_OPERATION_TYPE,
        pOperations: PVOID,
        cbOperations: ULONG,
        dwFlags: ULONG,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptDuplicateHash(
        hHash: BCRYPT_HASH_HANDLE,
        phNewHash: *mut BCRYPT_HASH_HANDLE,
        pbHashObject: PUCHAR,
        cbHashObject: ULONG,
        dwFlags: ULONG,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptDestroyHash(hHash: BCRYPT_HASH_HANDLE) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptHash(
        hAlgorithm: BCRYPT_ALG_HANDLE,
        pbSecret: PUCHAR,
        cbSecret: ULONG,
        pbInput: PUCHAR,
        cbInput: ULONG,
        pbOutput: PUCHAR,
        cbOutput: ULONG,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptGenRandom(
        hAlgorithm: BCRYPT_ALG_HANDLE,
        pbBuffer: PUCHAR,
        cbBuffer: ULONG,
        dwFlags: ULONG,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptDeriveKeyCapi(
        hHash: BCRYPT_HASH_HANDLE,
        hTargetAlg: BCRYPT_ALG_HANDLE,
        pbDerivedKey: PUCHAR,
        cbDerivedKey: ULONG,
        dwFlags: ULONG,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptDeriveKeyPBKDF2(
        hPrf: BCRYPT_ALG_HANDLE,
        pbPassword: PUCHAR,
        cbPassword: ULONG,
        pbSalt: PUCHAR,
        cbSalt: ULONG,
        cIterations: ULONGLONG,
        pbDerivedKey: PUCHAR,
        cbDerivedKey: ULONG,
        dwFlags: ULONG,
    ) -> NTSTATUS;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _BCRYPT_INTERFACE_VERSION {
    pub MajorVersion: USHORT,
    pub MinorVersion: USHORT,
}
#[test]
fn bindgen_test_layout__BCRYPT_INTERFACE_VERSION() {
    assert_eq!(
        ::std::mem::size_of::<_BCRYPT_INTERFACE_VERSION>(),
        4usize,
        concat!("Size of: ", stringify!(_BCRYPT_INTERFACE_VERSION))
    );
    assert_eq!(
        ::std::mem::align_of::<_BCRYPT_INTERFACE_VERSION>(),
        2usize,
        concat!("Alignment of ", stringify!(_BCRYPT_INTERFACE_VERSION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_INTERFACE_VERSION>())).MajorVersion as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_INTERFACE_VERSION),
            "::",
            stringify!(MajorVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BCRYPT_INTERFACE_VERSION>())).MinorVersion as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_BCRYPT_INTERFACE_VERSION),
            "::",
            stringify!(MinorVersion)
        )
    );
}
pub type BCRYPT_INTERFACE_VERSION = _BCRYPT_INTERFACE_VERSION;
pub type PBCRYPT_INTERFACE_VERSION = *mut _BCRYPT_INTERFACE_VERSION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_INTERFACE_REG {
    pub dwInterface: ULONG,
    pub dwFlags: ULONG,
    pub cFunctions: ULONG,
    pub rgpszFunctions: *mut PWSTR,
}
#[test]
fn bindgen_test_layout__CRYPT_INTERFACE_REG() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_INTERFACE_REG>(),
        24usize,
        concat!("Size of: ", stringify!(_CRYPT_INTERFACE_REG))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_INTERFACE_REG>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_INTERFACE_REG))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_INTERFACE_REG>())).dwInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_INTERFACE_REG),
            "::",
            stringify!(dwInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_INTERFACE_REG>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_INTERFACE_REG),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_INTERFACE_REG>())).cFunctions as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_INTERFACE_REG),
            "::",
            stringify!(cFunctions)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_INTERFACE_REG>())).rgpszFunctions as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_INTERFACE_REG),
            "::",
            stringify!(rgpszFunctions)
        )
    );
}
pub type CRYPT_INTERFACE_REG = _CRYPT_INTERFACE_REG;
pub type PCRYPT_INTERFACE_REG = *mut _CRYPT_INTERFACE_REG;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_IMAGE_REG {
    pub pszImage: PWSTR,
    pub cInterfaces: ULONG,
    pub rgpInterfaces: *mut PCRYPT_INTERFACE_REG,
}
#[test]
fn bindgen_test_layout__CRYPT_IMAGE_REG() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_IMAGE_REG>(),
        24usize,
        concat!("Size of: ", stringify!(_CRYPT_IMAGE_REG))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_IMAGE_REG>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_IMAGE_REG))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_IMAGE_REG>())).pszImage as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_IMAGE_REG),
            "::",
            stringify!(pszImage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_IMAGE_REG>())).cInterfaces as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_IMAGE_REG),
            "::",
            stringify!(cInterfaces)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_IMAGE_REG>())).rgpInterfaces as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_IMAGE_REG),
            "::",
            stringify!(rgpInterfaces)
        )
    );
}
pub type CRYPT_IMAGE_REG = _CRYPT_IMAGE_REG;
pub type PCRYPT_IMAGE_REG = *mut _CRYPT_IMAGE_REG;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_PROVIDER_REG {
    pub cAliases: ULONG,
    pub rgpszAliases: *mut PWSTR,
    pub pUM: PCRYPT_IMAGE_REG,
    pub pKM: PCRYPT_IMAGE_REG,
}
#[test]
fn bindgen_test_layout__CRYPT_PROVIDER_REG() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_PROVIDER_REG>(),
        32usize,
        concat!("Size of: ", stringify!(_CRYPT_PROVIDER_REG))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_PROVIDER_REG>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_PROVIDER_REG))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_PROVIDER_REG>())).cAliases as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PROVIDER_REG),
            "::",
            stringify!(cAliases)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_PROVIDER_REG>())).rgpszAliases as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PROVIDER_REG),
            "::",
            stringify!(rgpszAliases)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_PROVIDER_REG>())).pUM as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PROVIDER_REG),
            "::",
            stringify!(pUM)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_PROVIDER_REG>())).pKM as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PROVIDER_REG),
            "::",
            stringify!(pKM)
        )
    );
}
pub type CRYPT_PROVIDER_REG = _CRYPT_PROVIDER_REG;
pub type PCRYPT_PROVIDER_REG = *mut _CRYPT_PROVIDER_REG;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_PROVIDERS {
    pub cProviders: ULONG,
    pub rgpszProviders: *mut PWSTR,
}
#[test]
fn bindgen_test_layout__CRYPT_PROVIDERS() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_PROVIDERS>(),
        16usize,
        concat!("Size of: ", stringify!(_CRYPT_PROVIDERS))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_PROVIDERS>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_PROVIDERS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_PROVIDERS>())).cProviders as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PROVIDERS),
            "::",
            stringify!(cProviders)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_PROVIDERS>())).rgpszProviders as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PROVIDERS),
            "::",
            stringify!(rgpszProviders)
        )
    );
}
pub type CRYPT_PROVIDERS = _CRYPT_PROVIDERS;
pub type PCRYPT_PROVIDERS = *mut _CRYPT_PROVIDERS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_CONTEXT_CONFIG {
    pub dwFlags: ULONG,
    pub dwReserved: ULONG,
}
#[test]
fn bindgen_test_layout__CRYPT_CONTEXT_CONFIG() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_CONTEXT_CONFIG>(),
        8usize,
        concat!("Size of: ", stringify!(_CRYPT_CONTEXT_CONFIG))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_CONTEXT_CONFIG>(),
        4usize,
        concat!("Alignment of ", stringify!(_CRYPT_CONTEXT_CONFIG))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_CONTEXT_CONFIG>())).dwFlags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_CONTEXT_CONFIG),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_CONTEXT_CONFIG>())).dwReserved as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_CONTEXT_CONFIG),
            "::",
            stringify!(dwReserved)
        )
    );
}
pub type CRYPT_CONTEXT_CONFIG = _CRYPT_CONTEXT_CONFIG;
pub type PCRYPT_CONTEXT_CONFIG = *mut _CRYPT_CONTEXT_CONFIG;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_CONTEXT_FUNCTION_CONFIG {
    pub dwFlags: ULONG,
    pub dwReserved: ULONG,
}
#[test]
fn bindgen_test_layout__CRYPT_CONTEXT_FUNCTION_CONFIG() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_CONTEXT_FUNCTION_CONFIG>(),
        8usize,
        concat!("Size of: ", stringify!(_CRYPT_CONTEXT_FUNCTION_CONFIG))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_CONTEXT_FUNCTION_CONFIG>(),
        4usize,
        concat!("Alignment of ", stringify!(_CRYPT_CONTEXT_FUNCTION_CONFIG))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_CONTEXT_FUNCTION_CONFIG>())).dwFlags as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_CONTEXT_FUNCTION_CONFIG),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_CONTEXT_FUNCTION_CONFIG>())).dwReserved as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_CONTEXT_FUNCTION_CONFIG),
            "::",
            stringify!(dwReserved)
        )
    );
}
pub type CRYPT_CONTEXT_FUNCTION_CONFIG = _CRYPT_CONTEXT_FUNCTION_CONFIG;
pub type PCRYPT_CONTEXT_FUNCTION_CONFIG = *mut _CRYPT_CONTEXT_FUNCTION_CONFIG;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_CONTEXTS {
    pub cContexts: ULONG,
    pub rgpszContexts: *mut PWSTR,
}
#[test]
fn bindgen_test_layout__CRYPT_CONTEXTS() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_CONTEXTS>(),
        16usize,
        concat!("Size of: ", stringify!(_CRYPT_CONTEXTS))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_CONTEXTS>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_CONTEXTS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_CONTEXTS>())).cContexts as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_CONTEXTS),
            "::",
            stringify!(cContexts)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_CONTEXTS>())).rgpszContexts as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_CONTEXTS),
            "::",
            stringify!(rgpszContexts)
        )
    );
}
pub type CRYPT_CONTEXTS = _CRYPT_CONTEXTS;
pub type PCRYPT_CONTEXTS = *mut _CRYPT_CONTEXTS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_CONTEXT_FUNCTIONS {
    pub cFunctions: ULONG,
    pub rgpszFunctions: *mut PWSTR,
}
#[test]
fn bindgen_test_layout__CRYPT_CONTEXT_FUNCTIONS() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_CONTEXT_FUNCTIONS>(),
        16usize,
        concat!("Size of: ", stringify!(_CRYPT_CONTEXT_FUNCTIONS))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_CONTEXT_FUNCTIONS>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_CONTEXT_FUNCTIONS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_CONTEXT_FUNCTIONS>())).cFunctions as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_CONTEXT_FUNCTIONS),
            "::",
            stringify!(cFunctions)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_CONTEXT_FUNCTIONS>())).rgpszFunctions as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_CONTEXT_FUNCTIONS),
            "::",
            stringify!(rgpszFunctions)
        )
    );
}
pub type CRYPT_CONTEXT_FUNCTIONS = _CRYPT_CONTEXT_FUNCTIONS;
pub type PCRYPT_CONTEXT_FUNCTIONS = *mut _CRYPT_CONTEXT_FUNCTIONS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_CONTEXT_FUNCTION_PROVIDERS {
    pub cProviders: ULONG,
    pub rgpszProviders: *mut PWSTR,
}
#[test]
fn bindgen_test_layout__CRYPT_CONTEXT_FUNCTION_PROVIDERS() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_CONTEXT_FUNCTION_PROVIDERS>(),
        16usize,
        concat!("Size of: ", stringify!(_CRYPT_CONTEXT_FUNCTION_PROVIDERS))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_CONTEXT_FUNCTION_PROVIDERS>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CRYPT_CONTEXT_FUNCTION_PROVIDERS)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_CONTEXT_FUNCTION_PROVIDERS>())).cProviders as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_CONTEXT_FUNCTION_PROVIDERS),
            "::",
            stringify!(cProviders)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_CONTEXT_FUNCTION_PROVIDERS>())).rgpszProviders as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_CONTEXT_FUNCTION_PROVIDERS),
            "::",
            stringify!(rgpszProviders)
        )
    );
}
pub type CRYPT_CONTEXT_FUNCTION_PROVIDERS = _CRYPT_CONTEXT_FUNCTION_PROVIDERS;
pub type PCRYPT_CONTEXT_FUNCTION_PROVIDERS = *mut _CRYPT_CONTEXT_FUNCTION_PROVIDERS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_PROPERTY_REF {
    pub pszProperty: PWSTR,
    pub cbValue: ULONG,
    pub pbValue: PUCHAR,
}
#[test]
fn bindgen_test_layout__CRYPT_PROPERTY_REF() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_PROPERTY_REF>(),
        24usize,
        concat!("Size of: ", stringify!(_CRYPT_PROPERTY_REF))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_PROPERTY_REF>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_PROPERTY_REF))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_PROPERTY_REF>())).pszProperty as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PROPERTY_REF),
            "::",
            stringify!(pszProperty)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_PROPERTY_REF>())).cbValue as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PROPERTY_REF),
            "::",
            stringify!(cbValue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_PROPERTY_REF>())).pbValue as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PROPERTY_REF),
            "::",
            stringify!(pbValue)
        )
    );
}
pub type CRYPT_PROPERTY_REF = _CRYPT_PROPERTY_REF;
pub type PCRYPT_PROPERTY_REF = *mut _CRYPT_PROPERTY_REF;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_IMAGE_REF {
    pub pszImage: PWSTR,
    pub dwFlags: ULONG,
}
#[test]
fn bindgen_test_layout__CRYPT_IMAGE_REF() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_IMAGE_REF>(),
        16usize,
        concat!("Size of: ", stringify!(_CRYPT_IMAGE_REF))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_IMAGE_REF>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_IMAGE_REF))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_IMAGE_REF>())).pszImage as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_IMAGE_REF),
            "::",
            stringify!(pszImage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_IMAGE_REF>())).dwFlags as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_IMAGE_REF),
            "::",
            stringify!(dwFlags)
        )
    );
}
pub type CRYPT_IMAGE_REF = _CRYPT_IMAGE_REF;
pub type PCRYPT_IMAGE_REF = *mut _CRYPT_IMAGE_REF;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_PROVIDER_REF {
    pub dwInterface: ULONG,
    pub pszFunction: PWSTR,
    pub pszProvider: PWSTR,
    pub cProperties: ULONG,
    pub rgpProperties: *mut PCRYPT_PROPERTY_REF,
    pub pUM: PCRYPT_IMAGE_REF,
    pub pKM: PCRYPT_IMAGE_REF,
}
#[test]
fn bindgen_test_layout__CRYPT_PROVIDER_REF() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_PROVIDER_REF>(),
        56usize,
        concat!("Size of: ", stringify!(_CRYPT_PROVIDER_REF))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_PROVIDER_REF>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_PROVIDER_REF))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_PROVIDER_REF>())).dwInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PROVIDER_REF),
            "::",
            stringify!(dwInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_PROVIDER_REF>())).pszFunction as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PROVIDER_REF),
            "::",
            stringify!(pszFunction)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_PROVIDER_REF>())).pszProvider as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PROVIDER_REF),
            "::",
            stringify!(pszProvider)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_PROVIDER_REF>())).cProperties as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PROVIDER_REF),
            "::",
            stringify!(cProperties)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_PROVIDER_REF>())).rgpProperties as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PROVIDER_REF),
            "::",
            stringify!(rgpProperties)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_PROVIDER_REF>())).pUM as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PROVIDER_REF),
            "::",
            stringify!(pUM)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_PROVIDER_REF>())).pKM as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PROVIDER_REF),
            "::",
            stringify!(pKM)
        )
    );
}
pub type CRYPT_PROVIDER_REF = _CRYPT_PROVIDER_REF;
pub type PCRYPT_PROVIDER_REF = *mut _CRYPT_PROVIDER_REF;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_PROVIDER_REFS {
    pub cProviders: ULONG,
    pub rgpProviders: *mut PCRYPT_PROVIDER_REF,
}
#[test]
fn bindgen_test_layout__CRYPT_PROVIDER_REFS() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_PROVIDER_REFS>(),
        16usize,
        concat!("Size of: ", stringify!(_CRYPT_PROVIDER_REFS))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_PROVIDER_REFS>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_PROVIDER_REFS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_PROVIDER_REFS>())).cProviders as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PROVIDER_REFS),
            "::",
            stringify!(cProviders)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_PROVIDER_REFS>())).rgpProviders as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PROVIDER_REFS),
            "::",
            stringify!(rgpProviders)
        )
    );
}
pub type CRYPT_PROVIDER_REFS = _CRYPT_PROVIDER_REFS;
pub type PCRYPT_PROVIDER_REFS = *mut _CRYPT_PROVIDER_REFS;
extern "C" {
    pub fn BCryptQueryProviderRegistration(
        pszProvider: LPCWSTR,
        dwMode: ULONG,
        dwInterface: ULONG,
        pcbBuffer: *mut ULONG,
        ppBuffer: *mut PCRYPT_PROVIDER_REG,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptEnumRegisteredProviders(
        pcbBuffer: *mut ULONG,
        ppBuffer: *mut PCRYPT_PROVIDERS,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptCreateContext(
        dwTable: ULONG,
        pszContext: LPCWSTR,
        pConfig: PCRYPT_CONTEXT_CONFIG,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptDeleteContext(dwTable: ULONG, pszContext: LPCWSTR) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptEnumContexts(
        dwTable: ULONG,
        pcbBuffer: *mut ULONG,
        ppBuffer: *mut PCRYPT_CONTEXTS,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptConfigureContext(
        dwTable: ULONG,
        pszContext: LPCWSTR,
        pConfig: PCRYPT_CONTEXT_CONFIG,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptQueryContextConfiguration(
        dwTable: ULONG,
        pszContext: LPCWSTR,
        pcbBuffer: *mut ULONG,
        ppBuffer: *mut PCRYPT_CONTEXT_CONFIG,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptAddContextFunction(
        dwTable: ULONG,
        pszContext: LPCWSTR,
        dwInterface: ULONG,
        pszFunction: LPCWSTR,
        dwPosition: ULONG,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptRemoveContextFunction(
        dwTable: ULONG,
        pszContext: LPCWSTR,
        dwInterface: ULONG,
        pszFunction: LPCWSTR,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptEnumContextFunctions(
        dwTable: ULONG,
        pszContext: LPCWSTR,
        dwInterface: ULONG,
        pcbBuffer: *mut ULONG,
        ppBuffer: *mut PCRYPT_CONTEXT_FUNCTIONS,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptConfigureContextFunction(
        dwTable: ULONG,
        pszContext: LPCWSTR,
        dwInterface: ULONG,
        pszFunction: LPCWSTR,
        pConfig: PCRYPT_CONTEXT_FUNCTION_CONFIG,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptQueryContextFunctionConfiguration(
        dwTable: ULONG,
        pszContext: LPCWSTR,
        dwInterface: ULONG,
        pszFunction: LPCWSTR,
        pcbBuffer: *mut ULONG,
        ppBuffer: *mut PCRYPT_CONTEXT_FUNCTION_CONFIG,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptEnumContextFunctionProviders(
        dwTable: ULONG,
        pszContext: LPCWSTR,
        dwInterface: ULONG,
        pszFunction: LPCWSTR,
        pcbBuffer: *mut ULONG,
        ppBuffer: *mut PCRYPT_CONTEXT_FUNCTION_PROVIDERS,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptSetContextFunctionProperty(
        dwTable: ULONG,
        pszContext: LPCWSTR,
        dwInterface: ULONG,
        pszFunction: LPCWSTR,
        pszProperty: LPCWSTR,
        cbValue: ULONG,
        pbValue: PUCHAR,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptQueryContextFunctionProperty(
        dwTable: ULONG,
        pszContext: LPCWSTR,
        dwInterface: ULONG,
        pszFunction: LPCWSTR,
        pszProperty: LPCWSTR,
        pcbValue: *mut ULONG,
        ppbValue: *mut PUCHAR,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptRegisterConfigChangeNotify(phEvent: *mut HANDLE) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptUnregisterConfigChangeNotify(hEvent: HANDLE) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptResolveProviders(
        pszContext: LPCWSTR,
        dwInterface: ULONG,
        pszFunction: LPCWSTR,
        pszProvider: LPCWSTR,
        dwMode: ULONG,
        dwFlags: ULONG,
        pcbBuffer: *mut ULONG,
        ppBuffer: *mut PCRYPT_PROVIDER_REFS,
    ) -> NTSTATUS;
}
extern "C" {
    pub fn BCryptGetFipsAlgorithmMode(pfEnabled: *mut BOOLEAN) -> NTSTATUS;
}
extern "C" {
    pub fn CngGetFipsAlgorithmMode() -> BOOLEAN;
}
pub type SECURITY_STATUS = LONG;
pub type PFN_NCRYPT_ALLOC = ::std::option::Option<unsafe extern "C" fn(cbSize: SIZE_T) -> LPVOID>;
pub type PFN_NCRYPT_FREE = ::std::option::Option<unsafe extern "C" fn(pv: LPVOID)>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct NCRYPT_ALLOC_PARA {
    pub cbSize: DWORD,
    pub pfnAlloc: PFN_NCRYPT_ALLOC,
    pub pfnFree: PFN_NCRYPT_FREE,
}
#[test]
fn bindgen_test_layout_NCRYPT_ALLOC_PARA() {
    assert_eq!(
        ::std::mem::size_of::<NCRYPT_ALLOC_PARA>(),
        24usize,
        concat!("Size of: ", stringify!(NCRYPT_ALLOC_PARA))
    );
    assert_eq!(
        ::std::mem::align_of::<NCRYPT_ALLOC_PARA>(),
        8usize,
        concat!("Alignment of ", stringify!(NCRYPT_ALLOC_PARA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<NCRYPT_ALLOC_PARA>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(NCRYPT_ALLOC_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<NCRYPT_ALLOC_PARA>())).pfnAlloc as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(NCRYPT_ALLOC_PARA),
            "::",
            stringify!(pfnAlloc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<NCRYPT_ALLOC_PARA>())).pfnFree as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(NCRYPT_ALLOC_PARA),
            "::",
            stringify!(pfnFree)
        )
    );
}
pub type NCryptBuffer = BCryptBuffer;
pub type PNCryptBuffer = *mut BCryptBuffer;
pub type NCryptBufferDesc = BCryptBufferDesc;
pub type PNCryptBufferDesc = *mut BCryptBufferDesc;
pub type NCRYPT_HANDLE = ULONG_PTR;
pub type NCRYPT_PROV_HANDLE = ULONG_PTR;
pub type NCRYPT_KEY_HANDLE = ULONG_PTR;
pub type NCRYPT_HASH_HANDLE = ULONG_PTR;
pub type NCRYPT_SECRET_HANDLE = ULONG_PTR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NCRYPT_CIPHER_PADDING_INFO {
    pub cbSize: ULONG,
    pub dwFlags: DWORD,
    pub pbIV: PUCHAR,
    pub cbIV: ULONG,
    pub pbOtherInfo: PUCHAR,
    pub cbOtherInfo: ULONG,
}
#[test]
fn bindgen_test_layout__NCRYPT_CIPHER_PADDING_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_NCRYPT_CIPHER_PADDING_INFO>(),
        40usize,
        concat!("Size of: ", stringify!(_NCRYPT_CIPHER_PADDING_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_NCRYPT_CIPHER_PADDING_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_NCRYPT_CIPHER_PADDING_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_CIPHER_PADDING_INFO>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_CIPHER_PADDING_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_CIPHER_PADDING_INFO>())).dwFlags as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_CIPHER_PADDING_INFO),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_CIPHER_PADDING_INFO>())).pbIV as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_CIPHER_PADDING_INFO),
            "::",
            stringify!(pbIV)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_CIPHER_PADDING_INFO>())).cbIV as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_CIPHER_PADDING_INFO),
            "::",
            stringify!(cbIV)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_CIPHER_PADDING_INFO>())).pbOtherInfo as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_CIPHER_PADDING_INFO),
            "::",
            stringify!(pbOtherInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_CIPHER_PADDING_INFO>())).cbOtherInfo as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_CIPHER_PADDING_INFO),
            "::",
            stringify!(cbOtherInfo)
        )
    );
}
pub type NCRYPT_CIPHER_PADDING_INFO = _NCRYPT_CIPHER_PADDING_INFO;
pub type PNCRYPT_CIPHER_PADDING_INFO = *mut _NCRYPT_CIPHER_PADDING_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NCRYPT_PLATFORM_ATTEST_PADDING_INFO {
    pub magic: ULONG,
    pub pcrMask: ULONG,
}
#[test]
fn bindgen_test_layout__NCRYPT_PLATFORM_ATTEST_PADDING_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_NCRYPT_PLATFORM_ATTEST_PADDING_INFO>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_NCRYPT_PLATFORM_ATTEST_PADDING_INFO)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_NCRYPT_PLATFORM_ATTEST_PADDING_INFO>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_NCRYPT_PLATFORM_ATTEST_PADDING_INFO)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_PLATFORM_ATTEST_PADDING_INFO>())).magic as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_PLATFORM_ATTEST_PADDING_INFO),
            "::",
            stringify!(magic)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_PLATFORM_ATTEST_PADDING_INFO>())).pcrMask as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_PLATFORM_ATTEST_PADDING_INFO),
            "::",
            stringify!(pcrMask)
        )
    );
}
pub type NCRYPT_PLATFORM_ATTEST_PADDING_INFO = _NCRYPT_PLATFORM_ATTEST_PADDING_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NCRYPT_KEY_ATTEST_PADDING_INFO {
    pub magic: ULONG,
    pub pbKeyBlob: PUCHAR,
    pub cbKeyBlob: ULONG,
    pub pbKeyAuth: PUCHAR,
    pub cbKeyAuth: ULONG,
}
#[test]
fn bindgen_test_layout__NCRYPT_KEY_ATTEST_PADDING_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_NCRYPT_KEY_ATTEST_PADDING_INFO>(),
        40usize,
        concat!("Size of: ", stringify!(_NCRYPT_KEY_ATTEST_PADDING_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_NCRYPT_KEY_ATTEST_PADDING_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_NCRYPT_KEY_ATTEST_PADDING_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_KEY_ATTEST_PADDING_INFO>())).magic as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_KEY_ATTEST_PADDING_INFO),
            "::",
            stringify!(magic)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_KEY_ATTEST_PADDING_INFO>())).pbKeyBlob as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_KEY_ATTEST_PADDING_INFO),
            "::",
            stringify!(pbKeyBlob)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_KEY_ATTEST_PADDING_INFO>())).cbKeyBlob as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_KEY_ATTEST_PADDING_INFO),
            "::",
            stringify!(cbKeyBlob)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_KEY_ATTEST_PADDING_INFO>())).pbKeyAuth as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_KEY_ATTEST_PADDING_INFO),
            "::",
            stringify!(pbKeyAuth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_KEY_ATTEST_PADDING_INFO>())).cbKeyAuth as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_KEY_ATTEST_PADDING_INFO),
            "::",
            stringify!(cbKeyAuth)
        )
    );
}
pub type NCRYPT_KEY_ATTEST_PADDING_INFO = _NCRYPT_KEY_ATTEST_PADDING_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NCRYPT_ISOLATED_KEY_ATTESTED_ATTRIBUTES {
    pub Version: ULONG,
    pub Flags: ULONG,
    pub cbPublicKeyBlob: ULONG,
}
#[test]
fn bindgen_test_layout__NCRYPT_ISOLATED_KEY_ATTESTED_ATTRIBUTES() {
    assert_eq!(
        ::std::mem::size_of::<_NCRYPT_ISOLATED_KEY_ATTESTED_ATTRIBUTES>(),
        12usize,
        concat!(
            "Size of: ",
            stringify!(_NCRYPT_ISOLATED_KEY_ATTESTED_ATTRIBUTES)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_NCRYPT_ISOLATED_KEY_ATTESTED_ATTRIBUTES>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_NCRYPT_ISOLATED_KEY_ATTESTED_ATTRIBUTES)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_ISOLATED_KEY_ATTESTED_ATTRIBUTES>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_ISOLATED_KEY_ATTESTED_ATTRIBUTES),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_ISOLATED_KEY_ATTESTED_ATTRIBUTES>())).Flags as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_ISOLATED_KEY_ATTESTED_ATTRIBUTES),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_ISOLATED_KEY_ATTESTED_ATTRIBUTES>())).cbPublicKeyBlob
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_ISOLATED_KEY_ATTESTED_ATTRIBUTES),
            "::",
            stringify!(cbPublicKeyBlob)
        )
    );
}
pub type NCRYPT_ISOLATED_KEY_ATTESTED_ATTRIBUTES = _NCRYPT_ISOLATED_KEY_ATTESTED_ATTRIBUTES;
pub type PNCRYPT_ISOLATED_KEY_ATTESTED_ATTRIBUTES = *mut _NCRYPT_ISOLATED_KEY_ATTESTED_ATTRIBUTES;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NCRYPT_VSM_KEY_ATTESTATION_STATEMENT {
    pub Magic: ULONG,
    pub Version: ULONG,
    pub cbSignature: ULONG,
    pub cbReport: ULONG,
    pub cbAttributes: ULONG,
}
#[test]
fn bindgen_test_layout__NCRYPT_VSM_KEY_ATTESTATION_STATEMENT() {
    assert_eq!(
        ::std::mem::size_of::<_NCRYPT_VSM_KEY_ATTESTATION_STATEMENT>(),
        20usize,
        concat!(
            "Size of: ",
            stringify!(_NCRYPT_VSM_KEY_ATTESTATION_STATEMENT)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_NCRYPT_VSM_KEY_ATTESTATION_STATEMENT>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_NCRYPT_VSM_KEY_ATTESTATION_STATEMENT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_VSM_KEY_ATTESTATION_STATEMENT>())).Magic as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_VSM_KEY_ATTESTATION_STATEMENT),
            "::",
            stringify!(Magic)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_VSM_KEY_ATTESTATION_STATEMENT>())).Version as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_VSM_KEY_ATTESTATION_STATEMENT),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_VSM_KEY_ATTESTATION_STATEMENT>())).cbSignature
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_VSM_KEY_ATTESTATION_STATEMENT),
            "::",
            stringify!(cbSignature)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_VSM_KEY_ATTESTATION_STATEMENT>())).cbReport as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_VSM_KEY_ATTESTATION_STATEMENT),
            "::",
            stringify!(cbReport)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_VSM_KEY_ATTESTATION_STATEMENT>())).cbAttributes
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_VSM_KEY_ATTESTATION_STATEMENT),
            "::",
            stringify!(cbAttributes)
        )
    );
}
pub type NCRYPT_VSM_KEY_ATTESTATION_STATEMENT = _NCRYPT_VSM_KEY_ATTESTATION_STATEMENT;
pub type PNCRYPT_VSM_KEY_ATTESTATION_STATEMENT = *mut _NCRYPT_VSM_KEY_ATTESTATION_STATEMENT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NCRYPT_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS {
    pub Version: ULONG,
    pub TrustletId: ULONGLONG,
    pub MinSvn: ULONG,
    pub FlagsMask: ULONG,
    pub FlagsExpected: ULONG,
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
#[test]
fn bindgen_test_layout__NCRYPT_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS() {
    assert_eq!(
        ::std::mem::size_of::<_NCRYPT_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS>(),
        32usize,
        concat!(
            "Size of: ",
            stringify!(_NCRYPT_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_NCRYPT_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_NCRYPT_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS>())).Version
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS>())).TrustletId
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS),
            "::",
            stringify!(TrustletId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS>())).MinSvn
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS),
            "::",
            stringify!(MinSvn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS>())).FlagsMask
                as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS),
            "::",
            stringify!(FlagsMask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS>())).FlagsExpected
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS),
            "::",
            stringify!(FlagsExpected)
        )
    );
}
impl _NCRYPT_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS {
    #[inline]
    pub fn AllowDebugging(&self) -> ULONG {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_AllowDebugging(&mut self, val: ULONG) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn Reserved(&self) -> ULONG {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) }
    }
    #[inline]
    pub fn set_Reserved(&mut self, val: ULONG) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 31u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        AllowDebugging: ULONG,
        Reserved: ULONG,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let AllowDebugging: u32 = unsafe { ::std::mem::transmute(AllowDebugging) };
            AllowDebugging as u64
        });
        __bindgen_bitfield_unit.set(1usize, 31u8, {
            let Reserved: u32 = unsafe { ::std::mem::transmute(Reserved) };
            Reserved as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type NCRYPT_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS =
    _NCRYPT_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS;
pub type PNCRYPT_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS =
    *mut _NCRYPT_VSM_KEY_ATTESTATION_CLAIM_RESTRICTIONS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NCRYPT_EXPORTED_ISOLATED_KEY_HEADER {
    pub Version: ULONG,
    pub KeyUsage: ULONG,
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
    pub cbAlgName: ULONG,
    pub cbNonce: ULONG,
    pub cbAuthTag: ULONG,
    pub cbWrappingKey: ULONG,
    pub cbIsolatedKey: ULONG,
}
#[test]
fn bindgen_test_layout__NCRYPT_EXPORTED_ISOLATED_KEY_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<_NCRYPT_EXPORTED_ISOLATED_KEY_HEADER>(),
        32usize,
        concat!(
            "Size of: ",
            stringify!(_NCRYPT_EXPORTED_ISOLATED_KEY_HEADER)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_NCRYPT_EXPORTED_ISOLATED_KEY_HEADER>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_NCRYPT_EXPORTED_ISOLATED_KEY_HEADER)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_EXPORTED_ISOLATED_KEY_HEADER>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_EXPORTED_ISOLATED_KEY_HEADER),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_EXPORTED_ISOLATED_KEY_HEADER>())).KeyUsage as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_EXPORTED_ISOLATED_KEY_HEADER),
            "::",
            stringify!(KeyUsage)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_EXPORTED_ISOLATED_KEY_HEADER>())).cbAlgName as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_EXPORTED_ISOLATED_KEY_HEADER),
            "::",
            stringify!(cbAlgName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_EXPORTED_ISOLATED_KEY_HEADER>())).cbNonce as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_EXPORTED_ISOLATED_KEY_HEADER),
            "::",
            stringify!(cbNonce)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_EXPORTED_ISOLATED_KEY_HEADER>())).cbAuthTag as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_EXPORTED_ISOLATED_KEY_HEADER),
            "::",
            stringify!(cbAuthTag)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_EXPORTED_ISOLATED_KEY_HEADER>())).cbWrappingKey
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_EXPORTED_ISOLATED_KEY_HEADER),
            "::",
            stringify!(cbWrappingKey)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_EXPORTED_ISOLATED_KEY_HEADER>())).cbIsolatedKey
                as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_EXPORTED_ISOLATED_KEY_HEADER),
            "::",
            stringify!(cbIsolatedKey)
        )
    );
}
impl _NCRYPT_EXPORTED_ISOLATED_KEY_HEADER {
    #[inline]
    pub fn PerBootKey(&self) -> ULONG {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_PerBootKey(&mut self, val: ULONG) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn Reserved(&self) -> ULONG {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) }
    }
    #[inline]
    pub fn set_Reserved(&mut self, val: ULONG) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 31u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        PerBootKey: ULONG,
        Reserved: ULONG,
    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let PerBootKey: u32 = unsafe { ::std::mem::transmute(PerBootKey) };
            PerBootKey as u64
        });
        __bindgen_bitfield_unit.set(1usize, 31u8, {
            let Reserved: u32 = unsafe { ::std::mem::transmute(Reserved) };
            Reserved as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type NCRYPT_EXPORTED_ISOLATED_KEY_HEADER = _NCRYPT_EXPORTED_ISOLATED_KEY_HEADER;
pub type PNCRYPT_EXPORTED_ISOLATED_KEY_HEADER = *mut _NCRYPT_EXPORTED_ISOLATED_KEY_HEADER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NCRYPT_EXPORTED_ISOLATED_KEY_ENVELOPE {
    pub Header: NCRYPT_EXPORTED_ISOLATED_KEY_HEADER,
}
#[test]
fn bindgen_test_layout__NCRYPT_EXPORTED_ISOLATED_KEY_ENVELOPE() {
    assert_eq!(
        ::std::mem::size_of::<_NCRYPT_EXPORTED_ISOLATED_KEY_ENVELOPE>(),
        32usize,
        concat!(
            "Size of: ",
            stringify!(_NCRYPT_EXPORTED_ISOLATED_KEY_ENVELOPE)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_NCRYPT_EXPORTED_ISOLATED_KEY_ENVELOPE>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_NCRYPT_EXPORTED_ISOLATED_KEY_ENVELOPE)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_EXPORTED_ISOLATED_KEY_ENVELOPE>())).Header as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_EXPORTED_ISOLATED_KEY_ENVELOPE),
            "::",
            stringify!(Header)
        )
    );
}
pub type NCRYPT_EXPORTED_ISOLATED_KEY_ENVELOPE = _NCRYPT_EXPORTED_ISOLATED_KEY_ENVELOPE;
pub type PNCRYPT_EXPORTED_ISOLATED_KEY_ENVELOPE = *mut _NCRYPT_EXPORTED_ISOLATED_KEY_ENVELOPE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __NCRYPT_PCP_TPM_WEB_AUTHN_ATTESTATION_STATEMENT {
    pub Magic: UINT32,
    pub Version: UINT32,
    pub HeaderSize: UINT32,
    pub cbCertifyInfo: UINT32,
    pub cbSignature: UINT32,
    pub cbTpmPublic: UINT32,
}
#[test]
fn bindgen_test_layout___NCRYPT_PCP_TPM_WEB_AUTHN_ATTESTATION_STATEMENT() {
    assert_eq!(
        ::std::mem::size_of::<__NCRYPT_PCP_TPM_WEB_AUTHN_ATTESTATION_STATEMENT>(),
        24usize,
        concat!(
            "Size of: ",
            stringify!(__NCRYPT_PCP_TPM_WEB_AUTHN_ATTESTATION_STATEMENT)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<__NCRYPT_PCP_TPM_WEB_AUTHN_ATTESTATION_STATEMENT>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(__NCRYPT_PCP_TPM_WEB_AUTHN_ATTESTATION_STATEMENT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__NCRYPT_PCP_TPM_WEB_AUTHN_ATTESTATION_STATEMENT>())).Magic
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__NCRYPT_PCP_TPM_WEB_AUTHN_ATTESTATION_STATEMENT),
            "::",
            stringify!(Magic)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__NCRYPT_PCP_TPM_WEB_AUTHN_ATTESTATION_STATEMENT>())).Version
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(__NCRYPT_PCP_TPM_WEB_AUTHN_ATTESTATION_STATEMENT),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__NCRYPT_PCP_TPM_WEB_AUTHN_ATTESTATION_STATEMENT>())).HeaderSize
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(__NCRYPT_PCP_TPM_WEB_AUTHN_ATTESTATION_STATEMENT),
            "::",
            stringify!(HeaderSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__NCRYPT_PCP_TPM_WEB_AUTHN_ATTESTATION_STATEMENT>()))
                .cbCertifyInfo as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(__NCRYPT_PCP_TPM_WEB_AUTHN_ATTESTATION_STATEMENT),
            "::",
            stringify!(cbCertifyInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__NCRYPT_PCP_TPM_WEB_AUTHN_ATTESTATION_STATEMENT>())).cbSignature
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(__NCRYPT_PCP_TPM_WEB_AUTHN_ATTESTATION_STATEMENT),
            "::",
            stringify!(cbSignature)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__NCRYPT_PCP_TPM_WEB_AUTHN_ATTESTATION_STATEMENT>())).cbTpmPublic
                as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(__NCRYPT_PCP_TPM_WEB_AUTHN_ATTESTATION_STATEMENT),
            "::",
            stringify!(cbTpmPublic)
        )
    );
}
pub type NCRYPT_PCP_TPM_WEB_AUTHN_ATTESTATION_STATEMENT =
    __NCRYPT_PCP_TPM_WEB_AUTHN_ATTESTATION_STATEMENT;
pub type PNCRYPT_PCP_TPM_WEB_AUTHN_ATTESTATION_STATEMENT =
    *mut __NCRYPT_PCP_TPM_WEB_AUTHN_ATTESTATION_STATEMENT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NCRYPT_TPM_PLATFORM_ATTESTATION_STATEMENT {
    pub Magic: ULONG,
    pub Version: ULONG,
    pub pcrAlg: ULONG,
    pub cbSignature: ULONG,
    pub cbQuote: ULONG,
    pub cbPcrs: ULONG,
}
#[test]
fn bindgen_test_layout__NCRYPT_TPM_PLATFORM_ATTESTATION_STATEMENT() {
    assert_eq!(
        ::std::mem::size_of::<_NCRYPT_TPM_PLATFORM_ATTESTATION_STATEMENT>(),
        24usize,
        concat!(
            "Size of: ",
            stringify!(_NCRYPT_TPM_PLATFORM_ATTESTATION_STATEMENT)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_NCRYPT_TPM_PLATFORM_ATTESTATION_STATEMENT>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_NCRYPT_TPM_PLATFORM_ATTESTATION_STATEMENT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_TPM_PLATFORM_ATTESTATION_STATEMENT>())).Magic as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_TPM_PLATFORM_ATTESTATION_STATEMENT),
            "::",
            stringify!(Magic)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_TPM_PLATFORM_ATTESTATION_STATEMENT>())).Version
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_TPM_PLATFORM_ATTESTATION_STATEMENT),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_TPM_PLATFORM_ATTESTATION_STATEMENT>())).pcrAlg
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_TPM_PLATFORM_ATTESTATION_STATEMENT),
            "::",
            stringify!(pcrAlg)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_TPM_PLATFORM_ATTESTATION_STATEMENT>())).cbSignature
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_TPM_PLATFORM_ATTESTATION_STATEMENT),
            "::",
            stringify!(cbSignature)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_TPM_PLATFORM_ATTESTATION_STATEMENT>())).cbQuote
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_TPM_PLATFORM_ATTESTATION_STATEMENT),
            "::",
            stringify!(cbQuote)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_TPM_PLATFORM_ATTESTATION_STATEMENT>())).cbPcrs
                as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_TPM_PLATFORM_ATTESTATION_STATEMENT),
            "::",
            stringify!(cbPcrs)
        )
    );
}
pub type NCRYPT_TPM_PLATFORM_ATTESTATION_STATEMENT = _NCRYPT_TPM_PLATFORM_ATTESTATION_STATEMENT;
pub type PNCRYPT_TPM_PLATFORM_ATTESTATION_STATEMENT =
    *mut _NCRYPT_TPM_PLATFORM_ATTESTATION_STATEMENT;
extern "C" {
    pub fn NCryptOpenStorageProvider(
        phProvider: *mut NCRYPT_PROV_HANDLE,
        pszProviderName: LPCWSTR,
        dwFlags: DWORD,
    ) -> SECURITY_STATUS;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NCryptAlgorithmName {
    pub pszName: LPWSTR,
    pub dwClass: DWORD,
    pub dwAlgOperations: DWORD,
    pub dwFlags: DWORD,
}
#[test]
fn bindgen_test_layout__NCryptAlgorithmName() {
    assert_eq!(
        ::std::mem::size_of::<_NCryptAlgorithmName>(),
        24usize,
        concat!("Size of: ", stringify!(_NCryptAlgorithmName))
    );
    assert_eq!(
        ::std::mem::align_of::<_NCryptAlgorithmName>(),
        8usize,
        concat!("Alignment of ", stringify!(_NCryptAlgorithmName))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NCryptAlgorithmName>())).pszName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCryptAlgorithmName),
            "::",
            stringify!(pszName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NCryptAlgorithmName>())).dwClass as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCryptAlgorithmName),
            "::",
            stringify!(dwClass)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCryptAlgorithmName>())).dwAlgOperations as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCryptAlgorithmName),
            "::",
            stringify!(dwAlgOperations)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NCryptAlgorithmName>())).dwFlags as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCryptAlgorithmName),
            "::",
            stringify!(dwFlags)
        )
    );
}
pub type NCryptAlgorithmName = _NCryptAlgorithmName;
extern "C" {
    pub fn NCryptEnumAlgorithms(
        hProvider: NCRYPT_PROV_HANDLE,
        dwAlgOperations: DWORD,
        pdwAlgCount: *mut DWORD,
        ppAlgList: *mut *mut NCryptAlgorithmName,
        dwFlags: DWORD,
    ) -> SECURITY_STATUS;
}
extern "C" {
    pub fn NCryptIsAlgSupported(
        hProvider: NCRYPT_PROV_HANDLE,
        pszAlgId: LPCWSTR,
        dwFlags: DWORD,
    ) -> SECURITY_STATUS;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct NCryptKeyName {
    pub pszName: LPWSTR,
    pub pszAlgid: LPWSTR,
    pub dwLegacyKeySpec: DWORD,
    pub dwFlags: DWORD,
}
#[test]
fn bindgen_test_layout_NCryptKeyName() {
    assert_eq!(
        ::std::mem::size_of::<NCryptKeyName>(),
        24usize,
        concat!("Size of: ", stringify!(NCryptKeyName))
    );
    assert_eq!(
        ::std::mem::align_of::<NCryptKeyName>(),
        8usize,
        concat!("Alignment of ", stringify!(NCryptKeyName))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<NCryptKeyName>())).pszName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(NCryptKeyName),
            "::",
            stringify!(pszName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<NCryptKeyName>())).pszAlgid as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(NCryptKeyName),
            "::",
            stringify!(pszAlgid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<NCryptKeyName>())).dwLegacyKeySpec as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(NCryptKeyName),
            "::",
            stringify!(dwLegacyKeySpec)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<NCryptKeyName>())).dwFlags as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(NCryptKeyName),
            "::",
            stringify!(dwFlags)
        )
    );
}
extern "C" {
    pub fn NCryptEnumKeys(
        hProvider: NCRYPT_PROV_HANDLE,
        pszScope: LPCWSTR,
        ppKeyName: *mut *mut NCryptKeyName,
        ppEnumState: *mut PVOID,
        dwFlags: DWORD,
    ) -> SECURITY_STATUS;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct NCryptProviderName {
    pub pszName: LPWSTR,
    pub pszComment: LPWSTR,
}
#[test]
fn bindgen_test_layout_NCryptProviderName() {
    assert_eq!(
        ::std::mem::size_of::<NCryptProviderName>(),
        16usize,
        concat!("Size of: ", stringify!(NCryptProviderName))
    );
    assert_eq!(
        ::std::mem::align_of::<NCryptProviderName>(),
        8usize,
        concat!("Alignment of ", stringify!(NCryptProviderName))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<NCryptProviderName>())).pszName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(NCryptProviderName),
            "::",
            stringify!(pszName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<NCryptProviderName>())).pszComment as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(NCryptProviderName),
            "::",
            stringify!(pszComment)
        )
    );
}
extern "C" {
    pub fn NCryptEnumStorageProviders(
        pdwProviderCount: *mut DWORD,
        ppProviderList: *mut *mut NCryptProviderName,
        dwFlags: DWORD,
    ) -> SECURITY_STATUS;
}
extern "C" {
    pub fn NCryptFreeBuffer(pvInput: PVOID) -> SECURITY_STATUS;
}
extern "C" {
    pub fn NCryptOpenKey(
        hProvider: NCRYPT_PROV_HANDLE,
        phKey: *mut NCRYPT_KEY_HANDLE,
        pszKeyName: LPCWSTR,
        dwLegacyKeySpec: DWORD,
        dwFlags: DWORD,
    ) -> SECURITY_STATUS;
}
extern "C" {
    pub fn NCryptCreatePersistedKey(
        hProvider: NCRYPT_PROV_HANDLE,
        phKey: *mut NCRYPT_KEY_HANDLE,
        pszAlgId: LPCWSTR,
        pszKeyName: LPCWSTR,
        dwLegacyKeySpec: DWORD,
        dwFlags: DWORD,
    ) -> SECURITY_STATUS;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __NCRYPT_UI_POLICY {
    pub dwVersion: DWORD,
    pub dwFlags: DWORD,
    pub pszCreationTitle: LPCWSTR,
    pub pszFriendlyName: LPCWSTR,
    pub pszDescription: LPCWSTR,
}
#[test]
fn bindgen_test_layout___NCRYPT_UI_POLICY() {
    assert_eq!(
        ::std::mem::size_of::<__NCRYPT_UI_POLICY>(),
        32usize,
        concat!("Size of: ", stringify!(__NCRYPT_UI_POLICY))
    );
    assert_eq!(
        ::std::mem::align_of::<__NCRYPT_UI_POLICY>(),
        8usize,
        concat!("Alignment of ", stringify!(__NCRYPT_UI_POLICY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<__NCRYPT_UI_POLICY>())).dwVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__NCRYPT_UI_POLICY),
            "::",
            stringify!(dwVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<__NCRYPT_UI_POLICY>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(__NCRYPT_UI_POLICY),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__NCRYPT_UI_POLICY>())).pszCreationTitle as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(__NCRYPT_UI_POLICY),
            "::",
            stringify!(pszCreationTitle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__NCRYPT_UI_POLICY>())).pszFriendlyName as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(__NCRYPT_UI_POLICY),
            "::",
            stringify!(pszFriendlyName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__NCRYPT_UI_POLICY>())).pszDescription as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(__NCRYPT_UI_POLICY),
            "::",
            stringify!(pszDescription)
        )
    );
}
pub type NCRYPT_UI_POLICY = __NCRYPT_UI_POLICY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __NCRYPT_KEY_ACCESS_POLICY_BLOB {
    pub dwVersion: DWORD,
    pub dwPolicyFlags: DWORD,
    pub cbUserSid: DWORD,
    pub cbApplicationSid: DWORD,
}
#[test]
fn bindgen_test_layout___NCRYPT_KEY_ACCESS_POLICY_BLOB() {
    assert_eq!(
        ::std::mem::size_of::<__NCRYPT_KEY_ACCESS_POLICY_BLOB>(),
        16usize,
        concat!("Size of: ", stringify!(__NCRYPT_KEY_ACCESS_POLICY_BLOB))
    );
    assert_eq!(
        ::std::mem::align_of::<__NCRYPT_KEY_ACCESS_POLICY_BLOB>(),
        4usize,
        concat!("Alignment of ", stringify!(__NCRYPT_KEY_ACCESS_POLICY_BLOB))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__NCRYPT_KEY_ACCESS_POLICY_BLOB>())).dwVersion as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__NCRYPT_KEY_ACCESS_POLICY_BLOB),
            "::",
            stringify!(dwVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__NCRYPT_KEY_ACCESS_POLICY_BLOB>())).dwPolicyFlags as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(__NCRYPT_KEY_ACCESS_POLICY_BLOB),
            "::",
            stringify!(dwPolicyFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__NCRYPT_KEY_ACCESS_POLICY_BLOB>())).cbUserSid as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(__NCRYPT_KEY_ACCESS_POLICY_BLOB),
            "::",
            stringify!(cbUserSid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__NCRYPT_KEY_ACCESS_POLICY_BLOB>())).cbApplicationSid as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(__NCRYPT_KEY_ACCESS_POLICY_BLOB),
            "::",
            stringify!(cbApplicationSid)
        )
    );
}
pub type NCRYPT_KEY_ACCESS_POLICY_BLOB = __NCRYPT_KEY_ACCESS_POLICY_BLOB;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __NCRYPT_SUPPORTED_LENGTHS {
    pub dwMinLength: DWORD,
    pub dwMaxLength: DWORD,
    pub dwIncrement: DWORD,
    pub dwDefaultLength: DWORD,
}
#[test]
fn bindgen_test_layout___NCRYPT_SUPPORTED_LENGTHS() {
    assert_eq!(
        ::std::mem::size_of::<__NCRYPT_SUPPORTED_LENGTHS>(),
        16usize,
        concat!("Size of: ", stringify!(__NCRYPT_SUPPORTED_LENGTHS))
    );
    assert_eq!(
        ::std::mem::align_of::<__NCRYPT_SUPPORTED_LENGTHS>(),
        4usize,
        concat!("Alignment of ", stringify!(__NCRYPT_SUPPORTED_LENGTHS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__NCRYPT_SUPPORTED_LENGTHS>())).dwMinLength as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__NCRYPT_SUPPORTED_LENGTHS),
            "::",
            stringify!(dwMinLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__NCRYPT_SUPPORTED_LENGTHS>())).dwMaxLength as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(__NCRYPT_SUPPORTED_LENGTHS),
            "::",
            stringify!(dwMaxLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__NCRYPT_SUPPORTED_LENGTHS>())).dwIncrement as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(__NCRYPT_SUPPORTED_LENGTHS),
            "::",
            stringify!(dwIncrement)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__NCRYPT_SUPPORTED_LENGTHS>())).dwDefaultLength as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(__NCRYPT_SUPPORTED_LENGTHS),
            "::",
            stringify!(dwDefaultLength)
        )
    );
}
pub type NCRYPT_SUPPORTED_LENGTHS = __NCRYPT_SUPPORTED_LENGTHS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __NCRYPT_PCP_HMAC_AUTH_SIGNATURE_INFO {
    pub dwVersion: DWORD,
    pub iExpiration: INT32,
    pub pabNonce: [BYTE; 32usize],
    pub pabPolicyRef: [BYTE; 32usize],
    pub pabHMAC: [BYTE; 32usize],
}
#[test]
fn bindgen_test_layout___NCRYPT_PCP_HMAC_AUTH_SIGNATURE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<__NCRYPT_PCP_HMAC_AUTH_SIGNATURE_INFO>(),
        104usize,
        concat!(
            "Size of: ",
            stringify!(__NCRYPT_PCP_HMAC_AUTH_SIGNATURE_INFO)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<__NCRYPT_PCP_HMAC_AUTH_SIGNATURE_INFO>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(__NCRYPT_PCP_HMAC_AUTH_SIGNATURE_INFO)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__NCRYPT_PCP_HMAC_AUTH_SIGNATURE_INFO>())).dwVersion as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__NCRYPT_PCP_HMAC_AUTH_SIGNATURE_INFO),
            "::",
            stringify!(dwVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__NCRYPT_PCP_HMAC_AUTH_SIGNATURE_INFO>())).iExpiration
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(__NCRYPT_PCP_HMAC_AUTH_SIGNATURE_INFO),
            "::",
            stringify!(iExpiration)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__NCRYPT_PCP_HMAC_AUTH_SIGNATURE_INFO>())).pabNonce as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(__NCRYPT_PCP_HMAC_AUTH_SIGNATURE_INFO),
            "::",
            stringify!(pabNonce)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__NCRYPT_PCP_HMAC_AUTH_SIGNATURE_INFO>())).pabPolicyRef
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(__NCRYPT_PCP_HMAC_AUTH_SIGNATURE_INFO),
            "::",
            stringify!(pabPolicyRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__NCRYPT_PCP_HMAC_AUTH_SIGNATURE_INFO>())).pabHMAC as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(__NCRYPT_PCP_HMAC_AUTH_SIGNATURE_INFO),
            "::",
            stringify!(pabHMAC)
        )
    );
}
pub type NCRYPT_PCP_HMAC_AUTH_SIGNATURE_INFO = __NCRYPT_PCP_HMAC_AUTH_SIGNATURE_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __NCRYPT_PCP_TPM_FW_VERSION_INFO {
    pub major1: UINT16,
    pub major2: UINT16,
    pub minor1: UINT16,
    pub minor2: UINT16,
}
#[test]
fn bindgen_test_layout___NCRYPT_PCP_TPM_FW_VERSION_INFO() {
    assert_eq!(
        ::std::mem::size_of::<__NCRYPT_PCP_TPM_FW_VERSION_INFO>(),
        8usize,
        concat!("Size of: ", stringify!(__NCRYPT_PCP_TPM_FW_VERSION_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<__NCRYPT_PCP_TPM_FW_VERSION_INFO>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(__NCRYPT_PCP_TPM_FW_VERSION_INFO)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__NCRYPT_PCP_TPM_FW_VERSION_INFO>())).major1 as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__NCRYPT_PCP_TPM_FW_VERSION_INFO),
            "::",
            stringify!(major1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__NCRYPT_PCP_TPM_FW_VERSION_INFO>())).major2 as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(__NCRYPT_PCP_TPM_FW_VERSION_INFO),
            "::",
            stringify!(major2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__NCRYPT_PCP_TPM_FW_VERSION_INFO>())).minor1 as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(__NCRYPT_PCP_TPM_FW_VERSION_INFO),
            "::",
            stringify!(minor1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__NCRYPT_PCP_TPM_FW_VERSION_INFO>())).minor2 as *const _ as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(__NCRYPT_PCP_TPM_FW_VERSION_INFO),
            "::",
            stringify!(minor2)
        )
    );
}
pub type NCRYPT_PCP_TPM_FW_VERSION_INFO = __NCRYPT_PCP_TPM_FW_VERSION_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __NCRYPT_PCP_RAW_POLICYDIGEST {
    pub dwVersion: DWORD,
    pub cbDigest: DWORD,
}
#[test]
fn bindgen_test_layout___NCRYPT_PCP_RAW_POLICYDIGEST() {
    assert_eq!(
        ::std::mem::size_of::<__NCRYPT_PCP_RAW_POLICYDIGEST>(),
        8usize,
        concat!("Size of: ", stringify!(__NCRYPT_PCP_RAW_POLICYDIGEST))
    );
    assert_eq!(
        ::std::mem::align_of::<__NCRYPT_PCP_RAW_POLICYDIGEST>(),
        4usize,
        concat!("Alignment of ", stringify!(__NCRYPT_PCP_RAW_POLICYDIGEST))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__NCRYPT_PCP_RAW_POLICYDIGEST>())).dwVersion as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__NCRYPT_PCP_RAW_POLICYDIGEST),
            "::",
            stringify!(dwVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__NCRYPT_PCP_RAW_POLICYDIGEST>())).cbDigest as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(__NCRYPT_PCP_RAW_POLICYDIGEST),
            "::",
            stringify!(cbDigest)
        )
    );
}
pub type NCRYPT_PCP_RAW_POLICYDIGEST_INFO = __NCRYPT_PCP_RAW_POLICYDIGEST;
extern "C" {
    pub fn NCryptGetProperty(
        hObject: NCRYPT_HANDLE,
        pszProperty: LPCWSTR,
        pbOutput: PBYTE,
        cbOutput: DWORD,
        pcbResult: *mut DWORD,
        dwFlags: DWORD,
    ) -> SECURITY_STATUS;
}
extern "C" {
    pub fn NCryptSetProperty(
        hObject: NCRYPT_HANDLE,
        pszProperty: LPCWSTR,
        pbInput: PBYTE,
        cbInput: DWORD,
        dwFlags: DWORD,
    ) -> SECURITY_STATUS;
}
extern "C" {
    pub fn NCryptFinalizeKey(hKey: NCRYPT_KEY_HANDLE, dwFlags: DWORD) -> SECURITY_STATUS;
}
extern "C" {
    pub fn NCryptEncrypt(
        hKey: NCRYPT_KEY_HANDLE,
        pbInput: PBYTE,
        cbInput: DWORD,
        pPaddingInfo: *mut ::std::os::raw::c_void,
        pbOutput: PBYTE,
        cbOutput: DWORD,
        pcbResult: *mut DWORD,
        dwFlags: DWORD,
    ) -> SECURITY_STATUS;
}
extern "C" {
    pub fn NCryptDecrypt(
        hKey: NCRYPT_KEY_HANDLE,
        pbInput: PBYTE,
        cbInput: DWORD,
        pPaddingInfo: *mut ::std::os::raw::c_void,
        pbOutput: PBYTE,
        cbOutput: DWORD,
        pcbResult: *mut DWORD,
        dwFlags: DWORD,
    ) -> SECURITY_STATUS;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NCRYPT_KEY_BLOB_HEADER {
    pub cbSize: ULONG,
    pub dwMagic: ULONG,
    pub cbAlgName: ULONG,
    pub cbKeyData: ULONG,
}
#[test]
fn bindgen_test_layout__NCRYPT_KEY_BLOB_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<_NCRYPT_KEY_BLOB_HEADER>(),
        16usize,
        concat!("Size of: ", stringify!(_NCRYPT_KEY_BLOB_HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<_NCRYPT_KEY_BLOB_HEADER>(),
        4usize,
        concat!("Alignment of ", stringify!(_NCRYPT_KEY_BLOB_HEADER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NCRYPT_KEY_BLOB_HEADER>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_KEY_BLOB_HEADER),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NCRYPT_KEY_BLOB_HEADER>())).dwMagic as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_KEY_BLOB_HEADER),
            "::",
            stringify!(dwMagic)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_KEY_BLOB_HEADER>())).cbAlgName as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_KEY_BLOB_HEADER),
            "::",
            stringify!(cbAlgName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NCRYPT_KEY_BLOB_HEADER>())).cbKeyData as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_NCRYPT_KEY_BLOB_HEADER),
            "::",
            stringify!(cbKeyData)
        )
    );
}
pub type NCRYPT_KEY_BLOB_HEADER = _NCRYPT_KEY_BLOB_HEADER;
pub type PNCRYPT_KEY_BLOB_HEADER = *mut _NCRYPT_KEY_BLOB_HEADER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct NCRYPT_TPM_LOADABLE_KEY_BLOB_HEADER {
    pub magic: DWORD,
    pub cbHeader: DWORD,
    pub cbPublic: DWORD,
    pub cbPrivate: DWORD,
    pub cbName: DWORD,
}
#[test]
fn bindgen_test_layout_NCRYPT_TPM_LOADABLE_KEY_BLOB_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<NCRYPT_TPM_LOADABLE_KEY_BLOB_HEADER>(),
        20usize,
        concat!("Size of: ", stringify!(NCRYPT_TPM_LOADABLE_KEY_BLOB_HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<NCRYPT_TPM_LOADABLE_KEY_BLOB_HEADER>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(NCRYPT_TPM_LOADABLE_KEY_BLOB_HEADER)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NCRYPT_TPM_LOADABLE_KEY_BLOB_HEADER>())).magic as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(NCRYPT_TPM_LOADABLE_KEY_BLOB_HEADER),
            "::",
            stringify!(magic)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NCRYPT_TPM_LOADABLE_KEY_BLOB_HEADER>())).cbHeader as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(NCRYPT_TPM_LOADABLE_KEY_BLOB_HEADER),
            "::",
            stringify!(cbHeader)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NCRYPT_TPM_LOADABLE_KEY_BLOB_HEADER>())).cbPublic as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(NCRYPT_TPM_LOADABLE_KEY_BLOB_HEADER),
            "::",
            stringify!(cbPublic)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NCRYPT_TPM_LOADABLE_KEY_BLOB_HEADER>())).cbPrivate as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(NCRYPT_TPM_LOADABLE_KEY_BLOB_HEADER),
            "::",
            stringify!(cbPrivate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NCRYPT_TPM_LOADABLE_KEY_BLOB_HEADER>())).cbName as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(NCRYPT_TPM_LOADABLE_KEY_BLOB_HEADER),
            "::",
            stringify!(cbName)
        )
    );
}
pub type PNCRYPT_TPM_LOADABLE_KEY_BLOB_HEADER = *mut NCRYPT_TPM_LOADABLE_KEY_BLOB_HEADER;
extern "C" {
    pub fn NCryptImportKey(
        hProvider: NCRYPT_PROV_HANDLE,
        hImportKey: NCRYPT_KEY_HANDLE,
        pszBlobType: LPCWSTR,
        pParameterList: *mut NCryptBufferDesc,
        phKey: *mut NCRYPT_KEY_HANDLE,
        pbData: PBYTE,
        cbData: DWORD,
        dwFlags: DWORD,
    ) -> SECURITY_STATUS;
}
extern "C" {
    pub fn NCryptExportKey(
        hKey: NCRYPT_KEY_HANDLE,
        hExportKey: NCRYPT_KEY_HANDLE,
        pszBlobType: LPCWSTR,
        pParameterList: *mut NCryptBufferDesc,
        pbOutput: PBYTE,
        cbOutput: DWORD,
        pcbResult: *mut DWORD,
        dwFlags: DWORD,
    ) -> SECURITY_STATUS;
}
extern "C" {
    pub fn NCryptSignHash(
        hKey: NCRYPT_KEY_HANDLE,
        pPaddingInfo: *mut ::std::os::raw::c_void,
        pbHashValue: PBYTE,
        cbHashValue: DWORD,
        pbSignature: PBYTE,
        cbSignature: DWORD,
        pcbResult: *mut DWORD,
        dwFlags: DWORD,
    ) -> SECURITY_STATUS;
}
extern "C" {
    pub fn NCryptVerifySignature(
        hKey: NCRYPT_KEY_HANDLE,
        pPaddingInfo: *mut ::std::os::raw::c_void,
        pbHashValue: PBYTE,
        cbHashValue: DWORD,
        pbSignature: PBYTE,
        cbSignature: DWORD,
        dwFlags: DWORD,
    ) -> SECURITY_STATUS;
}
extern "C" {
    pub fn NCryptDeleteKey(hKey: NCRYPT_KEY_HANDLE, dwFlags: DWORD) -> SECURITY_STATUS;
}
extern "C" {
    pub fn NCryptFreeObject(hObject: NCRYPT_HANDLE) -> SECURITY_STATUS;
}
extern "C" {
    pub fn NCryptIsKeyHandle(hKey: NCRYPT_KEY_HANDLE) -> BOOL;
}
extern "C" {
    pub fn NCryptTranslateHandle(
        phProvider: *mut NCRYPT_PROV_HANDLE,
        phKey: *mut NCRYPT_KEY_HANDLE,
        hLegacyProv: HCRYPTPROV,
        hLegacyKey: HCRYPTKEY,
        dwLegacyKeySpec: DWORD,
        dwFlags: DWORD,
    ) -> SECURITY_STATUS;
}
extern "C" {
    pub fn NCryptNotifyChangeKey(
        hProvider: NCRYPT_PROV_HANDLE,
        phEvent: *mut HANDLE,
        dwFlags: DWORD,
    ) -> SECURITY_STATUS;
}
extern "C" {
    pub fn NCryptSecretAgreement(
        hPrivKey: NCRYPT_KEY_HANDLE,
        hPubKey: NCRYPT_KEY_HANDLE,
        phAgreedSecret: *mut NCRYPT_SECRET_HANDLE,
        dwFlags: DWORD,
    ) -> SECURITY_STATUS;
}
extern "C" {
    pub fn NCryptDeriveKey(
        hSharedSecret: NCRYPT_SECRET_HANDLE,
        pwszKDF: LPCWSTR,
        pParameterList: *mut NCryptBufferDesc,
        pbDerivedKey: PBYTE,
        cbDerivedKey: DWORD,
        pcbResult: *mut DWORD,
        dwFlags: ULONG,
    ) -> SECURITY_STATUS;
}
extern "C" {
    pub fn NCryptKeyDerivation(
        hKey: NCRYPT_KEY_HANDLE,
        pParameterList: *mut NCryptBufferDesc,
        pbDerivedKey: PUCHAR,
        cbDerivedKey: DWORD,
        pcbResult: *mut DWORD,
        dwFlags: ULONG,
    ) -> SECURITY_STATUS;
}
extern "C" {
    pub fn NCryptCreateClaim(
        hSubjectKey: NCRYPT_KEY_HANDLE,
        hAuthorityKey: NCRYPT_KEY_HANDLE,
        dwClaimType: DWORD,
        pParameterList: *mut NCryptBufferDesc,
        pbClaimBlob: PBYTE,
        cbClaimBlob: DWORD,
        pcbResult: *mut DWORD,
        dwFlags: DWORD,
    ) -> SECURITY_STATUS;
}
extern "C" {
    pub fn NCryptVerifyClaim(
        hSubjectKey: NCRYPT_KEY_HANDLE,
        hAuthorityKey: NCRYPT_KEY_HANDLE,
        dwClaimType: DWORD,
        pParameterList: *mut NCryptBufferDesc,
        pbClaimBlob: PBYTE,
        cbClaimBlob: DWORD,
        pOutput: *mut NCryptBufferDesc,
        dwFlags: DWORD,
    ) -> SECURITY_STATUS;
}
pub type HCRYPTPROV_OR_NCRYPT_KEY_HANDLE = ULONG_PTR;
pub type HCRYPTPROV_LEGACY = ULONG_PTR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_BIT_BLOB {
    pub cbData: DWORD,
    pub pbData: *mut BYTE,
    pub cUnusedBits: DWORD,
}
#[test]
fn bindgen_test_layout__CRYPT_BIT_BLOB() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_BIT_BLOB>(),
        24usize,
        concat!("Size of: ", stringify!(_CRYPT_BIT_BLOB))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_BIT_BLOB>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_BIT_BLOB))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_BIT_BLOB>())).cbData as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_BIT_BLOB),
            "::",
            stringify!(cbData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_BIT_BLOB>())).pbData as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_BIT_BLOB),
            "::",
            stringify!(pbData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_BIT_BLOB>())).cUnusedBits as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_BIT_BLOB),
            "::",
            stringify!(cUnusedBits)
        )
    );
}
pub type CRYPT_BIT_BLOB = _CRYPT_BIT_BLOB;
pub type PCRYPT_BIT_BLOB = *mut _CRYPT_BIT_BLOB;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_ALGORITHM_IDENTIFIER {
    pub pszObjId: LPSTR,
    pub Parameters: CRYPT_OBJID_BLOB,
}
#[test]
fn bindgen_test_layout__CRYPT_ALGORITHM_IDENTIFIER() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_ALGORITHM_IDENTIFIER>(),
        24usize,
        concat!("Size of: ", stringify!(_CRYPT_ALGORITHM_IDENTIFIER))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_ALGORITHM_IDENTIFIER>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_ALGORITHM_IDENTIFIER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_ALGORITHM_IDENTIFIER>())).pszObjId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_ALGORITHM_IDENTIFIER),
            "::",
            stringify!(pszObjId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_ALGORITHM_IDENTIFIER>())).Parameters as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_ALGORITHM_IDENTIFIER),
            "::",
            stringify!(Parameters)
        )
    );
}
pub type CRYPT_ALGORITHM_IDENTIFIER = _CRYPT_ALGORITHM_IDENTIFIER;
pub type PCRYPT_ALGORITHM_IDENTIFIER = *mut _CRYPT_ALGORITHM_IDENTIFIER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_OBJID_TABLE {
    pub dwAlgId: DWORD,
    pub pszObjId: LPCSTR,
}
#[test]
fn bindgen_test_layout__CRYPT_OBJID_TABLE() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_OBJID_TABLE>(),
        16usize,
        concat!("Size of: ", stringify!(_CRYPT_OBJID_TABLE))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_OBJID_TABLE>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_OBJID_TABLE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_OBJID_TABLE>())).dwAlgId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_OBJID_TABLE),
            "::",
            stringify!(dwAlgId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_OBJID_TABLE>())).pszObjId as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_OBJID_TABLE),
            "::",
            stringify!(pszObjId)
        )
    );
}
pub type CRYPT_OBJID_TABLE = _CRYPT_OBJID_TABLE;
pub type PCRYPT_OBJID_TABLE = *mut _CRYPT_OBJID_TABLE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_HASH_INFO {
    pub HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub Hash: CRYPT_HASH_BLOB,
}
#[test]
fn bindgen_test_layout__CRYPT_HASH_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_HASH_INFO>(),
        40usize,
        concat!("Size of: ", stringify!(_CRYPT_HASH_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_HASH_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_HASH_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_HASH_INFO>())).HashAlgorithm as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_HASH_INFO),
            "::",
            stringify!(HashAlgorithm)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_HASH_INFO>())).Hash as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_HASH_INFO),
            "::",
            stringify!(Hash)
        )
    );
}
pub type CRYPT_HASH_INFO = _CRYPT_HASH_INFO;
pub type PCRYPT_HASH_INFO = *mut _CRYPT_HASH_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_EXTENSION {
    pub pszObjId: LPSTR,
    pub fCritical: BOOL,
    pub Value: CRYPT_OBJID_BLOB,
}
#[test]
fn bindgen_test_layout__CERT_EXTENSION() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_EXTENSION>(),
        32usize,
        concat!("Size of: ", stringify!(_CERT_EXTENSION))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_EXTENSION>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_EXTENSION))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_EXTENSION>())).pszObjId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_EXTENSION),
            "::",
            stringify!(pszObjId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_EXTENSION>())).fCritical as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_EXTENSION),
            "::",
            stringify!(fCritical)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_EXTENSION>())).Value as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_EXTENSION),
            "::",
            stringify!(Value)
        )
    );
}
pub type CERT_EXTENSION = _CERT_EXTENSION;
pub type PCERT_EXTENSION = *mut _CERT_EXTENSION;
pub type PCCERT_EXTENSION = *const CERT_EXTENSION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_ATTRIBUTE_TYPE_VALUE {
    pub pszObjId: LPSTR,
    pub Value: CRYPT_OBJID_BLOB,
}
#[test]
fn bindgen_test_layout__CRYPT_ATTRIBUTE_TYPE_VALUE() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_ATTRIBUTE_TYPE_VALUE>(),
        24usize,
        concat!("Size of: ", stringify!(_CRYPT_ATTRIBUTE_TYPE_VALUE))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_ATTRIBUTE_TYPE_VALUE>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_ATTRIBUTE_TYPE_VALUE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_ATTRIBUTE_TYPE_VALUE>())).pszObjId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_ATTRIBUTE_TYPE_VALUE),
            "::",
            stringify!(pszObjId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_ATTRIBUTE_TYPE_VALUE>())).Value as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_ATTRIBUTE_TYPE_VALUE),
            "::",
            stringify!(Value)
        )
    );
}
pub type CRYPT_ATTRIBUTE_TYPE_VALUE = _CRYPT_ATTRIBUTE_TYPE_VALUE;
pub type PCRYPT_ATTRIBUTE_TYPE_VALUE = *mut _CRYPT_ATTRIBUTE_TYPE_VALUE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_ATTRIBUTE {
    pub pszObjId: LPSTR,
    pub cValue: DWORD,
    pub rgValue: PCRYPT_ATTR_BLOB,
}
#[test]
fn bindgen_test_layout__CRYPT_ATTRIBUTE() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_ATTRIBUTE>(),
        24usize,
        concat!("Size of: ", stringify!(_CRYPT_ATTRIBUTE))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_ATTRIBUTE>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_ATTRIBUTE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_ATTRIBUTE>())).pszObjId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_ATTRIBUTE),
            "::",
            stringify!(pszObjId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_ATTRIBUTE>())).cValue as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_ATTRIBUTE),
            "::",
            stringify!(cValue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_ATTRIBUTE>())).rgValue as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_ATTRIBUTE),
            "::",
            stringify!(rgValue)
        )
    );
}
pub type CRYPT_ATTRIBUTE = _CRYPT_ATTRIBUTE;
pub type PCRYPT_ATTRIBUTE = *mut _CRYPT_ATTRIBUTE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_ATTRIBUTES {
    pub cAttr: DWORD,
    pub rgAttr: PCRYPT_ATTRIBUTE,
}
#[test]
fn bindgen_test_layout__CRYPT_ATTRIBUTES() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_ATTRIBUTES>(),
        16usize,
        concat!("Size of: ", stringify!(_CRYPT_ATTRIBUTES))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_ATTRIBUTES>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_ATTRIBUTES))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_ATTRIBUTES>())).cAttr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_ATTRIBUTES),
            "::",
            stringify!(cAttr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_ATTRIBUTES>())).rgAttr as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_ATTRIBUTES),
            "::",
            stringify!(rgAttr)
        )
    );
}
pub type CRYPT_ATTRIBUTES = _CRYPT_ATTRIBUTES;
pub type PCRYPT_ATTRIBUTES = *mut _CRYPT_ATTRIBUTES;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_RDN_ATTR {
    pub pszObjId: LPSTR,
    pub dwValueType: DWORD,
    pub Value: CERT_RDN_VALUE_BLOB,
}
#[test]
fn bindgen_test_layout__CERT_RDN_ATTR() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_RDN_ATTR>(),
        32usize,
        concat!("Size of: ", stringify!(_CERT_RDN_ATTR))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_RDN_ATTR>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_RDN_ATTR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_RDN_ATTR>())).pszObjId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_RDN_ATTR),
            "::",
            stringify!(pszObjId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_RDN_ATTR>())).dwValueType as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_RDN_ATTR),
            "::",
            stringify!(dwValueType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_RDN_ATTR>())).Value as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_RDN_ATTR),
            "::",
            stringify!(Value)
        )
    );
}
pub type CERT_RDN_ATTR = _CERT_RDN_ATTR;
pub type PCERT_RDN_ATTR = *mut _CERT_RDN_ATTR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_RDN {
    pub cRDNAttr: DWORD,
    pub rgRDNAttr: PCERT_RDN_ATTR,
}
#[test]
fn bindgen_test_layout__CERT_RDN() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_RDN>(),
        16usize,
        concat!("Size of: ", stringify!(_CERT_RDN))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_RDN>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_RDN))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_RDN>())).cRDNAttr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_RDN),
            "::",
            stringify!(cRDNAttr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_RDN>())).rgRDNAttr as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_RDN),
            "::",
            stringify!(rgRDNAttr)
        )
    );
}
pub type CERT_RDN = _CERT_RDN;
pub type PCERT_RDN = *mut _CERT_RDN;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_NAME_INFO {
    pub cRDN: DWORD,
    pub rgRDN: PCERT_RDN,
}
#[test]
fn bindgen_test_layout__CERT_NAME_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_NAME_INFO>(),
        16usize,
        concat!("Size of: ", stringify!(_CERT_NAME_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_NAME_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_NAME_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_NAME_INFO>())).cRDN as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_NAME_INFO),
            "::",
            stringify!(cRDN)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_NAME_INFO>())).rgRDN as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_NAME_INFO),
            "::",
            stringify!(rgRDN)
        )
    );
}
pub type CERT_NAME_INFO = _CERT_NAME_INFO;
pub type PCERT_NAME_INFO = *mut _CERT_NAME_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_NAME_VALUE {
    pub dwValueType: DWORD,
    pub Value: CERT_RDN_VALUE_BLOB,
}
#[test]
fn bindgen_test_layout__CERT_NAME_VALUE() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_NAME_VALUE>(),
        24usize,
        concat!("Size of: ", stringify!(_CERT_NAME_VALUE))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_NAME_VALUE>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_NAME_VALUE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_NAME_VALUE>())).dwValueType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_NAME_VALUE),
            "::",
            stringify!(dwValueType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_NAME_VALUE>())).Value as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_NAME_VALUE),
            "::",
            stringify!(Value)
        )
    );
}
pub type CERT_NAME_VALUE = _CERT_NAME_VALUE;
pub type PCERT_NAME_VALUE = *mut _CERT_NAME_VALUE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_PUBLIC_KEY_INFO {
    pub Algorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub PublicKey: CRYPT_BIT_BLOB,
}
#[test]
fn bindgen_test_layout__CERT_PUBLIC_KEY_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_PUBLIC_KEY_INFO>(),
        48usize,
        concat!("Size of: ", stringify!(_CERT_PUBLIC_KEY_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_PUBLIC_KEY_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_PUBLIC_KEY_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_PUBLIC_KEY_INFO>())).Algorithm as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_PUBLIC_KEY_INFO),
            "::",
            stringify!(Algorithm)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_PUBLIC_KEY_INFO>())).PublicKey as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_PUBLIC_KEY_INFO),
            "::",
            stringify!(PublicKey)
        )
    );
}
pub type CERT_PUBLIC_KEY_INFO = _CERT_PUBLIC_KEY_INFO;
pub type PCERT_PUBLIC_KEY_INFO = *mut _CERT_PUBLIC_KEY_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_ECC_PRIVATE_KEY_INFO {
    pub dwVersion: DWORD,
    pub PrivateKey: CRYPT_DER_BLOB,
    pub szCurveOid: LPSTR,
    pub PublicKey: CRYPT_BIT_BLOB,
}
#[test]
fn bindgen_test_layout__CRYPT_ECC_PRIVATE_KEY_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_ECC_PRIVATE_KEY_INFO>(),
        56usize,
        concat!("Size of: ", stringify!(_CRYPT_ECC_PRIVATE_KEY_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_ECC_PRIVATE_KEY_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_ECC_PRIVATE_KEY_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_ECC_PRIVATE_KEY_INFO>())).dwVersion as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_ECC_PRIVATE_KEY_INFO),
            "::",
            stringify!(dwVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_ECC_PRIVATE_KEY_INFO>())).PrivateKey as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_ECC_PRIVATE_KEY_INFO),
            "::",
            stringify!(PrivateKey)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_ECC_PRIVATE_KEY_INFO>())).szCurveOid as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_ECC_PRIVATE_KEY_INFO),
            "::",
            stringify!(szCurveOid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_ECC_PRIVATE_KEY_INFO>())).PublicKey as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_ECC_PRIVATE_KEY_INFO),
            "::",
            stringify!(PublicKey)
        )
    );
}
pub type CRYPT_ECC_PRIVATE_KEY_INFO = _CRYPT_ECC_PRIVATE_KEY_INFO;
pub type PCRYPT_ECC_PRIVATE_KEY_INFO = *mut _CRYPT_ECC_PRIVATE_KEY_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_PRIVATE_KEY_INFO {
    pub Version: DWORD,
    pub Algorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub PrivateKey: CRYPT_DER_BLOB,
    pub pAttributes: PCRYPT_ATTRIBUTES,
}
#[test]
fn bindgen_test_layout__CRYPT_PRIVATE_KEY_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_PRIVATE_KEY_INFO>(),
        56usize,
        concat!("Size of: ", stringify!(_CRYPT_PRIVATE_KEY_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_PRIVATE_KEY_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_PRIVATE_KEY_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_PRIVATE_KEY_INFO>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PRIVATE_KEY_INFO),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_PRIVATE_KEY_INFO>())).Algorithm as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PRIVATE_KEY_INFO),
            "::",
            stringify!(Algorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_PRIVATE_KEY_INFO>())).PrivateKey as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PRIVATE_KEY_INFO),
            "::",
            stringify!(PrivateKey)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_PRIVATE_KEY_INFO>())).pAttributes as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PRIVATE_KEY_INFO),
            "::",
            stringify!(pAttributes)
        )
    );
}
pub type CRYPT_PRIVATE_KEY_INFO = _CRYPT_PRIVATE_KEY_INFO;
pub type PCRYPT_PRIVATE_KEY_INFO = *mut _CRYPT_PRIVATE_KEY_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_ENCRYPTED_PRIVATE_KEY_INFO {
    pub EncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub EncryptedPrivateKey: CRYPT_DATA_BLOB,
}
#[test]
fn bindgen_test_layout__CRYPT_ENCRYPTED_PRIVATE_KEY_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_ENCRYPTED_PRIVATE_KEY_INFO>(),
        40usize,
        concat!("Size of: ", stringify!(_CRYPT_ENCRYPTED_PRIVATE_KEY_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_ENCRYPTED_PRIVATE_KEY_INFO>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CRYPT_ENCRYPTED_PRIVATE_KEY_INFO)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_ENCRYPTED_PRIVATE_KEY_INFO>())).EncryptionAlgorithm
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_ENCRYPTED_PRIVATE_KEY_INFO),
            "::",
            stringify!(EncryptionAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_ENCRYPTED_PRIVATE_KEY_INFO>())).EncryptedPrivateKey
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_ENCRYPTED_PRIVATE_KEY_INFO),
            "::",
            stringify!(EncryptedPrivateKey)
        )
    );
}
pub type CRYPT_ENCRYPTED_PRIVATE_KEY_INFO = _CRYPT_ENCRYPTED_PRIVATE_KEY_INFO;
pub type PCRYPT_ENCRYPTED_PRIVATE_KEY_INFO = *mut _CRYPT_ENCRYPTED_PRIVATE_KEY_INFO;
pub type PCRYPT_DECRYPT_PRIVATE_KEY_FUNC = ::std::option::Option<
    unsafe extern "C" fn(
        Algorithm: CRYPT_ALGORITHM_IDENTIFIER,
        EncryptedPrivateKey: CRYPT_DATA_BLOB,
        pbClearTextKey: *mut BYTE,
        pcbClearTextKey: *mut DWORD,
        pVoidDecryptFunc: LPVOID,
    ) -> BOOL,
>;
pub type PCRYPT_ENCRYPT_PRIVATE_KEY_FUNC = ::std::option::Option<
    unsafe extern "C" fn(
        pAlgorithm: *mut CRYPT_ALGORITHM_IDENTIFIER,
        pClearTextPrivateKey: *mut CRYPT_DATA_BLOB,
        pbEncryptedKey: *mut BYTE,
        pcbEncryptedKey: *mut DWORD,
        pVoidEncryptFunc: LPVOID,
    ) -> BOOL,
>;
pub type PCRYPT_RESOLVE_HCRYPTPROV_FUNC = ::std::option::Option<
    unsafe extern "C" fn(
        pPrivateKeyInfo: *mut CRYPT_PRIVATE_KEY_INFO,
        phCryptProv: *mut HCRYPTPROV,
        pVoidResolveFunc: LPVOID,
    ) -> BOOL,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_PKCS8_IMPORT_PARAMS {
    pub PrivateKey: CRYPT_DIGEST_BLOB,
    pub pResolvehCryptProvFunc: PCRYPT_RESOLVE_HCRYPTPROV_FUNC,
    pub pVoidResolveFunc: LPVOID,
    pub pDecryptPrivateKeyFunc: PCRYPT_DECRYPT_PRIVATE_KEY_FUNC,
    pub pVoidDecryptFunc: LPVOID,
}
#[test]
fn bindgen_test_layout__CRYPT_PKCS8_IMPORT_PARAMS() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_PKCS8_IMPORT_PARAMS>(),
        48usize,
        concat!("Size of: ", stringify!(_CRYPT_PKCS8_IMPORT_PARAMS))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_PKCS8_IMPORT_PARAMS>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_PKCS8_IMPORT_PARAMS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_PKCS8_IMPORT_PARAMS>())).PrivateKey as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PKCS8_IMPORT_PARAMS),
            "::",
            stringify!(PrivateKey)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_PKCS8_IMPORT_PARAMS>())).pResolvehCryptProvFunc
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PKCS8_IMPORT_PARAMS),
            "::",
            stringify!(pResolvehCryptProvFunc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_PKCS8_IMPORT_PARAMS>())).pVoidResolveFunc as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PKCS8_IMPORT_PARAMS),
            "::",
            stringify!(pVoidResolveFunc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_PKCS8_IMPORT_PARAMS>())).pDecryptPrivateKeyFunc
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PKCS8_IMPORT_PARAMS),
            "::",
            stringify!(pDecryptPrivateKeyFunc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_PKCS8_IMPORT_PARAMS>())).pVoidDecryptFunc as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PKCS8_IMPORT_PARAMS),
            "::",
            stringify!(pVoidDecryptFunc)
        )
    );
}
pub type CRYPT_PKCS8_IMPORT_PARAMS = _CRYPT_PKCS8_IMPORT_PARAMS;
pub type PCRYPT_PKCS8_IMPORT_PARAMS = *mut _CRYPT_PKCS8_IMPORT_PARAMS;
pub type CRYPT_PRIVATE_KEY_BLOB_AND_PARAMS = _CRYPT_PKCS8_IMPORT_PARAMS;
pub type PCRYPT_PRIVATE_KEY_BLOB_AND_PARAMS = *mut _CRYPT_PKCS8_IMPORT_PARAMS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_PKCS8_EXPORT_PARAMS {
    pub hCryptProv: HCRYPTPROV,
    pub dwKeySpec: DWORD,
    pub pszPrivateKeyObjId: LPSTR,
    pub pEncryptPrivateKeyFunc: PCRYPT_ENCRYPT_PRIVATE_KEY_FUNC,
    pub pVoidEncryptFunc: LPVOID,
}
#[test]
fn bindgen_test_layout__CRYPT_PKCS8_EXPORT_PARAMS() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_PKCS8_EXPORT_PARAMS>(),
        40usize,
        concat!("Size of: ", stringify!(_CRYPT_PKCS8_EXPORT_PARAMS))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_PKCS8_EXPORT_PARAMS>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_PKCS8_EXPORT_PARAMS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_PKCS8_EXPORT_PARAMS>())).hCryptProv as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PKCS8_EXPORT_PARAMS),
            "::",
            stringify!(hCryptProv)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_PKCS8_EXPORT_PARAMS>())).dwKeySpec as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PKCS8_EXPORT_PARAMS),
            "::",
            stringify!(dwKeySpec)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_PKCS8_EXPORT_PARAMS>())).pszPrivateKeyObjId as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PKCS8_EXPORT_PARAMS),
            "::",
            stringify!(pszPrivateKeyObjId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_PKCS8_EXPORT_PARAMS>())).pEncryptPrivateKeyFunc
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PKCS8_EXPORT_PARAMS),
            "::",
            stringify!(pEncryptPrivateKeyFunc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_PKCS8_EXPORT_PARAMS>())).pVoidEncryptFunc as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PKCS8_EXPORT_PARAMS),
            "::",
            stringify!(pVoidEncryptFunc)
        )
    );
}
pub type CRYPT_PKCS8_EXPORT_PARAMS = _CRYPT_PKCS8_EXPORT_PARAMS;
pub type PCRYPT_PKCS8_EXPORT_PARAMS = *mut _CRYPT_PKCS8_EXPORT_PARAMS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_INFO {
    pub dwVersion: DWORD,
    pub SerialNumber: CRYPT_INTEGER_BLOB,
    pub SignatureAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub Issuer: CERT_NAME_BLOB,
    pub NotBefore: FILETIME,
    pub NotAfter: FILETIME,
    pub Subject: CERT_NAME_BLOB,
    pub SubjectPublicKeyInfo: CERT_PUBLIC_KEY_INFO,
    pub IssuerUniqueId: CRYPT_BIT_BLOB,
    pub SubjectUniqueId: CRYPT_BIT_BLOB,
    pub cExtension: DWORD,
    pub rgExtension: PCERT_EXTENSION,
}
#[test]
fn bindgen_test_layout__CERT_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_INFO>(),
        208usize,
        concat!("Size of: ", stringify!(_CERT_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_INFO>())).dwVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_INFO),
            "::",
            stringify!(dwVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_INFO>())).SerialNumber as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_INFO),
            "::",
            stringify!(SerialNumber)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_INFO>())).SignatureAlgorithm as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_INFO),
            "::",
            stringify!(SignatureAlgorithm)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_INFO>())).Issuer as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_INFO),
            "::",
            stringify!(Issuer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_INFO>())).NotBefore as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_INFO),
            "::",
            stringify!(NotBefore)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_INFO>())).NotAfter as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_INFO),
            "::",
            stringify!(NotAfter)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_INFO>())).Subject as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_INFO),
            "::",
            stringify!(Subject)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_INFO>())).SubjectPublicKeyInfo as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_INFO),
            "::",
            stringify!(SubjectPublicKeyInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_INFO>())).IssuerUniqueId as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_INFO),
            "::",
            stringify!(IssuerUniqueId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_INFO>())).SubjectUniqueId as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_INFO),
            "::",
            stringify!(SubjectUniqueId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_INFO>())).cExtension as *const _ as usize },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_INFO),
            "::",
            stringify!(cExtension)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_INFO>())).rgExtension as *const _ as usize },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_INFO),
            "::",
            stringify!(rgExtension)
        )
    );
}
pub type CERT_INFO = _CERT_INFO;
pub type PCERT_INFO = *mut _CERT_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRL_ENTRY {
    pub SerialNumber: CRYPT_INTEGER_BLOB,
    pub RevocationDate: FILETIME,
    pub cExtension: DWORD,
    pub rgExtension: PCERT_EXTENSION,
}
#[test]
fn bindgen_test_layout__CRL_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_CRL_ENTRY>(),
        40usize,
        concat!("Size of: ", stringify!(_CRL_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRL_ENTRY>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRL_ENTRY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRL_ENTRY>())).SerialNumber as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_ENTRY),
            "::",
            stringify!(SerialNumber)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRL_ENTRY>())).RevocationDate as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_ENTRY),
            "::",
            stringify!(RevocationDate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRL_ENTRY>())).cExtension as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_ENTRY),
            "::",
            stringify!(cExtension)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRL_ENTRY>())).rgExtension as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_ENTRY),
            "::",
            stringify!(rgExtension)
        )
    );
}
pub type CRL_ENTRY = _CRL_ENTRY;
pub type PCRL_ENTRY = *mut _CRL_ENTRY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRL_INFO {
    pub dwVersion: DWORD,
    pub SignatureAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub Issuer: CERT_NAME_BLOB,
    pub ThisUpdate: FILETIME,
    pub NextUpdate: FILETIME,
    pub cCRLEntry: DWORD,
    pub rgCRLEntry: PCRL_ENTRY,
    pub cExtension: DWORD,
    pub rgExtension: PCERT_EXTENSION,
}
#[test]
fn bindgen_test_layout__CRL_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CRL_INFO>(),
        96usize,
        concat!("Size of: ", stringify!(_CRL_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRL_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRL_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRL_INFO>())).dwVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_INFO),
            "::",
            stringify!(dwVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRL_INFO>())).SignatureAlgorithm as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_INFO),
            "::",
            stringify!(SignatureAlgorithm)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRL_INFO>())).Issuer as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_INFO),
            "::",
            stringify!(Issuer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRL_INFO>())).ThisUpdate as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_INFO),
            "::",
            stringify!(ThisUpdate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRL_INFO>())).NextUpdate as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_INFO),
            "::",
            stringify!(NextUpdate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRL_INFO>())).cCRLEntry as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_INFO),
            "::",
            stringify!(cCRLEntry)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRL_INFO>())).rgCRLEntry as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_INFO),
            "::",
            stringify!(rgCRLEntry)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRL_INFO>())).cExtension as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_INFO),
            "::",
            stringify!(cExtension)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRL_INFO>())).rgExtension as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_INFO),
            "::",
            stringify!(rgExtension)
        )
    );
}
pub type CRL_INFO = _CRL_INFO;
pub type PCRL_INFO = *mut _CRL_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_OR_CRL_BLOB {
    pub dwChoice: DWORD,
    pub cbEncoded: DWORD,
    pub pbEncoded: *mut BYTE,
}
#[test]
fn bindgen_test_layout__CERT_OR_CRL_BLOB() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_OR_CRL_BLOB>(),
        16usize,
        concat!("Size of: ", stringify!(_CERT_OR_CRL_BLOB))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_OR_CRL_BLOB>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_OR_CRL_BLOB))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_OR_CRL_BLOB>())).dwChoice as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_OR_CRL_BLOB),
            "::",
            stringify!(dwChoice)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_OR_CRL_BLOB>())).cbEncoded as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_OR_CRL_BLOB),
            "::",
            stringify!(cbEncoded)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_OR_CRL_BLOB>())).pbEncoded as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_OR_CRL_BLOB),
            "::",
            stringify!(pbEncoded)
        )
    );
}
pub type CERT_OR_CRL_BLOB = _CERT_OR_CRL_BLOB;
pub type PCERT_OR_CRL_BLOB = *mut _CERT_OR_CRL_BLOB;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_OR_CRL_BUNDLE {
    pub cItem: DWORD,
    pub rgItem: PCERT_OR_CRL_BLOB,
}
#[test]
fn bindgen_test_layout__CERT_OR_CRL_BUNDLE() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_OR_CRL_BUNDLE>(),
        16usize,
        concat!("Size of: ", stringify!(_CERT_OR_CRL_BUNDLE))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_OR_CRL_BUNDLE>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_OR_CRL_BUNDLE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_OR_CRL_BUNDLE>())).cItem as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_OR_CRL_BUNDLE),
            "::",
            stringify!(cItem)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_OR_CRL_BUNDLE>())).rgItem as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_OR_CRL_BUNDLE),
            "::",
            stringify!(rgItem)
        )
    );
}
pub type CERT_OR_CRL_BUNDLE = _CERT_OR_CRL_BUNDLE;
pub type PCERT_OR_CRL_BUNDLE = *mut _CERT_OR_CRL_BUNDLE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_REQUEST_INFO {
    pub dwVersion: DWORD,
    pub Subject: CERT_NAME_BLOB,
    pub SubjectPublicKeyInfo: CERT_PUBLIC_KEY_INFO,
    pub cAttribute: DWORD,
    pub rgAttribute: PCRYPT_ATTRIBUTE,
}
#[test]
fn bindgen_test_layout__CERT_REQUEST_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_REQUEST_INFO>(),
        88usize,
        concat!("Size of: ", stringify!(_CERT_REQUEST_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_REQUEST_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_REQUEST_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_REQUEST_INFO>())).dwVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REQUEST_INFO),
            "::",
            stringify!(dwVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_REQUEST_INFO>())).Subject as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REQUEST_INFO),
            "::",
            stringify!(Subject)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_REQUEST_INFO>())).SubjectPublicKeyInfo as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REQUEST_INFO),
            "::",
            stringify!(SubjectPublicKeyInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_REQUEST_INFO>())).cAttribute as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REQUEST_INFO),
            "::",
            stringify!(cAttribute)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_REQUEST_INFO>())).rgAttribute as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REQUEST_INFO),
            "::",
            stringify!(rgAttribute)
        )
    );
}
pub type CERT_REQUEST_INFO = _CERT_REQUEST_INFO;
pub type PCERT_REQUEST_INFO = *mut _CERT_REQUEST_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_KEYGEN_REQUEST_INFO {
    pub dwVersion: DWORD,
    pub SubjectPublicKeyInfo: CERT_PUBLIC_KEY_INFO,
    pub pwszChallengeString: LPWSTR,
}
#[test]
fn bindgen_test_layout__CERT_KEYGEN_REQUEST_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_KEYGEN_REQUEST_INFO>(),
        64usize,
        concat!("Size of: ", stringify!(_CERT_KEYGEN_REQUEST_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_KEYGEN_REQUEST_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_KEYGEN_REQUEST_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_KEYGEN_REQUEST_INFO>())).dwVersion as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_KEYGEN_REQUEST_INFO),
            "::",
            stringify!(dwVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_KEYGEN_REQUEST_INFO>())).SubjectPublicKeyInfo as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_KEYGEN_REQUEST_INFO),
            "::",
            stringify!(SubjectPublicKeyInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_KEYGEN_REQUEST_INFO>())).pwszChallengeString as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_KEYGEN_REQUEST_INFO),
            "::",
            stringify!(pwszChallengeString)
        )
    );
}
pub type CERT_KEYGEN_REQUEST_INFO = _CERT_KEYGEN_REQUEST_INFO;
pub type PCERT_KEYGEN_REQUEST_INFO = *mut _CERT_KEYGEN_REQUEST_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_SIGNED_CONTENT_INFO {
    pub ToBeSigned: CRYPT_DER_BLOB,
    pub SignatureAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub Signature: CRYPT_BIT_BLOB,
}
#[test]
fn bindgen_test_layout__CERT_SIGNED_CONTENT_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_SIGNED_CONTENT_INFO>(),
        64usize,
        concat!("Size of: ", stringify!(_CERT_SIGNED_CONTENT_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_SIGNED_CONTENT_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_SIGNED_CONTENT_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_SIGNED_CONTENT_INFO>())).ToBeSigned as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SIGNED_CONTENT_INFO),
            "::",
            stringify!(ToBeSigned)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_SIGNED_CONTENT_INFO>())).SignatureAlgorithm as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SIGNED_CONTENT_INFO),
            "::",
            stringify!(SignatureAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_SIGNED_CONTENT_INFO>())).Signature as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SIGNED_CONTENT_INFO),
            "::",
            stringify!(Signature)
        )
    );
}
pub type CERT_SIGNED_CONTENT_INFO = _CERT_SIGNED_CONTENT_INFO;
pub type PCERT_SIGNED_CONTENT_INFO = *mut _CERT_SIGNED_CONTENT_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CTL_USAGE {
    pub cUsageIdentifier: DWORD,
    pub rgpszUsageIdentifier: *mut LPSTR,
}
#[test]
fn bindgen_test_layout__CTL_USAGE() {
    assert_eq!(
        ::std::mem::size_of::<_CTL_USAGE>(),
        16usize,
        concat!("Size of: ", stringify!(_CTL_USAGE))
    );
    assert_eq!(
        ::std::mem::align_of::<_CTL_USAGE>(),
        8usize,
        concat!("Alignment of ", stringify!(_CTL_USAGE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CTL_USAGE>())).cUsageIdentifier as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_USAGE),
            "::",
            stringify!(cUsageIdentifier)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CTL_USAGE>())).rgpszUsageIdentifier as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_USAGE),
            "::",
            stringify!(rgpszUsageIdentifier)
        )
    );
}
pub type CTL_USAGE = _CTL_USAGE;
pub type PCTL_USAGE = *mut _CTL_USAGE;
pub type CERT_ENHKEY_USAGE = _CTL_USAGE;
pub type PCERT_ENHKEY_USAGE = *mut _CTL_USAGE;
pub type PCCTL_USAGE = *const CTL_USAGE;
pub type PCCERT_ENHKEY_USAGE = *const CERT_ENHKEY_USAGE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CTL_ENTRY {
    pub SubjectIdentifier: CRYPT_DATA_BLOB,
    pub cAttribute: DWORD,
    pub rgAttribute: PCRYPT_ATTRIBUTE,
}
#[test]
fn bindgen_test_layout__CTL_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_CTL_ENTRY>(),
        32usize,
        concat!("Size of: ", stringify!(_CTL_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_CTL_ENTRY>(),
        8usize,
        concat!("Alignment of ", stringify!(_CTL_ENTRY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CTL_ENTRY>())).SubjectIdentifier as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_ENTRY),
            "::",
            stringify!(SubjectIdentifier)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CTL_ENTRY>())).cAttribute as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_ENTRY),
            "::",
            stringify!(cAttribute)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CTL_ENTRY>())).rgAttribute as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_ENTRY),
            "::",
            stringify!(rgAttribute)
        )
    );
}
pub type CTL_ENTRY = _CTL_ENTRY;
pub type PCTL_ENTRY = *mut _CTL_ENTRY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CTL_INFO {
    pub dwVersion: DWORD,
    pub SubjectUsage: CTL_USAGE,
    pub ListIdentifier: CRYPT_DATA_BLOB,
    pub SequenceNumber: CRYPT_INTEGER_BLOB,
    pub ThisUpdate: FILETIME,
    pub NextUpdate: FILETIME,
    pub SubjectAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub cCTLEntry: DWORD,
    pub rgCTLEntry: PCTL_ENTRY,
    pub cExtension: DWORD,
    pub rgExtension: PCERT_EXTENSION,
}
#[test]
fn bindgen_test_layout__CTL_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CTL_INFO>(),
        128usize,
        concat!("Size of: ", stringify!(_CTL_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CTL_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CTL_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CTL_INFO>())).dwVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_INFO),
            "::",
            stringify!(dwVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CTL_INFO>())).SubjectUsage as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_INFO),
            "::",
            stringify!(SubjectUsage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CTL_INFO>())).ListIdentifier as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_INFO),
            "::",
            stringify!(ListIdentifier)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CTL_INFO>())).SequenceNumber as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_INFO),
            "::",
            stringify!(SequenceNumber)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CTL_INFO>())).ThisUpdate as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_INFO),
            "::",
            stringify!(ThisUpdate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CTL_INFO>())).NextUpdate as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_INFO),
            "::",
            stringify!(NextUpdate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CTL_INFO>())).SubjectAlgorithm as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_INFO),
            "::",
            stringify!(SubjectAlgorithm)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CTL_INFO>())).cCTLEntry as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_INFO),
            "::",
            stringify!(cCTLEntry)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CTL_INFO>())).rgCTLEntry as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_INFO),
            "::",
            stringify!(rgCTLEntry)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CTL_INFO>())).cExtension as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_INFO),
            "::",
            stringify!(cExtension)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CTL_INFO>())).rgExtension as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_INFO),
            "::",
            stringify!(rgExtension)
        )
    );
}
pub type CTL_INFO = _CTL_INFO;
pub type PCTL_INFO = *mut _CTL_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_TIME_STAMP_REQUEST_INFO {
    pub pszTimeStampAlgorithm: LPSTR,
    pub pszContentType: LPSTR,
    pub Content: CRYPT_OBJID_BLOB,
    pub cAttribute: DWORD,
    pub rgAttribute: PCRYPT_ATTRIBUTE,
}
#[test]
fn bindgen_test_layout__CRYPT_TIME_STAMP_REQUEST_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_TIME_STAMP_REQUEST_INFO>(),
        48usize,
        concat!("Size of: ", stringify!(_CRYPT_TIME_STAMP_REQUEST_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_TIME_STAMP_REQUEST_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_TIME_STAMP_REQUEST_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIME_STAMP_REQUEST_INFO>())).pszTimeStampAlgorithm
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIME_STAMP_REQUEST_INFO),
            "::",
            stringify!(pszTimeStampAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIME_STAMP_REQUEST_INFO>())).pszContentType as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIME_STAMP_REQUEST_INFO),
            "::",
            stringify!(pszContentType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIME_STAMP_REQUEST_INFO>())).Content as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIME_STAMP_REQUEST_INFO),
            "::",
            stringify!(Content)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIME_STAMP_REQUEST_INFO>())).cAttribute as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIME_STAMP_REQUEST_INFO),
            "::",
            stringify!(cAttribute)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIME_STAMP_REQUEST_INFO>())).rgAttribute as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIME_STAMP_REQUEST_INFO),
            "::",
            stringify!(rgAttribute)
        )
    );
}
pub type CRYPT_TIME_STAMP_REQUEST_INFO = _CRYPT_TIME_STAMP_REQUEST_INFO;
pub type PCRYPT_TIME_STAMP_REQUEST_INFO = *mut _CRYPT_TIME_STAMP_REQUEST_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_ENROLLMENT_NAME_VALUE_PAIR {
    pub pwszName: LPWSTR,
    pub pwszValue: LPWSTR,
}
#[test]
fn bindgen_test_layout__CRYPT_ENROLLMENT_NAME_VALUE_PAIR() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_ENROLLMENT_NAME_VALUE_PAIR>(),
        16usize,
        concat!("Size of: ", stringify!(_CRYPT_ENROLLMENT_NAME_VALUE_PAIR))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_ENROLLMENT_NAME_VALUE_PAIR>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CRYPT_ENROLLMENT_NAME_VALUE_PAIR)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_ENROLLMENT_NAME_VALUE_PAIR>())).pwszName as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_ENROLLMENT_NAME_VALUE_PAIR),
            "::",
            stringify!(pwszName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_ENROLLMENT_NAME_VALUE_PAIR>())).pwszValue as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_ENROLLMENT_NAME_VALUE_PAIR),
            "::",
            stringify!(pwszValue)
        )
    );
}
pub type CRYPT_ENROLLMENT_NAME_VALUE_PAIR = _CRYPT_ENROLLMENT_NAME_VALUE_PAIR;
pub type PCRYPT_ENROLLMENT_NAME_VALUE_PAIR = *mut _CRYPT_ENROLLMENT_NAME_VALUE_PAIR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_CSP_PROVIDER {
    pub dwKeySpec: DWORD,
    pub pwszProviderName: LPWSTR,
    pub Signature: CRYPT_BIT_BLOB,
}
#[test]
fn bindgen_test_layout__CRYPT_CSP_PROVIDER() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_CSP_PROVIDER>(),
        40usize,
        concat!("Size of: ", stringify!(_CRYPT_CSP_PROVIDER))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_CSP_PROVIDER>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_CSP_PROVIDER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_CSP_PROVIDER>())).dwKeySpec as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_CSP_PROVIDER),
            "::",
            stringify!(dwKeySpec)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_CSP_PROVIDER>())).pwszProviderName as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_CSP_PROVIDER),
            "::",
            stringify!(pwszProviderName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_CSP_PROVIDER>())).Signature as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_CSP_PROVIDER),
            "::",
            stringify!(Signature)
        )
    );
}
pub type CRYPT_CSP_PROVIDER = _CRYPT_CSP_PROVIDER;
pub type PCRYPT_CSP_PROVIDER = *mut _CRYPT_CSP_PROVIDER;
extern "C" {
    pub fn CryptFormatObject(
        dwCertEncodingType: DWORD,
        dwFormatType: DWORD,
        dwFormatStrType: DWORD,
        pFormatStruct: *mut ::std::os::raw::c_void,
        lpszStructType: LPCSTR,
        pbEncoded: *const BYTE,
        cbEncoded: DWORD,
        pbFormat: *mut ::std::os::raw::c_void,
        pcbFormat: *mut DWORD,
    ) -> BOOL;
}
pub type PFN_CRYPT_ALLOC = ::std::option::Option<unsafe extern "C" fn(cbSize: size_t) -> LPVOID>;
pub type PFN_CRYPT_FREE = ::std::option::Option<unsafe extern "C" fn(pv: LPVOID)>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_ENCODE_PARA {
    pub cbSize: DWORD,
    pub pfnAlloc: PFN_CRYPT_ALLOC,
    pub pfnFree: PFN_CRYPT_FREE,
}
#[test]
fn bindgen_test_layout__CRYPT_ENCODE_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_ENCODE_PARA>(),
        24usize,
        concat!("Size of: ", stringify!(_CRYPT_ENCODE_PARA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_ENCODE_PARA>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_ENCODE_PARA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_ENCODE_PARA>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_ENCODE_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_ENCODE_PARA>())).pfnAlloc as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_ENCODE_PARA),
            "::",
            stringify!(pfnAlloc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_ENCODE_PARA>())).pfnFree as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_ENCODE_PARA),
            "::",
            stringify!(pfnFree)
        )
    );
}
pub type CRYPT_ENCODE_PARA = _CRYPT_ENCODE_PARA;
pub type PCRYPT_ENCODE_PARA = *mut _CRYPT_ENCODE_PARA;
extern "C" {
    pub fn CryptEncodeObjectEx(
        dwCertEncodingType: DWORD,
        lpszStructType: LPCSTR,
        pvStructInfo: *const ::std::os::raw::c_void,
        dwFlags: DWORD,
        pEncodePara: PCRYPT_ENCODE_PARA,
        pvEncoded: *mut ::std::os::raw::c_void,
        pcbEncoded: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptEncodeObject(
        dwCertEncodingType: DWORD,
        lpszStructType: LPCSTR,
        pvStructInfo: *const ::std::os::raw::c_void,
        pbEncoded: *mut BYTE,
        pcbEncoded: *mut DWORD,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_DECODE_PARA {
    pub cbSize: DWORD,
    pub pfnAlloc: PFN_CRYPT_ALLOC,
    pub pfnFree: PFN_CRYPT_FREE,
}
#[test]
fn bindgen_test_layout__CRYPT_DECODE_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_DECODE_PARA>(),
        24usize,
        concat!("Size of: ", stringify!(_CRYPT_DECODE_PARA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_DECODE_PARA>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_DECODE_PARA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_DECODE_PARA>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_DECODE_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_DECODE_PARA>())).pfnAlloc as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_DECODE_PARA),
            "::",
            stringify!(pfnAlloc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_DECODE_PARA>())).pfnFree as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_DECODE_PARA),
            "::",
            stringify!(pfnFree)
        )
    );
}
pub type CRYPT_DECODE_PARA = _CRYPT_DECODE_PARA;
pub type PCRYPT_DECODE_PARA = *mut _CRYPT_DECODE_PARA;
extern "C" {
    pub fn CryptDecodeObjectEx(
        dwCertEncodingType: DWORD,
        lpszStructType: LPCSTR,
        pbEncoded: *const BYTE,
        cbEncoded: DWORD,
        dwFlags: DWORD,
        pDecodePara: PCRYPT_DECODE_PARA,
        pvStructInfo: *mut ::std::os::raw::c_void,
        pcbStructInfo: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptDecodeObject(
        dwCertEncodingType: DWORD,
        lpszStructType: LPCSTR,
        pbEncoded: *const BYTE,
        cbEncoded: DWORD,
        dwFlags: DWORD,
        pvStructInfo: *mut ::std::os::raw::c_void,
        pcbStructInfo: *mut DWORD,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_EXTENSIONS {
    pub cExtension: DWORD,
    pub rgExtension: PCERT_EXTENSION,
}
#[test]
fn bindgen_test_layout__CERT_EXTENSIONS() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_EXTENSIONS>(),
        16usize,
        concat!("Size of: ", stringify!(_CERT_EXTENSIONS))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_EXTENSIONS>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_EXTENSIONS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_EXTENSIONS>())).cExtension as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_EXTENSIONS),
            "::",
            stringify!(cExtension)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_EXTENSIONS>())).rgExtension as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_EXTENSIONS),
            "::",
            stringify!(rgExtension)
        )
    );
}
pub type CERT_EXTENSIONS = _CERT_EXTENSIONS;
pub type PCERT_EXTENSIONS = *mut _CERT_EXTENSIONS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_AUTHORITY_KEY_ID_INFO {
    pub KeyId: CRYPT_DATA_BLOB,
    pub CertIssuer: CERT_NAME_BLOB,
    pub CertSerialNumber: CRYPT_INTEGER_BLOB,
}
#[test]
fn bindgen_test_layout__CERT_AUTHORITY_KEY_ID_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_AUTHORITY_KEY_ID_INFO>(),
        48usize,
        concat!("Size of: ", stringify!(_CERT_AUTHORITY_KEY_ID_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_AUTHORITY_KEY_ID_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_AUTHORITY_KEY_ID_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_AUTHORITY_KEY_ID_INFO>())).KeyId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_AUTHORITY_KEY_ID_INFO),
            "::",
            stringify!(KeyId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_AUTHORITY_KEY_ID_INFO>())).CertIssuer as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_AUTHORITY_KEY_ID_INFO),
            "::",
            stringify!(CertIssuer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_AUTHORITY_KEY_ID_INFO>())).CertSerialNumber as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_AUTHORITY_KEY_ID_INFO),
            "::",
            stringify!(CertSerialNumber)
        )
    );
}
pub type CERT_AUTHORITY_KEY_ID_INFO = _CERT_AUTHORITY_KEY_ID_INFO;
pub type PCERT_AUTHORITY_KEY_ID_INFO = *mut _CERT_AUTHORITY_KEY_ID_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_PRIVATE_KEY_VALIDITY {
    pub NotBefore: FILETIME,
    pub NotAfter: FILETIME,
}
#[test]
fn bindgen_test_layout__CERT_PRIVATE_KEY_VALIDITY() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_PRIVATE_KEY_VALIDITY>(),
        16usize,
        concat!("Size of: ", stringify!(_CERT_PRIVATE_KEY_VALIDITY))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_PRIVATE_KEY_VALIDITY>(),
        4usize,
        concat!("Alignment of ", stringify!(_CERT_PRIVATE_KEY_VALIDITY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_PRIVATE_KEY_VALIDITY>())).NotBefore as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_PRIVATE_KEY_VALIDITY),
            "::",
            stringify!(NotBefore)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_PRIVATE_KEY_VALIDITY>())).NotAfter as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_PRIVATE_KEY_VALIDITY),
            "::",
            stringify!(NotAfter)
        )
    );
}
pub type CERT_PRIVATE_KEY_VALIDITY = _CERT_PRIVATE_KEY_VALIDITY;
pub type PCERT_PRIVATE_KEY_VALIDITY = *mut _CERT_PRIVATE_KEY_VALIDITY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_KEY_ATTRIBUTES_INFO {
    pub KeyId: CRYPT_DATA_BLOB,
    pub IntendedKeyUsage: CRYPT_BIT_BLOB,
    pub pPrivateKeyUsagePeriod: PCERT_PRIVATE_KEY_VALIDITY,
}
#[test]
fn bindgen_test_layout__CERT_KEY_ATTRIBUTES_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_KEY_ATTRIBUTES_INFO>(),
        48usize,
        concat!("Size of: ", stringify!(_CERT_KEY_ATTRIBUTES_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_KEY_ATTRIBUTES_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_KEY_ATTRIBUTES_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_KEY_ATTRIBUTES_INFO>())).KeyId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_KEY_ATTRIBUTES_INFO),
            "::",
            stringify!(KeyId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_KEY_ATTRIBUTES_INFO>())).IntendedKeyUsage as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_KEY_ATTRIBUTES_INFO),
            "::",
            stringify!(IntendedKeyUsage)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_KEY_ATTRIBUTES_INFO>())).pPrivateKeyUsagePeriod as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_KEY_ATTRIBUTES_INFO),
            "::",
            stringify!(pPrivateKeyUsagePeriod)
        )
    );
}
pub type CERT_KEY_ATTRIBUTES_INFO = _CERT_KEY_ATTRIBUTES_INFO;
pub type PCERT_KEY_ATTRIBUTES_INFO = *mut _CERT_KEY_ATTRIBUTES_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_POLICY_ID {
    pub cCertPolicyElementId: DWORD,
    pub rgpszCertPolicyElementId: *mut LPSTR,
}
#[test]
fn bindgen_test_layout__CERT_POLICY_ID() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_POLICY_ID>(),
        16usize,
        concat!("Size of: ", stringify!(_CERT_POLICY_ID))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_POLICY_ID>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_POLICY_ID))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_POLICY_ID>())).cCertPolicyElementId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_POLICY_ID),
            "::",
            stringify!(cCertPolicyElementId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_POLICY_ID>())).rgpszCertPolicyElementId as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_POLICY_ID),
            "::",
            stringify!(rgpszCertPolicyElementId)
        )
    );
}
pub type CERT_POLICY_ID = _CERT_POLICY_ID;
pub type PCERT_POLICY_ID = *mut _CERT_POLICY_ID;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_KEY_USAGE_RESTRICTION_INFO {
    pub cCertPolicyId: DWORD,
    pub rgCertPolicyId: PCERT_POLICY_ID,
    pub RestrictedKeyUsage: CRYPT_BIT_BLOB,
}
#[test]
fn bindgen_test_layout__CERT_KEY_USAGE_RESTRICTION_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_KEY_USAGE_RESTRICTION_INFO>(),
        40usize,
        concat!("Size of: ", stringify!(_CERT_KEY_USAGE_RESTRICTION_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_KEY_USAGE_RESTRICTION_INFO>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CERT_KEY_USAGE_RESTRICTION_INFO)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_KEY_USAGE_RESTRICTION_INFO>())).cCertPolicyId as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_KEY_USAGE_RESTRICTION_INFO),
            "::",
            stringify!(cCertPolicyId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_KEY_USAGE_RESTRICTION_INFO>())).rgCertPolicyId as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_KEY_USAGE_RESTRICTION_INFO),
            "::",
            stringify!(rgCertPolicyId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_KEY_USAGE_RESTRICTION_INFO>())).RestrictedKeyUsage
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_KEY_USAGE_RESTRICTION_INFO),
            "::",
            stringify!(RestrictedKeyUsage)
        )
    );
}
pub type CERT_KEY_USAGE_RESTRICTION_INFO = _CERT_KEY_USAGE_RESTRICTION_INFO;
pub type PCERT_KEY_USAGE_RESTRICTION_INFO = *mut _CERT_KEY_USAGE_RESTRICTION_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_OTHER_NAME {
    pub pszObjId: LPSTR,
    pub Value: CRYPT_OBJID_BLOB,
}
#[test]
fn bindgen_test_layout__CERT_OTHER_NAME() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_OTHER_NAME>(),
        24usize,
        concat!("Size of: ", stringify!(_CERT_OTHER_NAME))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_OTHER_NAME>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_OTHER_NAME))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_OTHER_NAME>())).pszObjId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_OTHER_NAME),
            "::",
            stringify!(pszObjId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_OTHER_NAME>())).Value as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_OTHER_NAME),
            "::",
            stringify!(Value)
        )
    );
}
pub type CERT_OTHER_NAME = _CERT_OTHER_NAME;
pub type PCERT_OTHER_NAME = *mut _CERT_OTHER_NAME;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CERT_ALT_NAME_ENTRY {
    pub dwAltNameChoice: DWORD,
    pub __bindgen_anon_1: _CERT_ALT_NAME_ENTRY__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _CERT_ALT_NAME_ENTRY__bindgen_ty_1 {
    pub pOtherName: PCERT_OTHER_NAME,
    pub pwszRfc822Name: LPWSTR,
    pub pwszDNSName: LPWSTR,
    pub DirectoryName: CERT_NAME_BLOB,
    pub pwszURL: LPWSTR,
    pub IPAddress: CRYPT_DATA_BLOB,
    pub pszRegisteredID: LPSTR,
    _bindgen_union_align: [u64; 2usize],
}
#[test]
fn bindgen_test_layout__CERT_ALT_NAME_ENTRY__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_ALT_NAME_ENTRY__bindgen_ty_1>(),
        16usize,
        concat!("Size of: ", stringify!(_CERT_ALT_NAME_ENTRY__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_ALT_NAME_ENTRY__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CERT_ALT_NAME_ENTRY__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_ALT_NAME_ENTRY__bindgen_ty_1>())).pOtherName as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_ALT_NAME_ENTRY__bindgen_ty_1),
            "::",
            stringify!(pOtherName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_ALT_NAME_ENTRY__bindgen_ty_1>())).pwszRfc822Name
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_ALT_NAME_ENTRY__bindgen_ty_1),
            "::",
            stringify!(pwszRfc822Name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_ALT_NAME_ENTRY__bindgen_ty_1>())).pwszDNSName as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_ALT_NAME_ENTRY__bindgen_ty_1),
            "::",
            stringify!(pwszDNSName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_ALT_NAME_ENTRY__bindgen_ty_1>())).DirectoryName as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_ALT_NAME_ENTRY__bindgen_ty_1),
            "::",
            stringify!(DirectoryName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_ALT_NAME_ENTRY__bindgen_ty_1>())).pwszURL as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_ALT_NAME_ENTRY__bindgen_ty_1),
            "::",
            stringify!(pwszURL)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_ALT_NAME_ENTRY__bindgen_ty_1>())).IPAddress as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_ALT_NAME_ENTRY__bindgen_ty_1),
            "::",
            stringify!(IPAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_ALT_NAME_ENTRY__bindgen_ty_1>())).pszRegisteredID
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_ALT_NAME_ENTRY__bindgen_ty_1),
            "::",
            stringify!(pszRegisteredID)
        )
    );
}
#[test]
fn bindgen_test_layout__CERT_ALT_NAME_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_ALT_NAME_ENTRY>(),
        24usize,
        concat!("Size of: ", stringify!(_CERT_ALT_NAME_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_ALT_NAME_ENTRY>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_ALT_NAME_ENTRY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_ALT_NAME_ENTRY>())).dwAltNameChoice as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_ALT_NAME_ENTRY),
            "::",
            stringify!(dwAltNameChoice)
        )
    );
}
pub type CERT_ALT_NAME_ENTRY = _CERT_ALT_NAME_ENTRY;
pub type PCERT_ALT_NAME_ENTRY = *mut _CERT_ALT_NAME_ENTRY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_ALT_NAME_INFO {
    pub cAltEntry: DWORD,
    pub rgAltEntry: PCERT_ALT_NAME_ENTRY,
}
#[test]
fn bindgen_test_layout__CERT_ALT_NAME_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_ALT_NAME_INFO>(),
        16usize,
        concat!("Size of: ", stringify!(_CERT_ALT_NAME_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_ALT_NAME_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_ALT_NAME_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_ALT_NAME_INFO>())).cAltEntry as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_ALT_NAME_INFO),
            "::",
            stringify!(cAltEntry)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_ALT_NAME_INFO>())).rgAltEntry as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_ALT_NAME_INFO),
            "::",
            stringify!(rgAltEntry)
        )
    );
}
pub type CERT_ALT_NAME_INFO = _CERT_ALT_NAME_INFO;
pub type PCERT_ALT_NAME_INFO = *mut _CERT_ALT_NAME_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_BASIC_CONSTRAINTS_INFO {
    pub SubjectType: CRYPT_BIT_BLOB,
    pub fPathLenConstraint: BOOL,
    pub dwPathLenConstraint: DWORD,
    pub cSubtreesConstraint: DWORD,
    pub rgSubtreesConstraint: *mut CERT_NAME_BLOB,
}
#[test]
fn bindgen_test_layout__CERT_BASIC_CONSTRAINTS_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_BASIC_CONSTRAINTS_INFO>(),
        48usize,
        concat!("Size of: ", stringify!(_CERT_BASIC_CONSTRAINTS_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_BASIC_CONSTRAINTS_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_BASIC_CONSTRAINTS_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_BASIC_CONSTRAINTS_INFO>())).SubjectType as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_BASIC_CONSTRAINTS_INFO),
            "::",
            stringify!(SubjectType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_BASIC_CONSTRAINTS_INFO>())).fPathLenConstraint as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_BASIC_CONSTRAINTS_INFO),
            "::",
            stringify!(fPathLenConstraint)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_BASIC_CONSTRAINTS_INFO>())).dwPathLenConstraint as *const _
                as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_BASIC_CONSTRAINTS_INFO),
            "::",
            stringify!(dwPathLenConstraint)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_BASIC_CONSTRAINTS_INFO>())).cSubtreesConstraint as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_BASIC_CONSTRAINTS_INFO),
            "::",
            stringify!(cSubtreesConstraint)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_BASIC_CONSTRAINTS_INFO>())).rgSubtreesConstraint
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_BASIC_CONSTRAINTS_INFO),
            "::",
            stringify!(rgSubtreesConstraint)
        )
    );
}
pub type CERT_BASIC_CONSTRAINTS_INFO = _CERT_BASIC_CONSTRAINTS_INFO;
pub type PCERT_BASIC_CONSTRAINTS_INFO = *mut _CERT_BASIC_CONSTRAINTS_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_BASIC_CONSTRAINTS2_INFO {
    pub fCA: BOOL,
    pub fPathLenConstraint: BOOL,
    pub dwPathLenConstraint: DWORD,
}
#[test]
fn bindgen_test_layout__CERT_BASIC_CONSTRAINTS2_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_BASIC_CONSTRAINTS2_INFO>(),
        12usize,
        concat!("Size of: ", stringify!(_CERT_BASIC_CONSTRAINTS2_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_BASIC_CONSTRAINTS2_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_CERT_BASIC_CONSTRAINTS2_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_BASIC_CONSTRAINTS2_INFO>())).fCA as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_BASIC_CONSTRAINTS2_INFO),
            "::",
            stringify!(fCA)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_BASIC_CONSTRAINTS2_INFO>())).fPathLenConstraint as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_BASIC_CONSTRAINTS2_INFO),
            "::",
            stringify!(fPathLenConstraint)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_BASIC_CONSTRAINTS2_INFO>())).dwPathLenConstraint
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_BASIC_CONSTRAINTS2_INFO),
            "::",
            stringify!(dwPathLenConstraint)
        )
    );
}
pub type CERT_BASIC_CONSTRAINTS2_INFO = _CERT_BASIC_CONSTRAINTS2_INFO;
pub type PCERT_BASIC_CONSTRAINTS2_INFO = *mut _CERT_BASIC_CONSTRAINTS2_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_POLICY_QUALIFIER_INFO {
    pub pszPolicyQualifierId: LPSTR,
    pub Qualifier: CRYPT_OBJID_BLOB,
}
#[test]
fn bindgen_test_layout__CERT_POLICY_QUALIFIER_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_POLICY_QUALIFIER_INFO>(),
        24usize,
        concat!("Size of: ", stringify!(_CERT_POLICY_QUALIFIER_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_POLICY_QUALIFIER_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_POLICY_QUALIFIER_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_POLICY_QUALIFIER_INFO>())).pszPolicyQualifierId as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_POLICY_QUALIFIER_INFO),
            "::",
            stringify!(pszPolicyQualifierId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_POLICY_QUALIFIER_INFO>())).Qualifier as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_POLICY_QUALIFIER_INFO),
            "::",
            stringify!(Qualifier)
        )
    );
}
pub type CERT_POLICY_QUALIFIER_INFO = _CERT_POLICY_QUALIFIER_INFO;
pub type PCERT_POLICY_QUALIFIER_INFO = *mut _CERT_POLICY_QUALIFIER_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_POLICY_INFO {
    pub pszPolicyIdentifier: LPSTR,
    pub cPolicyQualifier: DWORD,
    pub rgPolicyQualifier: *mut CERT_POLICY_QUALIFIER_INFO,
}
#[test]
fn bindgen_test_layout__CERT_POLICY_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_POLICY_INFO>(),
        24usize,
        concat!("Size of: ", stringify!(_CERT_POLICY_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_POLICY_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_POLICY_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_POLICY_INFO>())).pszPolicyIdentifier as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_POLICY_INFO),
            "::",
            stringify!(pszPolicyIdentifier)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_POLICY_INFO>())).cPolicyQualifier as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_POLICY_INFO),
            "::",
            stringify!(cPolicyQualifier)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_POLICY_INFO>())).rgPolicyQualifier as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_POLICY_INFO),
            "::",
            stringify!(rgPolicyQualifier)
        )
    );
}
pub type CERT_POLICY_INFO = _CERT_POLICY_INFO;
pub type PCERT_POLICY_INFO = *mut _CERT_POLICY_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_POLICIES_INFO {
    pub cPolicyInfo: DWORD,
    pub rgPolicyInfo: *mut CERT_POLICY_INFO,
}
#[test]
fn bindgen_test_layout__CERT_POLICIES_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_POLICIES_INFO>(),
        16usize,
        concat!("Size of: ", stringify!(_CERT_POLICIES_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_POLICIES_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_POLICIES_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_POLICIES_INFO>())).cPolicyInfo as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_POLICIES_INFO),
            "::",
            stringify!(cPolicyInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_POLICIES_INFO>())).rgPolicyInfo as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_POLICIES_INFO),
            "::",
            stringify!(rgPolicyInfo)
        )
    );
}
pub type CERT_POLICIES_INFO = _CERT_POLICIES_INFO;
pub type PCERT_POLICIES_INFO = *mut _CERT_POLICIES_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_POLICY_QUALIFIER_NOTICE_REFERENCE {
    pub pszOrganization: LPSTR,
    pub cNoticeNumbers: DWORD,
    pub rgNoticeNumbers: *mut ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout__CERT_POLICY_QUALIFIER_NOTICE_REFERENCE() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_POLICY_QUALIFIER_NOTICE_REFERENCE>(),
        24usize,
        concat!(
            "Size of: ",
            stringify!(_CERT_POLICY_QUALIFIER_NOTICE_REFERENCE)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_POLICY_QUALIFIER_NOTICE_REFERENCE>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CERT_POLICY_QUALIFIER_NOTICE_REFERENCE)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_POLICY_QUALIFIER_NOTICE_REFERENCE>())).pszOrganization
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_POLICY_QUALIFIER_NOTICE_REFERENCE),
            "::",
            stringify!(pszOrganization)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_POLICY_QUALIFIER_NOTICE_REFERENCE>())).cNoticeNumbers
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_POLICY_QUALIFIER_NOTICE_REFERENCE),
            "::",
            stringify!(cNoticeNumbers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_POLICY_QUALIFIER_NOTICE_REFERENCE>())).rgNoticeNumbers
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_POLICY_QUALIFIER_NOTICE_REFERENCE),
            "::",
            stringify!(rgNoticeNumbers)
        )
    );
}
pub type CERT_POLICY_QUALIFIER_NOTICE_REFERENCE = _CERT_POLICY_QUALIFIER_NOTICE_REFERENCE;
pub type PCERT_POLICY_QUALIFIER_NOTICE_REFERENCE = *mut _CERT_POLICY_QUALIFIER_NOTICE_REFERENCE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_POLICY_QUALIFIER_USER_NOTICE {
    pub pNoticeReference: *mut CERT_POLICY_QUALIFIER_NOTICE_REFERENCE,
    pub pszDisplayText: LPWSTR,
}
#[test]
fn bindgen_test_layout__CERT_POLICY_QUALIFIER_USER_NOTICE() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_POLICY_QUALIFIER_USER_NOTICE>(),
        16usize,
        concat!("Size of: ", stringify!(_CERT_POLICY_QUALIFIER_USER_NOTICE))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_POLICY_QUALIFIER_USER_NOTICE>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CERT_POLICY_QUALIFIER_USER_NOTICE)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_POLICY_QUALIFIER_USER_NOTICE>())).pNoticeReference
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_POLICY_QUALIFIER_USER_NOTICE),
            "::",
            stringify!(pNoticeReference)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_POLICY_QUALIFIER_USER_NOTICE>())).pszDisplayText
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_POLICY_QUALIFIER_USER_NOTICE),
            "::",
            stringify!(pszDisplayText)
        )
    );
}
pub type CERT_POLICY_QUALIFIER_USER_NOTICE = _CERT_POLICY_QUALIFIER_USER_NOTICE;
pub type PCERT_POLICY_QUALIFIER_USER_NOTICE = *mut _CERT_POLICY_QUALIFIER_USER_NOTICE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CPS_URLS {
    pub pszURL: LPWSTR,
    pub pAlgorithm: *mut CRYPT_ALGORITHM_IDENTIFIER,
    pub pDigest: *mut CRYPT_DATA_BLOB,
}
#[test]
fn bindgen_test_layout__CPS_URLS() {
    assert_eq!(
        ::std::mem::size_of::<_CPS_URLS>(),
        24usize,
        concat!("Size of: ", stringify!(_CPS_URLS))
    );
    assert_eq!(
        ::std::mem::align_of::<_CPS_URLS>(),
        8usize,
        concat!("Alignment of ", stringify!(_CPS_URLS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CPS_URLS>())).pszURL as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CPS_URLS),
            "::",
            stringify!(pszURL)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CPS_URLS>())).pAlgorithm as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CPS_URLS),
            "::",
            stringify!(pAlgorithm)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CPS_URLS>())).pDigest as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CPS_URLS),
            "::",
            stringify!(pDigest)
        )
    );
}
pub type CPS_URLS = _CPS_URLS;
pub type PCPS_URLS = *mut _CPS_URLS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_POLICY95_QUALIFIER1 {
    pub pszPracticesReference: LPWSTR,
    pub pszNoticeIdentifier: LPSTR,
    pub pszNSINoticeIdentifier: LPSTR,
    pub cCPSURLs: DWORD,
    pub rgCPSURLs: *mut CPS_URLS,
}
#[test]
fn bindgen_test_layout__CERT_POLICY95_QUALIFIER1() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_POLICY95_QUALIFIER1>(),
        40usize,
        concat!("Size of: ", stringify!(_CERT_POLICY95_QUALIFIER1))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_POLICY95_QUALIFIER1>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_POLICY95_QUALIFIER1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_POLICY95_QUALIFIER1>())).pszPracticesReference as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_POLICY95_QUALIFIER1),
            "::",
            stringify!(pszPracticesReference)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_POLICY95_QUALIFIER1>())).pszNoticeIdentifier as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_POLICY95_QUALIFIER1),
            "::",
            stringify!(pszNoticeIdentifier)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_POLICY95_QUALIFIER1>())).pszNSINoticeIdentifier as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_POLICY95_QUALIFIER1),
            "::",
            stringify!(pszNSINoticeIdentifier)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_POLICY95_QUALIFIER1>())).cCPSURLs as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_POLICY95_QUALIFIER1),
            "::",
            stringify!(cCPSURLs)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_POLICY95_QUALIFIER1>())).rgCPSURLs as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_POLICY95_QUALIFIER1),
            "::",
            stringify!(rgCPSURLs)
        )
    );
}
pub type CERT_POLICY95_QUALIFIER1 = _CERT_POLICY95_QUALIFIER1;
pub type PCERT_POLICY95_QUALIFIER1 = *mut _CERT_POLICY95_QUALIFIER1;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_POLICY_MAPPING {
    pub pszIssuerDomainPolicy: LPSTR,
    pub pszSubjectDomainPolicy: LPSTR,
}
#[test]
fn bindgen_test_layout__CERT_POLICY_MAPPING() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_POLICY_MAPPING>(),
        16usize,
        concat!("Size of: ", stringify!(_CERT_POLICY_MAPPING))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_POLICY_MAPPING>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_POLICY_MAPPING))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_POLICY_MAPPING>())).pszIssuerDomainPolicy as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_POLICY_MAPPING),
            "::",
            stringify!(pszIssuerDomainPolicy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_POLICY_MAPPING>())).pszSubjectDomainPolicy as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_POLICY_MAPPING),
            "::",
            stringify!(pszSubjectDomainPolicy)
        )
    );
}
pub type CERT_POLICY_MAPPING = _CERT_POLICY_MAPPING;
pub type PCERT_POLICY_MAPPING = *mut _CERT_POLICY_MAPPING;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_POLICY_MAPPINGS_INFO {
    pub cPolicyMapping: DWORD,
    pub rgPolicyMapping: PCERT_POLICY_MAPPING,
}
#[test]
fn bindgen_test_layout__CERT_POLICY_MAPPINGS_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_POLICY_MAPPINGS_INFO>(),
        16usize,
        concat!("Size of: ", stringify!(_CERT_POLICY_MAPPINGS_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_POLICY_MAPPINGS_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_POLICY_MAPPINGS_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_POLICY_MAPPINGS_INFO>())).cPolicyMapping as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_POLICY_MAPPINGS_INFO),
            "::",
            stringify!(cPolicyMapping)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_POLICY_MAPPINGS_INFO>())).rgPolicyMapping as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_POLICY_MAPPINGS_INFO),
            "::",
            stringify!(rgPolicyMapping)
        )
    );
}
pub type CERT_POLICY_MAPPINGS_INFO = _CERT_POLICY_MAPPINGS_INFO;
pub type PCERT_POLICY_MAPPINGS_INFO = *mut _CERT_POLICY_MAPPINGS_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_POLICY_CONSTRAINTS_INFO {
    pub fRequireExplicitPolicy: BOOL,
    pub dwRequireExplicitPolicySkipCerts: DWORD,
    pub fInhibitPolicyMapping: BOOL,
    pub dwInhibitPolicyMappingSkipCerts: DWORD,
}
#[test]
fn bindgen_test_layout__CERT_POLICY_CONSTRAINTS_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_POLICY_CONSTRAINTS_INFO>(),
        16usize,
        concat!("Size of: ", stringify!(_CERT_POLICY_CONSTRAINTS_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_POLICY_CONSTRAINTS_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_CERT_POLICY_CONSTRAINTS_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_POLICY_CONSTRAINTS_INFO>())).fRequireExplicitPolicy
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_POLICY_CONSTRAINTS_INFO),
            "::",
            stringify!(fRequireExplicitPolicy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_POLICY_CONSTRAINTS_INFO>()))
                .dwRequireExplicitPolicySkipCerts as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_POLICY_CONSTRAINTS_INFO),
            "::",
            stringify!(dwRequireExplicitPolicySkipCerts)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_POLICY_CONSTRAINTS_INFO>())).fInhibitPolicyMapping
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_POLICY_CONSTRAINTS_INFO),
            "::",
            stringify!(fInhibitPolicyMapping)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_POLICY_CONSTRAINTS_INFO>()))
                .dwInhibitPolicyMappingSkipCerts as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_POLICY_CONSTRAINTS_INFO),
            "::",
            stringify!(dwInhibitPolicyMappingSkipCerts)
        )
    );
}
pub type CERT_POLICY_CONSTRAINTS_INFO = _CERT_POLICY_CONSTRAINTS_INFO;
pub type PCERT_POLICY_CONSTRAINTS_INFO = *mut _CERT_POLICY_CONSTRAINTS_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY {
    pub pszObjId: LPSTR,
    pub cValue: DWORD,
    pub rgValue: PCRYPT_DER_BLOB,
}
#[test]
fn bindgen_test_layout__CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY>(),
        24usize,
        concat!("Size of: ", stringify!(_CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY>())).pszObjId as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY),
            "::",
            stringify!(pszObjId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY>())).cValue as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY),
            "::",
            stringify!(cValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY>())).rgValue as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY),
            "::",
            stringify!(rgValue)
        )
    );
}
pub type CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY = _CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY;
pub type PCRYPT_CONTENT_INFO_SEQUENCE_OF_ANY = *mut _CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_CONTENT_INFO {
    pub pszObjId: LPSTR,
    pub Content: CRYPT_DER_BLOB,
}
#[test]
fn bindgen_test_layout__CRYPT_CONTENT_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_CONTENT_INFO>(),
        24usize,
        concat!("Size of: ", stringify!(_CRYPT_CONTENT_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_CONTENT_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_CONTENT_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_CONTENT_INFO>())).pszObjId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_CONTENT_INFO),
            "::",
            stringify!(pszObjId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_CONTENT_INFO>())).Content as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_CONTENT_INFO),
            "::",
            stringify!(Content)
        )
    );
}
pub type CRYPT_CONTENT_INFO = _CRYPT_CONTENT_INFO;
pub type PCRYPT_CONTENT_INFO = *mut _CRYPT_CONTENT_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_SEQUENCE_OF_ANY {
    pub cValue: DWORD,
    pub rgValue: PCRYPT_DER_BLOB,
}
#[test]
fn bindgen_test_layout__CRYPT_SEQUENCE_OF_ANY() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_SEQUENCE_OF_ANY>(),
        16usize,
        concat!("Size of: ", stringify!(_CRYPT_SEQUENCE_OF_ANY))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_SEQUENCE_OF_ANY>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_SEQUENCE_OF_ANY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_SEQUENCE_OF_ANY>())).cValue as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_SEQUENCE_OF_ANY),
            "::",
            stringify!(cValue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_SEQUENCE_OF_ANY>())).rgValue as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_SEQUENCE_OF_ANY),
            "::",
            stringify!(rgValue)
        )
    );
}
pub type CRYPT_SEQUENCE_OF_ANY = _CRYPT_SEQUENCE_OF_ANY;
pub type PCRYPT_SEQUENCE_OF_ANY = *mut _CRYPT_SEQUENCE_OF_ANY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_AUTHORITY_KEY_ID2_INFO {
    pub KeyId: CRYPT_DATA_BLOB,
    pub AuthorityCertIssuer: CERT_ALT_NAME_INFO,
    pub AuthorityCertSerialNumber: CRYPT_INTEGER_BLOB,
}
#[test]
fn bindgen_test_layout__CERT_AUTHORITY_KEY_ID2_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_AUTHORITY_KEY_ID2_INFO>(),
        48usize,
        concat!("Size of: ", stringify!(_CERT_AUTHORITY_KEY_ID2_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_AUTHORITY_KEY_ID2_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_AUTHORITY_KEY_ID2_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_AUTHORITY_KEY_ID2_INFO>())).KeyId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_AUTHORITY_KEY_ID2_INFO),
            "::",
            stringify!(KeyId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_AUTHORITY_KEY_ID2_INFO>())).AuthorityCertIssuer as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_AUTHORITY_KEY_ID2_INFO),
            "::",
            stringify!(AuthorityCertIssuer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_AUTHORITY_KEY_ID2_INFO>())).AuthorityCertSerialNumber
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_AUTHORITY_KEY_ID2_INFO),
            "::",
            stringify!(AuthorityCertSerialNumber)
        )
    );
}
pub type CERT_AUTHORITY_KEY_ID2_INFO = _CERT_AUTHORITY_KEY_ID2_INFO;
pub type PCERT_AUTHORITY_KEY_ID2_INFO = *mut _CERT_AUTHORITY_KEY_ID2_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CERT_ACCESS_DESCRIPTION {
    pub pszAccessMethod: LPSTR,
    pub AccessLocation: CERT_ALT_NAME_ENTRY,
}
#[test]
fn bindgen_test_layout__CERT_ACCESS_DESCRIPTION() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_ACCESS_DESCRIPTION>(),
        32usize,
        concat!("Size of: ", stringify!(_CERT_ACCESS_DESCRIPTION))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_ACCESS_DESCRIPTION>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_ACCESS_DESCRIPTION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_ACCESS_DESCRIPTION>())).pszAccessMethod as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_ACCESS_DESCRIPTION),
            "::",
            stringify!(pszAccessMethod)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_ACCESS_DESCRIPTION>())).AccessLocation as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_ACCESS_DESCRIPTION),
            "::",
            stringify!(AccessLocation)
        )
    );
}
pub type CERT_ACCESS_DESCRIPTION = _CERT_ACCESS_DESCRIPTION;
pub type PCERT_ACCESS_DESCRIPTION = *mut _CERT_ACCESS_DESCRIPTION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_AUTHORITY_INFO_ACCESS {
    pub cAccDescr: DWORD,
    pub rgAccDescr: PCERT_ACCESS_DESCRIPTION,
}
#[test]
fn bindgen_test_layout__CERT_AUTHORITY_INFO_ACCESS() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_AUTHORITY_INFO_ACCESS>(),
        16usize,
        concat!("Size of: ", stringify!(_CERT_AUTHORITY_INFO_ACCESS))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_AUTHORITY_INFO_ACCESS>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_AUTHORITY_INFO_ACCESS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_AUTHORITY_INFO_ACCESS>())).cAccDescr as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_AUTHORITY_INFO_ACCESS),
            "::",
            stringify!(cAccDescr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_AUTHORITY_INFO_ACCESS>())).rgAccDescr as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_AUTHORITY_INFO_ACCESS),
            "::",
            stringify!(rgAccDescr)
        )
    );
}
pub type CERT_AUTHORITY_INFO_ACCESS = _CERT_AUTHORITY_INFO_ACCESS;
pub type PCERT_AUTHORITY_INFO_ACCESS = *mut _CERT_AUTHORITY_INFO_ACCESS;
pub type CERT_SUBJECT_INFO_ACCESS = _CERT_AUTHORITY_INFO_ACCESS;
pub type PCERT_SUBJECT_INFO_ACCESS = *mut _CERT_AUTHORITY_INFO_ACCESS;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CRL_DIST_POINT_NAME {
    pub dwDistPointNameChoice: DWORD,
    pub __bindgen_anon_1: _CRL_DIST_POINT_NAME__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _CRL_DIST_POINT_NAME__bindgen_ty_1 {
    pub FullName: CERT_ALT_NAME_INFO,
    _bindgen_union_align: [u64; 2usize],
}
#[test]
fn bindgen_test_layout__CRL_DIST_POINT_NAME__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_CRL_DIST_POINT_NAME__bindgen_ty_1>(),
        16usize,
        concat!("Size of: ", stringify!(_CRL_DIST_POINT_NAME__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRL_DIST_POINT_NAME__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CRL_DIST_POINT_NAME__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRL_DIST_POINT_NAME__bindgen_ty_1>())).FullName as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_DIST_POINT_NAME__bindgen_ty_1),
            "::",
            stringify!(FullName)
        )
    );
}
#[test]
fn bindgen_test_layout__CRL_DIST_POINT_NAME() {
    assert_eq!(
        ::std::mem::size_of::<_CRL_DIST_POINT_NAME>(),
        24usize,
        concat!("Size of: ", stringify!(_CRL_DIST_POINT_NAME))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRL_DIST_POINT_NAME>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRL_DIST_POINT_NAME))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRL_DIST_POINT_NAME>())).dwDistPointNameChoice as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_DIST_POINT_NAME),
            "::",
            stringify!(dwDistPointNameChoice)
        )
    );
}
pub type CRL_DIST_POINT_NAME = _CRL_DIST_POINT_NAME;
pub type PCRL_DIST_POINT_NAME = *mut _CRL_DIST_POINT_NAME;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CRL_DIST_POINT {
    pub DistPointName: CRL_DIST_POINT_NAME,
    pub ReasonFlags: CRYPT_BIT_BLOB,
    pub CRLIssuer: CERT_ALT_NAME_INFO,
}
#[test]
fn bindgen_test_layout__CRL_DIST_POINT() {
    assert_eq!(
        ::std::mem::size_of::<_CRL_DIST_POINT>(),
        64usize,
        concat!("Size of: ", stringify!(_CRL_DIST_POINT))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRL_DIST_POINT>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRL_DIST_POINT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRL_DIST_POINT>())).DistPointName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_DIST_POINT),
            "::",
            stringify!(DistPointName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRL_DIST_POINT>())).ReasonFlags as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_DIST_POINT),
            "::",
            stringify!(ReasonFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRL_DIST_POINT>())).CRLIssuer as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_DIST_POINT),
            "::",
            stringify!(CRLIssuer)
        )
    );
}
pub type CRL_DIST_POINT = _CRL_DIST_POINT;
pub type PCRL_DIST_POINT = *mut _CRL_DIST_POINT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRL_DIST_POINTS_INFO {
    pub cDistPoint: DWORD,
    pub rgDistPoint: PCRL_DIST_POINT,
}
#[test]
fn bindgen_test_layout__CRL_DIST_POINTS_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CRL_DIST_POINTS_INFO>(),
        16usize,
        concat!("Size of: ", stringify!(_CRL_DIST_POINTS_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRL_DIST_POINTS_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRL_DIST_POINTS_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRL_DIST_POINTS_INFO>())).cDistPoint as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_DIST_POINTS_INFO),
            "::",
            stringify!(cDistPoint)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRL_DIST_POINTS_INFO>())).rgDistPoint as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_DIST_POINTS_INFO),
            "::",
            stringify!(rgDistPoint)
        )
    );
}
pub type CRL_DIST_POINTS_INFO = _CRL_DIST_POINTS_INFO;
pub type PCRL_DIST_POINTS_INFO = *mut _CRL_DIST_POINTS_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CROSS_CERT_DIST_POINTS_INFO {
    pub dwSyncDeltaTime: DWORD,
    pub cDistPoint: DWORD,
    pub rgDistPoint: PCERT_ALT_NAME_INFO,
}
#[test]
fn bindgen_test_layout__CROSS_CERT_DIST_POINTS_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CROSS_CERT_DIST_POINTS_INFO>(),
        16usize,
        concat!("Size of: ", stringify!(_CROSS_CERT_DIST_POINTS_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CROSS_CERT_DIST_POINTS_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CROSS_CERT_DIST_POINTS_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CROSS_CERT_DIST_POINTS_INFO>())).dwSyncDeltaTime as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CROSS_CERT_DIST_POINTS_INFO),
            "::",
            stringify!(dwSyncDeltaTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CROSS_CERT_DIST_POINTS_INFO>())).cDistPoint as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CROSS_CERT_DIST_POINTS_INFO),
            "::",
            stringify!(cDistPoint)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CROSS_CERT_DIST_POINTS_INFO>())).rgDistPoint as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CROSS_CERT_DIST_POINTS_INFO),
            "::",
            stringify!(rgDistPoint)
        )
    );
}
pub type CROSS_CERT_DIST_POINTS_INFO = _CROSS_CERT_DIST_POINTS_INFO;
pub type PCROSS_CERT_DIST_POINTS_INFO = *mut _CROSS_CERT_DIST_POINTS_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_PAIR {
    pub Forward: CERT_BLOB,
    pub Reverse: CERT_BLOB,
}
#[test]
fn bindgen_test_layout__CERT_PAIR() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_PAIR>(),
        32usize,
        concat!("Size of: ", stringify!(_CERT_PAIR))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_PAIR>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_PAIR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_PAIR>())).Forward as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_PAIR),
            "::",
            stringify!(Forward)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_PAIR>())).Reverse as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_PAIR),
            "::",
            stringify!(Reverse)
        )
    );
}
pub type CERT_PAIR = _CERT_PAIR;
pub type PCERT_PAIR = *mut _CERT_PAIR;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CRL_ISSUING_DIST_POINT {
    pub DistPointName: CRL_DIST_POINT_NAME,
    pub fOnlyContainsUserCerts: BOOL,
    pub fOnlyContainsCACerts: BOOL,
    pub OnlySomeReasonFlags: CRYPT_BIT_BLOB,
    pub fIndirectCRL: BOOL,
}
#[test]
fn bindgen_test_layout__CRL_ISSUING_DIST_POINT() {
    assert_eq!(
        ::std::mem::size_of::<_CRL_ISSUING_DIST_POINT>(),
        64usize,
        concat!("Size of: ", stringify!(_CRL_ISSUING_DIST_POINT))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRL_ISSUING_DIST_POINT>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRL_ISSUING_DIST_POINT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRL_ISSUING_DIST_POINT>())).DistPointName as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_ISSUING_DIST_POINT),
            "::",
            stringify!(DistPointName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRL_ISSUING_DIST_POINT>())).fOnlyContainsUserCerts as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_ISSUING_DIST_POINT),
            "::",
            stringify!(fOnlyContainsUserCerts)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRL_ISSUING_DIST_POINT>())).fOnlyContainsCACerts as *const _
                as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_ISSUING_DIST_POINT),
            "::",
            stringify!(fOnlyContainsCACerts)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRL_ISSUING_DIST_POINT>())).OnlySomeReasonFlags as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_ISSUING_DIST_POINT),
            "::",
            stringify!(OnlySomeReasonFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRL_ISSUING_DIST_POINT>())).fIndirectCRL as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_ISSUING_DIST_POINT),
            "::",
            stringify!(fIndirectCRL)
        )
    );
}
pub type CRL_ISSUING_DIST_POINT = _CRL_ISSUING_DIST_POINT;
pub type PCRL_ISSUING_DIST_POINT = *mut _CRL_ISSUING_DIST_POINT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CERT_GENERAL_SUBTREE {
    pub Base: CERT_ALT_NAME_ENTRY,
    pub dwMinimum: DWORD,
    pub fMaximum: BOOL,
    pub dwMaximum: DWORD,
}
#[test]
fn bindgen_test_layout__CERT_GENERAL_SUBTREE() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_GENERAL_SUBTREE>(),
        40usize,
        concat!("Size of: ", stringify!(_CERT_GENERAL_SUBTREE))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_GENERAL_SUBTREE>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_GENERAL_SUBTREE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_GENERAL_SUBTREE>())).Base as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_GENERAL_SUBTREE),
            "::",
            stringify!(Base)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_GENERAL_SUBTREE>())).dwMinimum as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_GENERAL_SUBTREE),
            "::",
            stringify!(dwMinimum)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_GENERAL_SUBTREE>())).fMaximum as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_GENERAL_SUBTREE),
            "::",
            stringify!(fMaximum)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_GENERAL_SUBTREE>())).dwMaximum as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_GENERAL_SUBTREE),
            "::",
            stringify!(dwMaximum)
        )
    );
}
pub type CERT_GENERAL_SUBTREE = _CERT_GENERAL_SUBTREE;
pub type PCERT_GENERAL_SUBTREE = *mut _CERT_GENERAL_SUBTREE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_NAME_CONSTRAINTS_INFO {
    pub cPermittedSubtree: DWORD,
    pub rgPermittedSubtree: PCERT_GENERAL_SUBTREE,
    pub cExcludedSubtree: DWORD,
    pub rgExcludedSubtree: PCERT_GENERAL_SUBTREE,
}
#[test]
fn bindgen_test_layout__CERT_NAME_CONSTRAINTS_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_NAME_CONSTRAINTS_INFO>(),
        32usize,
        concat!("Size of: ", stringify!(_CERT_NAME_CONSTRAINTS_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_NAME_CONSTRAINTS_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_NAME_CONSTRAINTS_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_NAME_CONSTRAINTS_INFO>())).cPermittedSubtree as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_NAME_CONSTRAINTS_INFO),
            "::",
            stringify!(cPermittedSubtree)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_NAME_CONSTRAINTS_INFO>())).rgPermittedSubtree as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_NAME_CONSTRAINTS_INFO),
            "::",
            stringify!(rgPermittedSubtree)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_NAME_CONSTRAINTS_INFO>())).cExcludedSubtree as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_NAME_CONSTRAINTS_INFO),
            "::",
            stringify!(cExcludedSubtree)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_NAME_CONSTRAINTS_INFO>())).rgExcludedSubtree as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_NAME_CONSTRAINTS_INFO),
            "::",
            stringify!(rgExcludedSubtree)
        )
    );
}
pub type CERT_NAME_CONSTRAINTS_INFO = _CERT_NAME_CONSTRAINTS_INFO;
pub type PCERT_NAME_CONSTRAINTS_INFO = *mut _CERT_NAME_CONSTRAINTS_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_DSS_PARAMETERS {
    pub p: CRYPT_UINT_BLOB,
    pub q: CRYPT_UINT_BLOB,
    pub g: CRYPT_UINT_BLOB,
}
#[test]
fn bindgen_test_layout__CERT_DSS_PARAMETERS() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_DSS_PARAMETERS>(),
        48usize,
        concat!("Size of: ", stringify!(_CERT_DSS_PARAMETERS))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_DSS_PARAMETERS>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_DSS_PARAMETERS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_DSS_PARAMETERS>())).p as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_DSS_PARAMETERS),
            "::",
            stringify!(p)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_DSS_PARAMETERS>())).q as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_DSS_PARAMETERS),
            "::",
            stringify!(q)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_DSS_PARAMETERS>())).g as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_DSS_PARAMETERS),
            "::",
            stringify!(g)
        )
    );
}
pub type CERT_DSS_PARAMETERS = _CERT_DSS_PARAMETERS;
pub type PCERT_DSS_PARAMETERS = *mut _CERT_DSS_PARAMETERS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_DH_PARAMETERS {
    pub p: CRYPT_UINT_BLOB,
    pub g: CRYPT_UINT_BLOB,
}
#[test]
fn bindgen_test_layout__CERT_DH_PARAMETERS() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_DH_PARAMETERS>(),
        32usize,
        concat!("Size of: ", stringify!(_CERT_DH_PARAMETERS))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_DH_PARAMETERS>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_DH_PARAMETERS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_DH_PARAMETERS>())).p as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_DH_PARAMETERS),
            "::",
            stringify!(p)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_DH_PARAMETERS>())).g as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_DH_PARAMETERS),
            "::",
            stringify!(g)
        )
    );
}
pub type CERT_DH_PARAMETERS = _CERT_DH_PARAMETERS;
pub type PCERT_DH_PARAMETERS = *mut _CERT_DH_PARAMETERS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_ECC_SIGNATURE {
    pub r: CRYPT_UINT_BLOB,
    pub s: CRYPT_UINT_BLOB,
}
#[test]
fn bindgen_test_layout__CERT_ECC_SIGNATURE() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_ECC_SIGNATURE>(),
        32usize,
        concat!("Size of: ", stringify!(_CERT_ECC_SIGNATURE))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_ECC_SIGNATURE>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_ECC_SIGNATURE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_ECC_SIGNATURE>())).r as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_ECC_SIGNATURE),
            "::",
            stringify!(r)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_ECC_SIGNATURE>())).s as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_ECC_SIGNATURE),
            "::",
            stringify!(s)
        )
    );
}
pub type CERT_ECC_SIGNATURE = _CERT_ECC_SIGNATURE;
pub type PCERT_ECC_SIGNATURE = *mut _CERT_ECC_SIGNATURE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_X942_DH_VALIDATION_PARAMS {
    pub seed: CRYPT_BIT_BLOB,
    pub pgenCounter: DWORD,
}
#[test]
fn bindgen_test_layout__CERT_X942_DH_VALIDATION_PARAMS() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_X942_DH_VALIDATION_PARAMS>(),
        32usize,
        concat!("Size of: ", stringify!(_CERT_X942_DH_VALIDATION_PARAMS))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_X942_DH_VALIDATION_PARAMS>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_X942_DH_VALIDATION_PARAMS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_X942_DH_VALIDATION_PARAMS>())).seed as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_X942_DH_VALIDATION_PARAMS),
            "::",
            stringify!(seed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_X942_DH_VALIDATION_PARAMS>())).pgenCounter as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_X942_DH_VALIDATION_PARAMS),
            "::",
            stringify!(pgenCounter)
        )
    );
}
pub type CERT_X942_DH_VALIDATION_PARAMS = _CERT_X942_DH_VALIDATION_PARAMS;
pub type PCERT_X942_DH_VALIDATION_PARAMS = *mut _CERT_X942_DH_VALIDATION_PARAMS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_X942_DH_PARAMETERS {
    pub p: CRYPT_UINT_BLOB,
    pub g: CRYPT_UINT_BLOB,
    pub q: CRYPT_UINT_BLOB,
    pub j: CRYPT_UINT_BLOB,
    pub pValidationParams: PCERT_X942_DH_VALIDATION_PARAMS,
}
#[test]
fn bindgen_test_layout__CERT_X942_DH_PARAMETERS() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_X942_DH_PARAMETERS>(),
        72usize,
        concat!("Size of: ", stringify!(_CERT_X942_DH_PARAMETERS))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_X942_DH_PARAMETERS>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_X942_DH_PARAMETERS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_X942_DH_PARAMETERS>())).p as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_X942_DH_PARAMETERS),
            "::",
            stringify!(p)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_X942_DH_PARAMETERS>())).g as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_X942_DH_PARAMETERS),
            "::",
            stringify!(g)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_X942_DH_PARAMETERS>())).q as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_X942_DH_PARAMETERS),
            "::",
            stringify!(q)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_X942_DH_PARAMETERS>())).j as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_X942_DH_PARAMETERS),
            "::",
            stringify!(j)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_X942_DH_PARAMETERS>())).pValidationParams as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_X942_DH_PARAMETERS),
            "::",
            stringify!(pValidationParams)
        )
    );
}
pub type CERT_X942_DH_PARAMETERS = _CERT_X942_DH_PARAMETERS;
pub type PCERT_X942_DH_PARAMETERS = *mut _CERT_X942_DH_PARAMETERS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_X942_OTHER_INFO {
    pub pszContentEncryptionObjId: LPSTR,
    pub rgbCounter: [BYTE; 4usize],
    pub rgbKeyLength: [BYTE; 4usize],
    pub PubInfo: CRYPT_DATA_BLOB,
}
#[test]
fn bindgen_test_layout__CRYPT_X942_OTHER_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_X942_OTHER_INFO>(),
        32usize,
        concat!("Size of: ", stringify!(_CRYPT_X942_OTHER_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_X942_OTHER_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_X942_OTHER_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_X942_OTHER_INFO>())).pszContentEncryptionObjId as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_X942_OTHER_INFO),
            "::",
            stringify!(pszContentEncryptionObjId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_X942_OTHER_INFO>())).rgbCounter as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_X942_OTHER_INFO),
            "::",
            stringify!(rgbCounter)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_X942_OTHER_INFO>())).rgbKeyLength as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_X942_OTHER_INFO),
            "::",
            stringify!(rgbKeyLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_X942_OTHER_INFO>())).PubInfo as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_X942_OTHER_INFO),
            "::",
            stringify!(PubInfo)
        )
    );
}
pub type CRYPT_X942_OTHER_INFO = _CRYPT_X942_OTHER_INFO;
pub type PCRYPT_X942_OTHER_INFO = *mut _CRYPT_X942_OTHER_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_ECC_CMS_SHARED_INFO {
    pub Algorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub EntityUInfo: CRYPT_DATA_BLOB,
    pub rgbSuppPubInfo: [BYTE; 4usize],
}
#[test]
fn bindgen_test_layout__CRYPT_ECC_CMS_SHARED_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_ECC_CMS_SHARED_INFO>(),
        48usize,
        concat!("Size of: ", stringify!(_CRYPT_ECC_CMS_SHARED_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_ECC_CMS_SHARED_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_ECC_CMS_SHARED_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_ECC_CMS_SHARED_INFO>())).Algorithm as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_ECC_CMS_SHARED_INFO),
            "::",
            stringify!(Algorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_ECC_CMS_SHARED_INFO>())).EntityUInfo as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_ECC_CMS_SHARED_INFO),
            "::",
            stringify!(EntityUInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_ECC_CMS_SHARED_INFO>())).rgbSuppPubInfo as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_ECC_CMS_SHARED_INFO),
            "::",
            stringify!(rgbSuppPubInfo)
        )
    );
}
pub type CRYPT_ECC_CMS_SHARED_INFO = _CRYPT_ECC_CMS_SHARED_INFO;
pub type PCRYPT_ECC_CMS_SHARED_INFO = *mut _CRYPT_ECC_CMS_SHARED_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_RC2_CBC_PARAMETERS {
    pub dwVersion: DWORD,
    pub fIV: BOOL,
    pub rgbIV: [BYTE; 8usize],
}
#[test]
fn bindgen_test_layout__CRYPT_RC2_CBC_PARAMETERS() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_RC2_CBC_PARAMETERS>(),
        16usize,
        concat!("Size of: ", stringify!(_CRYPT_RC2_CBC_PARAMETERS))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_RC2_CBC_PARAMETERS>(),
        4usize,
        concat!("Alignment of ", stringify!(_CRYPT_RC2_CBC_PARAMETERS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_RC2_CBC_PARAMETERS>())).dwVersion as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_RC2_CBC_PARAMETERS),
            "::",
            stringify!(dwVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_RC2_CBC_PARAMETERS>())).fIV as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_RC2_CBC_PARAMETERS),
            "::",
            stringify!(fIV)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_RC2_CBC_PARAMETERS>())).rgbIV as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_RC2_CBC_PARAMETERS),
            "::",
            stringify!(rgbIV)
        )
    );
}
pub type CRYPT_RC2_CBC_PARAMETERS = _CRYPT_RC2_CBC_PARAMETERS;
pub type PCRYPT_RC2_CBC_PARAMETERS = *mut _CRYPT_RC2_CBC_PARAMETERS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_SMIME_CAPABILITY {
    pub pszObjId: LPSTR,
    pub Parameters: CRYPT_OBJID_BLOB,
}
#[test]
fn bindgen_test_layout__CRYPT_SMIME_CAPABILITY() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_SMIME_CAPABILITY>(),
        24usize,
        concat!("Size of: ", stringify!(_CRYPT_SMIME_CAPABILITY))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_SMIME_CAPABILITY>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_SMIME_CAPABILITY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_SMIME_CAPABILITY>())).pszObjId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_SMIME_CAPABILITY),
            "::",
            stringify!(pszObjId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_SMIME_CAPABILITY>())).Parameters as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_SMIME_CAPABILITY),
            "::",
            stringify!(Parameters)
        )
    );
}
pub type CRYPT_SMIME_CAPABILITY = _CRYPT_SMIME_CAPABILITY;
pub type PCRYPT_SMIME_CAPABILITY = *mut _CRYPT_SMIME_CAPABILITY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_SMIME_CAPABILITIES {
    pub cCapability: DWORD,
    pub rgCapability: PCRYPT_SMIME_CAPABILITY,
}
#[test]
fn bindgen_test_layout__CRYPT_SMIME_CAPABILITIES() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_SMIME_CAPABILITIES>(),
        16usize,
        concat!("Size of: ", stringify!(_CRYPT_SMIME_CAPABILITIES))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_SMIME_CAPABILITIES>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_SMIME_CAPABILITIES))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_SMIME_CAPABILITIES>())).cCapability as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_SMIME_CAPABILITIES),
            "::",
            stringify!(cCapability)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_SMIME_CAPABILITIES>())).rgCapability as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_SMIME_CAPABILITIES),
            "::",
            stringify!(rgCapability)
        )
    );
}
pub type CRYPT_SMIME_CAPABILITIES = _CRYPT_SMIME_CAPABILITIES;
pub type PCRYPT_SMIME_CAPABILITIES = *mut _CRYPT_SMIME_CAPABILITIES;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_QC_STATEMENT {
    pub pszStatementId: LPSTR,
    pub StatementInfo: CRYPT_OBJID_BLOB,
}
#[test]
fn bindgen_test_layout__CERT_QC_STATEMENT() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_QC_STATEMENT>(),
        24usize,
        concat!("Size of: ", stringify!(_CERT_QC_STATEMENT))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_QC_STATEMENT>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_QC_STATEMENT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_QC_STATEMENT>())).pszStatementId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_QC_STATEMENT),
            "::",
            stringify!(pszStatementId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_QC_STATEMENT>())).StatementInfo as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_QC_STATEMENT),
            "::",
            stringify!(StatementInfo)
        )
    );
}
pub type CERT_QC_STATEMENT = _CERT_QC_STATEMENT;
pub type PCERT_QC_STATEMENT = *mut _CERT_QC_STATEMENT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_QC_STATEMENTS_EXT_INFO {
    pub cStatement: DWORD,
    pub rgStatement: PCERT_QC_STATEMENT,
}
#[test]
fn bindgen_test_layout__CERT_QC_STATEMENTS_EXT_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_QC_STATEMENTS_EXT_INFO>(),
        16usize,
        concat!("Size of: ", stringify!(_CERT_QC_STATEMENTS_EXT_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_QC_STATEMENTS_EXT_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_QC_STATEMENTS_EXT_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_QC_STATEMENTS_EXT_INFO>())).cStatement as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_QC_STATEMENTS_EXT_INFO),
            "::",
            stringify!(cStatement)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_QC_STATEMENTS_EXT_INFO>())).rgStatement as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_QC_STATEMENTS_EXT_INFO),
            "::",
            stringify!(rgStatement)
        )
    );
}
pub type CERT_QC_STATEMENTS_EXT_INFO = _CERT_QC_STATEMENTS_EXT_INFO;
pub type PCERT_QC_STATEMENTS_EXT_INFO = *mut _CERT_QC_STATEMENTS_EXT_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_MASK_GEN_ALGORITHM {
    pub pszObjId: LPSTR,
    pub HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
}
#[test]
fn bindgen_test_layout__CRYPT_MASK_GEN_ALGORITHM() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_MASK_GEN_ALGORITHM>(),
        32usize,
        concat!("Size of: ", stringify!(_CRYPT_MASK_GEN_ALGORITHM))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_MASK_GEN_ALGORITHM>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_MASK_GEN_ALGORITHM))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_MASK_GEN_ALGORITHM>())).pszObjId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_MASK_GEN_ALGORITHM),
            "::",
            stringify!(pszObjId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_MASK_GEN_ALGORITHM>())).HashAlgorithm as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_MASK_GEN_ALGORITHM),
            "::",
            stringify!(HashAlgorithm)
        )
    );
}
pub type CRYPT_MASK_GEN_ALGORITHM = _CRYPT_MASK_GEN_ALGORITHM;
pub type PCRYPT_MASK_GEN_ALGORITHM = *mut _CRYPT_MASK_GEN_ALGORITHM;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_RSA_SSA_PSS_PARAMETERS {
    pub HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub MaskGenAlgorithm: CRYPT_MASK_GEN_ALGORITHM,
    pub dwSaltLength: DWORD,
    pub dwTrailerField: DWORD,
}
#[test]
fn bindgen_test_layout__CRYPT_RSA_SSA_PSS_PARAMETERS() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_RSA_SSA_PSS_PARAMETERS>(),
        64usize,
        concat!("Size of: ", stringify!(_CRYPT_RSA_SSA_PSS_PARAMETERS))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_RSA_SSA_PSS_PARAMETERS>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_RSA_SSA_PSS_PARAMETERS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_RSA_SSA_PSS_PARAMETERS>())).HashAlgorithm as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_RSA_SSA_PSS_PARAMETERS),
            "::",
            stringify!(HashAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_RSA_SSA_PSS_PARAMETERS>())).MaskGenAlgorithm as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_RSA_SSA_PSS_PARAMETERS),
            "::",
            stringify!(MaskGenAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_RSA_SSA_PSS_PARAMETERS>())).dwSaltLength as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_RSA_SSA_PSS_PARAMETERS),
            "::",
            stringify!(dwSaltLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_RSA_SSA_PSS_PARAMETERS>())).dwTrailerField as *const _
                as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_RSA_SSA_PSS_PARAMETERS),
            "::",
            stringify!(dwTrailerField)
        )
    );
}
pub type CRYPT_RSA_SSA_PSS_PARAMETERS = _CRYPT_RSA_SSA_PSS_PARAMETERS;
pub type PCRYPT_RSA_SSA_PSS_PARAMETERS = *mut _CRYPT_RSA_SSA_PSS_PARAMETERS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_PSOURCE_ALGORITHM {
    pub pszObjId: LPSTR,
    pub EncodingParameters: CRYPT_DATA_BLOB,
}
#[test]
fn bindgen_test_layout__CRYPT_PSOURCE_ALGORITHM() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_PSOURCE_ALGORITHM>(),
        24usize,
        concat!("Size of: ", stringify!(_CRYPT_PSOURCE_ALGORITHM))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_PSOURCE_ALGORITHM>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_PSOURCE_ALGORITHM))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_PSOURCE_ALGORITHM>())).pszObjId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PSOURCE_ALGORITHM),
            "::",
            stringify!(pszObjId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_PSOURCE_ALGORITHM>())).EncodingParameters as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PSOURCE_ALGORITHM),
            "::",
            stringify!(EncodingParameters)
        )
    );
}
pub type CRYPT_PSOURCE_ALGORITHM = _CRYPT_PSOURCE_ALGORITHM;
pub type PCRYPT_PSOURCE_ALGORITHM = *mut _CRYPT_PSOURCE_ALGORITHM;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_RSAES_OAEP_PARAMETERS {
    pub HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub MaskGenAlgorithm: CRYPT_MASK_GEN_ALGORITHM,
    pub PSourceAlgorithm: CRYPT_PSOURCE_ALGORITHM,
}
#[test]
fn bindgen_test_layout__CRYPT_RSAES_OAEP_PARAMETERS() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_RSAES_OAEP_PARAMETERS>(),
        80usize,
        concat!("Size of: ", stringify!(_CRYPT_RSAES_OAEP_PARAMETERS))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_RSAES_OAEP_PARAMETERS>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_RSAES_OAEP_PARAMETERS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_RSAES_OAEP_PARAMETERS>())).HashAlgorithm as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_RSAES_OAEP_PARAMETERS),
            "::",
            stringify!(HashAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_RSAES_OAEP_PARAMETERS>())).MaskGenAlgorithm as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_RSAES_OAEP_PARAMETERS),
            "::",
            stringify!(MaskGenAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_RSAES_OAEP_PARAMETERS>())).PSourceAlgorithm as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_RSAES_OAEP_PARAMETERS),
            "::",
            stringify!(PSourceAlgorithm)
        )
    );
}
pub type CRYPT_RSAES_OAEP_PARAMETERS = _CRYPT_RSAES_OAEP_PARAMETERS;
pub type PCRYPT_RSAES_OAEP_PARAMETERS = *mut _CRYPT_RSAES_OAEP_PARAMETERS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CMC_TAGGED_ATTRIBUTE {
    pub dwBodyPartID: DWORD,
    pub Attribute: CRYPT_ATTRIBUTE,
}
#[test]
fn bindgen_test_layout__CMC_TAGGED_ATTRIBUTE() {
    assert_eq!(
        ::std::mem::size_of::<_CMC_TAGGED_ATTRIBUTE>(),
        32usize,
        concat!("Size of: ", stringify!(_CMC_TAGGED_ATTRIBUTE))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMC_TAGGED_ATTRIBUTE>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMC_TAGGED_ATTRIBUTE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMC_TAGGED_ATTRIBUTE>())).dwBodyPartID as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_TAGGED_ATTRIBUTE),
            "::",
            stringify!(dwBodyPartID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMC_TAGGED_ATTRIBUTE>())).Attribute as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_TAGGED_ATTRIBUTE),
            "::",
            stringify!(Attribute)
        )
    );
}
pub type CMC_TAGGED_ATTRIBUTE = _CMC_TAGGED_ATTRIBUTE;
pub type PCMC_TAGGED_ATTRIBUTE = *mut _CMC_TAGGED_ATTRIBUTE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CMC_TAGGED_CERT_REQUEST {
    pub dwBodyPartID: DWORD,
    pub SignedCertRequest: CRYPT_DER_BLOB,
}
#[test]
fn bindgen_test_layout__CMC_TAGGED_CERT_REQUEST() {
    assert_eq!(
        ::std::mem::size_of::<_CMC_TAGGED_CERT_REQUEST>(),
        24usize,
        concat!("Size of: ", stringify!(_CMC_TAGGED_CERT_REQUEST))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMC_TAGGED_CERT_REQUEST>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMC_TAGGED_CERT_REQUEST))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMC_TAGGED_CERT_REQUEST>())).dwBodyPartID as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_TAGGED_CERT_REQUEST),
            "::",
            stringify!(dwBodyPartID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMC_TAGGED_CERT_REQUEST>())).SignedCertRequest as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_TAGGED_CERT_REQUEST),
            "::",
            stringify!(SignedCertRequest)
        )
    );
}
pub type CMC_TAGGED_CERT_REQUEST = _CMC_TAGGED_CERT_REQUEST;
pub type PCMC_TAGGED_CERT_REQUEST = *mut _CMC_TAGGED_CERT_REQUEST;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CMC_TAGGED_REQUEST {
    pub dwTaggedRequestChoice: DWORD,
    pub __bindgen_anon_1: _CMC_TAGGED_REQUEST__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _CMC_TAGGED_REQUEST__bindgen_ty_1 {
    pub pTaggedCertRequest: PCMC_TAGGED_CERT_REQUEST,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__CMC_TAGGED_REQUEST__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_CMC_TAGGED_REQUEST__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_CMC_TAGGED_REQUEST__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMC_TAGGED_REQUEST__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CMC_TAGGED_REQUEST__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMC_TAGGED_REQUEST__bindgen_ty_1>())).pTaggedCertRequest
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_TAGGED_REQUEST__bindgen_ty_1),
            "::",
            stringify!(pTaggedCertRequest)
        )
    );
}
#[test]
fn bindgen_test_layout__CMC_TAGGED_REQUEST() {
    assert_eq!(
        ::std::mem::size_of::<_CMC_TAGGED_REQUEST>(),
        16usize,
        concat!("Size of: ", stringify!(_CMC_TAGGED_REQUEST))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMC_TAGGED_REQUEST>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMC_TAGGED_REQUEST))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMC_TAGGED_REQUEST>())).dwTaggedRequestChoice as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_TAGGED_REQUEST),
            "::",
            stringify!(dwTaggedRequestChoice)
        )
    );
}
pub type CMC_TAGGED_REQUEST = _CMC_TAGGED_REQUEST;
pub type PCMC_TAGGED_REQUEST = *mut _CMC_TAGGED_REQUEST;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CMC_TAGGED_CONTENT_INFO {
    pub dwBodyPartID: DWORD,
    pub EncodedContentInfo: CRYPT_DER_BLOB,
}
#[test]
fn bindgen_test_layout__CMC_TAGGED_CONTENT_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMC_TAGGED_CONTENT_INFO>(),
        24usize,
        concat!("Size of: ", stringify!(_CMC_TAGGED_CONTENT_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMC_TAGGED_CONTENT_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMC_TAGGED_CONTENT_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMC_TAGGED_CONTENT_INFO>())).dwBodyPartID as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_TAGGED_CONTENT_INFO),
            "::",
            stringify!(dwBodyPartID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMC_TAGGED_CONTENT_INFO>())).EncodedContentInfo as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_TAGGED_CONTENT_INFO),
            "::",
            stringify!(EncodedContentInfo)
        )
    );
}
pub type CMC_TAGGED_CONTENT_INFO = _CMC_TAGGED_CONTENT_INFO;
pub type PCMC_TAGGED_CONTENT_INFO = *mut _CMC_TAGGED_CONTENT_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CMC_TAGGED_OTHER_MSG {
    pub dwBodyPartID: DWORD,
    pub pszObjId: LPSTR,
    pub Value: CRYPT_OBJID_BLOB,
}
#[test]
fn bindgen_test_layout__CMC_TAGGED_OTHER_MSG() {
    assert_eq!(
        ::std::mem::size_of::<_CMC_TAGGED_OTHER_MSG>(),
        32usize,
        concat!("Size of: ", stringify!(_CMC_TAGGED_OTHER_MSG))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMC_TAGGED_OTHER_MSG>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMC_TAGGED_OTHER_MSG))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMC_TAGGED_OTHER_MSG>())).dwBodyPartID as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_TAGGED_OTHER_MSG),
            "::",
            stringify!(dwBodyPartID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMC_TAGGED_OTHER_MSG>())).pszObjId as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_TAGGED_OTHER_MSG),
            "::",
            stringify!(pszObjId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMC_TAGGED_OTHER_MSG>())).Value as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_TAGGED_OTHER_MSG),
            "::",
            stringify!(Value)
        )
    );
}
pub type CMC_TAGGED_OTHER_MSG = _CMC_TAGGED_OTHER_MSG;
pub type PCMC_TAGGED_OTHER_MSG = *mut _CMC_TAGGED_OTHER_MSG;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CMC_DATA_INFO {
    pub cTaggedAttribute: DWORD,
    pub rgTaggedAttribute: PCMC_TAGGED_ATTRIBUTE,
    pub cTaggedRequest: DWORD,
    pub rgTaggedRequest: PCMC_TAGGED_REQUEST,
    pub cTaggedContentInfo: DWORD,
    pub rgTaggedContentInfo: PCMC_TAGGED_CONTENT_INFO,
    pub cTaggedOtherMsg: DWORD,
    pub rgTaggedOtherMsg: PCMC_TAGGED_OTHER_MSG,
}
#[test]
fn bindgen_test_layout__CMC_DATA_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMC_DATA_INFO>(),
        64usize,
        concat!("Size of: ", stringify!(_CMC_DATA_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMC_DATA_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMC_DATA_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMC_DATA_INFO>())).cTaggedAttribute as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_DATA_INFO),
            "::",
            stringify!(cTaggedAttribute)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMC_DATA_INFO>())).rgTaggedAttribute as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_DATA_INFO),
            "::",
            stringify!(rgTaggedAttribute)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMC_DATA_INFO>())).cTaggedRequest as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_DATA_INFO),
            "::",
            stringify!(cTaggedRequest)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMC_DATA_INFO>())).rgTaggedRequest as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_DATA_INFO),
            "::",
            stringify!(rgTaggedRequest)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMC_DATA_INFO>())).cTaggedContentInfo as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_DATA_INFO),
            "::",
            stringify!(cTaggedContentInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMC_DATA_INFO>())).rgTaggedContentInfo as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_DATA_INFO),
            "::",
            stringify!(rgTaggedContentInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMC_DATA_INFO>())).cTaggedOtherMsg as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_DATA_INFO),
            "::",
            stringify!(cTaggedOtherMsg)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMC_DATA_INFO>())).rgTaggedOtherMsg as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_DATA_INFO),
            "::",
            stringify!(rgTaggedOtherMsg)
        )
    );
}
pub type CMC_DATA_INFO = _CMC_DATA_INFO;
pub type PCMC_DATA_INFO = *mut _CMC_DATA_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CMC_RESPONSE_INFO {
    pub cTaggedAttribute: DWORD,
    pub rgTaggedAttribute: PCMC_TAGGED_ATTRIBUTE,
    pub cTaggedContentInfo: DWORD,
    pub rgTaggedContentInfo: PCMC_TAGGED_CONTENT_INFO,
    pub cTaggedOtherMsg: DWORD,
    pub rgTaggedOtherMsg: PCMC_TAGGED_OTHER_MSG,
}
#[test]
fn bindgen_test_layout__CMC_RESPONSE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMC_RESPONSE_INFO>(),
        48usize,
        concat!("Size of: ", stringify!(_CMC_RESPONSE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMC_RESPONSE_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMC_RESPONSE_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMC_RESPONSE_INFO>())).cTaggedAttribute as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_RESPONSE_INFO),
            "::",
            stringify!(cTaggedAttribute)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMC_RESPONSE_INFO>())).rgTaggedAttribute as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_RESPONSE_INFO),
            "::",
            stringify!(rgTaggedAttribute)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMC_RESPONSE_INFO>())).cTaggedContentInfo as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_RESPONSE_INFO),
            "::",
            stringify!(cTaggedContentInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMC_RESPONSE_INFO>())).rgTaggedContentInfo as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_RESPONSE_INFO),
            "::",
            stringify!(rgTaggedContentInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMC_RESPONSE_INFO>())).cTaggedOtherMsg as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_RESPONSE_INFO),
            "::",
            stringify!(cTaggedOtherMsg)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMC_RESPONSE_INFO>())).rgTaggedOtherMsg as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_RESPONSE_INFO),
            "::",
            stringify!(rgTaggedOtherMsg)
        )
    );
}
pub type CMC_RESPONSE_INFO = _CMC_RESPONSE_INFO;
pub type PCMC_RESPONSE_INFO = *mut _CMC_RESPONSE_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CMC_PEND_INFO {
    pub PendToken: CRYPT_DATA_BLOB,
    pub PendTime: FILETIME,
}
#[test]
fn bindgen_test_layout__CMC_PEND_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMC_PEND_INFO>(),
        24usize,
        concat!("Size of: ", stringify!(_CMC_PEND_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMC_PEND_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMC_PEND_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMC_PEND_INFO>())).PendToken as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_PEND_INFO),
            "::",
            stringify!(PendToken)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMC_PEND_INFO>())).PendTime as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_PEND_INFO),
            "::",
            stringify!(PendTime)
        )
    );
}
pub type CMC_PEND_INFO = _CMC_PEND_INFO;
pub type PCMC_PEND_INFO = *mut _CMC_PEND_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CMC_STATUS_INFO {
    pub dwStatus: DWORD,
    pub cBodyList: DWORD,
    pub rgdwBodyList: *mut DWORD,
    pub pwszStatusString: LPWSTR,
    pub dwOtherInfoChoice: DWORD,
    pub __bindgen_anon_1: _CMC_STATUS_INFO__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _CMC_STATUS_INFO__bindgen_ty_1 {
    pub dwFailInfo: DWORD,
    pub pPendInfo: PCMC_PEND_INFO,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__CMC_STATUS_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_CMC_STATUS_INFO__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_CMC_STATUS_INFO__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMC_STATUS_INFO__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMC_STATUS_INFO__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMC_STATUS_INFO__bindgen_ty_1>())).dwFailInfo as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_STATUS_INFO__bindgen_ty_1),
            "::",
            stringify!(dwFailInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMC_STATUS_INFO__bindgen_ty_1>())).pPendInfo as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_STATUS_INFO__bindgen_ty_1),
            "::",
            stringify!(pPendInfo)
        )
    );
}
#[test]
fn bindgen_test_layout__CMC_STATUS_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMC_STATUS_INFO>(),
        40usize,
        concat!("Size of: ", stringify!(_CMC_STATUS_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMC_STATUS_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMC_STATUS_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMC_STATUS_INFO>())).dwStatus as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_STATUS_INFO),
            "::",
            stringify!(dwStatus)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMC_STATUS_INFO>())).cBodyList as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_STATUS_INFO),
            "::",
            stringify!(cBodyList)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMC_STATUS_INFO>())).rgdwBodyList as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_STATUS_INFO),
            "::",
            stringify!(rgdwBodyList)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMC_STATUS_INFO>())).pwszStatusString as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_STATUS_INFO),
            "::",
            stringify!(pwszStatusString)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMC_STATUS_INFO>())).dwOtherInfoChoice as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_STATUS_INFO),
            "::",
            stringify!(dwOtherInfoChoice)
        )
    );
}
pub type CMC_STATUS_INFO = _CMC_STATUS_INFO;
pub type PCMC_STATUS_INFO = *mut _CMC_STATUS_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CMC_ADD_EXTENSIONS_INFO {
    pub dwCmcDataReference: DWORD,
    pub cCertReference: DWORD,
    pub rgdwCertReference: *mut DWORD,
    pub cExtension: DWORD,
    pub rgExtension: PCERT_EXTENSION,
}
#[test]
fn bindgen_test_layout__CMC_ADD_EXTENSIONS_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMC_ADD_EXTENSIONS_INFO>(),
        32usize,
        concat!("Size of: ", stringify!(_CMC_ADD_EXTENSIONS_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMC_ADD_EXTENSIONS_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMC_ADD_EXTENSIONS_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMC_ADD_EXTENSIONS_INFO>())).dwCmcDataReference as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_ADD_EXTENSIONS_INFO),
            "::",
            stringify!(dwCmcDataReference)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMC_ADD_EXTENSIONS_INFO>())).cCertReference as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_ADD_EXTENSIONS_INFO),
            "::",
            stringify!(cCertReference)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMC_ADD_EXTENSIONS_INFO>())).rgdwCertReference as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_ADD_EXTENSIONS_INFO),
            "::",
            stringify!(rgdwCertReference)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMC_ADD_EXTENSIONS_INFO>())).cExtension as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_ADD_EXTENSIONS_INFO),
            "::",
            stringify!(cExtension)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMC_ADD_EXTENSIONS_INFO>())).rgExtension as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_ADD_EXTENSIONS_INFO),
            "::",
            stringify!(rgExtension)
        )
    );
}
pub type CMC_ADD_EXTENSIONS_INFO = _CMC_ADD_EXTENSIONS_INFO;
pub type PCMC_ADD_EXTENSIONS_INFO = *mut _CMC_ADD_EXTENSIONS_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CMC_ADD_ATTRIBUTES_INFO {
    pub dwCmcDataReference: DWORD,
    pub cCertReference: DWORD,
    pub rgdwCertReference: *mut DWORD,
    pub cAttribute: DWORD,
    pub rgAttribute: PCRYPT_ATTRIBUTE,
}
#[test]
fn bindgen_test_layout__CMC_ADD_ATTRIBUTES_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMC_ADD_ATTRIBUTES_INFO>(),
        32usize,
        concat!("Size of: ", stringify!(_CMC_ADD_ATTRIBUTES_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMC_ADD_ATTRIBUTES_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMC_ADD_ATTRIBUTES_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMC_ADD_ATTRIBUTES_INFO>())).dwCmcDataReference as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_ADD_ATTRIBUTES_INFO),
            "::",
            stringify!(dwCmcDataReference)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMC_ADD_ATTRIBUTES_INFO>())).cCertReference as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_ADD_ATTRIBUTES_INFO),
            "::",
            stringify!(cCertReference)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMC_ADD_ATTRIBUTES_INFO>())).rgdwCertReference as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_ADD_ATTRIBUTES_INFO),
            "::",
            stringify!(rgdwCertReference)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMC_ADD_ATTRIBUTES_INFO>())).cAttribute as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_ADD_ATTRIBUTES_INFO),
            "::",
            stringify!(cAttribute)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMC_ADD_ATTRIBUTES_INFO>())).rgAttribute as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMC_ADD_ATTRIBUTES_INFO),
            "::",
            stringify!(rgAttribute)
        )
    );
}
pub type CMC_ADD_ATTRIBUTES_INFO = _CMC_ADD_ATTRIBUTES_INFO;
pub type PCMC_ADD_ATTRIBUTES_INFO = *mut _CMC_ADD_ATTRIBUTES_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_TEMPLATE_EXT {
    pub pszObjId: LPSTR,
    pub dwMajorVersion: DWORD,
    pub fMinorVersion: BOOL,
    pub dwMinorVersion: DWORD,
}
#[test]
fn bindgen_test_layout__CERT_TEMPLATE_EXT() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_TEMPLATE_EXT>(),
        24usize,
        concat!("Size of: ", stringify!(_CERT_TEMPLATE_EXT))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_TEMPLATE_EXT>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_TEMPLATE_EXT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_TEMPLATE_EXT>())).pszObjId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_TEMPLATE_EXT),
            "::",
            stringify!(pszObjId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_TEMPLATE_EXT>())).dwMajorVersion as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_TEMPLATE_EXT),
            "::",
            stringify!(dwMajorVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_TEMPLATE_EXT>())).fMinorVersion as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_TEMPLATE_EXT),
            "::",
            stringify!(fMinorVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_TEMPLATE_EXT>())).dwMinorVersion as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_TEMPLATE_EXT),
            "::",
            stringify!(dwMinorVersion)
        )
    );
}
pub type CERT_TEMPLATE_EXT = _CERT_TEMPLATE_EXT;
pub type PCERT_TEMPLATE_EXT = *mut _CERT_TEMPLATE_EXT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_HASHED_URL {
    pub HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub Hash: CRYPT_HASH_BLOB,
    pub pwszUrl: LPWSTR,
}
#[test]
fn bindgen_test_layout__CERT_HASHED_URL() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_HASHED_URL>(),
        48usize,
        concat!("Size of: ", stringify!(_CERT_HASHED_URL))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_HASHED_URL>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_HASHED_URL))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_HASHED_URL>())).HashAlgorithm as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_HASHED_URL),
            "::",
            stringify!(HashAlgorithm)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_HASHED_URL>())).Hash as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_HASHED_URL),
            "::",
            stringify!(Hash)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_HASHED_URL>())).pwszUrl as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_HASHED_URL),
            "::",
            stringify!(pwszUrl)
        )
    );
}
pub type CERT_HASHED_URL = _CERT_HASHED_URL;
pub type PCERT_HASHED_URL = *mut _CERT_HASHED_URL;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_LOGOTYPE_DETAILS {
    pub pwszMimeType: LPWSTR,
    pub cHashedUrl: DWORD,
    pub rgHashedUrl: PCERT_HASHED_URL,
}
#[test]
fn bindgen_test_layout__CERT_LOGOTYPE_DETAILS() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_LOGOTYPE_DETAILS>(),
        24usize,
        concat!("Size of: ", stringify!(_CERT_LOGOTYPE_DETAILS))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_LOGOTYPE_DETAILS>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_LOGOTYPE_DETAILS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_DETAILS>())).pwszMimeType as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_DETAILS),
            "::",
            stringify!(pwszMimeType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_DETAILS>())).cHashedUrl as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_DETAILS),
            "::",
            stringify!(cHashedUrl)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_DETAILS>())).rgHashedUrl as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_DETAILS),
            "::",
            stringify!(rgHashedUrl)
        )
    );
}
pub type CERT_LOGOTYPE_DETAILS = _CERT_LOGOTYPE_DETAILS;
pub type PCERT_LOGOTYPE_DETAILS = *mut _CERT_LOGOTYPE_DETAILS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_LOGOTYPE_REFERENCE {
    pub cHashedUrl: DWORD,
    pub rgHashedUrl: PCERT_HASHED_URL,
}
#[test]
fn bindgen_test_layout__CERT_LOGOTYPE_REFERENCE() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_LOGOTYPE_REFERENCE>(),
        16usize,
        concat!("Size of: ", stringify!(_CERT_LOGOTYPE_REFERENCE))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_LOGOTYPE_REFERENCE>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_LOGOTYPE_REFERENCE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_REFERENCE>())).cHashedUrl as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_REFERENCE),
            "::",
            stringify!(cHashedUrl)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_REFERENCE>())).rgHashedUrl as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_REFERENCE),
            "::",
            stringify!(rgHashedUrl)
        )
    );
}
pub type CERT_LOGOTYPE_REFERENCE = _CERT_LOGOTYPE_REFERENCE;
pub type PCERT_LOGOTYPE_REFERENCE = *mut _CERT_LOGOTYPE_REFERENCE;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CERT_LOGOTYPE_IMAGE_INFO {
    pub dwLogotypeImageInfoChoice: DWORD,
    pub dwFileSize: DWORD,
    pub dwXSize: DWORD,
    pub dwYSize: DWORD,
    pub dwLogotypeImageResolutionChoice: DWORD,
    pub __bindgen_anon_1: _CERT_LOGOTYPE_IMAGE_INFO__bindgen_ty_1,
    pub pwszLanguage: LPWSTR,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _CERT_LOGOTYPE_IMAGE_INFO__bindgen_ty_1 {
    pub dwNumBits: DWORD,
    pub dwTableSize: DWORD,
    _bindgen_union_align: u32,
}
#[test]
fn bindgen_test_layout__CERT_LOGOTYPE_IMAGE_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_LOGOTYPE_IMAGE_INFO__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_CERT_LOGOTYPE_IMAGE_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_LOGOTYPE_IMAGE_INFO__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_CERT_LOGOTYPE_IMAGE_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_IMAGE_INFO__bindgen_ty_1>())).dwNumBits
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_IMAGE_INFO__bindgen_ty_1),
            "::",
            stringify!(dwNumBits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_IMAGE_INFO__bindgen_ty_1>())).dwTableSize
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_IMAGE_INFO__bindgen_ty_1),
            "::",
            stringify!(dwTableSize)
        )
    );
}
#[test]
fn bindgen_test_layout__CERT_LOGOTYPE_IMAGE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_LOGOTYPE_IMAGE_INFO>(),
        32usize,
        concat!("Size of: ", stringify!(_CERT_LOGOTYPE_IMAGE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_LOGOTYPE_IMAGE_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_LOGOTYPE_IMAGE_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_IMAGE_INFO>())).dwLogotypeImageInfoChoice
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_IMAGE_INFO),
            "::",
            stringify!(dwLogotypeImageInfoChoice)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_IMAGE_INFO>())).dwFileSize as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_IMAGE_INFO),
            "::",
            stringify!(dwFileSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_IMAGE_INFO>())).dwXSize as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_IMAGE_INFO),
            "::",
            stringify!(dwXSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_IMAGE_INFO>())).dwYSize as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_IMAGE_INFO),
            "::",
            stringify!(dwYSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_IMAGE_INFO>())).dwLogotypeImageResolutionChoice
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_IMAGE_INFO),
            "::",
            stringify!(dwLogotypeImageResolutionChoice)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_IMAGE_INFO>())).pwszLanguage as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_IMAGE_INFO),
            "::",
            stringify!(pwszLanguage)
        )
    );
}
pub type CERT_LOGOTYPE_IMAGE_INFO = _CERT_LOGOTYPE_IMAGE_INFO;
pub type PCERT_LOGOTYPE_IMAGE_INFO = *mut _CERT_LOGOTYPE_IMAGE_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_LOGOTYPE_IMAGE {
    pub LogotypeDetails: CERT_LOGOTYPE_DETAILS,
    pub pLogotypeImageInfo: PCERT_LOGOTYPE_IMAGE_INFO,
}
#[test]
fn bindgen_test_layout__CERT_LOGOTYPE_IMAGE() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_LOGOTYPE_IMAGE>(),
        32usize,
        concat!("Size of: ", stringify!(_CERT_LOGOTYPE_IMAGE))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_LOGOTYPE_IMAGE>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_LOGOTYPE_IMAGE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_IMAGE>())).LogotypeDetails as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_IMAGE),
            "::",
            stringify!(LogotypeDetails)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_IMAGE>())).pLogotypeImageInfo as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_IMAGE),
            "::",
            stringify!(pLogotypeImageInfo)
        )
    );
}
pub type CERT_LOGOTYPE_IMAGE = _CERT_LOGOTYPE_IMAGE;
pub type PCERT_LOGOTYPE_IMAGE = *mut _CERT_LOGOTYPE_IMAGE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_LOGOTYPE_AUDIO_INFO {
    pub dwFileSize: DWORD,
    pub dwPlayTime: DWORD,
    pub dwChannels: DWORD,
    pub dwSampleRate: DWORD,
    pub pwszLanguage: LPWSTR,
}
#[test]
fn bindgen_test_layout__CERT_LOGOTYPE_AUDIO_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_LOGOTYPE_AUDIO_INFO>(),
        24usize,
        concat!("Size of: ", stringify!(_CERT_LOGOTYPE_AUDIO_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_LOGOTYPE_AUDIO_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_LOGOTYPE_AUDIO_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_AUDIO_INFO>())).dwFileSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_AUDIO_INFO),
            "::",
            stringify!(dwFileSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_AUDIO_INFO>())).dwPlayTime as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_AUDIO_INFO),
            "::",
            stringify!(dwPlayTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_AUDIO_INFO>())).dwChannels as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_AUDIO_INFO),
            "::",
            stringify!(dwChannels)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_AUDIO_INFO>())).dwSampleRate as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_AUDIO_INFO),
            "::",
            stringify!(dwSampleRate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_AUDIO_INFO>())).pwszLanguage as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_AUDIO_INFO),
            "::",
            stringify!(pwszLanguage)
        )
    );
}
pub type CERT_LOGOTYPE_AUDIO_INFO = _CERT_LOGOTYPE_AUDIO_INFO;
pub type PCERT_LOGOTYPE_AUDIO_INFO = *mut _CERT_LOGOTYPE_AUDIO_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_LOGOTYPE_AUDIO {
    pub LogotypeDetails: CERT_LOGOTYPE_DETAILS,
    pub pLogotypeAudioInfo: PCERT_LOGOTYPE_AUDIO_INFO,
}
#[test]
fn bindgen_test_layout__CERT_LOGOTYPE_AUDIO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_LOGOTYPE_AUDIO>(),
        32usize,
        concat!("Size of: ", stringify!(_CERT_LOGOTYPE_AUDIO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_LOGOTYPE_AUDIO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_LOGOTYPE_AUDIO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_AUDIO>())).LogotypeDetails as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_AUDIO),
            "::",
            stringify!(LogotypeDetails)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_AUDIO>())).pLogotypeAudioInfo as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_AUDIO),
            "::",
            stringify!(pLogotypeAudioInfo)
        )
    );
}
pub type CERT_LOGOTYPE_AUDIO = _CERT_LOGOTYPE_AUDIO;
pub type PCERT_LOGOTYPE_AUDIO = *mut _CERT_LOGOTYPE_AUDIO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_LOGOTYPE_DATA {
    pub cLogotypeImage: DWORD,
    pub rgLogotypeImage: PCERT_LOGOTYPE_IMAGE,
    pub cLogotypeAudio: DWORD,
    pub rgLogotypeAudio: PCERT_LOGOTYPE_AUDIO,
}
#[test]
fn bindgen_test_layout__CERT_LOGOTYPE_DATA() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_LOGOTYPE_DATA>(),
        32usize,
        concat!("Size of: ", stringify!(_CERT_LOGOTYPE_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_LOGOTYPE_DATA>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_LOGOTYPE_DATA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_DATA>())).cLogotypeImage as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_DATA),
            "::",
            stringify!(cLogotypeImage)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_DATA>())).rgLogotypeImage as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_DATA),
            "::",
            stringify!(rgLogotypeImage)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_DATA>())).cLogotypeAudio as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_DATA),
            "::",
            stringify!(cLogotypeAudio)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_DATA>())).rgLogotypeAudio as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_DATA),
            "::",
            stringify!(rgLogotypeAudio)
        )
    );
}
pub type CERT_LOGOTYPE_DATA = _CERT_LOGOTYPE_DATA;
pub type PCERT_LOGOTYPE_DATA = *mut _CERT_LOGOTYPE_DATA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CERT_LOGOTYPE_INFO {
    pub dwLogotypeInfoChoice: DWORD,
    pub __bindgen_anon_1: _CERT_LOGOTYPE_INFO__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _CERT_LOGOTYPE_INFO__bindgen_ty_1 {
    pub pLogotypeDirectInfo: PCERT_LOGOTYPE_DATA,
    pub pLogotypeIndirectInfo: PCERT_LOGOTYPE_REFERENCE,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__CERT_LOGOTYPE_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_LOGOTYPE_INFO__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_CERT_LOGOTYPE_INFO__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_LOGOTYPE_INFO__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CERT_LOGOTYPE_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_INFO__bindgen_ty_1>())).pLogotypeDirectInfo
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_INFO__bindgen_ty_1),
            "::",
            stringify!(pLogotypeDirectInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_INFO__bindgen_ty_1>())).pLogotypeIndirectInfo
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_INFO__bindgen_ty_1),
            "::",
            stringify!(pLogotypeIndirectInfo)
        )
    );
}
#[test]
fn bindgen_test_layout__CERT_LOGOTYPE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_LOGOTYPE_INFO>(),
        16usize,
        concat!("Size of: ", stringify!(_CERT_LOGOTYPE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_LOGOTYPE_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_LOGOTYPE_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_INFO>())).dwLogotypeInfoChoice as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_INFO),
            "::",
            stringify!(dwLogotypeInfoChoice)
        )
    );
}
pub type CERT_LOGOTYPE_INFO = _CERT_LOGOTYPE_INFO;
pub type PCERT_LOGOTYPE_INFO = *mut _CERT_LOGOTYPE_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CERT_OTHER_LOGOTYPE_INFO {
    pub pszObjId: LPSTR,
    pub LogotypeInfo: CERT_LOGOTYPE_INFO,
}
#[test]
fn bindgen_test_layout__CERT_OTHER_LOGOTYPE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_OTHER_LOGOTYPE_INFO>(),
        24usize,
        concat!("Size of: ", stringify!(_CERT_OTHER_LOGOTYPE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_OTHER_LOGOTYPE_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_OTHER_LOGOTYPE_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_OTHER_LOGOTYPE_INFO>())).pszObjId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_OTHER_LOGOTYPE_INFO),
            "::",
            stringify!(pszObjId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_OTHER_LOGOTYPE_INFO>())).LogotypeInfo as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_OTHER_LOGOTYPE_INFO),
            "::",
            stringify!(LogotypeInfo)
        )
    );
}
pub type CERT_OTHER_LOGOTYPE_INFO = _CERT_OTHER_LOGOTYPE_INFO;
pub type PCERT_OTHER_LOGOTYPE_INFO = *mut _CERT_OTHER_LOGOTYPE_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_LOGOTYPE_EXT_INFO {
    pub cCommunityLogo: DWORD,
    pub rgCommunityLogo: PCERT_LOGOTYPE_INFO,
    pub pIssuerLogo: PCERT_LOGOTYPE_INFO,
    pub pSubjectLogo: PCERT_LOGOTYPE_INFO,
    pub cOtherLogo: DWORD,
    pub rgOtherLogo: PCERT_OTHER_LOGOTYPE_INFO,
}
#[test]
fn bindgen_test_layout__CERT_LOGOTYPE_EXT_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_LOGOTYPE_EXT_INFO>(),
        48usize,
        concat!("Size of: ", stringify!(_CERT_LOGOTYPE_EXT_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_LOGOTYPE_EXT_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_LOGOTYPE_EXT_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_EXT_INFO>())).cCommunityLogo as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_EXT_INFO),
            "::",
            stringify!(cCommunityLogo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_EXT_INFO>())).rgCommunityLogo as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_EXT_INFO),
            "::",
            stringify!(rgCommunityLogo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_EXT_INFO>())).pIssuerLogo as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_EXT_INFO),
            "::",
            stringify!(pIssuerLogo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_EXT_INFO>())).pSubjectLogo as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_EXT_INFO),
            "::",
            stringify!(pSubjectLogo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_EXT_INFO>())).cOtherLogo as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_EXT_INFO),
            "::",
            stringify!(cOtherLogo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LOGOTYPE_EXT_INFO>())).rgOtherLogo as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LOGOTYPE_EXT_INFO),
            "::",
            stringify!(rgOtherLogo)
        )
    );
}
pub type CERT_LOGOTYPE_EXT_INFO = _CERT_LOGOTYPE_EXT_INFO;
pub type PCERT_LOGOTYPE_EXT_INFO = *mut _CERT_LOGOTYPE_EXT_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CERT_BIOMETRIC_DATA {
    pub dwTypeOfBiometricDataChoice: DWORD,
    pub __bindgen_anon_1: _CERT_BIOMETRIC_DATA__bindgen_ty_1,
    pub HashedUrl: CERT_HASHED_URL,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _CERT_BIOMETRIC_DATA__bindgen_ty_1 {
    pub dwPredefined: DWORD,
    pub pszObjId: LPSTR,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__CERT_BIOMETRIC_DATA__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_BIOMETRIC_DATA__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_CERT_BIOMETRIC_DATA__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_BIOMETRIC_DATA__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CERT_BIOMETRIC_DATA__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_BIOMETRIC_DATA__bindgen_ty_1>())).dwPredefined as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_BIOMETRIC_DATA__bindgen_ty_1),
            "::",
            stringify!(dwPredefined)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_BIOMETRIC_DATA__bindgen_ty_1>())).pszObjId as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_BIOMETRIC_DATA__bindgen_ty_1),
            "::",
            stringify!(pszObjId)
        )
    );
}
#[test]
fn bindgen_test_layout__CERT_BIOMETRIC_DATA() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_BIOMETRIC_DATA>(),
        64usize,
        concat!("Size of: ", stringify!(_CERT_BIOMETRIC_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_BIOMETRIC_DATA>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_BIOMETRIC_DATA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_BIOMETRIC_DATA>())).dwTypeOfBiometricDataChoice as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_BIOMETRIC_DATA),
            "::",
            stringify!(dwTypeOfBiometricDataChoice)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_BIOMETRIC_DATA>())).HashedUrl as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_BIOMETRIC_DATA),
            "::",
            stringify!(HashedUrl)
        )
    );
}
pub type CERT_BIOMETRIC_DATA = _CERT_BIOMETRIC_DATA;
pub type PCERT_BIOMETRIC_DATA = *mut _CERT_BIOMETRIC_DATA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_BIOMETRIC_EXT_INFO {
    pub cBiometricData: DWORD,
    pub rgBiometricData: PCERT_BIOMETRIC_DATA,
}
#[test]
fn bindgen_test_layout__CERT_BIOMETRIC_EXT_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_BIOMETRIC_EXT_INFO>(),
        16usize,
        concat!("Size of: ", stringify!(_CERT_BIOMETRIC_EXT_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_BIOMETRIC_EXT_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_BIOMETRIC_EXT_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_BIOMETRIC_EXT_INFO>())).cBiometricData as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_BIOMETRIC_EXT_INFO),
            "::",
            stringify!(cBiometricData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_BIOMETRIC_EXT_INFO>())).rgBiometricData as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_BIOMETRIC_EXT_INFO),
            "::",
            stringify!(rgBiometricData)
        )
    );
}
pub type CERT_BIOMETRIC_EXT_INFO = _CERT_BIOMETRIC_EXT_INFO;
pub type PCERT_BIOMETRIC_EXT_INFO = *mut _CERT_BIOMETRIC_EXT_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _OCSP_SIGNATURE_INFO {
    pub SignatureAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub Signature: CRYPT_BIT_BLOB,
    pub cCertEncoded: DWORD,
    pub rgCertEncoded: PCERT_BLOB,
}
#[test]
fn bindgen_test_layout__OCSP_SIGNATURE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_OCSP_SIGNATURE_INFO>(),
        64usize,
        concat!("Size of: ", stringify!(_OCSP_SIGNATURE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_OCSP_SIGNATURE_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_OCSP_SIGNATURE_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OCSP_SIGNATURE_INFO>())).SignatureAlgorithm as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_SIGNATURE_INFO),
            "::",
            stringify!(SignatureAlgorithm)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OCSP_SIGNATURE_INFO>())).Signature as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_SIGNATURE_INFO),
            "::",
            stringify!(Signature)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OCSP_SIGNATURE_INFO>())).cCertEncoded as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_SIGNATURE_INFO),
            "::",
            stringify!(cCertEncoded)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OCSP_SIGNATURE_INFO>())).rgCertEncoded as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_SIGNATURE_INFO),
            "::",
            stringify!(rgCertEncoded)
        )
    );
}
pub type OCSP_SIGNATURE_INFO = _OCSP_SIGNATURE_INFO;
pub type POCSP_SIGNATURE_INFO = *mut _OCSP_SIGNATURE_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _OCSP_SIGNED_REQUEST_INFO {
    pub ToBeSigned: CRYPT_DER_BLOB,
    pub pOptionalSignatureInfo: POCSP_SIGNATURE_INFO,
}
#[test]
fn bindgen_test_layout__OCSP_SIGNED_REQUEST_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_OCSP_SIGNED_REQUEST_INFO>(),
        24usize,
        concat!("Size of: ", stringify!(_OCSP_SIGNED_REQUEST_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_OCSP_SIGNED_REQUEST_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_OCSP_SIGNED_REQUEST_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OCSP_SIGNED_REQUEST_INFO>())).ToBeSigned as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_SIGNED_REQUEST_INFO),
            "::",
            stringify!(ToBeSigned)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OCSP_SIGNED_REQUEST_INFO>())).pOptionalSignatureInfo as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_SIGNED_REQUEST_INFO),
            "::",
            stringify!(pOptionalSignatureInfo)
        )
    );
}
pub type OCSP_SIGNED_REQUEST_INFO = _OCSP_SIGNED_REQUEST_INFO;
pub type POCSP_SIGNED_REQUEST_INFO = *mut _OCSP_SIGNED_REQUEST_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _OCSP_CERT_ID {
    pub HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub IssuerNameHash: CRYPT_HASH_BLOB,
    pub IssuerKeyHash: CRYPT_HASH_BLOB,
    pub SerialNumber: CRYPT_INTEGER_BLOB,
}
#[test]
fn bindgen_test_layout__OCSP_CERT_ID() {
    assert_eq!(
        ::std::mem::size_of::<_OCSP_CERT_ID>(),
        72usize,
        concat!("Size of: ", stringify!(_OCSP_CERT_ID))
    );
    assert_eq!(
        ::std::mem::align_of::<_OCSP_CERT_ID>(),
        8usize,
        concat!("Alignment of ", stringify!(_OCSP_CERT_ID))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OCSP_CERT_ID>())).HashAlgorithm as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_CERT_ID),
            "::",
            stringify!(HashAlgorithm)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OCSP_CERT_ID>())).IssuerNameHash as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_CERT_ID),
            "::",
            stringify!(IssuerNameHash)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OCSP_CERT_ID>())).IssuerKeyHash as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_CERT_ID),
            "::",
            stringify!(IssuerKeyHash)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OCSP_CERT_ID>())).SerialNumber as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_CERT_ID),
            "::",
            stringify!(SerialNumber)
        )
    );
}
pub type OCSP_CERT_ID = _OCSP_CERT_ID;
pub type POCSP_CERT_ID = *mut _OCSP_CERT_ID;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _OCSP_REQUEST_ENTRY {
    pub CertId: OCSP_CERT_ID,
    pub cExtension: DWORD,
    pub rgExtension: PCERT_EXTENSION,
}
#[test]
fn bindgen_test_layout__OCSP_REQUEST_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_OCSP_REQUEST_ENTRY>(),
        88usize,
        concat!("Size of: ", stringify!(_OCSP_REQUEST_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_OCSP_REQUEST_ENTRY>(),
        8usize,
        concat!("Alignment of ", stringify!(_OCSP_REQUEST_ENTRY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OCSP_REQUEST_ENTRY>())).CertId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_REQUEST_ENTRY),
            "::",
            stringify!(CertId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OCSP_REQUEST_ENTRY>())).cExtension as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_REQUEST_ENTRY),
            "::",
            stringify!(cExtension)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OCSP_REQUEST_ENTRY>())).rgExtension as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_REQUEST_ENTRY),
            "::",
            stringify!(rgExtension)
        )
    );
}
pub type OCSP_REQUEST_ENTRY = _OCSP_REQUEST_ENTRY;
pub type POCSP_REQUEST_ENTRY = *mut _OCSP_REQUEST_ENTRY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _OCSP_REQUEST_INFO {
    pub dwVersion: DWORD,
    pub pRequestorName: PCERT_ALT_NAME_ENTRY,
    pub cRequestEntry: DWORD,
    pub rgRequestEntry: POCSP_REQUEST_ENTRY,
    pub cExtension: DWORD,
    pub rgExtension: PCERT_EXTENSION,
}
#[test]
fn bindgen_test_layout__OCSP_REQUEST_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_OCSP_REQUEST_INFO>(),
        48usize,
        concat!("Size of: ", stringify!(_OCSP_REQUEST_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_OCSP_REQUEST_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_OCSP_REQUEST_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OCSP_REQUEST_INFO>())).dwVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_REQUEST_INFO),
            "::",
            stringify!(dwVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OCSP_REQUEST_INFO>())).pRequestorName as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_REQUEST_INFO),
            "::",
            stringify!(pRequestorName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OCSP_REQUEST_INFO>())).cRequestEntry as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_REQUEST_INFO),
            "::",
            stringify!(cRequestEntry)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OCSP_REQUEST_INFO>())).rgRequestEntry as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_REQUEST_INFO),
            "::",
            stringify!(rgRequestEntry)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OCSP_REQUEST_INFO>())).cExtension as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_REQUEST_INFO),
            "::",
            stringify!(cExtension)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OCSP_REQUEST_INFO>())).rgExtension as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_REQUEST_INFO),
            "::",
            stringify!(rgExtension)
        )
    );
}
pub type OCSP_REQUEST_INFO = _OCSP_REQUEST_INFO;
pub type POCSP_REQUEST_INFO = *mut _OCSP_REQUEST_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _OCSP_RESPONSE_INFO {
    pub dwStatus: DWORD,
    pub pszObjId: LPSTR,
    pub Value: CRYPT_OBJID_BLOB,
}
#[test]
fn bindgen_test_layout__OCSP_RESPONSE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_OCSP_RESPONSE_INFO>(),
        32usize,
        concat!("Size of: ", stringify!(_OCSP_RESPONSE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_OCSP_RESPONSE_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_OCSP_RESPONSE_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OCSP_RESPONSE_INFO>())).dwStatus as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_RESPONSE_INFO),
            "::",
            stringify!(dwStatus)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OCSP_RESPONSE_INFO>())).pszObjId as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_RESPONSE_INFO),
            "::",
            stringify!(pszObjId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OCSP_RESPONSE_INFO>())).Value as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_RESPONSE_INFO),
            "::",
            stringify!(Value)
        )
    );
}
pub type OCSP_RESPONSE_INFO = _OCSP_RESPONSE_INFO;
pub type POCSP_RESPONSE_INFO = *mut _OCSP_RESPONSE_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _OCSP_BASIC_SIGNED_RESPONSE_INFO {
    pub ToBeSigned: CRYPT_DER_BLOB,
    pub SignatureInfo: OCSP_SIGNATURE_INFO,
}
#[test]
fn bindgen_test_layout__OCSP_BASIC_SIGNED_RESPONSE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_OCSP_BASIC_SIGNED_RESPONSE_INFO>(),
        80usize,
        concat!("Size of: ", stringify!(_OCSP_BASIC_SIGNED_RESPONSE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_OCSP_BASIC_SIGNED_RESPONSE_INFO>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_OCSP_BASIC_SIGNED_RESPONSE_INFO)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OCSP_BASIC_SIGNED_RESPONSE_INFO>())).ToBeSigned as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_BASIC_SIGNED_RESPONSE_INFO),
            "::",
            stringify!(ToBeSigned)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OCSP_BASIC_SIGNED_RESPONSE_INFO>())).SignatureInfo as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_BASIC_SIGNED_RESPONSE_INFO),
            "::",
            stringify!(SignatureInfo)
        )
    );
}
pub type OCSP_BASIC_SIGNED_RESPONSE_INFO = _OCSP_BASIC_SIGNED_RESPONSE_INFO;
pub type POCSP_BASIC_SIGNED_RESPONSE_INFO = *mut _OCSP_BASIC_SIGNED_RESPONSE_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _OCSP_BASIC_REVOKED_INFO {
    pub RevocationDate: FILETIME,
    pub dwCrlReasonCode: DWORD,
}
#[test]
fn bindgen_test_layout__OCSP_BASIC_REVOKED_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_OCSP_BASIC_REVOKED_INFO>(),
        12usize,
        concat!("Size of: ", stringify!(_OCSP_BASIC_REVOKED_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_OCSP_BASIC_REVOKED_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_OCSP_BASIC_REVOKED_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OCSP_BASIC_REVOKED_INFO>())).RevocationDate as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_BASIC_REVOKED_INFO),
            "::",
            stringify!(RevocationDate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OCSP_BASIC_REVOKED_INFO>())).dwCrlReasonCode as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_BASIC_REVOKED_INFO),
            "::",
            stringify!(dwCrlReasonCode)
        )
    );
}
pub type OCSP_BASIC_REVOKED_INFO = _OCSP_BASIC_REVOKED_INFO;
pub type POCSP_BASIC_REVOKED_INFO = *mut _OCSP_BASIC_REVOKED_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _OCSP_BASIC_RESPONSE_ENTRY {
    pub CertId: OCSP_CERT_ID,
    pub dwCertStatus: DWORD,
    pub __bindgen_anon_1: _OCSP_BASIC_RESPONSE_ENTRY__bindgen_ty_1,
    pub ThisUpdate: FILETIME,
    pub NextUpdate: FILETIME,
    pub cExtension: DWORD,
    pub rgExtension: PCERT_EXTENSION,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _OCSP_BASIC_RESPONSE_ENTRY__bindgen_ty_1 {
    pub pRevokedInfo: POCSP_BASIC_REVOKED_INFO,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__OCSP_BASIC_RESPONSE_ENTRY__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_OCSP_BASIC_RESPONSE_ENTRY__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_OCSP_BASIC_RESPONSE_ENTRY__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_OCSP_BASIC_RESPONSE_ENTRY__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_OCSP_BASIC_RESPONSE_ENTRY__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OCSP_BASIC_RESPONSE_ENTRY__bindgen_ty_1>())).pRevokedInfo
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_BASIC_RESPONSE_ENTRY__bindgen_ty_1),
            "::",
            stringify!(pRevokedInfo)
        )
    );
}
#[test]
fn bindgen_test_layout__OCSP_BASIC_RESPONSE_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_OCSP_BASIC_RESPONSE_ENTRY>(),
        120usize,
        concat!("Size of: ", stringify!(_OCSP_BASIC_RESPONSE_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_OCSP_BASIC_RESPONSE_ENTRY>(),
        8usize,
        concat!("Alignment of ", stringify!(_OCSP_BASIC_RESPONSE_ENTRY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OCSP_BASIC_RESPONSE_ENTRY>())).CertId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_BASIC_RESPONSE_ENTRY),
            "::",
            stringify!(CertId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OCSP_BASIC_RESPONSE_ENTRY>())).dwCertStatus as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_BASIC_RESPONSE_ENTRY),
            "::",
            stringify!(dwCertStatus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OCSP_BASIC_RESPONSE_ENTRY>())).ThisUpdate as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_BASIC_RESPONSE_ENTRY),
            "::",
            stringify!(ThisUpdate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OCSP_BASIC_RESPONSE_ENTRY>())).NextUpdate as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_BASIC_RESPONSE_ENTRY),
            "::",
            stringify!(NextUpdate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OCSP_BASIC_RESPONSE_ENTRY>())).cExtension as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_BASIC_RESPONSE_ENTRY),
            "::",
            stringify!(cExtension)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OCSP_BASIC_RESPONSE_ENTRY>())).rgExtension as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_BASIC_RESPONSE_ENTRY),
            "::",
            stringify!(rgExtension)
        )
    );
}
pub type OCSP_BASIC_RESPONSE_ENTRY = _OCSP_BASIC_RESPONSE_ENTRY;
pub type POCSP_BASIC_RESPONSE_ENTRY = *mut _OCSP_BASIC_RESPONSE_ENTRY;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _OCSP_BASIC_RESPONSE_INFO {
    pub dwVersion: DWORD,
    pub dwResponderIdChoice: DWORD,
    pub __bindgen_anon_1: _OCSP_BASIC_RESPONSE_INFO__bindgen_ty_1,
    pub ProducedAt: FILETIME,
    pub cResponseEntry: DWORD,
    pub rgResponseEntry: POCSP_BASIC_RESPONSE_ENTRY,
    pub cExtension: DWORD,
    pub rgExtension: PCERT_EXTENSION,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _OCSP_BASIC_RESPONSE_INFO__bindgen_ty_1 {
    pub ByNameResponderId: CERT_NAME_BLOB,
    pub ByKeyResponderId: CRYPT_HASH_BLOB,
    _bindgen_union_align: [u64; 2usize],
}
#[test]
fn bindgen_test_layout__OCSP_BASIC_RESPONSE_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_OCSP_BASIC_RESPONSE_INFO__bindgen_ty_1>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_OCSP_BASIC_RESPONSE_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_OCSP_BASIC_RESPONSE_INFO__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_OCSP_BASIC_RESPONSE_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OCSP_BASIC_RESPONSE_INFO__bindgen_ty_1>())).ByNameResponderId
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_BASIC_RESPONSE_INFO__bindgen_ty_1),
            "::",
            stringify!(ByNameResponderId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OCSP_BASIC_RESPONSE_INFO__bindgen_ty_1>())).ByKeyResponderId
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_BASIC_RESPONSE_INFO__bindgen_ty_1),
            "::",
            stringify!(ByKeyResponderId)
        )
    );
}
#[test]
fn bindgen_test_layout__OCSP_BASIC_RESPONSE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_OCSP_BASIC_RESPONSE_INFO>(),
        64usize,
        concat!("Size of: ", stringify!(_OCSP_BASIC_RESPONSE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_OCSP_BASIC_RESPONSE_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_OCSP_BASIC_RESPONSE_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OCSP_BASIC_RESPONSE_INFO>())).dwVersion as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_BASIC_RESPONSE_INFO),
            "::",
            stringify!(dwVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OCSP_BASIC_RESPONSE_INFO>())).dwResponderIdChoice as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_BASIC_RESPONSE_INFO),
            "::",
            stringify!(dwResponderIdChoice)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OCSP_BASIC_RESPONSE_INFO>())).ProducedAt as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_BASIC_RESPONSE_INFO),
            "::",
            stringify!(ProducedAt)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OCSP_BASIC_RESPONSE_INFO>())).cResponseEntry as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_BASIC_RESPONSE_INFO),
            "::",
            stringify!(cResponseEntry)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OCSP_BASIC_RESPONSE_INFO>())).rgResponseEntry as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_BASIC_RESPONSE_INFO),
            "::",
            stringify!(rgResponseEntry)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OCSP_BASIC_RESPONSE_INFO>())).cExtension as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_BASIC_RESPONSE_INFO),
            "::",
            stringify!(cExtension)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_OCSP_BASIC_RESPONSE_INFO>())).rgExtension as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_OCSP_BASIC_RESPONSE_INFO),
            "::",
            stringify!(rgExtension)
        )
    );
}
pub type OCSP_BASIC_RESPONSE_INFO = _OCSP_BASIC_RESPONSE_INFO;
pub type POCSP_BASIC_RESPONSE_INFO = *mut _OCSP_BASIC_RESPONSE_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_SUPPORTED_ALGORITHM_INFO {
    pub Algorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub IntendedKeyUsage: CRYPT_BIT_BLOB,
    pub IntendedCertPolicies: CERT_POLICIES_INFO,
}
#[test]
fn bindgen_test_layout__CERT_SUPPORTED_ALGORITHM_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_SUPPORTED_ALGORITHM_INFO>(),
        64usize,
        concat!("Size of: ", stringify!(_CERT_SUPPORTED_ALGORITHM_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_SUPPORTED_ALGORITHM_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_SUPPORTED_ALGORITHM_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_SUPPORTED_ALGORITHM_INFO>())).Algorithm as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SUPPORTED_ALGORITHM_INFO),
            "::",
            stringify!(Algorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_SUPPORTED_ALGORITHM_INFO>())).IntendedKeyUsage as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SUPPORTED_ALGORITHM_INFO),
            "::",
            stringify!(IntendedKeyUsage)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_SUPPORTED_ALGORITHM_INFO>())).IntendedCertPolicies
                as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SUPPORTED_ALGORITHM_INFO),
            "::",
            stringify!(IntendedCertPolicies)
        )
    );
}
pub type CERT_SUPPORTED_ALGORITHM_INFO = _CERT_SUPPORTED_ALGORITHM_INFO;
pub type PCERT_SUPPORTED_ALGORITHM_INFO = *mut _CERT_SUPPORTED_ALGORITHM_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_TPM_SPECIFICATION_INFO {
    pub pwszFamily: LPWSTR,
    pub dwLevel: DWORD,
    pub dwRevision: DWORD,
}
#[test]
fn bindgen_test_layout__CERT_TPM_SPECIFICATION_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_TPM_SPECIFICATION_INFO>(),
        16usize,
        concat!("Size of: ", stringify!(_CERT_TPM_SPECIFICATION_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_TPM_SPECIFICATION_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_TPM_SPECIFICATION_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_TPM_SPECIFICATION_INFO>())).pwszFamily as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_TPM_SPECIFICATION_INFO),
            "::",
            stringify!(pwszFamily)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_TPM_SPECIFICATION_INFO>())).dwLevel as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_TPM_SPECIFICATION_INFO),
            "::",
            stringify!(dwLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_TPM_SPECIFICATION_INFO>())).dwRevision as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_TPM_SPECIFICATION_INFO),
            "::",
            stringify!(dwRevision)
        )
    );
}
pub type CERT_TPM_SPECIFICATION_INFO = _CERT_TPM_SPECIFICATION_INFO;
pub type PCERT_TPM_SPECIFICATION_INFO = *mut _CERT_TPM_SPECIFICATION_INFO;
pub type HCRYPTOIDFUNCSET = *mut ::std::os::raw::c_void;
pub type HCRYPTOIDFUNCADDR = *mut ::std::os::raw::c_void;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_OID_FUNC_ENTRY {
    pub pszOID: LPCSTR,
    pub pvFuncAddr: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout__CRYPT_OID_FUNC_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_OID_FUNC_ENTRY>(),
        16usize,
        concat!("Size of: ", stringify!(_CRYPT_OID_FUNC_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_OID_FUNC_ENTRY>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_OID_FUNC_ENTRY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_OID_FUNC_ENTRY>())).pszOID as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_OID_FUNC_ENTRY),
            "::",
            stringify!(pszOID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_OID_FUNC_ENTRY>())).pvFuncAddr as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_OID_FUNC_ENTRY),
            "::",
            stringify!(pvFuncAddr)
        )
    );
}
pub type CRYPT_OID_FUNC_ENTRY = _CRYPT_OID_FUNC_ENTRY;
pub type PCRYPT_OID_FUNC_ENTRY = *mut _CRYPT_OID_FUNC_ENTRY;
extern "C" {
    pub fn CryptInstallOIDFunctionAddress(
        hModule: HMODULE,
        dwEncodingType: DWORD,
        pszFuncName: LPCSTR,
        cFuncEntry: DWORD,
        rgFuncEntry: *const CRYPT_OID_FUNC_ENTRY,
        dwFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptInitOIDFunctionSet(pszFuncName: LPCSTR, dwFlags: DWORD) -> HCRYPTOIDFUNCSET;
}
extern "C" {
    pub fn CryptGetOIDFunctionAddress(
        hFuncSet: HCRYPTOIDFUNCSET,
        dwEncodingType: DWORD,
        pszOID: LPCSTR,
        dwFlags: DWORD,
        ppvFuncAddr: *mut *mut ::std::os::raw::c_void,
        phFuncAddr: *mut HCRYPTOIDFUNCADDR,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptGetDefaultOIDDllList(
        hFuncSet: HCRYPTOIDFUNCSET,
        dwEncodingType: DWORD,
        pwszDllList: *mut WCHAR,
        pcchDllList: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptGetDefaultOIDFunctionAddress(
        hFuncSet: HCRYPTOIDFUNCSET,
        dwEncodingType: DWORD,
        pwszDll: LPCWSTR,
        dwFlags: DWORD,
        ppvFuncAddr: *mut *mut ::std::os::raw::c_void,
        phFuncAddr: *mut HCRYPTOIDFUNCADDR,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptFreeOIDFunctionAddress(hFuncAddr: HCRYPTOIDFUNCADDR, dwFlags: DWORD) -> BOOL;
}
extern "C" {
    pub fn CryptRegisterOIDFunction(
        dwEncodingType: DWORD,
        pszFuncName: LPCSTR,
        pszOID: LPCSTR,
        pwszDll: LPCWSTR,
        pszOverrideFuncName: LPCSTR,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptUnregisterOIDFunction(
        dwEncodingType: DWORD,
        pszFuncName: LPCSTR,
        pszOID: LPCSTR,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptRegisterDefaultOIDFunction(
        dwEncodingType: DWORD,
        pszFuncName: LPCSTR,
        dwIndex: DWORD,
        pwszDll: LPCWSTR,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptUnregisterDefaultOIDFunction(
        dwEncodingType: DWORD,
        pszFuncName: LPCSTR,
        pwszDll: LPCWSTR,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptSetOIDFunctionValue(
        dwEncodingType: DWORD,
        pszFuncName: LPCSTR,
        pszOID: LPCSTR,
        pwszValueName: LPCWSTR,
        dwValueType: DWORD,
        pbValueData: *const BYTE,
        cbValueData: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptGetOIDFunctionValue(
        dwEncodingType: DWORD,
        pszFuncName: LPCSTR,
        pszOID: LPCSTR,
        pwszValueName: LPCWSTR,
        pdwValueType: *mut DWORD,
        pbValueData: *mut BYTE,
        pcbValueData: *mut DWORD,
    ) -> BOOL;
}
pub type PFN_CRYPT_ENUM_OID_FUNC = ::std::option::Option<
    unsafe extern "C" fn(
        dwEncodingType: DWORD,
        pszFuncName: LPCSTR,
        pszOID: LPCSTR,
        cValue: DWORD,
        rgdwValueType: *const DWORD,
        rgpwszValueName: *const LPCWSTR,
        rgpbValueData: *const *const BYTE,
        rgcbValueData: *const DWORD,
        pvArg: *mut ::std::os::raw::c_void,
    ) -> BOOL,
>;
extern "C" {
    pub fn CryptEnumOIDFunction(
        dwEncodingType: DWORD,
        pszFuncName: LPCSTR,
        pszOID: LPCSTR,
        dwFlags: DWORD,
        pvArg: *mut ::std::os::raw::c_void,
        pfnEnumOIDFunc: PFN_CRYPT_ENUM_OID_FUNC,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CRYPT_OID_INFO {
    pub cbSize: DWORD,
    pub pszOID: LPCSTR,
    pub pwszName: LPCWSTR,
    pub dwGroupId: DWORD,
    pub __bindgen_anon_1: _CRYPT_OID_INFO__bindgen_ty_1,
    pub ExtraInfo: CRYPT_DATA_BLOB,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _CRYPT_OID_INFO__bindgen_ty_1 {
    pub dwValue: DWORD,
    pub Algid: ALG_ID,
    pub dwLength: DWORD,
    _bindgen_union_align: u32,
}
#[test]
fn bindgen_test_layout__CRYPT_OID_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_OID_INFO__bindgen_ty_1>(),
        4usize,
        concat!("Size of: ", stringify!(_CRYPT_OID_INFO__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_OID_INFO__bindgen_ty_1>(),
        4usize,
        concat!("Alignment of ", stringify!(_CRYPT_OID_INFO__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_OID_INFO__bindgen_ty_1>())).dwValue as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_OID_INFO__bindgen_ty_1),
            "::",
            stringify!(dwValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_OID_INFO__bindgen_ty_1>())).Algid as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_OID_INFO__bindgen_ty_1),
            "::",
            stringify!(Algid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_OID_INFO__bindgen_ty_1>())).dwLength as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_OID_INFO__bindgen_ty_1),
            "::",
            stringify!(dwLength)
        )
    );
}
#[test]
fn bindgen_test_layout__CRYPT_OID_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_OID_INFO>(),
        48usize,
        concat!("Size of: ", stringify!(_CRYPT_OID_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_OID_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_OID_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_OID_INFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_OID_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_OID_INFO>())).pszOID as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_OID_INFO),
            "::",
            stringify!(pszOID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_OID_INFO>())).pwszName as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_OID_INFO),
            "::",
            stringify!(pwszName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_OID_INFO>())).dwGroupId as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_OID_INFO),
            "::",
            stringify!(dwGroupId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_OID_INFO>())).ExtraInfo as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_OID_INFO),
            "::",
            stringify!(ExtraInfo)
        )
    );
}
pub type CRYPT_OID_INFO = _CRYPT_OID_INFO;
pub type PCRYPT_OID_INFO = *mut _CRYPT_OID_INFO;
pub type CCRYPT_OID_INFO = CRYPT_OID_INFO;
pub type PCCRYPT_OID_INFO = *const CRYPT_OID_INFO;
extern "C" {
    pub fn CryptFindOIDInfo(
        dwKeyType: DWORD,
        pvKey: *mut ::std::os::raw::c_void,
        dwGroupId: DWORD,
    ) -> PCCRYPT_OID_INFO;
}
extern "C" {
    pub fn CryptRegisterOIDInfo(pInfo: PCCRYPT_OID_INFO, dwFlags: DWORD) -> BOOL;
}
extern "C" {
    pub fn CryptUnregisterOIDInfo(pInfo: PCCRYPT_OID_INFO) -> BOOL;
}
pub type PFN_CRYPT_ENUM_OID_INFO = ::std::option::Option<
    unsafe extern "C" fn(pInfo: PCCRYPT_OID_INFO, pvArg: *mut ::std::os::raw::c_void) -> BOOL,
>;
extern "C" {
    pub fn CryptEnumOIDInfo(
        dwGroupId: DWORD,
        dwFlags: DWORD,
        pvArg: *mut ::std::os::raw::c_void,
        pfnEnumOIDInfo: PFN_CRYPT_ENUM_OID_INFO,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptFindLocalizedName(pwszCryptName: LPCWSTR) -> LPCWSTR;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_STRONG_SIGN_SERIALIZED_INFO {
    pub dwFlags: DWORD,
    pub pwszCNGSignHashAlgids: LPWSTR,
    pub pwszCNGPubKeyMinBitLengths: LPWSTR,
}
#[test]
fn bindgen_test_layout__CERT_STRONG_SIGN_SERIALIZED_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_STRONG_SIGN_SERIALIZED_INFO>(),
        24usize,
        concat!("Size of: ", stringify!(_CERT_STRONG_SIGN_SERIALIZED_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_STRONG_SIGN_SERIALIZED_INFO>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CERT_STRONG_SIGN_SERIALIZED_INFO)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_STRONG_SIGN_SERIALIZED_INFO>())).dwFlags as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_STRONG_SIGN_SERIALIZED_INFO),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_STRONG_SIGN_SERIALIZED_INFO>())).pwszCNGSignHashAlgids
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_STRONG_SIGN_SERIALIZED_INFO),
            "::",
            stringify!(pwszCNGSignHashAlgids)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_STRONG_SIGN_SERIALIZED_INFO>())).pwszCNGPubKeyMinBitLengths
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_STRONG_SIGN_SERIALIZED_INFO),
            "::",
            stringify!(pwszCNGPubKeyMinBitLengths)
        )
    );
}
pub type CERT_STRONG_SIGN_SERIALIZED_INFO = _CERT_STRONG_SIGN_SERIALIZED_INFO;
pub type PCERT_STRONG_SIGN_SERIALIZED_INFO = *mut _CERT_STRONG_SIGN_SERIALIZED_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CERT_STRONG_SIGN_PARA {
    pub cbSize: DWORD,
    pub dwInfoChoice: DWORD,
    pub __bindgen_anon_1: _CERT_STRONG_SIGN_PARA__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _CERT_STRONG_SIGN_PARA__bindgen_ty_1 {
    pub pvInfo: *mut ::std::os::raw::c_void,
    pub pSerializedInfo: PCERT_STRONG_SIGN_SERIALIZED_INFO,
    pub pszOID: LPSTR,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__CERT_STRONG_SIGN_PARA__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_STRONG_SIGN_PARA__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_CERT_STRONG_SIGN_PARA__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_STRONG_SIGN_PARA__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CERT_STRONG_SIGN_PARA__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_STRONG_SIGN_PARA__bindgen_ty_1>())).pvInfo as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_STRONG_SIGN_PARA__bindgen_ty_1),
            "::",
            stringify!(pvInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_STRONG_SIGN_PARA__bindgen_ty_1>())).pSerializedInfo
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_STRONG_SIGN_PARA__bindgen_ty_1),
            "::",
            stringify!(pSerializedInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_STRONG_SIGN_PARA__bindgen_ty_1>())).pszOID as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_STRONG_SIGN_PARA__bindgen_ty_1),
            "::",
            stringify!(pszOID)
        )
    );
}
#[test]
fn bindgen_test_layout__CERT_STRONG_SIGN_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_STRONG_SIGN_PARA>(),
        16usize,
        concat!("Size of: ", stringify!(_CERT_STRONG_SIGN_PARA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_STRONG_SIGN_PARA>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_STRONG_SIGN_PARA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_STRONG_SIGN_PARA>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_STRONG_SIGN_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_STRONG_SIGN_PARA>())).dwInfoChoice as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_STRONG_SIGN_PARA),
            "::",
            stringify!(dwInfoChoice)
        )
    );
}
pub type CERT_STRONG_SIGN_PARA = _CERT_STRONG_SIGN_PARA;
pub type PCERT_STRONG_SIGN_PARA = *mut _CERT_STRONG_SIGN_PARA;
pub type PCCERT_STRONG_SIGN_PARA = *const CERT_STRONG_SIGN_PARA;
pub type HCRYPTMSG = *mut ::std::os::raw::c_void;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_ISSUER_SERIAL_NUMBER {
    pub Issuer: CERT_NAME_BLOB,
    pub SerialNumber: CRYPT_INTEGER_BLOB,
}
#[test]
fn bindgen_test_layout__CERT_ISSUER_SERIAL_NUMBER() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_ISSUER_SERIAL_NUMBER>(),
        32usize,
        concat!("Size of: ", stringify!(_CERT_ISSUER_SERIAL_NUMBER))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_ISSUER_SERIAL_NUMBER>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_ISSUER_SERIAL_NUMBER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_ISSUER_SERIAL_NUMBER>())).Issuer as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_ISSUER_SERIAL_NUMBER),
            "::",
            stringify!(Issuer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_ISSUER_SERIAL_NUMBER>())).SerialNumber as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_ISSUER_SERIAL_NUMBER),
            "::",
            stringify!(SerialNumber)
        )
    );
}
pub type CERT_ISSUER_SERIAL_NUMBER = _CERT_ISSUER_SERIAL_NUMBER;
pub type PCERT_ISSUER_SERIAL_NUMBER = *mut _CERT_ISSUER_SERIAL_NUMBER;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CERT_ID {
    pub dwIdChoice: DWORD,
    pub __bindgen_anon_1: _CERT_ID__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _CERT_ID__bindgen_ty_1 {
    pub IssuerSerialNumber: CERT_ISSUER_SERIAL_NUMBER,
    pub KeyId: CRYPT_HASH_BLOB,
    pub HashId: CRYPT_HASH_BLOB,
    _bindgen_union_align: [u64; 4usize],
}
#[test]
fn bindgen_test_layout__CERT_ID__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_ID__bindgen_ty_1>(),
        32usize,
        concat!("Size of: ", stringify!(_CERT_ID__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_ID__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_ID__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_ID__bindgen_ty_1>())).IssuerSerialNumber as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_ID__bindgen_ty_1),
            "::",
            stringify!(IssuerSerialNumber)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_ID__bindgen_ty_1>())).KeyId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_ID__bindgen_ty_1),
            "::",
            stringify!(KeyId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_ID__bindgen_ty_1>())).HashId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_ID__bindgen_ty_1),
            "::",
            stringify!(HashId)
        )
    );
}
#[test]
fn bindgen_test_layout__CERT_ID() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_ID>(),
        40usize,
        concat!("Size of: ", stringify!(_CERT_ID))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_ID>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_ID))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_ID>())).dwIdChoice as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_ID),
            "::",
            stringify!(dwIdChoice)
        )
    );
}
pub type CERT_ID = _CERT_ID;
pub type PCERT_ID = *mut _CERT_ID;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CMSG_SIGNER_ENCODE_INFO {
    pub cbSize: DWORD,
    pub pCertInfo: PCERT_INFO,
    pub __bindgen_anon_1: _CMSG_SIGNER_ENCODE_INFO__bindgen_ty_1,
    pub dwKeySpec: DWORD,
    pub HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub pvHashAuxInfo: *mut ::std::os::raw::c_void,
    pub cAuthAttr: DWORD,
    pub rgAuthAttr: PCRYPT_ATTRIBUTE,
    pub cUnauthAttr: DWORD,
    pub rgUnauthAttr: PCRYPT_ATTRIBUTE,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _CMSG_SIGNER_ENCODE_INFO__bindgen_ty_1 {
    pub hCryptProv: HCRYPTPROV,
    pub hNCryptKey: NCRYPT_KEY_HANDLE,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__CMSG_SIGNER_ENCODE_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_SIGNER_ENCODE_INFO__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_CMSG_SIGNER_ENCODE_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_SIGNER_ENCODE_INFO__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CMSG_SIGNER_ENCODE_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_SIGNER_ENCODE_INFO__bindgen_ty_1>())).hCryptProv
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_SIGNER_ENCODE_INFO__bindgen_ty_1),
            "::",
            stringify!(hCryptProv)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_SIGNER_ENCODE_INFO__bindgen_ty_1>())).hNCryptKey
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_SIGNER_ENCODE_INFO__bindgen_ty_1),
            "::",
            stringify!(hNCryptKey)
        )
    );
}
#[test]
fn bindgen_test_layout__CMSG_SIGNER_ENCODE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_SIGNER_ENCODE_INFO>(),
        96usize,
        concat!("Size of: ", stringify!(_CMSG_SIGNER_ENCODE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_SIGNER_ENCODE_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMSG_SIGNER_ENCODE_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMSG_SIGNER_ENCODE_INFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_SIGNER_ENCODE_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_SIGNER_ENCODE_INFO>())).pCertInfo as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_SIGNER_ENCODE_INFO),
            "::",
            stringify!(pCertInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_SIGNER_ENCODE_INFO>())).dwKeySpec as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_SIGNER_ENCODE_INFO),
            "::",
            stringify!(dwKeySpec)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_SIGNER_ENCODE_INFO>())).HashAlgorithm as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_SIGNER_ENCODE_INFO),
            "::",
            stringify!(HashAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_SIGNER_ENCODE_INFO>())).pvHashAuxInfo as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_SIGNER_ENCODE_INFO),
            "::",
            stringify!(pvHashAuxInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_SIGNER_ENCODE_INFO>())).cAuthAttr as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_SIGNER_ENCODE_INFO),
            "::",
            stringify!(cAuthAttr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_SIGNER_ENCODE_INFO>())).rgAuthAttr as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_SIGNER_ENCODE_INFO),
            "::",
            stringify!(rgAuthAttr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_SIGNER_ENCODE_INFO>())).cUnauthAttr as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_SIGNER_ENCODE_INFO),
            "::",
            stringify!(cUnauthAttr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_SIGNER_ENCODE_INFO>())).rgUnauthAttr as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_SIGNER_ENCODE_INFO),
            "::",
            stringify!(rgUnauthAttr)
        )
    );
}
pub type CMSG_SIGNER_ENCODE_INFO = _CMSG_SIGNER_ENCODE_INFO;
pub type PCMSG_SIGNER_ENCODE_INFO = *mut _CMSG_SIGNER_ENCODE_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CMSG_SIGNED_ENCODE_INFO {
    pub cbSize: DWORD,
    pub cSigners: DWORD,
    pub rgSigners: PCMSG_SIGNER_ENCODE_INFO,
    pub cCertEncoded: DWORD,
    pub rgCertEncoded: PCERT_BLOB,
    pub cCrlEncoded: DWORD,
    pub rgCrlEncoded: PCRL_BLOB,
}
#[test]
fn bindgen_test_layout__CMSG_SIGNED_ENCODE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_SIGNED_ENCODE_INFO>(),
        48usize,
        concat!("Size of: ", stringify!(_CMSG_SIGNED_ENCODE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_SIGNED_ENCODE_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMSG_SIGNED_ENCODE_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMSG_SIGNED_ENCODE_INFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_SIGNED_ENCODE_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_SIGNED_ENCODE_INFO>())).cSigners as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_SIGNED_ENCODE_INFO),
            "::",
            stringify!(cSigners)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_SIGNED_ENCODE_INFO>())).rgSigners as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_SIGNED_ENCODE_INFO),
            "::",
            stringify!(rgSigners)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_SIGNED_ENCODE_INFO>())).cCertEncoded as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_SIGNED_ENCODE_INFO),
            "::",
            stringify!(cCertEncoded)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_SIGNED_ENCODE_INFO>())).rgCertEncoded as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_SIGNED_ENCODE_INFO),
            "::",
            stringify!(rgCertEncoded)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_SIGNED_ENCODE_INFO>())).cCrlEncoded as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_SIGNED_ENCODE_INFO),
            "::",
            stringify!(cCrlEncoded)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_SIGNED_ENCODE_INFO>())).rgCrlEncoded as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_SIGNED_ENCODE_INFO),
            "::",
            stringify!(rgCrlEncoded)
        )
    );
}
pub type CMSG_SIGNED_ENCODE_INFO = _CMSG_SIGNED_ENCODE_INFO;
pub type PCMSG_SIGNED_ENCODE_INFO = *mut _CMSG_SIGNED_ENCODE_INFO;
pub type CMSG_RECIPIENT_ENCODE_INFO = _CMSG_RECIPIENT_ENCODE_INFO;
pub type PCMSG_RECIPIENT_ENCODE_INFO = *mut _CMSG_RECIPIENT_ENCODE_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CMSG_ENVELOPED_ENCODE_INFO {
    pub cbSize: DWORD,
    pub hCryptProv: HCRYPTPROV_LEGACY,
    pub ContentEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub pvEncryptionAuxInfo: *mut ::std::os::raw::c_void,
    pub cRecipients: DWORD,
    pub rgpRecipients: *mut PCERT_INFO,
}
#[test]
fn bindgen_test_layout__CMSG_ENVELOPED_ENCODE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_ENVELOPED_ENCODE_INFO>(),
        64usize,
        concat!("Size of: ", stringify!(_CMSG_ENVELOPED_ENCODE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_ENVELOPED_ENCODE_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMSG_ENVELOPED_ENCODE_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_ENVELOPED_ENCODE_INFO>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_ENVELOPED_ENCODE_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_ENVELOPED_ENCODE_INFO>())).hCryptProv as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_ENVELOPED_ENCODE_INFO),
            "::",
            stringify!(hCryptProv)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_ENVELOPED_ENCODE_INFO>())).ContentEncryptionAlgorithm
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_ENVELOPED_ENCODE_INFO),
            "::",
            stringify!(ContentEncryptionAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_ENVELOPED_ENCODE_INFO>())).pvEncryptionAuxInfo as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_ENVELOPED_ENCODE_INFO),
            "::",
            stringify!(pvEncryptionAuxInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_ENVELOPED_ENCODE_INFO>())).cRecipients as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_ENVELOPED_ENCODE_INFO),
            "::",
            stringify!(cRecipients)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_ENVELOPED_ENCODE_INFO>())).rgpRecipients as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_ENVELOPED_ENCODE_INFO),
            "::",
            stringify!(rgpRecipients)
        )
    );
}
pub type CMSG_ENVELOPED_ENCODE_INFO = _CMSG_ENVELOPED_ENCODE_INFO;
pub type PCMSG_ENVELOPED_ENCODE_INFO = *mut _CMSG_ENVELOPED_ENCODE_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO {
    pub cbSize: DWORD,
    pub KeyEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub pvKeyEncryptionAuxInfo: *mut ::std::os::raw::c_void,
    pub hCryptProv: HCRYPTPROV_LEGACY,
    pub RecipientPublicKey: CRYPT_BIT_BLOB,
    pub RecipientId: CERT_ID,
}
#[test]
fn bindgen_test_layout__CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO>(),
        112usize,
        concat!(
            "Size of: ",
            stringify!(_CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO>())).cbSize as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO>())).KeyEncryptionAlgorithm
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO),
            "::",
            stringify!(KeyEncryptionAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO>())).pvKeyEncryptionAuxInfo
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO),
            "::",
            stringify!(pvKeyEncryptionAuxInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO>())).hCryptProv as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO),
            "::",
            stringify!(hCryptProv)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO>())).RecipientPublicKey
                as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO),
            "::",
            stringify!(RecipientPublicKey)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO>())).RecipientId
                as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO),
            "::",
            stringify!(RecipientId)
        )
    );
}
pub type CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO = _CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO;
pub type PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO = *mut _CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO {
    pub cbSize: DWORD,
    pub RecipientPublicKey: CRYPT_BIT_BLOB,
    pub RecipientId: CERT_ID,
    pub Date: FILETIME,
    pub pOtherAttr: PCRYPT_ATTRIBUTE_TYPE_VALUE,
}
#[test]
fn bindgen_test_layout__CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO>(),
        88usize,
        concat!(
            "Size of: ",
            stringify!(_CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO>())).cbSize as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO>())).RecipientPublicKey
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO),
            "::",
            stringify!(RecipientPublicKey)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO>())).RecipientId
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO),
            "::",
            stringify!(RecipientId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO>())).Date as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO),
            "::",
            stringify!(Date)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO>())).pOtherAttr
                as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO),
            "::",
            stringify!(pOtherAttr)
        )
    );
}
pub type CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO = _CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO;
pub type PCMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO = *mut _CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO {
    pub cbSize: DWORD,
    pub KeyEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub pvKeyEncryptionAuxInfo: *mut ::std::os::raw::c_void,
    pub KeyWrapAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub pvKeyWrapAuxInfo: *mut ::std::os::raw::c_void,
    pub hCryptProv: HCRYPTPROV_LEGACY,
    pub dwKeySpec: DWORD,
    pub dwKeyChoice: DWORD,
    pub __bindgen_anon_1: _CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO__bindgen_ty_1,
    pub UserKeyingMaterial: CRYPT_DATA_BLOB,
    pub cRecipientEncryptedKeys: DWORD,
    pub rgpRecipientEncryptedKeys: *mut PCMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO__bindgen_ty_1 {
    pub pEphemeralAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER,
    pub pSenderId: PCERT_ID,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO__bindgen_ty_1>()))
                .pEphemeralAlgorithm as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO__bindgen_ty_1),
            "::",
            stringify!(pEphemeralAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO__bindgen_ty_1>()))
                .pSenderId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO__bindgen_ty_1),
            "::",
            stringify!(pSenderId)
        )
    );
}
#[test]
fn bindgen_test_layout__CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO>(),
        128usize,
        concat!(
            "Size of: ",
            stringify!(_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO>())).cbSize as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO>())).KeyEncryptionAlgorithm
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO),
            "::",
            stringify!(KeyEncryptionAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO>())).pvKeyEncryptionAuxInfo
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO),
            "::",
            stringify!(pvKeyEncryptionAuxInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO>())).KeyWrapAlgorithm
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO),
            "::",
            stringify!(KeyWrapAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO>())).pvKeyWrapAuxInfo
                as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO),
            "::",
            stringify!(pvKeyWrapAuxInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO>())).hCryptProv as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO),
            "::",
            stringify!(hCryptProv)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO>())).dwKeySpec as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO),
            "::",
            stringify!(dwKeySpec)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO>())).dwKeyChoice
                as *const _ as usize
        },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO),
            "::",
            stringify!(dwKeyChoice)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO>())).UserKeyingMaterial
                as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO),
            "::",
            stringify!(UserKeyingMaterial)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO>()))
                .cRecipientEncryptedKeys as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO),
            "::",
            stringify!(cRecipientEncryptedKeys)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO>()))
                .rgpRecipientEncryptedKeys as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO),
            "::",
            stringify!(rgpRecipientEncryptedKeys)
        )
    );
}
pub type CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO = _CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO;
pub type PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO = *mut _CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO {
    pub cbSize: DWORD,
    pub KeyEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub pvKeyEncryptionAuxInfo: *mut ::std::os::raw::c_void,
    pub hCryptProv: HCRYPTPROV,
    pub dwKeyChoice: DWORD,
    pub __bindgen_anon_1: _CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO__bindgen_ty_1,
    pub KeyId: CRYPT_DATA_BLOB,
    pub Date: FILETIME,
    pub pOtherAttr: PCRYPT_ATTRIBUTE_TYPE_VALUE,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO__bindgen_ty_1 {
    pub hKeyEncryptionKey: HCRYPTKEY,
    pub pvKeyEncryptionKey: *mut ::std::os::raw::c_void,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO__bindgen_ty_1>()))
                .hKeyEncryptionKey as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO__bindgen_ty_1),
            "::",
            stringify!(hKeyEncryptionKey)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO__bindgen_ty_1>()))
                .pvKeyEncryptionKey as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO__bindgen_ty_1),
            "::",
            stringify!(pvKeyEncryptionKey)
        )
    );
}
#[test]
fn bindgen_test_layout__CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO>(),
        96usize,
        concat!(
            "Size of: ",
            stringify!(_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO>())).cbSize as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO>())).KeyEncryptionAlgorithm
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO),
            "::",
            stringify!(KeyEncryptionAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO>())).pvKeyEncryptionAuxInfo
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO),
            "::",
            stringify!(pvKeyEncryptionAuxInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO>())).hCryptProv as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO),
            "::",
            stringify!(hCryptProv)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO>())).dwKeyChoice
                as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO),
            "::",
            stringify!(dwKeyChoice)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO>())).KeyId as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO),
            "::",
            stringify!(KeyId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO>())).Date as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO),
            "::",
            stringify!(Date)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO>())).pOtherAttr as *const _
                as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO),
            "::",
            stringify!(pOtherAttr)
        )
    );
}
pub type CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO = _CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO;
pub type PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO = *mut _CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CMSG_RECIPIENT_ENCODE_INFO {
    pub dwRecipientChoice: DWORD,
    pub __bindgen_anon_1: _CMSG_RECIPIENT_ENCODE_INFO__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _CMSG_RECIPIENT_ENCODE_INFO__bindgen_ty_1 {
    pub pKeyTrans: PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO,
    pub pKeyAgree: PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO,
    pub pMailList: PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__CMSG_RECIPIENT_ENCODE_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_RECIPIENT_ENCODE_INFO__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_CMSG_RECIPIENT_ENCODE_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_RECIPIENT_ENCODE_INFO__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CMSG_RECIPIENT_ENCODE_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_RECIPIENT_ENCODE_INFO__bindgen_ty_1>())).pKeyTrans
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_RECIPIENT_ENCODE_INFO__bindgen_ty_1),
            "::",
            stringify!(pKeyTrans)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_RECIPIENT_ENCODE_INFO__bindgen_ty_1>())).pKeyAgree
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_RECIPIENT_ENCODE_INFO__bindgen_ty_1),
            "::",
            stringify!(pKeyAgree)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_RECIPIENT_ENCODE_INFO__bindgen_ty_1>())).pMailList
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_RECIPIENT_ENCODE_INFO__bindgen_ty_1),
            "::",
            stringify!(pMailList)
        )
    );
}
#[test]
fn bindgen_test_layout__CMSG_RECIPIENT_ENCODE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_RECIPIENT_ENCODE_INFO>(),
        16usize,
        concat!("Size of: ", stringify!(_CMSG_RECIPIENT_ENCODE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_RECIPIENT_ENCODE_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMSG_RECIPIENT_ENCODE_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_RECIPIENT_ENCODE_INFO>())).dwRecipientChoice as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_RECIPIENT_ENCODE_INFO),
            "::",
            stringify!(dwRecipientChoice)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CMSG_RC2_AUX_INFO {
    pub cbSize: DWORD,
    pub dwBitLen: DWORD,
}
#[test]
fn bindgen_test_layout__CMSG_RC2_AUX_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_RC2_AUX_INFO>(),
        8usize,
        concat!("Size of: ", stringify!(_CMSG_RC2_AUX_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_RC2_AUX_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_CMSG_RC2_AUX_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMSG_RC2_AUX_INFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_RC2_AUX_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMSG_RC2_AUX_INFO>())).dwBitLen as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_RC2_AUX_INFO),
            "::",
            stringify!(dwBitLen)
        )
    );
}
pub type CMSG_RC2_AUX_INFO = _CMSG_RC2_AUX_INFO;
pub type PCMSG_RC2_AUX_INFO = *mut _CMSG_RC2_AUX_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CMSG_SP3_COMPATIBLE_AUX_INFO {
    pub cbSize: DWORD,
    pub dwFlags: DWORD,
}
#[test]
fn bindgen_test_layout__CMSG_SP3_COMPATIBLE_AUX_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_SP3_COMPATIBLE_AUX_INFO>(),
        8usize,
        concat!("Size of: ", stringify!(_CMSG_SP3_COMPATIBLE_AUX_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_SP3_COMPATIBLE_AUX_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_CMSG_SP3_COMPATIBLE_AUX_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_SP3_COMPATIBLE_AUX_INFO>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_SP3_COMPATIBLE_AUX_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_SP3_COMPATIBLE_AUX_INFO>())).dwFlags as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_SP3_COMPATIBLE_AUX_INFO),
            "::",
            stringify!(dwFlags)
        )
    );
}
pub type CMSG_SP3_COMPATIBLE_AUX_INFO = _CMSG_SP3_COMPATIBLE_AUX_INFO;
pub type PCMSG_SP3_COMPATIBLE_AUX_INFO = *mut _CMSG_SP3_COMPATIBLE_AUX_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CMSG_RC4_AUX_INFO {
    pub cbSize: DWORD,
    pub dwBitLen: DWORD,
}
#[test]
fn bindgen_test_layout__CMSG_RC4_AUX_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_RC4_AUX_INFO>(),
        8usize,
        concat!("Size of: ", stringify!(_CMSG_RC4_AUX_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_RC4_AUX_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_CMSG_RC4_AUX_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMSG_RC4_AUX_INFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_RC4_AUX_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMSG_RC4_AUX_INFO>())).dwBitLen as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_RC4_AUX_INFO),
            "::",
            stringify!(dwBitLen)
        )
    );
}
pub type CMSG_RC4_AUX_INFO = _CMSG_RC4_AUX_INFO;
pub type PCMSG_RC4_AUX_INFO = *mut _CMSG_RC4_AUX_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO {
    pub cbSize: DWORD,
    pub SignedInfo: CMSG_SIGNED_ENCODE_INFO,
    pub EnvelopedInfo: CMSG_ENVELOPED_ENCODE_INFO,
}
#[test]
fn bindgen_test_layout__CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO>(),
        120usize,
        concat!(
            "Size of: ",
            stringify!(_CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO>())).cbSize as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO>())).SignedInfo
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO),
            "::",
            stringify!(SignedInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO>())).EnvelopedInfo
                as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO),
            "::",
            stringify!(EnvelopedInfo)
        )
    );
}
pub type CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO = _CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO;
pub type PCMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO = *mut _CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CMSG_HASHED_ENCODE_INFO {
    pub cbSize: DWORD,
    pub hCryptProv: HCRYPTPROV_LEGACY,
    pub HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub pvHashAuxInfo: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout__CMSG_HASHED_ENCODE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_HASHED_ENCODE_INFO>(),
        48usize,
        concat!("Size of: ", stringify!(_CMSG_HASHED_ENCODE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_HASHED_ENCODE_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMSG_HASHED_ENCODE_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMSG_HASHED_ENCODE_INFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_HASHED_ENCODE_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_HASHED_ENCODE_INFO>())).hCryptProv as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_HASHED_ENCODE_INFO),
            "::",
            stringify!(hCryptProv)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_HASHED_ENCODE_INFO>())).HashAlgorithm as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_HASHED_ENCODE_INFO),
            "::",
            stringify!(HashAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_HASHED_ENCODE_INFO>())).pvHashAuxInfo as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_HASHED_ENCODE_INFO),
            "::",
            stringify!(pvHashAuxInfo)
        )
    );
}
pub type CMSG_HASHED_ENCODE_INFO = _CMSG_HASHED_ENCODE_INFO;
pub type PCMSG_HASHED_ENCODE_INFO = *mut _CMSG_HASHED_ENCODE_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CMSG_ENCRYPTED_ENCODE_INFO {
    pub cbSize: DWORD,
    pub ContentEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub pvEncryptionAuxInfo: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout__CMSG_ENCRYPTED_ENCODE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_ENCRYPTED_ENCODE_INFO>(),
        40usize,
        concat!("Size of: ", stringify!(_CMSG_ENCRYPTED_ENCODE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_ENCRYPTED_ENCODE_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMSG_ENCRYPTED_ENCODE_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_ENCRYPTED_ENCODE_INFO>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_ENCRYPTED_ENCODE_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_ENCRYPTED_ENCODE_INFO>())).ContentEncryptionAlgorithm
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_ENCRYPTED_ENCODE_INFO),
            "::",
            stringify!(ContentEncryptionAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_ENCRYPTED_ENCODE_INFO>())).pvEncryptionAuxInfo as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_ENCRYPTED_ENCODE_INFO),
            "::",
            stringify!(pvEncryptionAuxInfo)
        )
    );
}
pub type CMSG_ENCRYPTED_ENCODE_INFO = _CMSG_ENCRYPTED_ENCODE_INFO;
pub type PCMSG_ENCRYPTED_ENCODE_INFO = *mut _CMSG_ENCRYPTED_ENCODE_INFO;
pub type PFN_CMSG_STREAM_OUTPUT = ::std::option::Option<
    unsafe extern "C" fn(
        pvArg: *const ::std::os::raw::c_void,
        pbData: *mut BYTE,
        cbData: DWORD,
        fFinal: BOOL,
    ) -> BOOL,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CMSG_STREAM_INFO {
    pub cbContent: DWORD,
    pub pfnStreamOutput: PFN_CMSG_STREAM_OUTPUT,
    pub pvArg: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout__CMSG_STREAM_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_STREAM_INFO>(),
        24usize,
        concat!("Size of: ", stringify!(_CMSG_STREAM_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_STREAM_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMSG_STREAM_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMSG_STREAM_INFO>())).cbContent as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_STREAM_INFO),
            "::",
            stringify!(cbContent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_STREAM_INFO>())).pfnStreamOutput as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_STREAM_INFO),
            "::",
            stringify!(pfnStreamOutput)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMSG_STREAM_INFO>())).pvArg as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_STREAM_INFO),
            "::",
            stringify!(pvArg)
        )
    );
}
pub type CMSG_STREAM_INFO = _CMSG_STREAM_INFO;
pub type PCMSG_STREAM_INFO = *mut _CMSG_STREAM_INFO;
extern "C" {
    pub fn CryptMsgOpenToEncode(
        dwMsgEncodingType: DWORD,
        dwFlags: DWORD,
        dwMsgType: DWORD,
        pvMsgEncodeInfo: *const ::std::os::raw::c_void,
        pszInnerContentObjID: LPSTR,
        pStreamInfo: PCMSG_STREAM_INFO,
    ) -> HCRYPTMSG;
}
extern "C" {
    pub fn CryptMsgCalculateEncodedLength(
        dwMsgEncodingType: DWORD,
        dwFlags: DWORD,
        dwMsgType: DWORD,
        pvMsgEncodeInfo: *const ::std::os::raw::c_void,
        pszInnerContentObjID: LPSTR,
        cbData: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn CryptMsgOpenToDecode(
        dwMsgEncodingType: DWORD,
        dwFlags: DWORD,
        dwMsgType: DWORD,
        hCryptProv: HCRYPTPROV_LEGACY,
        pRecipientInfo: PCERT_INFO,
        pStreamInfo: PCMSG_STREAM_INFO,
    ) -> HCRYPTMSG;
}
extern "C" {
    pub fn CryptMsgDuplicate(hCryptMsg: HCRYPTMSG) -> HCRYPTMSG;
}
extern "C" {
    pub fn CryptMsgClose(hCryptMsg: HCRYPTMSG) -> BOOL;
}
extern "C" {
    pub fn CryptMsgUpdate(
        hCryptMsg: HCRYPTMSG,
        pbData: *const BYTE,
        cbData: DWORD,
        fFinal: BOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptMsgGetParam(
        hCryptMsg: HCRYPTMSG,
        dwParamType: DWORD,
        dwIndex: DWORD,
        pvData: *mut ::std::os::raw::c_void,
        pcbData: *mut DWORD,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CMSG_SIGNER_INFO {
    pub dwVersion: DWORD,
    pub Issuer: CERT_NAME_BLOB,
    pub SerialNumber: CRYPT_INTEGER_BLOB,
    pub HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub HashEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub EncryptedHash: CRYPT_DATA_BLOB,
    pub AuthAttrs: CRYPT_ATTRIBUTES,
    pub UnauthAttrs: CRYPT_ATTRIBUTES,
}
#[test]
fn bindgen_test_layout__CMSG_SIGNER_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_SIGNER_INFO>(),
        136usize,
        concat!("Size of: ", stringify!(_CMSG_SIGNER_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_SIGNER_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMSG_SIGNER_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMSG_SIGNER_INFO>())).dwVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_SIGNER_INFO),
            "::",
            stringify!(dwVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMSG_SIGNER_INFO>())).Issuer as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_SIGNER_INFO),
            "::",
            stringify!(Issuer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMSG_SIGNER_INFO>())).SerialNumber as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_SIGNER_INFO),
            "::",
            stringify!(SerialNumber)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMSG_SIGNER_INFO>())).HashAlgorithm as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_SIGNER_INFO),
            "::",
            stringify!(HashAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_SIGNER_INFO>())).HashEncryptionAlgorithm as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_SIGNER_INFO),
            "::",
            stringify!(HashEncryptionAlgorithm)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMSG_SIGNER_INFO>())).EncryptedHash as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_SIGNER_INFO),
            "::",
            stringify!(EncryptedHash)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMSG_SIGNER_INFO>())).AuthAttrs as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_SIGNER_INFO),
            "::",
            stringify!(AuthAttrs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMSG_SIGNER_INFO>())).UnauthAttrs as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_SIGNER_INFO),
            "::",
            stringify!(UnauthAttrs)
        )
    );
}
pub type CMSG_SIGNER_INFO = _CMSG_SIGNER_INFO;
pub type PCMSG_SIGNER_INFO = *mut _CMSG_SIGNER_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CMSG_CMS_SIGNER_INFO {
    pub dwVersion: DWORD,
    pub SignerId: CERT_ID,
    pub HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub HashEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub EncryptedHash: CRYPT_DATA_BLOB,
    pub AuthAttrs: CRYPT_ATTRIBUTES,
    pub UnauthAttrs: CRYPT_ATTRIBUTES,
}
#[test]
fn bindgen_test_layout__CMSG_CMS_SIGNER_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_CMS_SIGNER_INFO>(),
        144usize,
        concat!("Size of: ", stringify!(_CMSG_CMS_SIGNER_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_CMS_SIGNER_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMSG_CMS_SIGNER_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMSG_CMS_SIGNER_INFO>())).dwVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CMS_SIGNER_INFO),
            "::",
            stringify!(dwVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMSG_CMS_SIGNER_INFO>())).SignerId as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CMS_SIGNER_INFO),
            "::",
            stringify!(SignerId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CMS_SIGNER_INFO>())).HashAlgorithm as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CMS_SIGNER_INFO),
            "::",
            stringify!(HashAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CMS_SIGNER_INFO>())).HashEncryptionAlgorithm as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CMS_SIGNER_INFO),
            "::",
            stringify!(HashEncryptionAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CMS_SIGNER_INFO>())).EncryptedHash as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CMS_SIGNER_INFO),
            "::",
            stringify!(EncryptedHash)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMSG_CMS_SIGNER_INFO>())).AuthAttrs as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CMS_SIGNER_INFO),
            "::",
            stringify!(AuthAttrs)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CMS_SIGNER_INFO>())).UnauthAttrs as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CMS_SIGNER_INFO),
            "::",
            stringify!(UnauthAttrs)
        )
    );
}
pub type CMSG_CMS_SIGNER_INFO = _CMSG_CMS_SIGNER_INFO;
pub type PCMSG_CMS_SIGNER_INFO = *mut _CMSG_CMS_SIGNER_INFO;
pub type CMSG_ATTR = CRYPT_ATTRIBUTES;
pub type PCMSG_ATTR = *mut CRYPT_ATTRIBUTES;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CMSG_KEY_TRANS_RECIPIENT_INFO {
    pub dwVersion: DWORD,
    pub RecipientId: CERT_ID,
    pub KeyEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub EncryptedKey: CRYPT_DATA_BLOB,
}
#[test]
fn bindgen_test_layout__CMSG_KEY_TRANS_RECIPIENT_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_KEY_TRANS_RECIPIENT_INFO>(),
        88usize,
        concat!("Size of: ", stringify!(_CMSG_KEY_TRANS_RECIPIENT_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_KEY_TRANS_RECIPIENT_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMSG_KEY_TRANS_RECIPIENT_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_TRANS_RECIPIENT_INFO>())).dwVersion as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_TRANS_RECIPIENT_INFO),
            "::",
            stringify!(dwVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_TRANS_RECIPIENT_INFO>())).RecipientId as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_TRANS_RECIPIENT_INFO),
            "::",
            stringify!(RecipientId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_TRANS_RECIPIENT_INFO>())).KeyEncryptionAlgorithm
                as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_TRANS_RECIPIENT_INFO),
            "::",
            stringify!(KeyEncryptionAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_TRANS_RECIPIENT_INFO>())).EncryptedKey as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_TRANS_RECIPIENT_INFO),
            "::",
            stringify!(EncryptedKey)
        )
    );
}
pub type CMSG_KEY_TRANS_RECIPIENT_INFO = _CMSG_KEY_TRANS_RECIPIENT_INFO;
pub type PCMSG_KEY_TRANS_RECIPIENT_INFO = *mut _CMSG_KEY_TRANS_RECIPIENT_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CMSG_RECIPIENT_ENCRYPTED_KEY_INFO {
    pub RecipientId: CERT_ID,
    pub EncryptedKey: CRYPT_DATA_BLOB,
    pub Date: FILETIME,
    pub pOtherAttr: PCRYPT_ATTRIBUTE_TYPE_VALUE,
}
#[test]
fn bindgen_test_layout__CMSG_RECIPIENT_ENCRYPTED_KEY_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_RECIPIENT_ENCRYPTED_KEY_INFO>(),
        72usize,
        concat!("Size of: ", stringify!(_CMSG_RECIPIENT_ENCRYPTED_KEY_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_RECIPIENT_ENCRYPTED_KEY_INFO>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CMSG_RECIPIENT_ENCRYPTED_KEY_INFO)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_RECIPIENT_ENCRYPTED_KEY_INFO>())).RecipientId as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_RECIPIENT_ENCRYPTED_KEY_INFO),
            "::",
            stringify!(RecipientId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_RECIPIENT_ENCRYPTED_KEY_INFO>())).EncryptedKey as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_RECIPIENT_ENCRYPTED_KEY_INFO),
            "::",
            stringify!(EncryptedKey)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_RECIPIENT_ENCRYPTED_KEY_INFO>())).Date as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_RECIPIENT_ENCRYPTED_KEY_INFO),
            "::",
            stringify!(Date)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_RECIPIENT_ENCRYPTED_KEY_INFO>())).pOtherAttr as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_RECIPIENT_ENCRYPTED_KEY_INFO),
            "::",
            stringify!(pOtherAttr)
        )
    );
}
pub type CMSG_RECIPIENT_ENCRYPTED_KEY_INFO = _CMSG_RECIPIENT_ENCRYPTED_KEY_INFO;
pub type PCMSG_RECIPIENT_ENCRYPTED_KEY_INFO = *mut _CMSG_RECIPIENT_ENCRYPTED_KEY_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CMSG_KEY_AGREE_RECIPIENT_INFO {
    pub dwVersion: DWORD,
    pub dwOriginatorChoice: DWORD,
    pub __bindgen_anon_1: _CMSG_KEY_AGREE_RECIPIENT_INFO__bindgen_ty_1,
    pub UserKeyingMaterial: CRYPT_DATA_BLOB,
    pub KeyEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub cRecipientEncryptedKeys: DWORD,
    pub rgpRecipientEncryptedKeys: *mut PCMSG_RECIPIENT_ENCRYPTED_KEY_INFO,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _CMSG_KEY_AGREE_RECIPIENT_INFO__bindgen_ty_1 {
    pub OriginatorCertId: CERT_ID,
    pub OriginatorPublicKeyInfo: CERT_PUBLIC_KEY_INFO,
    _bindgen_union_align: [u64; 6usize],
}
#[test]
fn bindgen_test_layout__CMSG_KEY_AGREE_RECIPIENT_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_KEY_AGREE_RECIPIENT_INFO__bindgen_ty_1>(),
        48usize,
        concat!(
            "Size of: ",
            stringify!(_CMSG_KEY_AGREE_RECIPIENT_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_KEY_AGREE_RECIPIENT_INFO__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CMSG_KEY_AGREE_RECIPIENT_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_RECIPIENT_INFO__bindgen_ty_1>()))
                .OriginatorCertId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_RECIPIENT_INFO__bindgen_ty_1),
            "::",
            stringify!(OriginatorCertId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_RECIPIENT_INFO__bindgen_ty_1>()))
                .OriginatorPublicKeyInfo as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_RECIPIENT_INFO__bindgen_ty_1),
            "::",
            stringify!(OriginatorPublicKeyInfo)
        )
    );
}
#[test]
fn bindgen_test_layout__CMSG_KEY_AGREE_RECIPIENT_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_KEY_AGREE_RECIPIENT_INFO>(),
        112usize,
        concat!("Size of: ", stringify!(_CMSG_KEY_AGREE_RECIPIENT_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_KEY_AGREE_RECIPIENT_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMSG_KEY_AGREE_RECIPIENT_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_RECIPIENT_INFO>())).dwVersion as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_RECIPIENT_INFO),
            "::",
            stringify!(dwVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_RECIPIENT_INFO>())).dwOriginatorChoice
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_RECIPIENT_INFO),
            "::",
            stringify!(dwOriginatorChoice)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_RECIPIENT_INFO>())).UserKeyingMaterial
                as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_RECIPIENT_INFO),
            "::",
            stringify!(UserKeyingMaterial)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_RECIPIENT_INFO>())).KeyEncryptionAlgorithm
                as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_RECIPIENT_INFO),
            "::",
            stringify!(KeyEncryptionAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_RECIPIENT_INFO>())).cRecipientEncryptedKeys
                as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_RECIPIENT_INFO),
            "::",
            stringify!(cRecipientEncryptedKeys)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_RECIPIENT_INFO>())).rgpRecipientEncryptedKeys
                as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_RECIPIENT_INFO),
            "::",
            stringify!(rgpRecipientEncryptedKeys)
        )
    );
}
pub type CMSG_KEY_AGREE_RECIPIENT_INFO = _CMSG_KEY_AGREE_RECIPIENT_INFO;
pub type PCMSG_KEY_AGREE_RECIPIENT_INFO = *mut _CMSG_KEY_AGREE_RECIPIENT_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CMSG_MAIL_LIST_RECIPIENT_INFO {
    pub dwVersion: DWORD,
    pub KeyId: CRYPT_DATA_BLOB,
    pub KeyEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub EncryptedKey: CRYPT_DATA_BLOB,
    pub Date: FILETIME,
    pub pOtherAttr: PCRYPT_ATTRIBUTE_TYPE_VALUE,
}
#[test]
fn bindgen_test_layout__CMSG_MAIL_LIST_RECIPIENT_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_MAIL_LIST_RECIPIENT_INFO>(),
        80usize,
        concat!("Size of: ", stringify!(_CMSG_MAIL_LIST_RECIPIENT_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_MAIL_LIST_RECIPIENT_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMSG_MAIL_LIST_RECIPIENT_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_MAIL_LIST_RECIPIENT_INFO>())).dwVersion as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_MAIL_LIST_RECIPIENT_INFO),
            "::",
            stringify!(dwVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_MAIL_LIST_RECIPIENT_INFO>())).KeyId as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_MAIL_LIST_RECIPIENT_INFO),
            "::",
            stringify!(KeyId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_MAIL_LIST_RECIPIENT_INFO>())).KeyEncryptionAlgorithm
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_MAIL_LIST_RECIPIENT_INFO),
            "::",
            stringify!(KeyEncryptionAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_MAIL_LIST_RECIPIENT_INFO>())).EncryptedKey as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_MAIL_LIST_RECIPIENT_INFO),
            "::",
            stringify!(EncryptedKey)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_MAIL_LIST_RECIPIENT_INFO>())).Date as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_MAIL_LIST_RECIPIENT_INFO),
            "::",
            stringify!(Date)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_MAIL_LIST_RECIPIENT_INFO>())).pOtherAttr as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_MAIL_LIST_RECIPIENT_INFO),
            "::",
            stringify!(pOtherAttr)
        )
    );
}
pub type CMSG_MAIL_LIST_RECIPIENT_INFO = _CMSG_MAIL_LIST_RECIPIENT_INFO;
pub type PCMSG_MAIL_LIST_RECIPIENT_INFO = *mut _CMSG_MAIL_LIST_RECIPIENT_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CMSG_CMS_RECIPIENT_INFO {
    pub dwRecipientChoice: DWORD,
    pub __bindgen_anon_1: _CMSG_CMS_RECIPIENT_INFO__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _CMSG_CMS_RECIPIENT_INFO__bindgen_ty_1 {
    pub pKeyTrans: PCMSG_KEY_TRANS_RECIPIENT_INFO,
    pub pKeyAgree: PCMSG_KEY_AGREE_RECIPIENT_INFO,
    pub pMailList: PCMSG_MAIL_LIST_RECIPIENT_INFO,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__CMSG_CMS_RECIPIENT_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_CMS_RECIPIENT_INFO__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_CMSG_CMS_RECIPIENT_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_CMS_RECIPIENT_INFO__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CMSG_CMS_RECIPIENT_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CMS_RECIPIENT_INFO__bindgen_ty_1>())).pKeyTrans as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CMS_RECIPIENT_INFO__bindgen_ty_1),
            "::",
            stringify!(pKeyTrans)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CMS_RECIPIENT_INFO__bindgen_ty_1>())).pKeyAgree as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CMS_RECIPIENT_INFO__bindgen_ty_1),
            "::",
            stringify!(pKeyAgree)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CMS_RECIPIENT_INFO__bindgen_ty_1>())).pMailList as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CMS_RECIPIENT_INFO__bindgen_ty_1),
            "::",
            stringify!(pMailList)
        )
    );
}
#[test]
fn bindgen_test_layout__CMSG_CMS_RECIPIENT_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_CMS_RECIPIENT_INFO>(),
        16usize,
        concat!("Size of: ", stringify!(_CMSG_CMS_RECIPIENT_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_CMS_RECIPIENT_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMSG_CMS_RECIPIENT_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CMS_RECIPIENT_INFO>())).dwRecipientChoice as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CMS_RECIPIENT_INFO),
            "::",
            stringify!(dwRecipientChoice)
        )
    );
}
pub type CMSG_CMS_RECIPIENT_INFO = _CMSG_CMS_RECIPIENT_INFO;
pub type PCMSG_CMS_RECIPIENT_INFO = *mut _CMSG_CMS_RECIPIENT_INFO;
extern "C" {
    pub fn CryptMsgControl(
        hCryptMsg: HCRYPTMSG,
        dwFlags: DWORD,
        dwCtrlType: DWORD,
        pvCtrlPara: *const ::std::os::raw::c_void,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA {
    pub cbSize: DWORD,
    pub hCryptProv: HCRYPTPROV_LEGACY,
    pub dwSignerIndex: DWORD,
    pub dwSignerType: DWORD,
    pub pvSigner: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout__CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA>(),
        32usize,
        concat!("Size of: ", stringify!(_CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA>())).cbSize as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA>())).hCryptProv as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA),
            "::",
            stringify!(hCryptProv)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA>())).dwSignerIndex
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA),
            "::",
            stringify!(dwSignerIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA>())).dwSignerType as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA),
            "::",
            stringify!(dwSignerType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA>())).pvSigner as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA),
            "::",
            stringify!(pvSigner)
        )
    );
}
pub type CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA = _CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA;
pub type PCMSG_CTRL_VERIFY_SIGNATURE_EX_PARA = *mut _CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CMSG_CTRL_DECRYPT_PARA {
    pub cbSize: DWORD,
    pub __bindgen_anon_1: _CMSG_CTRL_DECRYPT_PARA__bindgen_ty_1,
    pub dwKeySpec: DWORD,
    pub dwRecipientIndex: DWORD,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _CMSG_CTRL_DECRYPT_PARA__bindgen_ty_1 {
    pub hCryptProv: HCRYPTPROV,
    pub hNCryptKey: NCRYPT_KEY_HANDLE,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__CMSG_CTRL_DECRYPT_PARA__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_CTRL_DECRYPT_PARA__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_CMSG_CTRL_DECRYPT_PARA__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_CTRL_DECRYPT_PARA__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CMSG_CTRL_DECRYPT_PARA__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_DECRYPT_PARA__bindgen_ty_1>())).hCryptProv as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_DECRYPT_PARA__bindgen_ty_1),
            "::",
            stringify!(hCryptProv)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_DECRYPT_PARA__bindgen_ty_1>())).hNCryptKey as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_DECRYPT_PARA__bindgen_ty_1),
            "::",
            stringify!(hNCryptKey)
        )
    );
}
#[test]
fn bindgen_test_layout__CMSG_CTRL_DECRYPT_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_CTRL_DECRYPT_PARA>(),
        24usize,
        concat!("Size of: ", stringify!(_CMSG_CTRL_DECRYPT_PARA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_CTRL_DECRYPT_PARA>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMSG_CTRL_DECRYPT_PARA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMSG_CTRL_DECRYPT_PARA>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_DECRYPT_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_DECRYPT_PARA>())).dwKeySpec as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_DECRYPT_PARA),
            "::",
            stringify!(dwKeySpec)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_DECRYPT_PARA>())).dwRecipientIndex as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_DECRYPT_PARA),
            "::",
            stringify!(dwRecipientIndex)
        )
    );
}
pub type CMSG_CTRL_DECRYPT_PARA = _CMSG_CTRL_DECRYPT_PARA;
pub type PCMSG_CTRL_DECRYPT_PARA = *mut _CMSG_CTRL_DECRYPT_PARA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CMSG_CTRL_KEY_TRANS_DECRYPT_PARA {
    pub cbSize: DWORD,
    pub __bindgen_anon_1: _CMSG_CTRL_KEY_TRANS_DECRYPT_PARA__bindgen_ty_1,
    pub dwKeySpec: DWORD,
    pub pKeyTrans: PCMSG_KEY_TRANS_RECIPIENT_INFO,
    pub dwRecipientIndex: DWORD,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _CMSG_CTRL_KEY_TRANS_DECRYPT_PARA__bindgen_ty_1 {
    pub hCryptProv: HCRYPTPROV,
    pub hNCryptKey: NCRYPT_KEY_HANDLE,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__CMSG_CTRL_KEY_TRANS_DECRYPT_PARA__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_CTRL_KEY_TRANS_DECRYPT_PARA__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_CMSG_CTRL_KEY_TRANS_DECRYPT_PARA__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_CTRL_KEY_TRANS_DECRYPT_PARA__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CMSG_CTRL_KEY_TRANS_DECRYPT_PARA__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_KEY_TRANS_DECRYPT_PARA__bindgen_ty_1>())).hCryptProv
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_KEY_TRANS_DECRYPT_PARA__bindgen_ty_1),
            "::",
            stringify!(hCryptProv)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_KEY_TRANS_DECRYPT_PARA__bindgen_ty_1>())).hNCryptKey
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_KEY_TRANS_DECRYPT_PARA__bindgen_ty_1),
            "::",
            stringify!(hNCryptKey)
        )
    );
}
#[test]
fn bindgen_test_layout__CMSG_CTRL_KEY_TRANS_DECRYPT_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_CTRL_KEY_TRANS_DECRYPT_PARA>(),
        40usize,
        concat!("Size of: ", stringify!(_CMSG_CTRL_KEY_TRANS_DECRYPT_PARA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_CTRL_KEY_TRANS_DECRYPT_PARA>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CMSG_CTRL_KEY_TRANS_DECRYPT_PARA)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_KEY_TRANS_DECRYPT_PARA>())).cbSize as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_KEY_TRANS_DECRYPT_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_KEY_TRANS_DECRYPT_PARA>())).dwKeySpec as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_KEY_TRANS_DECRYPT_PARA),
            "::",
            stringify!(dwKeySpec)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_KEY_TRANS_DECRYPT_PARA>())).pKeyTrans as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_KEY_TRANS_DECRYPT_PARA),
            "::",
            stringify!(pKeyTrans)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_KEY_TRANS_DECRYPT_PARA>())).dwRecipientIndex
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_KEY_TRANS_DECRYPT_PARA),
            "::",
            stringify!(dwRecipientIndex)
        )
    );
}
pub type CMSG_CTRL_KEY_TRANS_DECRYPT_PARA = _CMSG_CTRL_KEY_TRANS_DECRYPT_PARA;
pub type PCMSG_CTRL_KEY_TRANS_DECRYPT_PARA = *mut _CMSG_CTRL_KEY_TRANS_DECRYPT_PARA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CMSG_CTRL_KEY_AGREE_DECRYPT_PARA {
    pub cbSize: DWORD,
    pub __bindgen_anon_1: _CMSG_CTRL_KEY_AGREE_DECRYPT_PARA__bindgen_ty_1,
    pub dwKeySpec: DWORD,
    pub pKeyAgree: PCMSG_KEY_AGREE_RECIPIENT_INFO,
    pub dwRecipientIndex: DWORD,
    pub dwRecipientEncryptedKeyIndex: DWORD,
    pub OriginatorPublicKey: CRYPT_BIT_BLOB,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _CMSG_CTRL_KEY_AGREE_DECRYPT_PARA__bindgen_ty_1 {
    pub hCryptProv: HCRYPTPROV,
    pub hNCryptKey: NCRYPT_KEY_HANDLE,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__CMSG_CTRL_KEY_AGREE_DECRYPT_PARA__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_CTRL_KEY_AGREE_DECRYPT_PARA__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_CMSG_CTRL_KEY_AGREE_DECRYPT_PARA__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_CTRL_KEY_AGREE_DECRYPT_PARA__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CMSG_CTRL_KEY_AGREE_DECRYPT_PARA__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_KEY_AGREE_DECRYPT_PARA__bindgen_ty_1>())).hCryptProv
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_KEY_AGREE_DECRYPT_PARA__bindgen_ty_1),
            "::",
            stringify!(hCryptProv)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_KEY_AGREE_DECRYPT_PARA__bindgen_ty_1>())).hNCryptKey
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_KEY_AGREE_DECRYPT_PARA__bindgen_ty_1),
            "::",
            stringify!(hNCryptKey)
        )
    );
}
#[test]
fn bindgen_test_layout__CMSG_CTRL_KEY_AGREE_DECRYPT_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_CTRL_KEY_AGREE_DECRYPT_PARA>(),
        64usize,
        concat!("Size of: ", stringify!(_CMSG_CTRL_KEY_AGREE_DECRYPT_PARA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_CTRL_KEY_AGREE_DECRYPT_PARA>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CMSG_CTRL_KEY_AGREE_DECRYPT_PARA)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_KEY_AGREE_DECRYPT_PARA>())).cbSize as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_KEY_AGREE_DECRYPT_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_KEY_AGREE_DECRYPT_PARA>())).dwKeySpec as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_KEY_AGREE_DECRYPT_PARA),
            "::",
            stringify!(dwKeySpec)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_KEY_AGREE_DECRYPT_PARA>())).pKeyAgree as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_KEY_AGREE_DECRYPT_PARA),
            "::",
            stringify!(pKeyAgree)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_KEY_AGREE_DECRYPT_PARA>())).dwRecipientIndex
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_KEY_AGREE_DECRYPT_PARA),
            "::",
            stringify!(dwRecipientIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_KEY_AGREE_DECRYPT_PARA>()))
                .dwRecipientEncryptedKeyIndex as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_KEY_AGREE_DECRYPT_PARA),
            "::",
            stringify!(dwRecipientEncryptedKeyIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_KEY_AGREE_DECRYPT_PARA>())).OriginatorPublicKey
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_KEY_AGREE_DECRYPT_PARA),
            "::",
            stringify!(OriginatorPublicKey)
        )
    );
}
pub type CMSG_CTRL_KEY_AGREE_DECRYPT_PARA = _CMSG_CTRL_KEY_AGREE_DECRYPT_PARA;
pub type PCMSG_CTRL_KEY_AGREE_DECRYPT_PARA = *mut _CMSG_CTRL_KEY_AGREE_DECRYPT_PARA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CMSG_CTRL_MAIL_LIST_DECRYPT_PARA {
    pub cbSize: DWORD,
    pub hCryptProv: HCRYPTPROV,
    pub pMailList: PCMSG_MAIL_LIST_RECIPIENT_INFO,
    pub dwRecipientIndex: DWORD,
    pub dwKeyChoice: DWORD,
    pub __bindgen_anon_1: _CMSG_CTRL_MAIL_LIST_DECRYPT_PARA__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _CMSG_CTRL_MAIL_LIST_DECRYPT_PARA__bindgen_ty_1 {
    pub hKeyEncryptionKey: HCRYPTKEY,
    pub pvKeyEncryptionKey: *mut ::std::os::raw::c_void,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__CMSG_CTRL_MAIL_LIST_DECRYPT_PARA__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_CTRL_MAIL_LIST_DECRYPT_PARA__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_CMSG_CTRL_MAIL_LIST_DECRYPT_PARA__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_CTRL_MAIL_LIST_DECRYPT_PARA__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CMSG_CTRL_MAIL_LIST_DECRYPT_PARA__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_MAIL_LIST_DECRYPT_PARA__bindgen_ty_1>()))
                .hKeyEncryptionKey as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_MAIL_LIST_DECRYPT_PARA__bindgen_ty_1),
            "::",
            stringify!(hKeyEncryptionKey)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_MAIL_LIST_DECRYPT_PARA__bindgen_ty_1>()))
                .pvKeyEncryptionKey as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_MAIL_LIST_DECRYPT_PARA__bindgen_ty_1),
            "::",
            stringify!(pvKeyEncryptionKey)
        )
    );
}
#[test]
fn bindgen_test_layout__CMSG_CTRL_MAIL_LIST_DECRYPT_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_CTRL_MAIL_LIST_DECRYPT_PARA>(),
        40usize,
        concat!("Size of: ", stringify!(_CMSG_CTRL_MAIL_LIST_DECRYPT_PARA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_CTRL_MAIL_LIST_DECRYPT_PARA>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CMSG_CTRL_MAIL_LIST_DECRYPT_PARA)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_MAIL_LIST_DECRYPT_PARA>())).cbSize as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_MAIL_LIST_DECRYPT_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_MAIL_LIST_DECRYPT_PARA>())).hCryptProv as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_MAIL_LIST_DECRYPT_PARA),
            "::",
            stringify!(hCryptProv)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_MAIL_LIST_DECRYPT_PARA>())).pMailList as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_MAIL_LIST_DECRYPT_PARA),
            "::",
            stringify!(pMailList)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_MAIL_LIST_DECRYPT_PARA>())).dwRecipientIndex
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_MAIL_LIST_DECRYPT_PARA),
            "::",
            stringify!(dwRecipientIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_MAIL_LIST_DECRYPT_PARA>())).dwKeyChoice as *const _
                as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_MAIL_LIST_DECRYPT_PARA),
            "::",
            stringify!(dwKeyChoice)
        )
    );
}
pub type CMSG_CTRL_MAIL_LIST_DECRYPT_PARA = _CMSG_CTRL_MAIL_LIST_DECRYPT_PARA;
pub type PCMSG_CTRL_MAIL_LIST_DECRYPT_PARA = *mut _CMSG_CTRL_MAIL_LIST_DECRYPT_PARA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA {
    pub cbSize: DWORD,
    pub dwSignerIndex: DWORD,
    pub blob: CRYPT_DATA_BLOB,
}
#[test]
fn bindgen_test_layout__CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA>(),
        24usize,
        concat!(
            "Size of: ",
            stringify!(_CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA>())).cbSize as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA>())).dwSignerIndex
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA),
            "::",
            stringify!(dwSignerIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA>())).blob as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA),
            "::",
            stringify!(blob)
        )
    );
}
pub type CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA = _CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA;
pub type PCMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA = *mut _CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA {
    pub cbSize: DWORD,
    pub dwSignerIndex: DWORD,
    pub dwUnauthAttrIndex: DWORD,
}
#[test]
fn bindgen_test_layout__CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA>(),
        12usize,
        concat!(
            "Size of: ",
            stringify!(_CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA>())).cbSize as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA>())).dwSignerIndex
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA),
            "::",
            stringify!(dwSignerIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA>())).dwUnauthAttrIndex
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA),
            "::",
            stringify!(dwUnauthAttrIndex)
        )
    );
}
pub type CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA = _CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA;
pub type PCMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA = *mut _CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA;
extern "C" {
    pub fn CryptMsgVerifyCountersignatureEncoded(
        hCryptProv: HCRYPTPROV_LEGACY,
        dwEncodingType: DWORD,
        pbSignerInfo: PBYTE,
        cbSignerInfo: DWORD,
        pbSignerInfoCountersignature: PBYTE,
        cbSignerInfoCountersignature: DWORD,
        pciCountersigner: PCERT_INFO,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptMsgVerifyCountersignatureEncodedEx(
        hCryptProv: HCRYPTPROV_LEGACY,
        dwEncodingType: DWORD,
        pbSignerInfo: PBYTE,
        cbSignerInfo: DWORD,
        pbSignerInfoCountersignature: PBYTE,
        cbSignerInfoCountersignature: DWORD,
        dwSignerType: DWORD,
        pvSigner: *mut ::std::os::raw::c_void,
        dwFlags: DWORD,
        pvExtra: *mut ::std::os::raw::c_void,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptMsgCountersign(
        hCryptMsg: HCRYPTMSG,
        dwIndex: DWORD,
        cCountersigners: DWORD,
        rgCountersigners: PCMSG_SIGNER_ENCODE_INFO,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptMsgCountersignEncoded(
        dwEncodingType: DWORD,
        pbSignerInfo: PBYTE,
        cbSignerInfo: DWORD,
        cCountersigners: DWORD,
        rgCountersigners: PCMSG_SIGNER_ENCODE_INFO,
        pbCountersignature: PBYTE,
        pcbCountersignature: PDWORD,
    ) -> BOOL;
}
pub type PFN_CMSG_ALLOC =
    ::std::option::Option<unsafe extern "C" fn(cb: size_t) -> *mut ::std::os::raw::c_void>;
pub type PFN_CMSG_FREE =
    ::std::option::Option<unsafe extern "C" fn(pv: *mut ::std::os::raw::c_void)>;
pub type PFN_CMSG_GEN_ENCRYPT_KEY = ::std::option::Option<
    unsafe extern "C" fn(
        phCryptProv: *mut HCRYPTPROV,
        paiEncrypt: PCRYPT_ALGORITHM_IDENTIFIER,
        pvEncryptAuxInfo: PVOID,
        pPublicKeyInfo: PCERT_PUBLIC_KEY_INFO,
        pfnAlloc: PFN_CMSG_ALLOC,
        phEncryptKey: *mut HCRYPTKEY,
        ppbEncryptParameters: *mut PBYTE,
        pcbEncryptParameters: PDWORD,
    ) -> BOOL,
>;
pub type PFN_CMSG_EXPORT_ENCRYPT_KEY = ::std::option::Option<
    unsafe extern "C" fn(
        hCryptProv: HCRYPTPROV,
        hEncryptKey: HCRYPTKEY,
        pPublicKeyInfo: PCERT_PUBLIC_KEY_INFO,
        pbData: PBYTE,
        pcbData: PDWORD,
    ) -> BOOL,
>;
pub type PFN_CMSG_IMPORT_ENCRYPT_KEY = ::std::option::Option<
    unsafe extern "C" fn(
        hCryptProv: HCRYPTPROV,
        dwKeySpec: DWORD,
        paiEncrypt: PCRYPT_ALGORITHM_IDENTIFIER,
        paiPubKey: PCRYPT_ALGORITHM_IDENTIFIER,
        pbEncodedKey: PBYTE,
        cbEncodedKey: DWORD,
        phEncryptKey: *mut HCRYPTKEY,
    ) -> BOOL,
>;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CMSG_CONTENT_ENCRYPT_INFO {
    pub cbSize: DWORD,
    pub hCryptProv: HCRYPTPROV_LEGACY,
    pub ContentEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub pvEncryptionAuxInfo: *mut ::std::os::raw::c_void,
    pub cRecipients: DWORD,
    pub rgCmsRecipients: PCMSG_RECIPIENT_ENCODE_INFO,
    pub pfnAlloc: PFN_CMSG_ALLOC,
    pub pfnFree: PFN_CMSG_FREE,
    pub dwEncryptFlags: DWORD,
    pub __bindgen_anon_1: _CMSG_CONTENT_ENCRYPT_INFO__bindgen_ty_1,
    pub dwFlags: DWORD,
    pub fCNG: BOOL,
    pub pbCNGContentEncryptKeyObject: *mut BYTE,
    pub pbContentEncryptKey: *mut BYTE,
    pub cbContentEncryptKey: DWORD,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _CMSG_CONTENT_ENCRYPT_INFO__bindgen_ty_1 {
    pub hContentEncryptKey: HCRYPTKEY,
    pub hCNGContentEncryptKey: BCRYPT_KEY_HANDLE,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__CMSG_CONTENT_ENCRYPT_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_CONTENT_ENCRYPT_INFO__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_CMSG_CONTENT_ENCRYPT_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_CONTENT_ENCRYPT_INFO__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CMSG_CONTENT_ENCRYPT_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CONTENT_ENCRYPT_INFO__bindgen_ty_1>())).hContentEncryptKey
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CONTENT_ENCRYPT_INFO__bindgen_ty_1),
            "::",
            stringify!(hContentEncryptKey)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CONTENT_ENCRYPT_INFO__bindgen_ty_1>()))
                .hCNGContentEncryptKey as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CONTENT_ENCRYPT_INFO__bindgen_ty_1),
            "::",
            stringify!(hCNGContentEncryptKey)
        )
    );
}
#[test]
fn bindgen_test_layout__CMSG_CONTENT_ENCRYPT_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_CONTENT_ENCRYPT_INFO>(),
        128usize,
        concat!("Size of: ", stringify!(_CMSG_CONTENT_ENCRYPT_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_CONTENT_ENCRYPT_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMSG_CONTENT_ENCRYPT_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CONTENT_ENCRYPT_INFO>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CONTENT_ENCRYPT_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CONTENT_ENCRYPT_INFO>())).hCryptProv as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CONTENT_ENCRYPT_INFO),
            "::",
            stringify!(hCryptProv)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CONTENT_ENCRYPT_INFO>())).ContentEncryptionAlgorithm
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CONTENT_ENCRYPT_INFO),
            "::",
            stringify!(ContentEncryptionAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CONTENT_ENCRYPT_INFO>())).pvEncryptionAuxInfo as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CONTENT_ENCRYPT_INFO),
            "::",
            stringify!(pvEncryptionAuxInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CONTENT_ENCRYPT_INFO>())).cRecipients as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CONTENT_ENCRYPT_INFO),
            "::",
            stringify!(cRecipients)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CONTENT_ENCRYPT_INFO>())).rgCmsRecipients as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CONTENT_ENCRYPT_INFO),
            "::",
            stringify!(rgCmsRecipients)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CONTENT_ENCRYPT_INFO>())).pfnAlloc as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CONTENT_ENCRYPT_INFO),
            "::",
            stringify!(pfnAlloc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CONTENT_ENCRYPT_INFO>())).pfnFree as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CONTENT_ENCRYPT_INFO),
            "::",
            stringify!(pfnFree)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CONTENT_ENCRYPT_INFO>())).dwEncryptFlags as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CONTENT_ENCRYPT_INFO),
            "::",
            stringify!(dwEncryptFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CONTENT_ENCRYPT_INFO>())).dwFlags as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CONTENT_ENCRYPT_INFO),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CMSG_CONTENT_ENCRYPT_INFO>())).fCNG as *const _ as usize },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CONTENT_ENCRYPT_INFO),
            "::",
            stringify!(fCNG)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CONTENT_ENCRYPT_INFO>())).pbCNGContentEncryptKeyObject
                as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CONTENT_ENCRYPT_INFO),
            "::",
            stringify!(pbCNGContentEncryptKeyObject)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CONTENT_ENCRYPT_INFO>())).pbContentEncryptKey as *const _
                as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CONTENT_ENCRYPT_INFO),
            "::",
            stringify!(pbContentEncryptKey)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CONTENT_ENCRYPT_INFO>())).cbContentEncryptKey as *const _
                as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CONTENT_ENCRYPT_INFO),
            "::",
            stringify!(cbContentEncryptKey)
        )
    );
}
pub type CMSG_CONTENT_ENCRYPT_INFO = _CMSG_CONTENT_ENCRYPT_INFO;
pub type PCMSG_CONTENT_ENCRYPT_INFO = *mut _CMSG_CONTENT_ENCRYPT_INFO;
pub type PFN_CMSG_GEN_CONTENT_ENCRYPT_KEY = ::std::option::Option<
    unsafe extern "C" fn(
        pContentEncryptInfo: PCMSG_CONTENT_ENCRYPT_INFO,
        dwFlags: DWORD,
        pvReserved: *mut ::std::os::raw::c_void,
    ) -> BOOL,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CMSG_KEY_TRANS_ENCRYPT_INFO {
    pub cbSize: DWORD,
    pub dwRecipientIndex: DWORD,
    pub KeyEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub EncryptedKey: CRYPT_DATA_BLOB,
    pub dwFlags: DWORD,
}
#[test]
fn bindgen_test_layout__CMSG_KEY_TRANS_ENCRYPT_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_KEY_TRANS_ENCRYPT_INFO>(),
        56usize,
        concat!("Size of: ", stringify!(_CMSG_KEY_TRANS_ENCRYPT_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_KEY_TRANS_ENCRYPT_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMSG_KEY_TRANS_ENCRYPT_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_TRANS_ENCRYPT_INFO>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_TRANS_ENCRYPT_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_TRANS_ENCRYPT_INFO>())).dwRecipientIndex as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_TRANS_ENCRYPT_INFO),
            "::",
            stringify!(dwRecipientIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_TRANS_ENCRYPT_INFO>())).KeyEncryptionAlgorithm
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_TRANS_ENCRYPT_INFO),
            "::",
            stringify!(KeyEncryptionAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_TRANS_ENCRYPT_INFO>())).EncryptedKey as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_TRANS_ENCRYPT_INFO),
            "::",
            stringify!(EncryptedKey)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_TRANS_ENCRYPT_INFO>())).dwFlags as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_TRANS_ENCRYPT_INFO),
            "::",
            stringify!(dwFlags)
        )
    );
}
pub type CMSG_KEY_TRANS_ENCRYPT_INFO = _CMSG_KEY_TRANS_ENCRYPT_INFO;
pub type PCMSG_KEY_TRANS_ENCRYPT_INFO = *mut _CMSG_KEY_TRANS_ENCRYPT_INFO;
pub type PFN_CMSG_EXPORT_KEY_TRANS = ::std::option::Option<
    unsafe extern "C" fn(
        pContentEncryptInfo: PCMSG_CONTENT_ENCRYPT_INFO,
        pKeyTransEncodeInfo: PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO,
        pKeyTransEncryptInfo: PCMSG_KEY_TRANS_ENCRYPT_INFO,
        dwFlags: DWORD,
        pvReserved: *mut ::std::os::raw::c_void,
    ) -> BOOL,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CMSG_KEY_AGREE_KEY_ENCRYPT_INFO {
    pub cbSize: DWORD,
    pub EncryptedKey: CRYPT_DATA_BLOB,
}
#[test]
fn bindgen_test_layout__CMSG_KEY_AGREE_KEY_ENCRYPT_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_KEY_AGREE_KEY_ENCRYPT_INFO>(),
        24usize,
        concat!("Size of: ", stringify!(_CMSG_KEY_AGREE_KEY_ENCRYPT_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_KEY_AGREE_KEY_ENCRYPT_INFO>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CMSG_KEY_AGREE_KEY_ENCRYPT_INFO)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_KEY_ENCRYPT_INFO>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_KEY_ENCRYPT_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_KEY_ENCRYPT_INFO>())).EncryptedKey as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_KEY_ENCRYPT_INFO),
            "::",
            stringify!(EncryptedKey)
        )
    );
}
pub type CMSG_KEY_AGREE_KEY_ENCRYPT_INFO = _CMSG_KEY_AGREE_KEY_ENCRYPT_INFO;
pub type PCMSG_KEY_AGREE_KEY_ENCRYPT_INFO = *mut _CMSG_KEY_AGREE_KEY_ENCRYPT_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CMSG_KEY_AGREE_ENCRYPT_INFO {
    pub cbSize: DWORD,
    pub dwRecipientIndex: DWORD,
    pub KeyEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub UserKeyingMaterial: CRYPT_DATA_BLOB,
    pub dwOriginatorChoice: DWORD,
    pub __bindgen_anon_1: _CMSG_KEY_AGREE_ENCRYPT_INFO__bindgen_ty_1,
    pub cKeyAgreeKeyEncryptInfo: DWORD,
    pub rgpKeyAgreeKeyEncryptInfo: *mut PCMSG_KEY_AGREE_KEY_ENCRYPT_INFO,
    pub dwFlags: DWORD,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _CMSG_KEY_AGREE_ENCRYPT_INFO__bindgen_ty_1 {
    pub OriginatorCertId: CERT_ID,
    pub OriginatorPublicKeyInfo: CERT_PUBLIC_KEY_INFO,
    _bindgen_union_align: [u64; 6usize],
}
#[test]
fn bindgen_test_layout__CMSG_KEY_AGREE_ENCRYPT_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_KEY_AGREE_ENCRYPT_INFO__bindgen_ty_1>(),
        48usize,
        concat!(
            "Size of: ",
            stringify!(_CMSG_KEY_AGREE_ENCRYPT_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_KEY_AGREE_ENCRYPT_INFO__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CMSG_KEY_AGREE_ENCRYPT_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_ENCRYPT_INFO__bindgen_ty_1>())).OriginatorCertId
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_ENCRYPT_INFO__bindgen_ty_1),
            "::",
            stringify!(OriginatorCertId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_ENCRYPT_INFO__bindgen_ty_1>()))
                .OriginatorPublicKeyInfo as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_ENCRYPT_INFO__bindgen_ty_1),
            "::",
            stringify!(OriginatorPublicKeyInfo)
        )
    );
}
#[test]
fn bindgen_test_layout__CMSG_KEY_AGREE_ENCRYPT_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_KEY_AGREE_ENCRYPT_INFO>(),
        128usize,
        concat!("Size of: ", stringify!(_CMSG_KEY_AGREE_ENCRYPT_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_KEY_AGREE_ENCRYPT_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMSG_KEY_AGREE_ENCRYPT_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_ENCRYPT_INFO>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_ENCRYPT_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_ENCRYPT_INFO>())).dwRecipientIndex as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_ENCRYPT_INFO),
            "::",
            stringify!(dwRecipientIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_ENCRYPT_INFO>())).KeyEncryptionAlgorithm
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_ENCRYPT_INFO),
            "::",
            stringify!(KeyEncryptionAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_ENCRYPT_INFO>())).UserKeyingMaterial as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_ENCRYPT_INFO),
            "::",
            stringify!(UserKeyingMaterial)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_ENCRYPT_INFO>())).dwOriginatorChoice as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_ENCRYPT_INFO),
            "::",
            stringify!(dwOriginatorChoice)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_ENCRYPT_INFO>())).cKeyAgreeKeyEncryptInfo
                as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_ENCRYPT_INFO),
            "::",
            stringify!(cKeyAgreeKeyEncryptInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_ENCRYPT_INFO>())).rgpKeyAgreeKeyEncryptInfo
                as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_ENCRYPT_INFO),
            "::",
            stringify!(rgpKeyAgreeKeyEncryptInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_KEY_AGREE_ENCRYPT_INFO>())).dwFlags as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_KEY_AGREE_ENCRYPT_INFO),
            "::",
            stringify!(dwFlags)
        )
    );
}
pub type CMSG_KEY_AGREE_ENCRYPT_INFO = _CMSG_KEY_AGREE_ENCRYPT_INFO;
pub type PCMSG_KEY_AGREE_ENCRYPT_INFO = *mut _CMSG_KEY_AGREE_ENCRYPT_INFO;
pub type PFN_CMSG_EXPORT_KEY_AGREE = ::std::option::Option<
    unsafe extern "C" fn(
        pContentEncryptInfo: PCMSG_CONTENT_ENCRYPT_INFO,
        pKeyAgreeEncodeInfo: PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO,
        pKeyAgreeEncryptInfo: PCMSG_KEY_AGREE_ENCRYPT_INFO,
        dwFlags: DWORD,
        pvReserved: *mut ::std::os::raw::c_void,
    ) -> BOOL,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CMSG_MAIL_LIST_ENCRYPT_INFO {
    pub cbSize: DWORD,
    pub dwRecipientIndex: DWORD,
    pub KeyEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub EncryptedKey: CRYPT_DATA_BLOB,
    pub dwFlags: DWORD,
}
#[test]
fn bindgen_test_layout__CMSG_MAIL_LIST_ENCRYPT_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_MAIL_LIST_ENCRYPT_INFO>(),
        56usize,
        concat!("Size of: ", stringify!(_CMSG_MAIL_LIST_ENCRYPT_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_MAIL_LIST_ENCRYPT_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMSG_MAIL_LIST_ENCRYPT_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_MAIL_LIST_ENCRYPT_INFO>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_MAIL_LIST_ENCRYPT_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_MAIL_LIST_ENCRYPT_INFO>())).dwRecipientIndex as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_MAIL_LIST_ENCRYPT_INFO),
            "::",
            stringify!(dwRecipientIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_MAIL_LIST_ENCRYPT_INFO>())).KeyEncryptionAlgorithm
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_MAIL_LIST_ENCRYPT_INFO),
            "::",
            stringify!(KeyEncryptionAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_MAIL_LIST_ENCRYPT_INFO>())).EncryptedKey as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_MAIL_LIST_ENCRYPT_INFO),
            "::",
            stringify!(EncryptedKey)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_MAIL_LIST_ENCRYPT_INFO>())).dwFlags as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_MAIL_LIST_ENCRYPT_INFO),
            "::",
            stringify!(dwFlags)
        )
    );
}
pub type CMSG_MAIL_LIST_ENCRYPT_INFO = _CMSG_MAIL_LIST_ENCRYPT_INFO;
pub type PCMSG_MAIL_LIST_ENCRYPT_INFO = *mut _CMSG_MAIL_LIST_ENCRYPT_INFO;
pub type PFN_CMSG_EXPORT_MAIL_LIST = ::std::option::Option<
    unsafe extern "C" fn(
        pContentEncryptInfo: PCMSG_CONTENT_ENCRYPT_INFO,
        pMailListEncodeInfo: PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO,
        pMailListEncryptInfo: PCMSG_MAIL_LIST_ENCRYPT_INFO,
        dwFlags: DWORD,
        pvReserved: *mut ::std::os::raw::c_void,
    ) -> BOOL,
>;
pub type PFN_CMSG_IMPORT_KEY_TRANS = ::std::option::Option<
    unsafe extern "C" fn(
        pContentEncryptionAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER,
        pKeyTransDecryptPara: PCMSG_CTRL_KEY_TRANS_DECRYPT_PARA,
        dwFlags: DWORD,
        pvReserved: *mut ::std::os::raw::c_void,
        phContentEncryptKey: *mut HCRYPTKEY,
    ) -> BOOL,
>;
pub type PFN_CMSG_IMPORT_KEY_AGREE = ::std::option::Option<
    unsafe extern "C" fn(
        pContentEncryptionAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER,
        pKeyAgreeDecryptPara: PCMSG_CTRL_KEY_AGREE_DECRYPT_PARA,
        dwFlags: DWORD,
        pvReserved: *mut ::std::os::raw::c_void,
        phContentEncryptKey: *mut HCRYPTKEY,
    ) -> BOOL,
>;
pub type PFN_CMSG_IMPORT_MAIL_LIST = ::std::option::Option<
    unsafe extern "C" fn(
        pContentEncryptionAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER,
        pMailListDecryptPara: PCMSG_CTRL_MAIL_LIST_DECRYPT_PARA,
        dwFlags: DWORD,
        pvReserved: *mut ::std::os::raw::c_void,
        phContentEncryptKey: *mut HCRYPTKEY,
    ) -> BOOL,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CMSG_CNG_CONTENT_DECRYPT_INFO {
    pub cbSize: DWORD,
    pub ContentEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub pfnAlloc: PFN_CMSG_ALLOC,
    pub pfnFree: PFN_CMSG_FREE,
    pub hNCryptKey: NCRYPT_KEY_HANDLE,
    pub pbContentEncryptKey: *mut BYTE,
    pub cbContentEncryptKey: DWORD,
    pub hCNGContentEncryptKey: BCRYPT_KEY_HANDLE,
    pub pbCNGContentEncryptKeyObject: *mut BYTE,
}
#[test]
fn bindgen_test_layout__CMSG_CNG_CONTENT_DECRYPT_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CMSG_CNG_CONTENT_DECRYPT_INFO>(),
        88usize,
        concat!("Size of: ", stringify!(_CMSG_CNG_CONTENT_DECRYPT_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CMSG_CNG_CONTENT_DECRYPT_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CMSG_CNG_CONTENT_DECRYPT_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CNG_CONTENT_DECRYPT_INFO>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CNG_CONTENT_DECRYPT_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CNG_CONTENT_DECRYPT_INFO>())).ContentEncryptionAlgorithm
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CNG_CONTENT_DECRYPT_INFO),
            "::",
            stringify!(ContentEncryptionAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CNG_CONTENT_DECRYPT_INFO>())).pfnAlloc as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CNG_CONTENT_DECRYPT_INFO),
            "::",
            stringify!(pfnAlloc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CNG_CONTENT_DECRYPT_INFO>())).pfnFree as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CNG_CONTENT_DECRYPT_INFO),
            "::",
            stringify!(pfnFree)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CNG_CONTENT_DECRYPT_INFO>())).hNCryptKey as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CNG_CONTENT_DECRYPT_INFO),
            "::",
            stringify!(hNCryptKey)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CNG_CONTENT_DECRYPT_INFO>())).pbContentEncryptKey
                as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CNG_CONTENT_DECRYPT_INFO),
            "::",
            stringify!(pbContentEncryptKey)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CNG_CONTENT_DECRYPT_INFO>())).cbContentEncryptKey
                as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CNG_CONTENT_DECRYPT_INFO),
            "::",
            stringify!(cbContentEncryptKey)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CNG_CONTENT_DECRYPT_INFO>())).hCNGContentEncryptKey
                as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CNG_CONTENT_DECRYPT_INFO),
            "::",
            stringify!(hCNGContentEncryptKey)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CMSG_CNG_CONTENT_DECRYPT_INFO>())).pbCNGContentEncryptKeyObject
                as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_CMSG_CNG_CONTENT_DECRYPT_INFO),
            "::",
            stringify!(pbCNGContentEncryptKeyObject)
        )
    );
}
pub type CMSG_CNG_CONTENT_DECRYPT_INFO = _CMSG_CNG_CONTENT_DECRYPT_INFO;
pub type PCMSG_CNG_CONTENT_DECRYPT_INFO = *mut _CMSG_CNG_CONTENT_DECRYPT_INFO;
pub type PFN_CMSG_CNG_IMPORT_KEY_TRANS = ::std::option::Option<
    unsafe extern "C" fn(
        pCNGContentDecryptInfo: PCMSG_CNG_CONTENT_DECRYPT_INFO,
        pKeyTransDecryptPara: PCMSG_CTRL_KEY_TRANS_DECRYPT_PARA,
        dwFlags: DWORD,
        pvReserved: *mut ::std::os::raw::c_void,
    ) -> BOOL,
>;
pub type PFN_CMSG_CNG_IMPORT_KEY_AGREE = ::std::option::Option<
    unsafe extern "C" fn(
        pCNGContentDecryptInfo: PCMSG_CNG_CONTENT_DECRYPT_INFO,
        pKeyAgreeDecryptPara: PCMSG_CTRL_KEY_AGREE_DECRYPT_PARA,
        dwFlags: DWORD,
        pvReserved: *mut ::std::os::raw::c_void,
    ) -> BOOL,
>;
pub type PFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY = ::std::option::Option<
    unsafe extern "C" fn(
        pCNGContentDecryptInfo: PCMSG_CNG_CONTENT_DECRYPT_INFO,
        dwFlags: DWORD,
        pvReserved: *mut ::std::os::raw::c_void,
    ) -> BOOL,
>;
pub type HCERTSTORE = *mut ::std::os::raw::c_void;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_CONTEXT {
    pub dwCertEncodingType: DWORD,
    pub pbCertEncoded: *mut BYTE,
    pub cbCertEncoded: DWORD,
    pub pCertInfo: PCERT_INFO,
    pub hCertStore: HCERTSTORE,
}
#[test]
fn bindgen_test_layout__CERT_CONTEXT() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_CONTEXT>(),
        40usize,
        concat!("Size of: ", stringify!(_CERT_CONTEXT))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_CONTEXT>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_CONTEXT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CONTEXT>())).dwCertEncodingType as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CONTEXT),
            "::",
            stringify!(dwCertEncodingType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_CONTEXT>())).pbCertEncoded as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CONTEXT),
            "::",
            stringify!(pbCertEncoded)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_CONTEXT>())).cbCertEncoded as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CONTEXT),
            "::",
            stringify!(cbCertEncoded)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_CONTEXT>())).pCertInfo as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CONTEXT),
            "::",
            stringify!(pCertInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_CONTEXT>())).hCertStore as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CONTEXT),
            "::",
            stringify!(hCertStore)
        )
    );
}
pub type CERT_CONTEXT = _CERT_CONTEXT;
pub type PCERT_CONTEXT = *mut _CERT_CONTEXT;
pub type PCCERT_CONTEXT = *const CERT_CONTEXT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRL_CONTEXT {
    pub dwCertEncodingType: DWORD,
    pub pbCrlEncoded: *mut BYTE,
    pub cbCrlEncoded: DWORD,
    pub pCrlInfo: PCRL_INFO,
    pub hCertStore: HCERTSTORE,
}
#[test]
fn bindgen_test_layout__CRL_CONTEXT() {
    assert_eq!(
        ::std::mem::size_of::<_CRL_CONTEXT>(),
        40usize,
        concat!("Size of: ", stringify!(_CRL_CONTEXT))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRL_CONTEXT>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRL_CONTEXT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRL_CONTEXT>())).dwCertEncodingType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_CONTEXT),
            "::",
            stringify!(dwCertEncodingType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRL_CONTEXT>())).pbCrlEncoded as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_CONTEXT),
            "::",
            stringify!(pbCrlEncoded)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRL_CONTEXT>())).cbCrlEncoded as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_CONTEXT),
            "::",
            stringify!(cbCrlEncoded)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRL_CONTEXT>())).pCrlInfo as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_CONTEXT),
            "::",
            stringify!(pCrlInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRL_CONTEXT>())).hCertStore as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_CONTEXT),
            "::",
            stringify!(hCertStore)
        )
    );
}
pub type CRL_CONTEXT = _CRL_CONTEXT;
pub type PCRL_CONTEXT = *mut _CRL_CONTEXT;
pub type PCCRL_CONTEXT = *const CRL_CONTEXT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CTL_CONTEXT {
    pub dwMsgAndCertEncodingType: DWORD,
    pub pbCtlEncoded: *mut BYTE,
    pub cbCtlEncoded: DWORD,
    pub pCtlInfo: PCTL_INFO,
    pub hCertStore: HCERTSTORE,
    pub hCryptMsg: HCRYPTMSG,
    pub pbCtlContent: *mut BYTE,
    pub cbCtlContent: DWORD,
}
#[test]
fn bindgen_test_layout__CTL_CONTEXT() {
    assert_eq!(
        ::std::mem::size_of::<_CTL_CONTEXT>(),
        64usize,
        concat!("Size of: ", stringify!(_CTL_CONTEXT))
    );
    assert_eq!(
        ::std::mem::align_of::<_CTL_CONTEXT>(),
        8usize,
        concat!("Alignment of ", stringify!(_CTL_CONTEXT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CTL_CONTEXT>())).dwMsgAndCertEncodingType as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_CONTEXT),
            "::",
            stringify!(dwMsgAndCertEncodingType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CTL_CONTEXT>())).pbCtlEncoded as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_CONTEXT),
            "::",
            stringify!(pbCtlEncoded)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CTL_CONTEXT>())).cbCtlEncoded as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_CONTEXT),
            "::",
            stringify!(cbCtlEncoded)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CTL_CONTEXT>())).pCtlInfo as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_CONTEXT),
            "::",
            stringify!(pCtlInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CTL_CONTEXT>())).hCertStore as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_CONTEXT),
            "::",
            stringify!(hCertStore)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CTL_CONTEXT>())).hCryptMsg as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_CONTEXT),
            "::",
            stringify!(hCryptMsg)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CTL_CONTEXT>())).pbCtlContent as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_CONTEXT),
            "::",
            stringify!(pbCtlContent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CTL_CONTEXT>())).cbCtlContent as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_CONTEXT),
            "::",
            stringify!(cbCtlContent)
        )
    );
}
pub type CTL_CONTEXT = _CTL_CONTEXT;
pub type PCTL_CONTEXT = *mut _CTL_CONTEXT;
pub type PCCTL_CONTEXT = *const CTL_CONTEXT;
pub const CertKeyType_KeyTypeOther: CertKeyType = 0;
pub const CertKeyType_KeyTypeVirtualSmartCard: CertKeyType = 1;
pub const CertKeyType_KeyTypePhysicalSmartCard: CertKeyType = 2;
pub const CertKeyType_KeyTypePassport: CertKeyType = 3;
pub const CertKeyType_KeyTypePassportRemote: CertKeyType = 4;
pub const CertKeyType_KeyTypePassportSmartCard: CertKeyType = 5;
pub const CertKeyType_KeyTypeHardware: CertKeyType = 6;
pub const CertKeyType_KeyTypeSoftware: CertKeyType = 7;
pub const CertKeyType_KeyTypeSelfSigned: CertKeyType = 8;
pub type CertKeyType = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_KEY_PROV_PARAM {
    pub dwParam: DWORD,
    pub pbData: *mut BYTE,
    pub cbData: DWORD,
    pub dwFlags: DWORD,
}
#[test]
fn bindgen_test_layout__CRYPT_KEY_PROV_PARAM() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_KEY_PROV_PARAM>(),
        24usize,
        concat!("Size of: ", stringify!(_CRYPT_KEY_PROV_PARAM))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_KEY_PROV_PARAM>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_KEY_PROV_PARAM))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_KEY_PROV_PARAM>())).dwParam as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_KEY_PROV_PARAM),
            "::",
            stringify!(dwParam)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_KEY_PROV_PARAM>())).pbData as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_KEY_PROV_PARAM),
            "::",
            stringify!(pbData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_KEY_PROV_PARAM>())).cbData as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_KEY_PROV_PARAM),
            "::",
            stringify!(cbData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_KEY_PROV_PARAM>())).dwFlags as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_KEY_PROV_PARAM),
            "::",
            stringify!(dwFlags)
        )
    );
}
pub type CRYPT_KEY_PROV_PARAM = _CRYPT_KEY_PROV_PARAM;
pub type PCRYPT_KEY_PROV_PARAM = *mut _CRYPT_KEY_PROV_PARAM;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_KEY_PROV_INFO {
    pub pwszContainerName: LPWSTR,
    pub pwszProvName: LPWSTR,
    pub dwProvType: DWORD,
    pub dwFlags: DWORD,
    pub cProvParam: DWORD,
    pub rgProvParam: PCRYPT_KEY_PROV_PARAM,
    pub dwKeySpec: DWORD,
}
#[test]
fn bindgen_test_layout__CRYPT_KEY_PROV_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_KEY_PROV_INFO>(),
        48usize,
        concat!("Size of: ", stringify!(_CRYPT_KEY_PROV_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_KEY_PROV_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_KEY_PROV_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_KEY_PROV_INFO>())).pwszContainerName as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_KEY_PROV_INFO),
            "::",
            stringify!(pwszContainerName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_KEY_PROV_INFO>())).pwszProvName as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_KEY_PROV_INFO),
            "::",
            stringify!(pwszProvName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_KEY_PROV_INFO>())).dwProvType as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_KEY_PROV_INFO),
            "::",
            stringify!(dwProvType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_KEY_PROV_INFO>())).dwFlags as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_KEY_PROV_INFO),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_KEY_PROV_INFO>())).cProvParam as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_KEY_PROV_INFO),
            "::",
            stringify!(cProvParam)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_KEY_PROV_INFO>())).rgProvParam as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_KEY_PROV_INFO),
            "::",
            stringify!(rgProvParam)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_KEY_PROV_INFO>())).dwKeySpec as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_KEY_PROV_INFO),
            "::",
            stringify!(dwKeySpec)
        )
    );
}
pub type CRYPT_KEY_PROV_INFO = _CRYPT_KEY_PROV_INFO;
pub type PCRYPT_KEY_PROV_INFO = *mut _CRYPT_KEY_PROV_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CERT_KEY_CONTEXT {
    pub cbSize: DWORD,
    pub __bindgen_anon_1: _CERT_KEY_CONTEXT__bindgen_ty_1,
    pub dwKeySpec: DWORD,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _CERT_KEY_CONTEXT__bindgen_ty_1 {
    pub hCryptProv: HCRYPTPROV,
    pub hNCryptKey: NCRYPT_KEY_HANDLE,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__CERT_KEY_CONTEXT__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_KEY_CONTEXT__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_CERT_KEY_CONTEXT__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_KEY_CONTEXT__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_KEY_CONTEXT__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_KEY_CONTEXT__bindgen_ty_1>())).hCryptProv as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_KEY_CONTEXT__bindgen_ty_1),
            "::",
            stringify!(hCryptProv)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_KEY_CONTEXT__bindgen_ty_1>())).hNCryptKey as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_KEY_CONTEXT__bindgen_ty_1),
            "::",
            stringify!(hNCryptKey)
        )
    );
}
#[test]
fn bindgen_test_layout__CERT_KEY_CONTEXT() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_KEY_CONTEXT>(),
        24usize,
        concat!("Size of: ", stringify!(_CERT_KEY_CONTEXT))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_KEY_CONTEXT>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_KEY_CONTEXT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_KEY_CONTEXT>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_KEY_CONTEXT),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_KEY_CONTEXT>())).dwKeySpec as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_KEY_CONTEXT),
            "::",
            stringify!(dwKeySpec)
        )
    );
}
pub type CERT_KEY_CONTEXT = _CERT_KEY_CONTEXT;
pub type PCERT_KEY_CONTEXT = *mut _CERT_KEY_CONTEXT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ROOT_INFO_LUID {
    pub LowPart: DWORD,
    pub HighPart: LONG,
}
#[test]
fn bindgen_test_layout__ROOT_INFO_LUID() {
    assert_eq!(
        ::std::mem::size_of::<_ROOT_INFO_LUID>(),
        8usize,
        concat!("Size of: ", stringify!(_ROOT_INFO_LUID))
    );
    assert_eq!(
        ::std::mem::align_of::<_ROOT_INFO_LUID>(),
        4usize,
        concat!("Alignment of ", stringify!(_ROOT_INFO_LUID))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ROOT_INFO_LUID>())).LowPart as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ROOT_INFO_LUID),
            "::",
            stringify!(LowPart)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ROOT_INFO_LUID>())).HighPart as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ROOT_INFO_LUID),
            "::",
            stringify!(HighPart)
        )
    );
}
pub type ROOT_INFO_LUID = _ROOT_INFO_LUID;
pub type PROOT_INFO_LUID = *mut _ROOT_INFO_LUID;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_SMART_CARD_ROOT_INFO {
    pub rgbCardID: [BYTE; 16usize],
    pub luid: ROOT_INFO_LUID,
}
#[test]
fn bindgen_test_layout__CRYPT_SMART_CARD_ROOT_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_SMART_CARD_ROOT_INFO>(),
        24usize,
        concat!("Size of: ", stringify!(_CRYPT_SMART_CARD_ROOT_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_SMART_CARD_ROOT_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_CRYPT_SMART_CARD_ROOT_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_SMART_CARD_ROOT_INFO>())).rgbCardID as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_SMART_CARD_ROOT_INFO),
            "::",
            stringify!(rgbCardID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_SMART_CARD_ROOT_INFO>())).luid as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_SMART_CARD_ROOT_INFO),
            "::",
            stringify!(luid)
        )
    );
}
pub type CRYPT_SMART_CARD_ROOT_INFO = _CRYPT_SMART_CARD_ROOT_INFO;
pub type PCRYPT_SMART_CARD_ROOT_INFO = *mut _CRYPT_SMART_CARD_ROOT_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CERT_SYSTEM_STORE_RELOCATE_PARA {
    pub __bindgen_anon_1: _CERT_SYSTEM_STORE_RELOCATE_PARA__bindgen_ty_1,
    pub __bindgen_anon_2: _CERT_SYSTEM_STORE_RELOCATE_PARA__bindgen_ty_2,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _CERT_SYSTEM_STORE_RELOCATE_PARA__bindgen_ty_1 {
    pub hKeyBase: HKEY,
    pub pvBase: *mut ::std::os::raw::c_void,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__CERT_SYSTEM_STORE_RELOCATE_PARA__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_SYSTEM_STORE_RELOCATE_PARA__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_CERT_SYSTEM_STORE_RELOCATE_PARA__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_SYSTEM_STORE_RELOCATE_PARA__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CERT_SYSTEM_STORE_RELOCATE_PARA__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_SYSTEM_STORE_RELOCATE_PARA__bindgen_ty_1>())).hKeyBase
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SYSTEM_STORE_RELOCATE_PARA__bindgen_ty_1),
            "::",
            stringify!(hKeyBase)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_SYSTEM_STORE_RELOCATE_PARA__bindgen_ty_1>())).pvBase
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SYSTEM_STORE_RELOCATE_PARA__bindgen_ty_1),
            "::",
            stringify!(pvBase)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _CERT_SYSTEM_STORE_RELOCATE_PARA__bindgen_ty_2 {
    pub pvSystemStore: *mut ::std::os::raw::c_void,
    pub pszSystemStore: LPCSTR,
    pub pwszSystemStore: LPCWSTR,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__CERT_SYSTEM_STORE_RELOCATE_PARA__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_SYSTEM_STORE_RELOCATE_PARA__bindgen_ty_2>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_CERT_SYSTEM_STORE_RELOCATE_PARA__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_SYSTEM_STORE_RELOCATE_PARA__bindgen_ty_2>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CERT_SYSTEM_STORE_RELOCATE_PARA__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_SYSTEM_STORE_RELOCATE_PARA__bindgen_ty_2>())).pvSystemStore
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SYSTEM_STORE_RELOCATE_PARA__bindgen_ty_2),
            "::",
            stringify!(pvSystemStore)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_SYSTEM_STORE_RELOCATE_PARA__bindgen_ty_2>()))
                .pszSystemStore as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SYSTEM_STORE_RELOCATE_PARA__bindgen_ty_2),
            "::",
            stringify!(pszSystemStore)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_SYSTEM_STORE_RELOCATE_PARA__bindgen_ty_2>()))
                .pwszSystemStore as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SYSTEM_STORE_RELOCATE_PARA__bindgen_ty_2),
            "::",
            stringify!(pwszSystemStore)
        )
    );
}
#[test]
fn bindgen_test_layout__CERT_SYSTEM_STORE_RELOCATE_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_SYSTEM_STORE_RELOCATE_PARA>(),
        16usize,
        concat!("Size of: ", stringify!(_CERT_SYSTEM_STORE_RELOCATE_PARA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_SYSTEM_STORE_RELOCATE_PARA>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CERT_SYSTEM_STORE_RELOCATE_PARA)
        )
    );
}
pub type CERT_SYSTEM_STORE_RELOCATE_PARA = _CERT_SYSTEM_STORE_RELOCATE_PARA;
pub type PCERT_SYSTEM_STORE_RELOCATE_PARA = *mut _CERT_SYSTEM_STORE_RELOCATE_PARA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_REGISTRY_STORE_CLIENT_GPT_PARA {
    pub hKeyBase: HKEY,
    pub pwszRegPath: LPWSTR,
}
#[test]
fn bindgen_test_layout__CERT_REGISTRY_STORE_CLIENT_GPT_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_REGISTRY_STORE_CLIENT_GPT_PARA>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_CERT_REGISTRY_STORE_CLIENT_GPT_PARA)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_REGISTRY_STORE_CLIENT_GPT_PARA>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CERT_REGISTRY_STORE_CLIENT_GPT_PARA)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_REGISTRY_STORE_CLIENT_GPT_PARA>())).hKeyBase as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REGISTRY_STORE_CLIENT_GPT_PARA),
            "::",
            stringify!(hKeyBase)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_REGISTRY_STORE_CLIENT_GPT_PARA>())).pwszRegPath as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REGISTRY_STORE_CLIENT_GPT_PARA),
            "::",
            stringify!(pwszRegPath)
        )
    );
}
pub type CERT_REGISTRY_STORE_CLIENT_GPT_PARA = _CERT_REGISTRY_STORE_CLIENT_GPT_PARA;
pub type PCERT_REGISTRY_STORE_CLIENT_GPT_PARA = *mut _CERT_REGISTRY_STORE_CLIENT_GPT_PARA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_REGISTRY_STORE_ROAMING_PARA {
    pub hKey: HKEY,
    pub pwszStoreDirectory: LPWSTR,
}
#[test]
fn bindgen_test_layout__CERT_REGISTRY_STORE_ROAMING_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_REGISTRY_STORE_ROAMING_PARA>(),
        16usize,
        concat!("Size of: ", stringify!(_CERT_REGISTRY_STORE_ROAMING_PARA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_REGISTRY_STORE_ROAMING_PARA>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CERT_REGISTRY_STORE_ROAMING_PARA)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_REGISTRY_STORE_ROAMING_PARA>())).hKey as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REGISTRY_STORE_ROAMING_PARA),
            "::",
            stringify!(hKey)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_REGISTRY_STORE_ROAMING_PARA>())).pwszStoreDirectory
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REGISTRY_STORE_ROAMING_PARA),
            "::",
            stringify!(pwszStoreDirectory)
        )
    );
}
pub type CERT_REGISTRY_STORE_ROAMING_PARA = _CERT_REGISTRY_STORE_ROAMING_PARA;
pub type PCERT_REGISTRY_STORE_ROAMING_PARA = *mut _CERT_REGISTRY_STORE_ROAMING_PARA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_LDAP_STORE_OPENED_PARA {
    pub pvLdapSessionHandle: *mut ::std::os::raw::c_void,
    pub pwszLdapUrl: LPCWSTR,
}
#[test]
fn bindgen_test_layout__CERT_LDAP_STORE_OPENED_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_LDAP_STORE_OPENED_PARA>(),
        16usize,
        concat!("Size of: ", stringify!(_CERT_LDAP_STORE_OPENED_PARA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_LDAP_STORE_OPENED_PARA>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_LDAP_STORE_OPENED_PARA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LDAP_STORE_OPENED_PARA>())).pvLdapSessionHandle as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LDAP_STORE_OPENED_PARA),
            "::",
            stringify!(pvLdapSessionHandle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_LDAP_STORE_OPENED_PARA>())).pwszLdapUrl as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_LDAP_STORE_OPENED_PARA),
            "::",
            stringify!(pwszLdapUrl)
        )
    );
}
pub type CERT_LDAP_STORE_OPENED_PARA = _CERT_LDAP_STORE_OPENED_PARA;
pub type PCERT_LDAP_STORE_OPENED_PARA = *mut _CERT_LDAP_STORE_OPENED_PARA;
extern "C" {
    pub fn CertOpenStore(
        lpszStoreProvider: LPCSTR,
        dwEncodingType: DWORD,
        hCryptProv: HCRYPTPROV_LEGACY,
        dwFlags: DWORD,
        pvPara: *const ::std::os::raw::c_void,
    ) -> HCERTSTORE;
}
pub type HCERTSTOREPROV = *mut ::std::os::raw::c_void;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_STORE_PROV_INFO {
    pub cbSize: DWORD,
    pub cStoreProvFunc: DWORD,
    pub rgpvStoreProvFunc: *mut *mut ::std::os::raw::c_void,
    pub hStoreProv: HCERTSTOREPROV,
    pub dwStoreProvFlags: DWORD,
    pub hStoreProvFuncAddr2: HCRYPTOIDFUNCADDR,
}
#[test]
fn bindgen_test_layout__CERT_STORE_PROV_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_STORE_PROV_INFO>(),
        40usize,
        concat!("Size of: ", stringify!(_CERT_STORE_PROV_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_STORE_PROV_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_STORE_PROV_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_STORE_PROV_INFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_STORE_PROV_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_STORE_PROV_INFO>())).cStoreProvFunc as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_STORE_PROV_INFO),
            "::",
            stringify!(cStoreProvFunc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_STORE_PROV_INFO>())).rgpvStoreProvFunc as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_STORE_PROV_INFO),
            "::",
            stringify!(rgpvStoreProvFunc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_STORE_PROV_INFO>())).hStoreProv as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_STORE_PROV_INFO),
            "::",
            stringify!(hStoreProv)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_STORE_PROV_INFO>())).dwStoreProvFlags as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_STORE_PROV_INFO),
            "::",
            stringify!(dwStoreProvFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_STORE_PROV_INFO>())).hStoreProvFuncAddr2 as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_STORE_PROV_INFO),
            "::",
            stringify!(hStoreProvFuncAddr2)
        )
    );
}
pub type CERT_STORE_PROV_INFO = _CERT_STORE_PROV_INFO;
pub type PCERT_STORE_PROV_INFO = *mut _CERT_STORE_PROV_INFO;
pub type PFN_CERT_DLL_OPEN_STORE_PROV_FUNC = ::std::option::Option<
    unsafe extern "C" fn(
        lpszStoreProvider: LPCSTR,
        dwEncodingType: DWORD,
        hCryptProv: HCRYPTPROV_LEGACY,
        dwFlags: DWORD,
        pvPara: *const ::std::os::raw::c_void,
        hCertStore: HCERTSTORE,
        pStoreProvInfo: PCERT_STORE_PROV_INFO,
    ) -> BOOL,
>;
pub type PFN_CERT_STORE_PROV_CLOSE =
    ::std::option::Option<unsafe extern "C" fn(hStoreProv: HCERTSTOREPROV, dwFlags: DWORD)>;
pub type PFN_CERT_STORE_PROV_READ_CERT = ::std::option::Option<
    unsafe extern "C" fn(
        hStoreProv: HCERTSTOREPROV,
        pStoreCertContext: PCCERT_CONTEXT,
        dwFlags: DWORD,
        ppProvCertContext: *mut PCCERT_CONTEXT,
    ) -> BOOL,
>;
pub type PFN_CERT_STORE_PROV_WRITE_CERT = ::std::option::Option<
    unsafe extern "C" fn(
        hStoreProv: HCERTSTOREPROV,
        pCertContext: PCCERT_CONTEXT,
        dwFlags: DWORD,
    ) -> BOOL,
>;
pub type PFN_CERT_STORE_PROV_DELETE_CERT = ::std::option::Option<
    unsafe extern "C" fn(
        hStoreProv: HCERTSTOREPROV,
        pCertContext: PCCERT_CONTEXT,
        dwFlags: DWORD,
    ) -> BOOL,
>;
pub type PFN_CERT_STORE_PROV_SET_CERT_PROPERTY = ::std::option::Option<
    unsafe extern "C" fn(
        hStoreProv: HCERTSTOREPROV,
        pCertContext: PCCERT_CONTEXT,
        dwPropId: DWORD,
        dwFlags: DWORD,
        pvData: *const ::std::os::raw::c_void,
    ) -> BOOL,
>;
pub type PFN_CERT_STORE_PROV_READ_CRL = ::std::option::Option<
    unsafe extern "C" fn(
        hStoreProv: HCERTSTOREPROV,
        pStoreCrlContext: PCCRL_CONTEXT,
        dwFlags: DWORD,
        ppProvCrlContext: *mut PCCRL_CONTEXT,
    ) -> BOOL,
>;
pub type PFN_CERT_STORE_PROV_WRITE_CRL = ::std::option::Option<
    unsafe extern "C" fn(
        hStoreProv: HCERTSTOREPROV,
        pCrlContext: PCCRL_CONTEXT,
        dwFlags: DWORD,
    ) -> BOOL,
>;
pub type PFN_CERT_STORE_PROV_DELETE_CRL = ::std::option::Option<
    unsafe extern "C" fn(
        hStoreProv: HCERTSTOREPROV,
        pCrlContext: PCCRL_CONTEXT,
        dwFlags: DWORD,
    ) -> BOOL,
>;
pub type PFN_CERT_STORE_PROV_SET_CRL_PROPERTY = ::std::option::Option<
    unsafe extern "C" fn(
        hStoreProv: HCERTSTOREPROV,
        pCrlContext: PCCRL_CONTEXT,
        dwPropId: DWORD,
        dwFlags: DWORD,
        pvData: *const ::std::os::raw::c_void,
    ) -> BOOL,
>;
pub type PFN_CERT_STORE_PROV_READ_CTL = ::std::option::Option<
    unsafe extern "C" fn(
        hStoreProv: HCERTSTOREPROV,
        pStoreCtlContext: PCCTL_CONTEXT,
        dwFlags: DWORD,
        ppProvCtlContext: *mut PCCTL_CONTEXT,
    ) -> BOOL,
>;
pub type PFN_CERT_STORE_PROV_WRITE_CTL = ::std::option::Option<
    unsafe extern "C" fn(
        hStoreProv: HCERTSTOREPROV,
        pCtlContext: PCCTL_CONTEXT,
        dwFlags: DWORD,
    ) -> BOOL,
>;
pub type PFN_CERT_STORE_PROV_DELETE_CTL = ::std::option::Option<
    unsafe extern "C" fn(
        hStoreProv: HCERTSTOREPROV,
        pCtlContext: PCCTL_CONTEXT,
        dwFlags: DWORD,
    ) -> BOOL,
>;
pub type PFN_CERT_STORE_PROV_SET_CTL_PROPERTY = ::std::option::Option<
    unsafe extern "C" fn(
        hStoreProv: HCERTSTOREPROV,
        pCtlContext: PCCTL_CONTEXT,
        dwPropId: DWORD,
        dwFlags: DWORD,
        pvData: *const ::std::os::raw::c_void,
    ) -> BOOL,
>;
pub type PFN_CERT_STORE_PROV_CONTROL = ::std::option::Option<
    unsafe extern "C" fn(
        hStoreProv: HCERTSTOREPROV,
        dwFlags: DWORD,
        dwCtrlType: DWORD,
        pvCtrlPara: *const ::std::os::raw::c_void,
    ) -> BOOL,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_STORE_PROV_FIND_INFO {
    pub cbSize: DWORD,
    pub dwMsgAndCertEncodingType: DWORD,
    pub dwFindFlags: DWORD,
    pub dwFindType: DWORD,
    pub pvFindPara: *const ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout__CERT_STORE_PROV_FIND_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_STORE_PROV_FIND_INFO>(),
        24usize,
        concat!("Size of: ", stringify!(_CERT_STORE_PROV_FIND_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_STORE_PROV_FIND_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_STORE_PROV_FIND_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_STORE_PROV_FIND_INFO>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_STORE_PROV_FIND_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_STORE_PROV_FIND_INFO>())).dwMsgAndCertEncodingType
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_STORE_PROV_FIND_INFO),
            "::",
            stringify!(dwMsgAndCertEncodingType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_STORE_PROV_FIND_INFO>())).dwFindFlags as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_STORE_PROV_FIND_INFO),
            "::",
            stringify!(dwFindFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_STORE_PROV_FIND_INFO>())).dwFindType as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_STORE_PROV_FIND_INFO),
            "::",
            stringify!(dwFindType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_STORE_PROV_FIND_INFO>())).pvFindPara as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_STORE_PROV_FIND_INFO),
            "::",
            stringify!(pvFindPara)
        )
    );
}
pub type CERT_STORE_PROV_FIND_INFO = _CERT_STORE_PROV_FIND_INFO;
pub type PCERT_STORE_PROV_FIND_INFO = *mut _CERT_STORE_PROV_FIND_INFO;
pub type CCERT_STORE_PROV_FIND_INFO = CERT_STORE_PROV_FIND_INFO;
pub type PCCERT_STORE_PROV_FIND_INFO = *const CERT_STORE_PROV_FIND_INFO;
pub type PFN_CERT_STORE_PROV_FIND_CERT = ::std::option::Option<
    unsafe extern "C" fn(
        hStoreProv: HCERTSTOREPROV,
        pFindInfo: PCCERT_STORE_PROV_FIND_INFO,
        pPrevCertContext: PCCERT_CONTEXT,
        dwFlags: DWORD,
        ppvStoreProvFindInfo: *mut *mut ::std::os::raw::c_void,
        ppProvCertContext: *mut PCCERT_CONTEXT,
    ) -> BOOL,
>;
pub type PFN_CERT_STORE_PROV_FREE_FIND_CERT = ::std::option::Option<
    unsafe extern "C" fn(
        hStoreProv: HCERTSTOREPROV,
        pCertContext: PCCERT_CONTEXT,
        pvStoreProvFindInfo: *mut ::std::os::raw::c_void,
        dwFlags: DWORD,
    ) -> BOOL,
>;
pub type PFN_CERT_STORE_PROV_GET_CERT_PROPERTY = ::std::option::Option<
    unsafe extern "C" fn(
        hStoreProv: HCERTSTOREPROV,
        pCertContext: PCCERT_CONTEXT,
        dwPropId: DWORD,
        dwFlags: DWORD,
        pvData: *mut ::std::os::raw::c_void,
        pcbData: *mut DWORD,
    ) -> BOOL,
>;
pub type PFN_CERT_STORE_PROV_FIND_CRL = ::std::option::Option<
    unsafe extern "C" fn(
        hStoreProv: HCERTSTOREPROV,
        pFindInfo: PCCERT_STORE_PROV_FIND_INFO,
        pPrevCrlContext: PCCRL_CONTEXT,
        dwFlags: DWORD,
        ppvStoreProvFindInfo: *mut *mut ::std::os::raw::c_void,
        ppProvCrlContext: *mut PCCRL_CONTEXT,
    ) -> BOOL,
>;
pub type PFN_CERT_STORE_PROV_FREE_FIND_CRL = ::std::option::Option<
    unsafe extern "C" fn(
        hStoreProv: HCERTSTOREPROV,
        pCrlContext: PCCRL_CONTEXT,
        pvStoreProvFindInfo: *mut ::std::os::raw::c_void,
        dwFlags: DWORD,
    ) -> BOOL,
>;
pub type PFN_CERT_STORE_PROV_GET_CRL_PROPERTY = ::std::option::Option<
    unsafe extern "C" fn(
        hStoreProv: HCERTSTOREPROV,
        pCrlContext: PCCRL_CONTEXT,
        dwPropId: DWORD,
        dwFlags: DWORD,
        pvData: *mut ::std::os::raw::c_void,
        pcbData: *mut DWORD,
    ) -> BOOL,
>;
pub type PFN_CERT_STORE_PROV_FIND_CTL = ::std::option::Option<
    unsafe extern "C" fn(
        hStoreProv: HCERTSTOREPROV,
        pFindInfo: PCCERT_STORE_PROV_FIND_INFO,
        pPrevCtlContext: PCCTL_CONTEXT,
        dwFlags: DWORD,
        ppvStoreProvFindInfo: *mut *mut ::std::os::raw::c_void,
        ppProvCtlContext: *mut PCCTL_CONTEXT,
    ) -> BOOL,
>;
pub type PFN_CERT_STORE_PROV_FREE_FIND_CTL = ::std::option::Option<
    unsafe extern "C" fn(
        hStoreProv: HCERTSTOREPROV,
        pCtlContext: PCCTL_CONTEXT,
        pvStoreProvFindInfo: *mut ::std::os::raw::c_void,
        dwFlags: DWORD,
    ) -> BOOL,
>;
pub type PFN_CERT_STORE_PROV_GET_CTL_PROPERTY = ::std::option::Option<
    unsafe extern "C" fn(
        hStoreProv: HCERTSTOREPROV,
        pCtlContext: PCCTL_CONTEXT,
        dwPropId: DWORD,
        dwFlags: DWORD,
        pvData: *mut ::std::os::raw::c_void,
        pcbData: *mut DWORD,
    ) -> BOOL,
>;
extern "C" {
    pub fn CertDuplicateStore(hCertStore: HCERTSTORE) -> HCERTSTORE;
}
extern "C" {
    pub fn CertSaveStore(
        hCertStore: HCERTSTORE,
        dwEncodingType: DWORD,
        dwSaveAs: DWORD,
        dwSaveTo: DWORD,
        pvSaveToPara: *mut ::std::os::raw::c_void,
        dwFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CertCloseStore(hCertStore: HCERTSTORE, dwFlags: DWORD) -> BOOL;
}
extern "C" {
    pub fn CertGetSubjectCertificateFromStore(
        hCertStore: HCERTSTORE,
        dwCertEncodingType: DWORD,
        pCertId: PCERT_INFO,
    ) -> PCCERT_CONTEXT;
}
extern "C" {
    pub fn CertEnumCertificatesInStore(
        hCertStore: HCERTSTORE,
        pPrevCertContext: PCCERT_CONTEXT,
    ) -> PCCERT_CONTEXT;
}
extern "C" {
    pub fn CertFindCertificateInStore(
        hCertStore: HCERTSTORE,
        dwCertEncodingType: DWORD,
        dwFindFlags: DWORD,
        dwFindType: DWORD,
        pvFindPara: *const ::std::os::raw::c_void,
        pPrevCertContext: PCCERT_CONTEXT,
    ) -> PCCERT_CONTEXT;
}
extern "C" {
    pub fn CertGetIssuerCertificateFromStore(
        hCertStore: HCERTSTORE,
        pSubjectContext: PCCERT_CONTEXT,
        pPrevIssuerContext: PCCERT_CONTEXT,
        pdwFlags: *mut DWORD,
    ) -> PCCERT_CONTEXT;
}
extern "C" {
    pub fn CertVerifySubjectCertificateContext(
        pSubject: PCCERT_CONTEXT,
        pIssuer: PCCERT_CONTEXT,
        pdwFlags: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CertDuplicateCertificateContext(pCertContext: PCCERT_CONTEXT) -> PCCERT_CONTEXT;
}
extern "C" {
    pub fn CertCreateCertificateContext(
        dwCertEncodingType: DWORD,
        pbCertEncoded: *const BYTE,
        cbCertEncoded: DWORD,
    ) -> PCCERT_CONTEXT;
}
extern "C" {
    pub fn CertFreeCertificateContext(pCertContext: PCCERT_CONTEXT) -> BOOL;
}
extern "C" {
    pub fn CertSetCertificateContextProperty(
        pCertContext: PCCERT_CONTEXT,
        dwPropId: DWORD,
        dwFlags: DWORD,
        pvData: *const ::std::os::raw::c_void,
    ) -> BOOL;
}
extern "C" {
    pub fn CertGetCertificateContextProperty(
        pCertContext: PCCERT_CONTEXT,
        dwPropId: DWORD,
        pvData: *mut ::std::os::raw::c_void,
        pcbData: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CertEnumCertificateContextProperties(
        pCertContext: PCCERT_CONTEXT,
        dwPropId: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn CertCreateCTLEntryFromCertificateContextProperties(
        pCertContext: PCCERT_CONTEXT,
        cOptAttr: DWORD,
        rgOptAttr: PCRYPT_ATTRIBUTE,
        dwFlags: DWORD,
        pvReserved: *mut ::std::os::raw::c_void,
        pCtlEntry: PCTL_ENTRY,
        pcbCtlEntry: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CertSetCertificateContextPropertiesFromCTLEntry(
        pCertContext: PCCERT_CONTEXT,
        pCtlEntry: PCTL_ENTRY,
        dwFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CertGetCRLFromStore(
        hCertStore: HCERTSTORE,
        pIssuerContext: PCCERT_CONTEXT,
        pPrevCrlContext: PCCRL_CONTEXT,
        pdwFlags: *mut DWORD,
    ) -> PCCRL_CONTEXT;
}
extern "C" {
    pub fn CertEnumCRLsInStore(
        hCertStore: HCERTSTORE,
        pPrevCrlContext: PCCRL_CONTEXT,
    ) -> PCCRL_CONTEXT;
}
extern "C" {
    pub fn CertFindCRLInStore(
        hCertStore: HCERTSTORE,
        dwCertEncodingType: DWORD,
        dwFindFlags: DWORD,
        dwFindType: DWORD,
        pvFindPara: *const ::std::os::raw::c_void,
        pPrevCrlContext: PCCRL_CONTEXT,
    ) -> PCCRL_CONTEXT;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRL_FIND_ISSUED_FOR_PARA {
    pub pSubjectCert: PCCERT_CONTEXT,
    pub pIssuerCert: PCCERT_CONTEXT,
}
#[test]
fn bindgen_test_layout__CRL_FIND_ISSUED_FOR_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CRL_FIND_ISSUED_FOR_PARA>(),
        16usize,
        concat!("Size of: ", stringify!(_CRL_FIND_ISSUED_FOR_PARA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRL_FIND_ISSUED_FOR_PARA>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRL_FIND_ISSUED_FOR_PARA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRL_FIND_ISSUED_FOR_PARA>())).pSubjectCert as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_FIND_ISSUED_FOR_PARA),
            "::",
            stringify!(pSubjectCert)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRL_FIND_ISSUED_FOR_PARA>())).pIssuerCert as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_FIND_ISSUED_FOR_PARA),
            "::",
            stringify!(pIssuerCert)
        )
    );
}
pub type CRL_FIND_ISSUED_FOR_PARA = _CRL_FIND_ISSUED_FOR_PARA;
pub type PCRL_FIND_ISSUED_FOR_PARA = *mut _CRL_FIND_ISSUED_FOR_PARA;
extern "C" {
    pub fn CertDuplicateCRLContext(pCrlContext: PCCRL_CONTEXT) -> PCCRL_CONTEXT;
}
extern "C" {
    pub fn CertCreateCRLContext(
        dwCertEncodingType: DWORD,
        pbCrlEncoded: *const BYTE,
        cbCrlEncoded: DWORD,
    ) -> PCCRL_CONTEXT;
}
extern "C" {
    pub fn CertFreeCRLContext(pCrlContext: PCCRL_CONTEXT) -> BOOL;
}
extern "C" {
    pub fn CertSetCRLContextProperty(
        pCrlContext: PCCRL_CONTEXT,
        dwPropId: DWORD,
        dwFlags: DWORD,
        pvData: *const ::std::os::raw::c_void,
    ) -> BOOL;
}
extern "C" {
    pub fn CertGetCRLContextProperty(
        pCrlContext: PCCRL_CONTEXT,
        dwPropId: DWORD,
        pvData: *mut ::std::os::raw::c_void,
        pcbData: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CertEnumCRLContextProperties(pCrlContext: PCCRL_CONTEXT, dwPropId: DWORD) -> DWORD;
}
extern "C" {
    pub fn CertFindCertificateInCRL(
        pCert: PCCERT_CONTEXT,
        pCrlContext: PCCRL_CONTEXT,
        dwFlags: DWORD,
        pvReserved: *mut ::std::os::raw::c_void,
        ppCrlEntry: *mut PCRL_ENTRY,
    ) -> BOOL;
}
extern "C" {
    pub fn CertIsValidCRLForCertificate(
        pCert: PCCERT_CONTEXT,
        pCrl: PCCRL_CONTEXT,
        dwFlags: DWORD,
        pvReserved: *mut ::std::os::raw::c_void,
    ) -> BOOL;
}
extern "C" {
    pub fn CertAddEncodedCertificateToStore(
        hCertStore: HCERTSTORE,
        dwCertEncodingType: DWORD,
        pbCertEncoded: *const BYTE,
        cbCertEncoded: DWORD,
        dwAddDisposition: DWORD,
        ppCertContext: *mut PCCERT_CONTEXT,
    ) -> BOOL;
}
extern "C" {
    pub fn CertAddCertificateContextToStore(
        hCertStore: HCERTSTORE,
        pCertContext: PCCERT_CONTEXT,
        dwAddDisposition: DWORD,
        ppStoreContext: *mut PCCERT_CONTEXT,
    ) -> BOOL;
}
extern "C" {
    pub fn CertAddSerializedElementToStore(
        hCertStore: HCERTSTORE,
        pbElement: *const BYTE,
        cbElement: DWORD,
        dwAddDisposition: DWORD,
        dwFlags: DWORD,
        dwContextTypeFlags: DWORD,
        pdwContextType: *mut DWORD,
        ppvContext: *mut *const ::std::os::raw::c_void,
    ) -> BOOL;
}
extern "C" {
    pub fn CertDeleteCertificateFromStore(pCertContext: PCCERT_CONTEXT) -> BOOL;
}
extern "C" {
    pub fn CertAddEncodedCRLToStore(
        hCertStore: HCERTSTORE,
        dwCertEncodingType: DWORD,
        pbCrlEncoded: *const BYTE,
        cbCrlEncoded: DWORD,
        dwAddDisposition: DWORD,
        ppCrlContext: *mut PCCRL_CONTEXT,
    ) -> BOOL;
}
extern "C" {
    pub fn CertAddCRLContextToStore(
        hCertStore: HCERTSTORE,
        pCrlContext: PCCRL_CONTEXT,
        dwAddDisposition: DWORD,
        ppStoreContext: *mut PCCRL_CONTEXT,
    ) -> BOOL;
}
extern "C" {
    pub fn CertDeleteCRLFromStore(pCrlContext: PCCRL_CONTEXT) -> BOOL;
}
extern "C" {
    pub fn CertSerializeCertificateStoreElement(
        pCertContext: PCCERT_CONTEXT,
        dwFlags: DWORD,
        pbElement: *mut BYTE,
        pcbElement: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CertSerializeCRLStoreElement(
        pCrlContext: PCCRL_CONTEXT,
        dwFlags: DWORD,
        pbElement: *mut BYTE,
        pcbElement: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CertDuplicateCTLContext(pCtlContext: PCCTL_CONTEXT) -> PCCTL_CONTEXT;
}
extern "C" {
    pub fn CertCreateCTLContext(
        dwMsgAndCertEncodingType: DWORD,
        pbCtlEncoded: *const BYTE,
        cbCtlEncoded: DWORD,
    ) -> PCCTL_CONTEXT;
}
extern "C" {
    pub fn CertFreeCTLContext(pCtlContext: PCCTL_CONTEXT) -> BOOL;
}
extern "C" {
    pub fn CertSetCTLContextProperty(
        pCtlContext: PCCTL_CONTEXT,
        dwPropId: DWORD,
        dwFlags: DWORD,
        pvData: *const ::std::os::raw::c_void,
    ) -> BOOL;
}
extern "C" {
    pub fn CertGetCTLContextProperty(
        pCtlContext: PCCTL_CONTEXT,
        dwPropId: DWORD,
        pvData: *mut ::std::os::raw::c_void,
        pcbData: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CertEnumCTLContextProperties(pCtlContext: PCCTL_CONTEXT, dwPropId: DWORD) -> DWORD;
}
extern "C" {
    pub fn CertEnumCTLsInStore(
        hCertStore: HCERTSTORE,
        pPrevCtlContext: PCCTL_CONTEXT,
    ) -> PCCTL_CONTEXT;
}
extern "C" {
    pub fn CertFindSubjectInCTL(
        dwEncodingType: DWORD,
        dwSubjectType: DWORD,
        pvSubject: *mut ::std::os::raw::c_void,
        pCtlContext: PCCTL_CONTEXT,
        dwFlags: DWORD,
    ) -> PCTL_ENTRY;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CTL_ANY_SUBJECT_INFO {
    pub SubjectAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub SubjectIdentifier: CRYPT_DATA_BLOB,
}
#[test]
fn bindgen_test_layout__CTL_ANY_SUBJECT_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CTL_ANY_SUBJECT_INFO>(),
        40usize,
        concat!("Size of: ", stringify!(_CTL_ANY_SUBJECT_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CTL_ANY_SUBJECT_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CTL_ANY_SUBJECT_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CTL_ANY_SUBJECT_INFO>())).SubjectAlgorithm as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_ANY_SUBJECT_INFO),
            "::",
            stringify!(SubjectAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CTL_ANY_SUBJECT_INFO>())).SubjectIdentifier as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_ANY_SUBJECT_INFO),
            "::",
            stringify!(SubjectIdentifier)
        )
    );
}
pub type CTL_ANY_SUBJECT_INFO = _CTL_ANY_SUBJECT_INFO;
pub type PCTL_ANY_SUBJECT_INFO = *mut _CTL_ANY_SUBJECT_INFO;
extern "C" {
    pub fn CertFindCTLInStore(
        hCertStore: HCERTSTORE,
        dwMsgAndCertEncodingType: DWORD,
        dwFindFlags: DWORD,
        dwFindType: DWORD,
        pvFindPara: *const ::std::os::raw::c_void,
        pPrevCtlContext: PCCTL_CONTEXT,
    ) -> PCCTL_CONTEXT;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CTL_FIND_USAGE_PARA {
    pub cbSize: DWORD,
    pub SubjectUsage: CTL_USAGE,
    pub ListIdentifier: CRYPT_DATA_BLOB,
    pub pSigner: PCERT_INFO,
}
#[test]
fn bindgen_test_layout__CTL_FIND_USAGE_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CTL_FIND_USAGE_PARA>(),
        48usize,
        concat!("Size of: ", stringify!(_CTL_FIND_USAGE_PARA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CTL_FIND_USAGE_PARA>(),
        8usize,
        concat!("Alignment of ", stringify!(_CTL_FIND_USAGE_PARA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CTL_FIND_USAGE_PARA>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_FIND_USAGE_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CTL_FIND_USAGE_PARA>())).SubjectUsage as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_FIND_USAGE_PARA),
            "::",
            stringify!(SubjectUsage)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CTL_FIND_USAGE_PARA>())).ListIdentifier as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_FIND_USAGE_PARA),
            "::",
            stringify!(ListIdentifier)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CTL_FIND_USAGE_PARA>())).pSigner as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_FIND_USAGE_PARA),
            "::",
            stringify!(pSigner)
        )
    );
}
pub type CTL_FIND_USAGE_PARA = _CTL_FIND_USAGE_PARA;
pub type PCTL_FIND_USAGE_PARA = *mut _CTL_FIND_USAGE_PARA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CTL_FIND_SUBJECT_PARA {
    pub cbSize: DWORD,
    pub pUsagePara: PCTL_FIND_USAGE_PARA,
    pub dwSubjectType: DWORD,
    pub pvSubject: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout__CTL_FIND_SUBJECT_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CTL_FIND_SUBJECT_PARA>(),
        32usize,
        concat!("Size of: ", stringify!(_CTL_FIND_SUBJECT_PARA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CTL_FIND_SUBJECT_PARA>(),
        8usize,
        concat!("Alignment of ", stringify!(_CTL_FIND_SUBJECT_PARA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CTL_FIND_SUBJECT_PARA>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_FIND_SUBJECT_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CTL_FIND_SUBJECT_PARA>())).pUsagePara as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_FIND_SUBJECT_PARA),
            "::",
            stringify!(pUsagePara)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CTL_FIND_SUBJECT_PARA>())).dwSubjectType as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_FIND_SUBJECT_PARA),
            "::",
            stringify!(dwSubjectType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CTL_FIND_SUBJECT_PARA>())).pvSubject as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_FIND_SUBJECT_PARA),
            "::",
            stringify!(pvSubject)
        )
    );
}
pub type CTL_FIND_SUBJECT_PARA = _CTL_FIND_SUBJECT_PARA;
pub type PCTL_FIND_SUBJECT_PARA = *mut _CTL_FIND_SUBJECT_PARA;
extern "C" {
    pub fn CertAddEncodedCTLToStore(
        hCertStore: HCERTSTORE,
        dwMsgAndCertEncodingType: DWORD,
        pbCtlEncoded: *const BYTE,
        cbCtlEncoded: DWORD,
        dwAddDisposition: DWORD,
        ppCtlContext: *mut PCCTL_CONTEXT,
    ) -> BOOL;
}
extern "C" {
    pub fn CertAddCTLContextToStore(
        hCertStore: HCERTSTORE,
        pCtlContext: PCCTL_CONTEXT,
        dwAddDisposition: DWORD,
        ppStoreContext: *mut PCCTL_CONTEXT,
    ) -> BOOL;
}
extern "C" {
    pub fn CertSerializeCTLStoreElement(
        pCtlContext: PCCTL_CONTEXT,
        dwFlags: DWORD,
        pbElement: *mut BYTE,
        pcbElement: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CertDeleteCTLFromStore(pCtlContext: PCCTL_CONTEXT) -> BOOL;
}
extern "C" {
    pub fn CertAddCertificateLinkToStore(
        hCertStore: HCERTSTORE,
        pCertContext: PCCERT_CONTEXT,
        dwAddDisposition: DWORD,
        ppStoreContext: *mut PCCERT_CONTEXT,
    ) -> BOOL;
}
extern "C" {
    pub fn CertAddCRLLinkToStore(
        hCertStore: HCERTSTORE,
        pCrlContext: PCCRL_CONTEXT,
        dwAddDisposition: DWORD,
        ppStoreContext: *mut PCCRL_CONTEXT,
    ) -> BOOL;
}
extern "C" {
    pub fn CertAddCTLLinkToStore(
        hCertStore: HCERTSTORE,
        pCtlContext: PCCTL_CONTEXT,
        dwAddDisposition: DWORD,
        ppStoreContext: *mut PCCTL_CONTEXT,
    ) -> BOOL;
}
extern "C" {
    pub fn CertAddStoreToCollection(
        hCollectionStore: HCERTSTORE,
        hSiblingStore: HCERTSTORE,
        dwUpdateFlags: DWORD,
        dwPriority: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CertRemoveStoreFromCollection(hCollectionStore: HCERTSTORE, hSiblingStore: HCERTSTORE);
}
extern "C" {
    pub fn CertControlStore(
        hCertStore: HCERTSTORE,
        dwFlags: DWORD,
        dwCtrlType: DWORD,
        pvCtrlPara: *const ::std::os::raw::c_void,
    ) -> BOOL;
}
extern "C" {
    pub fn CertSetStoreProperty(
        hCertStore: HCERTSTORE,
        dwPropId: DWORD,
        dwFlags: DWORD,
        pvData: *const ::std::os::raw::c_void,
    ) -> BOOL;
}
extern "C" {
    pub fn CertGetStoreProperty(
        hCertStore: HCERTSTORE,
        dwPropId: DWORD,
        pvData: *mut ::std::os::raw::c_void,
        pcbData: *mut DWORD,
    ) -> BOOL;
}
pub type PFN_CERT_CREATE_CONTEXT_SORT_FUNC = ::std::option::Option<
    unsafe extern "C" fn(
        cbTotalEncoded: DWORD,
        cbRemainEncoded: DWORD,
        cEntry: DWORD,
        pvSort: *mut ::std::os::raw::c_void,
    ) -> BOOL,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_CREATE_CONTEXT_PARA {
    pub cbSize: DWORD,
    pub pfnFree: PFN_CRYPT_FREE,
    pub pvFree: *mut ::std::os::raw::c_void,
    pub pfnSort: PFN_CERT_CREATE_CONTEXT_SORT_FUNC,
    pub pvSort: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout__CERT_CREATE_CONTEXT_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_CREATE_CONTEXT_PARA>(),
        40usize,
        concat!("Size of: ", stringify!(_CERT_CREATE_CONTEXT_PARA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_CREATE_CONTEXT_PARA>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_CREATE_CONTEXT_PARA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CREATE_CONTEXT_PARA>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CREATE_CONTEXT_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CREATE_CONTEXT_PARA>())).pfnFree as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CREATE_CONTEXT_PARA),
            "::",
            stringify!(pfnFree)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CREATE_CONTEXT_PARA>())).pvFree as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CREATE_CONTEXT_PARA),
            "::",
            stringify!(pvFree)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CREATE_CONTEXT_PARA>())).pfnSort as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CREATE_CONTEXT_PARA),
            "::",
            stringify!(pfnSort)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CREATE_CONTEXT_PARA>())).pvSort as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CREATE_CONTEXT_PARA),
            "::",
            stringify!(pvSort)
        )
    );
}
pub type CERT_CREATE_CONTEXT_PARA = _CERT_CREATE_CONTEXT_PARA;
pub type PCERT_CREATE_CONTEXT_PARA = *mut _CERT_CREATE_CONTEXT_PARA;
extern "C" {
    pub fn CertCreateContext(
        dwContextType: DWORD,
        dwEncodingType: DWORD,
        pbEncoded: *const BYTE,
        cbEncoded: DWORD,
        dwFlags: DWORD,
        pCreatePara: PCERT_CREATE_CONTEXT_PARA,
    ) -> *const ::std::os::raw::c_void;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_SYSTEM_STORE_INFO {
    pub cbSize: DWORD,
}
#[test]
fn bindgen_test_layout__CERT_SYSTEM_STORE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_SYSTEM_STORE_INFO>(),
        4usize,
        concat!("Size of: ", stringify!(_CERT_SYSTEM_STORE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_SYSTEM_STORE_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_CERT_SYSTEM_STORE_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_SYSTEM_STORE_INFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SYSTEM_STORE_INFO),
            "::",
            stringify!(cbSize)
        )
    );
}
pub type CERT_SYSTEM_STORE_INFO = _CERT_SYSTEM_STORE_INFO;
pub type PCERT_SYSTEM_STORE_INFO = *mut _CERT_SYSTEM_STORE_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_PHYSICAL_STORE_INFO {
    pub cbSize: DWORD,
    pub pszOpenStoreProvider: LPSTR,
    pub dwOpenEncodingType: DWORD,
    pub dwOpenFlags: DWORD,
    pub OpenParameters: CRYPT_DATA_BLOB,
    pub dwFlags: DWORD,
    pub dwPriority: DWORD,
}
#[test]
fn bindgen_test_layout__CERT_PHYSICAL_STORE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_PHYSICAL_STORE_INFO>(),
        48usize,
        concat!("Size of: ", stringify!(_CERT_PHYSICAL_STORE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_PHYSICAL_STORE_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_PHYSICAL_STORE_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_PHYSICAL_STORE_INFO>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_PHYSICAL_STORE_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_PHYSICAL_STORE_INFO>())).pszOpenStoreProvider as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_PHYSICAL_STORE_INFO),
            "::",
            stringify!(pszOpenStoreProvider)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_PHYSICAL_STORE_INFO>())).dwOpenEncodingType as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_PHYSICAL_STORE_INFO),
            "::",
            stringify!(dwOpenEncodingType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_PHYSICAL_STORE_INFO>())).dwOpenFlags as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_PHYSICAL_STORE_INFO),
            "::",
            stringify!(dwOpenFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_PHYSICAL_STORE_INFO>())).OpenParameters as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_PHYSICAL_STORE_INFO),
            "::",
            stringify!(OpenParameters)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_PHYSICAL_STORE_INFO>())).dwFlags as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_PHYSICAL_STORE_INFO),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_PHYSICAL_STORE_INFO>())).dwPriority as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_PHYSICAL_STORE_INFO),
            "::",
            stringify!(dwPriority)
        )
    );
}
pub type CERT_PHYSICAL_STORE_INFO = _CERT_PHYSICAL_STORE_INFO;
pub type PCERT_PHYSICAL_STORE_INFO = *mut _CERT_PHYSICAL_STORE_INFO;
extern "C" {
    pub fn CertRegisterSystemStore(
        pvSystemStore: *const ::std::os::raw::c_void,
        dwFlags: DWORD,
        pStoreInfo: PCERT_SYSTEM_STORE_INFO,
        pvReserved: *mut ::std::os::raw::c_void,
    ) -> BOOL;
}
extern "C" {
    pub fn CertRegisterPhysicalStore(
        pvSystemStore: *const ::std::os::raw::c_void,
        dwFlags: DWORD,
        pwszStoreName: LPCWSTR,
        pStoreInfo: PCERT_PHYSICAL_STORE_INFO,
        pvReserved: *mut ::std::os::raw::c_void,
    ) -> BOOL;
}
extern "C" {
    pub fn CertUnregisterSystemStore(
        pvSystemStore: *const ::std::os::raw::c_void,
        dwFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CertUnregisterPhysicalStore(
        pvSystemStore: *const ::std::os::raw::c_void,
        dwFlags: DWORD,
        pwszStoreName: LPCWSTR,
    ) -> BOOL;
}
pub type PFN_CERT_ENUM_SYSTEM_STORE_LOCATION = ::std::option::Option<
    unsafe extern "C" fn(
        pwszStoreLocation: LPCWSTR,
        dwFlags: DWORD,
        pvReserved: *mut ::std::os::raw::c_void,
        pvArg: *mut ::std::os::raw::c_void,
    ) -> BOOL,
>;
pub type PFN_CERT_ENUM_SYSTEM_STORE = ::std::option::Option<
    unsafe extern "C" fn(
        pvSystemStore: *const ::std::os::raw::c_void,
        dwFlags: DWORD,
        pStoreInfo: PCERT_SYSTEM_STORE_INFO,
        pvReserved: *mut ::std::os::raw::c_void,
        pvArg: *mut ::std::os::raw::c_void,
    ) -> BOOL,
>;
pub type PFN_CERT_ENUM_PHYSICAL_STORE = ::std::option::Option<
    unsafe extern "C" fn(
        pvSystemStore: *const ::std::os::raw::c_void,
        dwFlags: DWORD,
        pwszStoreName: LPCWSTR,
        pStoreInfo: PCERT_PHYSICAL_STORE_INFO,
        pvReserved: *mut ::std::os::raw::c_void,
        pvArg: *mut ::std::os::raw::c_void,
    ) -> BOOL,
>;
extern "C" {
    pub fn CertEnumSystemStoreLocation(
        dwFlags: DWORD,
        pvArg: *mut ::std::os::raw::c_void,
        pfnEnum: PFN_CERT_ENUM_SYSTEM_STORE_LOCATION,
    ) -> BOOL;
}
extern "C" {
    pub fn CertEnumSystemStore(
        dwFlags: DWORD,
        pvSystemStoreLocationPara: *mut ::std::os::raw::c_void,
        pvArg: *mut ::std::os::raw::c_void,
        pfnEnum: PFN_CERT_ENUM_SYSTEM_STORE,
    ) -> BOOL;
}
extern "C" {
    pub fn CertEnumPhysicalStore(
        pvSystemStore: *const ::std::os::raw::c_void,
        dwFlags: DWORD,
        pvArg: *mut ::std::os::raw::c_void,
        pfnEnum: PFN_CERT_ENUM_PHYSICAL_STORE,
    ) -> BOOL;
}
extern "C" {
    pub fn CertGetEnhancedKeyUsage(
        pCertContext: PCCERT_CONTEXT,
        dwFlags: DWORD,
        pUsage: PCERT_ENHKEY_USAGE,
        pcbUsage: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CertSetEnhancedKeyUsage(
        pCertContext: PCCERT_CONTEXT,
        pUsage: PCERT_ENHKEY_USAGE,
    ) -> BOOL;
}
extern "C" {
    pub fn CertAddEnhancedKeyUsageIdentifier(
        pCertContext: PCCERT_CONTEXT,
        pszUsageIdentifier: LPCSTR,
    ) -> BOOL;
}
extern "C" {
    pub fn CertRemoveEnhancedKeyUsageIdentifier(
        pCertContext: PCCERT_CONTEXT,
        pszUsageIdentifier: LPCSTR,
    ) -> BOOL;
}
extern "C" {
    pub fn CertGetValidUsages(
        cCerts: DWORD,
        rghCerts: *mut PCCERT_CONTEXT,
        cNumOIDs: *mut ::std::os::raw::c_int,
        rghOIDs: *mut LPSTR,
        pcbOIDs: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptMsgGetAndVerifySigner(
        hCryptMsg: HCRYPTMSG,
        cSignerStore: DWORD,
        rghSignerStore: *mut HCERTSTORE,
        dwFlags: DWORD,
        ppSigner: *mut PCCERT_CONTEXT,
        pdwSignerIndex: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptMsgSignCTL(
        dwMsgEncodingType: DWORD,
        pbCtlContent: *mut BYTE,
        cbCtlContent: DWORD,
        pSignInfo: PCMSG_SIGNED_ENCODE_INFO,
        dwFlags: DWORD,
        pbEncoded: *mut BYTE,
        pcbEncoded: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptMsgEncodeAndSignCTL(
        dwMsgEncodingType: DWORD,
        pCtlInfo: PCTL_INFO,
        pSignInfo: PCMSG_SIGNED_ENCODE_INFO,
        dwFlags: DWORD,
        pbEncoded: *mut BYTE,
        pcbEncoded: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CertFindSubjectInSortedCTL(
        pSubjectIdentifier: PCRYPT_DATA_BLOB,
        pCtlContext: PCCTL_CONTEXT,
        dwFlags: DWORD,
        pvReserved: *mut ::std::os::raw::c_void,
        pEncodedAttributes: PCRYPT_DER_BLOB,
    ) -> BOOL;
}
extern "C" {
    pub fn CertEnumSubjectInSortedCTL(
        pCtlContext: PCCTL_CONTEXT,
        ppvNextSubject: *mut *mut ::std::os::raw::c_void,
        pSubjectIdentifier: PCRYPT_DER_BLOB,
        pEncodedAttributes: PCRYPT_DER_BLOB,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CTL_VERIFY_USAGE_PARA {
    pub cbSize: DWORD,
    pub ListIdentifier: CRYPT_DATA_BLOB,
    pub cCtlStore: DWORD,
    pub rghCtlStore: *mut HCERTSTORE,
    pub cSignerStore: DWORD,
    pub rghSignerStore: *mut HCERTSTORE,
}
#[test]
fn bindgen_test_layout__CTL_VERIFY_USAGE_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CTL_VERIFY_USAGE_PARA>(),
        56usize,
        concat!("Size of: ", stringify!(_CTL_VERIFY_USAGE_PARA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CTL_VERIFY_USAGE_PARA>(),
        8usize,
        concat!("Alignment of ", stringify!(_CTL_VERIFY_USAGE_PARA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CTL_VERIFY_USAGE_PARA>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_VERIFY_USAGE_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CTL_VERIFY_USAGE_PARA>())).ListIdentifier as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_VERIFY_USAGE_PARA),
            "::",
            stringify!(ListIdentifier)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CTL_VERIFY_USAGE_PARA>())).cCtlStore as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_VERIFY_USAGE_PARA),
            "::",
            stringify!(cCtlStore)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CTL_VERIFY_USAGE_PARA>())).rghCtlStore as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_VERIFY_USAGE_PARA),
            "::",
            stringify!(rghCtlStore)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CTL_VERIFY_USAGE_PARA>())).cSignerStore as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_VERIFY_USAGE_PARA),
            "::",
            stringify!(cSignerStore)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CTL_VERIFY_USAGE_PARA>())).rghSignerStore as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_VERIFY_USAGE_PARA),
            "::",
            stringify!(rghSignerStore)
        )
    );
}
pub type CTL_VERIFY_USAGE_PARA = _CTL_VERIFY_USAGE_PARA;
pub type PCTL_VERIFY_USAGE_PARA = *mut _CTL_VERIFY_USAGE_PARA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CTL_VERIFY_USAGE_STATUS {
    pub cbSize: DWORD,
    pub dwError: DWORD,
    pub dwFlags: DWORD,
    pub ppCtl: *mut PCCTL_CONTEXT,
    pub dwCtlEntryIndex: DWORD,
    pub ppSigner: *mut PCCERT_CONTEXT,
    pub dwSignerIndex: DWORD,
}
#[test]
fn bindgen_test_layout__CTL_VERIFY_USAGE_STATUS() {
    assert_eq!(
        ::std::mem::size_of::<_CTL_VERIFY_USAGE_STATUS>(),
        48usize,
        concat!("Size of: ", stringify!(_CTL_VERIFY_USAGE_STATUS))
    );
    assert_eq!(
        ::std::mem::align_of::<_CTL_VERIFY_USAGE_STATUS>(),
        8usize,
        concat!("Alignment of ", stringify!(_CTL_VERIFY_USAGE_STATUS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CTL_VERIFY_USAGE_STATUS>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_VERIFY_USAGE_STATUS),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CTL_VERIFY_USAGE_STATUS>())).dwError as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_VERIFY_USAGE_STATUS),
            "::",
            stringify!(dwError)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CTL_VERIFY_USAGE_STATUS>())).dwFlags as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_VERIFY_USAGE_STATUS),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CTL_VERIFY_USAGE_STATUS>())).ppCtl as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_VERIFY_USAGE_STATUS),
            "::",
            stringify!(ppCtl)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CTL_VERIFY_USAGE_STATUS>())).dwCtlEntryIndex as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_VERIFY_USAGE_STATUS),
            "::",
            stringify!(dwCtlEntryIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CTL_VERIFY_USAGE_STATUS>())).ppSigner as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_VERIFY_USAGE_STATUS),
            "::",
            stringify!(ppSigner)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CTL_VERIFY_USAGE_STATUS>())).dwSignerIndex as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_VERIFY_USAGE_STATUS),
            "::",
            stringify!(dwSignerIndex)
        )
    );
}
pub type CTL_VERIFY_USAGE_STATUS = _CTL_VERIFY_USAGE_STATUS;
pub type PCTL_VERIFY_USAGE_STATUS = *mut _CTL_VERIFY_USAGE_STATUS;
extern "C" {
    pub fn CertVerifyCTLUsage(
        dwEncodingType: DWORD,
        dwSubjectType: DWORD,
        pvSubject: *mut ::std::os::raw::c_void,
        pSubjectUsage: PCTL_USAGE,
        dwFlags: DWORD,
        pVerifyUsagePara: PCTL_VERIFY_USAGE_PARA,
        pVerifyUsageStatus: PCTL_VERIFY_USAGE_STATUS,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_REVOCATION_CRL_INFO {
    pub cbSize: DWORD,
    pub pBaseCrlContext: PCCRL_CONTEXT,
    pub pDeltaCrlContext: PCCRL_CONTEXT,
    pub pCrlEntry: PCRL_ENTRY,
    pub fDeltaCrlEntry: BOOL,
}
#[test]
fn bindgen_test_layout__CERT_REVOCATION_CRL_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_REVOCATION_CRL_INFO>(),
        40usize,
        concat!("Size of: ", stringify!(_CERT_REVOCATION_CRL_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_REVOCATION_CRL_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_REVOCATION_CRL_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_REVOCATION_CRL_INFO>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REVOCATION_CRL_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_REVOCATION_CRL_INFO>())).pBaseCrlContext as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REVOCATION_CRL_INFO),
            "::",
            stringify!(pBaseCrlContext)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_REVOCATION_CRL_INFO>())).pDeltaCrlContext as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REVOCATION_CRL_INFO),
            "::",
            stringify!(pDeltaCrlContext)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_REVOCATION_CRL_INFO>())).pCrlEntry as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REVOCATION_CRL_INFO),
            "::",
            stringify!(pCrlEntry)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_REVOCATION_CRL_INFO>())).fDeltaCrlEntry as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REVOCATION_CRL_INFO),
            "::",
            stringify!(fDeltaCrlEntry)
        )
    );
}
pub type CERT_REVOCATION_CRL_INFO = _CERT_REVOCATION_CRL_INFO;
pub type PCERT_REVOCATION_CRL_INFO = *mut _CERT_REVOCATION_CRL_INFO;
pub type CERT_REVOCATION_CHAIN_PARA = _CERT_REVOCATION_CHAIN_PARA;
pub type PCERT_REVOCATION_CHAIN_PARA = *mut _CERT_REVOCATION_CHAIN_PARA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_REVOCATION_PARA {
    pub cbSize: DWORD,
    pub pIssuerCert: PCCERT_CONTEXT,
    pub cCertStore: DWORD,
    pub rgCertStore: *mut HCERTSTORE,
    pub hCrlStore: HCERTSTORE,
    pub pftTimeToUse: LPFILETIME,
}
#[test]
fn bindgen_test_layout__CERT_REVOCATION_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_REVOCATION_PARA>(),
        48usize,
        concat!("Size of: ", stringify!(_CERT_REVOCATION_PARA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_REVOCATION_PARA>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_REVOCATION_PARA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_REVOCATION_PARA>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REVOCATION_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_REVOCATION_PARA>())).pIssuerCert as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REVOCATION_PARA),
            "::",
            stringify!(pIssuerCert)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_REVOCATION_PARA>())).cCertStore as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REVOCATION_PARA),
            "::",
            stringify!(cCertStore)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_REVOCATION_PARA>())).rgCertStore as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REVOCATION_PARA),
            "::",
            stringify!(rgCertStore)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_REVOCATION_PARA>())).hCrlStore as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REVOCATION_PARA),
            "::",
            stringify!(hCrlStore)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_REVOCATION_PARA>())).pftTimeToUse as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REVOCATION_PARA),
            "::",
            stringify!(pftTimeToUse)
        )
    );
}
pub type CERT_REVOCATION_PARA = _CERT_REVOCATION_PARA;
pub type PCERT_REVOCATION_PARA = *mut _CERT_REVOCATION_PARA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_REVOCATION_STATUS {
    pub cbSize: DWORD,
    pub dwIndex: DWORD,
    pub dwError: DWORD,
    pub dwReason: DWORD,
    pub fHasFreshnessTime: BOOL,
    pub dwFreshnessTime: DWORD,
}
#[test]
fn bindgen_test_layout__CERT_REVOCATION_STATUS() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_REVOCATION_STATUS>(),
        24usize,
        concat!("Size of: ", stringify!(_CERT_REVOCATION_STATUS))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_REVOCATION_STATUS>(),
        4usize,
        concat!("Alignment of ", stringify!(_CERT_REVOCATION_STATUS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_REVOCATION_STATUS>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REVOCATION_STATUS),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_REVOCATION_STATUS>())).dwIndex as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REVOCATION_STATUS),
            "::",
            stringify!(dwIndex)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_REVOCATION_STATUS>())).dwError as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REVOCATION_STATUS),
            "::",
            stringify!(dwError)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_REVOCATION_STATUS>())).dwReason as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REVOCATION_STATUS),
            "::",
            stringify!(dwReason)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_REVOCATION_STATUS>())).fHasFreshnessTime as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REVOCATION_STATUS),
            "::",
            stringify!(fHasFreshnessTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_REVOCATION_STATUS>())).dwFreshnessTime as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REVOCATION_STATUS),
            "::",
            stringify!(dwFreshnessTime)
        )
    );
}
pub type CERT_REVOCATION_STATUS = _CERT_REVOCATION_STATUS;
pub type PCERT_REVOCATION_STATUS = *mut _CERT_REVOCATION_STATUS;
extern "C" {
    pub fn CertVerifyRevocation(
        dwEncodingType: DWORD,
        dwRevType: DWORD,
        cContext: DWORD,
        rgpvContext: *mut PVOID,
        dwFlags: DWORD,
        pRevPara: PCERT_REVOCATION_PARA,
        pRevStatus: PCERT_REVOCATION_STATUS,
    ) -> BOOL;
}
extern "C" {
    pub fn CertCompareIntegerBlob(pInt1: PCRYPT_INTEGER_BLOB, pInt2: PCRYPT_INTEGER_BLOB) -> BOOL;
}
extern "C" {
    pub fn CertCompareCertificate(
        dwCertEncodingType: DWORD,
        pCertId1: PCERT_INFO,
        pCertId2: PCERT_INFO,
    ) -> BOOL;
}
extern "C" {
    pub fn CertCompareCertificateName(
        dwCertEncodingType: DWORD,
        pCertName1: PCERT_NAME_BLOB,
        pCertName2: PCERT_NAME_BLOB,
    ) -> BOOL;
}
extern "C" {
    pub fn CertIsRDNAttrsInCertificateName(
        dwCertEncodingType: DWORD,
        dwFlags: DWORD,
        pCertName: PCERT_NAME_BLOB,
        pRDN: PCERT_RDN,
    ) -> BOOL;
}
extern "C" {
    pub fn CertComparePublicKeyInfo(
        dwCertEncodingType: DWORD,
        pPublicKey1: PCERT_PUBLIC_KEY_INFO,
        pPublicKey2: PCERT_PUBLIC_KEY_INFO,
    ) -> BOOL;
}
extern "C" {
    pub fn CertGetPublicKeyLength(
        dwCertEncodingType: DWORD,
        pPublicKey: PCERT_PUBLIC_KEY_INFO,
    ) -> DWORD;
}
extern "C" {
    pub fn CryptVerifyCertificateSignature(
        hCryptProv: HCRYPTPROV_LEGACY,
        dwCertEncodingType: DWORD,
        pbEncoded: *const BYTE,
        cbEncoded: DWORD,
        pPublicKey: PCERT_PUBLIC_KEY_INFO,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptVerifyCertificateSignatureEx(
        hCryptProv: HCRYPTPROV_LEGACY,
        dwCertEncodingType: DWORD,
        dwSubjectType: DWORD,
        pvSubject: *mut ::std::os::raw::c_void,
        dwIssuerType: DWORD,
        pvIssuer: *mut ::std::os::raw::c_void,
        dwFlags: DWORD,
        pvExtra: *mut ::std::os::raw::c_void,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO {
    pub CertSignHashCNGAlgPropData: CRYPT_DATA_BLOB,
    pub CertIssuerPubKeyBitLengthPropData: CRYPT_DATA_BLOB,
}
#[test]
fn bindgen_test_layout__CRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO>(),
        32usize,
        concat!(
            "Size of: ",
            stringify!(_CRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO>()))
                .CertSignHashCNGAlgPropData as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO),
            "::",
            stringify!(CertSignHashCNGAlgPropData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO>()))
                .CertIssuerPubKeyBitLengthPropData as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO),
            "::",
            stringify!(CertIssuerPubKeyBitLengthPropData)
        )
    );
}
pub type CRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO =
    _CRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO;
pub type PCRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO =
    *mut _CRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_VERIFY_CERT_SIGN_WEAK_HASH_INFO {
    pub cCNGHashAlgid: DWORD,
    pub rgpwszCNGHashAlgid: *mut PCWSTR,
    pub dwWeakIndex: DWORD,
}
#[test]
fn bindgen_test_layout__CRYPT_VERIFY_CERT_SIGN_WEAK_HASH_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_VERIFY_CERT_SIGN_WEAK_HASH_INFO>(),
        24usize,
        concat!(
            "Size of: ",
            stringify!(_CRYPT_VERIFY_CERT_SIGN_WEAK_HASH_INFO)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_VERIFY_CERT_SIGN_WEAK_HASH_INFO>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CRYPT_VERIFY_CERT_SIGN_WEAK_HASH_INFO)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_VERIFY_CERT_SIGN_WEAK_HASH_INFO>())).cCNGHashAlgid
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_VERIFY_CERT_SIGN_WEAK_HASH_INFO),
            "::",
            stringify!(cCNGHashAlgid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_VERIFY_CERT_SIGN_WEAK_HASH_INFO>())).rgpwszCNGHashAlgid
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_VERIFY_CERT_SIGN_WEAK_HASH_INFO),
            "::",
            stringify!(rgpwszCNGHashAlgid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_VERIFY_CERT_SIGN_WEAK_HASH_INFO>())).dwWeakIndex
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_VERIFY_CERT_SIGN_WEAK_HASH_INFO),
            "::",
            stringify!(dwWeakIndex)
        )
    );
}
pub type CRYPT_VERIFY_CERT_SIGN_WEAK_HASH_INFO = _CRYPT_VERIFY_CERT_SIGN_WEAK_HASH_INFO;
pub type PCRYPT_VERIFY_CERT_SIGN_WEAK_HASH_INFO = *mut _CRYPT_VERIFY_CERT_SIGN_WEAK_HASH_INFO;
extern "C" {
    pub fn CertIsStrongHashToSign(
        pStrongSignPara: PCCERT_STRONG_SIGN_PARA,
        pwszCNGHashAlgid: LPCWSTR,
        pSigningCert: PCCERT_CONTEXT,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptHashToBeSigned(
        hCryptProv: HCRYPTPROV_LEGACY,
        dwCertEncodingType: DWORD,
        pbEncoded: *const BYTE,
        cbEncoded: DWORD,
        pbComputedHash: *mut BYTE,
        pcbComputedHash: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptHashCertificate(
        hCryptProv: HCRYPTPROV_LEGACY,
        Algid: ALG_ID,
        dwFlags: DWORD,
        pbEncoded: *const BYTE,
        cbEncoded: DWORD,
        pbComputedHash: *mut BYTE,
        pcbComputedHash: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptHashCertificate2(
        pwszCNGHashAlgid: LPCWSTR,
        dwFlags: DWORD,
        pvReserved: *mut ::std::os::raw::c_void,
        pbEncoded: *const BYTE,
        cbEncoded: DWORD,
        pbComputedHash: *mut BYTE,
        pcbComputedHash: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptSignCertificate(
        hCryptProvOrNCryptKey: HCRYPTPROV_OR_NCRYPT_KEY_HANDLE,
        dwKeySpec: DWORD,
        dwCertEncodingType: DWORD,
        pbEncodedToBeSigned: *const BYTE,
        cbEncodedToBeSigned: DWORD,
        pSignatureAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER,
        pvHashAuxInfo: *const ::std::os::raw::c_void,
        pbSignature: *mut BYTE,
        pcbSignature: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptSignAndEncodeCertificate(
        hCryptProvOrNCryptKey: HCRYPTPROV_OR_NCRYPT_KEY_HANDLE,
        dwKeySpec: DWORD,
        dwCertEncodingType: DWORD,
        lpszStructType: LPCSTR,
        pvStructInfo: *const ::std::os::raw::c_void,
        pSignatureAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER,
        pvHashAuxInfo: *const ::std::os::raw::c_void,
        pbEncoded: *mut BYTE,
        pcbEncoded: *mut DWORD,
    ) -> BOOL;
}
pub type PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC = ::std::option::Option<
    unsafe extern "C" fn(
        dwCertEncodingType: DWORD,
        pSignatureAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER,
        ppvDecodedSignPara: *mut *mut ::std::os::raw::c_void,
        ppwszCNGHashAlgid: *mut LPWSTR,
    ) -> BOOL,
>;
pub type PFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC = ::std::option::Option<
    unsafe extern "C" fn(
        hKey: NCRYPT_KEY_HANDLE,
        dwCertEncodingType: DWORD,
        pSignatureAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER,
        pvDecodedSignPara: *mut ::std::os::raw::c_void,
        pwszCNGPubKeyAlgid: LPCWSTR,
        pwszCNGHashAlgid: LPCWSTR,
        pbComputedHash: *mut BYTE,
        cbComputedHash: DWORD,
        pbSignature: *mut BYTE,
        pcbSignature: *mut DWORD,
    ) -> BOOL,
>;
pub type PFN_CRYPT_VERIFY_ENCODED_SIGNATURE_FUNC = ::std::option::Option<
    unsafe extern "C" fn(
        dwCertEncodingType: DWORD,
        pPubKeyInfo: PCERT_PUBLIC_KEY_INFO,
        pSignatureAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER,
        pvDecodedSignPara: *mut ::std::os::raw::c_void,
        pwszCNGPubKeyAlgid: LPCWSTR,
        pwszCNGHashAlgid: LPCWSTR,
        pbComputedHash: *mut BYTE,
        cbComputedHash: DWORD,
        pbSignature: *mut BYTE,
        cbSignature: DWORD,
    ) -> BOOL,
>;
extern "C" {
    pub fn CertVerifyTimeValidity(pTimeToVerify: LPFILETIME, pCertInfo: PCERT_INFO) -> LONG;
}
extern "C" {
    pub fn CertVerifyCRLTimeValidity(pTimeToVerify: LPFILETIME, pCrlInfo: PCRL_INFO) -> LONG;
}
extern "C" {
    pub fn CertVerifyValidityNesting(pSubjectInfo: PCERT_INFO, pIssuerInfo: PCERT_INFO) -> BOOL;
}
extern "C" {
    pub fn CertVerifyCRLRevocation(
        dwCertEncodingType: DWORD,
        pCertId: PCERT_INFO,
        cCrlInfo: DWORD,
        rgpCrlInfo: *mut PCRL_INFO,
    ) -> BOOL;
}
extern "C" {
    pub fn CertAlgIdToOID(dwAlgId: DWORD) -> LPCSTR;
}
extern "C" {
    pub fn CertOIDToAlgId(pszObjId: LPCSTR) -> DWORD;
}
extern "C" {
    pub fn CertFindExtension(
        pszObjId: LPCSTR,
        cExtensions: DWORD,
        rgExtensions: *mut CERT_EXTENSION,
    ) -> PCERT_EXTENSION;
}
extern "C" {
    pub fn CertFindAttribute(
        pszObjId: LPCSTR,
        cAttr: DWORD,
        rgAttr: *mut CRYPT_ATTRIBUTE,
    ) -> PCRYPT_ATTRIBUTE;
}
extern "C" {
    pub fn CertFindRDNAttr(pszObjId: LPCSTR, pName: PCERT_NAME_INFO) -> PCERT_RDN_ATTR;
}
extern "C" {
    pub fn CertGetIntendedKeyUsage(
        dwCertEncodingType: DWORD,
        pCertInfo: PCERT_INFO,
        pbKeyUsage: *mut BYTE,
        cbKeyUsage: DWORD,
    ) -> BOOL;
}
pub type HCRYPTDEFAULTCONTEXT = *mut ::std::os::raw::c_void;
extern "C" {
    pub fn CryptInstallDefaultContext(
        hCryptProv: HCRYPTPROV,
        dwDefaultType: DWORD,
        pvDefaultPara: *const ::std::os::raw::c_void,
        dwFlags: DWORD,
        pvReserved: *mut ::std::os::raw::c_void,
        phDefaultContext: *mut HCRYPTDEFAULTCONTEXT,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA {
    pub cOID: DWORD,
    pub rgpszOID: *mut LPSTR,
}
#[test]
fn bindgen_test_layout__CRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_CRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA>())).cOID as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA),
            "::",
            stringify!(cOID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA>())).rgpszOID as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA),
            "::",
            stringify!(rgpszOID)
        )
    );
}
pub type CRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA = _CRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA;
pub type PCRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA = *mut _CRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA;
extern "C" {
    pub fn CryptUninstallDefaultContext(
        hDefaultContext: HCRYPTDEFAULTCONTEXT,
        dwFlags: DWORD,
        pvReserved: *mut ::std::os::raw::c_void,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptExportPublicKeyInfo(
        hCryptProvOrNCryptKey: HCRYPTPROV_OR_NCRYPT_KEY_HANDLE,
        dwKeySpec: DWORD,
        dwCertEncodingType: DWORD,
        pInfo: PCERT_PUBLIC_KEY_INFO,
        pcbInfo: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptExportPublicKeyInfoEx(
        hCryptProvOrNCryptKey: HCRYPTPROV_OR_NCRYPT_KEY_HANDLE,
        dwKeySpec: DWORD,
        dwCertEncodingType: DWORD,
        pszPublicKeyObjId: LPSTR,
        dwFlags: DWORD,
        pvAuxInfo: *mut ::std::os::raw::c_void,
        pInfo: PCERT_PUBLIC_KEY_INFO,
        pcbInfo: *mut DWORD,
    ) -> BOOL;
}
pub type PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC = ::std::option::Option<
    unsafe extern "C" fn(
        hNCryptKey: NCRYPT_KEY_HANDLE,
        dwCertEncodingType: DWORD,
        pszPublicKeyObjId: LPSTR,
        dwFlags: DWORD,
        pvAuxInfo: *mut ::std::os::raw::c_void,
        pInfo: PCERT_PUBLIC_KEY_INFO,
        pcbInfo: *mut DWORD,
    ) -> BOOL,
>;
extern "C" {
    pub fn CryptExportPublicKeyInfoFromBCryptKeyHandle(
        hBCryptKey: BCRYPT_KEY_HANDLE,
        dwCertEncodingType: DWORD,
        pszPublicKeyObjId: LPSTR,
        dwFlags: DWORD,
        pvAuxInfo: *mut ::std::os::raw::c_void,
        pInfo: PCERT_PUBLIC_KEY_INFO,
        pcbInfo: *mut DWORD,
    ) -> BOOL;
}
pub type PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_FROM_BCRYPT_HANDLE_FUNC = ::std::option::Option<
    unsafe extern "C" fn(
        hBCryptKey: BCRYPT_KEY_HANDLE,
        dwCertEncodingType: DWORD,
        pszPublicKeyObjId: LPSTR,
        dwFlags: DWORD,
        pvAuxInfo: *mut ::std::os::raw::c_void,
        pInfo: PCERT_PUBLIC_KEY_INFO,
        pcbInfo: *mut DWORD,
    ) -> BOOL,
>;
extern "C" {
    pub fn CryptImportPublicKeyInfo(
        hCryptProv: HCRYPTPROV,
        dwCertEncodingType: DWORD,
        pInfo: PCERT_PUBLIC_KEY_INFO,
        phKey: *mut HCRYPTKEY,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptImportPublicKeyInfoEx(
        hCryptProv: HCRYPTPROV,
        dwCertEncodingType: DWORD,
        pInfo: PCERT_PUBLIC_KEY_INFO,
        aiKeyAlg: ALG_ID,
        dwFlags: DWORD,
        pvAuxInfo: *mut ::std::os::raw::c_void,
        phKey: *mut HCRYPTKEY,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptImportPublicKeyInfoEx2(
        dwCertEncodingType: DWORD,
        pInfo: PCERT_PUBLIC_KEY_INFO,
        dwFlags: DWORD,
        pvAuxInfo: *mut ::std::os::raw::c_void,
        phKey: *mut BCRYPT_KEY_HANDLE,
    ) -> BOOL;
}
pub type PFN_IMPORT_PUBLIC_KEY_INFO_EX2_FUNC = ::std::option::Option<
    unsafe extern "C" fn(
        dwCertEncodingType: DWORD,
        pInfo: PCERT_PUBLIC_KEY_INFO,
        dwFlags: DWORD,
        pvAuxInfo: *mut ::std::os::raw::c_void,
        phKey: *mut BCRYPT_KEY_HANDLE,
    ) -> BOOL,
>;
extern "C" {
    pub fn CryptAcquireCertificatePrivateKey(
        pCert: PCCERT_CONTEXT,
        dwFlags: DWORD,
        pvParameters: *mut ::std::os::raw::c_void,
        phCryptProvOrNCryptKey: *mut HCRYPTPROV_OR_NCRYPT_KEY_HANDLE,
        pdwKeySpec: *mut DWORD,
        pfCallerFreeProvOrNCryptKey: *mut BOOL,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptFindCertificateKeyProvInfo(
        pCert: PCCERT_CONTEXT,
        dwFlags: DWORD,
        pvReserved: *mut ::std::os::raw::c_void,
    ) -> BOOL;
}
pub type PFN_IMPORT_PRIV_KEY_FUNC = ::std::option::Option<
    unsafe extern "C" fn(
        hCryptProv: HCRYPTPROV,
        pPrivateKeyInfo: *mut CRYPT_PRIVATE_KEY_INFO,
        dwFlags: DWORD,
        pvAuxInfo: *mut ::std::os::raw::c_void,
    ) -> BOOL,
>;
extern "C" {
    pub fn CryptImportPKCS8(
        sPrivateKeyAndParams: CRYPT_PKCS8_IMPORT_PARAMS,
        dwFlags: DWORD,
        phCryptProv: *mut HCRYPTPROV,
        pvAuxInfo: *mut ::std::os::raw::c_void,
    ) -> BOOL;
}
pub type PFN_EXPORT_PRIV_KEY_FUNC = ::std::option::Option<
    unsafe extern "C" fn(
        hCryptProv: HCRYPTPROV,
        dwKeySpec: DWORD,
        pszPrivateKeyObjId: LPSTR,
        dwFlags: DWORD,
        pvAuxInfo: *mut ::std::os::raw::c_void,
        pPrivateKeyInfo: *mut CRYPT_PRIVATE_KEY_INFO,
        pcbPrivateKeyInfo: *mut DWORD,
    ) -> BOOL,
>;
extern "C" {
    pub fn CryptExportPKCS8(
        hCryptProv: HCRYPTPROV,
        dwKeySpec: DWORD,
        pszPrivateKeyObjId: LPSTR,
        dwFlags: DWORD,
        pvAuxInfo: *mut ::std::os::raw::c_void,
        pbPrivateKeyBlob: *mut BYTE,
        pcbPrivateKeyBlob: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptExportPKCS8Ex(
        psExportParams: *mut CRYPT_PKCS8_EXPORT_PARAMS,
        dwFlags: DWORD,
        pvAuxInfo: *mut ::std::os::raw::c_void,
        pbPrivateKeyBlob: *mut BYTE,
        pcbPrivateKeyBlob: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptHashPublicKeyInfo(
        hCryptProv: HCRYPTPROV_LEGACY,
        Algid: ALG_ID,
        dwFlags: DWORD,
        dwCertEncodingType: DWORD,
        pInfo: PCERT_PUBLIC_KEY_INFO,
        pbComputedHash: *mut BYTE,
        pcbComputedHash: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CertRDNValueToStrA(
        dwValueType: DWORD,
        pValue: PCERT_RDN_VALUE_BLOB,
        psz: LPSTR,
        csz: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn CertRDNValueToStrW(
        dwValueType: DWORD,
        pValue: PCERT_RDN_VALUE_BLOB,
        psz: LPWSTR,
        csz: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn CertNameToStrA(
        dwCertEncodingType: DWORD,
        pName: PCERT_NAME_BLOB,
        dwStrType: DWORD,
        psz: LPSTR,
        csz: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn CertNameToStrW(
        dwCertEncodingType: DWORD,
        pName: PCERT_NAME_BLOB,
        dwStrType: DWORD,
        psz: LPWSTR,
        csz: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn CertStrToNameA(
        dwCertEncodingType: DWORD,
        pszX500: LPCSTR,
        dwStrType: DWORD,
        pvReserved: *mut ::std::os::raw::c_void,
        pbEncoded: *mut BYTE,
        pcbEncoded: *mut DWORD,
        ppszError: *mut LPCSTR,
    ) -> BOOL;
}
extern "C" {
    pub fn CertStrToNameW(
        dwCertEncodingType: DWORD,
        pszX500: LPCWSTR,
        dwStrType: DWORD,
        pvReserved: *mut ::std::os::raw::c_void,
        pbEncoded: *mut BYTE,
        pcbEncoded: *mut DWORD,
        ppszError: *mut LPCWSTR,
    ) -> BOOL;
}
extern "C" {
    pub fn CertGetNameStringA(
        pCertContext: PCCERT_CONTEXT,
        dwType: DWORD,
        dwFlags: DWORD,
        pvTypePara: *mut ::std::os::raw::c_void,
        pszNameString: LPSTR,
        cchNameString: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn CertGetNameStringW(
        pCertContext: PCCERT_CONTEXT,
        dwType: DWORD,
        dwFlags: DWORD,
        pvTypePara: *mut ::std::os::raw::c_void,
        pszNameString: LPWSTR,
        cchNameString: DWORD,
    ) -> DWORD;
}
pub type PFN_CRYPT_GET_SIGNER_CERTIFICATE = ::std::option::Option<
    unsafe extern "C" fn(
        pvGetArg: *mut ::std::os::raw::c_void,
        dwCertEncodingType: DWORD,
        pSignerId: PCERT_INFO,
        hMsgCertStore: HCERTSTORE,
    ) -> PCCERT_CONTEXT,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_SIGN_MESSAGE_PARA {
    pub cbSize: DWORD,
    pub dwMsgEncodingType: DWORD,
    pub pSigningCert: PCCERT_CONTEXT,
    pub HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub pvHashAuxInfo: *mut ::std::os::raw::c_void,
    pub cMsgCert: DWORD,
    pub rgpMsgCert: *mut PCCERT_CONTEXT,
    pub cMsgCrl: DWORD,
    pub rgpMsgCrl: *mut PCCRL_CONTEXT,
    pub cAuthAttr: DWORD,
    pub rgAuthAttr: PCRYPT_ATTRIBUTE,
    pub cUnauthAttr: DWORD,
    pub rgUnauthAttr: PCRYPT_ATTRIBUTE,
    pub dwFlags: DWORD,
    pub dwInnerContentType: DWORD,
}
#[test]
fn bindgen_test_layout__CRYPT_SIGN_MESSAGE_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_SIGN_MESSAGE_PARA>(),
        120usize,
        concat!("Size of: ", stringify!(_CRYPT_SIGN_MESSAGE_PARA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_SIGN_MESSAGE_PARA>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_SIGN_MESSAGE_PARA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_SIGN_MESSAGE_PARA>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_SIGN_MESSAGE_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_SIGN_MESSAGE_PARA>())).dwMsgEncodingType as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_SIGN_MESSAGE_PARA),
            "::",
            stringify!(dwMsgEncodingType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_SIGN_MESSAGE_PARA>())).pSigningCert as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_SIGN_MESSAGE_PARA),
            "::",
            stringify!(pSigningCert)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_SIGN_MESSAGE_PARA>())).HashAlgorithm as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_SIGN_MESSAGE_PARA),
            "::",
            stringify!(HashAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_SIGN_MESSAGE_PARA>())).pvHashAuxInfo as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_SIGN_MESSAGE_PARA),
            "::",
            stringify!(pvHashAuxInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_SIGN_MESSAGE_PARA>())).cMsgCert as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_SIGN_MESSAGE_PARA),
            "::",
            stringify!(cMsgCert)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_SIGN_MESSAGE_PARA>())).rgpMsgCert as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_SIGN_MESSAGE_PARA),
            "::",
            stringify!(rgpMsgCert)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_SIGN_MESSAGE_PARA>())).cMsgCrl as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_SIGN_MESSAGE_PARA),
            "::",
            stringify!(cMsgCrl)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_SIGN_MESSAGE_PARA>())).rgpMsgCrl as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_SIGN_MESSAGE_PARA),
            "::",
            stringify!(rgpMsgCrl)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_SIGN_MESSAGE_PARA>())).cAuthAttr as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_SIGN_MESSAGE_PARA),
            "::",
            stringify!(cAuthAttr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_SIGN_MESSAGE_PARA>())).rgAuthAttr as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_SIGN_MESSAGE_PARA),
            "::",
            stringify!(rgAuthAttr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_SIGN_MESSAGE_PARA>())).cUnauthAttr as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_SIGN_MESSAGE_PARA),
            "::",
            stringify!(cUnauthAttr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_SIGN_MESSAGE_PARA>())).rgUnauthAttr as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_SIGN_MESSAGE_PARA),
            "::",
            stringify!(rgUnauthAttr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_SIGN_MESSAGE_PARA>())).dwFlags as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_SIGN_MESSAGE_PARA),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_SIGN_MESSAGE_PARA>())).dwInnerContentType as *const _
                as usize
        },
        116usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_SIGN_MESSAGE_PARA),
            "::",
            stringify!(dwInnerContentType)
        )
    );
}
pub type CRYPT_SIGN_MESSAGE_PARA = _CRYPT_SIGN_MESSAGE_PARA;
pub type PCRYPT_SIGN_MESSAGE_PARA = *mut _CRYPT_SIGN_MESSAGE_PARA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_VERIFY_MESSAGE_PARA {
    pub cbSize: DWORD,
    pub dwMsgAndCertEncodingType: DWORD,
    pub hCryptProv: HCRYPTPROV_LEGACY,
    pub pfnGetSignerCertificate: PFN_CRYPT_GET_SIGNER_CERTIFICATE,
    pub pvGetArg: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout__CRYPT_VERIFY_MESSAGE_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_VERIFY_MESSAGE_PARA>(),
        32usize,
        concat!("Size of: ", stringify!(_CRYPT_VERIFY_MESSAGE_PARA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_VERIFY_MESSAGE_PARA>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_VERIFY_MESSAGE_PARA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_VERIFY_MESSAGE_PARA>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_VERIFY_MESSAGE_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_VERIFY_MESSAGE_PARA>())).dwMsgAndCertEncodingType
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_VERIFY_MESSAGE_PARA),
            "::",
            stringify!(dwMsgAndCertEncodingType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_VERIFY_MESSAGE_PARA>())).hCryptProv as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_VERIFY_MESSAGE_PARA),
            "::",
            stringify!(hCryptProv)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_VERIFY_MESSAGE_PARA>())).pfnGetSignerCertificate
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_VERIFY_MESSAGE_PARA),
            "::",
            stringify!(pfnGetSignerCertificate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_VERIFY_MESSAGE_PARA>())).pvGetArg as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_VERIFY_MESSAGE_PARA),
            "::",
            stringify!(pvGetArg)
        )
    );
}
pub type CRYPT_VERIFY_MESSAGE_PARA = _CRYPT_VERIFY_MESSAGE_PARA;
pub type PCRYPT_VERIFY_MESSAGE_PARA = *mut _CRYPT_VERIFY_MESSAGE_PARA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_ENCRYPT_MESSAGE_PARA {
    pub cbSize: DWORD,
    pub dwMsgEncodingType: DWORD,
    pub hCryptProv: HCRYPTPROV_LEGACY,
    pub ContentEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub pvEncryptionAuxInfo: *mut ::std::os::raw::c_void,
    pub dwFlags: DWORD,
    pub dwInnerContentType: DWORD,
}
#[test]
fn bindgen_test_layout__CRYPT_ENCRYPT_MESSAGE_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_ENCRYPT_MESSAGE_PARA>(),
        56usize,
        concat!("Size of: ", stringify!(_CRYPT_ENCRYPT_MESSAGE_PARA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_ENCRYPT_MESSAGE_PARA>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_ENCRYPT_MESSAGE_PARA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_ENCRYPT_MESSAGE_PARA>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_ENCRYPT_MESSAGE_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_ENCRYPT_MESSAGE_PARA>())).dwMsgEncodingType as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_ENCRYPT_MESSAGE_PARA),
            "::",
            stringify!(dwMsgEncodingType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_ENCRYPT_MESSAGE_PARA>())).hCryptProv as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_ENCRYPT_MESSAGE_PARA),
            "::",
            stringify!(hCryptProv)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_ENCRYPT_MESSAGE_PARA>())).ContentEncryptionAlgorithm
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_ENCRYPT_MESSAGE_PARA),
            "::",
            stringify!(ContentEncryptionAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_ENCRYPT_MESSAGE_PARA>())).pvEncryptionAuxInfo as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_ENCRYPT_MESSAGE_PARA),
            "::",
            stringify!(pvEncryptionAuxInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_ENCRYPT_MESSAGE_PARA>())).dwFlags as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_ENCRYPT_MESSAGE_PARA),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_ENCRYPT_MESSAGE_PARA>())).dwInnerContentType as *const _
                as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_ENCRYPT_MESSAGE_PARA),
            "::",
            stringify!(dwInnerContentType)
        )
    );
}
pub type CRYPT_ENCRYPT_MESSAGE_PARA = _CRYPT_ENCRYPT_MESSAGE_PARA;
pub type PCRYPT_ENCRYPT_MESSAGE_PARA = *mut _CRYPT_ENCRYPT_MESSAGE_PARA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_DECRYPT_MESSAGE_PARA {
    pub cbSize: DWORD,
    pub dwMsgAndCertEncodingType: DWORD,
    pub cCertStore: DWORD,
    pub rghCertStore: *mut HCERTSTORE,
}
#[test]
fn bindgen_test_layout__CRYPT_DECRYPT_MESSAGE_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_DECRYPT_MESSAGE_PARA>(),
        24usize,
        concat!("Size of: ", stringify!(_CRYPT_DECRYPT_MESSAGE_PARA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_DECRYPT_MESSAGE_PARA>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_DECRYPT_MESSAGE_PARA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_DECRYPT_MESSAGE_PARA>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_DECRYPT_MESSAGE_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_DECRYPT_MESSAGE_PARA>())).dwMsgAndCertEncodingType
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_DECRYPT_MESSAGE_PARA),
            "::",
            stringify!(dwMsgAndCertEncodingType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_DECRYPT_MESSAGE_PARA>())).cCertStore as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_DECRYPT_MESSAGE_PARA),
            "::",
            stringify!(cCertStore)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_DECRYPT_MESSAGE_PARA>())).rghCertStore as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_DECRYPT_MESSAGE_PARA),
            "::",
            stringify!(rghCertStore)
        )
    );
}
pub type CRYPT_DECRYPT_MESSAGE_PARA = _CRYPT_DECRYPT_MESSAGE_PARA;
pub type PCRYPT_DECRYPT_MESSAGE_PARA = *mut _CRYPT_DECRYPT_MESSAGE_PARA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_HASH_MESSAGE_PARA {
    pub cbSize: DWORD,
    pub dwMsgEncodingType: DWORD,
    pub hCryptProv: HCRYPTPROV_LEGACY,
    pub HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub pvHashAuxInfo: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout__CRYPT_HASH_MESSAGE_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_HASH_MESSAGE_PARA>(),
        48usize,
        concat!("Size of: ", stringify!(_CRYPT_HASH_MESSAGE_PARA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_HASH_MESSAGE_PARA>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_HASH_MESSAGE_PARA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_HASH_MESSAGE_PARA>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_HASH_MESSAGE_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_HASH_MESSAGE_PARA>())).dwMsgEncodingType as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_HASH_MESSAGE_PARA),
            "::",
            stringify!(dwMsgEncodingType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_HASH_MESSAGE_PARA>())).hCryptProv as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_HASH_MESSAGE_PARA),
            "::",
            stringify!(hCryptProv)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_HASH_MESSAGE_PARA>())).HashAlgorithm as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_HASH_MESSAGE_PARA),
            "::",
            stringify!(HashAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_HASH_MESSAGE_PARA>())).pvHashAuxInfo as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_HASH_MESSAGE_PARA),
            "::",
            stringify!(pvHashAuxInfo)
        )
    );
}
pub type CRYPT_HASH_MESSAGE_PARA = _CRYPT_HASH_MESSAGE_PARA;
pub type PCRYPT_HASH_MESSAGE_PARA = *mut _CRYPT_HASH_MESSAGE_PARA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CRYPT_KEY_SIGN_MESSAGE_PARA {
    pub cbSize: DWORD,
    pub dwMsgAndCertEncodingType: DWORD,
    pub __bindgen_anon_1: _CRYPT_KEY_SIGN_MESSAGE_PARA__bindgen_ty_1,
    pub dwKeySpec: DWORD,
    pub HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub pvHashAuxInfo: *mut ::std::os::raw::c_void,
    pub PubKeyAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _CRYPT_KEY_SIGN_MESSAGE_PARA__bindgen_ty_1 {
    pub hCryptProv: HCRYPTPROV,
    pub hNCryptKey: NCRYPT_KEY_HANDLE,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__CRYPT_KEY_SIGN_MESSAGE_PARA__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_KEY_SIGN_MESSAGE_PARA__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_CRYPT_KEY_SIGN_MESSAGE_PARA__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_KEY_SIGN_MESSAGE_PARA__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CRYPT_KEY_SIGN_MESSAGE_PARA__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_KEY_SIGN_MESSAGE_PARA__bindgen_ty_1>())).hCryptProv
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_KEY_SIGN_MESSAGE_PARA__bindgen_ty_1),
            "::",
            stringify!(hCryptProv)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_KEY_SIGN_MESSAGE_PARA__bindgen_ty_1>())).hNCryptKey
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_KEY_SIGN_MESSAGE_PARA__bindgen_ty_1),
            "::",
            stringify!(hNCryptKey)
        )
    );
}
#[test]
fn bindgen_test_layout__CRYPT_KEY_SIGN_MESSAGE_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_KEY_SIGN_MESSAGE_PARA>(),
        80usize,
        concat!("Size of: ", stringify!(_CRYPT_KEY_SIGN_MESSAGE_PARA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_KEY_SIGN_MESSAGE_PARA>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_KEY_SIGN_MESSAGE_PARA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_KEY_SIGN_MESSAGE_PARA>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_KEY_SIGN_MESSAGE_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_KEY_SIGN_MESSAGE_PARA>())).dwMsgAndCertEncodingType
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_KEY_SIGN_MESSAGE_PARA),
            "::",
            stringify!(dwMsgAndCertEncodingType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_KEY_SIGN_MESSAGE_PARA>())).dwKeySpec as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_KEY_SIGN_MESSAGE_PARA),
            "::",
            stringify!(dwKeySpec)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_KEY_SIGN_MESSAGE_PARA>())).HashAlgorithm as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_KEY_SIGN_MESSAGE_PARA),
            "::",
            stringify!(HashAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_KEY_SIGN_MESSAGE_PARA>())).pvHashAuxInfo as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_KEY_SIGN_MESSAGE_PARA),
            "::",
            stringify!(pvHashAuxInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_KEY_SIGN_MESSAGE_PARA>())).PubKeyAlgorithm as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_KEY_SIGN_MESSAGE_PARA),
            "::",
            stringify!(PubKeyAlgorithm)
        )
    );
}
pub type CRYPT_KEY_SIGN_MESSAGE_PARA = _CRYPT_KEY_SIGN_MESSAGE_PARA;
pub type PCRYPT_KEY_SIGN_MESSAGE_PARA = *mut _CRYPT_KEY_SIGN_MESSAGE_PARA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_KEY_VERIFY_MESSAGE_PARA {
    pub cbSize: DWORD,
    pub dwMsgEncodingType: DWORD,
    pub hCryptProv: HCRYPTPROV_LEGACY,
}
#[test]
fn bindgen_test_layout__CRYPT_KEY_VERIFY_MESSAGE_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_KEY_VERIFY_MESSAGE_PARA>(),
        16usize,
        concat!("Size of: ", stringify!(_CRYPT_KEY_VERIFY_MESSAGE_PARA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_KEY_VERIFY_MESSAGE_PARA>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_KEY_VERIFY_MESSAGE_PARA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_KEY_VERIFY_MESSAGE_PARA>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_KEY_VERIFY_MESSAGE_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_KEY_VERIFY_MESSAGE_PARA>())).dwMsgEncodingType as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_KEY_VERIFY_MESSAGE_PARA),
            "::",
            stringify!(dwMsgEncodingType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_KEY_VERIFY_MESSAGE_PARA>())).hCryptProv as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_KEY_VERIFY_MESSAGE_PARA),
            "::",
            stringify!(hCryptProv)
        )
    );
}
pub type CRYPT_KEY_VERIFY_MESSAGE_PARA = _CRYPT_KEY_VERIFY_MESSAGE_PARA;
pub type PCRYPT_KEY_VERIFY_MESSAGE_PARA = *mut _CRYPT_KEY_VERIFY_MESSAGE_PARA;
extern "C" {
    pub fn CryptSignMessage(
        pSignPara: PCRYPT_SIGN_MESSAGE_PARA,
        fDetachedSignature: BOOL,
        cToBeSigned: DWORD,
        rgpbToBeSigned: *mut *const BYTE,
        rgcbToBeSigned: *mut DWORD,
        pbSignedBlob: *mut BYTE,
        pcbSignedBlob: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptVerifyMessageSignature(
        pVerifyPara: PCRYPT_VERIFY_MESSAGE_PARA,
        dwSignerIndex: DWORD,
        pbSignedBlob: *const BYTE,
        cbSignedBlob: DWORD,
        pbDecoded: *mut BYTE,
        pcbDecoded: *mut DWORD,
        ppSignerCert: *mut PCCERT_CONTEXT,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptGetMessageSignerCount(
        dwMsgEncodingType: DWORD,
        pbSignedBlob: *const BYTE,
        cbSignedBlob: DWORD,
    ) -> LONG;
}
extern "C" {
    pub fn CryptGetMessageCertificates(
        dwMsgAndCertEncodingType: DWORD,
        hCryptProv: HCRYPTPROV_LEGACY,
        dwFlags: DWORD,
        pbSignedBlob: *const BYTE,
        cbSignedBlob: DWORD,
    ) -> HCERTSTORE;
}
extern "C" {
    pub fn CryptVerifyDetachedMessageSignature(
        pVerifyPara: PCRYPT_VERIFY_MESSAGE_PARA,
        dwSignerIndex: DWORD,
        pbDetachedSignBlob: *const BYTE,
        cbDetachedSignBlob: DWORD,
        cToBeSigned: DWORD,
        rgpbToBeSigned: *mut *const BYTE,
        rgcbToBeSigned: *mut DWORD,
        ppSignerCert: *mut PCCERT_CONTEXT,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptEncryptMessage(
        pEncryptPara: PCRYPT_ENCRYPT_MESSAGE_PARA,
        cRecipientCert: DWORD,
        rgpRecipientCert: *mut PCCERT_CONTEXT,
        pbToBeEncrypted: *const BYTE,
        cbToBeEncrypted: DWORD,
        pbEncryptedBlob: *mut BYTE,
        pcbEncryptedBlob: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptDecryptMessage(
        pDecryptPara: PCRYPT_DECRYPT_MESSAGE_PARA,
        pbEncryptedBlob: *const BYTE,
        cbEncryptedBlob: DWORD,
        pbDecrypted: *mut BYTE,
        pcbDecrypted: *mut DWORD,
        ppXchgCert: *mut PCCERT_CONTEXT,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptSignAndEncryptMessage(
        pSignPara: PCRYPT_SIGN_MESSAGE_PARA,
        pEncryptPara: PCRYPT_ENCRYPT_MESSAGE_PARA,
        cRecipientCert: DWORD,
        rgpRecipientCert: *mut PCCERT_CONTEXT,
        pbToBeSignedAndEncrypted: *const BYTE,
        cbToBeSignedAndEncrypted: DWORD,
        pbSignedAndEncryptedBlob: *mut BYTE,
        pcbSignedAndEncryptedBlob: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptDecryptAndVerifyMessageSignature(
        pDecryptPara: PCRYPT_DECRYPT_MESSAGE_PARA,
        pVerifyPara: PCRYPT_VERIFY_MESSAGE_PARA,
        dwSignerIndex: DWORD,
        pbEncryptedBlob: *const BYTE,
        cbEncryptedBlob: DWORD,
        pbDecrypted: *mut BYTE,
        pcbDecrypted: *mut DWORD,
        ppXchgCert: *mut PCCERT_CONTEXT,
        ppSignerCert: *mut PCCERT_CONTEXT,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptDecodeMessage(
        dwMsgTypeFlags: DWORD,
        pDecryptPara: PCRYPT_DECRYPT_MESSAGE_PARA,
        pVerifyPara: PCRYPT_VERIFY_MESSAGE_PARA,
        dwSignerIndex: DWORD,
        pbEncodedBlob: *const BYTE,
        cbEncodedBlob: DWORD,
        dwPrevInnerContentType: DWORD,
        pdwMsgType: *mut DWORD,
        pdwInnerContentType: *mut DWORD,
        pbDecoded: *mut BYTE,
        pcbDecoded: *mut DWORD,
        ppXchgCert: *mut PCCERT_CONTEXT,
        ppSignerCert: *mut PCCERT_CONTEXT,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptHashMessage(
        pHashPara: PCRYPT_HASH_MESSAGE_PARA,
        fDetachedHash: BOOL,
        cToBeHashed: DWORD,
        rgpbToBeHashed: *mut *const BYTE,
        rgcbToBeHashed: *mut DWORD,
        pbHashedBlob: *mut BYTE,
        pcbHashedBlob: *mut DWORD,
        pbComputedHash: *mut BYTE,
        pcbComputedHash: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptVerifyMessageHash(
        pHashPara: PCRYPT_HASH_MESSAGE_PARA,
        pbHashedBlob: *mut BYTE,
        cbHashedBlob: DWORD,
        pbToBeHashed: *mut BYTE,
        pcbToBeHashed: *mut DWORD,
        pbComputedHash: *mut BYTE,
        pcbComputedHash: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptVerifyDetachedMessageHash(
        pHashPara: PCRYPT_HASH_MESSAGE_PARA,
        pbDetachedHashBlob: *mut BYTE,
        cbDetachedHashBlob: DWORD,
        cToBeHashed: DWORD,
        rgpbToBeHashed: *mut *const BYTE,
        rgcbToBeHashed: *mut DWORD,
        pbComputedHash: *mut BYTE,
        pcbComputedHash: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptSignMessageWithKey(
        pSignPara: PCRYPT_KEY_SIGN_MESSAGE_PARA,
        pbToBeSigned: *const BYTE,
        cbToBeSigned: DWORD,
        pbSignedBlob: *mut BYTE,
        pcbSignedBlob: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptVerifyMessageSignatureWithKey(
        pVerifyPara: PCRYPT_KEY_VERIFY_MESSAGE_PARA,
        pPublicKeyInfo: PCERT_PUBLIC_KEY_INFO,
        pbSignedBlob: *const BYTE,
        cbSignedBlob: DWORD,
        pbDecoded: *mut BYTE,
        pcbDecoded: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CertOpenSystemStoreA(
        hProv: HCRYPTPROV_LEGACY,
        szSubsystemProtocol: LPCSTR,
    ) -> HCERTSTORE;
}
extern "C" {
    pub fn CertOpenSystemStoreW(
        hProv: HCRYPTPROV_LEGACY,
        szSubsystemProtocol: LPCWSTR,
    ) -> HCERTSTORE;
}
extern "C" {
    pub fn CertAddEncodedCertificateToSystemStoreA(
        szCertStoreName: LPCSTR,
        pbCertEncoded: *const BYTE,
        cbCertEncoded: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CertAddEncodedCertificateToSystemStoreW(
        szCertStoreName: LPCWSTR,
        pbCertEncoded: *const BYTE,
        cbCertEncoded: DWORD,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_CHAIN {
    pub cCerts: DWORD,
    pub certs: PCERT_BLOB,
    pub keyLocatorInfo: CRYPT_KEY_PROV_INFO,
}
#[test]
fn bindgen_test_layout__CERT_CHAIN() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_CHAIN>(),
        64usize,
        concat!("Size of: ", stringify!(_CERT_CHAIN))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_CHAIN>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_CHAIN))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_CHAIN>())).cCerts as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN),
            "::",
            stringify!(cCerts)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_CHAIN>())).certs as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN),
            "::",
            stringify!(certs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_CHAIN>())).keyLocatorInfo as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN),
            "::",
            stringify!(keyLocatorInfo)
        )
    );
}
pub type CERT_CHAIN = _CERT_CHAIN;
pub type PCERT_CHAIN = *mut _CERT_CHAIN;
extern "C" {
    pub fn FindCertsByIssuer(
        pCertChains: PCERT_CHAIN,
        pcbCertChains: *mut DWORD,
        pcCertChains: *mut DWORD,
        pbEncodedIssuerName: *mut BYTE,
        cbEncodedIssuerName: DWORD,
        pwszPurpose: LPCWSTR,
        dwKeySpec: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn CryptQueryObject(
        dwObjectType: DWORD,
        pvObject: *const ::std::os::raw::c_void,
        dwExpectedContentTypeFlags: DWORD,
        dwExpectedFormatTypeFlags: DWORD,
        dwFlags: DWORD,
        pdwMsgAndCertEncodingType: *mut DWORD,
        pdwContentType: *mut DWORD,
        pdwFormatType: *mut DWORD,
        phCertStore: *mut HCERTSTORE,
        phMsg: *mut HCRYPTMSG,
        ppvContext: *mut *const ::std::os::raw::c_void,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptMemAlloc(cbSize: ULONG) -> LPVOID;
}
extern "C" {
    pub fn CryptMemRealloc(pv: LPVOID, cbSize: ULONG) -> LPVOID;
}
extern "C" {
    pub fn CryptMemFree(pv: LPVOID);
}
pub type HCRYPTASYNC = HANDLE;
pub type PHCRYPTASYNC = *mut HANDLE;
pub type PFN_CRYPT_ASYNC_PARAM_FREE_FUNC =
    ::std::option::Option<unsafe extern "C" fn(pszParamOid: LPSTR, pvParam: LPVOID)>;
extern "C" {
    pub fn CryptCreateAsyncHandle(dwFlags: DWORD, phAsync: PHCRYPTASYNC) -> BOOL;
}
extern "C" {
    pub fn CryptSetAsyncParam(
        hAsync: HCRYPTASYNC,
        pszParamOid: LPSTR,
        pvParam: LPVOID,
        pfnFree: PFN_CRYPT_ASYNC_PARAM_FREE_FUNC,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptGetAsyncParam(
        hAsync: HCRYPTASYNC,
        pszParamOid: LPSTR,
        ppvParam: *mut LPVOID,
        ppfnFree: *mut PFN_CRYPT_ASYNC_PARAM_FREE_FUNC,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptCloseAsyncHandle(hAsync: HCRYPTASYNC) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_BLOB_ARRAY {
    pub cBlob: DWORD,
    pub rgBlob: PCRYPT_DATA_BLOB,
}
#[test]
fn bindgen_test_layout__CRYPT_BLOB_ARRAY() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_BLOB_ARRAY>(),
        16usize,
        concat!("Size of: ", stringify!(_CRYPT_BLOB_ARRAY))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_BLOB_ARRAY>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_BLOB_ARRAY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_BLOB_ARRAY>())).cBlob as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_BLOB_ARRAY),
            "::",
            stringify!(cBlob)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_BLOB_ARRAY>())).rgBlob as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_BLOB_ARRAY),
            "::",
            stringify!(rgBlob)
        )
    );
}
pub type CRYPT_BLOB_ARRAY = _CRYPT_BLOB_ARRAY;
pub type PCRYPT_BLOB_ARRAY = *mut _CRYPT_BLOB_ARRAY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_CREDENTIALS {
    pub cbSize: DWORD,
    pub pszCredentialsOid: LPCSTR,
    pub pvCredentials: LPVOID,
}
#[test]
fn bindgen_test_layout__CRYPT_CREDENTIALS() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_CREDENTIALS>(),
        24usize,
        concat!("Size of: ", stringify!(_CRYPT_CREDENTIALS))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_CREDENTIALS>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_CREDENTIALS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_CREDENTIALS>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_CREDENTIALS),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_CREDENTIALS>())).pszCredentialsOid as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_CREDENTIALS),
            "::",
            stringify!(pszCredentialsOid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_CREDENTIALS>())).pvCredentials as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_CREDENTIALS),
            "::",
            stringify!(pvCredentials)
        )
    );
}
pub type CRYPT_CREDENTIALS = _CRYPT_CREDENTIALS;
pub type PCRYPT_CREDENTIALS = *mut _CRYPT_CREDENTIALS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_PASSWORD_CREDENTIALSA {
    pub cbSize: DWORD,
    pub pszUsername: LPSTR,
    pub pszPassword: LPSTR,
}
#[test]
fn bindgen_test_layout__CRYPT_PASSWORD_CREDENTIALSA() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_PASSWORD_CREDENTIALSA>(),
        24usize,
        concat!("Size of: ", stringify!(_CRYPT_PASSWORD_CREDENTIALSA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_PASSWORD_CREDENTIALSA>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_PASSWORD_CREDENTIALSA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_PASSWORD_CREDENTIALSA>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PASSWORD_CREDENTIALSA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_PASSWORD_CREDENTIALSA>())).pszUsername as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PASSWORD_CREDENTIALSA),
            "::",
            stringify!(pszUsername)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_PASSWORD_CREDENTIALSA>())).pszPassword as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PASSWORD_CREDENTIALSA),
            "::",
            stringify!(pszPassword)
        )
    );
}
pub type CRYPT_PASSWORD_CREDENTIALSA = _CRYPT_PASSWORD_CREDENTIALSA;
pub type PCRYPT_PASSWORD_CREDENTIALSA = *mut _CRYPT_PASSWORD_CREDENTIALSA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_PASSWORD_CREDENTIALSW {
    pub cbSize: DWORD,
    pub pszUsername: LPWSTR,
    pub pszPassword: LPWSTR,
}
#[test]
fn bindgen_test_layout__CRYPT_PASSWORD_CREDENTIALSW() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_PASSWORD_CREDENTIALSW>(),
        24usize,
        concat!("Size of: ", stringify!(_CRYPT_PASSWORD_CREDENTIALSW))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_PASSWORD_CREDENTIALSW>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_PASSWORD_CREDENTIALSW))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_PASSWORD_CREDENTIALSW>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PASSWORD_CREDENTIALSW),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_PASSWORD_CREDENTIALSW>())).pszUsername as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PASSWORD_CREDENTIALSW),
            "::",
            stringify!(pszUsername)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_PASSWORD_CREDENTIALSW>())).pszPassword as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PASSWORD_CREDENTIALSW),
            "::",
            stringify!(pszPassword)
        )
    );
}
pub type CRYPT_PASSWORD_CREDENTIALSW = _CRYPT_PASSWORD_CREDENTIALSW;
pub type PCRYPT_PASSWORD_CREDENTIALSW = *mut _CRYPT_PASSWORD_CREDENTIALSW;
pub type CRYPT_PASSWORD_CREDENTIALS = CRYPT_PASSWORD_CREDENTIALSA;
pub type PCRYPT_PASSWORD_CREDENTIALS = PCRYPT_PASSWORD_CREDENTIALSA;
pub type PFN_FREE_ENCODED_OBJECT_FUNC = ::std::option::Option<
    unsafe extern "C" fn(pszObjectOid: LPCSTR, pObject: PCRYPT_BLOB_ARRAY, pvFreeContext: LPVOID),
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPTNET_URL_CACHE_PRE_FETCH_INFO {
    pub cbSize: DWORD,
    pub dwObjectType: DWORD,
    pub dwError: DWORD,
    pub dwReserved: DWORD,
    pub ThisUpdateTime: FILETIME,
    pub NextUpdateTime: FILETIME,
    pub PublishTime: FILETIME,
}
#[test]
fn bindgen_test_layout__CRYPTNET_URL_CACHE_PRE_FETCH_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPTNET_URL_CACHE_PRE_FETCH_INFO>(),
        40usize,
        concat!("Size of: ", stringify!(_CRYPTNET_URL_CACHE_PRE_FETCH_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPTNET_URL_CACHE_PRE_FETCH_INFO>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_CRYPTNET_URL_CACHE_PRE_FETCH_INFO)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPTNET_URL_CACHE_PRE_FETCH_INFO>())).cbSize as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPTNET_URL_CACHE_PRE_FETCH_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPTNET_URL_CACHE_PRE_FETCH_INFO>())).dwObjectType as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPTNET_URL_CACHE_PRE_FETCH_INFO),
            "::",
            stringify!(dwObjectType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPTNET_URL_CACHE_PRE_FETCH_INFO>())).dwError as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPTNET_URL_CACHE_PRE_FETCH_INFO),
            "::",
            stringify!(dwError)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPTNET_URL_CACHE_PRE_FETCH_INFO>())).dwReserved as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPTNET_URL_CACHE_PRE_FETCH_INFO),
            "::",
            stringify!(dwReserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPTNET_URL_CACHE_PRE_FETCH_INFO>())).ThisUpdateTime
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPTNET_URL_CACHE_PRE_FETCH_INFO),
            "::",
            stringify!(ThisUpdateTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPTNET_URL_CACHE_PRE_FETCH_INFO>())).NextUpdateTime
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPTNET_URL_CACHE_PRE_FETCH_INFO),
            "::",
            stringify!(NextUpdateTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPTNET_URL_CACHE_PRE_FETCH_INFO>())).PublishTime as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPTNET_URL_CACHE_PRE_FETCH_INFO),
            "::",
            stringify!(PublishTime)
        )
    );
}
pub type CRYPTNET_URL_CACHE_PRE_FETCH_INFO = _CRYPTNET_URL_CACHE_PRE_FETCH_INFO;
pub type PCRYPTNET_URL_CACHE_PRE_FETCH_INFO = *mut _CRYPTNET_URL_CACHE_PRE_FETCH_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPTNET_URL_CACHE_FLUSH_INFO {
    pub cbSize: DWORD,
    pub dwExemptSeconds: DWORD,
    pub ExpireTime: FILETIME,
}
#[test]
fn bindgen_test_layout__CRYPTNET_URL_CACHE_FLUSH_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPTNET_URL_CACHE_FLUSH_INFO>(),
        16usize,
        concat!("Size of: ", stringify!(_CRYPTNET_URL_CACHE_FLUSH_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPTNET_URL_CACHE_FLUSH_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_CRYPTNET_URL_CACHE_FLUSH_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPTNET_URL_CACHE_FLUSH_INFO>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPTNET_URL_CACHE_FLUSH_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPTNET_URL_CACHE_FLUSH_INFO>())).dwExemptSeconds as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPTNET_URL_CACHE_FLUSH_INFO),
            "::",
            stringify!(dwExemptSeconds)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPTNET_URL_CACHE_FLUSH_INFO>())).ExpireTime as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPTNET_URL_CACHE_FLUSH_INFO),
            "::",
            stringify!(ExpireTime)
        )
    );
}
pub type CRYPTNET_URL_CACHE_FLUSH_INFO = _CRYPTNET_URL_CACHE_FLUSH_INFO;
pub type PCRYPTNET_URL_CACHE_FLUSH_INFO = *mut _CRYPTNET_URL_CACHE_FLUSH_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPTNET_URL_CACHE_RESPONSE_INFO {
    pub cbSize: DWORD,
    pub wResponseType: WORD,
    pub wResponseFlags: WORD,
    pub LastModifiedTime: FILETIME,
    pub dwMaxAge: DWORD,
    pub pwszETag: LPCWSTR,
    pub dwProxyId: DWORD,
}
#[test]
fn bindgen_test_layout__CRYPTNET_URL_CACHE_RESPONSE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPTNET_URL_CACHE_RESPONSE_INFO>(),
        40usize,
        concat!("Size of: ", stringify!(_CRYPTNET_URL_CACHE_RESPONSE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPTNET_URL_CACHE_RESPONSE_INFO>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CRYPTNET_URL_CACHE_RESPONSE_INFO)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPTNET_URL_CACHE_RESPONSE_INFO>())).cbSize as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPTNET_URL_CACHE_RESPONSE_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPTNET_URL_CACHE_RESPONSE_INFO>())).wResponseType as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPTNET_URL_CACHE_RESPONSE_INFO),
            "::",
            stringify!(wResponseType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPTNET_URL_CACHE_RESPONSE_INFO>())).wResponseFlags as *const _
                as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPTNET_URL_CACHE_RESPONSE_INFO),
            "::",
            stringify!(wResponseFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPTNET_URL_CACHE_RESPONSE_INFO>())).LastModifiedTime
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPTNET_URL_CACHE_RESPONSE_INFO),
            "::",
            stringify!(LastModifiedTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPTNET_URL_CACHE_RESPONSE_INFO>())).dwMaxAge as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPTNET_URL_CACHE_RESPONSE_INFO),
            "::",
            stringify!(dwMaxAge)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPTNET_URL_CACHE_RESPONSE_INFO>())).pwszETag as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPTNET_URL_CACHE_RESPONSE_INFO),
            "::",
            stringify!(pwszETag)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPTNET_URL_CACHE_RESPONSE_INFO>())).dwProxyId as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPTNET_URL_CACHE_RESPONSE_INFO),
            "::",
            stringify!(dwProxyId)
        )
    );
}
pub type CRYPTNET_URL_CACHE_RESPONSE_INFO = _CRYPTNET_URL_CACHE_RESPONSE_INFO;
pub type PCRYPTNET_URL_CACHE_RESPONSE_INFO = *mut _CRYPTNET_URL_CACHE_RESPONSE_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_RETRIEVE_AUX_INFO {
    pub cbSize: DWORD,
    pub pLastSyncTime: *mut FILETIME,
    pub dwMaxUrlRetrievalByteCount: DWORD,
    pub pPreFetchInfo: PCRYPTNET_URL_CACHE_PRE_FETCH_INFO,
    pub pFlushInfo: PCRYPTNET_URL_CACHE_FLUSH_INFO,
    pub ppResponseInfo: *mut PCRYPTNET_URL_CACHE_RESPONSE_INFO,
    pub pwszCacheFileNamePrefix: LPWSTR,
    pub pftCacheResync: LPFILETIME,
    pub fProxyCacheRetrieval: BOOL,
    pub dwHttpStatusCode: DWORD,
    pub ppwszErrorResponseHeaders: *mut LPWSTR,
    pub ppErrorContentBlob: *mut PCRYPT_DATA_BLOB,
}
#[test]
fn bindgen_test_layout__CRYPT_RETRIEVE_AUX_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_RETRIEVE_AUX_INFO>(),
        88usize,
        concat!("Size of: ", stringify!(_CRYPT_RETRIEVE_AUX_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_RETRIEVE_AUX_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_RETRIEVE_AUX_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_RETRIEVE_AUX_INFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_RETRIEVE_AUX_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_RETRIEVE_AUX_INFO>())).pLastSyncTime as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_RETRIEVE_AUX_INFO),
            "::",
            stringify!(pLastSyncTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_RETRIEVE_AUX_INFO>())).dwMaxUrlRetrievalByteCount
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_RETRIEVE_AUX_INFO),
            "::",
            stringify!(dwMaxUrlRetrievalByteCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_RETRIEVE_AUX_INFO>())).pPreFetchInfo as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_RETRIEVE_AUX_INFO),
            "::",
            stringify!(pPreFetchInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_RETRIEVE_AUX_INFO>())).pFlushInfo as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_RETRIEVE_AUX_INFO),
            "::",
            stringify!(pFlushInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_RETRIEVE_AUX_INFO>())).ppResponseInfo as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_RETRIEVE_AUX_INFO),
            "::",
            stringify!(ppResponseInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_RETRIEVE_AUX_INFO>())).pwszCacheFileNamePrefix as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_RETRIEVE_AUX_INFO),
            "::",
            stringify!(pwszCacheFileNamePrefix)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_RETRIEVE_AUX_INFO>())).pftCacheResync as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_RETRIEVE_AUX_INFO),
            "::",
            stringify!(pftCacheResync)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_RETRIEVE_AUX_INFO>())).fProxyCacheRetrieval as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_RETRIEVE_AUX_INFO),
            "::",
            stringify!(fProxyCacheRetrieval)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_RETRIEVE_AUX_INFO>())).dwHttpStatusCode as *const _
                as usize
        },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_RETRIEVE_AUX_INFO),
            "::",
            stringify!(dwHttpStatusCode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_RETRIEVE_AUX_INFO>())).ppwszErrorResponseHeaders
                as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_RETRIEVE_AUX_INFO),
            "::",
            stringify!(ppwszErrorResponseHeaders)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_RETRIEVE_AUX_INFO>())).ppErrorContentBlob as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_RETRIEVE_AUX_INFO),
            "::",
            stringify!(ppErrorContentBlob)
        )
    );
}
pub type CRYPT_RETRIEVE_AUX_INFO = _CRYPT_RETRIEVE_AUX_INFO;
pub type PCRYPT_RETRIEVE_AUX_INFO = *mut _CRYPT_RETRIEVE_AUX_INFO;
extern "C" {
    pub fn CryptRetrieveObjectByUrlA(
        pszUrl: LPCSTR,
        pszObjectOid: LPCSTR,
        dwRetrievalFlags: DWORD,
        dwTimeout: DWORD,
        ppvObject: *mut LPVOID,
        hAsyncRetrieve: HCRYPTASYNC,
        pCredentials: PCRYPT_CREDENTIALS,
        pvVerify: LPVOID,
        pAuxInfo: PCRYPT_RETRIEVE_AUX_INFO,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptRetrieveObjectByUrlW(
        pszUrl: LPCWSTR,
        pszObjectOid: LPCSTR,
        dwRetrievalFlags: DWORD,
        dwTimeout: DWORD,
        ppvObject: *mut LPVOID,
        hAsyncRetrieve: HCRYPTASYNC,
        pCredentials: PCRYPT_CREDENTIALS,
        pvVerify: LPVOID,
        pAuxInfo: PCRYPT_RETRIEVE_AUX_INFO,
    ) -> BOOL;
}
pub type PFN_CRYPT_CANCEL_RETRIEVAL = ::std::option::Option<
    unsafe extern "C" fn(dwFlags: DWORD, pvArg: *mut ::std::os::raw::c_void) -> BOOL,
>;
extern "C" {
    pub fn CryptInstallCancelRetrieval(
        pfnCancel: PFN_CRYPT_CANCEL_RETRIEVAL,
        pvArg: *const ::std::os::raw::c_void,
        dwFlags: DWORD,
        pvReserved: *mut ::std::os::raw::c_void,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptUninstallCancelRetrieval(
        dwFlags: DWORD,
        pvReserved: *mut ::std::os::raw::c_void,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptCancelAsyncRetrieval(hAsyncRetrieval: HCRYPTASYNC) -> BOOL;
}
pub type PFN_CRYPT_ASYNC_RETRIEVAL_COMPLETION_FUNC = ::std::option::Option<
    unsafe extern "C" fn(
        pvCompletion: LPVOID,
        dwCompletionCode: DWORD,
        pszUrl: LPCSTR,
        pszObjectOid: LPSTR,
        pvObject: LPVOID,
    ),
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_ASYNC_RETRIEVAL_COMPLETION {
    pub pfnCompletion: PFN_CRYPT_ASYNC_RETRIEVAL_COMPLETION_FUNC,
    pub pvCompletion: LPVOID,
}
#[test]
fn bindgen_test_layout__CRYPT_ASYNC_RETRIEVAL_COMPLETION() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_ASYNC_RETRIEVAL_COMPLETION>(),
        16usize,
        concat!("Size of: ", stringify!(_CRYPT_ASYNC_RETRIEVAL_COMPLETION))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_ASYNC_RETRIEVAL_COMPLETION>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CRYPT_ASYNC_RETRIEVAL_COMPLETION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_ASYNC_RETRIEVAL_COMPLETION>())).pfnCompletion as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_ASYNC_RETRIEVAL_COMPLETION),
            "::",
            stringify!(pfnCompletion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_ASYNC_RETRIEVAL_COMPLETION>())).pvCompletion as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_ASYNC_RETRIEVAL_COMPLETION),
            "::",
            stringify!(pvCompletion)
        )
    );
}
pub type CRYPT_ASYNC_RETRIEVAL_COMPLETION = _CRYPT_ASYNC_RETRIEVAL_COMPLETION;
pub type PCRYPT_ASYNC_RETRIEVAL_COMPLETION = *mut _CRYPT_ASYNC_RETRIEVAL_COMPLETION;
pub type PFN_CANCEL_ASYNC_RETRIEVAL_FUNC =
    ::std::option::Option<unsafe extern "C" fn(hAsyncRetrieve: HCRYPTASYNC) -> BOOL>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_URL_ARRAY {
    pub cUrl: DWORD,
    pub rgwszUrl: *mut LPWSTR,
}
#[test]
fn bindgen_test_layout__CRYPT_URL_ARRAY() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_URL_ARRAY>(),
        16usize,
        concat!("Size of: ", stringify!(_CRYPT_URL_ARRAY))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_URL_ARRAY>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_URL_ARRAY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_URL_ARRAY>())).cUrl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_URL_ARRAY),
            "::",
            stringify!(cUrl)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_URL_ARRAY>())).rgwszUrl as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_URL_ARRAY),
            "::",
            stringify!(rgwszUrl)
        )
    );
}
pub type CRYPT_URL_ARRAY = _CRYPT_URL_ARRAY;
pub type PCRYPT_URL_ARRAY = *mut _CRYPT_URL_ARRAY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_URL_INFO {
    pub cbSize: DWORD,
    pub dwSyncDeltaTime: DWORD,
    pub cGroup: DWORD,
    pub rgcGroupEntry: *mut DWORD,
}
#[test]
fn bindgen_test_layout__CRYPT_URL_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_URL_INFO>(),
        24usize,
        concat!("Size of: ", stringify!(_CRYPT_URL_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_URL_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_URL_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_URL_INFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_URL_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_URL_INFO>())).dwSyncDeltaTime as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_URL_INFO),
            "::",
            stringify!(dwSyncDeltaTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_URL_INFO>())).cGroup as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_URL_INFO),
            "::",
            stringify!(cGroup)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_URL_INFO>())).rgcGroupEntry as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_URL_INFO),
            "::",
            stringify!(rgcGroupEntry)
        )
    );
}
pub type CRYPT_URL_INFO = _CRYPT_URL_INFO;
pub type PCRYPT_URL_INFO = *mut _CRYPT_URL_INFO;
extern "C" {
    pub fn CryptGetObjectUrl(
        pszUrlOid: LPCSTR,
        pvPara: LPVOID,
        dwFlags: DWORD,
        pUrlArray: PCRYPT_URL_ARRAY,
        pcbUrlArray: *mut DWORD,
        pUrlInfo: PCRYPT_URL_INFO,
        pcbUrlInfo: *mut DWORD,
        pvReserved: LPVOID,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_CRL_CONTEXT_PAIR {
    pub pCertContext: PCCERT_CONTEXT,
    pub pCrlContext: PCCRL_CONTEXT,
}
#[test]
fn bindgen_test_layout__CERT_CRL_CONTEXT_PAIR() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_CRL_CONTEXT_PAIR>(),
        16usize,
        concat!("Size of: ", stringify!(_CERT_CRL_CONTEXT_PAIR))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_CRL_CONTEXT_PAIR>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_CRL_CONTEXT_PAIR))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CRL_CONTEXT_PAIR>())).pCertContext as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CRL_CONTEXT_PAIR),
            "::",
            stringify!(pCertContext)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CRL_CONTEXT_PAIR>())).pCrlContext as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CRL_CONTEXT_PAIR),
            "::",
            stringify!(pCrlContext)
        )
    );
}
pub type CERT_CRL_CONTEXT_PAIR = _CERT_CRL_CONTEXT_PAIR;
pub type PCERT_CRL_CONTEXT_PAIR = *mut _CERT_CRL_CONTEXT_PAIR;
pub type PCCERT_CRL_CONTEXT_PAIR = *const CERT_CRL_CONTEXT_PAIR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO {
    pub cbSize: DWORD,
    pub iDeltaCrlIndicator: ::std::os::raw::c_int,
    pub pftCacheResync: LPFILETIME,
    pub pLastSyncTime: LPFILETIME,
    pub pMaxAgeTime: LPFILETIME,
    pub pChainPara: PCERT_REVOCATION_CHAIN_PARA,
    pub pDeltaCrlIndicator: PCRYPT_INTEGER_BLOB,
}
#[test]
fn bindgen_test_layout__CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO>(),
        48usize,
        concat!(
            "Size of: ",
            stringify!(_CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO>())).cbSize as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO>())).iDeltaCrlIndicator
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO),
            "::",
            stringify!(iDeltaCrlIndicator)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO>())).pftCacheResync
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO),
            "::",
            stringify!(pftCacheResync)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO>())).pLastSyncTime
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO),
            "::",
            stringify!(pLastSyncTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO>())).pMaxAgeTime
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO),
            "::",
            stringify!(pMaxAgeTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO>())).pChainPara
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO),
            "::",
            stringify!(pChainPara)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO>())).pDeltaCrlIndicator
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO),
            "::",
            stringify!(pDeltaCrlIndicator)
        )
    );
}
pub type CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO = _CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO;
pub type PCRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO = *mut _CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO;
extern "C" {
    pub fn CryptGetTimeValidObject(
        pszTimeValidOid: LPCSTR,
        pvPara: LPVOID,
        pIssuer: PCCERT_CONTEXT,
        pftValidFor: LPFILETIME,
        dwFlags: DWORD,
        dwTimeout: DWORD,
        ppvObject: *mut LPVOID,
        pCredentials: PCRYPT_CREDENTIALS,
        pExtraInfo: PCRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptFlushTimeValidObject(
        pszFlushTimeValidOid: LPCSTR,
        pvPara: LPVOID,
        pIssuer: PCCERT_CONTEXT,
        dwFlags: DWORD,
        pvReserved: LPVOID,
    ) -> BOOL;
}
extern "C" {
    pub fn CertCreateSelfSignCertificate(
        hCryptProvOrNCryptKey: HCRYPTPROV_OR_NCRYPT_KEY_HANDLE,
        pSubjectIssuerBlob: PCERT_NAME_BLOB,
        dwFlags: DWORD,
        pKeyProvInfo: PCRYPT_KEY_PROV_INFO,
        pSignatureAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER,
        pStartTime: PSYSTEMTIME,
        pEndTime: PSYSTEMTIME,
        pExtensions: PCERT_EXTENSIONS,
    ) -> PCCERT_CONTEXT;
}
extern "C" {
    pub fn CryptGetKeyIdentifierProperty(
        pKeyIdentifier: *const CRYPT_HASH_BLOB,
        dwPropId: DWORD,
        dwFlags: DWORD,
        pwszComputerName: LPCWSTR,
        pvReserved: *mut ::std::os::raw::c_void,
        pvData: *mut ::std::os::raw::c_void,
        pcbData: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptSetKeyIdentifierProperty(
        pKeyIdentifier: *const CRYPT_HASH_BLOB,
        dwPropId: DWORD,
        dwFlags: DWORD,
        pwszComputerName: LPCWSTR,
        pvReserved: *mut ::std::os::raw::c_void,
        pvData: *const ::std::os::raw::c_void,
    ) -> BOOL;
}
pub type PFN_CRYPT_ENUM_KEYID_PROP = ::std::option::Option<
    unsafe extern "C" fn(
        pKeyIdentifier: *const CRYPT_HASH_BLOB,
        dwFlags: DWORD,
        pvReserved: *mut ::std::os::raw::c_void,
        pvArg: *mut ::std::os::raw::c_void,
        cProp: DWORD,
        rgdwPropId: *mut DWORD,
        rgpvData: *mut *mut ::std::os::raw::c_void,
        rgcbData: *mut DWORD,
    ) -> BOOL,
>;
extern "C" {
    pub fn CryptEnumKeyIdentifierProperties(
        pKeyIdentifier: *const CRYPT_HASH_BLOB,
        dwPropId: DWORD,
        dwFlags: DWORD,
        pwszComputerName: LPCWSTR,
        pvReserved: *mut ::std::os::raw::c_void,
        pvArg: *mut ::std::os::raw::c_void,
        pfnEnum: PFN_CRYPT_ENUM_KEYID_PROP,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptCreateKeyIdentifierFromCSP(
        dwCertEncodingType: DWORD,
        pszPubKeyOID: LPCSTR,
        pPubKeyStruc: *const PUBLICKEYSTRUC,
        cbPubKeyStruc: DWORD,
        dwFlags: DWORD,
        pvReserved: *mut ::std::os::raw::c_void,
        pbHash: *mut BYTE,
        pcbHash: *mut DWORD,
    ) -> BOOL;
}
pub type HCERTCHAINENGINE = HANDLE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_CHAIN_ENGINE_CONFIG {
    pub cbSize: DWORD,
    pub hRestrictedRoot: HCERTSTORE,
    pub hRestrictedTrust: HCERTSTORE,
    pub hRestrictedOther: HCERTSTORE,
    pub cAdditionalStore: DWORD,
    pub rghAdditionalStore: *mut HCERTSTORE,
    pub dwFlags: DWORD,
    pub dwUrlRetrievalTimeout: DWORD,
    pub MaximumCachedCertificates: DWORD,
    pub CycleDetectionModulus: DWORD,
    pub hExclusiveRoot: HCERTSTORE,
    pub hExclusiveTrustedPeople: HCERTSTORE,
    pub dwExclusiveFlags: DWORD,
}
#[test]
fn bindgen_test_layout__CERT_CHAIN_ENGINE_CONFIG() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_CHAIN_ENGINE_CONFIG>(),
        88usize,
        concat!("Size of: ", stringify!(_CERT_CHAIN_ENGINE_CONFIG))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_CHAIN_ENGINE_CONFIG>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_CHAIN_ENGINE_CONFIG))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_ENGINE_CONFIG>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_ENGINE_CONFIG),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_ENGINE_CONFIG>())).hRestrictedRoot as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_ENGINE_CONFIG),
            "::",
            stringify!(hRestrictedRoot)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_ENGINE_CONFIG>())).hRestrictedTrust as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_ENGINE_CONFIG),
            "::",
            stringify!(hRestrictedTrust)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_ENGINE_CONFIG>())).hRestrictedOther as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_ENGINE_CONFIG),
            "::",
            stringify!(hRestrictedOther)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_ENGINE_CONFIG>())).cAdditionalStore as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_ENGINE_CONFIG),
            "::",
            stringify!(cAdditionalStore)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_ENGINE_CONFIG>())).rghAdditionalStore as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_ENGINE_CONFIG),
            "::",
            stringify!(rghAdditionalStore)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_ENGINE_CONFIG>())).dwFlags as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_ENGINE_CONFIG),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_ENGINE_CONFIG>())).dwUrlRetrievalTimeout as *const _
                as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_ENGINE_CONFIG),
            "::",
            stringify!(dwUrlRetrievalTimeout)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_ENGINE_CONFIG>())).MaximumCachedCertificates
                as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_ENGINE_CONFIG),
            "::",
            stringify!(MaximumCachedCertificates)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_ENGINE_CONFIG>())).CycleDetectionModulus as *const _
                as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_ENGINE_CONFIG),
            "::",
            stringify!(CycleDetectionModulus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_ENGINE_CONFIG>())).hExclusiveRoot as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_ENGINE_CONFIG),
            "::",
            stringify!(hExclusiveRoot)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_ENGINE_CONFIG>())).hExclusiveTrustedPeople
                as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_ENGINE_CONFIG),
            "::",
            stringify!(hExclusiveTrustedPeople)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_ENGINE_CONFIG>())).dwExclusiveFlags as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_ENGINE_CONFIG),
            "::",
            stringify!(dwExclusiveFlags)
        )
    );
}
pub type CERT_CHAIN_ENGINE_CONFIG = _CERT_CHAIN_ENGINE_CONFIG;
pub type PCERT_CHAIN_ENGINE_CONFIG = *mut _CERT_CHAIN_ENGINE_CONFIG;
extern "C" {
    pub fn CertCreateCertificateChainEngine(
        pConfig: PCERT_CHAIN_ENGINE_CONFIG,
        phChainEngine: *mut HCERTCHAINENGINE,
    ) -> BOOL;
}
extern "C" {
    pub fn CertFreeCertificateChainEngine(hChainEngine: HCERTCHAINENGINE);
}
extern "C" {
    pub fn CertResyncCertificateChainEngine(hChainEngine: HCERTCHAINENGINE) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_TRUST_STATUS {
    pub dwErrorStatus: DWORD,
    pub dwInfoStatus: DWORD,
}
#[test]
fn bindgen_test_layout__CERT_TRUST_STATUS() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_TRUST_STATUS>(),
        8usize,
        concat!("Size of: ", stringify!(_CERT_TRUST_STATUS))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_TRUST_STATUS>(),
        4usize,
        concat!("Alignment of ", stringify!(_CERT_TRUST_STATUS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_TRUST_STATUS>())).dwErrorStatus as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_TRUST_STATUS),
            "::",
            stringify!(dwErrorStatus)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_TRUST_STATUS>())).dwInfoStatus as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_TRUST_STATUS),
            "::",
            stringify!(dwInfoStatus)
        )
    );
}
pub type CERT_TRUST_STATUS = _CERT_TRUST_STATUS;
pub type PCERT_TRUST_STATUS = *mut _CERT_TRUST_STATUS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_REVOCATION_INFO {
    pub cbSize: DWORD,
    pub dwRevocationResult: DWORD,
    pub pszRevocationOid: LPCSTR,
    pub pvOidSpecificInfo: LPVOID,
    pub fHasFreshnessTime: BOOL,
    pub dwFreshnessTime: DWORD,
    pub pCrlInfo: PCERT_REVOCATION_CRL_INFO,
}
#[test]
fn bindgen_test_layout__CERT_REVOCATION_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_REVOCATION_INFO>(),
        40usize,
        concat!("Size of: ", stringify!(_CERT_REVOCATION_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_REVOCATION_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_REVOCATION_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_REVOCATION_INFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REVOCATION_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_REVOCATION_INFO>())).dwRevocationResult as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REVOCATION_INFO),
            "::",
            stringify!(dwRevocationResult)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_REVOCATION_INFO>())).pszRevocationOid as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REVOCATION_INFO),
            "::",
            stringify!(pszRevocationOid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_REVOCATION_INFO>())).pvOidSpecificInfo as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REVOCATION_INFO),
            "::",
            stringify!(pvOidSpecificInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_REVOCATION_INFO>())).fHasFreshnessTime as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REVOCATION_INFO),
            "::",
            stringify!(fHasFreshnessTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_REVOCATION_INFO>())).dwFreshnessTime as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REVOCATION_INFO),
            "::",
            stringify!(dwFreshnessTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_REVOCATION_INFO>())).pCrlInfo as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REVOCATION_INFO),
            "::",
            stringify!(pCrlInfo)
        )
    );
}
pub type CERT_REVOCATION_INFO = _CERT_REVOCATION_INFO;
pub type PCERT_REVOCATION_INFO = *mut _CERT_REVOCATION_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_TRUST_LIST_INFO {
    pub cbSize: DWORD,
    pub pCtlEntry: PCTL_ENTRY,
    pub pCtlContext: PCCTL_CONTEXT,
}
#[test]
fn bindgen_test_layout__CERT_TRUST_LIST_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_TRUST_LIST_INFO>(),
        24usize,
        concat!("Size of: ", stringify!(_CERT_TRUST_LIST_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_TRUST_LIST_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_TRUST_LIST_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_TRUST_LIST_INFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_TRUST_LIST_INFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_TRUST_LIST_INFO>())).pCtlEntry as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_TRUST_LIST_INFO),
            "::",
            stringify!(pCtlEntry)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_TRUST_LIST_INFO>())).pCtlContext as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_TRUST_LIST_INFO),
            "::",
            stringify!(pCtlContext)
        )
    );
}
pub type CERT_TRUST_LIST_INFO = _CERT_TRUST_LIST_INFO;
pub type PCERT_TRUST_LIST_INFO = *mut _CERT_TRUST_LIST_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_CHAIN_ELEMENT {
    pub cbSize: DWORD,
    pub pCertContext: PCCERT_CONTEXT,
    pub TrustStatus: CERT_TRUST_STATUS,
    pub pRevocationInfo: PCERT_REVOCATION_INFO,
    pub pIssuanceUsage: PCERT_ENHKEY_USAGE,
    pub pApplicationUsage: PCERT_ENHKEY_USAGE,
    pub pwszExtendedErrorInfo: LPCWSTR,
}
#[test]
fn bindgen_test_layout__CERT_CHAIN_ELEMENT() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_CHAIN_ELEMENT>(),
        56usize,
        concat!("Size of: ", stringify!(_CERT_CHAIN_ELEMENT))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_CHAIN_ELEMENT>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_CHAIN_ELEMENT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_CHAIN_ELEMENT>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_ELEMENT),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_ELEMENT>())).pCertContext as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_ELEMENT),
            "::",
            stringify!(pCertContext)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_CHAIN_ELEMENT>())).TrustStatus as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_ELEMENT),
            "::",
            stringify!(TrustStatus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_ELEMENT>())).pRevocationInfo as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_ELEMENT),
            "::",
            stringify!(pRevocationInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_ELEMENT>())).pIssuanceUsage as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_ELEMENT),
            "::",
            stringify!(pIssuanceUsage)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_ELEMENT>())).pApplicationUsage as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_ELEMENT),
            "::",
            stringify!(pApplicationUsage)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_ELEMENT>())).pwszExtendedErrorInfo as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_ELEMENT),
            "::",
            stringify!(pwszExtendedErrorInfo)
        )
    );
}
pub type CERT_CHAIN_ELEMENT = _CERT_CHAIN_ELEMENT;
pub type PCERT_CHAIN_ELEMENT = *mut _CERT_CHAIN_ELEMENT;
pub type PCCERT_CHAIN_ELEMENT = *const CERT_CHAIN_ELEMENT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_SIMPLE_CHAIN {
    pub cbSize: DWORD,
    pub TrustStatus: CERT_TRUST_STATUS,
    pub cElement: DWORD,
    pub rgpElement: *mut PCERT_CHAIN_ELEMENT,
    pub pTrustListInfo: PCERT_TRUST_LIST_INFO,
    pub fHasRevocationFreshnessTime: BOOL,
    pub dwRevocationFreshnessTime: DWORD,
}
#[test]
fn bindgen_test_layout__CERT_SIMPLE_CHAIN() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_SIMPLE_CHAIN>(),
        40usize,
        concat!("Size of: ", stringify!(_CERT_SIMPLE_CHAIN))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_SIMPLE_CHAIN>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_SIMPLE_CHAIN))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_SIMPLE_CHAIN>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SIMPLE_CHAIN),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_SIMPLE_CHAIN>())).TrustStatus as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SIMPLE_CHAIN),
            "::",
            stringify!(TrustStatus)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_SIMPLE_CHAIN>())).cElement as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SIMPLE_CHAIN),
            "::",
            stringify!(cElement)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_SIMPLE_CHAIN>())).rgpElement as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SIMPLE_CHAIN),
            "::",
            stringify!(rgpElement)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_SIMPLE_CHAIN>())).pTrustListInfo as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SIMPLE_CHAIN),
            "::",
            stringify!(pTrustListInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_SIMPLE_CHAIN>())).fHasRevocationFreshnessTime as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SIMPLE_CHAIN),
            "::",
            stringify!(fHasRevocationFreshnessTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_SIMPLE_CHAIN>())).dwRevocationFreshnessTime as *const _
                as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SIMPLE_CHAIN),
            "::",
            stringify!(dwRevocationFreshnessTime)
        )
    );
}
pub type CERT_SIMPLE_CHAIN = _CERT_SIMPLE_CHAIN;
pub type PCERT_SIMPLE_CHAIN = *mut _CERT_SIMPLE_CHAIN;
pub type PCCERT_SIMPLE_CHAIN = *const CERT_SIMPLE_CHAIN;
pub type CERT_CHAIN_CONTEXT = _CERT_CHAIN_CONTEXT;
pub type PCERT_CHAIN_CONTEXT = *mut _CERT_CHAIN_CONTEXT;
pub type PCCERT_CHAIN_CONTEXT = *const CERT_CHAIN_CONTEXT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_CHAIN_CONTEXT {
    pub cbSize: DWORD,
    pub TrustStatus: CERT_TRUST_STATUS,
    pub cChain: DWORD,
    pub rgpChain: *mut PCERT_SIMPLE_CHAIN,
    pub cLowerQualityChainContext: DWORD,
    pub rgpLowerQualityChainContext: *mut PCCERT_CHAIN_CONTEXT,
    pub fHasRevocationFreshnessTime: BOOL,
    pub dwRevocationFreshnessTime: DWORD,
    pub dwCreateFlags: DWORD,
    pub ChainId: GUID,
}
#[test]
fn bindgen_test_layout__CERT_CHAIN_CONTEXT() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_CHAIN_CONTEXT>(),
        72usize,
        concat!("Size of: ", stringify!(_CERT_CHAIN_CONTEXT))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_CHAIN_CONTEXT>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_CHAIN_CONTEXT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_CHAIN_CONTEXT>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_CONTEXT),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_CHAIN_CONTEXT>())).TrustStatus as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_CONTEXT),
            "::",
            stringify!(TrustStatus)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_CHAIN_CONTEXT>())).cChain as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_CONTEXT),
            "::",
            stringify!(cChain)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_CHAIN_CONTEXT>())).rgpChain as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_CONTEXT),
            "::",
            stringify!(rgpChain)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_CONTEXT>())).cLowerQualityChainContext as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_CONTEXT),
            "::",
            stringify!(cLowerQualityChainContext)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_CONTEXT>())).rgpLowerQualityChainContext as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_CONTEXT),
            "::",
            stringify!(rgpLowerQualityChainContext)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_CONTEXT>())).fHasRevocationFreshnessTime as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_CONTEXT),
            "::",
            stringify!(fHasRevocationFreshnessTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_CONTEXT>())).dwRevocationFreshnessTime as *const _
                as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_CONTEXT),
            "::",
            stringify!(dwRevocationFreshnessTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_CONTEXT>())).dwCreateFlags as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_CONTEXT),
            "::",
            stringify!(dwCreateFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_CHAIN_CONTEXT>())).ChainId as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_CONTEXT),
            "::",
            stringify!(ChainId)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_USAGE_MATCH {
    pub dwType: DWORD,
    pub Usage: CERT_ENHKEY_USAGE,
}
#[test]
fn bindgen_test_layout__CERT_USAGE_MATCH() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_USAGE_MATCH>(),
        24usize,
        concat!("Size of: ", stringify!(_CERT_USAGE_MATCH))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_USAGE_MATCH>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_USAGE_MATCH))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_USAGE_MATCH>())).dwType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_USAGE_MATCH),
            "::",
            stringify!(dwType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_USAGE_MATCH>())).Usage as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_USAGE_MATCH),
            "::",
            stringify!(Usage)
        )
    );
}
pub type CERT_USAGE_MATCH = _CERT_USAGE_MATCH;
pub type PCERT_USAGE_MATCH = *mut _CERT_USAGE_MATCH;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CTL_USAGE_MATCH {
    pub dwType: DWORD,
    pub Usage: CTL_USAGE,
}
#[test]
fn bindgen_test_layout__CTL_USAGE_MATCH() {
    assert_eq!(
        ::std::mem::size_of::<_CTL_USAGE_MATCH>(),
        24usize,
        concat!("Size of: ", stringify!(_CTL_USAGE_MATCH))
    );
    assert_eq!(
        ::std::mem::align_of::<_CTL_USAGE_MATCH>(),
        8usize,
        concat!("Alignment of ", stringify!(_CTL_USAGE_MATCH))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CTL_USAGE_MATCH>())).dwType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_USAGE_MATCH),
            "::",
            stringify!(dwType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CTL_USAGE_MATCH>())).Usage as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CTL_USAGE_MATCH),
            "::",
            stringify!(Usage)
        )
    );
}
pub type CTL_USAGE_MATCH = _CTL_USAGE_MATCH;
pub type PCTL_USAGE_MATCH = *mut _CTL_USAGE_MATCH;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_CHAIN_PARA {
    pub cbSize: DWORD,
    pub RequestedUsage: CERT_USAGE_MATCH,
}
#[test]
fn bindgen_test_layout__CERT_CHAIN_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_CHAIN_PARA>(),
        32usize,
        concat!("Size of: ", stringify!(_CERT_CHAIN_PARA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_CHAIN_PARA>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_CHAIN_PARA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_CHAIN_PARA>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_CHAIN_PARA>())).RequestedUsage as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_PARA),
            "::",
            stringify!(RequestedUsage)
        )
    );
}
pub type CERT_CHAIN_PARA = _CERT_CHAIN_PARA;
pub type PCERT_CHAIN_PARA = *mut _CERT_CHAIN_PARA;
extern "C" {
    pub fn CertGetCertificateChain(
        hChainEngine: HCERTCHAINENGINE,
        pCertContext: PCCERT_CONTEXT,
        pTime: LPFILETIME,
        hAdditionalStore: HCERTSTORE,
        pChainPara: PCERT_CHAIN_PARA,
        dwFlags: DWORD,
        pvReserved: LPVOID,
        ppChainContext: *mut PCCERT_CHAIN_CONTEXT,
    ) -> BOOL;
}
extern "C" {
    pub fn CertFreeCertificateChain(pChainContext: PCCERT_CHAIN_CONTEXT);
}
extern "C" {
    pub fn CertDuplicateCertificateChain(
        pChainContext: PCCERT_CHAIN_CONTEXT,
    ) -> PCCERT_CHAIN_CONTEXT;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_REVOCATION_CHAIN_PARA {
    pub cbSize: DWORD,
    pub hChainEngine: HCERTCHAINENGINE,
    pub hAdditionalStore: HCERTSTORE,
    pub dwChainFlags: DWORD,
    pub dwUrlRetrievalTimeout: DWORD,
    pub pftCurrentTime: LPFILETIME,
    pub pftCacheResync: LPFILETIME,
    pub cbMaxUrlRetrievalByteCount: DWORD,
}
#[test]
fn bindgen_test_layout__CERT_REVOCATION_CHAIN_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_REVOCATION_CHAIN_PARA>(),
        56usize,
        concat!("Size of: ", stringify!(_CERT_REVOCATION_CHAIN_PARA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_REVOCATION_CHAIN_PARA>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_REVOCATION_CHAIN_PARA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_REVOCATION_CHAIN_PARA>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REVOCATION_CHAIN_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_REVOCATION_CHAIN_PARA>())).hChainEngine as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REVOCATION_CHAIN_PARA),
            "::",
            stringify!(hChainEngine)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_REVOCATION_CHAIN_PARA>())).hAdditionalStore as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REVOCATION_CHAIN_PARA),
            "::",
            stringify!(hAdditionalStore)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_REVOCATION_CHAIN_PARA>())).dwChainFlags as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REVOCATION_CHAIN_PARA),
            "::",
            stringify!(dwChainFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_REVOCATION_CHAIN_PARA>())).dwUrlRetrievalTimeout
                as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REVOCATION_CHAIN_PARA),
            "::",
            stringify!(dwUrlRetrievalTimeout)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_REVOCATION_CHAIN_PARA>())).pftCurrentTime as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REVOCATION_CHAIN_PARA),
            "::",
            stringify!(pftCurrentTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_REVOCATION_CHAIN_PARA>())).pftCacheResync as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REVOCATION_CHAIN_PARA),
            "::",
            stringify!(pftCacheResync)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_REVOCATION_CHAIN_PARA>())).cbMaxUrlRetrievalByteCount
                as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_REVOCATION_CHAIN_PARA),
            "::",
            stringify!(cbMaxUrlRetrievalByteCount)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRL_REVOCATION_INFO {
    pub pCrlEntry: PCRL_ENTRY,
    pub pCrlContext: PCCRL_CONTEXT,
    pub pCrlIssuerChain: PCCERT_CHAIN_CONTEXT,
}
#[test]
fn bindgen_test_layout__CRL_REVOCATION_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CRL_REVOCATION_INFO>(),
        24usize,
        concat!("Size of: ", stringify!(_CRL_REVOCATION_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRL_REVOCATION_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRL_REVOCATION_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRL_REVOCATION_INFO>())).pCrlEntry as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_REVOCATION_INFO),
            "::",
            stringify!(pCrlEntry)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRL_REVOCATION_INFO>())).pCrlContext as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_REVOCATION_INFO),
            "::",
            stringify!(pCrlContext)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRL_REVOCATION_INFO>())).pCrlIssuerChain as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRL_REVOCATION_INFO),
            "::",
            stringify!(pCrlIssuerChain)
        )
    );
}
pub type CRL_REVOCATION_INFO = _CRL_REVOCATION_INFO;
pub type PCRL_REVOCATION_INFO = *mut _CRL_REVOCATION_INFO;
extern "C" {
    pub fn CertFindChainInStore(
        hCertStore: HCERTSTORE,
        dwCertEncodingType: DWORD,
        dwFindFlags: DWORD,
        dwFindType: DWORD,
        pvFindPara: *const ::std::os::raw::c_void,
        pPrevChainContext: PCCERT_CHAIN_CONTEXT,
    ) -> PCCERT_CHAIN_CONTEXT;
}
pub type PFN_CERT_CHAIN_FIND_BY_ISSUER_CALLBACK = ::std::option::Option<
    unsafe extern "C" fn(pCert: PCCERT_CONTEXT, pvFindArg: *mut ::std::os::raw::c_void) -> BOOL,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_CHAIN_FIND_BY_ISSUER_PARA {
    pub cbSize: DWORD,
    pub pszUsageIdentifier: LPCSTR,
    pub dwKeySpec: DWORD,
    pub dwAcquirePrivateKeyFlags: DWORD,
    pub cIssuer: DWORD,
    pub rgIssuer: *mut CERT_NAME_BLOB,
    pub pfnFindCallback: PFN_CERT_CHAIN_FIND_BY_ISSUER_CALLBACK,
    pub pvFindArg: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout__CERT_CHAIN_FIND_BY_ISSUER_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_CHAIN_FIND_BY_ISSUER_PARA>(),
        56usize,
        concat!("Size of: ", stringify!(_CERT_CHAIN_FIND_BY_ISSUER_PARA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_CHAIN_FIND_BY_ISSUER_PARA>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_CHAIN_FIND_BY_ISSUER_PARA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_FIND_BY_ISSUER_PARA>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_FIND_BY_ISSUER_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_FIND_BY_ISSUER_PARA>())).pszUsageIdentifier
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_FIND_BY_ISSUER_PARA),
            "::",
            stringify!(pszUsageIdentifier)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_FIND_BY_ISSUER_PARA>())).dwKeySpec as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_FIND_BY_ISSUER_PARA),
            "::",
            stringify!(dwKeySpec)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_FIND_BY_ISSUER_PARA>())).dwAcquirePrivateKeyFlags
                as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_FIND_BY_ISSUER_PARA),
            "::",
            stringify!(dwAcquirePrivateKeyFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_FIND_BY_ISSUER_PARA>())).cIssuer as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_FIND_BY_ISSUER_PARA),
            "::",
            stringify!(cIssuer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_FIND_BY_ISSUER_PARA>())).rgIssuer as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_FIND_BY_ISSUER_PARA),
            "::",
            stringify!(rgIssuer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_FIND_BY_ISSUER_PARA>())).pfnFindCallback as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_FIND_BY_ISSUER_PARA),
            "::",
            stringify!(pfnFindCallback)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_FIND_BY_ISSUER_PARA>())).pvFindArg as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_FIND_BY_ISSUER_PARA),
            "::",
            stringify!(pvFindArg)
        )
    );
}
pub type CERT_CHAIN_FIND_ISSUER_PARA = _CERT_CHAIN_FIND_BY_ISSUER_PARA;
pub type PCERT_CHAIN_FIND_ISSUER_PARA = *mut _CERT_CHAIN_FIND_BY_ISSUER_PARA;
pub type CERT_CHAIN_FIND_BY_ISSUER_PARA = _CERT_CHAIN_FIND_BY_ISSUER_PARA;
pub type PCERT_CHAIN_FIND_BY_ISSUER_PARA = *mut _CERT_CHAIN_FIND_BY_ISSUER_PARA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_CHAIN_POLICY_PARA {
    pub cbSize: DWORD,
    pub dwFlags: DWORD,
    pub pvExtraPolicyPara: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout__CERT_CHAIN_POLICY_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_CHAIN_POLICY_PARA>(),
        16usize,
        concat!("Size of: ", stringify!(_CERT_CHAIN_POLICY_PARA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_CHAIN_POLICY_PARA>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_CHAIN_POLICY_PARA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_CHAIN_POLICY_PARA>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_POLICY_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_CHAIN_POLICY_PARA>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_POLICY_PARA),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_POLICY_PARA>())).pvExtraPolicyPara as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_POLICY_PARA),
            "::",
            stringify!(pvExtraPolicyPara)
        )
    );
}
pub type CERT_CHAIN_POLICY_PARA = _CERT_CHAIN_POLICY_PARA;
pub type PCERT_CHAIN_POLICY_PARA = *mut _CERT_CHAIN_POLICY_PARA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_CHAIN_POLICY_STATUS {
    pub cbSize: DWORD,
    pub dwError: DWORD,
    pub lChainIndex: LONG,
    pub lElementIndex: LONG,
    pub pvExtraPolicyStatus: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout__CERT_CHAIN_POLICY_STATUS() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_CHAIN_POLICY_STATUS>(),
        24usize,
        concat!("Size of: ", stringify!(_CERT_CHAIN_POLICY_STATUS))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_CHAIN_POLICY_STATUS>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_CHAIN_POLICY_STATUS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_POLICY_STATUS>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_POLICY_STATUS),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_POLICY_STATUS>())).dwError as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_POLICY_STATUS),
            "::",
            stringify!(dwError)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_POLICY_STATUS>())).lChainIndex as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_POLICY_STATUS),
            "::",
            stringify!(lChainIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_POLICY_STATUS>())).lElementIndex as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_POLICY_STATUS),
            "::",
            stringify!(lElementIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_CHAIN_POLICY_STATUS>())).pvExtraPolicyStatus as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_CHAIN_POLICY_STATUS),
            "::",
            stringify!(pvExtraPolicyStatus)
        )
    );
}
pub type CERT_CHAIN_POLICY_STATUS = _CERT_CHAIN_POLICY_STATUS;
pub type PCERT_CHAIN_POLICY_STATUS = *mut _CERT_CHAIN_POLICY_STATUS;
extern "C" {
    pub fn CertVerifyCertificateChainPolicy(
        pszPolicyOID: LPCSTR,
        pChainContext: PCCERT_CHAIN_CONTEXT,
        pPolicyPara: PCERT_CHAIN_POLICY_PARA,
        pPolicyStatus: PCERT_CHAIN_POLICY_STATUS,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA {
    pub cbSize: DWORD,
    pub dwRegPolicySettings: DWORD,
    pub pSignerInfo: PCMSG_SIGNER_INFO,
}
#[test]
fn bindgen_test_layout__AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA>())).cbSize
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA>()))
                .dwRegPolicySettings as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA),
            "::",
            stringify!(dwRegPolicySettings)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA>())).pSignerInfo
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA),
            "::",
            stringify!(pSignerInfo)
        )
    );
}
pub type AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA = _AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA;
pub type PAUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA =
    *mut _AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS {
    pub cbSize: DWORD,
    pub fCommercial: BOOL,
}
#[test]
fn bindgen_test_layout__AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS() {
    assert_eq!(
        ::std::mem::size_of::<_AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS>())).cbSize
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS>())).fCommercial
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS),
            "::",
            stringify!(fCommercial)
        )
    );
}
pub type AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS = _AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS;
pub type PAUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS =
    *mut _AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA {
    pub cbSize: DWORD,
    pub dwRegPolicySettings: DWORD,
    pub fCommercial: BOOL,
}
#[test]
fn bindgen_test_layout__AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA>(),
        12usize,
        concat!(
            "Size of: ",
            stringify!(_AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA>())).cbSize
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA>()))
                .dwRegPolicySettings as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA),
            "::",
            stringify!(dwRegPolicySettings)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA>())).fCommercial
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA),
            "::",
            stringify!(fCommercial)
        )
    );
}
pub type AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA =
    _AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA;
pub type PAUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA =
    *mut _AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _HTTPSPolicyCallbackData {
    pub __bindgen_anon_1: _HTTPSPolicyCallbackData__bindgen_ty_1,
    pub dwAuthType: DWORD,
    pub fdwChecks: DWORD,
    pub pwszServerName: *mut WCHAR,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _HTTPSPolicyCallbackData__bindgen_ty_1 {
    pub cbStruct: DWORD,
    pub cbSize: DWORD,
    _bindgen_union_align: u32,
}
#[test]
fn bindgen_test_layout__HTTPSPolicyCallbackData__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_HTTPSPolicyCallbackData__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_HTTPSPolicyCallbackData__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_HTTPSPolicyCallbackData__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_HTTPSPolicyCallbackData__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_HTTPSPolicyCallbackData__bindgen_ty_1>())).cbStruct as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_HTTPSPolicyCallbackData__bindgen_ty_1),
            "::",
            stringify!(cbStruct)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_HTTPSPolicyCallbackData__bindgen_ty_1>())).cbSize as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_HTTPSPolicyCallbackData__bindgen_ty_1),
            "::",
            stringify!(cbSize)
        )
    );
}
#[test]
fn bindgen_test_layout__HTTPSPolicyCallbackData() {
    assert_eq!(
        ::std::mem::size_of::<_HTTPSPolicyCallbackData>(),
        24usize,
        concat!("Size of: ", stringify!(_HTTPSPolicyCallbackData))
    );
    assert_eq!(
        ::std::mem::align_of::<_HTTPSPolicyCallbackData>(),
        8usize,
        concat!("Alignment of ", stringify!(_HTTPSPolicyCallbackData))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_HTTPSPolicyCallbackData>())).dwAuthType as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_HTTPSPolicyCallbackData),
            "::",
            stringify!(dwAuthType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_HTTPSPolicyCallbackData>())).fdwChecks as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_HTTPSPolicyCallbackData),
            "::",
            stringify!(fdwChecks)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_HTTPSPolicyCallbackData>())).pwszServerName as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_HTTPSPolicyCallbackData),
            "::",
            stringify!(pwszServerName)
        )
    );
}
pub type HTTPSPolicyCallbackData = _HTTPSPolicyCallbackData;
pub type PHTTPSPolicyCallbackData = *mut _HTTPSPolicyCallbackData;
pub type SSL_EXTRA_CERT_CHAIN_POLICY_PARA = _HTTPSPolicyCallbackData;
pub type PSSL_EXTRA_CERT_CHAIN_POLICY_PARA = *mut _HTTPSPolicyCallbackData;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _EV_EXTRA_CERT_CHAIN_POLICY_PARA {
    pub cbSize: DWORD,
    pub dwRootProgramQualifierFlags: DWORD,
}
#[test]
fn bindgen_test_layout__EV_EXTRA_CERT_CHAIN_POLICY_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_EV_EXTRA_CERT_CHAIN_POLICY_PARA>(),
        8usize,
        concat!("Size of: ", stringify!(_EV_EXTRA_CERT_CHAIN_POLICY_PARA))
    );
    assert_eq!(
        ::std::mem::align_of::<_EV_EXTRA_CERT_CHAIN_POLICY_PARA>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_EV_EXTRA_CERT_CHAIN_POLICY_PARA)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EV_EXTRA_CERT_CHAIN_POLICY_PARA>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_EV_EXTRA_CERT_CHAIN_POLICY_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EV_EXTRA_CERT_CHAIN_POLICY_PARA>())).dwRootProgramQualifierFlags
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_EV_EXTRA_CERT_CHAIN_POLICY_PARA),
            "::",
            stringify!(dwRootProgramQualifierFlags)
        )
    );
}
pub type EV_EXTRA_CERT_CHAIN_POLICY_PARA = _EV_EXTRA_CERT_CHAIN_POLICY_PARA;
pub type PEV_EXTRA_CERT_CHAIN_POLICY_PARA = *mut _EV_EXTRA_CERT_CHAIN_POLICY_PARA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _EV_EXTRA_CERT_CHAIN_POLICY_STATUS {
    pub cbSize: DWORD,
    pub dwQualifiers: DWORD,
    pub dwIssuanceUsageIndex: DWORD,
}
#[test]
fn bindgen_test_layout__EV_EXTRA_CERT_CHAIN_POLICY_STATUS() {
    assert_eq!(
        ::std::mem::size_of::<_EV_EXTRA_CERT_CHAIN_POLICY_STATUS>(),
        12usize,
        concat!("Size of: ", stringify!(_EV_EXTRA_CERT_CHAIN_POLICY_STATUS))
    );
    assert_eq!(
        ::std::mem::align_of::<_EV_EXTRA_CERT_CHAIN_POLICY_STATUS>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_EV_EXTRA_CERT_CHAIN_POLICY_STATUS)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EV_EXTRA_CERT_CHAIN_POLICY_STATUS>())).cbSize as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_EV_EXTRA_CERT_CHAIN_POLICY_STATUS),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EV_EXTRA_CERT_CHAIN_POLICY_STATUS>())).dwQualifiers as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_EV_EXTRA_CERT_CHAIN_POLICY_STATUS),
            "::",
            stringify!(dwQualifiers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EV_EXTRA_CERT_CHAIN_POLICY_STATUS>())).dwIssuanceUsageIndex
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_EV_EXTRA_CERT_CHAIN_POLICY_STATUS),
            "::",
            stringify!(dwIssuanceUsageIndex)
        )
    );
}
pub type EV_EXTRA_CERT_CHAIN_POLICY_STATUS = _EV_EXTRA_CERT_CHAIN_POLICY_STATUS;
pub type PEV_EXTRA_CERT_CHAIN_POLICY_STATUS = *mut _EV_EXTRA_CERT_CHAIN_POLICY_STATUS;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _SSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS {
    pub cbSize: DWORD,
    pub dwErrorLevel: DWORD,
    pub dwErrorCategory: DWORD,
    pub dwReserved: DWORD,
    pub wszErrorText: [WCHAR; 256usize],
}
#[test]
fn bindgen_test_layout__SSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS() {
    assert_eq!(
        ::std::mem::size_of::<_SSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS>(),
        528usize,
        concat!(
            "Size of: ",
            stringify!(_SSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_SSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_SSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS>())).cbSize as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS>())).dwErrorLevel
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS),
            "::",
            stringify!(dwErrorLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS>())).dwErrorCategory
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS),
            "::",
            stringify!(dwErrorCategory)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS>())).dwReserved
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_SSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS),
            "::",
            stringify!(dwReserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS>())).wszErrorText
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS),
            "::",
            stringify!(wszErrorText)
        )
    );
}
pub type SSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS = _SSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS;
pub type PSSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS = *mut _SSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SSL_HPKP_HEADER_EXTRA_CERT_CHAIN_POLICY_PARA {
    pub cbSize: DWORD,
    pub dwReserved: DWORD,
    pub pwszServerName: LPWSTR,
    pub rgpszHpkpValue: [LPSTR; 2usize],
}
#[test]
fn bindgen_test_layout__SSL_HPKP_HEADER_EXTRA_CERT_CHAIN_POLICY_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_SSL_HPKP_HEADER_EXTRA_CERT_CHAIN_POLICY_PARA>(),
        32usize,
        concat!(
            "Size of: ",
            stringify!(_SSL_HPKP_HEADER_EXTRA_CERT_CHAIN_POLICY_PARA)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_SSL_HPKP_HEADER_EXTRA_CERT_CHAIN_POLICY_PARA>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_SSL_HPKP_HEADER_EXTRA_CERT_CHAIN_POLICY_PARA)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SSL_HPKP_HEADER_EXTRA_CERT_CHAIN_POLICY_PARA>())).cbSize
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SSL_HPKP_HEADER_EXTRA_CERT_CHAIN_POLICY_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SSL_HPKP_HEADER_EXTRA_CERT_CHAIN_POLICY_PARA>())).dwReserved
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SSL_HPKP_HEADER_EXTRA_CERT_CHAIN_POLICY_PARA),
            "::",
            stringify!(dwReserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SSL_HPKP_HEADER_EXTRA_CERT_CHAIN_POLICY_PARA>())).pwszServerName
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SSL_HPKP_HEADER_EXTRA_CERT_CHAIN_POLICY_PARA),
            "::",
            stringify!(pwszServerName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SSL_HPKP_HEADER_EXTRA_CERT_CHAIN_POLICY_PARA>())).rgpszHpkpValue
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SSL_HPKP_HEADER_EXTRA_CERT_CHAIN_POLICY_PARA),
            "::",
            stringify!(rgpszHpkpValue)
        )
    );
}
pub type SSL_HPKP_HEADER_EXTRA_CERT_CHAIN_POLICY_PARA =
    _SSL_HPKP_HEADER_EXTRA_CERT_CHAIN_POLICY_PARA;
pub type PSSL_HPKP_HEADER_EXTRA_CERT_CHAIN_POLICY_PARA =
    *mut _SSL_HPKP_HEADER_EXTRA_CERT_CHAIN_POLICY_PARA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_PARA {
    pub cbSize: DWORD,
    pub dwReserved: DWORD,
    pub pwszServerName: PCWSTR,
}
#[test]
fn bindgen_test_layout__SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_PARA>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_PARA)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_PARA>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_PARA)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_PARA>())).cbSize as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_PARA>())).dwReserved
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_PARA),
            "::",
            stringify!(dwReserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_PARA>())).pwszServerName
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_PARA),
            "::",
            stringify!(pwszServerName)
        )
    );
}
pub type SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_PARA = _SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_PARA;
pub type PSSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_PARA = *mut _SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_PARA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_STATUS {
    pub cbSize: DWORD,
    pub lError: LONG,
    pub wszErrorText: [WCHAR; 512usize],
}
#[test]
fn bindgen_test_layout__SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_STATUS() {
    assert_eq!(
        ::std::mem::size_of::<_SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_STATUS>(),
        1032usize,
        concat!(
            "Size of: ",
            stringify!(_SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_STATUS)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_STATUS>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_STATUS)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_STATUS>())).cbSize
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_STATUS),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_STATUS>())).lError
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_STATUS),
            "::",
            stringify!(lError)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_STATUS>())).wszErrorText
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_STATUS),
            "::",
            stringify!(wszErrorText)
        )
    );
}
pub type SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_STATUS = _SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_STATUS;
pub type PSSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_STATUS =
    *mut _SSL_KEY_PIN_EXTRA_CERT_CHAIN_POLICY_STATUS;
extern "C" {
    pub fn CryptStringToBinaryA(
        pszString: LPCSTR,
        cchString: DWORD,
        dwFlags: DWORD,
        pbBinary: *mut BYTE,
        pcbBinary: *mut DWORD,
        pdwSkip: *mut DWORD,
        pdwFlags: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptStringToBinaryW(
        pszString: LPCWSTR,
        cchString: DWORD,
        dwFlags: DWORD,
        pbBinary: *mut BYTE,
        pcbBinary: *mut DWORD,
        pdwSkip: *mut DWORD,
        pdwFlags: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptBinaryToStringA(
        pbBinary: *const BYTE,
        cbBinary: DWORD,
        dwFlags: DWORD,
        pszString: LPSTR,
        pcchString: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptBinaryToStringW(
        pbBinary: *const BYTE,
        cbBinary: DWORD,
        dwFlags: DWORD,
        pszString: LPWSTR,
        pcchString: *mut DWORD,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_PKCS12_PBE_PARAMS {
    pub iIterations: ::std::os::raw::c_int,
    pub cbSalt: ULONG,
}
#[test]
fn bindgen_test_layout__CRYPT_PKCS12_PBE_PARAMS() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_PKCS12_PBE_PARAMS>(),
        8usize,
        concat!("Size of: ", stringify!(_CRYPT_PKCS12_PBE_PARAMS))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_PKCS12_PBE_PARAMS>(),
        4usize,
        concat!("Alignment of ", stringify!(_CRYPT_PKCS12_PBE_PARAMS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_PKCS12_PBE_PARAMS>())).iIterations as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PKCS12_PBE_PARAMS),
            "::",
            stringify!(iIterations)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_PKCS12_PBE_PARAMS>())).cbSalt as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_PKCS12_PBE_PARAMS),
            "::",
            stringify!(cbSalt)
        )
    );
}
pub type CRYPT_PKCS12_PBE_PARAMS = _CRYPT_PKCS12_PBE_PARAMS;
extern "C" {
    pub fn PFXImportCertStore(
        pPFX: *mut CRYPT_DATA_BLOB,
        szPassword: LPCWSTR,
        dwFlags: DWORD,
    ) -> HCERTSTORE;
}
extern "C" {
    pub fn PFXIsPFXBlob(pPFX: *mut CRYPT_DATA_BLOB) -> BOOL;
}
extern "C" {
    pub fn PFXVerifyPassword(
        pPFX: *mut CRYPT_DATA_BLOB,
        szPassword: LPCWSTR,
        dwFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn PFXExportCertStoreEx(
        hStore: HCERTSTORE,
        pPFX: *mut CRYPT_DATA_BLOB,
        szPassword: LPCWSTR,
        pvPara: *mut ::std::os::raw::c_void,
        dwFlags: DWORD,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PKCS12_PBES2_EXPORT_PARAMS {
    pub dwSize: DWORD,
    pub hNcryptDescriptor: PVOID,
    pub pwszPbes2Alg: LPWSTR,
}
#[test]
fn bindgen_test_layout__PKCS12_PBES2_EXPORT_PARAMS() {
    assert_eq!(
        ::std::mem::size_of::<_PKCS12_PBES2_EXPORT_PARAMS>(),
        24usize,
        concat!("Size of: ", stringify!(_PKCS12_PBES2_EXPORT_PARAMS))
    );
    assert_eq!(
        ::std::mem::align_of::<_PKCS12_PBES2_EXPORT_PARAMS>(),
        8usize,
        concat!("Alignment of ", stringify!(_PKCS12_PBES2_EXPORT_PARAMS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PKCS12_PBES2_EXPORT_PARAMS>())).dwSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PKCS12_PBES2_EXPORT_PARAMS),
            "::",
            stringify!(dwSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PKCS12_PBES2_EXPORT_PARAMS>())).hNcryptDescriptor as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PKCS12_PBES2_EXPORT_PARAMS),
            "::",
            stringify!(hNcryptDescriptor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PKCS12_PBES2_EXPORT_PARAMS>())).pwszPbes2Alg as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PKCS12_PBES2_EXPORT_PARAMS),
            "::",
            stringify!(pwszPbes2Alg)
        )
    );
}
pub type PKCS12_PBES2_EXPORT_PARAMS = _PKCS12_PBES2_EXPORT_PARAMS;
pub type PPKCS12_PBES2_EXPORT_PARAMS = *mut _PKCS12_PBES2_EXPORT_PARAMS;
extern "C" {
    pub fn PFXExportCertStore(
        hStore: HCERTSTORE,
        pPFX: *mut CRYPT_DATA_BLOB,
        szPassword: LPCWSTR,
        dwFlags: DWORD,
    ) -> BOOL;
}
pub type HCERT_SERVER_OCSP_RESPONSE = *mut ::std::os::raw::c_void;
pub type CERT_SERVER_OCSP_RESPONSE_CONTEXT = _CERT_SERVER_OCSP_RESPONSE_CONTEXT;
pub type PCERT_SERVER_OCSP_RESPONSE_CONTEXT = *mut _CERT_SERVER_OCSP_RESPONSE_CONTEXT;
pub type PCCERT_SERVER_OCSP_RESPONSE_CONTEXT = *const CERT_SERVER_OCSP_RESPONSE_CONTEXT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_SERVER_OCSP_RESPONSE_CONTEXT {
    pub cbSize: DWORD,
    pub pbEncodedOcspResponse: *mut BYTE,
    pub cbEncodedOcspResponse: DWORD,
}
#[test]
fn bindgen_test_layout__CERT_SERVER_OCSP_RESPONSE_CONTEXT() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_SERVER_OCSP_RESPONSE_CONTEXT>(),
        24usize,
        concat!("Size of: ", stringify!(_CERT_SERVER_OCSP_RESPONSE_CONTEXT))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_SERVER_OCSP_RESPONSE_CONTEXT>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CERT_SERVER_OCSP_RESPONSE_CONTEXT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_SERVER_OCSP_RESPONSE_CONTEXT>())).cbSize as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SERVER_OCSP_RESPONSE_CONTEXT),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_SERVER_OCSP_RESPONSE_CONTEXT>())).pbEncodedOcspResponse
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SERVER_OCSP_RESPONSE_CONTEXT),
            "::",
            stringify!(pbEncodedOcspResponse)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_SERVER_OCSP_RESPONSE_CONTEXT>())).cbEncodedOcspResponse
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SERVER_OCSP_RESPONSE_CONTEXT),
            "::",
            stringify!(cbEncodedOcspResponse)
        )
    );
}
pub type PFN_CERT_SERVER_OCSP_RESPONSE_UPDATE_CALLBACK = ::std::option::Option<
    unsafe extern "C" fn(
        pChainContext: PCCERT_CHAIN_CONTEXT,
        pServerOcspResponseContext: PCCERT_SERVER_OCSP_RESPONSE_CONTEXT,
        pNewCrlContext: PCCRL_CONTEXT,
        pPrevCrlContext: PCCRL_CONTEXT,
        pvArg: PVOID,
        dwWriteOcspFileError: DWORD,
    ),
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_SERVER_OCSP_RESPONSE_OPEN_PARA {
    pub cbSize: DWORD,
    pub dwFlags: DWORD,
    pub pcbUsedSize: *mut DWORD,
    pub pwszOcspDirectory: PWSTR,
    pub pfnUpdateCallback: PFN_CERT_SERVER_OCSP_RESPONSE_UPDATE_CALLBACK,
    pub pvUpdateCallbackArg: PVOID,
}
#[test]
fn bindgen_test_layout__CERT_SERVER_OCSP_RESPONSE_OPEN_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_SERVER_OCSP_RESPONSE_OPEN_PARA>(),
        40usize,
        concat!(
            "Size of: ",
            stringify!(_CERT_SERVER_OCSP_RESPONSE_OPEN_PARA)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_SERVER_OCSP_RESPONSE_OPEN_PARA>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CERT_SERVER_OCSP_RESPONSE_OPEN_PARA)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_SERVER_OCSP_RESPONSE_OPEN_PARA>())).cbSize as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SERVER_OCSP_RESPONSE_OPEN_PARA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_SERVER_OCSP_RESPONSE_OPEN_PARA>())).dwFlags as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SERVER_OCSP_RESPONSE_OPEN_PARA),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_SERVER_OCSP_RESPONSE_OPEN_PARA>())).pcbUsedSize as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SERVER_OCSP_RESPONSE_OPEN_PARA),
            "::",
            stringify!(pcbUsedSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_SERVER_OCSP_RESPONSE_OPEN_PARA>())).pwszOcspDirectory
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SERVER_OCSP_RESPONSE_OPEN_PARA),
            "::",
            stringify!(pwszOcspDirectory)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_SERVER_OCSP_RESPONSE_OPEN_PARA>())).pfnUpdateCallback
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SERVER_OCSP_RESPONSE_OPEN_PARA),
            "::",
            stringify!(pfnUpdateCallback)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_SERVER_OCSP_RESPONSE_OPEN_PARA>())).pvUpdateCallbackArg
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SERVER_OCSP_RESPONSE_OPEN_PARA),
            "::",
            stringify!(pvUpdateCallbackArg)
        )
    );
}
pub type CERT_SERVER_OCSP_RESPONSE_OPEN_PARA = _CERT_SERVER_OCSP_RESPONSE_OPEN_PARA;
pub type PCERT_SERVER_OCSP_RESPONSE_OPEN_PARA = *mut _CERT_SERVER_OCSP_RESPONSE_OPEN_PARA;
extern "C" {
    pub fn CertOpenServerOcspResponse(
        pChainContext: PCCERT_CHAIN_CONTEXT,
        dwFlags: DWORD,
        pOpenPara: PCERT_SERVER_OCSP_RESPONSE_OPEN_PARA,
    ) -> HCERT_SERVER_OCSP_RESPONSE;
}
extern "C" {
    pub fn CertAddRefServerOcspResponse(hServerOcspResponse: HCERT_SERVER_OCSP_RESPONSE);
}
extern "C" {
    pub fn CertCloseServerOcspResponse(
        hServerOcspResponse: HCERT_SERVER_OCSP_RESPONSE,
        dwFlags: DWORD,
    );
}
extern "C" {
    pub fn CertGetServerOcspResponseContext(
        hServerOcspResponse: HCERT_SERVER_OCSP_RESPONSE,
        dwFlags: DWORD,
        pvReserved: LPVOID,
    ) -> PCCERT_SERVER_OCSP_RESPONSE_CONTEXT;
}
extern "C" {
    pub fn CertAddRefServerOcspResponseContext(
        pServerOcspResponseContext: PCCERT_SERVER_OCSP_RESPONSE_CONTEXT,
    );
}
extern "C" {
    pub fn CertFreeServerOcspResponseContext(
        pServerOcspResponseContext: PCCERT_SERVER_OCSP_RESPONSE_CONTEXT,
    );
}
extern "C" {
    pub fn CertRetrieveLogoOrBiometricInfo(
        pCertContext: PCCERT_CONTEXT,
        lpszLogoOrBiometricType: LPCSTR,
        dwRetrievalFlags: DWORD,
        dwTimeout: DWORD,
        dwFlags: DWORD,
        pvReserved: *mut ::std::os::raw::c_void,
        ppbData: *mut *mut BYTE,
        pcbData: *mut DWORD,
        ppwszMimeType: *mut LPWSTR,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_SELECT_CHAIN_PARA {
    pub hChainEngine: HCERTCHAINENGINE,
    pub pTime: PFILETIME,
    pub hAdditionalStore: HCERTSTORE,
    pub pChainPara: PCERT_CHAIN_PARA,
    pub dwFlags: DWORD,
}
#[test]
fn bindgen_test_layout__CERT_SELECT_CHAIN_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_SELECT_CHAIN_PARA>(),
        40usize,
        concat!("Size of: ", stringify!(_CERT_SELECT_CHAIN_PARA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_SELECT_CHAIN_PARA>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_SELECT_CHAIN_PARA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_SELECT_CHAIN_PARA>())).hChainEngine as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SELECT_CHAIN_PARA),
            "::",
            stringify!(hChainEngine)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_SELECT_CHAIN_PARA>())).pTime as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SELECT_CHAIN_PARA),
            "::",
            stringify!(pTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_SELECT_CHAIN_PARA>())).hAdditionalStore as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SELECT_CHAIN_PARA),
            "::",
            stringify!(hAdditionalStore)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERT_SELECT_CHAIN_PARA>())).pChainPara as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SELECT_CHAIN_PARA),
            "::",
            stringify!(pChainPara)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_SELECT_CHAIN_PARA>())).dwFlags as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SELECT_CHAIN_PARA),
            "::",
            stringify!(dwFlags)
        )
    );
}
pub type CERT_SELECT_CHAIN_PARA = _CERT_SELECT_CHAIN_PARA;
pub type PCERT_SELECT_CHAIN_PARA = *mut _CERT_SELECT_CHAIN_PARA;
pub type PCCERT_SELECT_CHAIN_PARA = *const CERT_SELECT_CHAIN_PARA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERT_SELECT_CRITERIA {
    pub dwType: DWORD,
    pub cPara: DWORD,
    pub ppPara: *mut *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout__CERT_SELECT_CRITERIA() {
    assert_eq!(
        ::std::mem::size_of::<_CERT_SELECT_CRITERIA>(),
        16usize,
        concat!("Size of: ", stringify!(_CERT_SELECT_CRITERIA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERT_SELECT_CRITERIA>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERT_SELECT_CRITERIA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_SELECT_CRITERIA>())).dwType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SELECT_CRITERIA),
            "::",
            stringify!(dwType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_SELECT_CRITERIA>())).cPara as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SELECT_CRITERIA),
            "::",
            stringify!(cPara)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERT_SELECT_CRITERIA>())).ppPara as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERT_SELECT_CRITERIA),
            "::",
            stringify!(ppPara)
        )
    );
}
pub type CERT_SELECT_CRITERIA = _CERT_SELECT_CRITERIA;
pub type PCERT_SELECT_CRITERIA = *mut _CERT_SELECT_CRITERIA;
pub type PCCERT_SELECT_CRITERIA = *const CERT_SELECT_CRITERIA;
extern "C" {
    pub fn CertSelectCertificateChains(
        pSelectionContext: LPCGUID,
        dwFlags: DWORD,
        pChainParameters: PCCERT_SELECT_CHAIN_PARA,
        cCriteria: DWORD,
        rgpCriteria: PCCERT_SELECT_CRITERIA,
        hStore: HCERTSTORE,
        pcSelection: PDWORD,
        pprgpSelection: *mut *mut PCCERT_CHAIN_CONTEXT,
    ) -> BOOL;
}
extern "C" {
    pub fn CertFreeCertificateChainList(prgpSelection: *mut PCCERT_CHAIN_CONTEXT);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_TIMESTAMP_REQUEST {
    pub dwVersion: DWORD,
    pub HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub HashedMessage: CRYPT_DER_BLOB,
    pub pszTSAPolicyId: LPSTR,
    pub Nonce: CRYPT_INTEGER_BLOB,
    pub fCertReq: BOOL,
    pub cExtension: DWORD,
    pub rgExtension: PCERT_EXTENSION,
}
#[test]
fn bindgen_test_layout__CRYPT_TIMESTAMP_REQUEST() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_TIMESTAMP_REQUEST>(),
        88usize,
        concat!("Size of: ", stringify!(_CRYPT_TIMESTAMP_REQUEST))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_TIMESTAMP_REQUEST>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_TIMESTAMP_REQUEST))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_REQUEST>())).dwVersion as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_REQUEST),
            "::",
            stringify!(dwVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_REQUEST>())).HashAlgorithm as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_REQUEST),
            "::",
            stringify!(HashAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_REQUEST>())).HashedMessage as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_REQUEST),
            "::",
            stringify!(HashedMessage)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_REQUEST>())).pszTSAPolicyId as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_REQUEST),
            "::",
            stringify!(pszTSAPolicyId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_REQUEST>())).Nonce as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_REQUEST),
            "::",
            stringify!(Nonce)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_REQUEST>())).fCertReq as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_REQUEST),
            "::",
            stringify!(fCertReq)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_REQUEST>())).cExtension as *const _ as usize
        },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_REQUEST),
            "::",
            stringify!(cExtension)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_REQUEST>())).rgExtension as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_REQUEST),
            "::",
            stringify!(rgExtension)
        )
    );
}
pub type CRYPT_TIMESTAMP_REQUEST = _CRYPT_TIMESTAMP_REQUEST;
pub type PCRYPT_TIMESTAMP_REQUEST = *mut _CRYPT_TIMESTAMP_REQUEST;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_TIMESTAMP_RESPONSE {
    pub dwStatus: DWORD,
    pub cFreeText: DWORD,
    pub rgFreeText: *mut LPWSTR,
    pub FailureInfo: CRYPT_BIT_BLOB,
    pub ContentInfo: CRYPT_DER_BLOB,
}
#[test]
fn bindgen_test_layout__CRYPT_TIMESTAMP_RESPONSE() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_TIMESTAMP_RESPONSE>(),
        56usize,
        concat!("Size of: ", stringify!(_CRYPT_TIMESTAMP_RESPONSE))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_TIMESTAMP_RESPONSE>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_TIMESTAMP_RESPONSE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_RESPONSE>())).dwStatus as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_RESPONSE),
            "::",
            stringify!(dwStatus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_RESPONSE>())).cFreeText as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_RESPONSE),
            "::",
            stringify!(cFreeText)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_RESPONSE>())).rgFreeText as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_RESPONSE),
            "::",
            stringify!(rgFreeText)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_RESPONSE>())).FailureInfo as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_RESPONSE),
            "::",
            stringify!(FailureInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_RESPONSE>())).ContentInfo as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_RESPONSE),
            "::",
            stringify!(ContentInfo)
        )
    );
}
pub type CRYPT_TIMESTAMP_RESPONSE = _CRYPT_TIMESTAMP_RESPONSE;
pub type PCRYPT_TIMESTAMP_RESPONSE = *mut _CRYPT_TIMESTAMP_RESPONSE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_TIMESTAMP_ACCURACY {
    pub dwSeconds: DWORD,
    pub dwMillis: DWORD,
    pub dwMicros: DWORD,
}
#[test]
fn bindgen_test_layout__CRYPT_TIMESTAMP_ACCURACY() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_TIMESTAMP_ACCURACY>(),
        12usize,
        concat!("Size of: ", stringify!(_CRYPT_TIMESTAMP_ACCURACY))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_TIMESTAMP_ACCURACY>(),
        4usize,
        concat!("Alignment of ", stringify!(_CRYPT_TIMESTAMP_ACCURACY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_ACCURACY>())).dwSeconds as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_ACCURACY),
            "::",
            stringify!(dwSeconds)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_ACCURACY>())).dwMillis as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_ACCURACY),
            "::",
            stringify!(dwMillis)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_ACCURACY>())).dwMicros as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_ACCURACY),
            "::",
            stringify!(dwMicros)
        )
    );
}
pub type CRYPT_TIMESTAMP_ACCURACY = _CRYPT_TIMESTAMP_ACCURACY;
pub type PCRYPT_TIMESTAMP_ACCURACY = *mut _CRYPT_TIMESTAMP_ACCURACY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_TIMESTAMP_INFO {
    pub dwVersion: DWORD,
    pub pszTSAPolicyId: LPSTR,
    pub HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
    pub HashedMessage: CRYPT_DER_BLOB,
    pub SerialNumber: CRYPT_INTEGER_BLOB,
    pub ftTime: FILETIME,
    pub pvAccuracy: PCRYPT_TIMESTAMP_ACCURACY,
    pub fOrdering: BOOL,
    pub Nonce: CRYPT_DER_BLOB,
    pub Tsa: CRYPT_DER_BLOB,
    pub cExtension: DWORD,
    pub rgExtension: PCERT_EXTENSION,
}
#[test]
fn bindgen_test_layout__CRYPT_TIMESTAMP_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_TIMESTAMP_INFO>(),
        144usize,
        concat!("Size of: ", stringify!(_CRYPT_TIMESTAMP_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_TIMESTAMP_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_TIMESTAMP_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_INFO>())).dwVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_INFO),
            "::",
            stringify!(dwVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_INFO>())).pszTSAPolicyId as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_INFO),
            "::",
            stringify!(pszTSAPolicyId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_INFO>())).HashAlgorithm as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_INFO),
            "::",
            stringify!(HashAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_INFO>())).HashedMessage as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_INFO),
            "::",
            stringify!(HashedMessage)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_INFO>())).SerialNumber as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_INFO),
            "::",
            stringify!(SerialNumber)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_INFO>())).ftTime as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_INFO),
            "::",
            stringify!(ftTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_INFO>())).pvAccuracy as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_INFO),
            "::",
            stringify!(pvAccuracy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_INFO>())).fOrdering as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_INFO),
            "::",
            stringify!(fOrdering)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_INFO>())).Nonce as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_INFO),
            "::",
            stringify!(Nonce)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_INFO>())).Tsa as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_INFO),
            "::",
            stringify!(Tsa)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_INFO>())).cExtension as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_INFO),
            "::",
            stringify!(cExtension)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_INFO>())).rgExtension as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_INFO),
            "::",
            stringify!(rgExtension)
        )
    );
}
pub type CRYPT_TIMESTAMP_INFO = _CRYPT_TIMESTAMP_INFO;
pub type PCRYPT_TIMESTAMP_INFO = *mut _CRYPT_TIMESTAMP_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_TIMESTAMP_CONTEXT {
    pub cbEncoded: DWORD,
    pub pbEncoded: *mut BYTE,
    pub pTimeStamp: PCRYPT_TIMESTAMP_INFO,
}
#[test]
fn bindgen_test_layout__CRYPT_TIMESTAMP_CONTEXT() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_TIMESTAMP_CONTEXT>(),
        24usize,
        concat!("Size of: ", stringify!(_CRYPT_TIMESTAMP_CONTEXT))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_TIMESTAMP_CONTEXT>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_TIMESTAMP_CONTEXT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_CONTEXT>())).cbEncoded as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_CONTEXT),
            "::",
            stringify!(cbEncoded)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_CONTEXT>())).pbEncoded as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_CONTEXT),
            "::",
            stringify!(pbEncoded)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_CONTEXT>())).pTimeStamp as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_CONTEXT),
            "::",
            stringify!(pTimeStamp)
        )
    );
}
pub type CRYPT_TIMESTAMP_CONTEXT = _CRYPT_TIMESTAMP_CONTEXT;
pub type PCRYPT_TIMESTAMP_CONTEXT = *mut _CRYPT_TIMESTAMP_CONTEXT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_TIMESTAMP_PARA {
    pub pszTSAPolicyId: LPCSTR,
    pub fRequestCerts: BOOL,
    pub Nonce: CRYPT_INTEGER_BLOB,
    pub cExtension: DWORD,
    pub rgExtension: PCERT_EXTENSION,
}
#[test]
fn bindgen_test_layout__CRYPT_TIMESTAMP_PARA() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_TIMESTAMP_PARA>(),
        48usize,
        concat!("Size of: ", stringify!(_CRYPT_TIMESTAMP_PARA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_TIMESTAMP_PARA>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPT_TIMESTAMP_PARA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_PARA>())).pszTSAPolicyId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_PARA),
            "::",
            stringify!(pszTSAPolicyId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_PARA>())).fRequestCerts as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_PARA),
            "::",
            stringify!(fRequestCerts)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_PARA>())).Nonce as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_PARA),
            "::",
            stringify!(Nonce)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_PARA>())).cExtension as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_PARA),
            "::",
            stringify!(cExtension)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_TIMESTAMP_PARA>())).rgExtension as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_TIMESTAMP_PARA),
            "::",
            stringify!(rgExtension)
        )
    );
}
pub type CRYPT_TIMESTAMP_PARA = _CRYPT_TIMESTAMP_PARA;
pub type PCRYPT_TIMESTAMP_PARA = *mut _CRYPT_TIMESTAMP_PARA;
extern "C" {
    pub fn CryptRetrieveTimeStamp(
        wszUrl: LPCWSTR,
        dwRetrievalFlags: DWORD,
        dwTimeout: DWORD,
        pszHashId: LPCSTR,
        pPara: *const CRYPT_TIMESTAMP_PARA,
        pbData: *const BYTE,
        cbData: DWORD,
        ppTsContext: *mut PCRYPT_TIMESTAMP_CONTEXT,
        ppTsSigner: *mut PCCERT_CONTEXT,
        phStore: *mut HCERTSTORE,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptVerifyTimeStampSignature(
        pbTSContentInfo: *const BYTE,
        cbTSContentInfo: DWORD,
        pbData: *const BYTE,
        cbData: DWORD,
        hAdditionalStore: HCERTSTORE,
        ppTsContext: *mut PCRYPT_TIMESTAMP_CONTEXT,
        ppTsSigner: *mut PCCERT_CONTEXT,
        phStore: *mut HCERTSTORE,
    ) -> BOOL;
}
pub type PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FLUSH = ::std::option::Option<
    unsafe extern "C" fn(
        pContext: LPVOID,
        rgIdentifierOrNameList: *mut PCERT_NAME_BLOB,
        dwIdentifierOrNameListCount: DWORD,
    ) -> BOOL,
>;
pub type PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_GET = ::std::option::Option<
    unsafe extern "C" fn(
        pPluginContext: LPVOID,
        pIdentifier: PCRYPT_DATA_BLOB,
        dwNameType: DWORD,
        pNameBlob: PCERT_NAME_BLOB,
        ppbContent: *mut PBYTE,
        pcbContent: *mut DWORD,
        ppwszPassword: *mut PCWSTR,
        ppIdentifier: *mut PCRYPT_DATA_BLOB,
    ) -> BOOL,
>;
pub type PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_RELEASE =
    ::std::option::Option<unsafe extern "C" fn(dwReason: DWORD, pPluginContext: LPVOID)>;
pub type PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_PASSWORD =
    ::std::option::Option<unsafe extern "C" fn(pPluginContext: LPVOID, pwszPassword: PCWSTR)>;
pub type PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE =
    ::std::option::Option<unsafe extern "C" fn(pPluginContext: LPVOID, pbData: PBYTE)>;
pub type PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_IDENTIFIER = ::std::option::Option<
    unsafe extern "C" fn(pPluginContext: LPVOID, pIdentifier: PCRYPT_DATA_BLOB),
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE {
    pub cbSize: DWORD,
    pub pfnGet: PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_GET,
    pub pfnRelease: PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_RELEASE,
    pub pfnFreePassword: PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_PASSWORD,
    pub pfnFree: PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE,
    pub pfnFreeIdentifier: PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_IDENTIFIER,
}
#[test]
fn bindgen_test_layout__CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE>(),
        48usize,
        concat!(
            "Size of: ",
            stringify!(_CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE>())).cbSize as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE>())).pfnGet as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE),
            "::",
            stringify!(pfnGet)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE>())).pfnRelease as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE),
            "::",
            stringify!(pfnRelease)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE>())).pfnFreePassword
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE),
            "::",
            stringify!(pfnFreePassword)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE>())).pfnFree as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE),
            "::",
            stringify!(pfnFree)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE>())).pfnFreeIdentifier
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE),
            "::",
            stringify!(pfnFreeIdentifier)
        )
    );
}
pub type CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE = _CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE;
pub type PCRYPT_OBJECT_LOCATOR_PROVIDER_TABLE = *mut _CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE;
pub type PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_INITIALIZE = ::std::option::Option<
    unsafe extern "C" fn(
        pfnFlush: PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FLUSH,
        pContext: LPVOID,
        pdwExpectedObjectCount: *mut DWORD,
        ppFuncTable: *mut PCRYPT_OBJECT_LOCATOR_PROVIDER_TABLE,
        ppPluginContext: *mut *mut ::std::os::raw::c_void,
    ) -> BOOL,
>;
extern "C" {
    pub fn CertIsWeakHash(
        dwHashUseType: DWORD,
        pwszCNGHashAlgid: LPCWSTR,
        dwChainFlags: DWORD,
        pSignerChainContext: PCCERT_CHAIN_CONTEXT,
        pTimeStamp: LPFILETIME,
        pwszFileName: LPCWSTR,
    ) -> BOOL;
}
pub type PFN_CERT_IS_WEAK_HASH = ::std::option::Option<
    unsafe extern "C" fn(
        dwHashUseType: DWORD,
        pwszCNGHashAlgid: LPCWSTR,
        dwChainFlags: DWORD,
        pSignerChainContext: PCCERT_CHAIN_CONTEXT,
        pTimeStamp: LPFILETIME,
        pwszFileName: LPCWSTR,
    ) -> BOOL,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRYPTPROTECT_PROMPTSTRUCT {
    pub cbSize: DWORD,
    pub dwPromptFlags: DWORD,
    pub hwndApp: HWND,
    pub szPrompt: LPCWSTR,
}
#[test]
fn bindgen_test_layout__CRYPTPROTECT_PROMPTSTRUCT() {
    assert_eq!(
        ::std::mem::size_of::<_CRYPTPROTECT_PROMPTSTRUCT>(),
        24usize,
        concat!("Size of: ", stringify!(_CRYPTPROTECT_PROMPTSTRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRYPTPROTECT_PROMPTSTRUCT>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRYPTPROTECT_PROMPTSTRUCT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPTPROTECT_PROMPTSTRUCT>())).cbSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPTPROTECT_PROMPTSTRUCT),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPTPROTECT_PROMPTSTRUCT>())).dwPromptFlags as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPTPROTECT_PROMPTSTRUCT),
            "::",
            stringify!(dwPromptFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPTPROTECT_PROMPTSTRUCT>())).hwndApp as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPTPROTECT_PROMPTSTRUCT),
            "::",
            stringify!(hwndApp)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CRYPTPROTECT_PROMPTSTRUCT>())).szPrompt as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRYPTPROTECT_PROMPTSTRUCT),
            "::",
            stringify!(szPrompt)
        )
    );
}
pub type CRYPTPROTECT_PROMPTSTRUCT = _CRYPTPROTECT_PROMPTSTRUCT;
pub type PCRYPTPROTECT_PROMPTSTRUCT = *mut _CRYPTPROTECT_PROMPTSTRUCT;
extern "C" {
    pub fn CryptProtectData(
        pDataIn: *mut DATA_BLOB,
        szDataDescr: LPCWSTR,
        pOptionalEntropy: *mut DATA_BLOB,
        pvReserved: PVOID,
        pPromptStruct: *mut CRYPTPROTECT_PROMPTSTRUCT,
        dwFlags: DWORD,
        pDataOut: *mut DATA_BLOB,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptUnprotectData(
        pDataIn: *mut DATA_BLOB,
        ppszDataDescr: *mut LPWSTR,
        pOptionalEntropy: *mut DATA_BLOB,
        pvReserved: PVOID,
        pPromptStruct: *mut CRYPTPROTECT_PROMPTSTRUCT,
        dwFlags: DWORD,
        pDataOut: *mut DATA_BLOB,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptProtectDataNoUI(
        pDataIn: *mut DATA_BLOB,
        szDataDescr: LPCWSTR,
        pOptionalEntropy: *mut DATA_BLOB,
        pvReserved: PVOID,
        pPromptStruct: *mut CRYPTPROTECT_PROMPTSTRUCT,
        dwFlags: DWORD,
        pbOptionalPassword: *const BYTE,
        cbOptionalPassword: DWORD,
        pDataOut: *mut DATA_BLOB,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptUnprotectDataNoUI(
        pDataIn: *mut DATA_BLOB,
        ppszDataDescr: *mut LPWSTR,
        pOptionalEntropy: *mut DATA_BLOB,
        pvReserved: PVOID,
        pPromptStruct: *mut CRYPTPROTECT_PROMPTSTRUCT,
        dwFlags: DWORD,
        pbOptionalPassword: *const BYTE,
        cbOptionalPassword: DWORD,
        pDataOut: *mut DATA_BLOB,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptUpdateProtectedState(
        pOldSid: PSID,
        pwszOldPassword: LPCWSTR,
        dwFlags: DWORD,
        pdwSuccessCount: *mut DWORD,
        pdwFailureCount: *mut DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CryptProtectMemory(pDataIn: LPVOID, cbDataIn: DWORD, dwFlags: DWORD) -> BOOL;
}
extern "C" {
    pub fn CryptUnprotectMemory(pDataIn: LPVOID, cbDataIn: DWORD, dwFlags: DWORD) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CERTIFICATE_BLOB {
    pub dwCertEncodingType: DWORD,
    pub cbData: DWORD,
    pub pbData: PBYTE,
}
#[test]
fn bindgen_test_layout__CERTIFICATE_BLOB() {
    assert_eq!(
        ::std::mem::size_of::<_CERTIFICATE_BLOB>(),
        16usize,
        concat!("Size of: ", stringify!(_CERTIFICATE_BLOB))
    );
    assert_eq!(
        ::std::mem::align_of::<_CERTIFICATE_BLOB>(),
        8usize,
        concat!("Alignment of ", stringify!(_CERTIFICATE_BLOB))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CERTIFICATE_BLOB>())).dwCertEncodingType as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERTIFICATE_BLOB),
            "::",
            stringify!(dwCertEncodingType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERTIFICATE_BLOB>())).cbData as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERTIFICATE_BLOB),
            "::",
            stringify!(cbData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CERTIFICATE_BLOB>())).pbData as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CERTIFICATE_BLOB),
            "::",
            stringify!(pbData)
        )
    );
}
pub type EFS_CERTIFICATE_BLOB = _CERTIFICATE_BLOB;
pub type PEFS_CERTIFICATE_BLOB = *mut _CERTIFICATE_BLOB;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _EFS_HASH_BLOB {
    pub cbData: DWORD,
    pub pbData: PBYTE,
}
#[test]
fn bindgen_test_layout__EFS_HASH_BLOB() {
    assert_eq!(
        ::std::mem::size_of::<_EFS_HASH_BLOB>(),
        16usize,
        concat!("Size of: ", stringify!(_EFS_HASH_BLOB))
    );
    assert_eq!(
        ::std::mem::align_of::<_EFS_HASH_BLOB>(),
        8usize,
        concat!("Alignment of ", stringify!(_EFS_HASH_BLOB))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EFS_HASH_BLOB>())).cbData as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_EFS_HASH_BLOB),
            "::",
            stringify!(cbData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EFS_HASH_BLOB>())).pbData as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_EFS_HASH_BLOB),
            "::",
            stringify!(pbData)
        )
    );
}
pub type EFS_HASH_BLOB = _EFS_HASH_BLOB;
pub type PEFS_HASH_BLOB = *mut _EFS_HASH_BLOB;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _EFS_RPC_BLOB {
    pub cbData: DWORD,
    pub pbData: PBYTE,
}
#[test]
fn bindgen_test_layout__EFS_RPC_BLOB() {
    assert_eq!(
        ::std::mem::size_of::<_EFS_RPC_BLOB>(),
        16usize,
        concat!("Size of: ", stringify!(_EFS_RPC_BLOB))
    );
    assert_eq!(
        ::std::mem::align_of::<_EFS_RPC_BLOB>(),
        8usize,
        concat!("Alignment of ", stringify!(_EFS_RPC_BLOB))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EFS_RPC_BLOB>())).cbData as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_EFS_RPC_BLOB),
            "::",
            stringify!(cbData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EFS_RPC_BLOB>())).pbData as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_EFS_RPC_BLOB),
            "::",
            stringify!(pbData)
        )
    );
}
pub type EFS_RPC_BLOB = _EFS_RPC_BLOB;
pub type PEFS_RPC_BLOB = *mut _EFS_RPC_BLOB;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _EFS_PIN_BLOB {
    pub cbPadding: DWORD,
    pub cbData: DWORD,
    pub pbData: PBYTE,
}
#[test]
fn bindgen_test_layout__EFS_PIN_BLOB() {
    assert_eq!(
        ::std::mem::size_of::<_EFS_PIN_BLOB>(),
        16usize,
        concat!("Size of: ", stringify!(_EFS_PIN_BLOB))
    );
    assert_eq!(
        ::std::mem::align_of::<_EFS_PIN_BLOB>(),
        8usize,
        concat!("Alignment of ", stringify!(_EFS_PIN_BLOB))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EFS_PIN_BLOB>())).cbPadding as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_EFS_PIN_BLOB),
            "::",
            stringify!(cbPadding)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EFS_PIN_BLOB>())).cbData as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_EFS_PIN_BLOB),
            "::",
            stringify!(cbData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EFS_PIN_BLOB>())).pbData as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_EFS_PIN_BLOB),
            "::",
            stringify!(pbData)
        )
    );
}
pub type EFS_PIN_BLOB = _EFS_PIN_BLOB;
pub type PEFS_PIN_BLOB = *mut _EFS_PIN_BLOB;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _EFS_KEY_INFO {
    pub dwVersion: DWORD,
    pub Entropy: ULONG,
    pub Algorithm: ALG_ID,
    pub KeyLength: ULONG,
}
#[test]
fn bindgen_test_layout__EFS_KEY_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_EFS_KEY_INFO>(),
        16usize,
        concat!("Size of: ", stringify!(_EFS_KEY_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_EFS_KEY_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_EFS_KEY_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EFS_KEY_INFO>())).dwVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_EFS_KEY_INFO),
            "::",
            stringify!(dwVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EFS_KEY_INFO>())).Entropy as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_EFS_KEY_INFO),
            "::",
            stringify!(Entropy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EFS_KEY_INFO>())).Algorithm as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_EFS_KEY_INFO),
            "::",
            stringify!(Algorithm)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EFS_KEY_INFO>())).KeyLength as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_EFS_KEY_INFO),
            "::",
            stringify!(KeyLength)
        )
    );
}
pub type EFS_KEY_INFO = _EFS_KEY_INFO;
pub type PEFS_KEY_INFO = *mut _EFS_KEY_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _EFS_COMPATIBILITY_INFO {
    pub EfsVersion: DWORD,
}
#[test]
fn bindgen_test_layout__EFS_COMPATIBILITY_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_EFS_COMPATIBILITY_INFO>(),
        4usize,
        concat!("Size of: ", stringify!(_EFS_COMPATIBILITY_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_EFS_COMPATIBILITY_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_EFS_COMPATIBILITY_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EFS_COMPATIBILITY_INFO>())).EfsVersion as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_EFS_COMPATIBILITY_INFO),
            "::",
            stringify!(EfsVersion)
        )
    );
}
pub type EFS_COMPATIBILITY_INFO = _EFS_COMPATIBILITY_INFO;
pub type PEFS_COMPATIBILITY_INFO = *mut _EFS_COMPATIBILITY_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _EFS_VERSION_INFO {
    pub EfsVersion: DWORD,
    pub SubVersion: DWORD,
}
#[test]
fn bindgen_test_layout__EFS_VERSION_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_EFS_VERSION_INFO>(),
        8usize,
        concat!("Size of: ", stringify!(_EFS_VERSION_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_EFS_VERSION_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_EFS_VERSION_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EFS_VERSION_INFO>())).EfsVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_EFS_VERSION_INFO),
            "::",
            stringify!(EfsVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EFS_VERSION_INFO>())).SubVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_EFS_VERSION_INFO),
            "::",
            stringify!(SubVersion)
        )
    );
}
pub type EFS_VERSION_INFO = _EFS_VERSION_INFO;
pub type PEFS_VERSION_INFO = *mut _EFS_VERSION_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _EFS_DECRYPTION_STATUS_INFO {
    pub dwDecryptionError: DWORD,
    pub dwHashOffset: DWORD,
    pub cbHash: DWORD,
}
#[test]
fn bindgen_test_layout__EFS_DECRYPTION_STATUS_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_EFS_DECRYPTION_STATUS_INFO>(),
        12usize,
        concat!("Size of: ", stringify!(_EFS_DECRYPTION_STATUS_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_EFS_DECRYPTION_STATUS_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_EFS_DECRYPTION_STATUS_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EFS_DECRYPTION_STATUS_INFO>())).dwDecryptionError as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_EFS_DECRYPTION_STATUS_INFO),
            "::",
            stringify!(dwDecryptionError)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EFS_DECRYPTION_STATUS_INFO>())).dwHashOffset as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_EFS_DECRYPTION_STATUS_INFO),
            "::",
            stringify!(dwHashOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EFS_DECRYPTION_STATUS_INFO>())).cbHash as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_EFS_DECRYPTION_STATUS_INFO),
            "::",
            stringify!(cbHash)
        )
    );
}
pub type EFS_DECRYPTION_STATUS_INFO = _EFS_DECRYPTION_STATUS_INFO;
pub type PEFS_DECRYPTION_STATUS_INFO = *mut _EFS_DECRYPTION_STATUS_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _EFS_ENCRYPTION_STATUS_INFO {
    pub bHasCurrentKey: BOOL,
    pub dwEncryptionError: DWORD,
}
#[test]
fn bindgen_test_layout__EFS_ENCRYPTION_STATUS_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_EFS_ENCRYPTION_STATUS_INFO>(),
        8usize,
        concat!("Size of: ", stringify!(_EFS_ENCRYPTION_STATUS_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_EFS_ENCRYPTION_STATUS_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_EFS_ENCRYPTION_STATUS_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EFS_ENCRYPTION_STATUS_INFO>())).bHasCurrentKey as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_EFS_ENCRYPTION_STATUS_INFO),
            "::",
            stringify!(bHasCurrentKey)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EFS_ENCRYPTION_STATUS_INFO>())).dwEncryptionError as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_EFS_ENCRYPTION_STATUS_INFO),
            "::",
            stringify!(dwEncryptionError)
        )
    );
}
pub type EFS_ENCRYPTION_STATUS_INFO = _EFS_ENCRYPTION_STATUS_INFO;
pub type PEFS_ENCRYPTION_STATUS_INFO = *mut _EFS_ENCRYPTION_STATUS_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ENCRYPTION_CERTIFICATE {
    pub cbTotalLength: DWORD,
    pub pUserSid: *mut SID,
    pub pCertBlob: PEFS_CERTIFICATE_BLOB,
}
#[test]
fn bindgen_test_layout__ENCRYPTION_CERTIFICATE() {
    assert_eq!(
        ::std::mem::size_of::<_ENCRYPTION_CERTIFICATE>(),
        24usize,
        concat!("Size of: ", stringify!(_ENCRYPTION_CERTIFICATE))
    );
    assert_eq!(
        ::std::mem::align_of::<_ENCRYPTION_CERTIFICATE>(),
        8usize,
        concat!("Alignment of ", stringify!(_ENCRYPTION_CERTIFICATE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTION_CERTIFICATE>())).cbTotalLength as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTION_CERTIFICATE),
            "::",
            stringify!(cbTotalLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTION_CERTIFICATE>())).pUserSid as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTION_CERTIFICATE),
            "::",
            stringify!(pUserSid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTION_CERTIFICATE>())).pCertBlob as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTION_CERTIFICATE),
            "::",
            stringify!(pCertBlob)
        )
    );
}
pub type ENCRYPTION_CERTIFICATE = _ENCRYPTION_CERTIFICATE;
pub type PENCRYPTION_CERTIFICATE = *mut _ENCRYPTION_CERTIFICATE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ENCRYPTION_CERTIFICATE_HASH {
    pub cbTotalLength: DWORD,
    pub pUserSid: *mut SID,
    pub pHash: PEFS_HASH_BLOB,
    pub lpDisplayInformation: LPWSTR,
}
#[test]
fn bindgen_test_layout__ENCRYPTION_CERTIFICATE_HASH() {
    assert_eq!(
        ::std::mem::size_of::<_ENCRYPTION_CERTIFICATE_HASH>(),
        32usize,
        concat!("Size of: ", stringify!(_ENCRYPTION_CERTIFICATE_HASH))
    );
    assert_eq!(
        ::std::mem::align_of::<_ENCRYPTION_CERTIFICATE_HASH>(),
        8usize,
        concat!("Alignment of ", stringify!(_ENCRYPTION_CERTIFICATE_HASH))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTION_CERTIFICATE_HASH>())).cbTotalLength as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTION_CERTIFICATE_HASH),
            "::",
            stringify!(cbTotalLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTION_CERTIFICATE_HASH>())).pUserSid as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTION_CERTIFICATE_HASH),
            "::",
            stringify!(pUserSid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTION_CERTIFICATE_HASH>())).pHash as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTION_CERTIFICATE_HASH),
            "::",
            stringify!(pHash)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTION_CERTIFICATE_HASH>())).lpDisplayInformation
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTION_CERTIFICATE_HASH),
            "::",
            stringify!(lpDisplayInformation)
        )
    );
}
pub type ENCRYPTION_CERTIFICATE_HASH = _ENCRYPTION_CERTIFICATE_HASH;
pub type PENCRYPTION_CERTIFICATE_HASH = *mut _ENCRYPTION_CERTIFICATE_HASH;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ENCRYPTION_CERTIFICATE_HASH_LIST {
    pub nCert_Hash: DWORD,
    pub pUsers: *mut PENCRYPTION_CERTIFICATE_HASH,
}
#[test]
fn bindgen_test_layout__ENCRYPTION_CERTIFICATE_HASH_LIST() {
    assert_eq!(
        ::std::mem::size_of::<_ENCRYPTION_CERTIFICATE_HASH_LIST>(),
        16usize,
        concat!("Size of: ", stringify!(_ENCRYPTION_CERTIFICATE_HASH_LIST))
    );
    assert_eq!(
        ::std::mem::align_of::<_ENCRYPTION_CERTIFICATE_HASH_LIST>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_ENCRYPTION_CERTIFICATE_HASH_LIST)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTION_CERTIFICATE_HASH_LIST>())).nCert_Hash as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTION_CERTIFICATE_HASH_LIST),
            "::",
            stringify!(nCert_Hash)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTION_CERTIFICATE_HASH_LIST>())).pUsers as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTION_CERTIFICATE_HASH_LIST),
            "::",
            stringify!(pUsers)
        )
    );
}
pub type ENCRYPTION_CERTIFICATE_HASH_LIST = _ENCRYPTION_CERTIFICATE_HASH_LIST;
pub type PENCRYPTION_CERTIFICATE_HASH_LIST = *mut _ENCRYPTION_CERTIFICATE_HASH_LIST;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ENCRYPTION_CERTIFICATE_LIST {
    pub nUsers: DWORD,
    pub pUsers: *mut PENCRYPTION_CERTIFICATE,
}
#[test]
fn bindgen_test_layout__ENCRYPTION_CERTIFICATE_LIST() {
    assert_eq!(
        ::std::mem::size_of::<_ENCRYPTION_CERTIFICATE_LIST>(),
        16usize,
        concat!("Size of: ", stringify!(_ENCRYPTION_CERTIFICATE_LIST))
    );
    assert_eq!(
        ::std::mem::align_of::<_ENCRYPTION_CERTIFICATE_LIST>(),
        8usize,
        concat!("Alignment of ", stringify!(_ENCRYPTION_CERTIFICATE_LIST))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTION_CERTIFICATE_LIST>())).nUsers as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTION_CERTIFICATE_LIST),
            "::",
            stringify!(nUsers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTION_CERTIFICATE_LIST>())).pUsers as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTION_CERTIFICATE_LIST),
            "::",
            stringify!(pUsers)
        )
    );
}
pub type ENCRYPTION_CERTIFICATE_LIST = _ENCRYPTION_CERTIFICATE_LIST;
pub type PENCRYPTION_CERTIFICATE_LIST = *mut _ENCRYPTION_CERTIFICATE_LIST;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ENCRYPTED_FILE_METADATA_SIGNATURE {
    pub dwEfsAccessType: DWORD,
    pub pCertificatesAdded: PENCRYPTION_CERTIFICATE_HASH_LIST,
    pub pEncryptionCertificate: PENCRYPTION_CERTIFICATE,
    pub pEfsStreamSignature: PEFS_RPC_BLOB,
}
#[test]
fn bindgen_test_layout__ENCRYPTED_FILE_METADATA_SIGNATURE() {
    assert_eq!(
        ::std::mem::size_of::<_ENCRYPTED_FILE_METADATA_SIGNATURE>(),
        32usize,
        concat!("Size of: ", stringify!(_ENCRYPTED_FILE_METADATA_SIGNATURE))
    );
    assert_eq!(
        ::std::mem::align_of::<_ENCRYPTED_FILE_METADATA_SIGNATURE>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_ENCRYPTED_FILE_METADATA_SIGNATURE)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTED_FILE_METADATA_SIGNATURE>())).dwEfsAccessType
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTED_FILE_METADATA_SIGNATURE),
            "::",
            stringify!(dwEfsAccessType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTED_FILE_METADATA_SIGNATURE>())).pCertificatesAdded
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTED_FILE_METADATA_SIGNATURE),
            "::",
            stringify!(pCertificatesAdded)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTED_FILE_METADATA_SIGNATURE>())).pEncryptionCertificate
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTED_FILE_METADATA_SIGNATURE),
            "::",
            stringify!(pEncryptionCertificate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTED_FILE_METADATA_SIGNATURE>())).pEfsStreamSignature
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTED_FILE_METADATA_SIGNATURE),
            "::",
            stringify!(pEfsStreamSignature)
        )
    );
}
pub type ENCRYPTED_FILE_METADATA_SIGNATURE = _ENCRYPTED_FILE_METADATA_SIGNATURE;
pub type PENCRYPTED_FILE_METADATA_SIGNATURE = *mut _ENCRYPTED_FILE_METADATA_SIGNATURE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ENCRYPTION_PROTECTOR {
    pub cbTotalLength: DWORD,
    pub pUserSid: *mut SID,
    pub lpProtectorDescriptor: LPWSTR,
}
#[test]
fn bindgen_test_layout__ENCRYPTION_PROTECTOR() {
    assert_eq!(
        ::std::mem::size_of::<_ENCRYPTION_PROTECTOR>(),
        24usize,
        concat!("Size of: ", stringify!(_ENCRYPTION_PROTECTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<_ENCRYPTION_PROTECTOR>(),
        8usize,
        concat!("Alignment of ", stringify!(_ENCRYPTION_PROTECTOR))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTION_PROTECTOR>())).cbTotalLength as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTION_PROTECTOR),
            "::",
            stringify!(cbTotalLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ENCRYPTION_PROTECTOR>())).pUserSid as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTION_PROTECTOR),
            "::",
            stringify!(pUserSid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTION_PROTECTOR>())).lpProtectorDescriptor as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTION_PROTECTOR),
            "::",
            stringify!(lpProtectorDescriptor)
        )
    );
}
pub type ENCRYPTION_PROTECTOR = _ENCRYPTION_PROTECTOR;
pub type PENCRYPTION_PROTECTOR = *mut _ENCRYPTION_PROTECTOR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ENCRYPTION_PROTECTOR_LIST {
    pub nProtectors: DWORD,
    pub pProtectors: *mut PENCRYPTION_PROTECTOR,
}
#[test]
fn bindgen_test_layout__ENCRYPTION_PROTECTOR_LIST() {
    assert_eq!(
        ::std::mem::size_of::<_ENCRYPTION_PROTECTOR_LIST>(),
        16usize,
        concat!("Size of: ", stringify!(_ENCRYPTION_PROTECTOR_LIST))
    );
    assert_eq!(
        ::std::mem::align_of::<_ENCRYPTION_PROTECTOR_LIST>(),
        8usize,
        concat!("Alignment of ", stringify!(_ENCRYPTION_PROTECTOR_LIST))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTION_PROTECTOR_LIST>())).nProtectors as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTION_PROTECTOR_LIST),
            "::",
            stringify!(nProtectors)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTION_PROTECTOR_LIST>())).pProtectors as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTION_PROTECTOR_LIST),
            "::",
            stringify!(pProtectors)
        )
    );
}
pub type ENCRYPTION_PROTECTOR_LIST = _ENCRYPTION_PROTECTOR_LIST;
pub type PENCRYPTION_PROTECTOR_LIST = *mut _ENCRYPTION_PROTECTOR_LIST;
extern "C" {
    pub fn QueryUsersOnEncryptedFile(
        lpFileName: LPCWSTR,
        pUsers: *mut PENCRYPTION_CERTIFICATE_HASH_LIST,
    ) -> DWORD;
}
extern "C" {
    pub fn QueryRecoveryAgentsOnEncryptedFile(
        lpFileName: LPCWSTR,
        pRecoveryAgents: *mut PENCRYPTION_CERTIFICATE_HASH_LIST,
    ) -> DWORD;
}
extern "C" {
    pub fn RemoveUsersFromEncryptedFile(
        lpFileName: LPCWSTR,
        pHashes: PENCRYPTION_CERTIFICATE_HASH_LIST,
    ) -> DWORD;
}
extern "C" {
    pub fn AddUsersToEncryptedFile(
        lpFileName: LPCWSTR,
        pEncryptionCertificates: PENCRYPTION_CERTIFICATE_LIST,
    ) -> DWORD;
}
extern "C" {
    pub fn SetUserFileEncryptionKey(pEncryptionCertificate: PENCRYPTION_CERTIFICATE) -> DWORD;
}
extern "C" {
    pub fn SetUserFileEncryptionKeyEx(
        pEncryptionCertificate: PENCRYPTION_CERTIFICATE,
        dwCapabilities: DWORD,
        dwFlags: DWORD,
        pvReserved: LPVOID,
    ) -> DWORD;
}
extern "C" {
    pub fn FreeEncryptionCertificateHashList(pUsers: PENCRYPTION_CERTIFICATE_HASH_LIST);
}
extern "C" {
    pub fn EncryptionDisable(DirPath: LPCWSTR, Disable: BOOL) -> BOOL;
}
extern "C" {
    pub fn DuplicateEncryptionInfoFile(
        SrcFileName: LPCWSTR,
        DstFileName: LPCWSTR,
        dwCreationDistribution: DWORD,
        dwAttributes: DWORD,
        lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
    ) -> DWORD;
}
extern "C" {
    pub fn GetEncryptedFileMetadata(
        lpFileName: LPCWSTR,
        pcbMetadata: PDWORD,
        ppbMetadata: *mut PBYTE,
    ) -> DWORD;
}
extern "C" {
    pub fn SetEncryptedFileMetadata(
        lpFileName: LPCWSTR,
        pbOldMetadata: PBYTE,
        pbNewMetadata: PBYTE,
        pOwnerHash: PENCRYPTION_CERTIFICATE_HASH,
        dwOperation: DWORD,
        pCertificatesAdded: PENCRYPTION_CERTIFICATE_HASH_LIST,
    ) -> DWORD;
}
extern "C" {
    pub fn FreeEncryptedFileMetadata(pbMetadata: PBYTE);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct RPC_IMPORT_CONTEXT_P {
    pub LookupContext: RPC_NS_HANDLE,
    pub ProposedHandle: RPC_BINDING_HANDLE,
    pub Bindings: *mut RPC_BINDING_VECTOR,
}
#[test]
fn bindgen_test_layout_RPC_IMPORT_CONTEXT_P() {
    assert_eq!(
        ::std::mem::size_of::<RPC_IMPORT_CONTEXT_P>(),
        24usize,
        concat!("Size of: ", stringify!(RPC_IMPORT_CONTEXT_P))
    );
    assert_eq!(
        ::std::mem::align_of::<RPC_IMPORT_CONTEXT_P>(),
        8usize,
        concat!("Alignment of ", stringify!(RPC_IMPORT_CONTEXT_P))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RPC_IMPORT_CONTEXT_P>())).LookupContext as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_IMPORT_CONTEXT_P),
            "::",
            stringify!(LookupContext)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RPC_IMPORT_CONTEXT_P>())).ProposedHandle as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_IMPORT_CONTEXT_P),
            "::",
            stringify!(ProposedHandle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<RPC_IMPORT_CONTEXT_P>())).Bindings as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(RPC_IMPORT_CONTEXT_P),
            "::",
            stringify!(Bindings)
        )
    );
}
pub type PRPC_IMPORT_CONTEXT_P = *mut RPC_IMPORT_CONTEXT_P;
extern "C" {
    pub fn I_RpcNsGetBuffer(Message: PRPC_MESSAGE) -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcNsSendReceive(Message: PRPC_MESSAGE, Handle: *mut RPC_BINDING_HANDLE)
        -> RPC_STATUS;
}
extern "C" {
    pub fn I_RpcNsRaiseException(Message: PRPC_MESSAGE, Status: RPC_STATUS);
}
extern "C" {
    pub fn I_RpcReBindBuffer(Message: PRPC_MESSAGE) -> RPC_STATUS;
}
extern "C" {
    pub fn I_NsServerBindSearch() -> RPC_STATUS;
}
extern "C" {
    pub fn I_NsClientBindSearch() -> RPC_STATUS;
}
extern "C" {
    pub fn I_NsClientBindDone();
}
pub type byte = ::std::os::raw::c_uchar;
pub type cs_byte = byte;
pub type boolean = ::std::os::raw::c_uchar;
extern "C" {
    pub fn MIDL_user_allocate(size: size_t) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn MIDL_user_free(arg1: *mut ::std::os::raw::c_void);
}
extern "C" {
    pub fn I_RpcDefaultAllocate(
        bh: handle_t,
        size: size_t,
        RealAlloc: ::std::option::Option<
            unsafe extern "C" fn(arg1: size_t) -> *mut ::std::os::raw::c_void,
        >,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn I_RpcDefaultFree(
        bh: handle_t,
        arg1: *mut ::std::os::raw::c_void,
        RealFree: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    );
}
pub type NDR_CCONTEXT = *mut ::std::os::raw::c_void;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _bindgen_ty_2 {
    pub pad: [*mut ::std::os::raw::c_void; 2usize],
    pub userContext: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_bindgen_ty_2>(),
        24usize,
        concat!("Size of: ", stringify!(_bindgen_ty_2))
    );
    assert_eq!(
        ::std::mem::align_of::<_bindgen_ty_2>(),
        8usize,
        concat!("Alignment of ", stringify!(_bindgen_ty_2))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_bindgen_ty_2>())).pad as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_bindgen_ty_2),
            "::",
            stringify!(pad)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_bindgen_ty_2>())).userContext as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_bindgen_ty_2),
            "::",
            stringify!(userContext)
        )
    );
}
pub type NDR_SCONTEXT = *mut _bindgen_ty_2;
pub type NDR_RUNDOWN =
    ::std::option::Option<unsafe extern "C" fn(context: *mut ::std::os::raw::c_void)>;
pub type NDR_NOTIFY_ROUTINE = ::std::option::Option<unsafe extern "C" fn()>;
pub type NDR_NOTIFY2_ROUTINE = ::std::option::Option<unsafe extern "C" fn(flag: boolean)>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCONTEXT_QUEUE {
    pub NumberOfObjects: ::std::os::raw::c_ulong,
    pub ArrayOfObjects: *mut NDR_SCONTEXT,
}
#[test]
fn bindgen_test_layout__SCONTEXT_QUEUE() {
    assert_eq!(
        ::std::mem::size_of::<_SCONTEXT_QUEUE>(),
        16usize,
        concat!("Size of: ", stringify!(_SCONTEXT_QUEUE))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCONTEXT_QUEUE>(),
        8usize,
        concat!("Alignment of ", stringify!(_SCONTEXT_QUEUE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCONTEXT_QUEUE>())).NumberOfObjects as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCONTEXT_QUEUE),
            "::",
            stringify!(NumberOfObjects)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCONTEXT_QUEUE>())).ArrayOfObjects as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCONTEXT_QUEUE),
            "::",
            stringify!(ArrayOfObjects)
        )
    );
}
pub type SCONTEXT_QUEUE = _SCONTEXT_QUEUE;
pub type PSCONTEXT_QUEUE = *mut _SCONTEXT_QUEUE;
extern "C" {
    pub fn NDRCContextBinding(CContext: NDR_CCONTEXT) -> RPC_BINDING_HANDLE;
}
extern "C" {
    pub fn NDRCContextMarshall(CContext: NDR_CCONTEXT, pBuff: *mut ::std::os::raw::c_void);
}
extern "C" {
    pub fn NDRCContextUnmarshall(
        pCContext: *mut NDR_CCONTEXT,
        hBinding: RPC_BINDING_HANDLE,
        pBuff: *mut ::std::os::raw::c_void,
        DataRepresentation: ::std::os::raw::c_ulong,
    );
}
extern "C" {
    pub fn NDRCContextUnmarshall2(
        pCContext: *mut NDR_CCONTEXT,
        hBinding: RPC_BINDING_HANDLE,
        pBuff: *mut ::std::os::raw::c_void,
        DataRepresentation: ::std::os::raw::c_ulong,
    );
}
extern "C" {
    pub fn NDRSContextMarshall(
        CContext: NDR_SCONTEXT,
        pBuff: *mut ::std::os::raw::c_void,
        userRunDownIn: NDR_RUNDOWN,
    );
}
extern "C" {
    pub fn NDRSContextUnmarshall(
        pBuff: *mut ::std::os::raw::c_void,
        DataRepresentation: ::std::os::raw::c_ulong,
    ) -> NDR_SCONTEXT;
}
extern "C" {
    pub fn NDRSContextMarshallEx(
        BindingHandle: RPC_BINDING_HANDLE,
        CContext: NDR_SCONTEXT,
        pBuff: *mut ::std::os::raw::c_void,
        userRunDownIn: NDR_RUNDOWN,
    );
}
extern "C" {
    pub fn NDRSContextMarshall2(
        BindingHandle: RPC_BINDING_HANDLE,
        CContext: NDR_SCONTEXT,
        pBuff: *mut ::std::os::raw::c_void,
        userRunDownIn: NDR_RUNDOWN,
        CtxGuard: *mut ::std::os::raw::c_void,
        Flags: ::std::os::raw::c_ulong,
    );
}
extern "C" {
    pub fn NDRSContextUnmarshallEx(
        BindingHandle: RPC_BINDING_HANDLE,
        pBuff: *mut ::std::os::raw::c_void,
        DataRepresentation: ::std::os::raw::c_ulong,
    ) -> NDR_SCONTEXT;
}
extern "C" {
    pub fn NDRSContextUnmarshall2(
        BindingHandle: RPC_BINDING_HANDLE,
        pBuff: *mut ::std::os::raw::c_void,
        DataRepresentation: ::std::os::raw::c_ulong,
        CtxGuard: *mut ::std::os::raw::c_void,
        Flags: ::std::os::raw::c_ulong,
    ) -> NDR_SCONTEXT;
}
extern "C" {
    pub fn RpcSsDestroyClientContext(ContextHandle: *mut *mut ::std::os::raw::c_void);
}
pub type error_status_t = ::std::os::raw::c_ulong;
pub type RPC_BUFPTR = *mut ::std::os::raw::c_uchar;
pub type RPC_LENGTH = ::std::os::raw::c_ulong;
pub type EXPR_EVAL = ::std::option::Option<unsafe extern "C" fn(arg1: *mut _MIDL_STUB_MESSAGE)>;
pub type PFORMAT_STRING = *const ::std::os::raw::c_uchar;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ARRAY_INFO {
    pub Dimension: ::std::os::raw::c_long,
    pub BufferConformanceMark: *mut ::std::os::raw::c_ulong,
    pub BufferVarianceMark: *mut ::std::os::raw::c_ulong,
    pub MaxCountArray: *mut ::std::os::raw::c_ulong,
    pub OffsetArray: *mut ::std::os::raw::c_ulong,
    pub ActualCountArray: *mut ::std::os::raw::c_ulong,
}
#[test]
fn bindgen_test_layout_ARRAY_INFO() {
    assert_eq!(
        ::std::mem::size_of::<ARRAY_INFO>(),
        48usize,
        concat!("Size of: ", stringify!(ARRAY_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<ARRAY_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(ARRAY_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ARRAY_INFO>())).Dimension as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ARRAY_INFO),
            "::",
            stringify!(Dimension)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ARRAY_INFO>())).BufferConformanceMark as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ARRAY_INFO),
            "::",
            stringify!(BufferConformanceMark)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ARRAY_INFO>())).BufferVarianceMark as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ARRAY_INFO),
            "::",
            stringify!(BufferVarianceMark)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ARRAY_INFO>())).MaxCountArray as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ARRAY_INFO),
            "::",
            stringify!(MaxCountArray)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ARRAY_INFO>())).OffsetArray as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ARRAY_INFO),
            "::",
            stringify!(OffsetArray)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ARRAY_INFO>())).ActualCountArray as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(ARRAY_INFO),
            "::",
            stringify!(ActualCountArray)
        )
    );
}
pub type PARRAY_INFO = *mut ARRAY_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NDR_ASYNC_MESSAGE {
    _unused: [u8; 0],
}
pub type PNDR_ASYNC_MESSAGE = *mut _NDR_ASYNC_MESSAGE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NDR_CORRELATION_INFO {
    _unused: [u8; 0],
}
pub type PNDR_CORRELATION_INFO = *mut _NDR_CORRELATION_INFO;
pub type MIDL_SYNTAX_INFO = _MIDL_SYNTAX_INFO;
pub type PMIDL_SYNTAX_INFO = *mut _MIDL_SYNTAX_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct NDR_ALLOC_ALL_NODES_CONTEXT {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct NDR_POINTER_QUEUE_STATE {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NDR_PROC_CONTEXT {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MIDL_STUB_MESSAGE {
    pub RpcMsg: PRPC_MESSAGE,
    pub Buffer: *mut ::std::os::raw::c_uchar,
    pub BufferStart: *mut ::std::os::raw::c_uchar,
    pub BufferEnd: *mut ::std::os::raw::c_uchar,
    pub BufferMark: *mut ::std::os::raw::c_uchar,
    pub BufferLength: ::std::os::raw::c_ulong,
    pub MemorySize: ::std::os::raw::c_ulong,
    pub Memory: *mut ::std::os::raw::c_uchar,
    pub IsClient: ::std::os::raw::c_uchar,
    pub Pad: ::std::os::raw::c_uchar,
    pub uFlags2: ::std::os::raw::c_ushort,
    pub ReuseBuffer: ::std::os::raw::c_int,
    pub pAllocAllNodesContext: *mut NDR_ALLOC_ALL_NODES_CONTEXT,
    pub pPointerQueueState: *mut NDR_POINTER_QUEUE_STATE,
    pub IgnoreEmbeddedPointers: ::std::os::raw::c_int,
    pub PointerBufferMark: *mut ::std::os::raw::c_uchar,
    pub CorrDespIncrement: ::std::os::raw::c_uchar,
    pub uFlags: ::std::os::raw::c_uchar,
    pub UniquePtrCount: ::std::os::raw::c_ushort,
    pub MaxCount: ULONG_PTR,
    pub Offset: ::std::os::raw::c_ulong,
    pub ActualCount: ::std::os::raw::c_ulong,
    pub pfnAllocate:
        ::std::option::Option<unsafe extern "C" fn(arg1: size_t) -> *mut ::std::os::raw::c_void>,
    pub pfnFree: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    pub StackTop: *mut ::std::os::raw::c_uchar,
    pub pPresentedType: *mut ::std::os::raw::c_uchar,
    pub pTransmitType: *mut ::std::os::raw::c_uchar,
    pub SavedHandle: handle_t,
    pub StubDesc: *const _MIDL_STUB_DESC,
    pub FullPtrXlatTables: *mut _FULL_PTR_XLAT_TABLES,
    pub FullPtrRefId: ::std::os::raw::c_ulong,
    pub PointerLength: ::std::os::raw::c_ulong,
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u16>,
    pub dwDestContext: ::std::os::raw::c_ulong,
    pub pvDestContext: *mut ::std::os::raw::c_void,
    pub SavedContextHandles: *mut NDR_SCONTEXT,
    pub ParamNumber: ::std::os::raw::c_long,
    pub pRpcChannelBuffer: *mut IRpcChannelBuffer,
    pub pArrayInfo: PARRAY_INFO,
    pub SizePtrCountArray: *mut ::std::os::raw::c_ulong,
    pub SizePtrOffsetArray: *mut ::std::os::raw::c_ulong,
    pub SizePtrLengthArray: *mut ::std::os::raw::c_ulong,
    pub pArgQueue: *mut ::std::os::raw::c_void,
    pub dwStubPhase: ::std::os::raw::c_ulong,
    pub LowStackMark: *mut ::std::os::raw::c_void,
    pub pAsyncMsg: PNDR_ASYNC_MESSAGE,
    pub pCorrInfo: PNDR_CORRELATION_INFO,
    pub pCorrMemory: *mut ::std::os::raw::c_uchar,
    pub pMemoryList: *mut ::std::os::raw::c_void,
    pub pCSInfo: INT_PTR,
    pub ConformanceMark: *mut ::std::os::raw::c_uchar,
    pub VarianceMark: *mut ::std::os::raw::c_uchar,
    pub Unused: INT_PTR,
    pub pContext: *mut _NDR_PROC_CONTEXT,
    pub ContextHandleHash: *mut ::std::os::raw::c_void,
    pub pUserMarshalList: *mut ::std::os::raw::c_void,
    pub Reserved51_3: INT_PTR,
    pub Reserved51_4: INT_PTR,
    pub Reserved51_5: INT_PTR,
}
#[test]
fn bindgen_test_layout__MIDL_STUB_MESSAGE() {
    assert_eq!(
        ::std::mem::size_of::<_MIDL_STUB_MESSAGE>(),
        400usize,
        concat!("Size of: ", stringify!(_MIDL_STUB_MESSAGE))
    );
    assert_eq!(
        ::std::mem::align_of::<_MIDL_STUB_MESSAGE>(),
        8usize,
        concat!("Alignment of ", stringify!(_MIDL_STUB_MESSAGE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).RpcMsg as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(RpcMsg)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).Buffer as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(Buffer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).BufferStart as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(BufferStart)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).BufferEnd as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(BufferEnd)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).BufferMark as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(BufferMark)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).BufferLength as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(BufferLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).MemorySize as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(MemorySize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).Memory as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(Memory)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).IsClient as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(IsClient)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).Pad as *const _ as usize },
        57usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(Pad)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).uFlags2 as *const _ as usize },
        58usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(uFlags2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).ReuseBuffer as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(ReuseBuffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).pAllocAllNodesContext as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(pAllocAllNodesContext)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).pPointerQueueState as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(pPointerQueueState)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).IgnoreEmbeddedPointers as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(IgnoreEmbeddedPointers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).PointerBufferMark as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(PointerBufferMark)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).CorrDespIncrement as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(CorrDespIncrement)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).uFlags as *const _ as usize },
        97usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(uFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).UniquePtrCount as *const _ as usize
        },
        98usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(UniquePtrCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).MaxCount as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(MaxCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).Offset as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(Offset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).ActualCount as *const _ as usize },
        116usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(ActualCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).pfnAllocate as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(pfnAllocate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).pfnFree as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(pfnFree)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).StackTop as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(StackTop)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).pPresentedType as *const _ as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(pPresentedType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).pTransmitType as *const _ as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(pTransmitType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).SavedHandle as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(SavedHandle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).StubDesc as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(StubDesc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).FullPtrXlatTables as *const _ as usize
        },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(FullPtrXlatTables)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).FullPtrRefId as *const _ as usize },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(FullPtrRefId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).PointerLength as *const _ as usize
        },
        188usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(PointerLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).dwDestContext as *const _ as usize
        },
        196usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(dwDestContext)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).pvDestContext as *const _ as usize
        },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(pvDestContext)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).SavedContextHandles as *const _ as usize
        },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(SavedContextHandles)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).ParamNumber as *const _ as usize },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(ParamNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).pRpcChannelBuffer as *const _ as usize
        },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(pRpcChannelBuffer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).pArrayInfo as *const _ as usize },
        232usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(pArrayInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).SizePtrCountArray as *const _ as usize
        },
        240usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(SizePtrCountArray)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).SizePtrOffsetArray as *const _ as usize
        },
        248usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(SizePtrOffsetArray)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).SizePtrLengthArray as *const _ as usize
        },
        256usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(SizePtrLengthArray)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).pArgQueue as *const _ as usize },
        264usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(pArgQueue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).dwStubPhase as *const _ as usize },
        272usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(dwStubPhase)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).LowStackMark as *const _ as usize },
        280usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(LowStackMark)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).pAsyncMsg as *const _ as usize },
        288usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(pAsyncMsg)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).pCorrInfo as *const _ as usize },
        296usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(pCorrInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).pCorrMemory as *const _ as usize },
        304usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(pCorrMemory)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).pMemoryList as *const _ as usize },
        312usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(pMemoryList)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).pCSInfo as *const _ as usize },
        320usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(pCSInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).ConformanceMark as *const _ as usize
        },
        328usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(ConformanceMark)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).VarianceMark as *const _ as usize },
        336usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(VarianceMark)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).Unused as *const _ as usize },
        344usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(Unused)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).pContext as *const _ as usize },
        352usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(pContext)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).ContextHandleHash as *const _ as usize
        },
        360usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(ContextHandleHash)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).pUserMarshalList as *const _ as usize
        },
        368usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(pUserMarshalList)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).Reserved51_3 as *const _ as usize },
        376usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(Reserved51_3)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).Reserved51_4 as *const _ as usize },
        384usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(Reserved51_4)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_MESSAGE>())).Reserved51_5 as *const _ as usize },
        392usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_MESSAGE),
            "::",
            stringify!(Reserved51_5)
        )
    );
}
impl _MIDL_STUB_MESSAGE {
    #[inline]
    pub fn fInDontFree(&self) -> ::std::os::raw::c_int {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fInDontFree(&mut self, val: ::std::os::raw::c_int) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fDontCallFreeInst(&self) -> ::std::os::raw::c_int {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fDontCallFreeInst(&mut self, val: ::std::os::raw::c_int) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fUnused1(&self) -> ::std::os::raw::c_int {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fUnused1(&mut self, val: ::std::os::raw::c_int) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(2usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fHasReturn(&self) -> ::std::os::raw::c_int {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fHasReturn(&mut self, val: ::std::os::raw::c_int) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(3usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fHasExtensions(&self) -> ::std::os::raw::c_int {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fHasExtensions(&mut self, val: ::std::os::raw::c_int) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(4usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fHasNewCorrDesc(&self) -> ::std::os::raw::c_int {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fHasNewCorrDesc(&mut self, val: ::std::os::raw::c_int) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(5usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fIsIn(&self) -> ::std::os::raw::c_int {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fIsIn(&mut self, val: ::std::os::raw::c_int) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(6usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fIsOut(&self) -> ::std::os::raw::c_int {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fIsOut(&mut self, val: ::std::os::raw::c_int) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(7usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fIsOicf(&self) -> ::std::os::raw::c_int {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fIsOicf(&mut self, val: ::std::os::raw::c_int) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(8usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fBufferValid(&self) -> ::std::os::raw::c_int {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fBufferValid(&mut self, val: ::std::os::raw::c_int) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(9usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fHasMemoryValidateCallback(&self) -> ::std::os::raw::c_int {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fHasMemoryValidateCallback(&mut self, val: ::std::os::raw::c_int) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(10usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fInFree(&self) -> ::std::os::raw::c_int {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fInFree(&mut self, val: ::std::os::raw::c_int) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(11usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fNeedMCCP(&self) -> ::std::os::raw::c_int {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_fNeedMCCP(&mut self, val: ::std::os::raw::c_int) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(12usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn fUnused2(&self) -> ::std::os::raw::c_int {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 3u8) as u32) }
    }
    #[inline]
    pub fn set_fUnused2(&mut self, val: ::std::os::raw::c_int) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(13usize, 3u8, val as u64)
        }
    }
    #[inline]
    pub fn fUnused3(&self) -> ::std::os::raw::c_int {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 16u8) as u32) }
    }
    #[inline]
    pub fn set_fUnused3(&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(
        fInDontFree: ::std::os::raw::c_int,
        fDontCallFreeInst: ::std::os::raw::c_int,
        fUnused1: ::std::os::raw::c_int,
        fHasReturn: ::std::os::raw::c_int,
        fHasExtensions: ::std::os::raw::c_int,
        fHasNewCorrDesc: ::std::os::raw::c_int,
        fIsIn: ::std::os::raw::c_int,
        fIsOut: ::std::os::raw::c_int,
        fIsOicf: ::std::os::raw::c_int,
        fBufferValid: ::std::os::raw::c_int,
        fHasMemoryValidateCallback: ::std::os::raw::c_int,
        fInFree: ::std::os::raw::c_int,
        fNeedMCCP: ::std::os::raw::c_int,
        fUnused2: ::std::os::raw::c_int,
        fUnused3: ::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 fInDontFree: u32 = unsafe { ::std::mem::transmute(fInDontFree) };
            fInDontFree as u64
        });
        __bindgen_bitfield_unit.set(1usize, 1u8, {
            let fDontCallFreeInst: u32 = unsafe { ::std::mem::transmute(fDontCallFreeInst) };
            fDontCallFreeInst as u64
        });
        __bindgen_bitfield_unit.set(2usize, 1u8, {
            let fUnused1: u32 = unsafe { ::std::mem::transmute(fUnused1) };
            fUnused1 as u64
        });
        __bindgen_bitfield_unit.set(3usize, 1u8, {
            let fHasReturn: u32 = unsafe { ::std::mem::transmute(fHasReturn) };
            fHasReturn as u64
        });
        __bindgen_bitfield_unit.set(4usize, 1u8, {
            let fHasExtensions: u32 = unsafe { ::std::mem::transmute(fHasExtensions) };
            fHasExtensions as u64
        });
        __bindgen_bitfield_unit.set(5usize, 1u8, {
            let fHasNewCorrDesc: u32 = unsafe { ::std::mem::transmute(fHasNewCorrDesc) };
            fHasNewCorrDesc as u64
        });
        __bindgen_bitfield_unit.set(6usize, 1u8, {
            let fIsIn: u32 = unsafe { ::std::mem::transmute(fIsIn) };
            fIsIn as u64
        });
        __bindgen_bitfield_unit.set(7usize, 1u8, {
            let fIsOut: u32 = unsafe { ::std::mem::transmute(fIsOut) };
            fIsOut as u64
        });
        __bindgen_bitfield_unit.set(8usize, 1u8, {
            let fIsOicf: u32 = unsafe { ::std::mem::transmute(fIsOicf) };
            fIsOicf as u64
        });
        __bindgen_bitfield_unit.set(9usize, 1u8, {
            let fBufferValid: u32 = unsafe { ::std::mem::transmute(fBufferValid) };
            fBufferValid as u64
        });
        __bindgen_bitfield_unit.set(10usize, 1u8, {
            let fHasMemoryValidateCallback: u32 =
                unsafe { ::std::mem::transmute(fHasMemoryValidateCallback) };
            fHasMemoryValidateCallback as u64
        });
        __bindgen_bitfield_unit.set(11usize, 1u8, {
            let fInFree: u32 = unsafe { ::std::mem::transmute(fInFree) };
            fInFree as u64
        });
        __bindgen_bitfield_unit.set(12usize, 1u8, {
            let fNeedMCCP: u32 = unsafe { ::std::mem::transmute(fNeedMCCP) };
            fNeedMCCP as u64
        });
        __bindgen_bitfield_unit.set(13usize, 3u8, {
            let fUnused2: u32 = unsafe { ::std::mem::transmute(fUnused2) };
            fUnused2 as u64
        });
        __bindgen_bitfield_unit.set(16usize, 16u8, {
            let fUnused3: u32 = unsafe { ::std::mem::transmute(fUnused3) };
            fUnused3 as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type MIDL_STUB_MESSAGE = _MIDL_STUB_MESSAGE;
pub type PMIDL_STUB_MESSAGE = *mut _MIDL_STUB_MESSAGE;
pub type GENERIC_BINDING_ROUTINE = ::std::option::Option<
    unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void,
>;
pub type GENERIC_UNBIND_ROUTINE = ::std::option::Option<
    unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void, arg2: *mut ::std::os::raw::c_uchar),
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _GENERIC_BINDING_ROUTINE_PAIR {
    pub pfnBind: GENERIC_BINDING_ROUTINE,
    pub pfnUnbind: GENERIC_UNBIND_ROUTINE,
}
#[test]
fn bindgen_test_layout__GENERIC_BINDING_ROUTINE_PAIR() {
    assert_eq!(
        ::std::mem::size_of::<_GENERIC_BINDING_ROUTINE_PAIR>(),
        16usize,
        concat!("Size of: ", stringify!(_GENERIC_BINDING_ROUTINE_PAIR))
    );
    assert_eq!(
        ::std::mem::align_of::<_GENERIC_BINDING_ROUTINE_PAIR>(),
        8usize,
        concat!("Alignment of ", stringify!(_GENERIC_BINDING_ROUTINE_PAIR))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GENERIC_BINDING_ROUTINE_PAIR>())).pfnBind as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_GENERIC_BINDING_ROUTINE_PAIR),
            "::",
            stringify!(pfnBind)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GENERIC_BINDING_ROUTINE_PAIR>())).pfnUnbind as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_GENERIC_BINDING_ROUTINE_PAIR),
            "::",
            stringify!(pfnUnbind)
        )
    );
}
pub type GENERIC_BINDING_ROUTINE_PAIR = _GENERIC_BINDING_ROUTINE_PAIR;
pub type PGENERIC_BINDING_ROUTINE_PAIR = *mut _GENERIC_BINDING_ROUTINE_PAIR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __GENERIC_BINDING_INFO {
    pub pObj: *mut ::std::os::raw::c_void,
    pub Size: ::std::os::raw::c_uint,
    pub pfnBind: GENERIC_BINDING_ROUTINE,
    pub pfnUnbind: GENERIC_UNBIND_ROUTINE,
}
#[test]
fn bindgen_test_layout___GENERIC_BINDING_INFO() {
    assert_eq!(
        ::std::mem::size_of::<__GENERIC_BINDING_INFO>(),
        32usize,
        concat!("Size of: ", stringify!(__GENERIC_BINDING_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<__GENERIC_BINDING_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(__GENERIC_BINDING_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<__GENERIC_BINDING_INFO>())).pObj as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__GENERIC_BINDING_INFO),
            "::",
            stringify!(pObj)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<__GENERIC_BINDING_INFO>())).Size as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(__GENERIC_BINDING_INFO),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<__GENERIC_BINDING_INFO>())).pfnBind as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(__GENERIC_BINDING_INFO),
            "::",
            stringify!(pfnBind)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__GENERIC_BINDING_INFO>())).pfnUnbind as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(__GENERIC_BINDING_INFO),
            "::",
            stringify!(pfnUnbind)
        )
    );
}
pub type GENERIC_BINDING_INFO = __GENERIC_BINDING_INFO;
pub type PGENERIC_BINDING_INFO = *mut __GENERIC_BINDING_INFO;
pub type XMIT_HELPER_ROUTINE =
    ::std::option::Option<unsafe extern "C" fn(arg1: PMIDL_STUB_MESSAGE)>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _XMIT_ROUTINE_QUINTUPLE {
    pub pfnTranslateToXmit: XMIT_HELPER_ROUTINE,
    pub pfnTranslateFromXmit: XMIT_HELPER_ROUTINE,
    pub pfnFreeXmit: XMIT_HELPER_ROUTINE,
    pub pfnFreeInst: XMIT_HELPER_ROUTINE,
}
#[test]
fn bindgen_test_layout__XMIT_ROUTINE_QUINTUPLE() {
    assert_eq!(
        ::std::mem::size_of::<_XMIT_ROUTINE_QUINTUPLE>(),
        32usize,
        concat!("Size of: ", stringify!(_XMIT_ROUTINE_QUINTUPLE))
    );
    assert_eq!(
        ::std::mem::align_of::<_XMIT_ROUTINE_QUINTUPLE>(),
        8usize,
        concat!("Alignment of ", stringify!(_XMIT_ROUTINE_QUINTUPLE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_XMIT_ROUTINE_QUINTUPLE>())).pfnTranslateToXmit as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_XMIT_ROUTINE_QUINTUPLE),
            "::",
            stringify!(pfnTranslateToXmit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_XMIT_ROUTINE_QUINTUPLE>())).pfnTranslateFromXmit as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_XMIT_ROUTINE_QUINTUPLE),
            "::",
            stringify!(pfnTranslateFromXmit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_XMIT_ROUTINE_QUINTUPLE>())).pfnFreeXmit as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_XMIT_ROUTINE_QUINTUPLE),
            "::",
            stringify!(pfnFreeXmit)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_XMIT_ROUTINE_QUINTUPLE>())).pfnFreeInst as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_XMIT_ROUTINE_QUINTUPLE),
            "::",
            stringify!(pfnFreeInst)
        )
    );
}
pub type XMIT_ROUTINE_QUINTUPLE = _XMIT_ROUTINE_QUINTUPLE;
pub type PXMIT_ROUTINE_QUINTUPLE = *mut _XMIT_ROUTINE_QUINTUPLE;
pub type USER_MARSHAL_SIZING_ROUTINE = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_ulong,
>;
pub type USER_MARSHAL_MARSHALLING_ROUTINE = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut ::std::os::raw::c_void,
    ) -> *mut ::std::os::raw::c_uchar,
>;
pub type USER_MARSHAL_UNMARSHALLING_ROUTINE = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut ::std::os::raw::c_void,
    ) -> *mut ::std::os::raw::c_uchar,
>;
pub type USER_MARSHAL_FREEING_ROUTINE = ::std::option::Option<
    unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_ulong, arg2: *mut ::std::os::raw::c_void),
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _USER_MARSHAL_ROUTINE_QUADRUPLE {
    pub pfnBufferSize: USER_MARSHAL_SIZING_ROUTINE,
    pub pfnMarshall: USER_MARSHAL_MARSHALLING_ROUTINE,
    pub pfnUnmarshall: USER_MARSHAL_UNMARSHALLING_ROUTINE,
    pub pfnFree: USER_MARSHAL_FREEING_ROUTINE,
}
#[test]
fn bindgen_test_layout__USER_MARSHAL_ROUTINE_QUADRUPLE() {
    assert_eq!(
        ::std::mem::size_of::<_USER_MARSHAL_ROUTINE_QUADRUPLE>(),
        32usize,
        concat!("Size of: ", stringify!(_USER_MARSHAL_ROUTINE_QUADRUPLE))
    );
    assert_eq!(
        ::std::mem::align_of::<_USER_MARSHAL_ROUTINE_QUADRUPLE>(),
        8usize,
        concat!("Alignment of ", stringify!(_USER_MARSHAL_ROUTINE_QUADRUPLE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_USER_MARSHAL_ROUTINE_QUADRUPLE>())).pfnBufferSize as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_USER_MARSHAL_ROUTINE_QUADRUPLE),
            "::",
            stringify!(pfnBufferSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_USER_MARSHAL_ROUTINE_QUADRUPLE>())).pfnMarshall as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_USER_MARSHAL_ROUTINE_QUADRUPLE),
            "::",
            stringify!(pfnMarshall)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_USER_MARSHAL_ROUTINE_QUADRUPLE>())).pfnUnmarshall as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_USER_MARSHAL_ROUTINE_QUADRUPLE),
            "::",
            stringify!(pfnUnmarshall)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_USER_MARSHAL_ROUTINE_QUADRUPLE>())).pfnFree as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_USER_MARSHAL_ROUTINE_QUADRUPLE),
            "::",
            stringify!(pfnFree)
        )
    );
}
pub type USER_MARSHAL_ROUTINE_QUADRUPLE = _USER_MARSHAL_ROUTINE_QUADRUPLE;
pub const _USER_MARSHAL_CB_TYPE_USER_MARSHAL_CB_BUFFER_SIZE: _USER_MARSHAL_CB_TYPE = 0;
pub const _USER_MARSHAL_CB_TYPE_USER_MARSHAL_CB_MARSHALL: _USER_MARSHAL_CB_TYPE = 1;
pub const _USER_MARSHAL_CB_TYPE_USER_MARSHAL_CB_UNMARSHALL: _USER_MARSHAL_CB_TYPE = 2;
pub const _USER_MARSHAL_CB_TYPE_USER_MARSHAL_CB_FREE: _USER_MARSHAL_CB_TYPE = 3;
pub type _USER_MARSHAL_CB_TYPE = ::std::os::raw::c_int;
pub use self::_USER_MARSHAL_CB_TYPE as USER_MARSHAL_CB_TYPE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _USER_MARSHAL_CB {
    pub Flags: ::std::os::raw::c_ulong,
    pub pStubMsg: PMIDL_STUB_MESSAGE,
    pub pReserve: PFORMAT_STRING,
    pub Signature: ::std::os::raw::c_ulong,
    pub CBType: USER_MARSHAL_CB_TYPE,
    pub pFormat: PFORMAT_STRING,
    pub pTypeFormat: PFORMAT_STRING,
}
#[test]
fn bindgen_test_layout__USER_MARSHAL_CB() {
    assert_eq!(
        ::std::mem::size_of::<_USER_MARSHAL_CB>(),
        48usize,
        concat!("Size of: ", stringify!(_USER_MARSHAL_CB))
    );
    assert_eq!(
        ::std::mem::align_of::<_USER_MARSHAL_CB>(),
        8usize,
        concat!("Alignment of ", stringify!(_USER_MARSHAL_CB))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_USER_MARSHAL_CB>())).Flags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_USER_MARSHAL_CB),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_USER_MARSHAL_CB>())).pStubMsg as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_USER_MARSHAL_CB),
            "::",
            stringify!(pStubMsg)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_USER_MARSHAL_CB>())).pReserve as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_USER_MARSHAL_CB),
            "::",
            stringify!(pReserve)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_USER_MARSHAL_CB>())).Signature as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_USER_MARSHAL_CB),
            "::",
            stringify!(Signature)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_USER_MARSHAL_CB>())).CBType as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_USER_MARSHAL_CB),
            "::",
            stringify!(CBType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_USER_MARSHAL_CB>())).pFormat as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_USER_MARSHAL_CB),
            "::",
            stringify!(pFormat)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_USER_MARSHAL_CB>())).pTypeFormat as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_USER_MARSHAL_CB),
            "::",
            stringify!(pTypeFormat)
        )
    );
}
pub type USER_MARSHAL_CB = _USER_MARSHAL_CB;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MALLOC_FREE_STRUCT {
    pub pfnAllocate:
        ::std::option::Option<unsafe extern "C" fn(arg1: size_t) -> *mut ::std::os::raw::c_void>,
    pub pfnFree: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
}
#[test]
fn bindgen_test_layout__MALLOC_FREE_STRUCT() {
    assert_eq!(
        ::std::mem::size_of::<_MALLOC_FREE_STRUCT>(),
        16usize,
        concat!("Size of: ", stringify!(_MALLOC_FREE_STRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<_MALLOC_FREE_STRUCT>(),
        8usize,
        concat!("Alignment of ", stringify!(_MALLOC_FREE_STRUCT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MALLOC_FREE_STRUCT>())).pfnAllocate as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MALLOC_FREE_STRUCT),
            "::",
            stringify!(pfnAllocate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MALLOC_FREE_STRUCT>())).pfnFree as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_MALLOC_FREE_STRUCT),
            "::",
            stringify!(pfnFree)
        )
    );
}
pub type MALLOC_FREE_STRUCT = _MALLOC_FREE_STRUCT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _COMM_FAULT_OFFSETS {
    pub CommOffset: ::std::os::raw::c_short,
    pub FaultOffset: ::std::os::raw::c_short,
}
#[test]
fn bindgen_test_layout__COMM_FAULT_OFFSETS() {
    assert_eq!(
        ::std::mem::size_of::<_COMM_FAULT_OFFSETS>(),
        4usize,
        concat!("Size of: ", stringify!(_COMM_FAULT_OFFSETS))
    );
    assert_eq!(
        ::std::mem::align_of::<_COMM_FAULT_OFFSETS>(),
        2usize,
        concat!("Alignment of ", stringify!(_COMM_FAULT_OFFSETS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COMM_FAULT_OFFSETS>())).CommOffset as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMM_FAULT_OFFSETS),
            "::",
            stringify!(CommOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COMM_FAULT_OFFSETS>())).FaultOffset as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_COMM_FAULT_OFFSETS),
            "::",
            stringify!(FaultOffset)
        )
    );
}
pub type COMM_FAULT_OFFSETS = _COMM_FAULT_OFFSETS;
pub const _IDL_CS_CONVERT_IDL_CS_NO_CONVERT: _IDL_CS_CONVERT = 0;
pub const _IDL_CS_CONVERT_IDL_CS_IN_PLACE_CONVERT: _IDL_CS_CONVERT = 1;
pub const _IDL_CS_CONVERT_IDL_CS_NEW_BUFFER_CONVERT: _IDL_CS_CONVERT = 2;
pub type _IDL_CS_CONVERT = ::std::os::raw::c_int;
pub use self::_IDL_CS_CONVERT as IDL_CS_CONVERT;
pub type CS_TYPE_NET_SIZE_ROUTINE = ::std::option::Option<
    unsafe extern "C" fn(
        hBinding: RPC_BINDING_HANDLE,
        ulNetworkCodeSet: ::std::os::raw::c_ulong,
        ulLocalBufferSize: ::std::os::raw::c_ulong,
        conversionType: *mut IDL_CS_CONVERT,
        pulNetworkBufferSize: *mut ::std::os::raw::c_ulong,
        pStatus: *mut error_status_t,
    ),
>;
pub type CS_TYPE_LOCAL_SIZE_ROUTINE = ::std::option::Option<
    unsafe extern "C" fn(
        hBinding: RPC_BINDING_HANDLE,
        ulNetworkCodeSet: ::std::os::raw::c_ulong,
        ulNetworkBufferSize: ::std::os::raw::c_ulong,
        conversionType: *mut IDL_CS_CONVERT,
        pulLocalBufferSize: *mut ::std::os::raw::c_ulong,
        pStatus: *mut error_status_t,
    ),
>;
pub type CS_TYPE_TO_NETCS_ROUTINE = ::std::option::Option<
    unsafe extern "C" fn(
        hBinding: RPC_BINDING_HANDLE,
        ulNetworkCodeSet: ::std::os::raw::c_ulong,
        pLocalData: *mut ::std::os::raw::c_void,
        ulLocalDataLength: ::std::os::raw::c_ulong,
        pNetworkData: *mut byte,
        pulNetworkDataLength: *mut ::std::os::raw::c_ulong,
        pStatus: *mut error_status_t,
    ),
>;
pub type CS_TYPE_FROM_NETCS_ROUTINE = ::std::option::Option<
    unsafe extern "C" fn(
        hBinding: RPC_BINDING_HANDLE,
        ulNetworkCodeSet: ::std::os::raw::c_ulong,
        pNetworkData: *mut byte,
        ulNetworkDataLength: ::std::os::raw::c_ulong,
        ulLocalBufferSize: ::std::os::raw::c_ulong,
        pLocalData: *mut ::std::os::raw::c_void,
        pulLocalDataLength: *mut ::std::os::raw::c_ulong,
        pStatus: *mut error_status_t,
    ),
>;
pub type CS_TAG_GETTING_ROUTINE = ::std::option::Option<
    unsafe extern "C" fn(
        hBinding: RPC_BINDING_HANDLE,
        fServerSide: ::std::os::raw::c_int,
        pulSendingTag: *mut ::std::os::raw::c_ulong,
        pulDesiredReceivingTag: *mut ::std::os::raw::c_ulong,
        pulReceivingTag: *mut ::std::os::raw::c_ulong,
        pStatus: *mut error_status_t,
    ),
>;
extern "C" {
    pub fn RpcCsGetTags(
        hBinding: RPC_BINDING_HANDLE,
        fServerSide: ::std::os::raw::c_int,
        pulSendingTag: *mut ::std::os::raw::c_ulong,
        pulDesiredReceivingTag: *mut ::std::os::raw::c_ulong,
        pulReceivingTag: *mut ::std::os::raw::c_ulong,
        pStatus: *mut error_status_t,
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NDR_CS_SIZE_CONVERT_ROUTINES {
    pub pfnNetSize: CS_TYPE_NET_SIZE_ROUTINE,
    pub pfnToNetCs: CS_TYPE_TO_NETCS_ROUTINE,
    pub pfnLocalSize: CS_TYPE_LOCAL_SIZE_ROUTINE,
    pub pfnFromNetCs: CS_TYPE_FROM_NETCS_ROUTINE,
}
#[test]
fn bindgen_test_layout__NDR_CS_SIZE_CONVERT_ROUTINES() {
    assert_eq!(
        ::std::mem::size_of::<_NDR_CS_SIZE_CONVERT_ROUTINES>(),
        32usize,
        concat!("Size of: ", stringify!(_NDR_CS_SIZE_CONVERT_ROUTINES))
    );
    assert_eq!(
        ::std::mem::align_of::<_NDR_CS_SIZE_CONVERT_ROUTINES>(),
        8usize,
        concat!("Alignment of ", stringify!(_NDR_CS_SIZE_CONVERT_ROUTINES))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NDR_CS_SIZE_CONVERT_ROUTINES>())).pfnNetSize as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NDR_CS_SIZE_CONVERT_ROUTINES),
            "::",
            stringify!(pfnNetSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NDR_CS_SIZE_CONVERT_ROUTINES>())).pfnToNetCs as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NDR_CS_SIZE_CONVERT_ROUTINES),
            "::",
            stringify!(pfnToNetCs)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NDR_CS_SIZE_CONVERT_ROUTINES>())).pfnLocalSize as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_NDR_CS_SIZE_CONVERT_ROUTINES),
            "::",
            stringify!(pfnLocalSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NDR_CS_SIZE_CONVERT_ROUTINES>())).pfnFromNetCs as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_NDR_CS_SIZE_CONVERT_ROUTINES),
            "::",
            stringify!(pfnFromNetCs)
        )
    );
}
pub type NDR_CS_SIZE_CONVERT_ROUTINES = _NDR_CS_SIZE_CONVERT_ROUTINES;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NDR_CS_ROUTINES {
    pub pSizeConvertRoutines: *mut NDR_CS_SIZE_CONVERT_ROUTINES,
    pub pTagGettingRoutines: *mut CS_TAG_GETTING_ROUTINE,
}
#[test]
fn bindgen_test_layout__NDR_CS_ROUTINES() {
    assert_eq!(
        ::std::mem::size_of::<_NDR_CS_ROUTINES>(),
        16usize,
        concat!("Size of: ", stringify!(_NDR_CS_ROUTINES))
    );
    assert_eq!(
        ::std::mem::align_of::<_NDR_CS_ROUTINES>(),
        8usize,
        concat!("Alignment of ", stringify!(_NDR_CS_ROUTINES))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NDR_CS_ROUTINES>())).pSizeConvertRoutines as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NDR_CS_ROUTINES),
            "::",
            stringify!(pSizeConvertRoutines)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NDR_CS_ROUTINES>())).pTagGettingRoutines as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NDR_CS_ROUTINES),
            "::",
            stringify!(pTagGettingRoutines)
        )
    );
}
pub type NDR_CS_ROUTINES = _NDR_CS_ROUTINES;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NDR_EXPR_DESC {
    pub pOffset: *const ::std::os::raw::c_ushort,
    pub pFormatExpr: PFORMAT_STRING,
}
#[test]
fn bindgen_test_layout__NDR_EXPR_DESC() {
    assert_eq!(
        ::std::mem::size_of::<_NDR_EXPR_DESC>(),
        16usize,
        concat!("Size of: ", stringify!(_NDR_EXPR_DESC))
    );
    assert_eq!(
        ::std::mem::align_of::<_NDR_EXPR_DESC>(),
        8usize,
        concat!("Alignment of ", stringify!(_NDR_EXPR_DESC))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NDR_EXPR_DESC>())).pOffset as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NDR_EXPR_DESC),
            "::",
            stringify!(pOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NDR_EXPR_DESC>())).pFormatExpr as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NDR_EXPR_DESC),
            "::",
            stringify!(pFormatExpr)
        )
    );
}
pub type NDR_EXPR_DESC = _NDR_EXPR_DESC;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _MIDL_STUB_DESC {
    pub RpcInterfaceInformation: *mut ::std::os::raw::c_void,
    pub pfnAllocate:
        ::std::option::Option<unsafe extern "C" fn(arg1: size_t) -> *mut ::std::os::raw::c_void>,
    pub pfnFree: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    pub IMPLICIT_HANDLE_INFO: _MIDL_STUB_DESC__bindgen_ty_1,
    pub apfnNdrRundownRoutines: *const NDR_RUNDOWN,
    pub aGenericBindingRoutinePairs: *const GENERIC_BINDING_ROUTINE_PAIR,
    pub apfnExprEval: *const EXPR_EVAL,
    pub aXmitQuintuple: *const XMIT_ROUTINE_QUINTUPLE,
    pub pFormatTypes: *const ::std::os::raw::c_uchar,
    pub fCheckBounds: ::std::os::raw::c_int,
    pub Version: ::std::os::raw::c_ulong,
    pub pMallocFreeStruct: *mut MALLOC_FREE_STRUCT,
    pub MIDLVersion: ::std::os::raw::c_long,
    pub CommFaultOffsets: *const COMM_FAULT_OFFSETS,
    pub aUserMarshalQuadruple: *const USER_MARSHAL_ROUTINE_QUADRUPLE,
    pub NotifyRoutineTable: *const NDR_NOTIFY_ROUTINE,
    pub mFlags: ULONG_PTR,
    pub CsRoutineTables: *const NDR_CS_ROUTINES,
    pub ProxyServerInfo: *mut ::std::os::raw::c_void,
    pub pExprInfo: *const NDR_EXPR_DESC,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _MIDL_STUB_DESC__bindgen_ty_1 {
    pub pAutoHandle: *mut handle_t,
    pub pPrimitiveHandle: *mut handle_t,
    pub pGenericBindingInfo: PGENERIC_BINDING_INFO,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__MIDL_STUB_DESC__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_MIDL_STUB_DESC__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_MIDL_STUB_DESC__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_MIDL_STUB_DESC__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(_MIDL_STUB_DESC__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUB_DESC__bindgen_ty_1>())).pAutoHandle as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_DESC__bindgen_ty_1),
            "::",
            stringify!(pAutoHandle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUB_DESC__bindgen_ty_1>())).pPrimitiveHandle as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_DESC__bindgen_ty_1),
            "::",
            stringify!(pPrimitiveHandle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUB_DESC__bindgen_ty_1>())).pGenericBindingInfo
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_DESC__bindgen_ty_1),
            "::",
            stringify!(pGenericBindingInfo)
        )
    );
}
#[test]
fn bindgen_test_layout__MIDL_STUB_DESC() {
    assert_eq!(
        ::std::mem::size_of::<_MIDL_STUB_DESC>(),
        152usize,
        concat!("Size of: ", stringify!(_MIDL_STUB_DESC))
    );
    assert_eq!(
        ::std::mem::align_of::<_MIDL_STUB_DESC>(),
        8usize,
        concat!("Alignment of ", stringify!(_MIDL_STUB_DESC))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUB_DESC>())).RpcInterfaceInformation as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_DESC),
            "::",
            stringify!(RpcInterfaceInformation)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_DESC>())).pfnAllocate as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_DESC),
            "::",
            stringify!(pfnAllocate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_DESC>())).pfnFree as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_DESC),
            "::",
            stringify!(pfnFree)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUB_DESC>())).IMPLICIT_HANDLE_INFO as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_DESC),
            "::",
            stringify!(IMPLICIT_HANDLE_INFO)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUB_DESC>())).apfnNdrRundownRoutines as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_DESC),
            "::",
            stringify!(apfnNdrRundownRoutines)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUB_DESC>())).aGenericBindingRoutinePairs as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_DESC),
            "::",
            stringify!(aGenericBindingRoutinePairs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_DESC>())).apfnExprEval as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_DESC),
            "::",
            stringify!(apfnExprEval)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_DESC>())).aXmitQuintuple as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_DESC),
            "::",
            stringify!(aXmitQuintuple)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_DESC>())).pFormatTypes as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_DESC),
            "::",
            stringify!(pFormatTypes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_DESC>())).fCheckBounds as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_DESC),
            "::",
            stringify!(fCheckBounds)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_DESC>())).Version as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_DESC),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUB_DESC>())).pMallocFreeStruct as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_DESC),
            "::",
            stringify!(pMallocFreeStruct)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_DESC>())).MIDLVersion as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_DESC),
            "::",
            stringify!(MIDLVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUB_DESC>())).CommFaultOffsets as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_DESC),
            "::",
            stringify!(CommFaultOffsets)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUB_DESC>())).aUserMarshalQuadruple as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_DESC),
            "::",
            stringify!(aUserMarshalQuadruple)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUB_DESC>())).NotifyRoutineTable as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_DESC),
            "::",
            stringify!(NotifyRoutineTable)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_DESC>())).mFlags as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_DESC),
            "::",
            stringify!(mFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_DESC>())).CsRoutineTables as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_DESC),
            "::",
            stringify!(CsRoutineTables)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_DESC>())).ProxyServerInfo as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_DESC),
            "::",
            stringify!(ProxyServerInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_STUB_DESC>())).pExprInfo as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUB_DESC),
            "::",
            stringify!(pExprInfo)
        )
    );
}
pub type MIDL_STUB_DESC = _MIDL_STUB_DESC;
pub type PMIDL_STUB_DESC = *const MIDL_STUB_DESC;
pub type PMIDL_XMIT_TYPE = *mut ::std::os::raw::c_void;
#[repr(C)]
#[derive(Debug)]
pub struct _MIDL_FORMAT_STRING {
    pub Pad: ::std::os::raw::c_short,
    pub Format: __IncompleteArrayField<::std::os::raw::c_uchar>,
}
#[test]
fn bindgen_test_layout__MIDL_FORMAT_STRING() {
    assert_eq!(
        ::std::mem::size_of::<_MIDL_FORMAT_STRING>(),
        2usize,
        concat!("Size of: ", stringify!(_MIDL_FORMAT_STRING))
    );
    assert_eq!(
        ::std::mem::align_of::<_MIDL_FORMAT_STRING>(),
        2usize,
        concat!("Alignment of ", stringify!(_MIDL_FORMAT_STRING))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_FORMAT_STRING>())).Pad as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_FORMAT_STRING),
            "::",
            stringify!(Pad)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_FORMAT_STRING>())).Format as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_FORMAT_STRING),
            "::",
            stringify!(Format)
        )
    );
}
pub type MIDL_FORMAT_STRING = _MIDL_FORMAT_STRING;
pub type STUB_THUNK = ::std::option::Option<unsafe extern "C" fn(arg1: PMIDL_STUB_MESSAGE)>;
pub type SERVER_ROUTINE = ::std::option::Option<unsafe extern "C" fn() -> ::std::os::raw::c_long>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MIDL_METHOD_PROPERTY {
    pub Id: ::std::os::raw::c_ulong,
    pub Value: ULONG_PTR,
}
#[test]
fn bindgen_test_layout__MIDL_METHOD_PROPERTY() {
    assert_eq!(
        ::std::mem::size_of::<_MIDL_METHOD_PROPERTY>(),
        16usize,
        concat!("Size of: ", stringify!(_MIDL_METHOD_PROPERTY))
    );
    assert_eq!(
        ::std::mem::align_of::<_MIDL_METHOD_PROPERTY>(),
        8usize,
        concat!("Alignment of ", stringify!(_MIDL_METHOD_PROPERTY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_METHOD_PROPERTY>())).Id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_METHOD_PROPERTY),
            "::",
            stringify!(Id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_METHOD_PROPERTY>())).Value as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_METHOD_PROPERTY),
            "::",
            stringify!(Value)
        )
    );
}
pub type MIDL_METHOD_PROPERTY = _MIDL_METHOD_PROPERTY;
pub type PMIDL_METHOD_PROPERTY = *mut _MIDL_METHOD_PROPERTY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MIDL_METHOD_PROPERTY_MAP {
    pub Count: ::std::os::raw::c_ulong,
    pub Properties: *const MIDL_METHOD_PROPERTY,
}
#[test]
fn bindgen_test_layout__MIDL_METHOD_PROPERTY_MAP() {
    assert_eq!(
        ::std::mem::size_of::<_MIDL_METHOD_PROPERTY_MAP>(),
        16usize,
        concat!("Size of: ", stringify!(_MIDL_METHOD_PROPERTY_MAP))
    );
    assert_eq!(
        ::std::mem::align_of::<_MIDL_METHOD_PROPERTY_MAP>(),
        8usize,
        concat!("Alignment of ", stringify!(_MIDL_METHOD_PROPERTY_MAP))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_METHOD_PROPERTY_MAP>())).Count as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_METHOD_PROPERTY_MAP),
            "::",
            stringify!(Count)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_METHOD_PROPERTY_MAP>())).Properties as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_METHOD_PROPERTY_MAP),
            "::",
            stringify!(Properties)
        )
    );
}
pub type MIDL_METHOD_PROPERTY_MAP = _MIDL_METHOD_PROPERTY_MAP;
pub type PMIDL_METHOD_PROPERTY_MAP = *mut _MIDL_METHOD_PROPERTY_MAP;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MIDL_INTERFACE_METHOD_PROPERTIES {
    pub MethodCount: ::std::os::raw::c_ushort,
    pub MethodProperties: *const *const MIDL_METHOD_PROPERTY_MAP,
}
#[test]
fn bindgen_test_layout__MIDL_INTERFACE_METHOD_PROPERTIES() {
    assert_eq!(
        ::std::mem::size_of::<_MIDL_INTERFACE_METHOD_PROPERTIES>(),
        16usize,
        concat!("Size of: ", stringify!(_MIDL_INTERFACE_METHOD_PROPERTIES))
    );
    assert_eq!(
        ::std::mem::align_of::<_MIDL_INTERFACE_METHOD_PROPERTIES>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_MIDL_INTERFACE_METHOD_PROPERTIES)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_INTERFACE_METHOD_PROPERTIES>())).MethodCount as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_INTERFACE_METHOD_PROPERTIES),
            "::",
            stringify!(MethodCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_INTERFACE_METHOD_PROPERTIES>())).MethodProperties
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_INTERFACE_METHOD_PROPERTIES),
            "::",
            stringify!(MethodProperties)
        )
    );
}
pub type MIDL_INTERFACE_METHOD_PROPERTIES = _MIDL_INTERFACE_METHOD_PROPERTIES;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MIDL_SERVER_INFO_ {
    pub pStubDesc: PMIDL_STUB_DESC,
    pub DispatchTable: *const SERVER_ROUTINE,
    pub ProcString: PFORMAT_STRING,
    pub FmtStringOffset: *const ::std::os::raw::c_ushort,
    pub ThunkTable: *const STUB_THUNK,
    pub pTransferSyntax: PRPC_SYNTAX_IDENTIFIER,
    pub nCount: ULONG_PTR,
    pub pSyntaxInfo: PMIDL_SYNTAX_INFO,
}
#[test]
fn bindgen_test_layout__MIDL_SERVER_INFO_() {
    assert_eq!(
        ::std::mem::size_of::<_MIDL_SERVER_INFO_>(),
        64usize,
        concat!("Size of: ", stringify!(_MIDL_SERVER_INFO_))
    );
    assert_eq!(
        ::std::mem::align_of::<_MIDL_SERVER_INFO_>(),
        8usize,
        concat!("Alignment of ", stringify!(_MIDL_SERVER_INFO_))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_SERVER_INFO_>())).pStubDesc as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_SERVER_INFO_),
            "::",
            stringify!(pStubDesc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_SERVER_INFO_>())).DispatchTable as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_SERVER_INFO_),
            "::",
            stringify!(DispatchTable)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_SERVER_INFO_>())).ProcString as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_SERVER_INFO_),
            "::",
            stringify!(ProcString)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_SERVER_INFO_>())).FmtStringOffset as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_SERVER_INFO_),
            "::",
            stringify!(FmtStringOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_SERVER_INFO_>())).ThunkTable as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_SERVER_INFO_),
            "::",
            stringify!(ThunkTable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_SERVER_INFO_>())).pTransferSyntax as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_SERVER_INFO_),
            "::",
            stringify!(pTransferSyntax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_SERVER_INFO_>())).nCount as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_SERVER_INFO_),
            "::",
            stringify!(nCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_SERVER_INFO_>())).pSyntaxInfo as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_SERVER_INFO_),
            "::",
            stringify!(pSyntaxInfo)
        )
    );
}
pub type MIDL_SERVER_INFO = _MIDL_SERVER_INFO_;
pub type PMIDL_SERVER_INFO = *mut _MIDL_SERVER_INFO_;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MIDL_STUBLESS_PROXY_INFO {
    pub pStubDesc: PMIDL_STUB_DESC,
    pub ProcFormatString: PFORMAT_STRING,
    pub FormatStringOffset: *const ::std::os::raw::c_ushort,
    pub pTransferSyntax: PRPC_SYNTAX_IDENTIFIER,
    pub nCount: ULONG_PTR,
    pub pSyntaxInfo: PMIDL_SYNTAX_INFO,
}
#[test]
fn bindgen_test_layout__MIDL_STUBLESS_PROXY_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_MIDL_STUBLESS_PROXY_INFO>(),
        48usize,
        concat!("Size of: ", stringify!(_MIDL_STUBLESS_PROXY_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_MIDL_STUBLESS_PROXY_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_MIDL_STUBLESS_PROXY_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUBLESS_PROXY_INFO>())).pStubDesc as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUBLESS_PROXY_INFO),
            "::",
            stringify!(pStubDesc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUBLESS_PROXY_INFO>())).ProcFormatString as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUBLESS_PROXY_INFO),
            "::",
            stringify!(ProcFormatString)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUBLESS_PROXY_INFO>())).FormatStringOffset as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUBLESS_PROXY_INFO),
            "::",
            stringify!(FormatStringOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUBLESS_PROXY_INFO>())).pTransferSyntax as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUBLESS_PROXY_INFO),
            "::",
            stringify!(pTransferSyntax)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUBLESS_PROXY_INFO>())).nCount as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUBLESS_PROXY_INFO),
            "::",
            stringify!(nCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_STUBLESS_PROXY_INFO>())).pSyntaxInfo as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_STUBLESS_PROXY_INFO),
            "::",
            stringify!(pSyntaxInfo)
        )
    );
}
pub type MIDL_STUBLESS_PROXY_INFO = _MIDL_STUBLESS_PROXY_INFO;
pub type PMIDL_STUBLESS_PROXY_INFO = *mut MIDL_STUBLESS_PROXY_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MIDL_SYNTAX_INFO {
    pub TransferSyntax: RPC_SYNTAX_IDENTIFIER,
    pub DispatchTable: *mut RPC_DISPATCH_TABLE,
    pub ProcString: PFORMAT_STRING,
    pub FmtStringOffset: *const ::std::os::raw::c_ushort,
    pub TypeString: PFORMAT_STRING,
    pub aUserMarshalQuadruple: *const ::std::os::raw::c_void,
    pub pMethodProperties: *const MIDL_INTERFACE_METHOD_PROPERTIES,
    pub pReserved2: ULONG_PTR,
}
#[test]
fn bindgen_test_layout__MIDL_SYNTAX_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_MIDL_SYNTAX_INFO>(),
        80usize,
        concat!("Size of: ", stringify!(_MIDL_SYNTAX_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_MIDL_SYNTAX_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_MIDL_SYNTAX_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_SYNTAX_INFO>())).TransferSyntax as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_SYNTAX_INFO),
            "::",
            stringify!(TransferSyntax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_SYNTAX_INFO>())).DispatchTable as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_SYNTAX_INFO),
            "::",
            stringify!(DispatchTable)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_SYNTAX_INFO>())).ProcString as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_SYNTAX_INFO),
            "::",
            stringify!(ProcString)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_SYNTAX_INFO>())).FmtStringOffset as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_SYNTAX_INFO),
            "::",
            stringify!(FmtStringOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_SYNTAX_INFO>())).TypeString as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_SYNTAX_INFO),
            "::",
            stringify!(TypeString)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_SYNTAX_INFO>())).aUserMarshalQuadruple as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_SYNTAX_INFO),
            "::",
            stringify!(aUserMarshalQuadruple)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_SYNTAX_INFO>())).pMethodProperties as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_SYNTAX_INFO),
            "::",
            stringify!(pMethodProperties)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_SYNTAX_INFO>())).pReserved2 as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_SYNTAX_INFO),
            "::",
            stringify!(pReserved2)
        )
    );
}
pub type PARAM_OFFSETTABLE = *mut ::std::os::raw::c_ushort;
pub type PPARAM_OFFSETTABLE = *mut ::std::os::raw::c_ushort;
#[repr(C)]
#[derive(Copy, Clone)]
pub union _CLIENT_CALL_RETURN {
    pub Pointer: *mut ::std::os::raw::c_void,
    pub Simple: LONG_PTR,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__CLIENT_CALL_RETURN() {
    assert_eq!(
        ::std::mem::size_of::<_CLIENT_CALL_RETURN>(),
        8usize,
        concat!("Size of: ", stringify!(_CLIENT_CALL_RETURN))
    );
    assert_eq!(
        ::std::mem::align_of::<_CLIENT_CALL_RETURN>(),
        8usize,
        concat!("Alignment of ", stringify!(_CLIENT_CALL_RETURN))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CLIENT_CALL_RETURN>())).Pointer as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLIENT_CALL_RETURN),
            "::",
            stringify!(Pointer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CLIENT_CALL_RETURN>())).Simple as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLIENT_CALL_RETURN),
            "::",
            stringify!(Simple)
        )
    );
}
pub type CLIENT_CALL_RETURN = _CLIENT_CALL_RETURN;
pub const XLAT_SIDE_XLAT_SERVER: XLAT_SIDE = 1;
pub const XLAT_SIDE_XLAT_CLIENT: XLAT_SIDE = 2;
pub type XLAT_SIDE = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FULL_PTR_XLAT_TABLES {
    pub RefIdToPointer: *mut ::std::os::raw::c_void,
    pub PointerToRefId: *mut ::std::os::raw::c_void,
    pub NextRefId: ::std::os::raw::c_ulong,
    pub XlatSide: XLAT_SIDE,
}
#[test]
fn bindgen_test_layout__FULL_PTR_XLAT_TABLES() {
    assert_eq!(
        ::std::mem::size_of::<_FULL_PTR_XLAT_TABLES>(),
        24usize,
        concat!("Size of: ", stringify!(_FULL_PTR_XLAT_TABLES))
    );
    assert_eq!(
        ::std::mem::align_of::<_FULL_PTR_XLAT_TABLES>(),
        8usize,
        concat!("Alignment of ", stringify!(_FULL_PTR_XLAT_TABLES))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FULL_PTR_XLAT_TABLES>())).RefIdToPointer as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FULL_PTR_XLAT_TABLES),
            "::",
            stringify!(RefIdToPointer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FULL_PTR_XLAT_TABLES>())).PointerToRefId as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FULL_PTR_XLAT_TABLES),
            "::",
            stringify!(PointerToRefId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FULL_PTR_XLAT_TABLES>())).NextRefId as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FULL_PTR_XLAT_TABLES),
            "::",
            stringify!(NextRefId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FULL_PTR_XLAT_TABLES>())).XlatSide as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_FULL_PTR_XLAT_TABLES),
            "::",
            stringify!(XlatSide)
        )
    );
}
pub type FULL_PTR_XLAT_TABLES = _FULL_PTR_XLAT_TABLES;
pub type PFULL_PTR_XLAT_TABLES = *mut _FULL_PTR_XLAT_TABLES;
pub const _system_handle_t_SYSTEM_HANDLE_FILE: _system_handle_t = 0;
pub const _system_handle_t_SYSTEM_HANDLE_SEMAPHORE: _system_handle_t = 1;
pub const _system_handle_t_SYSTEM_HANDLE_EVENT: _system_handle_t = 2;
pub const _system_handle_t_SYSTEM_HANDLE_MUTEX: _system_handle_t = 3;
pub const _system_handle_t_SYSTEM_HANDLE_PROCESS: _system_handle_t = 4;
pub const _system_handle_t_SYSTEM_HANDLE_TOKEN: _system_handle_t = 5;
pub const _system_handle_t_SYSTEM_HANDLE_SECTION: _system_handle_t = 6;
pub const _system_handle_t_SYSTEM_HANDLE_REG_KEY: _system_handle_t = 7;
pub const _system_handle_t_SYSTEM_HANDLE_THREAD: _system_handle_t = 8;
pub const _system_handle_t_SYSTEM_HANDLE_COMPOSITION_OBJECT: _system_handle_t = 9;
pub const _system_handle_t_SYSTEM_HANDLE_SOCKET: _system_handle_t = 10;
pub const _system_handle_t_SYSTEM_HANDLE_JOB: _system_handle_t = 11;
pub const _system_handle_t_SYSTEM_HANDLE_PIPE: _system_handle_t = 12;
pub const _system_handle_t_SYSTEM_HANDLE_MAX: _system_handle_t = 12;
pub const _system_handle_t_SYSTEM_HANDLE_INVALID: _system_handle_t = 255;
pub type _system_handle_t = ::std::os::raw::c_int;
pub use self::_system_handle_t as system_handle_t;
pub const MidlInterceptionInfoVersionOne: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_3 = ::std::os::raw::c_int;
pub const MidlWinrtTypeSerializationInfoVersionOne: ::std::os::raw::c_int = 1;
pub type _bindgen_ty_4 = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MIDL_INTERCEPTION_INFO {
    pub Version: ::std::os::raw::c_ulong,
    pub ProcString: PFORMAT_STRING,
    pub ProcFormatOffsetTable: *const ::std::os::raw::c_ushort,
    pub ProcCount: ::std::os::raw::c_ulong,
    pub TypeString: PFORMAT_STRING,
}
#[test]
fn bindgen_test_layout__MIDL_INTERCEPTION_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_MIDL_INTERCEPTION_INFO>(),
        40usize,
        concat!("Size of: ", stringify!(_MIDL_INTERCEPTION_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_MIDL_INTERCEPTION_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_MIDL_INTERCEPTION_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MIDL_INTERCEPTION_INFO>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_INTERCEPTION_INFO),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_INTERCEPTION_INFO>())).ProcString as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_INTERCEPTION_INFO),
            "::",
            stringify!(ProcString)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_INTERCEPTION_INFO>())).ProcFormatOffsetTable as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_INTERCEPTION_INFO),
            "::",
            stringify!(ProcFormatOffsetTable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_INTERCEPTION_INFO>())).ProcCount as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_INTERCEPTION_INFO),
            "::",
            stringify!(ProcCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_INTERCEPTION_INFO>())).TypeString as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_INTERCEPTION_INFO),
            "::",
            stringify!(TypeString)
        )
    );
}
pub type MIDL_INTERCEPTION_INFO = _MIDL_INTERCEPTION_INFO;
pub type PMIDL_INTERCEPTION_INFO = *mut _MIDL_INTERCEPTION_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MIDL_WINRT_TYPE_SERIALIZATION_INFO {
    pub Version: ::std::os::raw::c_ulong,
    pub TypeFormatString: PFORMAT_STRING,
    pub FormatStringSize: ::std::os::raw::c_ushort,
    pub TypeOffset: ::std::os::raw::c_ushort,
    pub StubDesc: PMIDL_STUB_DESC,
}
#[test]
fn bindgen_test_layout__MIDL_WINRT_TYPE_SERIALIZATION_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_MIDL_WINRT_TYPE_SERIALIZATION_INFO>(),
        32usize,
        concat!("Size of: ", stringify!(_MIDL_WINRT_TYPE_SERIALIZATION_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_MIDL_WINRT_TYPE_SERIALIZATION_INFO>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_MIDL_WINRT_TYPE_SERIALIZATION_INFO)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_WINRT_TYPE_SERIALIZATION_INFO>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_WINRT_TYPE_SERIALIZATION_INFO),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_WINRT_TYPE_SERIALIZATION_INFO>())).TypeFormatString
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_WINRT_TYPE_SERIALIZATION_INFO),
            "::",
            stringify!(TypeFormatString)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_WINRT_TYPE_SERIALIZATION_INFO>())).FormatStringSize
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_WINRT_TYPE_SERIALIZATION_INFO),
            "::",
            stringify!(FormatStringSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_WINRT_TYPE_SERIALIZATION_INFO>())).TypeOffset as *const _
                as usize
        },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_WINRT_TYPE_SERIALIZATION_INFO),
            "::",
            stringify!(TypeOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MIDL_WINRT_TYPE_SERIALIZATION_INFO>())).StubDesc as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_MIDL_WINRT_TYPE_SERIALIZATION_INFO),
            "::",
            stringify!(StubDesc)
        )
    );
}
pub type MIDL_WINRT_TYPE_SERIALIZATION_INFO = _MIDL_WINRT_TYPE_SERIALIZATION_INFO;
pub type PMIDL_WINRT_TYPE_SERIALIZATION_INFO = *mut _MIDL_WINRT_TYPE_SERIALIZATION_INFO;
extern "C" {
    pub fn NdrClientGetSupportedSyntaxes(
        pInf: *mut RPC_CLIENT_INTERFACE,
        pCount: *mut ::std::os::raw::c_ulong,
        pArr: *mut *mut MIDL_SYNTAX_INFO,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn NdrServerGetSupportedSyntaxes(
        pInf: *mut RPC_SERVER_INTERFACE,
        pCount: *mut ::std::os::raw::c_ulong,
        pArr: *mut *mut MIDL_SYNTAX_INFO,
        pPreferSyntaxIndex: *mut ::std::os::raw::c_ulong,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn NdrSimpleTypeMarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        FormatChar: ::std::os::raw::c_uchar,
    );
}
extern "C" {
    pub fn NdrPointerMarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrCsArrayMarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrCsTagMarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrSimpleStructMarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrConformantStructMarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrConformantVaryingStructMarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrComplexStructMarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrFixedArrayMarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrConformantArrayMarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrConformantVaryingArrayMarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrVaryingArrayMarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrComplexArrayMarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrNonConformantStringMarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrConformantStringMarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrEncapsulatedUnionMarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrNonEncapsulatedUnionMarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrByteCountPointerMarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrXmitOrRepAsMarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrUserMarshalMarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrInterfacePointerMarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrClientContextMarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        ContextHandle: NDR_CCONTEXT,
        fCheck: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn NdrServerContextMarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        ContextHandle: NDR_SCONTEXT,
        RundownRoutine: NDR_RUNDOWN,
    );
}
extern "C" {
    pub fn NdrServerContextNewMarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        ContextHandle: NDR_SCONTEXT,
        RundownRoutine: NDR_RUNDOWN,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrSimpleTypeUnmarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        FormatChar: ::std::os::raw::c_uchar,
    );
}
extern "C" {
    pub fn NdrCsArrayUnmarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        ppMemory: *mut *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
        fMustAlloc: ::std::os::raw::c_uchar,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrCsTagUnmarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        ppMemory: *mut *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
        fMustAlloc: ::std::os::raw::c_uchar,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrRangeUnmarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        ppMemory: *mut *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
        fMustAlloc: ::std::os::raw::c_uchar,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrCorrelationInitialize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_void,
        CacheSize: ::std::os::raw::c_ulong,
        flags: ::std::os::raw::c_ulong,
    );
}
extern "C" {
    pub fn NdrCorrelationPass(pStubMsg: PMIDL_STUB_MESSAGE);
}
extern "C" {
    pub fn NdrCorrelationFree(pStubMsg: PMIDL_STUB_MESSAGE);
}
extern "C" {
    pub fn NdrPointerUnmarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        ppMemory: *mut *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
        fMustAlloc: ::std::os::raw::c_uchar,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrSimpleStructUnmarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        ppMemory: *mut *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
        fMustAlloc: ::std::os::raw::c_uchar,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrConformantStructUnmarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        ppMemory: *mut *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
        fMustAlloc: ::std::os::raw::c_uchar,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrConformantVaryingStructUnmarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        ppMemory: *mut *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
        fMustAlloc: ::std::os::raw::c_uchar,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrComplexStructUnmarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        ppMemory: *mut *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
        fMustAlloc: ::std::os::raw::c_uchar,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrFixedArrayUnmarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        ppMemory: *mut *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
        fMustAlloc: ::std::os::raw::c_uchar,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrConformantArrayUnmarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        ppMemory: *mut *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
        fMustAlloc: ::std::os::raw::c_uchar,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrConformantVaryingArrayUnmarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        ppMemory: *mut *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
        fMustAlloc: ::std::os::raw::c_uchar,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrVaryingArrayUnmarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        ppMemory: *mut *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
        fMustAlloc: ::std::os::raw::c_uchar,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrComplexArrayUnmarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        ppMemory: *mut *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
        fMustAlloc: ::std::os::raw::c_uchar,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrNonConformantStringUnmarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        ppMemory: *mut *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
        fMustAlloc: ::std::os::raw::c_uchar,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrConformantStringUnmarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        ppMemory: *mut *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
        fMustAlloc: ::std::os::raw::c_uchar,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrEncapsulatedUnionUnmarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        ppMemory: *mut *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
        fMustAlloc: ::std::os::raw::c_uchar,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrNonEncapsulatedUnionUnmarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        ppMemory: *mut *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
        fMustAlloc: ::std::os::raw::c_uchar,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrByteCountPointerUnmarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        ppMemory: *mut *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
        fMustAlloc: ::std::os::raw::c_uchar,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrXmitOrRepAsUnmarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        ppMemory: *mut *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
        fMustAlloc: ::std::os::raw::c_uchar,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrUserMarshalUnmarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        ppMemory: *mut *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
        fMustAlloc: ::std::os::raw::c_uchar,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrInterfacePointerUnmarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        ppMemory: *mut *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
        fMustAlloc: ::std::os::raw::c_uchar,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrClientContextUnmarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pContextHandle: *mut NDR_CCONTEXT,
        BindHandle: RPC_BINDING_HANDLE,
    );
}
extern "C" {
    pub fn NdrServerContextUnmarshall(pStubMsg: PMIDL_STUB_MESSAGE) -> NDR_SCONTEXT;
}
extern "C" {
    pub fn NdrContextHandleInitialize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pFormat: PFORMAT_STRING,
    ) -> NDR_SCONTEXT;
}
extern "C" {
    pub fn NdrServerContextNewUnmarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pFormat: PFORMAT_STRING,
    ) -> NDR_SCONTEXT;
}
extern "C" {
    pub fn NdrPointerBufferSize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrCsArrayBufferSize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrCsTagBufferSize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrSimpleStructBufferSize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrConformantStructBufferSize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrConformantVaryingStructBufferSize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrComplexStructBufferSize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrFixedArrayBufferSize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrConformantArrayBufferSize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrConformantVaryingArrayBufferSize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrVaryingArrayBufferSize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrComplexArrayBufferSize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrConformantStringBufferSize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrNonConformantStringBufferSize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrEncapsulatedUnionBufferSize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrNonEncapsulatedUnionBufferSize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrByteCountPointerBufferSize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrXmitOrRepAsBufferSize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrUserMarshalBufferSize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrInterfacePointerBufferSize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrContextHandleSize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrPointerMemorySize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pFormat: PFORMAT_STRING,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn NdrContextHandleMemorySize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pFormat: PFORMAT_STRING,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn NdrCsArrayMemorySize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pFormat: PFORMAT_STRING,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn NdrCsTagMemorySize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pFormat: PFORMAT_STRING,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn NdrSimpleStructMemorySize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pFormat: PFORMAT_STRING,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn NdrConformantStructMemorySize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pFormat: PFORMAT_STRING,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn NdrConformantVaryingStructMemorySize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pFormat: PFORMAT_STRING,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn NdrComplexStructMemorySize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pFormat: PFORMAT_STRING,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn NdrFixedArrayMemorySize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pFormat: PFORMAT_STRING,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn NdrConformantArrayMemorySize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pFormat: PFORMAT_STRING,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn NdrConformantVaryingArrayMemorySize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pFormat: PFORMAT_STRING,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn NdrVaryingArrayMemorySize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pFormat: PFORMAT_STRING,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn NdrComplexArrayMemorySize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pFormat: PFORMAT_STRING,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn NdrConformantStringMemorySize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pFormat: PFORMAT_STRING,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn NdrNonConformantStringMemorySize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pFormat: PFORMAT_STRING,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn NdrEncapsulatedUnionMemorySize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pFormat: PFORMAT_STRING,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn NdrNonEncapsulatedUnionMemorySize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pFormat: PFORMAT_STRING,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn NdrXmitOrRepAsMemorySize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pFormat: PFORMAT_STRING,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn NdrUserMarshalMemorySize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pFormat: PFORMAT_STRING,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn NdrInterfacePointerMemorySize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pFormat: PFORMAT_STRING,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn NdrPointerFree(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrCsArrayFree(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrSimpleStructFree(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrConformantStructFree(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrConformantVaryingStructFree(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrComplexStructFree(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrFixedArrayFree(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrConformantArrayFree(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrConformantVaryingArrayFree(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrVaryingArrayFree(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrComplexArrayFree(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrEncapsulatedUnionFree(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrNonEncapsulatedUnionFree(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrByteCountPointerFree(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrXmitOrRepAsFree(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrUserMarshalFree(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrInterfacePointerFree(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_uchar,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrConvert2(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pFormat: PFORMAT_STRING,
        NumberParams: ::std::os::raw::c_long,
    );
}
extern "C" {
    pub fn NdrConvert(pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING);
}
extern "C" {
    pub fn NdrUserMarshalSimpleTypeConvert(
        pFlags: *mut ::std::os::raw::c_ulong,
        pBuffer: *mut ::std::os::raw::c_uchar,
        FormatChar: ::std::os::raw::c_uchar,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrClientInitializeNew(
        pRpcMsg: PRPC_MESSAGE,
        pStubMsg: PMIDL_STUB_MESSAGE,
        pStubDescriptor: PMIDL_STUB_DESC,
        ProcNum: ::std::os::raw::c_uint,
    );
}
extern "C" {
    pub fn NdrServerInitializeNew(
        pRpcMsg: PRPC_MESSAGE,
        pStubMsg: PMIDL_STUB_MESSAGE,
        pStubDescriptor: PMIDL_STUB_DESC,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrServerInitializePartial(
        pRpcMsg: PRPC_MESSAGE,
        pStubMsg: PMIDL_STUB_MESSAGE,
        pStubDescriptor: PMIDL_STUB_DESC,
        RequestedBufferSize: ::std::os::raw::c_ulong,
    );
}
extern "C" {
    pub fn NdrClientInitialize(
        pRpcMsg: PRPC_MESSAGE,
        pStubMsg: PMIDL_STUB_MESSAGE,
        pStubDescriptor: PMIDL_STUB_DESC,
        ProcNum: ::std::os::raw::c_uint,
    );
}
extern "C" {
    pub fn NdrServerInitialize(
        pRpcMsg: PRPC_MESSAGE,
        pStubMsg: PMIDL_STUB_MESSAGE,
        pStubDescriptor: PMIDL_STUB_DESC,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrServerInitializeUnmarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pStubDescriptor: PMIDL_STUB_DESC,
        pRpcMsg: PRPC_MESSAGE,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrServerInitializeMarshall(pRpcMsg: PRPC_MESSAGE, pStubMsg: PMIDL_STUB_MESSAGE);
}
extern "C" {
    pub fn NdrGetBuffer(
        pStubMsg: PMIDL_STUB_MESSAGE,
        BufferLength: ::std::os::raw::c_ulong,
        Handle: RPC_BINDING_HANDLE,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrNsGetBuffer(
        pStubMsg: PMIDL_STUB_MESSAGE,
        BufferLength: ::std::os::raw::c_ulong,
        Handle: RPC_BINDING_HANDLE,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrSendReceive(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pBufferEnd: *mut ::std::os::raw::c_uchar,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrNsSendReceive(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pBufferEnd: *mut ::std::os::raw::c_uchar,
        pAutoHandle: *mut RPC_BINDING_HANDLE,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn NdrFreeBuffer(pStubMsg: PMIDL_STUB_MESSAGE);
}
extern "C" {
    pub fn NdrGetDcomProtocolVersion(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pVersion: *mut RPC_VERSION,
    ) -> HRESULT;
}
extern "C" {
    pub fn NdrClientCall2(
        pStubDescriptor: PMIDL_STUB_DESC,
        pFormat: PFORMAT_STRING,
        ...
    ) -> CLIENT_CALL_RETURN;
}
extern "C" {
    pub fn NdrClientCall(
        pStubDescriptor: PMIDL_STUB_DESC,
        pFormat: PFORMAT_STRING,
        ...
    ) -> CLIENT_CALL_RETURN;
}
extern "C" {
    pub fn NdrAsyncClientCall(
        pStubDescriptor: PMIDL_STUB_DESC,
        pFormat: PFORMAT_STRING,
        ...
    ) -> CLIENT_CALL_RETURN;
}
extern "C" {
    pub fn NdrDcomAsyncClientCall(
        pStubDescriptor: PMIDL_STUB_DESC,
        pFormat: PFORMAT_STRING,
        ...
    ) -> CLIENT_CALL_RETURN;
}
pub const STUB_PHASE_STUB_UNMARSHAL: STUB_PHASE = 0;
pub const STUB_PHASE_STUB_CALL_SERVER: STUB_PHASE = 1;
pub const STUB_PHASE_STUB_MARSHAL: STUB_PHASE = 2;
pub const STUB_PHASE_STUB_CALL_SERVER_NO_HRESULT: STUB_PHASE = 3;
pub type STUB_PHASE = ::std::os::raw::c_int;
pub const PROXY_PHASE_PROXY_CALCSIZE: PROXY_PHASE = 0;
pub const PROXY_PHASE_PROXY_GETBUFFER: PROXY_PHASE = 1;
pub const PROXY_PHASE_PROXY_MARSHAL: PROXY_PHASE = 2;
pub const PROXY_PHASE_PROXY_SENDRECEIVE: PROXY_PHASE = 3;
pub const PROXY_PHASE_PROXY_UNMARSHAL: PROXY_PHASE = 4;
pub type PROXY_PHASE = ::std::os::raw::c_int;
extern "C" {
    pub fn NdrAsyncServerCall(pRpcMsg: PRPC_MESSAGE);
}
extern "C" {
    pub fn NdrAsyncStubCall(
        pThis: *mut IRpcStubBuffer,
        pChannel: *mut IRpcChannelBuffer,
        pRpcMsg: PRPC_MESSAGE,
        pdwStubPhase: *mut ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn NdrDcomAsyncStubCall(
        pThis: *mut IRpcStubBuffer,
        pChannel: *mut IRpcChannelBuffer,
        pRpcMsg: PRPC_MESSAGE,
        pdwStubPhase: *mut ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn NdrStubCall2(
        pThis: *mut ::std::os::raw::c_void,
        pChannel: *mut ::std::os::raw::c_void,
        pRpcMsg: PRPC_MESSAGE,
        pdwStubPhase: *mut ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn NdrServerCall2(pRpcMsg: PRPC_MESSAGE);
}
extern "C" {
    pub fn NdrStubCall(
        pThis: *mut ::std::os::raw::c_void,
        pChannel: *mut ::std::os::raw::c_void,
        pRpcMsg: PRPC_MESSAGE,
        pdwStubPhase: *mut ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn NdrServerCall(pRpcMsg: PRPC_MESSAGE);
}
extern "C" {
    pub fn NdrServerUnmarshall(
        pChannel: *mut ::std::os::raw::c_void,
        pRpcMsg: PRPC_MESSAGE,
        pStubMsg: PMIDL_STUB_MESSAGE,
        pStubDescriptor: PMIDL_STUB_DESC,
        pFormat: PFORMAT_STRING,
        pParamList: *mut ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn NdrServerMarshall(
        pThis: *mut ::std::os::raw::c_void,
        pChannel: *mut ::std::os::raw::c_void,
        pStubMsg: PMIDL_STUB_MESSAGE,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn NdrMapCommAndFaultStatus(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pCommStatus: *mut ::std::os::raw::c_ulong,
        pFaultStatus: *mut ::std::os::raw::c_ulong,
        Status: RPC_STATUS,
    ) -> RPC_STATUS;
}
pub type RPC_SS_THREAD_HANDLE = *mut ::std::os::raw::c_void;
extern "C" {
    pub fn RpcSsAllocate(Size: size_t) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn RpcSsDisableAllocate();
}
extern "C" {
    pub fn RpcSsEnableAllocate();
}
extern "C" {
    pub fn RpcSsFree(NodeToFree: *mut ::std::os::raw::c_void);
}
extern "C" {
    pub fn RpcSsGetThreadHandle() -> RPC_SS_THREAD_HANDLE;
}
extern "C" {
    pub fn RpcSsSetClientAllocFree(
        ClientAlloc: ::std::option::Option<
            unsafe extern "C" fn(arg1: size_t) -> *mut ::std::os::raw::c_void,
        >,
        ClientFree: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    );
}
extern "C" {
    pub fn RpcSsSetThreadHandle(Id: RPC_SS_THREAD_HANDLE);
}
extern "C" {
    pub fn RpcSsSwapClientAllocFree(
        ClientAlloc: ::std::option::Option<
            unsafe extern "C" fn(arg1: size_t) -> *mut ::std::os::raw::c_void,
        >,
        ClientFree: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
        OldClientAlloc: *mut ::std::option::Option<
            unsafe extern "C" fn(arg1: size_t) -> *mut ::std::os::raw::c_void,
        >,
        OldClientFree: *mut ::std::option::Option<
            unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void),
        >,
    );
}
extern "C" {
    pub fn RpcSmAllocate(Size: size_t, pStatus: *mut RPC_STATUS) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn RpcSmClientFree(pNodeToFree: *mut ::std::os::raw::c_void) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcSmDestroyClientContext(ContextHandle: *mut *mut ::std::os::raw::c_void)
        -> RPC_STATUS;
}
extern "C" {
    pub fn RpcSmDisableAllocate() -> RPC_STATUS;
}
extern "C" {
    pub fn RpcSmEnableAllocate() -> RPC_STATUS;
}
extern "C" {
    pub fn RpcSmFree(NodeToFree: *mut ::std::os::raw::c_void) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcSmGetThreadHandle(pStatus: *mut RPC_STATUS) -> RPC_SS_THREAD_HANDLE;
}
extern "C" {
    pub fn RpcSmSetClientAllocFree(
        ClientAlloc: ::std::option::Option<
            unsafe extern "C" fn(arg1: size_t) -> *mut ::std::os::raw::c_void,
        >,
        ClientFree: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcSmSetThreadHandle(Id: RPC_SS_THREAD_HANDLE) -> RPC_STATUS;
}
extern "C" {
    pub fn RpcSmSwapClientAllocFree(
        ClientAlloc: ::std::option::Option<
            unsafe extern "C" fn(arg1: size_t) -> *mut ::std::os::raw::c_void,
        >,
        ClientFree: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
        OldClientAlloc: *mut ::std::option::Option<
            unsafe extern "C" fn(arg1: size_t) -> *mut ::std::os::raw::c_void,
        >,
        OldClientFree: *mut ::std::option::Option<
            unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void),
        >,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn NdrRpcSsEnableAllocate(pMessage: PMIDL_STUB_MESSAGE);
}
extern "C" {
    pub fn NdrRpcSsDisableAllocate(pMessage: PMIDL_STUB_MESSAGE);
}
extern "C" {
    pub fn NdrRpcSmSetClientToOsf(pMessage: PMIDL_STUB_MESSAGE);
}
extern "C" {
    pub fn NdrRpcSmClientAllocate(Size: size_t) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn NdrRpcSmClientFree(NodeToFree: *mut ::std::os::raw::c_void);
}
extern "C" {
    pub fn NdrRpcSsDefaultAllocate(Size: size_t) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn NdrRpcSsDefaultFree(NodeToFree: *mut ::std::os::raw::c_void);
}
extern "C" {
    pub fn NdrFullPointerXlatInit(
        NumberOfPointers: ::std::os::raw::c_ulong,
        XlatSide: XLAT_SIDE,
    ) -> PFULL_PTR_XLAT_TABLES;
}
extern "C" {
    pub fn NdrFullPointerXlatFree(pXlatTables: PFULL_PTR_XLAT_TABLES);
}
extern "C" {
    pub fn NdrAllocate(pStubMsg: PMIDL_STUB_MESSAGE, Len: size_t) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn NdrClearOutParameters(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pFormat: PFORMAT_STRING,
        ArgAddr: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn NdrOleAllocate(Size: size_t) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn NdrOleFree(NodeToFree: *mut ::std::os::raw::c_void);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NDR_USER_MARSHAL_INFO_LEVEL1 {
    pub Buffer: *mut ::std::os::raw::c_void,
    pub BufferSize: ::std::os::raw::c_ulong,
    pub pfnAllocate:
        ::std::option::Option<unsafe extern "C" fn(arg1: size_t) -> *mut ::std::os::raw::c_void>,
    pub pfnFree: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
    pub pRpcChannelBuffer: *mut IRpcChannelBuffer,
    pub Reserved: [ULONG_PTR; 5usize],
}
#[test]
fn bindgen_test_layout__NDR_USER_MARSHAL_INFO_LEVEL1() {
    assert_eq!(
        ::std::mem::size_of::<_NDR_USER_MARSHAL_INFO_LEVEL1>(),
        80usize,
        concat!("Size of: ", stringify!(_NDR_USER_MARSHAL_INFO_LEVEL1))
    );
    assert_eq!(
        ::std::mem::align_of::<_NDR_USER_MARSHAL_INFO_LEVEL1>(),
        8usize,
        concat!("Alignment of ", stringify!(_NDR_USER_MARSHAL_INFO_LEVEL1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NDR_USER_MARSHAL_INFO_LEVEL1>())).Buffer as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NDR_USER_MARSHAL_INFO_LEVEL1),
            "::",
            stringify!(Buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NDR_USER_MARSHAL_INFO_LEVEL1>())).BufferSize as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NDR_USER_MARSHAL_INFO_LEVEL1),
            "::",
            stringify!(BufferSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NDR_USER_MARSHAL_INFO_LEVEL1>())).pfnAllocate as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_NDR_USER_MARSHAL_INFO_LEVEL1),
            "::",
            stringify!(pfnAllocate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NDR_USER_MARSHAL_INFO_LEVEL1>())).pfnFree as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_NDR_USER_MARSHAL_INFO_LEVEL1),
            "::",
            stringify!(pfnFree)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NDR_USER_MARSHAL_INFO_LEVEL1>())).pRpcChannelBuffer as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_NDR_USER_MARSHAL_INFO_LEVEL1),
            "::",
            stringify!(pRpcChannelBuffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NDR_USER_MARSHAL_INFO_LEVEL1>())).Reserved as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_NDR_USER_MARSHAL_INFO_LEVEL1),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type NDR_USER_MARSHAL_INFO_LEVEL1 = _NDR_USER_MARSHAL_INFO_LEVEL1;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _NDR_USER_MARSHAL_INFO {
    pub InformationLevel: ::std::os::raw::c_ulong,
    pub __bindgen_anon_1: _NDR_USER_MARSHAL_INFO__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _NDR_USER_MARSHAL_INFO__bindgen_ty_1 {
    pub Level1: NDR_USER_MARSHAL_INFO_LEVEL1,
    _bindgen_union_align: [u64; 10usize],
}
#[test]
fn bindgen_test_layout__NDR_USER_MARSHAL_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_NDR_USER_MARSHAL_INFO__bindgen_ty_1>(),
        80usize,
        concat!(
            "Size of: ",
            stringify!(_NDR_USER_MARSHAL_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_NDR_USER_MARSHAL_INFO__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_NDR_USER_MARSHAL_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NDR_USER_MARSHAL_INFO__bindgen_ty_1>())).Level1 as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NDR_USER_MARSHAL_INFO__bindgen_ty_1),
            "::",
            stringify!(Level1)
        )
    );
}
#[test]
fn bindgen_test_layout__NDR_USER_MARSHAL_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_NDR_USER_MARSHAL_INFO>(),
        88usize,
        concat!("Size of: ", stringify!(_NDR_USER_MARSHAL_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_NDR_USER_MARSHAL_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_NDR_USER_MARSHAL_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NDR_USER_MARSHAL_INFO>())).InformationLevel as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NDR_USER_MARSHAL_INFO),
            "::",
            stringify!(InformationLevel)
        )
    );
}
pub type NDR_USER_MARSHAL_INFO = _NDR_USER_MARSHAL_INFO;
extern "C" {
    pub fn NdrGetUserMarshalInfo(
        pFlags: *mut ::std::os::raw::c_ulong,
        InformationLevel: ::std::os::raw::c_ulong,
        pMarshalInfo: *mut NDR_USER_MARSHAL_INFO,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn NdrCreateServerInterfaceFromStub(
        pStub: *mut IRpcStubBuffer,
        pServerIf: *mut RPC_SERVER_INTERFACE,
    ) -> RPC_STATUS;
}
extern "C" {
    pub fn NdrClientCall3(
        pProxyInfo: *mut MIDL_STUBLESS_PROXY_INFO,
        nProcNum: ::std::os::raw::c_ulong,
        pReturnValue: *mut ::std::os::raw::c_void,
        ...
    ) -> CLIENT_CALL_RETURN;
}
extern "C" {
    pub fn Ndr64AsyncClientCall(
        pProxyInfo: *mut MIDL_STUBLESS_PROXY_INFO,
        nProcNum: ::std::os::raw::c_ulong,
        pReturnValue: *mut ::std::os::raw::c_void,
        ...
    ) -> CLIENT_CALL_RETURN;
}
extern "C" {
    pub fn Ndr64DcomAsyncClientCall(
        pProxyInfo: *mut MIDL_STUBLESS_PROXY_INFO,
        nProcNum: ::std::os::raw::c_ulong,
        pReturnValue: *mut ::std::os::raw::c_void,
        ...
    ) -> CLIENT_CALL_RETURN;
}
extern "C" {
    pub fn Ndr64AsyncServerCall(pRpcMsg: PRPC_MESSAGE);
}
extern "C" {
    pub fn Ndr64AsyncServerCall64(pRpcMsg: PRPC_MESSAGE);
}
extern "C" {
    pub fn Ndr64AsyncServerCallAll(pRpcMsg: PRPC_MESSAGE);
}
extern "C" {
    pub fn Ndr64AsyncStubCall(
        pThis: *mut IRpcStubBuffer,
        pChannel: *mut IRpcChannelBuffer,
        pRpcMsg: PRPC_MESSAGE,
        pdwStubPhase: *mut ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn Ndr64DcomAsyncStubCall(
        pThis: *mut IRpcStubBuffer,
        pChannel: *mut IRpcChannelBuffer,
        pRpcMsg: PRPC_MESSAGE,
        pdwStubPhase: *mut ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn NdrStubCall3(
        pThis: *mut ::std::os::raw::c_void,
        pChannel: *mut ::std::os::raw::c_void,
        pRpcMsg: PRPC_MESSAGE,
        pdwStubPhase: *mut ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn NdrServerCallAll(pRpcMsg: PRPC_MESSAGE);
}
extern "C" {
    pub fn NdrServerCallNdr64(pRpcMsg: PRPC_MESSAGE);
}
extern "C" {
    pub fn NdrServerCall3(pRpcMsg: PRPC_MESSAGE);
}
extern "C" {
    pub fn NdrPartialIgnoreClientMarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn NdrPartialIgnoreServerUnmarshall(
        pStubMsg: PMIDL_STUB_MESSAGE,
        ppMemory: *mut *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn NdrPartialIgnoreClientBufferSize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        pMemory: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn NdrPartialIgnoreServerInitialize(
        pStubMsg: PMIDL_STUB_MESSAGE,
        ppMemory: *mut *mut ::std::os::raw::c_void,
        pFormat: PFORMAT_STRING,
    );
}
extern "C" {
    pub fn RpcUserFree(AsyncHandle: handle_t, pBuffer: *mut ::std::os::raw::c_void);
}
extern "C" {
    pub static mut __MIDL_itf_wtypesbase_0000_0000_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_wtypesbase_0000_0000_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type OLECHAR = WCHAR;
pub type LPOLESTR = *mut OLECHAR;
pub type LPCOLESTR = *const OLECHAR;
pub type DOUBLE = f64;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _COAUTHIDENTITY {
    pub User: *mut USHORT,
    pub UserLength: ULONG,
    pub Domain: *mut USHORT,
    pub DomainLength: ULONG,
    pub Password: *mut USHORT,
    pub PasswordLength: ULONG,
    pub Flags: ULONG,
}
#[test]
fn bindgen_test_layout__COAUTHIDENTITY() {
    assert_eq!(
        ::std::mem::size_of::<_COAUTHIDENTITY>(),
        48usize,
        concat!("Size of: ", stringify!(_COAUTHIDENTITY))
    );
    assert_eq!(
        ::std::mem::align_of::<_COAUTHIDENTITY>(),
        8usize,
        concat!("Alignment of ", stringify!(_COAUTHIDENTITY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COAUTHIDENTITY>())).User as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_COAUTHIDENTITY),
            "::",
            stringify!(User)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COAUTHIDENTITY>())).UserLength as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_COAUTHIDENTITY),
            "::",
            stringify!(UserLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COAUTHIDENTITY>())).Domain as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_COAUTHIDENTITY),
            "::",
            stringify!(Domain)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COAUTHIDENTITY>())).DomainLength as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_COAUTHIDENTITY),
            "::",
            stringify!(DomainLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COAUTHIDENTITY>())).Password as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_COAUTHIDENTITY),
            "::",
            stringify!(Password)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COAUTHIDENTITY>())).PasswordLength as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_COAUTHIDENTITY),
            "::",
            stringify!(PasswordLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COAUTHIDENTITY>())).Flags as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_COAUTHIDENTITY),
            "::",
            stringify!(Flags)
        )
    );
}
pub type COAUTHIDENTITY = _COAUTHIDENTITY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _COAUTHINFO {
    pub dwAuthnSvc: DWORD,
    pub dwAuthzSvc: DWORD,
    pub pwszServerPrincName: LPWSTR,
    pub dwAuthnLevel: DWORD,
    pub dwImpersonationLevel: DWORD,
    pub pAuthIdentityData: *mut COAUTHIDENTITY,
    pub dwCapabilities: DWORD,
}
#[test]
fn bindgen_test_layout__COAUTHINFO() {
    assert_eq!(
        ::std::mem::size_of::<_COAUTHINFO>(),
        40usize,
        concat!("Size of: ", stringify!(_COAUTHINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_COAUTHINFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_COAUTHINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COAUTHINFO>())).dwAuthnSvc as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_COAUTHINFO),
            "::",
            stringify!(dwAuthnSvc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COAUTHINFO>())).dwAuthzSvc as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_COAUTHINFO),
            "::",
            stringify!(dwAuthzSvc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COAUTHINFO>())).pwszServerPrincName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_COAUTHINFO),
            "::",
            stringify!(pwszServerPrincName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COAUTHINFO>())).dwAuthnLevel as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_COAUTHINFO),
            "::",
            stringify!(dwAuthnLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_COAUTHINFO>())).dwImpersonationLevel as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_COAUTHINFO),
            "::",
            stringify!(dwImpersonationLevel)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COAUTHINFO>())).pAuthIdentityData as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_COAUTHINFO),
            "::",
            stringify!(pAuthIdentityData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COAUTHINFO>())).dwCapabilities as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_COAUTHINFO),
            "::",
            stringify!(dwCapabilities)
        )
    );
}
pub type COAUTHINFO = _COAUTHINFO;
pub type SCODE = LONG;
pub type PSCODE = *mut SCODE;
pub const tagMEMCTX_MEMCTX_TASK: tagMEMCTX = 1;
pub const tagMEMCTX_MEMCTX_SHARED: tagMEMCTX = 2;
pub const tagMEMCTX_MEMCTX_MACSYSTEM: tagMEMCTX = 3;
pub const tagMEMCTX_MEMCTX_UNKNOWN: tagMEMCTX = -1;
pub const tagMEMCTX_MEMCTX_SAME: tagMEMCTX = -2;
pub type tagMEMCTX = ::std::os::raw::c_int;
pub use self::tagMEMCTX as MEMCTX;
pub const tagCLSCTX_CLSCTX_INPROC_SERVER: tagCLSCTX = 1;
pub const tagCLSCTX_CLSCTX_INPROC_HANDLER: tagCLSCTX = 2;
pub const tagCLSCTX_CLSCTX_LOCAL_SERVER: tagCLSCTX = 4;
pub const tagCLSCTX_CLSCTX_INPROC_SERVER16: tagCLSCTX = 8;
pub const tagCLSCTX_CLSCTX_REMOTE_SERVER: tagCLSCTX = 16;
pub const tagCLSCTX_CLSCTX_INPROC_HANDLER16: tagCLSCTX = 32;
pub const tagCLSCTX_CLSCTX_RESERVED1: tagCLSCTX = 64;
pub const tagCLSCTX_CLSCTX_RESERVED2: tagCLSCTX = 128;
pub const tagCLSCTX_CLSCTX_RESERVED3: tagCLSCTX = 256;
pub const tagCLSCTX_CLSCTX_RESERVED4: tagCLSCTX = 512;
pub const tagCLSCTX_CLSCTX_NO_CODE_DOWNLOAD: tagCLSCTX = 1024;
pub const tagCLSCTX_CLSCTX_RESERVED5: tagCLSCTX = 2048;
pub const tagCLSCTX_CLSCTX_NO_CUSTOM_MARSHAL: tagCLSCTX = 4096;
pub const tagCLSCTX_CLSCTX_ENABLE_CODE_DOWNLOAD: tagCLSCTX = 8192;
pub const tagCLSCTX_CLSCTX_NO_FAILURE_LOG: tagCLSCTX = 16384;
pub const tagCLSCTX_CLSCTX_DISABLE_AAA: tagCLSCTX = 32768;
pub const tagCLSCTX_CLSCTX_ENABLE_AAA: tagCLSCTX = 65536;
pub const tagCLSCTX_CLSCTX_FROM_DEFAULT_CONTEXT: tagCLSCTX = 131072;
pub const tagCLSCTX_CLSCTX_ACTIVATE_X86_SERVER: tagCLSCTX = 262144;
pub const tagCLSCTX_CLSCTX_ACTIVATE_32_BIT_SERVER: tagCLSCTX = 262144;
pub const tagCLSCTX_CLSCTX_ACTIVATE_64_BIT_SERVER: tagCLSCTX = 524288;
pub const tagCLSCTX_CLSCTX_ENABLE_CLOAKING: tagCLSCTX = 1048576;
pub const tagCLSCTX_CLSCTX_APPCONTAINER: tagCLSCTX = 4194304;
pub const tagCLSCTX_CLSCTX_ACTIVATE_AAA_AS_IU: tagCLSCTX = 8388608;
pub const tagCLSCTX_CLSCTX_RESERVED6: tagCLSCTX = 16777216;
pub const tagCLSCTX_CLSCTX_ACTIVATE_ARM32_SERVER: tagCLSCTX = 33554432;
pub const tagCLSCTX_CLSCTX_PS_DLL: tagCLSCTX = -2147483648;
pub type tagCLSCTX = ::std::os::raw::c_int;
pub use self::tagCLSCTX as CLSCTX;
pub const tagMSHLFLAGS_MSHLFLAGS_NORMAL: tagMSHLFLAGS = 0;
pub const tagMSHLFLAGS_MSHLFLAGS_TABLESTRONG: tagMSHLFLAGS = 1;
pub const tagMSHLFLAGS_MSHLFLAGS_TABLEWEAK: tagMSHLFLAGS = 2;
pub const tagMSHLFLAGS_MSHLFLAGS_NOPING: tagMSHLFLAGS = 4;
pub const tagMSHLFLAGS_MSHLFLAGS_RESERVED1: tagMSHLFLAGS = 8;
pub const tagMSHLFLAGS_MSHLFLAGS_RESERVED2: tagMSHLFLAGS = 16;
pub const tagMSHLFLAGS_MSHLFLAGS_RESERVED3: tagMSHLFLAGS = 32;
pub const tagMSHLFLAGS_MSHLFLAGS_RESERVED4: tagMSHLFLAGS = 64;
pub type tagMSHLFLAGS = ::std::os::raw::c_int;
pub use self::tagMSHLFLAGS as MSHLFLAGS;
pub const tagMSHCTX_MSHCTX_LOCAL: tagMSHCTX = 0;
pub const tagMSHCTX_MSHCTX_NOSHAREDMEM: tagMSHCTX = 1;
pub const tagMSHCTX_MSHCTX_DIFFERENTMACHINE: tagMSHCTX = 2;
pub const tagMSHCTX_MSHCTX_INPROC: tagMSHCTX = 3;
pub const tagMSHCTX_MSHCTX_CROSSCTX: tagMSHCTX = 4;
pub const tagMSHCTX_MSHCTX_RESERVED1: tagMSHCTX = 5;
pub type tagMSHCTX = ::std::os::raw::c_int;
pub use self::tagMSHCTX as MSHCTX;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _BYTE_BLOB {
    pub clSize: ULONG,
    pub abData: [byte; 1usize],
}
#[test]
fn bindgen_test_layout__BYTE_BLOB() {
    assert_eq!(
        ::std::mem::size_of::<_BYTE_BLOB>(),
        8usize,
        concat!("Size of: ", stringify!(_BYTE_BLOB))
    );
    assert_eq!(
        ::std::mem::align_of::<_BYTE_BLOB>(),
        4usize,
        concat!("Alignment of ", stringify!(_BYTE_BLOB))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BYTE_BLOB>())).clSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BYTE_BLOB),
            "::",
            stringify!(clSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BYTE_BLOB>())).abData as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_BYTE_BLOB),
            "::",
            stringify!(abData)
        )
    );
}
pub type BYTE_BLOB = _BYTE_BLOB;
pub type UP_BYTE_BLOB = *mut BYTE_BLOB;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _WORD_BLOB {
    pub clSize: ULONG,
    pub asData: [::std::os::raw::c_ushort; 1usize],
}
#[test]
fn bindgen_test_layout__WORD_BLOB() {
    assert_eq!(
        ::std::mem::size_of::<_WORD_BLOB>(),
        8usize,
        concat!("Size of: ", stringify!(_WORD_BLOB))
    );
    assert_eq!(
        ::std::mem::align_of::<_WORD_BLOB>(),
        4usize,
        concat!("Alignment of ", stringify!(_WORD_BLOB))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WORD_BLOB>())).clSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_WORD_BLOB),
            "::",
            stringify!(clSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WORD_BLOB>())).asData as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_WORD_BLOB),
            "::",
            stringify!(asData)
        )
    );
}
pub type WORD_BLOB = _WORD_BLOB;
pub type UP_WORD_BLOB = *mut WORD_BLOB;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DWORD_BLOB {
    pub clSize: ULONG,
    pub alData: [ULONG; 1usize],
}
#[test]
fn bindgen_test_layout__DWORD_BLOB() {
    assert_eq!(
        ::std::mem::size_of::<_DWORD_BLOB>(),
        8usize,
        concat!("Size of: ", stringify!(_DWORD_BLOB))
    );
    assert_eq!(
        ::std::mem::align_of::<_DWORD_BLOB>(),
        4usize,
        concat!("Alignment of ", stringify!(_DWORD_BLOB))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DWORD_BLOB>())).clSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DWORD_BLOB),
            "::",
            stringify!(clSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DWORD_BLOB>())).alData as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DWORD_BLOB),
            "::",
            stringify!(alData)
        )
    );
}
pub type DWORD_BLOB = _DWORD_BLOB;
pub type UP_DWORD_BLOB = *mut DWORD_BLOB;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FLAGGED_BYTE_BLOB {
    pub fFlags: ULONG,
    pub clSize: ULONG,
    pub abData: [byte; 1usize],
}
#[test]
fn bindgen_test_layout__FLAGGED_BYTE_BLOB() {
    assert_eq!(
        ::std::mem::size_of::<_FLAGGED_BYTE_BLOB>(),
        12usize,
        concat!("Size of: ", stringify!(_FLAGGED_BYTE_BLOB))
    );
    assert_eq!(
        ::std::mem::align_of::<_FLAGGED_BYTE_BLOB>(),
        4usize,
        concat!("Alignment of ", stringify!(_FLAGGED_BYTE_BLOB))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FLAGGED_BYTE_BLOB>())).fFlags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FLAGGED_BYTE_BLOB),
            "::",
            stringify!(fFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FLAGGED_BYTE_BLOB>())).clSize as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FLAGGED_BYTE_BLOB),
            "::",
            stringify!(clSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FLAGGED_BYTE_BLOB>())).abData as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FLAGGED_BYTE_BLOB),
            "::",
            stringify!(abData)
        )
    );
}
pub type FLAGGED_BYTE_BLOB = _FLAGGED_BYTE_BLOB;
pub type UP_FLAGGED_BYTE_BLOB = *mut FLAGGED_BYTE_BLOB;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FLAGGED_WORD_BLOB {
    pub fFlags: ULONG,
    pub clSize: ULONG,
    pub asData: [::std::os::raw::c_ushort; 1usize],
}
#[test]
fn bindgen_test_layout__FLAGGED_WORD_BLOB() {
    assert_eq!(
        ::std::mem::size_of::<_FLAGGED_WORD_BLOB>(),
        12usize,
        concat!("Size of: ", stringify!(_FLAGGED_WORD_BLOB))
    );
    assert_eq!(
        ::std::mem::align_of::<_FLAGGED_WORD_BLOB>(),
        4usize,
        concat!("Alignment of ", stringify!(_FLAGGED_WORD_BLOB))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FLAGGED_WORD_BLOB>())).fFlags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FLAGGED_WORD_BLOB),
            "::",
            stringify!(fFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FLAGGED_WORD_BLOB>())).clSize as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FLAGGED_WORD_BLOB),
            "::",
            stringify!(clSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FLAGGED_WORD_BLOB>())).asData as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FLAGGED_WORD_BLOB),
            "::",
            stringify!(asData)
        )
    );
}
pub type FLAGGED_WORD_BLOB = _FLAGGED_WORD_BLOB;
pub type UP_FLAGGED_WORD_BLOB = *mut FLAGGED_WORD_BLOB;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _BYTE_SIZEDARR {
    pub clSize: ULONG,
    pub pData: *mut byte,
}
#[test]
fn bindgen_test_layout__BYTE_SIZEDARR() {
    assert_eq!(
        ::std::mem::size_of::<_BYTE_SIZEDARR>(),
        16usize,
        concat!("Size of: ", stringify!(_BYTE_SIZEDARR))
    );
    assert_eq!(
        ::std::mem::align_of::<_BYTE_SIZEDARR>(),
        8usize,
        concat!("Alignment of ", stringify!(_BYTE_SIZEDARR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BYTE_SIZEDARR>())).clSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BYTE_SIZEDARR),
            "::",
            stringify!(clSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BYTE_SIZEDARR>())).pData as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_BYTE_SIZEDARR),
            "::",
            stringify!(pData)
        )
    );
}
pub type BYTE_SIZEDARR = _BYTE_SIZEDARR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SHORT_SIZEDARR {
    pub clSize: ULONG,
    pub pData: *mut ::std::os::raw::c_ushort,
}
#[test]
fn bindgen_test_layout__SHORT_SIZEDARR() {
    assert_eq!(
        ::std::mem::size_of::<_SHORT_SIZEDARR>(),
        16usize,
        concat!("Size of: ", stringify!(_SHORT_SIZEDARR))
    );
    assert_eq!(
        ::std::mem::align_of::<_SHORT_SIZEDARR>(),
        8usize,
        concat!("Alignment of ", stringify!(_SHORT_SIZEDARR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHORT_SIZEDARR>())).clSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHORT_SIZEDARR),
            "::",
            stringify!(clSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SHORT_SIZEDARR>())).pData as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHORT_SIZEDARR),
            "::",
            stringify!(pData)
        )
    );
}
pub type WORD_SIZEDARR = _SHORT_SIZEDARR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _LONG_SIZEDARR {
    pub clSize: ULONG,
    pub pData: *mut ULONG,
}
#[test]
fn bindgen_test_layout__LONG_SIZEDARR() {
    assert_eq!(
        ::std::mem::size_of::<_LONG_SIZEDARR>(),
        16usize,
        concat!("Size of: ", stringify!(_LONG_SIZEDARR))
    );
    assert_eq!(
        ::std::mem::align_of::<_LONG_SIZEDARR>(),
        8usize,
        concat!("Alignment of ", stringify!(_LONG_SIZEDARR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_LONG_SIZEDARR>())).clSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_LONG_SIZEDARR),
            "::",
            stringify!(clSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_LONG_SIZEDARR>())).pData as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_LONG_SIZEDARR),
            "::",
            stringify!(pData)
        )
    );
}
pub type DWORD_SIZEDARR = _LONG_SIZEDARR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _HYPER_SIZEDARR {
    pub clSize: ULONG,
    pub pData: *mut ::std::os::raw::c_longlong,
}
#[test]
fn bindgen_test_layout__HYPER_SIZEDARR() {
    assert_eq!(
        ::std::mem::size_of::<_HYPER_SIZEDARR>(),
        16usize,
        concat!("Size of: ", stringify!(_HYPER_SIZEDARR))
    );
    assert_eq!(
        ::std::mem::align_of::<_HYPER_SIZEDARR>(),
        8usize,
        concat!("Alignment of ", stringify!(_HYPER_SIZEDARR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_HYPER_SIZEDARR>())).clSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_HYPER_SIZEDARR),
            "::",
            stringify!(clSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_HYPER_SIZEDARR>())).pData as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_HYPER_SIZEDARR),
            "::",
            stringify!(pData)
        )
    );
}
pub type HYPER_SIZEDARR = _HYPER_SIZEDARR;
extern "C" {
    pub static mut IWinTypesBase_v0_1_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut IWinTypesBase_v0_1_s_ifspec: RPC_IF_HANDLE;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagBLOB {
    pub cbSize: ULONG,
    pub pBlobData: *mut BYTE,
}
#[test]
fn bindgen_test_layout_tagBLOB() {
    assert_eq!(
        ::std::mem::size_of::<tagBLOB>(),
        16usize,
        concat!("Size of: ", stringify!(tagBLOB))
    );
    assert_eq!(
        ::std::mem::align_of::<tagBLOB>(),
        8usize,
        concat!("Alignment of ", stringify!(tagBLOB))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBLOB>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBLOB),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBLOB>())).pBlobData as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBLOB),
            "::",
            stringify!(pBlobData)
        )
    );
}
pub type BLOB = tagBLOB;
pub type LPBLOB = *mut tagBLOB;
extern "C" {
    pub static mut __MIDL_itf_wtypesbase_0000_0001_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_wtypesbase_0000_0001_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_wtypes_0000_0000_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_wtypes_0000_0000_v0_0_s_ifspec: RPC_IF_HANDLE;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagRemHGLOBAL {
    pub fNullHGlobal: LONG,
    pub cbData: ULONG,
    pub data: [byte; 1usize],
}
#[test]
fn bindgen_test_layout_tagRemHGLOBAL() {
    assert_eq!(
        ::std::mem::size_of::<tagRemHGLOBAL>(),
        12usize,
        concat!("Size of: ", stringify!(tagRemHGLOBAL))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRemHGLOBAL>(),
        4usize,
        concat!("Alignment of ", stringify!(tagRemHGLOBAL))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRemHGLOBAL>())).fNullHGlobal as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRemHGLOBAL),
            "::",
            stringify!(fNullHGlobal)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRemHGLOBAL>())).cbData as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRemHGLOBAL),
            "::",
            stringify!(cbData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRemHGLOBAL>())).data as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRemHGLOBAL),
            "::",
            stringify!(data)
        )
    );
}
pub type RemHGLOBAL = tagRemHGLOBAL;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagRemHMETAFILEPICT {
    pub mm: LONG,
    pub xExt: LONG,
    pub yExt: LONG,
    pub cbData: ULONG,
    pub data: [byte; 1usize],
}
#[test]
fn bindgen_test_layout_tagRemHMETAFILEPICT() {
    assert_eq!(
        ::std::mem::size_of::<tagRemHMETAFILEPICT>(),
        20usize,
        concat!("Size of: ", stringify!(tagRemHMETAFILEPICT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRemHMETAFILEPICT>(),
        4usize,
        concat!("Alignment of ", stringify!(tagRemHMETAFILEPICT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRemHMETAFILEPICT>())).mm as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRemHMETAFILEPICT),
            "::",
            stringify!(mm)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRemHMETAFILEPICT>())).xExt as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRemHMETAFILEPICT),
            "::",
            stringify!(xExt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRemHMETAFILEPICT>())).yExt as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRemHMETAFILEPICT),
            "::",
            stringify!(yExt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRemHMETAFILEPICT>())).cbData as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRemHMETAFILEPICT),
            "::",
            stringify!(cbData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRemHMETAFILEPICT>())).data as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRemHMETAFILEPICT),
            "::",
            stringify!(data)
        )
    );
}
pub type RemHMETAFILEPICT = tagRemHMETAFILEPICT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagRemHENHMETAFILE {
    pub cbData: ULONG,
    pub data: [byte; 1usize],
}
#[test]
fn bindgen_test_layout_tagRemHENHMETAFILE() {
    assert_eq!(
        ::std::mem::size_of::<tagRemHENHMETAFILE>(),
        8usize,
        concat!("Size of: ", stringify!(tagRemHENHMETAFILE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRemHENHMETAFILE>(),
        4usize,
        concat!("Alignment of ", stringify!(tagRemHENHMETAFILE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRemHENHMETAFILE>())).cbData as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRemHENHMETAFILE),
            "::",
            stringify!(cbData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRemHENHMETAFILE>())).data as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRemHENHMETAFILE),
            "::",
            stringify!(data)
        )
    );
}
pub type RemHENHMETAFILE = tagRemHENHMETAFILE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagRemHBITMAP {
    pub cbData: ULONG,
    pub data: [byte; 1usize],
}
#[test]
fn bindgen_test_layout_tagRemHBITMAP() {
    assert_eq!(
        ::std::mem::size_of::<tagRemHBITMAP>(),
        8usize,
        concat!("Size of: ", stringify!(tagRemHBITMAP))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRemHBITMAP>(),
        4usize,
        concat!("Alignment of ", stringify!(tagRemHBITMAP))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRemHBITMAP>())).cbData as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRemHBITMAP),
            "::",
            stringify!(cbData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRemHBITMAP>())).data as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRemHBITMAP),
            "::",
            stringify!(data)
        )
    );
}
pub type RemHBITMAP = tagRemHBITMAP;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagRemHPALETTE {
    pub cbData: ULONG,
    pub data: [byte; 1usize],
}
#[test]
fn bindgen_test_layout_tagRemHPALETTE() {
    assert_eq!(
        ::std::mem::size_of::<tagRemHPALETTE>(),
        8usize,
        concat!("Size of: ", stringify!(tagRemHPALETTE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRemHPALETTE>(),
        4usize,
        concat!("Alignment of ", stringify!(tagRemHPALETTE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRemHPALETTE>())).cbData as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRemHPALETTE),
            "::",
            stringify!(cbData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRemHPALETTE>())).data as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRemHPALETTE),
            "::",
            stringify!(data)
        )
    );
}
pub type RemHPALETTE = tagRemHPALETTE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagRemBRUSH {
    pub cbData: ULONG,
    pub data: [byte; 1usize],
}
#[test]
fn bindgen_test_layout_tagRemBRUSH() {
    assert_eq!(
        ::std::mem::size_of::<tagRemBRUSH>(),
        8usize,
        concat!("Size of: ", stringify!(tagRemBRUSH))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRemBRUSH>(),
        4usize,
        concat!("Alignment of ", stringify!(tagRemBRUSH))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRemBRUSH>())).cbData as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRemBRUSH),
            "::",
            stringify!(cbData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRemBRUSH>())).data as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRemBRUSH),
            "::",
            stringify!(data)
        )
    );
}
pub type RemHBRUSH = tagRemBRUSH;
pub const tagDVASPECT_DVASPECT_CONTENT: tagDVASPECT = 1;
pub const tagDVASPECT_DVASPECT_THUMBNAIL: tagDVASPECT = 2;
pub const tagDVASPECT_DVASPECT_ICON: tagDVASPECT = 4;
pub const tagDVASPECT_DVASPECT_DOCPRINT: tagDVASPECT = 8;
pub type tagDVASPECT = ::std::os::raw::c_int;
pub use self::tagDVASPECT as DVASPECT;
pub const tagSTGC_STGC_DEFAULT: tagSTGC = 0;
pub const tagSTGC_STGC_OVERWRITE: tagSTGC = 1;
pub const tagSTGC_STGC_ONLYIFCURRENT: tagSTGC = 2;
pub const tagSTGC_STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE: tagSTGC = 4;
pub const tagSTGC_STGC_CONSOLIDATE: tagSTGC = 8;
pub type tagSTGC = ::std::os::raw::c_int;
pub use self::tagSTGC as STGC;
pub const tagSTGMOVE_STGMOVE_MOVE: tagSTGMOVE = 0;
pub const tagSTGMOVE_STGMOVE_COPY: tagSTGMOVE = 1;
pub const tagSTGMOVE_STGMOVE_SHALLOWCOPY: tagSTGMOVE = 2;
pub type tagSTGMOVE = ::std::os::raw::c_int;
pub use self::tagSTGMOVE as STGMOVE;
pub const tagSTATFLAG_STATFLAG_DEFAULT: tagSTATFLAG = 0;
pub const tagSTATFLAG_STATFLAG_NONAME: tagSTATFLAG = 1;
pub const tagSTATFLAG_STATFLAG_NOOPEN: tagSTATFLAG = 2;
pub type tagSTATFLAG = ::std::os::raw::c_int;
pub use self::tagSTATFLAG as STATFLAG;
pub type HCONTEXT = *mut ::std::os::raw::c_void;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _userCLIPFORMAT {
    pub fContext: LONG,
    pub u: _userCLIPFORMAT___MIDL_IWinTypes_0001,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _userCLIPFORMAT___MIDL_IWinTypes_0001 {
    pub dwValue: DWORD,
    pub pwszName: *mut wchar_t,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__userCLIPFORMAT___MIDL_IWinTypes_0001() {
    assert_eq!(
        ::std::mem::size_of::<_userCLIPFORMAT___MIDL_IWinTypes_0001>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_userCLIPFORMAT___MIDL_IWinTypes_0001)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_userCLIPFORMAT___MIDL_IWinTypes_0001>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_userCLIPFORMAT___MIDL_IWinTypes_0001)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_userCLIPFORMAT___MIDL_IWinTypes_0001>())).dwValue as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userCLIPFORMAT___MIDL_IWinTypes_0001),
            "::",
            stringify!(dwValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_userCLIPFORMAT___MIDL_IWinTypes_0001>())).pwszName as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userCLIPFORMAT___MIDL_IWinTypes_0001),
            "::",
            stringify!(pwszName)
        )
    );
}
#[test]
fn bindgen_test_layout__userCLIPFORMAT() {
    assert_eq!(
        ::std::mem::size_of::<_userCLIPFORMAT>(),
        16usize,
        concat!("Size of: ", stringify!(_userCLIPFORMAT))
    );
    assert_eq!(
        ::std::mem::align_of::<_userCLIPFORMAT>(),
        8usize,
        concat!("Alignment of ", stringify!(_userCLIPFORMAT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_userCLIPFORMAT>())).fContext as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userCLIPFORMAT),
            "::",
            stringify!(fContext)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_userCLIPFORMAT>())).u as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_userCLIPFORMAT),
            "::",
            stringify!(u)
        )
    );
}
pub type userCLIPFORMAT = _userCLIPFORMAT;
pub type wireCLIPFORMAT = *mut userCLIPFORMAT;
pub type CLIPFORMAT = WORD;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _GDI_NONREMOTE {
    pub fContext: LONG,
    pub u: _GDI_NONREMOTE___MIDL_IWinTypes_0002,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _GDI_NONREMOTE___MIDL_IWinTypes_0002 {
    pub hInproc: LONG,
    pub hRemote: *mut DWORD_BLOB,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__GDI_NONREMOTE___MIDL_IWinTypes_0002() {
    assert_eq!(
        ::std::mem::size_of::<_GDI_NONREMOTE___MIDL_IWinTypes_0002>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_GDI_NONREMOTE___MIDL_IWinTypes_0002)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_GDI_NONREMOTE___MIDL_IWinTypes_0002>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_GDI_NONREMOTE___MIDL_IWinTypes_0002)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GDI_NONREMOTE___MIDL_IWinTypes_0002>())).hInproc as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_GDI_NONREMOTE___MIDL_IWinTypes_0002),
            "::",
            stringify!(hInproc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GDI_NONREMOTE___MIDL_IWinTypes_0002>())).hRemote as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_GDI_NONREMOTE___MIDL_IWinTypes_0002),
            "::",
            stringify!(hRemote)
        )
    );
}
#[test]
fn bindgen_test_layout__GDI_NONREMOTE() {
    assert_eq!(
        ::std::mem::size_of::<_GDI_NONREMOTE>(),
        16usize,
        concat!("Size of: ", stringify!(_GDI_NONREMOTE))
    );
    assert_eq!(
        ::std::mem::align_of::<_GDI_NONREMOTE>(),
        8usize,
        concat!("Alignment of ", stringify!(_GDI_NONREMOTE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GDI_NONREMOTE>())).fContext as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_GDI_NONREMOTE),
            "::",
            stringify!(fContext)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GDI_NONREMOTE>())).u as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_GDI_NONREMOTE),
            "::",
            stringify!(u)
        )
    );
}
pub type GDI_NONREMOTE = _GDI_NONREMOTE;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _userHGLOBAL {
    pub fContext: LONG,
    pub u: _userHGLOBAL___MIDL_IWinTypes_0003,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _userHGLOBAL___MIDL_IWinTypes_0003 {
    pub hInproc: LONG,
    pub hRemote: *mut FLAGGED_BYTE_BLOB,
    pub hInproc64: ::std::os::raw::c_longlong,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__userHGLOBAL___MIDL_IWinTypes_0003() {
    assert_eq!(
        ::std::mem::size_of::<_userHGLOBAL___MIDL_IWinTypes_0003>(),
        8usize,
        concat!("Size of: ", stringify!(_userHGLOBAL___MIDL_IWinTypes_0003))
    );
    assert_eq!(
        ::std::mem::align_of::<_userHGLOBAL___MIDL_IWinTypes_0003>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_userHGLOBAL___MIDL_IWinTypes_0003)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_userHGLOBAL___MIDL_IWinTypes_0003>())).hInproc as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userHGLOBAL___MIDL_IWinTypes_0003),
            "::",
            stringify!(hInproc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_userHGLOBAL___MIDL_IWinTypes_0003>())).hRemote as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userHGLOBAL___MIDL_IWinTypes_0003),
            "::",
            stringify!(hRemote)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_userHGLOBAL___MIDL_IWinTypes_0003>())).hInproc64 as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userHGLOBAL___MIDL_IWinTypes_0003),
            "::",
            stringify!(hInproc64)
        )
    );
}
#[test]
fn bindgen_test_layout__userHGLOBAL() {
    assert_eq!(
        ::std::mem::size_of::<_userHGLOBAL>(),
        16usize,
        concat!("Size of: ", stringify!(_userHGLOBAL))
    );
    assert_eq!(
        ::std::mem::align_of::<_userHGLOBAL>(),
        8usize,
        concat!("Alignment of ", stringify!(_userHGLOBAL))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_userHGLOBAL>())).fContext as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userHGLOBAL),
            "::",
            stringify!(fContext)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_userHGLOBAL>())).u as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_userHGLOBAL),
            "::",
            stringify!(u)
        )
    );
}
pub type userHGLOBAL = _userHGLOBAL;
pub type wireHGLOBAL = *mut userHGLOBAL;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _userHMETAFILE {
    pub fContext: LONG,
    pub u: _userHMETAFILE___MIDL_IWinTypes_0004,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _userHMETAFILE___MIDL_IWinTypes_0004 {
    pub hInproc: LONG,
    pub hRemote: *mut BYTE_BLOB,
    pub hInproc64: ::std::os::raw::c_longlong,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__userHMETAFILE___MIDL_IWinTypes_0004() {
    assert_eq!(
        ::std::mem::size_of::<_userHMETAFILE___MIDL_IWinTypes_0004>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_userHMETAFILE___MIDL_IWinTypes_0004)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_userHMETAFILE___MIDL_IWinTypes_0004>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_userHMETAFILE___MIDL_IWinTypes_0004)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_userHMETAFILE___MIDL_IWinTypes_0004>())).hInproc as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userHMETAFILE___MIDL_IWinTypes_0004),
            "::",
            stringify!(hInproc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_userHMETAFILE___MIDL_IWinTypes_0004>())).hRemote as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userHMETAFILE___MIDL_IWinTypes_0004),
            "::",
            stringify!(hRemote)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_userHMETAFILE___MIDL_IWinTypes_0004>())).hInproc64 as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userHMETAFILE___MIDL_IWinTypes_0004),
            "::",
            stringify!(hInproc64)
        )
    );
}
#[test]
fn bindgen_test_layout__userHMETAFILE() {
    assert_eq!(
        ::std::mem::size_of::<_userHMETAFILE>(),
        16usize,
        concat!("Size of: ", stringify!(_userHMETAFILE))
    );
    assert_eq!(
        ::std::mem::align_of::<_userHMETAFILE>(),
        8usize,
        concat!("Alignment of ", stringify!(_userHMETAFILE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_userHMETAFILE>())).fContext as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userHMETAFILE),
            "::",
            stringify!(fContext)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_userHMETAFILE>())).u as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_userHMETAFILE),
            "::",
            stringify!(u)
        )
    );
}
pub type userHMETAFILE = _userHMETAFILE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _remoteMETAFILEPICT {
    pub mm: LONG,
    pub xExt: LONG,
    pub yExt: LONG,
    pub hMF: *mut userHMETAFILE,
}
#[test]
fn bindgen_test_layout__remoteMETAFILEPICT() {
    assert_eq!(
        ::std::mem::size_of::<_remoteMETAFILEPICT>(),
        24usize,
        concat!("Size of: ", stringify!(_remoteMETAFILEPICT))
    );
    assert_eq!(
        ::std::mem::align_of::<_remoteMETAFILEPICT>(),
        8usize,
        concat!("Alignment of ", stringify!(_remoteMETAFILEPICT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_remoteMETAFILEPICT>())).mm as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_remoteMETAFILEPICT),
            "::",
            stringify!(mm)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_remoteMETAFILEPICT>())).xExt as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_remoteMETAFILEPICT),
            "::",
            stringify!(xExt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_remoteMETAFILEPICT>())).yExt as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_remoteMETAFILEPICT),
            "::",
            stringify!(yExt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_remoteMETAFILEPICT>())).hMF as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_remoteMETAFILEPICT),
            "::",
            stringify!(hMF)
        )
    );
}
pub type remoteMETAFILEPICT = _remoteMETAFILEPICT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _userHMETAFILEPICT {
    pub fContext: LONG,
    pub u: _userHMETAFILEPICT___MIDL_IWinTypes_0005,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _userHMETAFILEPICT___MIDL_IWinTypes_0005 {
    pub hInproc: LONG,
    pub hRemote: *mut remoteMETAFILEPICT,
    pub hInproc64: ::std::os::raw::c_longlong,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__userHMETAFILEPICT___MIDL_IWinTypes_0005() {
    assert_eq!(
        ::std::mem::size_of::<_userHMETAFILEPICT___MIDL_IWinTypes_0005>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_userHMETAFILEPICT___MIDL_IWinTypes_0005)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_userHMETAFILEPICT___MIDL_IWinTypes_0005>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_userHMETAFILEPICT___MIDL_IWinTypes_0005)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_userHMETAFILEPICT___MIDL_IWinTypes_0005>())).hInproc as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userHMETAFILEPICT___MIDL_IWinTypes_0005),
            "::",
            stringify!(hInproc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_userHMETAFILEPICT___MIDL_IWinTypes_0005>())).hRemote as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userHMETAFILEPICT___MIDL_IWinTypes_0005),
            "::",
            stringify!(hRemote)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_userHMETAFILEPICT___MIDL_IWinTypes_0005>())).hInproc64
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userHMETAFILEPICT___MIDL_IWinTypes_0005),
            "::",
            stringify!(hInproc64)
        )
    );
}
#[test]
fn bindgen_test_layout__userHMETAFILEPICT() {
    assert_eq!(
        ::std::mem::size_of::<_userHMETAFILEPICT>(),
        16usize,
        concat!("Size of: ", stringify!(_userHMETAFILEPICT))
    );
    assert_eq!(
        ::std::mem::align_of::<_userHMETAFILEPICT>(),
        8usize,
        concat!("Alignment of ", stringify!(_userHMETAFILEPICT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_userHMETAFILEPICT>())).fContext as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userHMETAFILEPICT),
            "::",
            stringify!(fContext)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_userHMETAFILEPICT>())).u as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_userHMETAFILEPICT),
            "::",
            stringify!(u)
        )
    );
}
pub type userHMETAFILEPICT = _userHMETAFILEPICT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _userHENHMETAFILE {
    pub fContext: LONG,
    pub u: _userHENHMETAFILE___MIDL_IWinTypes_0006,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _userHENHMETAFILE___MIDL_IWinTypes_0006 {
    pub hInproc: LONG,
    pub hRemote: *mut BYTE_BLOB,
    pub hInproc64: ::std::os::raw::c_longlong,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__userHENHMETAFILE___MIDL_IWinTypes_0006() {
    assert_eq!(
        ::std::mem::size_of::<_userHENHMETAFILE___MIDL_IWinTypes_0006>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_userHENHMETAFILE___MIDL_IWinTypes_0006)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_userHENHMETAFILE___MIDL_IWinTypes_0006>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_userHENHMETAFILE___MIDL_IWinTypes_0006)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_userHENHMETAFILE___MIDL_IWinTypes_0006>())).hInproc as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userHENHMETAFILE___MIDL_IWinTypes_0006),
            "::",
            stringify!(hInproc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_userHENHMETAFILE___MIDL_IWinTypes_0006>())).hRemote as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userHENHMETAFILE___MIDL_IWinTypes_0006),
            "::",
            stringify!(hRemote)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_userHENHMETAFILE___MIDL_IWinTypes_0006>())).hInproc64
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userHENHMETAFILE___MIDL_IWinTypes_0006),
            "::",
            stringify!(hInproc64)
        )
    );
}
#[test]
fn bindgen_test_layout__userHENHMETAFILE() {
    assert_eq!(
        ::std::mem::size_of::<_userHENHMETAFILE>(),
        16usize,
        concat!("Size of: ", stringify!(_userHENHMETAFILE))
    );
    assert_eq!(
        ::std::mem::align_of::<_userHENHMETAFILE>(),
        8usize,
        concat!("Alignment of ", stringify!(_userHENHMETAFILE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_userHENHMETAFILE>())).fContext as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userHENHMETAFILE),
            "::",
            stringify!(fContext)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_userHENHMETAFILE>())).u as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_userHENHMETAFILE),
            "::",
            stringify!(u)
        )
    );
}
pub type userHENHMETAFILE = _userHENHMETAFILE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _userBITMAP {
    pub bmType: LONG,
    pub bmWidth: LONG,
    pub bmHeight: LONG,
    pub bmWidthBytes: LONG,
    pub bmPlanes: WORD,
    pub bmBitsPixel: WORD,
    pub cbSize: ULONG,
    pub pBuffer: [byte; 1usize],
}
#[test]
fn bindgen_test_layout__userBITMAP() {
    assert_eq!(
        ::std::mem::size_of::<_userBITMAP>(),
        28usize,
        concat!("Size of: ", stringify!(_userBITMAP))
    );
    assert_eq!(
        ::std::mem::align_of::<_userBITMAP>(),
        4usize,
        concat!("Alignment of ", stringify!(_userBITMAP))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_userBITMAP>())).bmType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userBITMAP),
            "::",
            stringify!(bmType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_userBITMAP>())).bmWidth as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_userBITMAP),
            "::",
            stringify!(bmWidth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_userBITMAP>())).bmHeight as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_userBITMAP),
            "::",
            stringify!(bmHeight)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_userBITMAP>())).bmWidthBytes as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_userBITMAP),
            "::",
            stringify!(bmWidthBytes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_userBITMAP>())).bmPlanes as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_userBITMAP),
            "::",
            stringify!(bmPlanes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_userBITMAP>())).bmBitsPixel as *const _ as usize },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(_userBITMAP),
            "::",
            stringify!(bmBitsPixel)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_userBITMAP>())).cbSize as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_userBITMAP),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_userBITMAP>())).pBuffer as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_userBITMAP),
            "::",
            stringify!(pBuffer)
        )
    );
}
pub type userBITMAP = _userBITMAP;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _userHBITMAP {
    pub fContext: LONG,
    pub u: _userHBITMAP___MIDL_IWinTypes_0007,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _userHBITMAP___MIDL_IWinTypes_0007 {
    pub hInproc: LONG,
    pub hRemote: *mut userBITMAP,
    pub hInproc64: ::std::os::raw::c_longlong,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__userHBITMAP___MIDL_IWinTypes_0007() {
    assert_eq!(
        ::std::mem::size_of::<_userHBITMAP___MIDL_IWinTypes_0007>(),
        8usize,
        concat!("Size of: ", stringify!(_userHBITMAP___MIDL_IWinTypes_0007))
    );
    assert_eq!(
        ::std::mem::align_of::<_userHBITMAP___MIDL_IWinTypes_0007>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_userHBITMAP___MIDL_IWinTypes_0007)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_userHBITMAP___MIDL_IWinTypes_0007>())).hInproc as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userHBITMAP___MIDL_IWinTypes_0007),
            "::",
            stringify!(hInproc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_userHBITMAP___MIDL_IWinTypes_0007>())).hRemote as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userHBITMAP___MIDL_IWinTypes_0007),
            "::",
            stringify!(hRemote)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_userHBITMAP___MIDL_IWinTypes_0007>())).hInproc64 as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userHBITMAP___MIDL_IWinTypes_0007),
            "::",
            stringify!(hInproc64)
        )
    );
}
#[test]
fn bindgen_test_layout__userHBITMAP() {
    assert_eq!(
        ::std::mem::size_of::<_userHBITMAP>(),
        16usize,
        concat!("Size of: ", stringify!(_userHBITMAP))
    );
    assert_eq!(
        ::std::mem::align_of::<_userHBITMAP>(),
        8usize,
        concat!("Alignment of ", stringify!(_userHBITMAP))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_userHBITMAP>())).fContext as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userHBITMAP),
            "::",
            stringify!(fContext)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_userHBITMAP>())).u as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_userHBITMAP),
            "::",
            stringify!(u)
        )
    );
}
pub type userHBITMAP = _userHBITMAP;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _userHPALETTE {
    pub fContext: LONG,
    pub u: _userHPALETTE___MIDL_IWinTypes_0008,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _userHPALETTE___MIDL_IWinTypes_0008 {
    pub hInproc: LONG,
    pub hRemote: *mut LOGPALETTE,
    pub hInproc64: ::std::os::raw::c_longlong,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__userHPALETTE___MIDL_IWinTypes_0008() {
    assert_eq!(
        ::std::mem::size_of::<_userHPALETTE___MIDL_IWinTypes_0008>(),
        8usize,
        concat!("Size of: ", stringify!(_userHPALETTE___MIDL_IWinTypes_0008))
    );
    assert_eq!(
        ::std::mem::align_of::<_userHPALETTE___MIDL_IWinTypes_0008>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_userHPALETTE___MIDL_IWinTypes_0008)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_userHPALETTE___MIDL_IWinTypes_0008>())).hInproc as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userHPALETTE___MIDL_IWinTypes_0008),
            "::",
            stringify!(hInproc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_userHPALETTE___MIDL_IWinTypes_0008>())).hRemote as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userHPALETTE___MIDL_IWinTypes_0008),
            "::",
            stringify!(hRemote)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_userHPALETTE___MIDL_IWinTypes_0008>())).hInproc64 as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userHPALETTE___MIDL_IWinTypes_0008),
            "::",
            stringify!(hInproc64)
        )
    );
}
#[test]
fn bindgen_test_layout__userHPALETTE() {
    assert_eq!(
        ::std::mem::size_of::<_userHPALETTE>(),
        16usize,
        concat!("Size of: ", stringify!(_userHPALETTE))
    );
    assert_eq!(
        ::std::mem::align_of::<_userHPALETTE>(),
        8usize,
        concat!("Alignment of ", stringify!(_userHPALETTE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_userHPALETTE>())).fContext as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userHPALETTE),
            "::",
            stringify!(fContext)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_userHPALETTE>())).u as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_userHPALETTE),
            "::",
            stringify!(u)
        )
    );
}
pub type userHPALETTE = _userHPALETTE;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _RemotableHandle {
    pub fContext: LONG,
    pub u: _RemotableHandle___MIDL_IWinTypes_0009,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _RemotableHandle___MIDL_IWinTypes_0009 {
    pub hInproc: LONG,
    pub hRemote: LONG,
    _bindgen_union_align: u32,
}
#[test]
fn bindgen_test_layout__RemotableHandle___MIDL_IWinTypes_0009() {
    assert_eq!(
        ::std::mem::size_of::<_RemotableHandle___MIDL_IWinTypes_0009>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_RemotableHandle___MIDL_IWinTypes_0009)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_RemotableHandle___MIDL_IWinTypes_0009>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_RemotableHandle___MIDL_IWinTypes_0009)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RemotableHandle___MIDL_IWinTypes_0009>())).hInproc as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RemotableHandle___MIDL_IWinTypes_0009),
            "::",
            stringify!(hInproc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RemotableHandle___MIDL_IWinTypes_0009>())).hRemote as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RemotableHandle___MIDL_IWinTypes_0009),
            "::",
            stringify!(hRemote)
        )
    );
}
#[test]
fn bindgen_test_layout__RemotableHandle() {
    assert_eq!(
        ::std::mem::size_of::<_RemotableHandle>(),
        8usize,
        concat!("Size of: ", stringify!(_RemotableHandle))
    );
    assert_eq!(
        ::std::mem::align_of::<_RemotableHandle>(),
        4usize,
        concat!("Alignment of ", stringify!(_RemotableHandle))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RemotableHandle>())).fContext as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RemotableHandle),
            "::",
            stringify!(fContext)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_RemotableHandle>())).u as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_RemotableHandle),
            "::",
            stringify!(u)
        )
    );
}
pub type RemotableHandle = _RemotableHandle;
pub type wireHWND = *mut RemotableHandle;
pub type wireHMENU = *mut RemotableHandle;
pub type wireHACCEL = *mut RemotableHandle;
pub type wireHBRUSH = *mut RemotableHandle;
pub type wireHFONT = *mut RemotableHandle;
pub type wireHDC = *mut RemotableHandle;
pub type wireHICON = *mut RemotableHandle;
pub type wireHRGN = *mut RemotableHandle;
pub type wireHMONITOR = *mut RemotableHandle;
pub type wireHBITMAP = *mut userHBITMAP;
pub type wireHPALETTE = *mut userHPALETTE;
pub type wireHENHMETAFILE = *mut userHENHMETAFILE;
pub type wireHMETAFILE = *mut userHMETAFILE;
pub type wireHMETAFILEPICT = *mut userHMETAFILEPICT;
pub type HMETAFILEPICT = *mut ::std::os::raw::c_void;
extern "C" {
    pub static mut IWinTypes_v0_1_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut IWinTypes_v0_1_s_ifspec: RPC_IF_HANDLE;
}
pub type DATE = f64;
#[repr(C)]
#[derive(Copy, Clone)]
pub union tagCY {
    pub __bindgen_anon_1: tagCY__bindgen_ty_1,
    pub int64: LONGLONG,
    _bindgen_union_align: u64,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCY__bindgen_ty_1 {
    pub Lo: ULONG,
    pub Hi: LONG,
}
#[test]
fn bindgen_test_layout_tagCY__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagCY__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(tagCY__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCY__bindgen_ty_1>(),
        4usize,
        concat!("Alignment of ", stringify!(tagCY__bindgen_ty_1))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCY__bindgen_ty_1>())).Lo as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCY__bindgen_ty_1),
            "::",
            stringify!(Lo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCY__bindgen_ty_1>())).Hi as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCY__bindgen_ty_1),
            "::",
            stringify!(Hi)
        )
    );
}
#[test]
fn bindgen_test_layout_tagCY() {
    assert_eq!(
        ::std::mem::size_of::<tagCY>(),
        8usize,
        concat!("Size of: ", stringify!(tagCY))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCY>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCY>())).int64 as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCY),
            "::",
            stringify!(int64)
        )
    );
}
pub type CY = tagCY;
pub type LPCY = *mut CY;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagDEC {
    pub wReserved: USHORT,
    pub __bindgen_anon_1: tagDEC__bindgen_ty_1,
    pub Hi32: ULONG,
    pub __bindgen_anon_2: tagDEC__bindgen_ty_2,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tagDEC__bindgen_ty_1 {
    pub __bindgen_anon_1: tagDEC__bindgen_ty_1__bindgen_ty_1,
    pub signscale: USHORT,
    _bindgen_union_align: u16,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagDEC__bindgen_ty_1__bindgen_ty_1 {
    pub scale: BYTE,
    pub sign: BYTE,
}
#[test]
fn bindgen_test_layout_tagDEC__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagDEC__bindgen_ty_1__bindgen_ty_1>(),
        2usize,
        concat!("Size of: ", stringify!(tagDEC__bindgen_ty_1__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tagDEC__bindgen_ty_1__bindgen_ty_1>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(tagDEC__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagDEC__bindgen_ty_1__bindgen_ty_1>())).scale as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDEC__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(scale)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagDEC__bindgen_ty_1__bindgen_ty_1>())).sign as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDEC__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(sign)
        )
    );
}
#[test]
fn bindgen_test_layout_tagDEC__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagDEC__bindgen_ty_1>(),
        2usize,
        concat!("Size of: ", stringify!(tagDEC__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tagDEC__bindgen_ty_1>(),
        2usize,
        concat!("Alignment of ", stringify!(tagDEC__bindgen_ty_1))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDEC__bindgen_ty_1>())).signscale as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDEC__bindgen_ty_1),
            "::",
            stringify!(signscale)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tagDEC__bindgen_ty_2 {
    pub __bindgen_anon_1: tagDEC__bindgen_ty_2__bindgen_ty_1,
    pub Lo64: ULONGLONG,
    _bindgen_union_align: u64,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagDEC__bindgen_ty_2__bindgen_ty_1 {
    pub Lo32: ULONG,
    pub Mid32: ULONG,
}
#[test]
fn bindgen_test_layout_tagDEC__bindgen_ty_2__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagDEC__bindgen_ty_2__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(tagDEC__bindgen_ty_2__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tagDEC__bindgen_ty_2__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tagDEC__bindgen_ty_2__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagDEC__bindgen_ty_2__bindgen_ty_1>())).Lo32 as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDEC__bindgen_ty_2__bindgen_ty_1),
            "::",
            stringify!(Lo32)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagDEC__bindgen_ty_2__bindgen_ty_1>())).Mid32 as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDEC__bindgen_ty_2__bindgen_ty_1),
            "::",
            stringify!(Mid32)
        )
    );
}
#[test]
fn bindgen_test_layout_tagDEC__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<tagDEC__bindgen_ty_2>(),
        8usize,
        concat!("Size of: ", stringify!(tagDEC__bindgen_ty_2))
    );
    assert_eq!(
        ::std::mem::align_of::<tagDEC__bindgen_ty_2>(),
        8usize,
        concat!("Alignment of ", stringify!(tagDEC__bindgen_ty_2))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDEC__bindgen_ty_2>())).Lo64 as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDEC__bindgen_ty_2),
            "::",
            stringify!(Lo64)
        )
    );
}
#[test]
fn bindgen_test_layout_tagDEC() {
    assert_eq!(
        ::std::mem::size_of::<tagDEC>(),
        16usize,
        concat!("Size of: ", stringify!(tagDEC))
    );
    assert_eq!(
        ::std::mem::align_of::<tagDEC>(),
        8usize,
        concat!("Alignment of ", stringify!(tagDEC))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDEC>())).wReserved as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDEC),
            "::",
            stringify!(wReserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDEC>())).Hi32 as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDEC),
            "::",
            stringify!(Hi32)
        )
    );
}
pub type DECIMAL = tagDEC;
pub type LPDECIMAL = *mut DECIMAL;
pub type wireBSTR = *mut FLAGGED_WORD_BLOB;
pub type BSTR = *mut OLECHAR;
pub type LPBSTR = *mut BSTR;
pub type VARIANT_BOOL = ::std::os::raw::c_short;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagBSTRBLOB {
    pub cbSize: ULONG,
    pub pData: *mut BYTE,
}
#[test]
fn bindgen_test_layout_tagBSTRBLOB() {
    assert_eq!(
        ::std::mem::size_of::<tagBSTRBLOB>(),
        16usize,
        concat!("Size of: ", stringify!(tagBSTRBLOB))
    );
    assert_eq!(
        ::std::mem::align_of::<tagBSTRBLOB>(),
        8usize,
        concat!("Alignment of ", stringify!(tagBSTRBLOB))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBSTRBLOB>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBSTRBLOB),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBSTRBLOB>())).pData as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBSTRBLOB),
            "::",
            stringify!(pData)
        )
    );
}
pub type BSTRBLOB = tagBSTRBLOB;
pub type LPBSTRBLOB = *mut tagBSTRBLOB;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCLIPDATA {
    pub cbSize: ULONG,
    pub ulClipFmt: LONG,
    pub pClipData: *mut BYTE,
}
#[test]
fn bindgen_test_layout_tagCLIPDATA() {
    assert_eq!(
        ::std::mem::size_of::<tagCLIPDATA>(),
        16usize,
        concat!("Size of: ", stringify!(tagCLIPDATA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCLIPDATA>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCLIPDATA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCLIPDATA>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCLIPDATA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCLIPDATA>())).ulClipFmt as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCLIPDATA),
            "::",
            stringify!(ulClipFmt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCLIPDATA>())).pClipData as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCLIPDATA),
            "::",
            stringify!(pClipData)
        )
    );
}
pub type CLIPDATA = tagCLIPDATA;
pub type VARTYPE = ::std::os::raw::c_ushort;
pub const VARENUM_VT_EMPTY: VARENUM = 0;
pub const VARENUM_VT_NULL: VARENUM = 1;
pub const VARENUM_VT_I2: VARENUM = 2;
pub const VARENUM_VT_I4: VARENUM = 3;
pub const VARENUM_VT_R4: VARENUM = 4;
pub const VARENUM_VT_R8: VARENUM = 5;
pub const VARENUM_VT_CY: VARENUM = 6;
pub const VARENUM_VT_DATE: VARENUM = 7;
pub const VARENUM_VT_BSTR: VARENUM = 8;
pub const VARENUM_VT_DISPATCH: VARENUM = 9;
pub const VARENUM_VT_ERROR: VARENUM = 10;
pub const VARENUM_VT_BOOL: VARENUM = 11;
pub const VARENUM_VT_VARIANT: VARENUM = 12;
pub const VARENUM_VT_UNKNOWN: VARENUM = 13;
pub const VARENUM_VT_DECIMAL: VARENUM = 14;
pub const VARENUM_VT_I1: VARENUM = 16;
pub const VARENUM_VT_UI1: VARENUM = 17;
pub const VARENUM_VT_UI2: VARENUM = 18;
pub const VARENUM_VT_UI4: VARENUM = 19;
pub const VARENUM_VT_I8: VARENUM = 20;
pub const VARENUM_VT_UI8: VARENUM = 21;
pub const VARENUM_VT_INT: VARENUM = 22;
pub const VARENUM_VT_UINT: VARENUM = 23;
pub const VARENUM_VT_VOID: VARENUM = 24;
pub const VARENUM_VT_HRESULT: VARENUM = 25;
pub const VARENUM_VT_PTR: VARENUM = 26;
pub const VARENUM_VT_SAFEARRAY: VARENUM = 27;
pub const VARENUM_VT_CARRAY: VARENUM = 28;
pub const VARENUM_VT_USERDEFINED: VARENUM = 29;
pub const VARENUM_VT_LPSTR: VARENUM = 30;
pub const VARENUM_VT_LPWSTR: VARENUM = 31;
pub const VARENUM_VT_RECORD: VARENUM = 36;
pub const VARENUM_VT_INT_PTR: VARENUM = 37;
pub const VARENUM_VT_UINT_PTR: VARENUM = 38;
pub const VARENUM_VT_FILETIME: VARENUM = 64;
pub const VARENUM_VT_BLOB: VARENUM = 65;
pub const VARENUM_VT_STREAM: VARENUM = 66;
pub const VARENUM_VT_STORAGE: VARENUM = 67;
pub const VARENUM_VT_STREAMED_OBJECT: VARENUM = 68;
pub const VARENUM_VT_STORED_OBJECT: VARENUM = 69;
pub const VARENUM_VT_BLOB_OBJECT: VARENUM = 70;
pub const VARENUM_VT_CF: VARENUM = 71;
pub const VARENUM_VT_CLSID: VARENUM = 72;
pub const VARENUM_VT_VERSIONED_STREAM: VARENUM = 73;
pub const VARENUM_VT_BSTR_BLOB: VARENUM = 4095;
pub const VARENUM_VT_VECTOR: VARENUM = 4096;
pub const VARENUM_VT_ARRAY: VARENUM = 8192;
pub const VARENUM_VT_BYREF: VARENUM = 16384;
pub const VARENUM_VT_RESERVED: VARENUM = 32768;
pub const VARENUM_VT_ILLEGAL: VARENUM = 65535;
pub const VARENUM_VT_ILLEGALMASKED: VARENUM = 4095;
pub const VARENUM_VT_TYPEMASK: VARENUM = 4095;
pub type VARENUM = ::std::os::raw::c_int;
pub type PROPID = ULONG;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _tagpropertykey {
    pub fmtid: GUID,
    pub pid: DWORD,
}
#[test]
fn bindgen_test_layout__tagpropertykey() {
    assert_eq!(
        ::std::mem::size_of::<_tagpropertykey>(),
        20usize,
        concat!("Size of: ", stringify!(_tagpropertykey))
    );
    assert_eq!(
        ::std::mem::align_of::<_tagpropertykey>(),
        4usize,
        concat!("Alignment of ", stringify!(_tagpropertykey))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagpropertykey>())).fmtid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagpropertykey),
            "::",
            stringify!(fmtid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagpropertykey>())).pid as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagpropertykey),
            "::",
            stringify!(pid)
        )
    );
}
pub type PROPERTYKEY = _tagpropertykey;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCSPLATFORM {
    pub dwPlatformId: DWORD,
    pub dwVersionHi: DWORD,
    pub dwVersionLo: DWORD,
    pub dwProcessorArch: DWORD,
}
#[test]
fn bindgen_test_layout_tagCSPLATFORM() {
    assert_eq!(
        ::std::mem::size_of::<tagCSPLATFORM>(),
        16usize,
        concat!("Size of: ", stringify!(tagCSPLATFORM))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCSPLATFORM>(),
        4usize,
        concat!("Alignment of ", stringify!(tagCSPLATFORM))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCSPLATFORM>())).dwPlatformId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCSPLATFORM),
            "::",
            stringify!(dwPlatformId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCSPLATFORM>())).dwVersionHi as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCSPLATFORM),
            "::",
            stringify!(dwVersionHi)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCSPLATFORM>())).dwVersionLo as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCSPLATFORM),
            "::",
            stringify!(dwVersionLo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCSPLATFORM>())).dwProcessorArch as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCSPLATFORM),
            "::",
            stringify!(dwProcessorArch)
        )
    );
}
pub type CSPLATFORM = tagCSPLATFORM;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagQUERYCONTEXT {
    pub dwContext: DWORD,
    pub Platform: CSPLATFORM,
    pub Locale: LCID,
    pub dwVersionHi: DWORD,
    pub dwVersionLo: DWORD,
}
#[test]
fn bindgen_test_layout_tagQUERYCONTEXT() {
    assert_eq!(
        ::std::mem::size_of::<tagQUERYCONTEXT>(),
        32usize,
        concat!("Size of: ", stringify!(tagQUERYCONTEXT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagQUERYCONTEXT>(),
        4usize,
        concat!("Alignment of ", stringify!(tagQUERYCONTEXT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagQUERYCONTEXT>())).dwContext as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagQUERYCONTEXT),
            "::",
            stringify!(dwContext)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagQUERYCONTEXT>())).Platform as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagQUERYCONTEXT),
            "::",
            stringify!(Platform)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagQUERYCONTEXT>())).Locale as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagQUERYCONTEXT),
            "::",
            stringify!(Locale)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagQUERYCONTEXT>())).dwVersionHi as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagQUERYCONTEXT),
            "::",
            stringify!(dwVersionHi)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagQUERYCONTEXT>())).dwVersionLo as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagQUERYCONTEXT),
            "::",
            stringify!(dwVersionLo)
        )
    );
}
pub type QUERYCONTEXT = tagQUERYCONTEXT;
pub const tagTYSPEC_TYSPEC_CLSID: tagTYSPEC = 0;
pub const tagTYSPEC_TYSPEC_FILEEXT: tagTYSPEC = 1;
pub const tagTYSPEC_TYSPEC_MIMETYPE: tagTYSPEC = 2;
pub const tagTYSPEC_TYSPEC_FILENAME: tagTYSPEC = 3;
pub const tagTYSPEC_TYSPEC_PROGID: tagTYSPEC = 4;
pub const tagTYSPEC_TYSPEC_PACKAGENAME: tagTYSPEC = 5;
pub const tagTYSPEC_TYSPEC_OBJECTID: tagTYSPEC = 6;
pub type tagTYSPEC = ::std::os::raw::c_int;
pub use self::tagTYSPEC as TYSPEC;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct __MIDL___MIDL_itf_wtypes_0000_0001_0001 {
    pub tyspec: DWORD,
    pub tagged_union:
        __MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union __MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005 { pub clsid : CLSID , pub pFileExt : LPOLESTR , pub pMimeType : LPOLESTR , pub pProgId : LPOLESTR , pub pFileName : LPOLESTR , pub ByName : __MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005__bindgen_ty_1 , pub ByObjectId : __MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005__bindgen_ty_2 , _bindgen_union_align : [u64 ; 4usize] , }
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005__bindgen_ty_1
{
    pub pPackageName: LPOLESTR,
    pub PolicyId: GUID,
}
#[test]
fn bindgen_test_layout___MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005__bindgen_ty_1(
) {
    assert_eq ! (:: std :: mem :: size_of :: < __MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005__bindgen_ty_1 > () , 24usize , concat ! ("Size of: " , stringify ! (__MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005__bindgen_ty_1)));
    assert_eq ! (:: std :: mem :: align_of :: < __MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005__bindgen_ty_1 > () , 8usize , concat ! ("Alignment of " , stringify ! (__MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005__bindgen_ty_1)));
    assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < __MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005__bindgen_ty_1 > ())) . pPackageName as * const _ as usize } , 0usize , concat ! ("Offset of field: " , stringify ! (__MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005__bindgen_ty_1) , "::" , stringify ! (pPackageName)));
    assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < __MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005__bindgen_ty_1 > ())) . PolicyId as * const _ as usize } , 8usize , concat ! ("Offset of field: " , stringify ! (__MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005__bindgen_ty_1) , "::" , stringify ! (PolicyId)));
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005__bindgen_ty_2
{
    pub ObjectId: GUID,
    pub PolicyId: GUID,
}
#[test]
fn bindgen_test_layout___MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005__bindgen_ty_2(
) {
    assert_eq ! (:: std :: mem :: size_of :: < __MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005__bindgen_ty_2 > () , 32usize , concat ! ("Size of: " , stringify ! (__MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005__bindgen_ty_2)));
    assert_eq ! (:: std :: mem :: align_of :: < __MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005__bindgen_ty_2 > () , 4usize , concat ! ("Alignment of " , stringify ! (__MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005__bindgen_ty_2)));
    assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < __MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005__bindgen_ty_2 > ())) . ObjectId as * const _ as usize } , 0usize , concat ! ("Offset of field: " , stringify ! (__MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005__bindgen_ty_2) , "::" , stringify ! (ObjectId)));
    assert_eq ! (unsafe { & (* (:: std :: ptr :: null :: < __MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005__bindgen_ty_2 > ())) . PolicyId as * const _ as usize } , 16usize , concat ! ("Offset of field: " , stringify ! (__MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005__bindgen_ty_2) , "::" , stringify ! (PolicyId)));
}
#[test]
fn bindgen_test_layout___MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005(
) {
    assert_eq!(
        ::std::mem::size_of::<
            __MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005,
        >(),
        32usize,
        concat!(
            "Size of: ",
            stringify!(
                __MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005
            )
        )
    );
    assert_eq!(
        ::std::mem::align_of::<
            __MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005,
        >(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(
                __MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005
            )
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<
                __MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005,
            >()))
            .clsid as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(
                __MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005
            ),
            "::",
            stringify!(clsid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<
                __MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005,
            >()))
            .pFileExt as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(
                __MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005
            ),
            "::",
            stringify!(pFileExt)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<
                __MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005,
            >()))
            .pMimeType as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(
                __MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005
            ),
            "::",
            stringify!(pMimeType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<
                __MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005,
            >()))
            .pProgId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(
                __MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005
            ),
            "::",
            stringify!(pProgId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<
                __MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005,
            >()))
            .pFileName as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(
                __MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005
            ),
            "::",
            stringify!(pFileName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<
                __MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005,
            >()))
            .ByName as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(
                __MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005
            ),
            "::",
            stringify!(ByName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<
                __MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005,
            >()))
            .ByObjectId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(
                __MIDL___MIDL_itf_wtypes_0000_0001_0001___MIDL___MIDL_itf_wtypes_0000_0001_0005
            ),
            "::",
            stringify!(ByObjectId)
        )
    );
}
#[test]
fn bindgen_test_layout___MIDL___MIDL_itf_wtypes_0000_0001_0001() {
    assert_eq!(
        ::std::mem::size_of::<__MIDL___MIDL_itf_wtypes_0000_0001_0001>(),
        40usize,
        concat!(
            "Size of: ",
            stringify!(__MIDL___MIDL_itf_wtypes_0000_0001_0001)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<__MIDL___MIDL_itf_wtypes_0000_0001_0001>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(__MIDL___MIDL_itf_wtypes_0000_0001_0001)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__MIDL___MIDL_itf_wtypes_0000_0001_0001>())).tyspec as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__MIDL___MIDL_itf_wtypes_0000_0001_0001),
            "::",
            stringify!(tyspec)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<__MIDL___MIDL_itf_wtypes_0000_0001_0001>())).tagged_union
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(__MIDL___MIDL_itf_wtypes_0000_0001_0001),
            "::",
            stringify!(tagged_union)
        )
    );
}
pub type uCLSSPEC = __MIDL___MIDL_itf_wtypes_0000_0001_0001;
extern "C" {
    pub static mut __MIDL_itf_wtypes_0000_0001_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_wtypes_0000_0001_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static GUID_DEVINTERFACE_DISK: GUID;
}
extern "C" {
    pub static GUID_DEVINTERFACE_CDROM: GUID;
}
extern "C" {
    pub static GUID_DEVINTERFACE_PARTITION: GUID;
}
extern "C" {
    pub static GUID_DEVINTERFACE_TAPE: GUID;
}
extern "C" {
    pub static GUID_DEVINTERFACE_WRITEONCEDISK: GUID;
}
extern "C" {
    pub static GUID_DEVINTERFACE_VOLUME: GUID;
}
extern "C" {
    pub static GUID_DEVINTERFACE_MEDIUMCHANGER: GUID;
}
extern "C" {
    pub static GUID_DEVINTERFACE_FLOPPY: GUID;
}
extern "C" {
    pub static GUID_DEVINTERFACE_CDCHANGER: GUID;
}
extern "C" {
    pub static GUID_DEVINTERFACE_STORAGEPORT: GUID;
}
extern "C" {
    pub static GUID_DEVINTERFACE_VMLUN: GUID;
}
extern "C" {
    pub static GUID_DEVINTERFACE_SES: GUID;
}
extern "C" {
    pub static GUID_DEVINTERFACE_SERVICE_VOLUME: GUID;
}
extern "C" {
    pub static GUID_DEVINTERFACE_HIDDEN_VOLUME: GUID;
}
extern "C" {
    pub static GUID_DEVINTERFACE_UNIFIED_ACCESS_RPMB: GUID;
}
extern "C" {
    pub static GUID_DEVINTERFACE_SCM_PHYSICAL_DEVICE: GUID;
}
extern "C" {
    pub static GUID_SCM_PD_HEALTH_NOTIFICATION: GUID;
}
extern "C" {
    pub static GUID_SCM_PD_PASSTHROUGH_INVDIMM: GUID;
}
extern "C" {
    pub static GUID_DEVINTERFACE_COMPORT: GUID;
}
extern "C" {
    pub static GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR: GUID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_HOTPLUG_INFO {
    pub Size: DWORD,
    pub MediaRemovable: BOOLEAN,
    pub MediaHotplug: BOOLEAN,
    pub DeviceHotplug: BOOLEAN,
    pub WriteCacheEnableOverride: BOOLEAN,
}
#[test]
fn bindgen_test_layout__STORAGE_HOTPLUG_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_HOTPLUG_INFO>(),
        8usize,
        concat!("Size of: ", stringify!(_STORAGE_HOTPLUG_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_HOTPLUG_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_HOTPLUG_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_HOTPLUG_INFO>())).Size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HOTPLUG_INFO),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HOTPLUG_INFO>())).MediaRemovable as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HOTPLUG_INFO),
            "::",
            stringify!(MediaRemovable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HOTPLUG_INFO>())).MediaHotplug as *const _ as usize
        },
        5usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HOTPLUG_INFO),
            "::",
            stringify!(MediaHotplug)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HOTPLUG_INFO>())).DeviceHotplug as *const _ as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HOTPLUG_INFO),
            "::",
            stringify!(DeviceHotplug)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HOTPLUG_INFO>())).WriteCacheEnableOverride as *const _
                as usize
        },
        7usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HOTPLUG_INFO),
            "::",
            stringify!(WriteCacheEnableOverride)
        )
    );
}
pub type STORAGE_HOTPLUG_INFO = _STORAGE_HOTPLUG_INFO;
pub type PSTORAGE_HOTPLUG_INFO = *mut _STORAGE_HOTPLUG_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_DEVICE_NUMBER {
    pub DeviceType: DWORD,
    pub DeviceNumber: DWORD,
    pub PartitionNumber: DWORD,
}
#[test]
fn bindgen_test_layout__STORAGE_DEVICE_NUMBER() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_DEVICE_NUMBER>(),
        12usize,
        concat!("Size of: ", stringify!(_STORAGE_DEVICE_NUMBER))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_DEVICE_NUMBER>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_DEVICE_NUMBER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_NUMBER>())).DeviceType as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_NUMBER),
            "::",
            stringify!(DeviceType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_NUMBER>())).DeviceNumber as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_NUMBER),
            "::",
            stringify!(DeviceNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_NUMBER>())).PartitionNumber as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_NUMBER),
            "::",
            stringify!(PartitionNumber)
        )
    );
}
pub type STORAGE_DEVICE_NUMBER = _STORAGE_DEVICE_NUMBER;
pub type PSTORAGE_DEVICE_NUMBER = *mut _STORAGE_DEVICE_NUMBER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_DEVICE_NUMBERS {
    pub Version: DWORD,
    pub Size: DWORD,
    pub NumberOfDevices: DWORD,
    pub Devices: [STORAGE_DEVICE_NUMBER; 1usize],
}
#[test]
fn bindgen_test_layout__STORAGE_DEVICE_NUMBERS() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_DEVICE_NUMBERS>(),
        24usize,
        concat!("Size of: ", stringify!(_STORAGE_DEVICE_NUMBERS))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_DEVICE_NUMBERS>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_DEVICE_NUMBERS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_DEVICE_NUMBERS>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_NUMBERS),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_DEVICE_NUMBERS>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_NUMBERS),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_NUMBERS>())).NumberOfDevices as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_NUMBERS),
            "::",
            stringify!(NumberOfDevices)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_DEVICE_NUMBERS>())).Devices as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_NUMBERS),
            "::",
            stringify!(Devices)
        )
    );
}
pub type STORAGE_DEVICE_NUMBERS = _STORAGE_DEVICE_NUMBERS;
pub type PSTORAGE_DEVICE_NUMBERS = *mut _STORAGE_DEVICE_NUMBERS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_DEVICE_NUMBER_EX {
    pub Version: DWORD,
    pub Size: DWORD,
    pub Flags: DWORD,
    pub DeviceType: DWORD,
    pub DeviceNumber: DWORD,
    pub DeviceGuid: GUID,
    pub PartitionNumber: DWORD,
}
#[test]
fn bindgen_test_layout__STORAGE_DEVICE_NUMBER_EX() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_DEVICE_NUMBER_EX>(),
        40usize,
        concat!("Size of: ", stringify!(_STORAGE_DEVICE_NUMBER_EX))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_DEVICE_NUMBER_EX>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_DEVICE_NUMBER_EX))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_NUMBER_EX>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_NUMBER_EX),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_DEVICE_NUMBER_EX>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_NUMBER_EX),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_DEVICE_NUMBER_EX>())).Flags as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_NUMBER_EX),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_NUMBER_EX>())).DeviceType as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_NUMBER_EX),
            "::",
            stringify!(DeviceType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_NUMBER_EX>())).DeviceNumber as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_NUMBER_EX),
            "::",
            stringify!(DeviceNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_NUMBER_EX>())).DeviceGuid as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_NUMBER_EX),
            "::",
            stringify!(DeviceGuid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_NUMBER_EX>())).PartitionNumber as *const _
                as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_NUMBER_EX),
            "::",
            stringify!(PartitionNumber)
        )
    );
}
pub type STORAGE_DEVICE_NUMBER_EX = _STORAGE_DEVICE_NUMBER_EX;
pub type PSTORAGE_DEVICE_NUMBER_EX = *mut _STORAGE_DEVICE_NUMBER_EX;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_BUS_RESET_REQUEST {
    pub PathId: BYTE,
}
#[test]
fn bindgen_test_layout__STORAGE_BUS_RESET_REQUEST() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_BUS_RESET_REQUEST>(),
        1usize,
        concat!("Size of: ", stringify!(_STORAGE_BUS_RESET_REQUEST))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_BUS_RESET_REQUEST>(),
        1usize,
        concat!("Alignment of ", stringify!(_STORAGE_BUS_RESET_REQUEST))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_BUS_RESET_REQUEST>())).PathId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_BUS_RESET_REQUEST),
            "::",
            stringify!(PathId)
        )
    );
}
pub type STORAGE_BUS_RESET_REQUEST = _STORAGE_BUS_RESET_REQUEST;
pub type PSTORAGE_BUS_RESET_REQUEST = *mut _STORAGE_BUS_RESET_REQUEST;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct STORAGE_BREAK_RESERVATION_REQUEST {
    pub Length: DWORD,
    pub _unused: BYTE,
    pub PathId: BYTE,
    pub TargetId: BYTE,
    pub Lun: BYTE,
}
#[test]
fn bindgen_test_layout_STORAGE_BREAK_RESERVATION_REQUEST() {
    assert_eq!(
        ::std::mem::size_of::<STORAGE_BREAK_RESERVATION_REQUEST>(),
        8usize,
        concat!("Size of: ", stringify!(STORAGE_BREAK_RESERVATION_REQUEST))
    );
    assert_eq!(
        ::std::mem::align_of::<STORAGE_BREAK_RESERVATION_REQUEST>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(STORAGE_BREAK_RESERVATION_REQUEST)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<STORAGE_BREAK_RESERVATION_REQUEST>())).Length as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(STORAGE_BREAK_RESERVATION_REQUEST),
            "::",
            stringify!(Length)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<STORAGE_BREAK_RESERVATION_REQUEST>()))._unused as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(STORAGE_BREAK_RESERVATION_REQUEST),
            "::",
            stringify!(_unused)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<STORAGE_BREAK_RESERVATION_REQUEST>())).PathId as *const _
                as usize
        },
        5usize,
        concat!(
            "Offset of field: ",
            stringify!(STORAGE_BREAK_RESERVATION_REQUEST),
            "::",
            stringify!(PathId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<STORAGE_BREAK_RESERVATION_REQUEST>())).TargetId as *const _
                as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(STORAGE_BREAK_RESERVATION_REQUEST),
            "::",
            stringify!(TargetId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<STORAGE_BREAK_RESERVATION_REQUEST>())).Lun as *const _ as usize
        },
        7usize,
        concat!(
            "Offset of field: ",
            stringify!(STORAGE_BREAK_RESERVATION_REQUEST),
            "::",
            stringify!(Lun)
        )
    );
}
pub type PSTORAGE_BREAK_RESERVATION_REQUEST = *mut STORAGE_BREAK_RESERVATION_REQUEST;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PREVENT_MEDIA_REMOVAL {
    pub PreventMediaRemoval: BOOLEAN,
}
#[test]
fn bindgen_test_layout__PREVENT_MEDIA_REMOVAL() {
    assert_eq!(
        ::std::mem::size_of::<_PREVENT_MEDIA_REMOVAL>(),
        1usize,
        concat!("Size of: ", stringify!(_PREVENT_MEDIA_REMOVAL))
    );
    assert_eq!(
        ::std::mem::align_of::<_PREVENT_MEDIA_REMOVAL>(),
        1usize,
        concat!("Alignment of ", stringify!(_PREVENT_MEDIA_REMOVAL))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PREVENT_MEDIA_REMOVAL>())).PreventMediaRemoval as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PREVENT_MEDIA_REMOVAL),
            "::",
            stringify!(PreventMediaRemoval)
        )
    );
}
pub type PREVENT_MEDIA_REMOVAL = _PREVENT_MEDIA_REMOVAL;
pub type PPREVENT_MEDIA_REMOVAL = *mut _PREVENT_MEDIA_REMOVAL;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CLASS_MEDIA_CHANGE_CONTEXT {
    pub MediaChangeCount: DWORD,
    pub NewState: DWORD,
}
#[test]
fn bindgen_test_layout__CLASS_MEDIA_CHANGE_CONTEXT() {
    assert_eq!(
        ::std::mem::size_of::<_CLASS_MEDIA_CHANGE_CONTEXT>(),
        8usize,
        concat!("Size of: ", stringify!(_CLASS_MEDIA_CHANGE_CONTEXT))
    );
    assert_eq!(
        ::std::mem::align_of::<_CLASS_MEDIA_CHANGE_CONTEXT>(),
        4usize,
        concat!("Alignment of ", stringify!(_CLASS_MEDIA_CHANGE_CONTEXT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLASS_MEDIA_CHANGE_CONTEXT>())).MediaChangeCount as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLASS_MEDIA_CHANGE_CONTEXT),
            "::",
            stringify!(MediaChangeCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CLASS_MEDIA_CHANGE_CONTEXT>())).NewState as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLASS_MEDIA_CHANGE_CONTEXT),
            "::",
            stringify!(NewState)
        )
    );
}
pub type CLASS_MEDIA_CHANGE_CONTEXT = _CLASS_MEDIA_CHANGE_CONTEXT;
pub type PCLASS_MEDIA_CHANGE_CONTEXT = *mut _CLASS_MEDIA_CHANGE_CONTEXT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _TAPE_STATISTICS {
    pub Version: DWORD,
    pub Flags: DWORD,
    pub RecoveredWrites: LARGE_INTEGER,
    pub UnrecoveredWrites: LARGE_INTEGER,
    pub RecoveredReads: LARGE_INTEGER,
    pub UnrecoveredReads: LARGE_INTEGER,
    pub CompressionRatioReads: BYTE,
    pub CompressionRatioWrites: BYTE,
}
#[test]
fn bindgen_test_layout__TAPE_STATISTICS() {
    assert_eq!(
        ::std::mem::size_of::<_TAPE_STATISTICS>(),
        48usize,
        concat!("Size of: ", stringify!(_TAPE_STATISTICS))
    );
    assert_eq!(
        ::std::mem::align_of::<_TAPE_STATISTICS>(),
        8usize,
        concat!("Alignment of ", stringify!(_TAPE_STATISTICS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TAPE_STATISTICS>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_STATISTICS),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TAPE_STATISTICS>())).Flags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_STATISTICS),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TAPE_STATISTICS>())).RecoveredWrites as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_STATISTICS),
            "::",
            stringify!(RecoveredWrites)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TAPE_STATISTICS>())).UnrecoveredWrites as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_STATISTICS),
            "::",
            stringify!(UnrecoveredWrites)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TAPE_STATISTICS>())).RecoveredReads as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_STATISTICS),
            "::",
            stringify!(RecoveredReads)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TAPE_STATISTICS>())).UnrecoveredReads as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_STATISTICS),
            "::",
            stringify!(UnrecoveredReads)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TAPE_STATISTICS>())).CompressionRatioReads as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_STATISTICS),
            "::",
            stringify!(CompressionRatioReads)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TAPE_STATISTICS>())).CompressionRatioWrites as *const _ as usize
        },
        41usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_STATISTICS),
            "::",
            stringify!(CompressionRatioWrites)
        )
    );
}
pub type TAPE_STATISTICS = _TAPE_STATISTICS;
pub type PTAPE_STATISTICS = *mut _TAPE_STATISTICS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TAPE_GET_STATISTICS {
    pub Operation: DWORD,
}
#[test]
fn bindgen_test_layout__TAPE_GET_STATISTICS() {
    assert_eq!(
        ::std::mem::size_of::<_TAPE_GET_STATISTICS>(),
        4usize,
        concat!("Size of: ", stringify!(_TAPE_GET_STATISTICS))
    );
    assert_eq!(
        ::std::mem::align_of::<_TAPE_GET_STATISTICS>(),
        4usize,
        concat!("Alignment of ", stringify!(_TAPE_GET_STATISTICS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TAPE_GET_STATISTICS>())).Operation as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TAPE_GET_STATISTICS),
            "::",
            stringify!(Operation)
        )
    );
}
pub type TAPE_GET_STATISTICS = _TAPE_GET_STATISTICS;
pub type PTAPE_GET_STATISTICS = *mut _TAPE_GET_STATISTICS;
pub const _STORAGE_MEDIA_TYPE_DDS_4mm: _STORAGE_MEDIA_TYPE = 32;
pub const _STORAGE_MEDIA_TYPE_MiniQic: _STORAGE_MEDIA_TYPE = 33;
pub const _STORAGE_MEDIA_TYPE_Travan: _STORAGE_MEDIA_TYPE = 34;
pub const _STORAGE_MEDIA_TYPE_QIC: _STORAGE_MEDIA_TYPE = 35;
pub const _STORAGE_MEDIA_TYPE_MP_8mm: _STORAGE_MEDIA_TYPE = 36;
pub const _STORAGE_MEDIA_TYPE_AME_8mm: _STORAGE_MEDIA_TYPE = 37;
pub const _STORAGE_MEDIA_TYPE_AIT1_8mm: _STORAGE_MEDIA_TYPE = 38;
pub const _STORAGE_MEDIA_TYPE_DLT: _STORAGE_MEDIA_TYPE = 39;
pub const _STORAGE_MEDIA_TYPE_NCTP: _STORAGE_MEDIA_TYPE = 40;
pub const _STORAGE_MEDIA_TYPE_IBM_3480: _STORAGE_MEDIA_TYPE = 41;
pub const _STORAGE_MEDIA_TYPE_IBM_3490E: _STORAGE_MEDIA_TYPE = 42;
pub const _STORAGE_MEDIA_TYPE_IBM_Magstar_3590: _STORAGE_MEDIA_TYPE = 43;
pub const _STORAGE_MEDIA_TYPE_IBM_Magstar_MP: _STORAGE_MEDIA_TYPE = 44;
pub const _STORAGE_MEDIA_TYPE_STK_DATA_D3: _STORAGE_MEDIA_TYPE = 45;
pub const _STORAGE_MEDIA_TYPE_SONY_DTF: _STORAGE_MEDIA_TYPE = 46;
pub const _STORAGE_MEDIA_TYPE_DV_6mm: _STORAGE_MEDIA_TYPE = 47;
pub const _STORAGE_MEDIA_TYPE_DMI: _STORAGE_MEDIA_TYPE = 48;
pub const _STORAGE_MEDIA_TYPE_SONY_D2: _STORAGE_MEDIA_TYPE = 49;
pub const _STORAGE_MEDIA_TYPE_CLEANER_CARTRIDGE: _STORAGE_MEDIA_TYPE = 50;
pub const _STORAGE_MEDIA_TYPE_CD_ROM: _STORAGE_MEDIA_TYPE = 51;
pub const _STORAGE_MEDIA_TYPE_CD_R: _STORAGE_MEDIA_TYPE = 52;
pub const _STORAGE_MEDIA_TYPE_CD_RW: _STORAGE_MEDIA_TYPE = 53;
pub const _STORAGE_MEDIA_TYPE_DVD_ROM: _STORAGE_MEDIA_TYPE = 54;
pub const _STORAGE_MEDIA_TYPE_DVD_R: _STORAGE_MEDIA_TYPE = 55;
pub const _STORAGE_MEDIA_TYPE_DVD_RW: _STORAGE_MEDIA_TYPE = 56;
pub const _STORAGE_MEDIA_TYPE_MO_3_RW: _STORAGE_MEDIA_TYPE = 57;
pub const _STORAGE_MEDIA_TYPE_MO_5_WO: _STORAGE_MEDIA_TYPE = 58;
pub const _STORAGE_MEDIA_TYPE_MO_5_RW: _STORAGE_MEDIA_TYPE = 59;
pub const _STORAGE_MEDIA_TYPE_MO_5_LIMDOW: _STORAGE_MEDIA_TYPE = 60;
pub const _STORAGE_MEDIA_TYPE_PC_5_WO: _STORAGE_MEDIA_TYPE = 61;
pub const _STORAGE_MEDIA_TYPE_PC_5_RW: _STORAGE_MEDIA_TYPE = 62;
pub const _STORAGE_MEDIA_TYPE_PD_5_RW: _STORAGE_MEDIA_TYPE = 63;
pub const _STORAGE_MEDIA_TYPE_ABL_5_WO: _STORAGE_MEDIA_TYPE = 64;
pub const _STORAGE_MEDIA_TYPE_PINNACLE_APEX_5_RW: _STORAGE_MEDIA_TYPE = 65;
pub const _STORAGE_MEDIA_TYPE_SONY_12_WO: _STORAGE_MEDIA_TYPE = 66;
pub const _STORAGE_MEDIA_TYPE_PHILIPS_12_WO: _STORAGE_MEDIA_TYPE = 67;
pub const _STORAGE_MEDIA_TYPE_HITACHI_12_WO: _STORAGE_MEDIA_TYPE = 68;
pub const _STORAGE_MEDIA_TYPE_CYGNET_12_WO: _STORAGE_MEDIA_TYPE = 69;
pub const _STORAGE_MEDIA_TYPE_KODAK_14_WO: _STORAGE_MEDIA_TYPE = 70;
pub const _STORAGE_MEDIA_TYPE_MO_NFR_525: _STORAGE_MEDIA_TYPE = 71;
pub const _STORAGE_MEDIA_TYPE_NIKON_12_RW: _STORAGE_MEDIA_TYPE = 72;
pub const _STORAGE_MEDIA_TYPE_IOMEGA_ZIP: _STORAGE_MEDIA_TYPE = 73;
pub const _STORAGE_MEDIA_TYPE_IOMEGA_JAZ: _STORAGE_MEDIA_TYPE = 74;
pub const _STORAGE_MEDIA_TYPE_SYQUEST_EZ135: _STORAGE_MEDIA_TYPE = 75;
pub const _STORAGE_MEDIA_TYPE_SYQUEST_EZFLYER: _STORAGE_MEDIA_TYPE = 76;
pub const _STORAGE_MEDIA_TYPE_SYQUEST_SYJET: _STORAGE_MEDIA_TYPE = 77;
pub const _STORAGE_MEDIA_TYPE_AVATAR_F2: _STORAGE_MEDIA_TYPE = 78;
pub const _STORAGE_MEDIA_TYPE_MP2_8mm: _STORAGE_MEDIA_TYPE = 79;
pub const _STORAGE_MEDIA_TYPE_DST_S: _STORAGE_MEDIA_TYPE = 80;
pub const _STORAGE_MEDIA_TYPE_DST_M: _STORAGE_MEDIA_TYPE = 81;
pub const _STORAGE_MEDIA_TYPE_DST_L: _STORAGE_MEDIA_TYPE = 82;
pub const _STORAGE_MEDIA_TYPE_VXATape_1: _STORAGE_MEDIA_TYPE = 83;
pub const _STORAGE_MEDIA_TYPE_VXATape_2: _STORAGE_MEDIA_TYPE = 84;
pub const _STORAGE_MEDIA_TYPE_STK_9840: _STORAGE_MEDIA_TYPE = 85;
pub const _STORAGE_MEDIA_TYPE_LTO_Ultrium: _STORAGE_MEDIA_TYPE = 86;
pub const _STORAGE_MEDIA_TYPE_LTO_Accelis: _STORAGE_MEDIA_TYPE = 87;
pub const _STORAGE_MEDIA_TYPE_DVD_RAM: _STORAGE_MEDIA_TYPE = 88;
pub const _STORAGE_MEDIA_TYPE_AIT_8mm: _STORAGE_MEDIA_TYPE = 89;
pub const _STORAGE_MEDIA_TYPE_ADR_1: _STORAGE_MEDIA_TYPE = 90;
pub const _STORAGE_MEDIA_TYPE_ADR_2: _STORAGE_MEDIA_TYPE = 91;
pub const _STORAGE_MEDIA_TYPE_STK_9940: _STORAGE_MEDIA_TYPE = 92;
pub const _STORAGE_MEDIA_TYPE_SAIT: _STORAGE_MEDIA_TYPE = 93;
pub const _STORAGE_MEDIA_TYPE_VXATape: _STORAGE_MEDIA_TYPE = 94;
pub type _STORAGE_MEDIA_TYPE = ::std::os::raw::c_int;
pub use self::_STORAGE_MEDIA_TYPE as STORAGE_MEDIA_TYPE;
pub type PSTORAGE_MEDIA_TYPE = *mut _STORAGE_MEDIA_TYPE;
pub const _STORAGE_BUS_TYPE_BusTypeUnknown: _STORAGE_BUS_TYPE = 0;
pub const _STORAGE_BUS_TYPE_BusTypeScsi: _STORAGE_BUS_TYPE = 1;
pub const _STORAGE_BUS_TYPE_BusTypeAtapi: _STORAGE_BUS_TYPE = 2;
pub const _STORAGE_BUS_TYPE_BusTypeAta: _STORAGE_BUS_TYPE = 3;
pub const _STORAGE_BUS_TYPE_BusType1394: _STORAGE_BUS_TYPE = 4;
pub const _STORAGE_BUS_TYPE_BusTypeSsa: _STORAGE_BUS_TYPE = 5;
pub const _STORAGE_BUS_TYPE_BusTypeFibre: _STORAGE_BUS_TYPE = 6;
pub const _STORAGE_BUS_TYPE_BusTypeUsb: _STORAGE_BUS_TYPE = 7;
pub const _STORAGE_BUS_TYPE_BusTypeRAID: _STORAGE_BUS_TYPE = 8;
pub const _STORAGE_BUS_TYPE_BusTypeiScsi: _STORAGE_BUS_TYPE = 9;
pub const _STORAGE_BUS_TYPE_BusTypeSas: _STORAGE_BUS_TYPE = 10;
pub const _STORAGE_BUS_TYPE_BusTypeSata: _STORAGE_BUS_TYPE = 11;
pub const _STORAGE_BUS_TYPE_BusTypeSd: _STORAGE_BUS_TYPE = 12;
pub const _STORAGE_BUS_TYPE_BusTypeMmc: _STORAGE_BUS_TYPE = 13;
pub const _STORAGE_BUS_TYPE_BusTypeVirtual: _STORAGE_BUS_TYPE = 14;
pub const _STORAGE_BUS_TYPE_BusTypeFileBackedVirtual: _STORAGE_BUS_TYPE = 15;
pub const _STORAGE_BUS_TYPE_BusTypeSpaces: _STORAGE_BUS_TYPE = 16;
pub const _STORAGE_BUS_TYPE_BusTypeNvme: _STORAGE_BUS_TYPE = 17;
pub const _STORAGE_BUS_TYPE_BusTypeSCM: _STORAGE_BUS_TYPE = 18;
pub const _STORAGE_BUS_TYPE_BusTypeUfs: _STORAGE_BUS_TYPE = 19;
pub const _STORAGE_BUS_TYPE_BusTypeMax: _STORAGE_BUS_TYPE = 20;
pub const _STORAGE_BUS_TYPE_BusTypeMaxReserved: _STORAGE_BUS_TYPE = 127;
pub type _STORAGE_BUS_TYPE = ::std::os::raw::c_int;
pub use self::_STORAGE_BUS_TYPE as STORAGE_BUS_TYPE;
pub type PSTORAGE_BUS_TYPE = *mut _STORAGE_BUS_TYPE;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _DEVICE_MEDIA_INFO {
    pub DeviceSpecific: _DEVICE_MEDIA_INFO__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _DEVICE_MEDIA_INFO__bindgen_ty_1 {
    pub DiskInfo: _DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_1,
    pub RemovableDiskInfo: _DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_2,
    pub TapeInfo: _DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3,
    _bindgen_union_align: [u64; 4usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_1 {
    pub Cylinders: LARGE_INTEGER,
    pub MediaType: STORAGE_MEDIA_TYPE,
    pub TracksPerCylinder: DWORD,
    pub SectorsPerTrack: DWORD,
    pub BytesPerSector: DWORD,
    pub NumberMediaSides: DWORD,
    pub MediaCharacteristics: DWORD,
}
#[test]
fn bindgen_test_layout__DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_1>(),
        32usize,
        concat!(
            "Size of: ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_1>())).Cylinders
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Cylinders)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_1>())).MediaType
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(MediaType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_1>()))
                .TracksPerCylinder as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(TracksPerCylinder)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_1>()))
                .SectorsPerTrack as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(SectorsPerTrack)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_1>()))
                .BytesPerSector as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(BytesPerSector)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_1>()))
                .NumberMediaSides as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(NumberMediaSides)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_1>()))
                .MediaCharacteristics as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(MediaCharacteristics)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_2 {
    pub Cylinders: LARGE_INTEGER,
    pub MediaType: STORAGE_MEDIA_TYPE,
    pub TracksPerCylinder: DWORD,
    pub SectorsPerTrack: DWORD,
    pub BytesPerSector: DWORD,
    pub NumberMediaSides: DWORD,
    pub MediaCharacteristics: DWORD,
}
#[test]
fn bindgen_test_layout__DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_2>(),
        32usize,
        concat!(
            "Size of: ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_2>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_2>())).Cylinders
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(Cylinders)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_2>())).MediaType
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(MediaType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_2>()))
                .TracksPerCylinder as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(TracksPerCylinder)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_2>()))
                .SectorsPerTrack as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(SectorsPerTrack)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_2>()))
                .BytesPerSector as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(BytesPerSector)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_2>()))
                .NumberMediaSides as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(NumberMediaSides)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_2>()))
                .MediaCharacteristics as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(MediaCharacteristics)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3 {
    pub MediaType: STORAGE_MEDIA_TYPE,
    pub MediaCharacteristics: DWORD,
    pub CurrentBlockSize: DWORD,
    pub BusType: STORAGE_BUS_TYPE,
    pub BusSpecificData: _DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3__bindgen_ty_1 {
    pub ScsiInformation: _DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: [u8; 2usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1 {
    pub MediumType: BYTE,
    pub DensityCode: BYTE,
}
#[test]
fn bindgen_test_layout__DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1()
{
    assert_eq!(
        ::std::mem::size_of::<
            _DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1,
        >(),
        2usize,
        concat!(
            "Size of: ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<
            _DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1,
        >(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<
                _DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1,
            >()))
            .MediumType as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(MediumType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<
                _DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1,
            >()))
            .DensityCode as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(DensityCode)
        )
    );
}
#[test]
fn bindgen_test_layout__DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3__bindgen_ty_1>(),
        2usize,
        concat!(
            "Size of: ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3__bindgen_ty_1>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3__bindgen_ty_1>()))
                .ScsiInformation as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3__bindgen_ty_1),
            "::",
            stringify!(ScsiInformation)
        )
    );
}
#[test]
fn bindgen_test_layout__DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3>(),
        20usize,
        concat!(
            "Size of: ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3>())).MediaType
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3),
            "::",
            stringify!(MediaType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3>()))
                .MediaCharacteristics as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3),
            "::",
            stringify!(MediaCharacteristics)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3>()))
                .CurrentBlockSize as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3),
            "::",
            stringify!(CurrentBlockSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3>())).BusType
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3),
            "::",
            stringify!(BusType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3>()))
                .BusSpecificData as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1__bindgen_ty_3),
            "::",
            stringify!(BusSpecificData)
        )
    );
}
#[test]
fn bindgen_test_layout__DEVICE_MEDIA_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_MEDIA_INFO__bindgen_ty_1>(),
        32usize,
        concat!("Size of: ", stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_MEDIA_INFO__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MEDIA_INFO__bindgen_ty_1>())).DiskInfo as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1),
            "::",
            stringify!(DiskInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MEDIA_INFO__bindgen_ty_1>())).RemovableDiskInfo
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1),
            "::",
            stringify!(RemovableDiskInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MEDIA_INFO__bindgen_ty_1>())).TapeInfo as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MEDIA_INFO__bindgen_ty_1),
            "::",
            stringify!(TapeInfo)
        )
    );
}
#[test]
fn bindgen_test_layout__DEVICE_MEDIA_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_MEDIA_INFO>(),
        32usize,
        concat!("Size of: ", stringify!(_DEVICE_MEDIA_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_MEDIA_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_DEVICE_MEDIA_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MEDIA_INFO>())).DeviceSpecific as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MEDIA_INFO),
            "::",
            stringify!(DeviceSpecific)
        )
    );
}
pub type DEVICE_MEDIA_INFO = _DEVICE_MEDIA_INFO;
pub type PDEVICE_MEDIA_INFO = *mut _DEVICE_MEDIA_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _GET_MEDIA_TYPES {
    pub DeviceType: DWORD,
    pub MediaInfoCount: DWORD,
    pub MediaInfo: [DEVICE_MEDIA_INFO; 1usize],
}
#[test]
fn bindgen_test_layout__GET_MEDIA_TYPES() {
    assert_eq!(
        ::std::mem::size_of::<_GET_MEDIA_TYPES>(),
        40usize,
        concat!("Size of: ", stringify!(_GET_MEDIA_TYPES))
    );
    assert_eq!(
        ::std::mem::align_of::<_GET_MEDIA_TYPES>(),
        8usize,
        concat!("Alignment of ", stringify!(_GET_MEDIA_TYPES))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GET_MEDIA_TYPES>())).DeviceType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_MEDIA_TYPES),
            "::",
            stringify!(DeviceType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GET_MEDIA_TYPES>())).MediaInfoCount as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_MEDIA_TYPES),
            "::",
            stringify!(MediaInfoCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GET_MEDIA_TYPES>())).MediaInfo as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_MEDIA_TYPES),
            "::",
            stringify!(MediaInfo)
        )
    );
}
pub type GET_MEDIA_TYPES = _GET_MEDIA_TYPES;
pub type PGET_MEDIA_TYPES = *mut _GET_MEDIA_TYPES;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _STORAGE_PREDICT_FAILURE {
    pub PredictFailure: DWORD,
    pub VendorSpecific: [BYTE; 512usize],
}
#[test]
fn bindgen_test_layout__STORAGE_PREDICT_FAILURE() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_PREDICT_FAILURE>(),
        516usize,
        concat!("Size of: ", stringify!(_STORAGE_PREDICT_FAILURE))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_PREDICT_FAILURE>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_PREDICT_FAILURE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PREDICT_FAILURE>())).PredictFailure as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PREDICT_FAILURE),
            "::",
            stringify!(PredictFailure)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PREDICT_FAILURE>())).VendorSpecific as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PREDICT_FAILURE),
            "::",
            stringify!(VendorSpecific)
        )
    );
}
pub type STORAGE_PREDICT_FAILURE = _STORAGE_PREDICT_FAILURE;
pub type PSTORAGE_PREDICT_FAILURE = *mut _STORAGE_PREDICT_FAILURE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_FAILURE_PREDICTION_CONFIG {
    pub Version: DWORD,
    pub Size: DWORD,
    pub Set: BOOLEAN,
    pub Enabled: BOOLEAN,
    pub Reserved: WORD,
}
#[test]
fn bindgen_test_layout__STORAGE_FAILURE_PREDICTION_CONFIG() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_FAILURE_PREDICTION_CONFIG>(),
        12usize,
        concat!("Size of: ", stringify!(_STORAGE_FAILURE_PREDICTION_CONFIG))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_FAILURE_PREDICTION_CONFIG>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_FAILURE_PREDICTION_CONFIG)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_FAILURE_PREDICTION_CONFIG>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_FAILURE_PREDICTION_CONFIG),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_FAILURE_PREDICTION_CONFIG>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_FAILURE_PREDICTION_CONFIG),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_FAILURE_PREDICTION_CONFIG>())).Set as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_FAILURE_PREDICTION_CONFIG),
            "::",
            stringify!(Set)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_FAILURE_PREDICTION_CONFIG>())).Enabled as *const _
                as usize
        },
        9usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_FAILURE_PREDICTION_CONFIG),
            "::",
            stringify!(Enabled)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_FAILURE_PREDICTION_CONFIG>())).Reserved as *const _
                as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_FAILURE_PREDICTION_CONFIG),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type STORAGE_FAILURE_PREDICTION_CONFIG = _STORAGE_FAILURE_PREDICTION_CONFIG;
pub type PSTORAGE_FAILURE_PREDICTION_CONFIG = *mut _STORAGE_FAILURE_PREDICTION_CONFIG;
pub const _STORAGE_QUERY_TYPE_PropertyStandardQuery: _STORAGE_QUERY_TYPE = 0;
pub const _STORAGE_QUERY_TYPE_PropertyExistsQuery: _STORAGE_QUERY_TYPE = 1;
pub const _STORAGE_QUERY_TYPE_PropertyMaskQuery: _STORAGE_QUERY_TYPE = 2;
pub const _STORAGE_QUERY_TYPE_PropertyQueryMaxDefined: _STORAGE_QUERY_TYPE = 3;
pub type _STORAGE_QUERY_TYPE = ::std::os::raw::c_int;
pub use self::_STORAGE_QUERY_TYPE as STORAGE_QUERY_TYPE;
pub type PSTORAGE_QUERY_TYPE = *mut _STORAGE_QUERY_TYPE;
pub const _STORAGE_SET_TYPE_PropertyStandardSet: _STORAGE_SET_TYPE = 0;
pub const _STORAGE_SET_TYPE_PropertyExistsSet: _STORAGE_SET_TYPE = 1;
pub const _STORAGE_SET_TYPE_PropertySetMaxDefined: _STORAGE_SET_TYPE = 2;
pub type _STORAGE_SET_TYPE = ::std::os::raw::c_int;
pub use self::_STORAGE_SET_TYPE as STORAGE_SET_TYPE;
pub type PSTORAGE_SET_TYPE = *mut _STORAGE_SET_TYPE;
pub const _STORAGE_PROPERTY_ID_StorageDeviceProperty: _STORAGE_PROPERTY_ID = 0;
pub const _STORAGE_PROPERTY_ID_StorageAdapterProperty: _STORAGE_PROPERTY_ID = 1;
pub const _STORAGE_PROPERTY_ID_StorageDeviceIdProperty: _STORAGE_PROPERTY_ID = 2;
pub const _STORAGE_PROPERTY_ID_StorageDeviceUniqueIdProperty: _STORAGE_PROPERTY_ID = 3;
pub const _STORAGE_PROPERTY_ID_StorageDeviceWriteCacheProperty: _STORAGE_PROPERTY_ID = 4;
pub const _STORAGE_PROPERTY_ID_StorageMiniportProperty: _STORAGE_PROPERTY_ID = 5;
pub const _STORAGE_PROPERTY_ID_StorageAccessAlignmentProperty: _STORAGE_PROPERTY_ID = 6;
pub const _STORAGE_PROPERTY_ID_StorageDeviceSeekPenaltyProperty: _STORAGE_PROPERTY_ID = 7;
pub const _STORAGE_PROPERTY_ID_StorageDeviceTrimProperty: _STORAGE_PROPERTY_ID = 8;
pub const _STORAGE_PROPERTY_ID_StorageDeviceWriteAggregationProperty: _STORAGE_PROPERTY_ID = 9;
pub const _STORAGE_PROPERTY_ID_StorageDeviceDeviceTelemetryProperty: _STORAGE_PROPERTY_ID = 10;
pub const _STORAGE_PROPERTY_ID_StorageDeviceLBProvisioningProperty: _STORAGE_PROPERTY_ID = 11;
pub const _STORAGE_PROPERTY_ID_StorageDevicePowerProperty: _STORAGE_PROPERTY_ID = 12;
pub const _STORAGE_PROPERTY_ID_StorageDeviceCopyOffloadProperty: _STORAGE_PROPERTY_ID = 13;
pub const _STORAGE_PROPERTY_ID_StorageDeviceResiliencyProperty: _STORAGE_PROPERTY_ID = 14;
pub const _STORAGE_PROPERTY_ID_StorageDeviceMediumProductType: _STORAGE_PROPERTY_ID = 15;
pub const _STORAGE_PROPERTY_ID_StorageAdapterRpmbProperty: _STORAGE_PROPERTY_ID = 16;
pub const _STORAGE_PROPERTY_ID_StorageAdapterCryptoProperty: _STORAGE_PROPERTY_ID = 17;
pub const _STORAGE_PROPERTY_ID_StorageDeviceIoCapabilityProperty: _STORAGE_PROPERTY_ID = 48;
pub const _STORAGE_PROPERTY_ID_StorageAdapterProtocolSpecificProperty: _STORAGE_PROPERTY_ID = 49;
pub const _STORAGE_PROPERTY_ID_StorageDeviceProtocolSpecificProperty: _STORAGE_PROPERTY_ID = 50;
pub const _STORAGE_PROPERTY_ID_StorageAdapterTemperatureProperty: _STORAGE_PROPERTY_ID = 51;
pub const _STORAGE_PROPERTY_ID_StorageDeviceTemperatureProperty: _STORAGE_PROPERTY_ID = 52;
pub const _STORAGE_PROPERTY_ID_StorageAdapterPhysicalTopologyProperty: _STORAGE_PROPERTY_ID = 53;
pub const _STORAGE_PROPERTY_ID_StorageDevicePhysicalTopologyProperty: _STORAGE_PROPERTY_ID = 54;
pub const _STORAGE_PROPERTY_ID_StorageDeviceAttributesProperty: _STORAGE_PROPERTY_ID = 55;
pub const _STORAGE_PROPERTY_ID_StorageDeviceManagementStatus: _STORAGE_PROPERTY_ID = 56;
pub const _STORAGE_PROPERTY_ID_StorageAdapterSerialNumberProperty: _STORAGE_PROPERTY_ID = 57;
pub const _STORAGE_PROPERTY_ID_StorageDeviceLocationProperty: _STORAGE_PROPERTY_ID = 58;
pub const _STORAGE_PROPERTY_ID_StorageDeviceNumaProperty: _STORAGE_PROPERTY_ID = 59;
pub const _STORAGE_PROPERTY_ID_StorageDeviceZonedDeviceProperty: _STORAGE_PROPERTY_ID = 60;
pub const _STORAGE_PROPERTY_ID_StorageDeviceUnsafeShutdownCount: _STORAGE_PROPERTY_ID = 61;
pub const _STORAGE_PROPERTY_ID_StorageDeviceEnduranceProperty: _STORAGE_PROPERTY_ID = 62;
pub type _STORAGE_PROPERTY_ID = ::std::os::raw::c_int;
pub use self::_STORAGE_PROPERTY_ID as STORAGE_PROPERTY_ID;
pub type PSTORAGE_PROPERTY_ID = *mut _STORAGE_PROPERTY_ID;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_PROPERTY_QUERY {
    pub PropertyId: STORAGE_PROPERTY_ID,
    pub QueryType: STORAGE_QUERY_TYPE,
    pub AdditionalParameters: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout__STORAGE_PROPERTY_QUERY() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_PROPERTY_QUERY>(),
        12usize,
        concat!("Size of: ", stringify!(_STORAGE_PROPERTY_QUERY))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_PROPERTY_QUERY>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_PROPERTY_QUERY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROPERTY_QUERY>())).PropertyId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROPERTY_QUERY),
            "::",
            stringify!(PropertyId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROPERTY_QUERY>())).QueryType as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROPERTY_QUERY),
            "::",
            stringify!(QueryType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROPERTY_QUERY>())).AdditionalParameters as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROPERTY_QUERY),
            "::",
            stringify!(AdditionalParameters)
        )
    );
}
pub type STORAGE_PROPERTY_QUERY = _STORAGE_PROPERTY_QUERY;
pub type PSTORAGE_PROPERTY_QUERY = *mut _STORAGE_PROPERTY_QUERY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_PROPERTY_SET {
    pub PropertyId: STORAGE_PROPERTY_ID,
    pub SetType: STORAGE_SET_TYPE,
    pub AdditionalParameters: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout__STORAGE_PROPERTY_SET() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_PROPERTY_SET>(),
        12usize,
        concat!("Size of: ", stringify!(_STORAGE_PROPERTY_SET))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_PROPERTY_SET>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_PROPERTY_SET))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROPERTY_SET>())).PropertyId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROPERTY_SET),
            "::",
            stringify!(PropertyId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_PROPERTY_SET>())).SetType as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROPERTY_SET),
            "::",
            stringify!(SetType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROPERTY_SET>())).AdditionalParameters as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROPERTY_SET),
            "::",
            stringify!(AdditionalParameters)
        )
    );
}
pub type STORAGE_PROPERTY_SET = _STORAGE_PROPERTY_SET;
pub type PSTORAGE_PROPERTY_SET = *mut _STORAGE_PROPERTY_SET;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_DESCRIPTOR_HEADER {
    pub Version: DWORD,
    pub Size: DWORD,
}
#[test]
fn bindgen_test_layout__STORAGE_DESCRIPTOR_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_DESCRIPTOR_HEADER>(),
        8usize,
        concat!("Size of: ", stringify!(_STORAGE_DESCRIPTOR_HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_DESCRIPTOR_HEADER>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_DESCRIPTOR_HEADER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DESCRIPTOR_HEADER>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DESCRIPTOR_HEADER),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_DESCRIPTOR_HEADER>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DESCRIPTOR_HEADER),
            "::",
            stringify!(Size)
        )
    );
}
pub type STORAGE_DESCRIPTOR_HEADER = _STORAGE_DESCRIPTOR_HEADER;
pub type PSTORAGE_DESCRIPTOR_HEADER = *mut _STORAGE_DESCRIPTOR_HEADER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_DEVICE_DESCRIPTOR {
    pub Version: DWORD,
    pub Size: DWORD,
    pub DeviceType: BYTE,
    pub DeviceTypeModifier: BYTE,
    pub RemovableMedia: BOOLEAN,
    pub CommandQueueing: BOOLEAN,
    pub VendorIdOffset: DWORD,
    pub ProductIdOffset: DWORD,
    pub ProductRevisionOffset: DWORD,
    pub SerialNumberOffset: DWORD,
    pub BusType: STORAGE_BUS_TYPE,
    pub RawPropertiesLength: DWORD,
    pub RawDeviceProperties: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout__STORAGE_DEVICE_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_DEVICE_DESCRIPTOR>(),
        40usize,
        concat!("Size of: ", stringify!(_STORAGE_DEVICE_DESCRIPTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_DEVICE_DESCRIPTOR>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_DEVICE_DESCRIPTOR))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_DESCRIPTOR>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_DESCRIPTOR),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_DEVICE_DESCRIPTOR>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_DESCRIPTOR),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_DESCRIPTOR>())).DeviceType as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_DESCRIPTOR),
            "::",
            stringify!(DeviceType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_DESCRIPTOR>())).DeviceTypeModifier as *const _
                as usize
        },
        9usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_DESCRIPTOR),
            "::",
            stringify!(DeviceTypeModifier)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_DESCRIPTOR>())).RemovableMedia as *const _
                as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_DESCRIPTOR),
            "::",
            stringify!(RemovableMedia)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_DESCRIPTOR>())).CommandQueueing as *const _
                as usize
        },
        11usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_DESCRIPTOR),
            "::",
            stringify!(CommandQueueing)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_DESCRIPTOR>())).VendorIdOffset as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_DESCRIPTOR),
            "::",
            stringify!(VendorIdOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_DESCRIPTOR>())).ProductIdOffset as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_DESCRIPTOR),
            "::",
            stringify!(ProductIdOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_DESCRIPTOR>())).ProductRevisionOffset as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_DESCRIPTOR),
            "::",
            stringify!(ProductRevisionOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_DESCRIPTOR>())).SerialNumberOffset as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_DESCRIPTOR),
            "::",
            stringify!(SerialNumberOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_DESCRIPTOR>())).BusType as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_DESCRIPTOR),
            "::",
            stringify!(BusType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_DESCRIPTOR>())).RawPropertiesLength as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_DESCRIPTOR),
            "::",
            stringify!(RawPropertiesLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_DESCRIPTOR>())).RawDeviceProperties as *const _
                as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_DESCRIPTOR),
            "::",
            stringify!(RawDeviceProperties)
        )
    );
}
pub type STORAGE_DEVICE_DESCRIPTOR = _STORAGE_DEVICE_DESCRIPTOR;
pub type PSTORAGE_DEVICE_DESCRIPTOR = *mut _STORAGE_DEVICE_DESCRIPTOR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_ADAPTER_DESCRIPTOR {
    pub Version: DWORD,
    pub Size: DWORD,
    pub MaximumTransferLength: DWORD,
    pub MaximumPhysicalPages: DWORD,
    pub AlignmentMask: DWORD,
    pub AdapterUsesPio: BOOLEAN,
    pub AdapterScansDown: BOOLEAN,
    pub CommandQueueing: BOOLEAN,
    pub AcceleratedTransfer: BOOLEAN,
    pub BusType: BYTE,
    pub BusMajorVersion: WORD,
    pub BusMinorVersion: WORD,
    pub SrbType: BYTE,
    pub AddressType: BYTE,
}
#[test]
fn bindgen_test_layout__STORAGE_ADAPTER_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_ADAPTER_DESCRIPTOR>(),
        32usize,
        concat!("Size of: ", stringify!(_STORAGE_ADAPTER_DESCRIPTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_ADAPTER_DESCRIPTOR>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_ADAPTER_DESCRIPTOR))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ADAPTER_DESCRIPTOR>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ADAPTER_DESCRIPTOR),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ADAPTER_DESCRIPTOR>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ADAPTER_DESCRIPTOR),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ADAPTER_DESCRIPTOR>())).MaximumTransferLength
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ADAPTER_DESCRIPTOR),
            "::",
            stringify!(MaximumTransferLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ADAPTER_DESCRIPTOR>())).MaximumPhysicalPages as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ADAPTER_DESCRIPTOR),
            "::",
            stringify!(MaximumPhysicalPages)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ADAPTER_DESCRIPTOR>())).AlignmentMask as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ADAPTER_DESCRIPTOR),
            "::",
            stringify!(AlignmentMask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ADAPTER_DESCRIPTOR>())).AdapterUsesPio as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ADAPTER_DESCRIPTOR),
            "::",
            stringify!(AdapterUsesPio)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ADAPTER_DESCRIPTOR>())).AdapterScansDown as *const _
                as usize
        },
        21usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ADAPTER_DESCRIPTOR),
            "::",
            stringify!(AdapterScansDown)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ADAPTER_DESCRIPTOR>())).CommandQueueing as *const _
                as usize
        },
        22usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ADAPTER_DESCRIPTOR),
            "::",
            stringify!(CommandQueueing)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ADAPTER_DESCRIPTOR>())).AcceleratedTransfer as *const _
                as usize
        },
        23usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ADAPTER_DESCRIPTOR),
            "::",
            stringify!(AcceleratedTransfer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ADAPTER_DESCRIPTOR>())).BusType as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ADAPTER_DESCRIPTOR),
            "::",
            stringify!(BusType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ADAPTER_DESCRIPTOR>())).BusMajorVersion as *const _
                as usize
        },
        26usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ADAPTER_DESCRIPTOR),
            "::",
            stringify!(BusMajorVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ADAPTER_DESCRIPTOR>())).BusMinorVersion as *const _
                as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ADAPTER_DESCRIPTOR),
            "::",
            stringify!(BusMinorVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ADAPTER_DESCRIPTOR>())).SrbType as *const _ as usize
        },
        30usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ADAPTER_DESCRIPTOR),
            "::",
            stringify!(SrbType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ADAPTER_DESCRIPTOR>())).AddressType as *const _ as usize
        },
        31usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ADAPTER_DESCRIPTOR),
            "::",
            stringify!(AddressType)
        )
    );
}
pub type STORAGE_ADAPTER_DESCRIPTOR = _STORAGE_ADAPTER_DESCRIPTOR;
pub type PSTORAGE_ADAPTER_DESCRIPTOR = *mut _STORAGE_ADAPTER_DESCRIPTOR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR {
    pub Version: DWORD,
    pub Size: DWORD,
    pub BytesPerCacheLine: DWORD,
    pub BytesOffsetForCacheAlignment: DWORD,
    pub BytesPerLogicalSector: DWORD,
    pub BytesPerPhysicalSector: DWORD,
    pub BytesOffsetForSectorAlignment: DWORD,
}
#[test]
fn bindgen_test_layout__STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR>(),
        28usize,
        concat!(
            "Size of: ",
            stringify!(_STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR>())).Size as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR>())).BytesPerCacheLine
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR),
            "::",
            stringify!(BytesPerCacheLine)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR>()))
                .BytesOffsetForCacheAlignment as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR),
            "::",
            stringify!(BytesOffsetForCacheAlignment)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR>())).BytesPerLogicalSector
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR),
            "::",
            stringify!(BytesPerLogicalSector)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR>())).BytesPerPhysicalSector
                as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR),
            "::",
            stringify!(BytesPerPhysicalSector)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR>()))
                .BytesOffsetForSectorAlignment as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR),
            "::",
            stringify!(BytesOffsetForSectorAlignment)
        )
    );
}
pub type STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR = _STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR;
pub type PSTORAGE_ACCESS_ALIGNMENT_DESCRIPTOR = *mut _STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR {
    pub Version: DWORD,
    pub Size: DWORD,
    pub MediumProductType: DWORD,
}
#[test]
fn bindgen_test_layout__STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR>(),
        12usize,
        concat!(
            "Size of: ",
            stringify!(_STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR>())).Size as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR>())).MediumProductType
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR),
            "::",
            stringify!(MediumProductType)
        )
    );
}
pub type STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR = _STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR;
pub type PSTORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR = *mut _STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR;
pub const _STORAGE_PORT_CODE_SET_StoragePortCodeSetReserved: _STORAGE_PORT_CODE_SET = 0;
pub const _STORAGE_PORT_CODE_SET_StoragePortCodeSetStorport: _STORAGE_PORT_CODE_SET = 1;
pub const _STORAGE_PORT_CODE_SET_StoragePortCodeSetSCSIport: _STORAGE_PORT_CODE_SET = 2;
pub const _STORAGE_PORT_CODE_SET_StoragePortCodeSetSpaceport: _STORAGE_PORT_CODE_SET = 3;
pub const _STORAGE_PORT_CODE_SET_StoragePortCodeSetATAport: _STORAGE_PORT_CODE_SET = 4;
pub const _STORAGE_PORT_CODE_SET_StoragePortCodeSetUSBport: _STORAGE_PORT_CODE_SET = 5;
pub const _STORAGE_PORT_CODE_SET_StoragePortCodeSetSBP2port: _STORAGE_PORT_CODE_SET = 6;
pub const _STORAGE_PORT_CODE_SET_StoragePortCodeSetSDport: _STORAGE_PORT_CODE_SET = 7;
pub type _STORAGE_PORT_CODE_SET = ::std::os::raw::c_int;
pub use self::_STORAGE_PORT_CODE_SET as STORAGE_PORT_CODE_SET;
pub type PSTORAGE_PORT_CODE_SET = *mut _STORAGE_PORT_CODE_SET;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_MINIPORT_DESCRIPTOR {
    pub Version: DWORD,
    pub Size: DWORD,
    pub Portdriver: STORAGE_PORT_CODE_SET,
    pub LUNResetSupported: BOOLEAN,
    pub TargetResetSupported: BOOLEAN,
    pub IoTimeoutValue: WORD,
    pub ExtraIoInfoSupported: BOOLEAN,
    pub Reserved0: [BYTE; 3usize],
    pub Reserved1: DWORD,
}
#[test]
fn bindgen_test_layout__STORAGE_MINIPORT_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_MINIPORT_DESCRIPTOR>(),
        24usize,
        concat!("Size of: ", stringify!(_STORAGE_MINIPORT_DESCRIPTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_MINIPORT_DESCRIPTOR>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_MINIPORT_DESCRIPTOR))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_MINIPORT_DESCRIPTOR>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_MINIPORT_DESCRIPTOR),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_MINIPORT_DESCRIPTOR>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_MINIPORT_DESCRIPTOR),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_MINIPORT_DESCRIPTOR>())).Portdriver as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_MINIPORT_DESCRIPTOR),
            "::",
            stringify!(Portdriver)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_MINIPORT_DESCRIPTOR>())).LUNResetSupported as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_MINIPORT_DESCRIPTOR),
            "::",
            stringify!(LUNResetSupported)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_MINIPORT_DESCRIPTOR>())).TargetResetSupported
                as *const _ as usize
        },
        13usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_MINIPORT_DESCRIPTOR),
            "::",
            stringify!(TargetResetSupported)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_MINIPORT_DESCRIPTOR>())).IoTimeoutValue as *const _
                as usize
        },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_MINIPORT_DESCRIPTOR),
            "::",
            stringify!(IoTimeoutValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_MINIPORT_DESCRIPTOR>())).ExtraIoInfoSupported
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_MINIPORT_DESCRIPTOR),
            "::",
            stringify!(ExtraIoInfoSupported)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_MINIPORT_DESCRIPTOR>())).Reserved0 as *const _ as usize
        },
        17usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_MINIPORT_DESCRIPTOR),
            "::",
            stringify!(Reserved0)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_MINIPORT_DESCRIPTOR>())).Reserved1 as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_MINIPORT_DESCRIPTOR),
            "::",
            stringify!(Reserved1)
        )
    );
}
pub type STORAGE_MINIPORT_DESCRIPTOR = _STORAGE_MINIPORT_DESCRIPTOR;
pub type PSTORAGE_MINIPORT_DESCRIPTOR = *mut _STORAGE_MINIPORT_DESCRIPTOR;
pub const _STORAGE_IDENTIFIER_CODE_SET_StorageIdCodeSetReserved: _STORAGE_IDENTIFIER_CODE_SET = 0;
pub const _STORAGE_IDENTIFIER_CODE_SET_StorageIdCodeSetBinary: _STORAGE_IDENTIFIER_CODE_SET = 1;
pub const _STORAGE_IDENTIFIER_CODE_SET_StorageIdCodeSetAscii: _STORAGE_IDENTIFIER_CODE_SET = 2;
pub const _STORAGE_IDENTIFIER_CODE_SET_StorageIdCodeSetUtf8: _STORAGE_IDENTIFIER_CODE_SET = 3;
pub type _STORAGE_IDENTIFIER_CODE_SET = ::std::os::raw::c_int;
pub use self::_STORAGE_IDENTIFIER_CODE_SET as STORAGE_IDENTIFIER_CODE_SET;
pub type PSTORAGE_IDENTIFIER_CODE_SET = *mut _STORAGE_IDENTIFIER_CODE_SET;
pub const _STORAGE_IDENTIFIER_TYPE_StorageIdTypeVendorSpecific: _STORAGE_IDENTIFIER_TYPE = 0;
pub const _STORAGE_IDENTIFIER_TYPE_StorageIdTypeVendorId: _STORAGE_IDENTIFIER_TYPE = 1;
pub const _STORAGE_IDENTIFIER_TYPE_StorageIdTypeEUI64: _STORAGE_IDENTIFIER_TYPE = 2;
pub const _STORAGE_IDENTIFIER_TYPE_StorageIdTypeFCPHName: _STORAGE_IDENTIFIER_TYPE = 3;
pub const _STORAGE_IDENTIFIER_TYPE_StorageIdTypePortRelative: _STORAGE_IDENTIFIER_TYPE = 4;
pub const _STORAGE_IDENTIFIER_TYPE_StorageIdTypeTargetPortGroup: _STORAGE_IDENTIFIER_TYPE = 5;
pub const _STORAGE_IDENTIFIER_TYPE_StorageIdTypeLogicalUnitGroup: _STORAGE_IDENTIFIER_TYPE = 6;
pub const _STORAGE_IDENTIFIER_TYPE_StorageIdTypeMD5LogicalUnitIdentifier: _STORAGE_IDENTIFIER_TYPE =
    7;
pub const _STORAGE_IDENTIFIER_TYPE_StorageIdTypeScsiNameString: _STORAGE_IDENTIFIER_TYPE = 8;
pub type _STORAGE_IDENTIFIER_TYPE = ::std::os::raw::c_int;
pub use self::_STORAGE_IDENTIFIER_TYPE as STORAGE_IDENTIFIER_TYPE;
pub type PSTORAGE_IDENTIFIER_TYPE = *mut _STORAGE_IDENTIFIER_TYPE;
pub const _STORAGE_ID_NAA_FORMAT_StorageIdNAAFormatIEEEExtended: _STORAGE_ID_NAA_FORMAT = 2;
pub const _STORAGE_ID_NAA_FORMAT_StorageIdNAAFormatIEEERegistered: _STORAGE_ID_NAA_FORMAT = 3;
pub const _STORAGE_ID_NAA_FORMAT_StorageIdNAAFormatIEEEERegisteredExtended: _STORAGE_ID_NAA_FORMAT =
    5;
pub type _STORAGE_ID_NAA_FORMAT = ::std::os::raw::c_int;
pub use self::_STORAGE_ID_NAA_FORMAT as STORAGE_ID_NAA_FORMAT;
pub type PSTORAGE_ID_NAA_FORMAT = *mut _STORAGE_ID_NAA_FORMAT;
pub const _STORAGE_ASSOCIATION_TYPE_StorageIdAssocDevice: _STORAGE_ASSOCIATION_TYPE = 0;
pub const _STORAGE_ASSOCIATION_TYPE_StorageIdAssocPort: _STORAGE_ASSOCIATION_TYPE = 1;
pub const _STORAGE_ASSOCIATION_TYPE_StorageIdAssocTarget: _STORAGE_ASSOCIATION_TYPE = 2;
pub type _STORAGE_ASSOCIATION_TYPE = ::std::os::raw::c_int;
pub use self::_STORAGE_ASSOCIATION_TYPE as STORAGE_ASSOCIATION_TYPE;
pub type PSTORAGE_ASSOCIATION_TYPE = *mut _STORAGE_ASSOCIATION_TYPE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_IDENTIFIER {
    pub CodeSet: STORAGE_IDENTIFIER_CODE_SET,
    pub Type: STORAGE_IDENTIFIER_TYPE,
    pub IdentifierSize: WORD,
    pub NextOffset: WORD,
    pub Association: STORAGE_ASSOCIATION_TYPE,
    pub Identifier: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout__STORAGE_IDENTIFIER() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_IDENTIFIER>(),
        20usize,
        concat!("Size of: ", stringify!(_STORAGE_IDENTIFIER))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_IDENTIFIER>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_IDENTIFIER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_IDENTIFIER>())).CodeSet as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_IDENTIFIER),
            "::",
            stringify!(CodeSet)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_IDENTIFIER>())).Type as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_IDENTIFIER),
            "::",
            stringify!(Type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_IDENTIFIER>())).IdentifierSize as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_IDENTIFIER),
            "::",
            stringify!(IdentifierSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_IDENTIFIER>())).NextOffset as *const _ as usize },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_IDENTIFIER),
            "::",
            stringify!(NextOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_IDENTIFIER>())).Association as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_IDENTIFIER),
            "::",
            stringify!(Association)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_IDENTIFIER>())).Identifier as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_IDENTIFIER),
            "::",
            stringify!(Identifier)
        )
    );
}
pub type STORAGE_IDENTIFIER = _STORAGE_IDENTIFIER;
pub type PSTORAGE_IDENTIFIER = *mut _STORAGE_IDENTIFIER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_DEVICE_ID_DESCRIPTOR {
    pub Version: DWORD,
    pub Size: DWORD,
    pub NumberOfIdentifiers: DWORD,
    pub Identifiers: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout__STORAGE_DEVICE_ID_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_DEVICE_ID_DESCRIPTOR>(),
        16usize,
        concat!("Size of: ", stringify!(_STORAGE_DEVICE_ID_DESCRIPTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_DEVICE_ID_DESCRIPTOR>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_DEVICE_ID_DESCRIPTOR))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_ID_DESCRIPTOR>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_ID_DESCRIPTOR),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_ID_DESCRIPTOR>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_ID_DESCRIPTOR),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_ID_DESCRIPTOR>())).NumberOfIdentifiers
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_ID_DESCRIPTOR),
            "::",
            stringify!(NumberOfIdentifiers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_ID_DESCRIPTOR>())).Identifiers as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_ID_DESCRIPTOR),
            "::",
            stringify!(Identifiers)
        )
    );
}
pub type STORAGE_DEVICE_ID_DESCRIPTOR = _STORAGE_DEVICE_ID_DESCRIPTOR;
pub type PSTORAGE_DEVICE_ID_DESCRIPTOR = *mut _STORAGE_DEVICE_ID_DESCRIPTOR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_SEEK_PENALTY_DESCRIPTOR {
    pub Version: DWORD,
    pub Size: DWORD,
    pub IncursSeekPenalty: BOOLEAN,
}
#[test]
fn bindgen_test_layout__DEVICE_SEEK_PENALTY_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_SEEK_PENALTY_DESCRIPTOR>(),
        12usize,
        concat!("Size of: ", stringify!(_DEVICE_SEEK_PENALTY_DESCRIPTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_SEEK_PENALTY_DESCRIPTOR>(),
        4usize,
        concat!("Alignment of ", stringify!(_DEVICE_SEEK_PENALTY_DESCRIPTOR))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_SEEK_PENALTY_DESCRIPTOR>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_SEEK_PENALTY_DESCRIPTOR),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_SEEK_PENALTY_DESCRIPTOR>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_SEEK_PENALTY_DESCRIPTOR),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_SEEK_PENALTY_DESCRIPTOR>())).IncursSeekPenalty
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_SEEK_PENALTY_DESCRIPTOR),
            "::",
            stringify!(IncursSeekPenalty)
        )
    );
}
pub type DEVICE_SEEK_PENALTY_DESCRIPTOR = _DEVICE_SEEK_PENALTY_DESCRIPTOR;
pub type PDEVICE_SEEK_PENALTY_DESCRIPTOR = *mut _DEVICE_SEEK_PENALTY_DESCRIPTOR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_WRITE_AGGREGATION_DESCRIPTOR {
    pub Version: DWORD,
    pub Size: DWORD,
    pub BenefitsFromWriteAggregation: BOOLEAN,
}
#[test]
fn bindgen_test_layout__DEVICE_WRITE_AGGREGATION_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_WRITE_AGGREGATION_DESCRIPTOR>(),
        12usize,
        concat!(
            "Size of: ",
            stringify!(_DEVICE_WRITE_AGGREGATION_DESCRIPTOR)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_WRITE_AGGREGATION_DESCRIPTOR>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICE_WRITE_AGGREGATION_DESCRIPTOR)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_WRITE_AGGREGATION_DESCRIPTOR>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_WRITE_AGGREGATION_DESCRIPTOR),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_WRITE_AGGREGATION_DESCRIPTOR>())).Size as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_WRITE_AGGREGATION_DESCRIPTOR),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_WRITE_AGGREGATION_DESCRIPTOR>()))
                .BenefitsFromWriteAggregation as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_WRITE_AGGREGATION_DESCRIPTOR),
            "::",
            stringify!(BenefitsFromWriteAggregation)
        )
    );
}
pub type DEVICE_WRITE_AGGREGATION_DESCRIPTOR = _DEVICE_WRITE_AGGREGATION_DESCRIPTOR;
pub type PDEVICE_WRITE_AGGREGATION_DESCRIPTOR = *mut _DEVICE_WRITE_AGGREGATION_DESCRIPTOR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_TRIM_DESCRIPTOR {
    pub Version: DWORD,
    pub Size: DWORD,
    pub TrimEnabled: BOOLEAN,
}
#[test]
fn bindgen_test_layout__DEVICE_TRIM_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_TRIM_DESCRIPTOR>(),
        12usize,
        concat!("Size of: ", stringify!(_DEVICE_TRIM_DESCRIPTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_TRIM_DESCRIPTOR>(),
        4usize,
        concat!("Alignment of ", stringify!(_DEVICE_TRIM_DESCRIPTOR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DEVICE_TRIM_DESCRIPTOR>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_TRIM_DESCRIPTOR),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DEVICE_TRIM_DESCRIPTOR>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_TRIM_DESCRIPTOR),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_TRIM_DESCRIPTOR>())).TrimEnabled as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_TRIM_DESCRIPTOR),
            "::",
            stringify!(TrimEnabled)
        )
    );
}
pub type DEVICE_TRIM_DESCRIPTOR = _DEVICE_TRIM_DESCRIPTOR;
pub type PDEVICE_TRIM_DESCRIPTOR = *mut _DEVICE_TRIM_DESCRIPTOR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_LB_PROVISIONING_DESCRIPTOR {
    pub Version: DWORD,
    pub Size: DWORD,
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize], u8>,
    pub Reserved1: [BYTE; 7usize],
    pub OptimalUnmapGranularity: DWORDLONG,
    pub UnmapGranularityAlignment: DWORDLONG,
    pub MaxUnmapLbaCount: DWORD,
    pub MaxUnmapBlockDescriptorCount: DWORD,
}
#[test]
fn bindgen_test_layout__DEVICE_LB_PROVISIONING_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_LB_PROVISIONING_DESCRIPTOR>(),
        40usize,
        concat!("Size of: ", stringify!(_DEVICE_LB_PROVISIONING_DESCRIPTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_LB_PROVISIONING_DESCRIPTOR>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICE_LB_PROVISIONING_DESCRIPTOR)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_LB_PROVISIONING_DESCRIPTOR>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_LB_PROVISIONING_DESCRIPTOR),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_LB_PROVISIONING_DESCRIPTOR>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_LB_PROVISIONING_DESCRIPTOR),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_LB_PROVISIONING_DESCRIPTOR>())).Reserved1 as *const _
                as usize
        },
        9usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_LB_PROVISIONING_DESCRIPTOR),
            "::",
            stringify!(Reserved1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_LB_PROVISIONING_DESCRIPTOR>())).OptimalUnmapGranularity
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_LB_PROVISIONING_DESCRIPTOR),
            "::",
            stringify!(OptimalUnmapGranularity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_LB_PROVISIONING_DESCRIPTOR>())).UnmapGranularityAlignment
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_LB_PROVISIONING_DESCRIPTOR),
            "::",
            stringify!(UnmapGranularityAlignment)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_LB_PROVISIONING_DESCRIPTOR>())).MaxUnmapLbaCount
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_LB_PROVISIONING_DESCRIPTOR),
            "::",
            stringify!(MaxUnmapLbaCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_LB_PROVISIONING_DESCRIPTOR>()))
                .MaxUnmapBlockDescriptorCount as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_LB_PROVISIONING_DESCRIPTOR),
            "::",
            stringify!(MaxUnmapBlockDescriptorCount)
        )
    );
}
impl _DEVICE_LB_PROVISIONING_DESCRIPTOR {
    #[inline]
    pub fn ThinProvisioningEnabled(&self) -> BYTE {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_ThinProvisioningEnabled(&mut self, val: BYTE) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn ThinProvisioningReadZeros(&self) -> BYTE {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_ThinProvisioningReadZeros(&mut self, val: BYTE) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn AnchorSupported(&self) -> BYTE {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 3u8) as u8) }
    }
    #[inline]
    pub fn set_AnchorSupported(&mut self, val: BYTE) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(2usize, 3u8, val as u64)
        }
    }
    #[inline]
    pub fn UnmapGranularityAlignmentValid(&self) -> BYTE {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_UnmapGranularityAlignmentValid(&mut self, val: BYTE) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(5usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn Reserved0(&self) -> BYTE {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 2u8) as u8) }
    }
    #[inline]
    pub fn set_Reserved0(&mut self, val: BYTE) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(6usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        ThinProvisioningEnabled: BYTE,
        ThinProvisioningReadZeros: BYTE,
        AnchorSupported: BYTE,
        UnmapGranularityAlignmentValid: BYTE,
        Reserved0: BYTE,
    ) -> __BindgenBitfieldUnit<[u8; 1usize], u8> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize], u8> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let ThinProvisioningEnabled: u8 =
                unsafe { ::std::mem::transmute(ThinProvisioningEnabled) };
            ThinProvisioningEnabled as u64
        });
        __bindgen_bitfield_unit.set(1usize, 1u8, {
            let ThinProvisioningReadZeros: u8 =
                unsafe { ::std::mem::transmute(ThinProvisioningReadZeros) };
            ThinProvisioningReadZeros as u64
        });
        __bindgen_bitfield_unit.set(2usize, 3u8, {
            let AnchorSupported: u8 = unsafe { ::std::mem::transmute(AnchorSupported) };
            AnchorSupported as u64
        });
        __bindgen_bitfield_unit.set(5usize, 1u8, {
            let UnmapGranularityAlignmentValid: u8 =
                unsafe { ::std::mem::transmute(UnmapGranularityAlignmentValid) };
            UnmapGranularityAlignmentValid as u64
        });
        __bindgen_bitfield_unit.set(6usize, 2u8, {
            let Reserved0: u8 = unsafe { ::std::mem::transmute(Reserved0) };
            Reserved0 as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type DEVICE_LB_PROVISIONING_DESCRIPTOR = _DEVICE_LB_PROVISIONING_DESCRIPTOR;
pub type PDEVICE_LB_PROVISIONING_DESCRIPTOR = *mut _DEVICE_LB_PROVISIONING_DESCRIPTOR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_LB_PROVISIONING_MAP_RESOURCES {
    pub Size: DWORD,
    pub Version: DWORD,
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize], u8>,
    pub Reserved1: [BYTE; 3usize],
    pub _bitfield_2: __BindgenBitfieldUnit<[u8; 1usize], u8>,
    pub Reserved3: [BYTE; 3usize],
    pub AvailableMappingResources: DWORDLONG,
    pub UsedMappingResources: DWORDLONG,
}
#[test]
fn bindgen_test_layout__STORAGE_LB_PROVISIONING_MAP_RESOURCES() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_LB_PROVISIONING_MAP_RESOURCES>(),
        32usize,
        concat!(
            "Size of: ",
            stringify!(_STORAGE_LB_PROVISIONING_MAP_RESOURCES)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_LB_PROVISIONING_MAP_RESOURCES>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_LB_PROVISIONING_MAP_RESOURCES)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_LB_PROVISIONING_MAP_RESOURCES>())).Size as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_LB_PROVISIONING_MAP_RESOURCES),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_LB_PROVISIONING_MAP_RESOURCES>())).Version as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_LB_PROVISIONING_MAP_RESOURCES),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_LB_PROVISIONING_MAP_RESOURCES>())).Reserved1 as *const _
                as usize
        },
        9usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_LB_PROVISIONING_MAP_RESOURCES),
            "::",
            stringify!(Reserved1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_LB_PROVISIONING_MAP_RESOURCES>())).Reserved3 as *const _
                as usize
        },
        13usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_LB_PROVISIONING_MAP_RESOURCES),
            "::",
            stringify!(Reserved3)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_LB_PROVISIONING_MAP_RESOURCES>()))
                .AvailableMappingResources as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_LB_PROVISIONING_MAP_RESOURCES),
            "::",
            stringify!(AvailableMappingResources)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_LB_PROVISIONING_MAP_RESOURCES>())).UsedMappingResources
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_LB_PROVISIONING_MAP_RESOURCES),
            "::",
            stringify!(UsedMappingResources)
        )
    );
}
impl _STORAGE_LB_PROVISIONING_MAP_RESOURCES {
    #[inline]
    pub fn AvailableMappingResourcesValid(&self) -> BYTE {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_AvailableMappingResourcesValid(&mut self, val: BYTE) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn UsedMappingResourcesValid(&self) -> BYTE {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_UsedMappingResourcesValid(&mut self, val: BYTE) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn Reserved0(&self) -> BYTE {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 6u8) as u8) }
    }
    #[inline]
    pub fn set_Reserved0(&mut self, val: BYTE) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(2usize, 6u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        AvailableMappingResourcesValid: BYTE,
        UsedMappingResourcesValid: BYTE,
        Reserved0: BYTE,
    ) -> __BindgenBitfieldUnit<[u8; 1usize], u8> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize], u8> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let AvailableMappingResourcesValid: u8 =
                unsafe { ::std::mem::transmute(AvailableMappingResourcesValid) };
            AvailableMappingResourcesValid as u64
        });
        __bindgen_bitfield_unit.set(1usize, 1u8, {
            let UsedMappingResourcesValid: u8 =
                unsafe { ::std::mem::transmute(UsedMappingResourcesValid) };
            UsedMappingResourcesValid as u64
        });
        __bindgen_bitfield_unit.set(2usize, 6u8, {
            let Reserved0: u8 = unsafe { ::std::mem::transmute(Reserved0) };
            Reserved0 as u64
        });
        __bindgen_bitfield_unit
    }
    #[inline]
    pub fn AvailableMappingResourcesScope(&self) -> BYTE {
        unsafe { ::std::mem::transmute(self._bitfield_2.get(0usize, 2u8) as u8) }
    }
    #[inline]
    pub fn set_AvailableMappingResourcesScope(&mut self, val: BYTE) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_2.set(0usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub fn UsedMappingResourcesScope(&self) -> BYTE {
        unsafe { ::std::mem::transmute(self._bitfield_2.get(2usize, 2u8) as u8) }
    }
    #[inline]
    pub fn set_UsedMappingResourcesScope(&mut self, val: BYTE) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_2.set(2usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub fn Reserved2(&self) -> BYTE {
        unsafe { ::std::mem::transmute(self._bitfield_2.get(4usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_Reserved2(&mut self, val: BYTE) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_2.set(4usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_2(
        AvailableMappingResourcesScope: BYTE,
        UsedMappingResourcesScope: BYTE,
        Reserved2: BYTE,
    ) -> __BindgenBitfieldUnit<[u8; 1usize], u8> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize], u8> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 2u8, {
            let AvailableMappingResourcesScope: u8 =
                unsafe { ::std::mem::transmute(AvailableMappingResourcesScope) };
            AvailableMappingResourcesScope as u64
        });
        __bindgen_bitfield_unit.set(2usize, 2u8, {
            let UsedMappingResourcesScope: u8 =
                unsafe { ::std::mem::transmute(UsedMappingResourcesScope) };
            UsedMappingResourcesScope as u64
        });
        __bindgen_bitfield_unit.set(4usize, 4u8, {
            let Reserved2: u8 = unsafe { ::std::mem::transmute(Reserved2) };
            Reserved2 as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type STORAGE_LB_PROVISIONING_MAP_RESOURCES = _STORAGE_LB_PROVISIONING_MAP_RESOURCES;
pub type PSTORAGE_LB_PROVISIONING_MAP_RESOURCES = *mut _STORAGE_LB_PROVISIONING_MAP_RESOURCES;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_POWER_DESCRIPTOR {
    pub Version: DWORD,
    pub Size: DWORD,
    pub DeviceAttentionSupported: BOOLEAN,
    pub AsynchronousNotificationSupported: BOOLEAN,
    pub IdlePowerManagementEnabled: BOOLEAN,
    pub D3ColdEnabled: BOOLEAN,
    pub D3ColdSupported: BOOLEAN,
    pub NoVerifyDuringIdlePower: BOOLEAN,
    pub Reserved: [BYTE; 2usize],
    pub IdleTimeoutInMS: DWORD,
}
#[test]
fn bindgen_test_layout__DEVICE_POWER_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_POWER_DESCRIPTOR>(),
        20usize,
        concat!("Size of: ", stringify!(_DEVICE_POWER_DESCRIPTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_POWER_DESCRIPTOR>(),
        4usize,
        concat!("Alignment of ", stringify!(_DEVICE_POWER_DESCRIPTOR))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_POWER_DESCRIPTOR>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_POWER_DESCRIPTOR),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DEVICE_POWER_DESCRIPTOR>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_POWER_DESCRIPTOR),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_POWER_DESCRIPTOR>())).DeviceAttentionSupported
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_POWER_DESCRIPTOR),
            "::",
            stringify!(DeviceAttentionSupported)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_POWER_DESCRIPTOR>())).AsynchronousNotificationSupported
                as *const _ as usize
        },
        9usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_POWER_DESCRIPTOR),
            "::",
            stringify!(AsynchronousNotificationSupported)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_POWER_DESCRIPTOR>())).IdlePowerManagementEnabled
                as *const _ as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_POWER_DESCRIPTOR),
            "::",
            stringify!(IdlePowerManagementEnabled)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_POWER_DESCRIPTOR>())).D3ColdEnabled as *const _ as usize
        },
        11usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_POWER_DESCRIPTOR),
            "::",
            stringify!(D3ColdEnabled)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_POWER_DESCRIPTOR>())).D3ColdSupported as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_POWER_DESCRIPTOR),
            "::",
            stringify!(D3ColdSupported)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_POWER_DESCRIPTOR>())).NoVerifyDuringIdlePower as *const _
                as usize
        },
        13usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_POWER_DESCRIPTOR),
            "::",
            stringify!(NoVerifyDuringIdlePower)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_POWER_DESCRIPTOR>())).Reserved as *const _ as usize
        },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_POWER_DESCRIPTOR),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_POWER_DESCRIPTOR>())).IdleTimeoutInMS as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_POWER_DESCRIPTOR),
            "::",
            stringify!(IdleTimeoutInMS)
        )
    );
}
pub type DEVICE_POWER_DESCRIPTOR = _DEVICE_POWER_DESCRIPTOR;
pub type PDEVICE_POWER_DESCRIPTOR = *mut _DEVICE_POWER_DESCRIPTOR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_COPY_OFFLOAD_DESCRIPTOR {
    pub Version: DWORD,
    pub Size: DWORD,
    pub MaximumTokenLifetime: DWORD,
    pub DefaultTokenLifetime: DWORD,
    pub MaximumTransferSize: DWORDLONG,
    pub OptimalTransferCount: DWORDLONG,
    pub MaximumDataDescriptors: DWORD,
    pub MaximumTransferLengthPerDescriptor: DWORD,
    pub OptimalTransferLengthPerDescriptor: DWORD,
    pub OptimalTransferLengthGranularity: WORD,
    pub Reserved: [BYTE; 2usize],
}
#[test]
fn bindgen_test_layout__DEVICE_COPY_OFFLOAD_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_COPY_OFFLOAD_DESCRIPTOR>(),
        48usize,
        concat!("Size of: ", stringify!(_DEVICE_COPY_OFFLOAD_DESCRIPTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_COPY_OFFLOAD_DESCRIPTOR>(),
        8usize,
        concat!("Alignment of ", stringify!(_DEVICE_COPY_OFFLOAD_DESCRIPTOR))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_COPY_OFFLOAD_DESCRIPTOR>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_COPY_OFFLOAD_DESCRIPTOR),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_COPY_OFFLOAD_DESCRIPTOR>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_COPY_OFFLOAD_DESCRIPTOR),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_COPY_OFFLOAD_DESCRIPTOR>())).MaximumTokenLifetime
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_COPY_OFFLOAD_DESCRIPTOR),
            "::",
            stringify!(MaximumTokenLifetime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_COPY_OFFLOAD_DESCRIPTOR>())).DefaultTokenLifetime
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_COPY_OFFLOAD_DESCRIPTOR),
            "::",
            stringify!(DefaultTokenLifetime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_COPY_OFFLOAD_DESCRIPTOR>())).MaximumTransferSize
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_COPY_OFFLOAD_DESCRIPTOR),
            "::",
            stringify!(MaximumTransferSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_COPY_OFFLOAD_DESCRIPTOR>())).OptimalTransferCount
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_COPY_OFFLOAD_DESCRIPTOR),
            "::",
            stringify!(OptimalTransferCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_COPY_OFFLOAD_DESCRIPTOR>())).MaximumDataDescriptors
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_COPY_OFFLOAD_DESCRIPTOR),
            "::",
            stringify!(MaximumDataDescriptors)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_COPY_OFFLOAD_DESCRIPTOR>()))
                .MaximumTransferLengthPerDescriptor as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_COPY_OFFLOAD_DESCRIPTOR),
            "::",
            stringify!(MaximumTransferLengthPerDescriptor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_COPY_OFFLOAD_DESCRIPTOR>()))
                .OptimalTransferLengthPerDescriptor as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_COPY_OFFLOAD_DESCRIPTOR),
            "::",
            stringify!(OptimalTransferLengthPerDescriptor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_COPY_OFFLOAD_DESCRIPTOR>()))
                .OptimalTransferLengthGranularity as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_COPY_OFFLOAD_DESCRIPTOR),
            "::",
            stringify!(OptimalTransferLengthGranularity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_COPY_OFFLOAD_DESCRIPTOR>())).Reserved as *const _
                as usize
        },
        46usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_COPY_OFFLOAD_DESCRIPTOR),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type DEVICE_COPY_OFFLOAD_DESCRIPTOR = _DEVICE_COPY_OFFLOAD_DESCRIPTOR;
pub type PDEVICE_COPY_OFFLOAD_DESCRIPTOR = *mut _DEVICE_COPY_OFFLOAD_DESCRIPTOR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_DEVICE_RESILIENCY_DESCRIPTOR {
    pub Version: DWORD,
    pub Size: DWORD,
    pub NameOffset: DWORD,
    pub NumberOfLogicalCopies: DWORD,
    pub NumberOfPhysicalCopies: DWORD,
    pub PhysicalDiskRedundancy: DWORD,
    pub NumberOfColumns: DWORD,
    pub Interleave: DWORD,
}
#[test]
fn bindgen_test_layout__STORAGE_DEVICE_RESILIENCY_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_DEVICE_RESILIENCY_DESCRIPTOR>(),
        32usize,
        concat!(
            "Size of: ",
            stringify!(_STORAGE_DEVICE_RESILIENCY_DESCRIPTOR)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_DEVICE_RESILIENCY_DESCRIPTOR>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_DEVICE_RESILIENCY_DESCRIPTOR)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_RESILIENCY_DESCRIPTOR>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_RESILIENCY_DESCRIPTOR),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_RESILIENCY_DESCRIPTOR>())).Size as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_RESILIENCY_DESCRIPTOR),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_RESILIENCY_DESCRIPTOR>())).NameOffset as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_RESILIENCY_DESCRIPTOR),
            "::",
            stringify!(NameOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_RESILIENCY_DESCRIPTOR>())).NumberOfLogicalCopies
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_RESILIENCY_DESCRIPTOR),
            "::",
            stringify!(NumberOfLogicalCopies)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_RESILIENCY_DESCRIPTOR>())).NumberOfPhysicalCopies
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_RESILIENCY_DESCRIPTOR),
            "::",
            stringify!(NumberOfPhysicalCopies)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_RESILIENCY_DESCRIPTOR>())).PhysicalDiskRedundancy
                as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_RESILIENCY_DESCRIPTOR),
            "::",
            stringify!(PhysicalDiskRedundancy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_RESILIENCY_DESCRIPTOR>())).NumberOfColumns
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_RESILIENCY_DESCRIPTOR),
            "::",
            stringify!(NumberOfColumns)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_RESILIENCY_DESCRIPTOR>())).Interleave as *const _
                as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_RESILIENCY_DESCRIPTOR),
            "::",
            stringify!(Interleave)
        )
    );
}
pub type STORAGE_DEVICE_RESILIENCY_DESCRIPTOR = _STORAGE_DEVICE_RESILIENCY_DESCRIPTOR;
pub type PSTORAGE_DEVICE_RESILIENCY_DESCRIPTOR = *mut _STORAGE_DEVICE_RESILIENCY_DESCRIPTOR;
pub const _STORAGE_RPMB_FRAME_TYPE_StorageRpmbFrameTypeUnknown: _STORAGE_RPMB_FRAME_TYPE = 0;
pub const _STORAGE_RPMB_FRAME_TYPE_StorageRpmbFrameTypeStandard: _STORAGE_RPMB_FRAME_TYPE = 1;
pub const _STORAGE_RPMB_FRAME_TYPE_StorageRpmbFrameTypeMax: _STORAGE_RPMB_FRAME_TYPE = 2;
pub type _STORAGE_RPMB_FRAME_TYPE = ::std::os::raw::c_int;
pub use self::_STORAGE_RPMB_FRAME_TYPE as STORAGE_RPMB_FRAME_TYPE;
pub type PSTORAGE_RPMB_FRAME_TYPE = *mut _STORAGE_RPMB_FRAME_TYPE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_RPMB_DESCRIPTOR {
    pub Version: DWORD,
    pub Size: DWORD,
    pub SizeInBytes: DWORD,
    pub MaxReliableWriteSizeInBytes: DWORD,
    pub FrameFormat: STORAGE_RPMB_FRAME_TYPE,
}
#[test]
fn bindgen_test_layout__STORAGE_RPMB_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_RPMB_DESCRIPTOR>(),
        20usize,
        concat!("Size of: ", stringify!(_STORAGE_RPMB_DESCRIPTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_RPMB_DESCRIPTOR>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_RPMB_DESCRIPTOR))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_RPMB_DESCRIPTOR>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_RPMB_DESCRIPTOR),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_RPMB_DESCRIPTOR>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_RPMB_DESCRIPTOR),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_RPMB_DESCRIPTOR>())).SizeInBytes as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_RPMB_DESCRIPTOR),
            "::",
            stringify!(SizeInBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_RPMB_DESCRIPTOR>())).MaxReliableWriteSizeInBytes
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_RPMB_DESCRIPTOR),
            "::",
            stringify!(MaxReliableWriteSizeInBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_RPMB_DESCRIPTOR>())).FrameFormat as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_RPMB_DESCRIPTOR),
            "::",
            stringify!(FrameFormat)
        )
    );
}
pub type STORAGE_RPMB_DESCRIPTOR = _STORAGE_RPMB_DESCRIPTOR;
pub type PSTORAGE_RPMB_DESCRIPTOR = *mut _STORAGE_RPMB_DESCRIPTOR;
pub const _STORAGE_CRYPTO_ALGORITHM_ID_StorageCryptoAlgorithmUnknown: _STORAGE_CRYPTO_ALGORITHM_ID =
    0;
pub const _STORAGE_CRYPTO_ALGORITHM_ID_StorageCryptoAlgorithmXTSAES: _STORAGE_CRYPTO_ALGORITHM_ID =
    1;
pub const _STORAGE_CRYPTO_ALGORITHM_ID_StorageCryptoAlgorithmBitlockerAESCBC:
    _STORAGE_CRYPTO_ALGORITHM_ID = 2;
pub const _STORAGE_CRYPTO_ALGORITHM_ID_StorageCryptoAlgorithmAESECB: _STORAGE_CRYPTO_ALGORITHM_ID =
    3;
pub const _STORAGE_CRYPTO_ALGORITHM_ID_StorageCryptoAlgorithmESSIVAESCBC:
    _STORAGE_CRYPTO_ALGORITHM_ID = 4;
pub const _STORAGE_CRYPTO_ALGORITHM_ID_StorageCryptoAlgorithmMax: _STORAGE_CRYPTO_ALGORITHM_ID = 5;
pub type _STORAGE_CRYPTO_ALGORITHM_ID = ::std::os::raw::c_int;
pub use self::_STORAGE_CRYPTO_ALGORITHM_ID as STORAGE_CRYPTO_ALGORITHM_ID;
pub type PSTORAGE_CRYPTO_ALGORITHM_ID = *mut _STORAGE_CRYPTO_ALGORITHM_ID;
pub const _STORAGE_CRYPTO_KEY_SIZE_StorageCryptoKeySizeUnknown: _STORAGE_CRYPTO_KEY_SIZE = 0;
pub const _STORAGE_CRYPTO_KEY_SIZE_StorageCryptoKeySize128Bits: _STORAGE_CRYPTO_KEY_SIZE = 1;
pub const _STORAGE_CRYPTO_KEY_SIZE_StorageCryptoKeySize192Bits: _STORAGE_CRYPTO_KEY_SIZE = 2;
pub const _STORAGE_CRYPTO_KEY_SIZE_StorageCryptoKeySize256Bits: _STORAGE_CRYPTO_KEY_SIZE = 3;
pub const _STORAGE_CRYPTO_KEY_SIZE_StorageCryptoKeySize512Bits: _STORAGE_CRYPTO_KEY_SIZE = 4;
pub type _STORAGE_CRYPTO_KEY_SIZE = ::std::os::raw::c_int;
pub use self::_STORAGE_CRYPTO_KEY_SIZE as STORAGE_CRYPTO_KEY_SIZE;
pub type PSTORAGE_CRYPTO_KEY_SIZE = *mut _STORAGE_CRYPTO_KEY_SIZE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_CRYPTO_CAPABILITY {
    pub Version: DWORD,
    pub Size: DWORD,
    pub CryptoCapabilityIndex: DWORD,
    pub AlgorithmId: STORAGE_CRYPTO_ALGORITHM_ID,
    pub KeySize: STORAGE_CRYPTO_KEY_SIZE,
    pub DataUnitSizeBitmask: DWORD,
}
#[test]
fn bindgen_test_layout__STORAGE_CRYPTO_CAPABILITY() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_CRYPTO_CAPABILITY>(),
        24usize,
        concat!("Size of: ", stringify!(_STORAGE_CRYPTO_CAPABILITY))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_CRYPTO_CAPABILITY>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_CRYPTO_CAPABILITY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_CRYPTO_CAPABILITY>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_CRYPTO_CAPABILITY),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_CRYPTO_CAPABILITY>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_CRYPTO_CAPABILITY),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_CRYPTO_CAPABILITY>())).CryptoCapabilityIndex as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_CRYPTO_CAPABILITY),
            "::",
            stringify!(CryptoCapabilityIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_CRYPTO_CAPABILITY>())).AlgorithmId as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_CRYPTO_CAPABILITY),
            "::",
            stringify!(AlgorithmId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_CRYPTO_CAPABILITY>())).KeySize as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_CRYPTO_CAPABILITY),
            "::",
            stringify!(KeySize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_CRYPTO_CAPABILITY>())).DataUnitSizeBitmask as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_CRYPTO_CAPABILITY),
            "::",
            stringify!(DataUnitSizeBitmask)
        )
    );
}
pub type STORAGE_CRYPTO_CAPABILITY = _STORAGE_CRYPTO_CAPABILITY;
pub type PSTORAGE_CRYPTO_CAPABILITY = *mut _STORAGE_CRYPTO_CAPABILITY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_CRYPTO_DESCRIPTOR {
    pub Version: DWORD,
    pub Size: DWORD,
    pub NumKeysSupported: DWORD,
    pub NumCryptoCapabilities: DWORD,
    pub CryptoCapabilities: [STORAGE_CRYPTO_CAPABILITY; 1usize],
}
#[test]
fn bindgen_test_layout__STORAGE_CRYPTO_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_CRYPTO_DESCRIPTOR>(),
        40usize,
        concat!("Size of: ", stringify!(_STORAGE_CRYPTO_DESCRIPTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_CRYPTO_DESCRIPTOR>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_CRYPTO_DESCRIPTOR))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_CRYPTO_DESCRIPTOR>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_CRYPTO_DESCRIPTOR),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_CRYPTO_DESCRIPTOR>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_CRYPTO_DESCRIPTOR),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_CRYPTO_DESCRIPTOR>())).NumKeysSupported as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_CRYPTO_DESCRIPTOR),
            "::",
            stringify!(NumKeysSupported)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_CRYPTO_DESCRIPTOR>())).NumCryptoCapabilities as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_CRYPTO_DESCRIPTOR),
            "::",
            stringify!(NumCryptoCapabilities)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_CRYPTO_DESCRIPTOR>())).CryptoCapabilities as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_CRYPTO_DESCRIPTOR),
            "::",
            stringify!(CryptoCapabilities)
        )
    );
}
pub type STORAGE_CRYPTO_DESCRIPTOR = _STORAGE_CRYPTO_DESCRIPTOR;
pub type PSTORAGE_CRYPTO_DESCRIPTOR = *mut _STORAGE_CRYPTO_DESCRIPTOR;
pub const _STORAGE_TIER_MEDIA_TYPE_StorageTierMediaTypeUnspecified: _STORAGE_TIER_MEDIA_TYPE = 0;
pub const _STORAGE_TIER_MEDIA_TYPE_StorageTierMediaTypeDisk: _STORAGE_TIER_MEDIA_TYPE = 1;
pub const _STORAGE_TIER_MEDIA_TYPE_StorageTierMediaTypeSsd: _STORAGE_TIER_MEDIA_TYPE = 2;
pub const _STORAGE_TIER_MEDIA_TYPE_StorageTierMediaTypeScm: _STORAGE_TIER_MEDIA_TYPE = 4;
pub const _STORAGE_TIER_MEDIA_TYPE_StorageTierMediaTypeMax: _STORAGE_TIER_MEDIA_TYPE = 5;
pub type _STORAGE_TIER_MEDIA_TYPE = ::std::os::raw::c_int;
pub use self::_STORAGE_TIER_MEDIA_TYPE as STORAGE_TIER_MEDIA_TYPE;
pub type PSTORAGE_TIER_MEDIA_TYPE = *mut _STORAGE_TIER_MEDIA_TYPE;
pub const _STORAGE_TIER_CLASS_StorageTierClassUnspecified: _STORAGE_TIER_CLASS = 0;
pub const _STORAGE_TIER_CLASS_StorageTierClassCapacity: _STORAGE_TIER_CLASS = 1;
pub const _STORAGE_TIER_CLASS_StorageTierClassPerformance: _STORAGE_TIER_CLASS = 2;
pub const _STORAGE_TIER_CLASS_StorageTierClassMax: _STORAGE_TIER_CLASS = 3;
pub type _STORAGE_TIER_CLASS = ::std::os::raw::c_int;
pub use self::_STORAGE_TIER_CLASS as STORAGE_TIER_CLASS;
pub type PSTORAGE_TIER_CLASS = *mut _STORAGE_TIER_CLASS;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _STORAGE_TIER {
    pub Id: GUID,
    pub Name: [WCHAR; 256usize],
    pub Description: [WCHAR; 256usize],
    pub Flags: DWORDLONG,
    pub ProvisionedCapacity: DWORDLONG,
    pub MediaType: STORAGE_TIER_MEDIA_TYPE,
    pub Class: STORAGE_TIER_CLASS,
}
#[test]
fn bindgen_test_layout__STORAGE_TIER() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_TIER>(),
        1064usize,
        concat!("Size of: ", stringify!(_STORAGE_TIER))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_TIER>(),
        8usize,
        concat!("Alignment of ", stringify!(_STORAGE_TIER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_TIER>())).Id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TIER),
            "::",
            stringify!(Id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_TIER>())).Name as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TIER),
            "::",
            stringify!(Name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_TIER>())).Description as *const _ as usize },
        528usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TIER),
            "::",
            stringify!(Description)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_TIER>())).Flags as *const _ as usize },
        1040usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TIER),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_TIER>())).ProvisionedCapacity as *const _ as usize
        },
        1048usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TIER),
            "::",
            stringify!(ProvisionedCapacity)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_TIER>())).MediaType as *const _ as usize },
        1056usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TIER),
            "::",
            stringify!(MediaType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_TIER>())).Class as *const _ as usize },
        1060usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TIER),
            "::",
            stringify!(Class)
        )
    );
}
pub type STORAGE_TIER = _STORAGE_TIER;
pub type PSTORAGE_TIER = *mut _STORAGE_TIER;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _STORAGE_DEVICE_TIERING_DESCRIPTOR {
    pub Version: DWORD,
    pub Size: DWORD,
    pub Flags: DWORD,
    pub TotalNumberOfTiers: DWORD,
    pub NumberOfTiersReturned: DWORD,
    pub Tiers: [STORAGE_TIER; 1usize],
}
#[test]
fn bindgen_test_layout__STORAGE_DEVICE_TIERING_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_DEVICE_TIERING_DESCRIPTOR>(),
        1088usize,
        concat!("Size of: ", stringify!(_STORAGE_DEVICE_TIERING_DESCRIPTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_DEVICE_TIERING_DESCRIPTOR>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_DEVICE_TIERING_DESCRIPTOR)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_TIERING_DESCRIPTOR>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_TIERING_DESCRIPTOR),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_TIERING_DESCRIPTOR>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_TIERING_DESCRIPTOR),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_TIERING_DESCRIPTOR>())).Flags as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_TIERING_DESCRIPTOR),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_TIERING_DESCRIPTOR>())).TotalNumberOfTiers
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_TIERING_DESCRIPTOR),
            "::",
            stringify!(TotalNumberOfTiers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_TIERING_DESCRIPTOR>())).NumberOfTiersReturned
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_TIERING_DESCRIPTOR),
            "::",
            stringify!(NumberOfTiersReturned)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_TIERING_DESCRIPTOR>())).Tiers as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_TIERING_DESCRIPTOR),
            "::",
            stringify!(Tiers)
        )
    );
}
pub type STORAGE_DEVICE_TIERING_DESCRIPTOR = _STORAGE_DEVICE_TIERING_DESCRIPTOR;
pub type PSTORAGE_DEVICE_TIERING_DESCRIPTOR = *mut _STORAGE_DEVICE_TIERING_DESCRIPTOR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR {
    pub Version: DWORD,
    pub Size: DWORD,
    pub NumberOfFaultDomains: DWORD,
    pub FaultDomainIds: [GUID; 1usize],
}
#[test]
fn bindgen_test_layout__STORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR>(),
        28usize,
        concat!(
            "Size of: ",
            stringify!(_STORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR>())).Size as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR>())).NumberOfFaultDomains
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR),
            "::",
            stringify!(NumberOfFaultDomains)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR>())).FaultDomainIds
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR),
            "::",
            stringify!(FaultDomainIds)
        )
    );
}
pub type STORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR = _STORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR;
pub type PSTORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR = *mut _STORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR;
pub const _STORAGE_PROTOCOL_TYPE_ProtocolTypeUnknown: _STORAGE_PROTOCOL_TYPE = 0;
pub const _STORAGE_PROTOCOL_TYPE_ProtocolTypeScsi: _STORAGE_PROTOCOL_TYPE = 1;
pub const _STORAGE_PROTOCOL_TYPE_ProtocolTypeAta: _STORAGE_PROTOCOL_TYPE = 2;
pub const _STORAGE_PROTOCOL_TYPE_ProtocolTypeNvme: _STORAGE_PROTOCOL_TYPE = 3;
pub const _STORAGE_PROTOCOL_TYPE_ProtocolTypeSd: _STORAGE_PROTOCOL_TYPE = 4;
pub const _STORAGE_PROTOCOL_TYPE_ProtocolTypeUfs: _STORAGE_PROTOCOL_TYPE = 5;
pub const _STORAGE_PROTOCOL_TYPE_ProtocolTypeProprietary: _STORAGE_PROTOCOL_TYPE = 126;
pub const _STORAGE_PROTOCOL_TYPE_ProtocolTypeMaxReserved: _STORAGE_PROTOCOL_TYPE = 127;
pub type _STORAGE_PROTOCOL_TYPE = ::std::os::raw::c_int;
pub use self::_STORAGE_PROTOCOL_TYPE as STORAGE_PROTOCOL_TYPE;
pub type PSTORAGE_PROTOCOL_TYPE = *mut _STORAGE_PROTOCOL_TYPE;
pub const _STORAGE_PROTOCOL_NVME_DATA_TYPE_NVMeDataTypeUnknown: _STORAGE_PROTOCOL_NVME_DATA_TYPE =
    0;
pub const _STORAGE_PROTOCOL_NVME_DATA_TYPE_NVMeDataTypeIdentify: _STORAGE_PROTOCOL_NVME_DATA_TYPE =
    1;
pub const _STORAGE_PROTOCOL_NVME_DATA_TYPE_NVMeDataTypeLogPage: _STORAGE_PROTOCOL_NVME_DATA_TYPE =
    2;
pub const _STORAGE_PROTOCOL_NVME_DATA_TYPE_NVMeDataTypeFeature: _STORAGE_PROTOCOL_NVME_DATA_TYPE =
    3;
pub type _STORAGE_PROTOCOL_NVME_DATA_TYPE = ::std::os::raw::c_int;
pub use self::_STORAGE_PROTOCOL_NVME_DATA_TYPE as STORAGE_PROTOCOL_NVME_DATA_TYPE;
pub type PSTORAGE_PROTOCOL_NVME_DATA_TYPE = *mut _STORAGE_PROTOCOL_NVME_DATA_TYPE;
pub const _STORAGE_PROTOCOL_ATA_DATA_TYPE_AtaDataTypeUnknown: _STORAGE_PROTOCOL_ATA_DATA_TYPE = 0;
pub const _STORAGE_PROTOCOL_ATA_DATA_TYPE_AtaDataTypeIdentify: _STORAGE_PROTOCOL_ATA_DATA_TYPE = 1;
pub const _STORAGE_PROTOCOL_ATA_DATA_TYPE_AtaDataTypeLogPage: _STORAGE_PROTOCOL_ATA_DATA_TYPE = 2;
pub type _STORAGE_PROTOCOL_ATA_DATA_TYPE = ::std::os::raw::c_int;
pub use self::_STORAGE_PROTOCOL_ATA_DATA_TYPE as STORAGE_PROTOCOL_ATA_DATA_TYPE;
pub type PSTORAGE_PROTOCOL_ATA_DATA_TYPE = *mut _STORAGE_PROTOCOL_ATA_DATA_TYPE;
pub const _STORAGE_PROTOCOL_UFS_DATA_TYPE_UfsDataTypeUnknown: _STORAGE_PROTOCOL_UFS_DATA_TYPE = 0;
pub const _STORAGE_PROTOCOL_UFS_DATA_TYPE_UfsDataTypeQueryDescriptor:
    _STORAGE_PROTOCOL_UFS_DATA_TYPE = 1;
pub const _STORAGE_PROTOCOL_UFS_DATA_TYPE_UfsDataTypeMax: _STORAGE_PROTOCOL_UFS_DATA_TYPE = 2;
pub type _STORAGE_PROTOCOL_UFS_DATA_TYPE = ::std::os::raw::c_int;
pub use self::_STORAGE_PROTOCOL_UFS_DATA_TYPE as STORAGE_PROTOCOL_UFS_DATA_TYPE;
pub type PSTORAGE_PROTOCOL_UFS_DATA_TYPE = *mut _STORAGE_PROTOCOL_UFS_DATA_TYPE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_PROTOCOL_SPECIFIC_DATA {
    pub ProtocolType: STORAGE_PROTOCOL_TYPE,
    pub DataType: DWORD,
    pub ProtocolDataRequestValue: DWORD,
    pub ProtocolDataRequestSubValue: DWORD,
    pub ProtocolDataOffset: DWORD,
    pub ProtocolDataLength: DWORD,
    pub FixedProtocolReturnData: DWORD,
    pub ProtocolDataRequestSubValue2: DWORD,
    pub ProtocolDataRequestSubValue3: DWORD,
    pub Reserved: DWORD,
}
#[test]
fn bindgen_test_layout__STORAGE_PROTOCOL_SPECIFIC_DATA() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_PROTOCOL_SPECIFIC_DATA>(),
        40usize,
        concat!("Size of: ", stringify!(_STORAGE_PROTOCOL_SPECIFIC_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_PROTOCOL_SPECIFIC_DATA>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_PROTOCOL_SPECIFIC_DATA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_SPECIFIC_DATA>())).ProtocolType as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_SPECIFIC_DATA),
            "::",
            stringify!(ProtocolType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_SPECIFIC_DATA>())).DataType as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_SPECIFIC_DATA),
            "::",
            stringify!(DataType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_SPECIFIC_DATA>())).ProtocolDataRequestValue
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_SPECIFIC_DATA),
            "::",
            stringify!(ProtocolDataRequestValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_SPECIFIC_DATA>())).ProtocolDataRequestSubValue
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_SPECIFIC_DATA),
            "::",
            stringify!(ProtocolDataRequestSubValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_SPECIFIC_DATA>())).ProtocolDataOffset
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_SPECIFIC_DATA),
            "::",
            stringify!(ProtocolDataOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_SPECIFIC_DATA>())).ProtocolDataLength
                as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_SPECIFIC_DATA),
            "::",
            stringify!(ProtocolDataLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_SPECIFIC_DATA>())).FixedProtocolReturnData
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_SPECIFIC_DATA),
            "::",
            stringify!(FixedProtocolReturnData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_SPECIFIC_DATA>())).ProtocolDataRequestSubValue2
                as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_SPECIFIC_DATA),
            "::",
            stringify!(ProtocolDataRequestSubValue2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_SPECIFIC_DATA>())).ProtocolDataRequestSubValue3
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_SPECIFIC_DATA),
            "::",
            stringify!(ProtocolDataRequestSubValue3)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_SPECIFIC_DATA>())).Reserved as *const _
                as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_SPECIFIC_DATA),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type STORAGE_PROTOCOL_SPECIFIC_DATA = _STORAGE_PROTOCOL_SPECIFIC_DATA;
pub type PSTORAGE_PROTOCOL_SPECIFIC_DATA = *mut _STORAGE_PROTOCOL_SPECIFIC_DATA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_PROTOCOL_SPECIFIC_DATA_EXT {
    pub ProtocolType: STORAGE_PROTOCOL_TYPE,
    pub DataType: DWORD,
    pub ProtocolDataValue: DWORD,
    pub ProtocolDataSubValue: DWORD,
    pub ProtocolDataOffset: DWORD,
    pub ProtocolDataLength: DWORD,
    pub FixedProtocolReturnData: DWORD,
    pub ProtocolDataSubValue2: DWORD,
    pub ProtocolDataSubValue3: DWORD,
    pub ProtocolDataSubValue4: DWORD,
    pub ProtocolDataSubValue5: DWORD,
    pub Reserved: [DWORD; 5usize],
}
#[test]
fn bindgen_test_layout__STORAGE_PROTOCOL_SPECIFIC_DATA_EXT() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_PROTOCOL_SPECIFIC_DATA_EXT>(),
        64usize,
        concat!("Size of: ", stringify!(_STORAGE_PROTOCOL_SPECIFIC_DATA_EXT))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_PROTOCOL_SPECIFIC_DATA_EXT>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_PROTOCOL_SPECIFIC_DATA_EXT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_SPECIFIC_DATA_EXT>())).ProtocolType as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_SPECIFIC_DATA_EXT),
            "::",
            stringify!(ProtocolType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_SPECIFIC_DATA_EXT>())).DataType as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_SPECIFIC_DATA_EXT),
            "::",
            stringify!(DataType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_SPECIFIC_DATA_EXT>())).ProtocolDataValue
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_SPECIFIC_DATA_EXT),
            "::",
            stringify!(ProtocolDataValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_SPECIFIC_DATA_EXT>())).ProtocolDataSubValue
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_SPECIFIC_DATA_EXT),
            "::",
            stringify!(ProtocolDataSubValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_SPECIFIC_DATA_EXT>())).ProtocolDataOffset
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_SPECIFIC_DATA_EXT),
            "::",
            stringify!(ProtocolDataOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_SPECIFIC_DATA_EXT>())).ProtocolDataLength
                as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_SPECIFIC_DATA_EXT),
            "::",
            stringify!(ProtocolDataLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_SPECIFIC_DATA_EXT>())).FixedProtocolReturnData
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_SPECIFIC_DATA_EXT),
            "::",
            stringify!(FixedProtocolReturnData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_SPECIFIC_DATA_EXT>())).ProtocolDataSubValue2
                as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_SPECIFIC_DATA_EXT),
            "::",
            stringify!(ProtocolDataSubValue2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_SPECIFIC_DATA_EXT>())).ProtocolDataSubValue3
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_SPECIFIC_DATA_EXT),
            "::",
            stringify!(ProtocolDataSubValue3)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_SPECIFIC_DATA_EXT>())).ProtocolDataSubValue4
                as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_SPECIFIC_DATA_EXT),
            "::",
            stringify!(ProtocolDataSubValue4)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_SPECIFIC_DATA_EXT>())).ProtocolDataSubValue5
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_SPECIFIC_DATA_EXT),
            "::",
            stringify!(ProtocolDataSubValue5)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_SPECIFIC_DATA_EXT>())).Reserved as *const _
                as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_SPECIFIC_DATA_EXT),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type STORAGE_PROTOCOL_SPECIFIC_DATA_EXT = _STORAGE_PROTOCOL_SPECIFIC_DATA_EXT;
pub type PSTORAGE_PROTOCOL_SPECIFIC_DATA_EXT = *mut _STORAGE_PROTOCOL_SPECIFIC_DATA_EXT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_PROTOCOL_DATA_DESCRIPTOR {
    pub Version: DWORD,
    pub Size: DWORD,
    pub ProtocolSpecificData: STORAGE_PROTOCOL_SPECIFIC_DATA,
}
#[test]
fn bindgen_test_layout__STORAGE_PROTOCOL_DATA_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_PROTOCOL_DATA_DESCRIPTOR>(),
        48usize,
        concat!("Size of: ", stringify!(_STORAGE_PROTOCOL_DATA_DESCRIPTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_PROTOCOL_DATA_DESCRIPTOR>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_PROTOCOL_DATA_DESCRIPTOR)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_DATA_DESCRIPTOR>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_DATA_DESCRIPTOR),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_DATA_DESCRIPTOR>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_DATA_DESCRIPTOR),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_DATA_DESCRIPTOR>())).ProtocolSpecificData
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_DATA_DESCRIPTOR),
            "::",
            stringify!(ProtocolSpecificData)
        )
    );
}
pub type STORAGE_PROTOCOL_DATA_DESCRIPTOR = _STORAGE_PROTOCOL_DATA_DESCRIPTOR;
pub type PSTORAGE_PROTOCOL_DATA_DESCRIPTOR = *mut _STORAGE_PROTOCOL_DATA_DESCRIPTOR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT {
    pub Version: DWORD,
    pub Size: DWORD,
    pub ProtocolSpecificData: STORAGE_PROTOCOL_SPECIFIC_DATA_EXT,
}
#[test]
fn bindgen_test_layout__STORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT>(),
        72usize,
        concat!(
            "Size of: ",
            stringify!(_STORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT>())).Size as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT>())).ProtocolSpecificData
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT),
            "::",
            stringify!(ProtocolSpecificData)
        )
    );
}
pub type STORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT = _STORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT;
pub type PSTORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT = *mut _STORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_TEMPERATURE_INFO {
    pub Index: WORD,
    pub Temperature: SHORT,
    pub OverThreshold: SHORT,
    pub UnderThreshold: SHORT,
    pub OverThresholdChangable: BOOLEAN,
    pub UnderThresholdChangable: BOOLEAN,
    pub EventGenerated: BOOLEAN,
    pub Reserved0: BYTE,
    pub Reserved1: DWORD,
}
#[test]
fn bindgen_test_layout__STORAGE_TEMPERATURE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_TEMPERATURE_INFO>(),
        16usize,
        concat!("Size of: ", stringify!(_STORAGE_TEMPERATURE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_TEMPERATURE_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_TEMPERATURE_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_TEMPERATURE_INFO>())).Index as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TEMPERATURE_INFO),
            "::",
            stringify!(Index)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_TEMPERATURE_INFO>())).Temperature as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TEMPERATURE_INFO),
            "::",
            stringify!(Temperature)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_TEMPERATURE_INFO>())).OverThreshold as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TEMPERATURE_INFO),
            "::",
            stringify!(OverThreshold)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_TEMPERATURE_INFO>())).UnderThreshold as *const _
                as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TEMPERATURE_INFO),
            "::",
            stringify!(UnderThreshold)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_TEMPERATURE_INFO>())).OverThresholdChangable as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TEMPERATURE_INFO),
            "::",
            stringify!(OverThresholdChangable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_TEMPERATURE_INFO>())).UnderThresholdChangable
                as *const _ as usize
        },
        9usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TEMPERATURE_INFO),
            "::",
            stringify!(UnderThresholdChangable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_TEMPERATURE_INFO>())).EventGenerated as *const _
                as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TEMPERATURE_INFO),
            "::",
            stringify!(EventGenerated)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_TEMPERATURE_INFO>())).Reserved0 as *const _ as usize
        },
        11usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TEMPERATURE_INFO),
            "::",
            stringify!(Reserved0)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_TEMPERATURE_INFO>())).Reserved1 as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TEMPERATURE_INFO),
            "::",
            stringify!(Reserved1)
        )
    );
}
pub type STORAGE_TEMPERATURE_INFO = _STORAGE_TEMPERATURE_INFO;
pub type PSTORAGE_TEMPERATURE_INFO = *mut _STORAGE_TEMPERATURE_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_TEMPERATURE_DATA_DESCRIPTOR {
    pub Version: DWORD,
    pub Size: DWORD,
    pub CriticalTemperature: SHORT,
    pub WarningTemperature: SHORT,
    pub InfoCount: WORD,
    pub Reserved0: [BYTE; 2usize],
    pub Reserved1: [DWORD; 2usize],
    pub TemperatureInfo: [STORAGE_TEMPERATURE_INFO; 1usize],
}
#[test]
fn bindgen_test_layout__STORAGE_TEMPERATURE_DATA_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_TEMPERATURE_DATA_DESCRIPTOR>(),
        40usize,
        concat!(
            "Size of: ",
            stringify!(_STORAGE_TEMPERATURE_DATA_DESCRIPTOR)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_TEMPERATURE_DATA_DESCRIPTOR>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_TEMPERATURE_DATA_DESCRIPTOR)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_TEMPERATURE_DATA_DESCRIPTOR>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TEMPERATURE_DATA_DESCRIPTOR),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_TEMPERATURE_DATA_DESCRIPTOR>())).Size as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TEMPERATURE_DATA_DESCRIPTOR),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_TEMPERATURE_DATA_DESCRIPTOR>())).CriticalTemperature
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TEMPERATURE_DATA_DESCRIPTOR),
            "::",
            stringify!(CriticalTemperature)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_TEMPERATURE_DATA_DESCRIPTOR>())).WarningTemperature
                as *const _ as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TEMPERATURE_DATA_DESCRIPTOR),
            "::",
            stringify!(WarningTemperature)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_TEMPERATURE_DATA_DESCRIPTOR>())).InfoCount as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TEMPERATURE_DATA_DESCRIPTOR),
            "::",
            stringify!(InfoCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_TEMPERATURE_DATA_DESCRIPTOR>())).Reserved0 as *const _
                as usize
        },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TEMPERATURE_DATA_DESCRIPTOR),
            "::",
            stringify!(Reserved0)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_TEMPERATURE_DATA_DESCRIPTOR>())).Reserved1 as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TEMPERATURE_DATA_DESCRIPTOR),
            "::",
            stringify!(Reserved1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_TEMPERATURE_DATA_DESCRIPTOR>())).TemperatureInfo
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TEMPERATURE_DATA_DESCRIPTOR),
            "::",
            stringify!(TemperatureInfo)
        )
    );
}
pub type STORAGE_TEMPERATURE_DATA_DESCRIPTOR = _STORAGE_TEMPERATURE_DATA_DESCRIPTOR;
pub type PSTORAGE_TEMPERATURE_DATA_DESCRIPTOR = *mut _STORAGE_TEMPERATURE_DATA_DESCRIPTOR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_TEMPERATURE_THRESHOLD {
    pub Version: DWORD,
    pub Size: DWORD,
    pub Flags: WORD,
    pub Index: WORD,
    pub Threshold: SHORT,
    pub OverThreshold: BOOLEAN,
    pub Reserved: BYTE,
}
#[test]
fn bindgen_test_layout__STORAGE_TEMPERATURE_THRESHOLD() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_TEMPERATURE_THRESHOLD>(),
        16usize,
        concat!("Size of: ", stringify!(_STORAGE_TEMPERATURE_THRESHOLD))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_TEMPERATURE_THRESHOLD>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_TEMPERATURE_THRESHOLD))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_TEMPERATURE_THRESHOLD>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TEMPERATURE_THRESHOLD),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_TEMPERATURE_THRESHOLD>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TEMPERATURE_THRESHOLD),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_TEMPERATURE_THRESHOLD>())).Flags as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TEMPERATURE_THRESHOLD),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_TEMPERATURE_THRESHOLD>())).Index as *const _ as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TEMPERATURE_THRESHOLD),
            "::",
            stringify!(Index)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_TEMPERATURE_THRESHOLD>())).Threshold as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TEMPERATURE_THRESHOLD),
            "::",
            stringify!(Threshold)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_TEMPERATURE_THRESHOLD>())).OverThreshold as *const _
                as usize
        },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TEMPERATURE_THRESHOLD),
            "::",
            stringify!(OverThreshold)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_TEMPERATURE_THRESHOLD>())).Reserved as *const _ as usize
        },
        15usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TEMPERATURE_THRESHOLD),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type STORAGE_TEMPERATURE_THRESHOLD = _STORAGE_TEMPERATURE_THRESHOLD;
pub type PSTORAGE_TEMPERATURE_THRESHOLD = *mut _STORAGE_TEMPERATURE_THRESHOLD;
pub const _STORAGE_DEVICE_FORM_FACTOR_FormFactorUnknown: _STORAGE_DEVICE_FORM_FACTOR = 0;
pub const _STORAGE_DEVICE_FORM_FACTOR_FormFactor3_5: _STORAGE_DEVICE_FORM_FACTOR = 1;
pub const _STORAGE_DEVICE_FORM_FACTOR_FormFactor2_5: _STORAGE_DEVICE_FORM_FACTOR = 2;
pub const _STORAGE_DEVICE_FORM_FACTOR_FormFactor1_8: _STORAGE_DEVICE_FORM_FACTOR = 3;
pub const _STORAGE_DEVICE_FORM_FACTOR_FormFactor1_8Less: _STORAGE_DEVICE_FORM_FACTOR = 4;
pub const _STORAGE_DEVICE_FORM_FACTOR_FormFactorEmbedded: _STORAGE_DEVICE_FORM_FACTOR = 5;
pub const _STORAGE_DEVICE_FORM_FACTOR_FormFactorMemoryCard: _STORAGE_DEVICE_FORM_FACTOR = 6;
pub const _STORAGE_DEVICE_FORM_FACTOR_FormFactormSata: _STORAGE_DEVICE_FORM_FACTOR = 7;
pub const _STORAGE_DEVICE_FORM_FACTOR_FormFactorM_2: _STORAGE_DEVICE_FORM_FACTOR = 8;
pub const _STORAGE_DEVICE_FORM_FACTOR_FormFactorPCIeBoard: _STORAGE_DEVICE_FORM_FACTOR = 9;
pub const _STORAGE_DEVICE_FORM_FACTOR_FormFactorDimm: _STORAGE_DEVICE_FORM_FACTOR = 10;
pub type _STORAGE_DEVICE_FORM_FACTOR = ::std::os::raw::c_int;
pub use self::_STORAGE_DEVICE_FORM_FACTOR as STORAGE_DEVICE_FORM_FACTOR;
pub type PSTORAGE_DEVICE_FORM_FACTOR = *mut _STORAGE_DEVICE_FORM_FACTOR;
pub const _STORAGE_COMPONENT_HEALTH_STATUS_HealthStatusUnknown: _STORAGE_COMPONENT_HEALTH_STATUS =
    0;
pub const _STORAGE_COMPONENT_HEALTH_STATUS_HealthStatusNormal: _STORAGE_COMPONENT_HEALTH_STATUS = 1;
pub const _STORAGE_COMPONENT_HEALTH_STATUS_HealthStatusThrottled: _STORAGE_COMPONENT_HEALTH_STATUS =
    2;
pub const _STORAGE_COMPONENT_HEALTH_STATUS_HealthStatusWarning: _STORAGE_COMPONENT_HEALTH_STATUS =
    3;
pub const _STORAGE_COMPONENT_HEALTH_STATUS_HealthStatusDisabled: _STORAGE_COMPONENT_HEALTH_STATUS =
    4;
pub const _STORAGE_COMPONENT_HEALTH_STATUS_HealthStatusFailed: _STORAGE_COMPONENT_HEALTH_STATUS = 5;
pub type _STORAGE_COMPONENT_HEALTH_STATUS = ::std::os::raw::c_int;
pub use self::_STORAGE_COMPONENT_HEALTH_STATUS as STORAGE_COMPONENT_HEALTH_STATUS;
pub type PSTORAGE_COMPONENT_HEALTH_STATUS = *mut _STORAGE_COMPONENT_HEALTH_STATUS;
#[repr(C)]
#[derive(Copy, Clone)]
pub union _STORAGE_SPEC_VERSION {
    pub __bindgen_anon_1: _STORAGE_SPEC_VERSION__bindgen_ty_1,
    pub AsUlong: DWORD,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _STORAGE_SPEC_VERSION__bindgen_ty_1 {
    pub MinorVersion: _STORAGE_SPEC_VERSION__bindgen_ty_1__bindgen_ty_1,
    pub MajorVersion: WORD,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _STORAGE_SPEC_VERSION__bindgen_ty_1__bindgen_ty_1 {
    pub __bindgen_anon_1: _STORAGE_SPEC_VERSION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
    pub AsUshort: WORD,
    _bindgen_union_align: u16,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_SPEC_VERSION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
    pub SubMinor: BYTE,
    pub Minor: BYTE,
}
#[test]
fn bindgen_test_layout__STORAGE_SPEC_VERSION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_SPEC_VERSION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>(),
        2usize,
        concat!(
            "Size of: ",
            stringify!(_STORAGE_SPEC_VERSION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_SPEC_VERSION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_SPEC_VERSION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_SPEC_VERSION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>(
            )))
            .SubMinor as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_SPEC_VERSION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(SubMinor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_SPEC_VERSION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>(
            )))
            .Minor as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_SPEC_VERSION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Minor)
        )
    );
}
#[test]
fn bindgen_test_layout__STORAGE_SPEC_VERSION__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_SPEC_VERSION__bindgen_ty_1__bindgen_ty_1>(),
        2usize,
        concat!(
            "Size of: ",
            stringify!(_STORAGE_SPEC_VERSION__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_SPEC_VERSION__bindgen_ty_1__bindgen_ty_1>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_SPEC_VERSION__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_SPEC_VERSION__bindgen_ty_1__bindgen_ty_1>())).AsUshort
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_SPEC_VERSION__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(AsUshort)
        )
    );
}
#[test]
fn bindgen_test_layout__STORAGE_SPEC_VERSION__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_SPEC_VERSION__bindgen_ty_1>(),
        4usize,
        concat!("Size of: ", stringify!(_STORAGE_SPEC_VERSION__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_SPEC_VERSION__bindgen_ty_1>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_SPEC_VERSION__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_SPEC_VERSION__bindgen_ty_1>())).MinorVersion as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_SPEC_VERSION__bindgen_ty_1),
            "::",
            stringify!(MinorVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_SPEC_VERSION__bindgen_ty_1>())).MajorVersion as *const _
                as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_SPEC_VERSION__bindgen_ty_1),
            "::",
            stringify!(MajorVersion)
        )
    );
}
#[test]
fn bindgen_test_layout__STORAGE_SPEC_VERSION() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_SPEC_VERSION>(),
        4usize,
        concat!("Size of: ", stringify!(_STORAGE_SPEC_VERSION))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_SPEC_VERSION>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_SPEC_VERSION))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_SPEC_VERSION>())).AsUlong as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_SPEC_VERSION),
            "::",
            stringify!(AsUlong)
        )
    );
}
pub type STORAGE_SPEC_VERSION = _STORAGE_SPEC_VERSION;
pub type PSTORAGE_SPEC_VERSION = *mut _STORAGE_SPEC_VERSION;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _STORAGE_PHYSICAL_DEVICE_DATA {
    pub DeviceId: DWORD,
    pub Role: DWORD,
    pub HealthStatus: STORAGE_COMPONENT_HEALTH_STATUS,
    pub CommandProtocol: STORAGE_PROTOCOL_TYPE,
    pub SpecVersion: STORAGE_SPEC_VERSION,
    pub FormFactor: STORAGE_DEVICE_FORM_FACTOR,
    pub Vendor: [BYTE; 8usize],
    pub Model: [BYTE; 40usize],
    pub FirmwareRevision: [BYTE; 16usize],
    pub Capacity: DWORDLONG,
    pub PhysicalLocation: [BYTE; 32usize],
    pub Reserved: [DWORD; 2usize],
}
#[test]
fn bindgen_test_layout__STORAGE_PHYSICAL_DEVICE_DATA() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_PHYSICAL_DEVICE_DATA>(),
        136usize,
        concat!("Size of: ", stringify!(_STORAGE_PHYSICAL_DEVICE_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_PHYSICAL_DEVICE_DATA>(),
        8usize,
        concat!("Alignment of ", stringify!(_STORAGE_PHYSICAL_DEVICE_DATA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_DEVICE_DATA>())).DeviceId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_DEVICE_DATA),
            "::",
            stringify!(DeviceId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_DEVICE_DATA>())).Role as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_DEVICE_DATA),
            "::",
            stringify!(Role)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_DEVICE_DATA>())).HealthStatus as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_DEVICE_DATA),
            "::",
            stringify!(HealthStatus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_DEVICE_DATA>())).CommandProtocol as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_DEVICE_DATA),
            "::",
            stringify!(CommandProtocol)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_DEVICE_DATA>())).SpecVersion as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_DEVICE_DATA),
            "::",
            stringify!(SpecVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_DEVICE_DATA>())).FormFactor as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_DEVICE_DATA),
            "::",
            stringify!(FormFactor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_DEVICE_DATA>())).Vendor as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_DEVICE_DATA),
            "::",
            stringify!(Vendor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_DEVICE_DATA>())).Model as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_DEVICE_DATA),
            "::",
            stringify!(Model)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_DEVICE_DATA>())).FirmwareRevision as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_DEVICE_DATA),
            "::",
            stringify!(FirmwareRevision)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_DEVICE_DATA>())).Capacity as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_DEVICE_DATA),
            "::",
            stringify!(Capacity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_DEVICE_DATA>())).PhysicalLocation as *const _
                as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_DEVICE_DATA),
            "::",
            stringify!(PhysicalLocation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_DEVICE_DATA>())).Reserved as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_DEVICE_DATA),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type STORAGE_PHYSICAL_DEVICE_DATA = _STORAGE_PHYSICAL_DEVICE_DATA;
pub type PSTORAGE_PHYSICAL_DEVICE_DATA = *mut _STORAGE_PHYSICAL_DEVICE_DATA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _STORAGE_PHYSICAL_ADAPTER_DATA {
    pub AdapterId: DWORD,
    pub HealthStatus: STORAGE_COMPONENT_HEALTH_STATUS,
    pub CommandProtocol: STORAGE_PROTOCOL_TYPE,
    pub SpecVersion: STORAGE_SPEC_VERSION,
    pub Vendor: [BYTE; 8usize],
    pub Model: [BYTE; 40usize],
    pub FirmwareRevision: [BYTE; 16usize],
    pub PhysicalLocation: [BYTE; 32usize],
    pub ExpanderConnected: BOOLEAN,
    pub Reserved0: [BYTE; 3usize],
    pub Reserved1: [DWORD; 3usize],
}
#[test]
fn bindgen_test_layout__STORAGE_PHYSICAL_ADAPTER_DATA() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_PHYSICAL_ADAPTER_DATA>(),
        128usize,
        concat!("Size of: ", stringify!(_STORAGE_PHYSICAL_ADAPTER_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_PHYSICAL_ADAPTER_DATA>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_PHYSICAL_ADAPTER_DATA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_ADAPTER_DATA>())).AdapterId as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_ADAPTER_DATA),
            "::",
            stringify!(AdapterId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_ADAPTER_DATA>())).HealthStatus as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_ADAPTER_DATA),
            "::",
            stringify!(HealthStatus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_ADAPTER_DATA>())).CommandProtocol as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_ADAPTER_DATA),
            "::",
            stringify!(CommandProtocol)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_ADAPTER_DATA>())).SpecVersion as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_ADAPTER_DATA),
            "::",
            stringify!(SpecVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_ADAPTER_DATA>())).Vendor as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_ADAPTER_DATA),
            "::",
            stringify!(Vendor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_ADAPTER_DATA>())).Model as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_ADAPTER_DATA),
            "::",
            stringify!(Model)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_ADAPTER_DATA>())).FirmwareRevision as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_ADAPTER_DATA),
            "::",
            stringify!(FirmwareRevision)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_ADAPTER_DATA>())).PhysicalLocation as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_ADAPTER_DATA),
            "::",
            stringify!(PhysicalLocation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_ADAPTER_DATA>())).ExpanderConnected as *const _
                as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_ADAPTER_DATA),
            "::",
            stringify!(ExpanderConnected)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_ADAPTER_DATA>())).Reserved0 as *const _
                as usize
        },
        113usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_ADAPTER_DATA),
            "::",
            stringify!(Reserved0)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_ADAPTER_DATA>())).Reserved1 as *const _
                as usize
        },
        116usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_ADAPTER_DATA),
            "::",
            stringify!(Reserved1)
        )
    );
}
pub type STORAGE_PHYSICAL_ADAPTER_DATA = _STORAGE_PHYSICAL_ADAPTER_DATA;
pub type PSTORAGE_PHYSICAL_ADAPTER_DATA = *mut _STORAGE_PHYSICAL_ADAPTER_DATA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_PHYSICAL_NODE_DATA {
    pub NodeId: DWORD,
    pub AdapterCount: DWORD,
    pub AdapterDataLength: DWORD,
    pub AdapterDataOffset: DWORD,
    pub DeviceCount: DWORD,
    pub DeviceDataLength: DWORD,
    pub DeviceDataOffset: DWORD,
    pub Reserved: [DWORD; 3usize],
}
#[test]
fn bindgen_test_layout__STORAGE_PHYSICAL_NODE_DATA() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_PHYSICAL_NODE_DATA>(),
        40usize,
        concat!("Size of: ", stringify!(_STORAGE_PHYSICAL_NODE_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_PHYSICAL_NODE_DATA>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_PHYSICAL_NODE_DATA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_NODE_DATA>())).NodeId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_NODE_DATA),
            "::",
            stringify!(NodeId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_NODE_DATA>())).AdapterCount as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_NODE_DATA),
            "::",
            stringify!(AdapterCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_NODE_DATA>())).AdapterDataLength as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_NODE_DATA),
            "::",
            stringify!(AdapterDataLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_NODE_DATA>())).AdapterDataOffset as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_NODE_DATA),
            "::",
            stringify!(AdapterDataOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_NODE_DATA>())).DeviceCount as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_NODE_DATA),
            "::",
            stringify!(DeviceCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_NODE_DATA>())).DeviceDataLength as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_NODE_DATA),
            "::",
            stringify!(DeviceDataLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_NODE_DATA>())).DeviceDataOffset as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_NODE_DATA),
            "::",
            stringify!(DeviceDataOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_NODE_DATA>())).Reserved as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_NODE_DATA),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type STORAGE_PHYSICAL_NODE_DATA = _STORAGE_PHYSICAL_NODE_DATA;
pub type PSTORAGE_PHYSICAL_NODE_DATA = *mut _STORAGE_PHYSICAL_NODE_DATA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR {
    pub Version: DWORD,
    pub Size: DWORD,
    pub NodeCount: DWORD,
    pub Reserved: DWORD,
    pub Node: [STORAGE_PHYSICAL_NODE_DATA; 1usize],
}
#[test]
fn bindgen_test_layout__STORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR>(),
        56usize,
        concat!(
            "Size of: ",
            stringify!(_STORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR>())).Size as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR>())).NodeCount as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR),
            "::",
            stringify!(NodeCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR>())).Reserved as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR>())).Node as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR),
            "::",
            stringify!(Node)
        )
    );
}
pub type STORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR = _STORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR;
pub type PSTORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR = *mut _STORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR {
    pub Version: DWORD,
    pub Size: DWORD,
    pub LunMaxIoCount: DWORD,
    pub AdapterMaxIoCount: DWORD,
}
#[test]
fn bindgen_test_layout__STORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_STORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR>())).Size as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR>())).LunMaxIoCount
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR),
            "::",
            stringify!(LunMaxIoCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR>())).AdapterMaxIoCount
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR),
            "::",
            stringify!(AdapterMaxIoCount)
        )
    );
}
pub type STORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR = _STORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR;
pub type PSTORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR = *mut _STORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_DEVICE_ATTRIBUTES_DESCRIPTOR {
    pub Version: DWORD,
    pub Size: DWORD,
    pub Attributes: DWORD64,
}
#[test]
fn bindgen_test_layout__STORAGE_DEVICE_ATTRIBUTES_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_DEVICE_ATTRIBUTES_DESCRIPTOR>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_STORAGE_DEVICE_ATTRIBUTES_DESCRIPTOR)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_DEVICE_ATTRIBUTES_DESCRIPTOR>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_DEVICE_ATTRIBUTES_DESCRIPTOR)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_ATTRIBUTES_DESCRIPTOR>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_ATTRIBUTES_DESCRIPTOR),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_ATTRIBUTES_DESCRIPTOR>())).Size as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_ATTRIBUTES_DESCRIPTOR),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_ATTRIBUTES_DESCRIPTOR>())).Attributes as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_ATTRIBUTES_DESCRIPTOR),
            "::",
            stringify!(Attributes)
        )
    );
}
pub type STORAGE_DEVICE_ATTRIBUTES_DESCRIPTOR = _STORAGE_DEVICE_ATTRIBUTES_DESCRIPTOR;
pub type PSTORAGE_DEVICE_ATTRIBUTES_DESCRIPTOR = *mut _STORAGE_DEVICE_ATTRIBUTES_DESCRIPTOR;
pub const _STORAGE_DISK_HEALTH_STATUS_DiskHealthUnknown: _STORAGE_DISK_HEALTH_STATUS = 0;
pub const _STORAGE_DISK_HEALTH_STATUS_DiskHealthUnhealthy: _STORAGE_DISK_HEALTH_STATUS = 1;
pub const _STORAGE_DISK_HEALTH_STATUS_DiskHealthWarning: _STORAGE_DISK_HEALTH_STATUS = 2;
pub const _STORAGE_DISK_HEALTH_STATUS_DiskHealthHealthy: _STORAGE_DISK_HEALTH_STATUS = 3;
pub const _STORAGE_DISK_HEALTH_STATUS_DiskHealthMax: _STORAGE_DISK_HEALTH_STATUS = 4;
pub type _STORAGE_DISK_HEALTH_STATUS = ::std::os::raw::c_int;
pub use self::_STORAGE_DISK_HEALTH_STATUS as STORAGE_DISK_HEALTH_STATUS;
pub type PSTORAGE_DISK_HEALTH_STATUS = *mut _STORAGE_DISK_HEALTH_STATUS;
pub const _STORAGE_DISK_OPERATIONAL_STATUS_DiskOpStatusNone: _STORAGE_DISK_OPERATIONAL_STATUS = 0;
pub const _STORAGE_DISK_OPERATIONAL_STATUS_DiskOpStatusUnknown: _STORAGE_DISK_OPERATIONAL_STATUS =
    1;
pub const _STORAGE_DISK_OPERATIONAL_STATUS_DiskOpStatusOk: _STORAGE_DISK_OPERATIONAL_STATUS = 2;
pub const _STORAGE_DISK_OPERATIONAL_STATUS_DiskOpStatusPredictingFailure:
    _STORAGE_DISK_OPERATIONAL_STATUS = 3;
pub const _STORAGE_DISK_OPERATIONAL_STATUS_DiskOpStatusInService: _STORAGE_DISK_OPERATIONAL_STATUS =
    4;
pub const _STORAGE_DISK_OPERATIONAL_STATUS_DiskOpStatusHardwareError:
    _STORAGE_DISK_OPERATIONAL_STATUS = 5;
pub const _STORAGE_DISK_OPERATIONAL_STATUS_DiskOpStatusNotUsable: _STORAGE_DISK_OPERATIONAL_STATUS =
    6;
pub const _STORAGE_DISK_OPERATIONAL_STATUS_DiskOpStatusTransientError:
    _STORAGE_DISK_OPERATIONAL_STATUS = 7;
pub const _STORAGE_DISK_OPERATIONAL_STATUS_DiskOpStatusMissing: _STORAGE_DISK_OPERATIONAL_STATUS =
    8;
pub type _STORAGE_DISK_OPERATIONAL_STATUS = ::std::os::raw::c_int;
pub use self::_STORAGE_DISK_OPERATIONAL_STATUS as STORAGE_DISK_OPERATIONAL_STATUS;
pub type PSTORAGE_DISK_OPERATIONAL_STATUS = *mut _STORAGE_DISK_OPERATIONAL_STATUS;
pub const _STORAGE_OPERATIONAL_STATUS_REASON_DiskOpReasonUnknown:
    _STORAGE_OPERATIONAL_STATUS_REASON = 0;
pub const _STORAGE_OPERATIONAL_STATUS_REASON_DiskOpReasonScsiSenseCode:
    _STORAGE_OPERATIONAL_STATUS_REASON = 1;
pub const _STORAGE_OPERATIONAL_STATUS_REASON_DiskOpReasonMedia: _STORAGE_OPERATIONAL_STATUS_REASON =
    2;
pub const _STORAGE_OPERATIONAL_STATUS_REASON_DiskOpReasonIo: _STORAGE_OPERATIONAL_STATUS_REASON = 3;
pub const _STORAGE_OPERATIONAL_STATUS_REASON_DiskOpReasonThresholdExceeded:
    _STORAGE_OPERATIONAL_STATUS_REASON = 4;
pub const _STORAGE_OPERATIONAL_STATUS_REASON_DiskOpReasonLostData:
    _STORAGE_OPERATIONAL_STATUS_REASON = 5;
pub const _STORAGE_OPERATIONAL_STATUS_REASON_DiskOpReasonEnergySource:
    _STORAGE_OPERATIONAL_STATUS_REASON = 6;
pub const _STORAGE_OPERATIONAL_STATUS_REASON_DiskOpReasonConfiguration:
    _STORAGE_OPERATIONAL_STATUS_REASON = 7;
pub const _STORAGE_OPERATIONAL_STATUS_REASON_DiskOpReasonDeviceController:
    _STORAGE_OPERATIONAL_STATUS_REASON = 8;
pub const _STORAGE_OPERATIONAL_STATUS_REASON_DiskOpReasonMediaController:
    _STORAGE_OPERATIONAL_STATUS_REASON = 9;
pub const _STORAGE_OPERATIONAL_STATUS_REASON_DiskOpReasonComponent:
    _STORAGE_OPERATIONAL_STATUS_REASON = 10;
pub const _STORAGE_OPERATIONAL_STATUS_REASON_DiskOpReasonNVDIMM_N:
    _STORAGE_OPERATIONAL_STATUS_REASON = 11;
pub const _STORAGE_OPERATIONAL_STATUS_REASON_DiskOpReasonBackgroundOperation:
    _STORAGE_OPERATIONAL_STATUS_REASON = 12;
pub const _STORAGE_OPERATIONAL_STATUS_REASON_DiskOpReasonInvalidFirmware:
    _STORAGE_OPERATIONAL_STATUS_REASON = 13;
pub const _STORAGE_OPERATIONAL_STATUS_REASON_DiskOpReasonHealthCheck:
    _STORAGE_OPERATIONAL_STATUS_REASON = 14;
pub const _STORAGE_OPERATIONAL_STATUS_REASON_DiskOpReasonLostDataPersistence:
    _STORAGE_OPERATIONAL_STATUS_REASON = 15;
pub const _STORAGE_OPERATIONAL_STATUS_REASON_DiskOpReasonDisabledByPlatform:
    _STORAGE_OPERATIONAL_STATUS_REASON = 16;
pub const _STORAGE_OPERATIONAL_STATUS_REASON_DiskOpReasonLostWritePersistence:
    _STORAGE_OPERATIONAL_STATUS_REASON = 17;
pub const _STORAGE_OPERATIONAL_STATUS_REASON_DiskOpReasonDataPersistenceLossImminent:
    _STORAGE_OPERATIONAL_STATUS_REASON = 18;
pub const _STORAGE_OPERATIONAL_STATUS_REASON_DiskOpReasonWritePersistenceLossImminent:
    _STORAGE_OPERATIONAL_STATUS_REASON = 19;
pub const _STORAGE_OPERATIONAL_STATUS_REASON_DiskOpReasonMax: _STORAGE_OPERATIONAL_STATUS_REASON =
    20;
pub type _STORAGE_OPERATIONAL_STATUS_REASON = ::std::os::raw::c_int;
pub use self::_STORAGE_OPERATIONAL_STATUS_REASON as STORAGE_OPERATIONAL_STATUS_REASON;
pub type PSTORAGE_OPERATIONAL_STATUS_REASON = *mut _STORAGE_OPERATIONAL_STATUS_REASON;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _STORAGE_OPERATIONAL_REASON {
    pub Version: DWORD,
    pub Size: DWORD,
    pub Reason: STORAGE_OPERATIONAL_STATUS_REASON,
    pub RawBytes: _STORAGE_OPERATIONAL_REASON__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _STORAGE_OPERATIONAL_REASON__bindgen_ty_1 {
    pub ScsiSenseKey: _STORAGE_OPERATIONAL_REASON__bindgen_ty_1__bindgen_ty_1,
    pub NVDIMM_N: _STORAGE_OPERATIONAL_REASON__bindgen_ty_1__bindgen_ty_2,
    pub AsUlong: DWORD,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_OPERATIONAL_REASON__bindgen_ty_1__bindgen_ty_1 {
    pub SenseKey: BYTE,
    pub ASC: BYTE,
    pub ASCQ: BYTE,
    pub Reserved: BYTE,
}
#[test]
fn bindgen_test_layout__STORAGE_OPERATIONAL_REASON__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_OPERATIONAL_REASON__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_STORAGE_OPERATIONAL_REASON__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_OPERATIONAL_REASON__bindgen_ty_1__bindgen_ty_1>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_OPERATIONAL_REASON__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_OPERATIONAL_REASON__bindgen_ty_1__bindgen_ty_1>()))
                .SenseKey as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_OPERATIONAL_REASON__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(SenseKey)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_OPERATIONAL_REASON__bindgen_ty_1__bindgen_ty_1>())).ASC
                as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_OPERATIONAL_REASON__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(ASC)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_OPERATIONAL_REASON__bindgen_ty_1__bindgen_ty_1>())).ASCQ
                as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_OPERATIONAL_REASON__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(ASCQ)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_OPERATIONAL_REASON__bindgen_ty_1__bindgen_ty_1>()))
                .Reserved as *const _ as usize
        },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_OPERATIONAL_REASON__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Reserved)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_OPERATIONAL_REASON__bindgen_ty_1__bindgen_ty_2 {
    pub CriticalHealth: BYTE,
    pub ModuleHealth: [BYTE; 2usize],
    pub ErrorThresholdStatus: BYTE,
}
#[test]
fn bindgen_test_layout__STORAGE_OPERATIONAL_REASON__bindgen_ty_1__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_OPERATIONAL_REASON__bindgen_ty_1__bindgen_ty_2>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_STORAGE_OPERATIONAL_REASON__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_OPERATIONAL_REASON__bindgen_ty_1__bindgen_ty_2>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_OPERATIONAL_REASON__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_OPERATIONAL_REASON__bindgen_ty_1__bindgen_ty_2>()))
                .CriticalHealth as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_OPERATIONAL_REASON__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(CriticalHealth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_OPERATIONAL_REASON__bindgen_ty_1__bindgen_ty_2>()))
                .ModuleHealth as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_OPERATIONAL_REASON__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(ModuleHealth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_OPERATIONAL_REASON__bindgen_ty_1__bindgen_ty_2>()))
                .ErrorThresholdStatus as *const _ as usize
        },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_OPERATIONAL_REASON__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(ErrorThresholdStatus)
        )
    );
}
#[test]
fn bindgen_test_layout__STORAGE_OPERATIONAL_REASON__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_OPERATIONAL_REASON__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_STORAGE_OPERATIONAL_REASON__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_OPERATIONAL_REASON__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_OPERATIONAL_REASON__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_OPERATIONAL_REASON__bindgen_ty_1>())).ScsiSenseKey
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_OPERATIONAL_REASON__bindgen_ty_1),
            "::",
            stringify!(ScsiSenseKey)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_OPERATIONAL_REASON__bindgen_ty_1>())).NVDIMM_N
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_OPERATIONAL_REASON__bindgen_ty_1),
            "::",
            stringify!(NVDIMM_N)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_OPERATIONAL_REASON__bindgen_ty_1>())).AsUlong
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_OPERATIONAL_REASON__bindgen_ty_1),
            "::",
            stringify!(AsUlong)
        )
    );
}
#[test]
fn bindgen_test_layout__STORAGE_OPERATIONAL_REASON() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_OPERATIONAL_REASON>(),
        16usize,
        concat!("Size of: ", stringify!(_STORAGE_OPERATIONAL_REASON))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_OPERATIONAL_REASON>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_OPERATIONAL_REASON))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_OPERATIONAL_REASON>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_OPERATIONAL_REASON),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_OPERATIONAL_REASON>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_OPERATIONAL_REASON),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_OPERATIONAL_REASON>())).Reason as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_OPERATIONAL_REASON),
            "::",
            stringify!(Reason)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_OPERATIONAL_REASON>())).RawBytes as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_OPERATIONAL_REASON),
            "::",
            stringify!(RawBytes)
        )
    );
}
pub type STORAGE_OPERATIONAL_REASON = _STORAGE_OPERATIONAL_REASON;
pub type PSTORAGE_OPERATIONAL_REASON = *mut _STORAGE_OPERATIONAL_REASON;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _STORAGE_DEVICE_MANAGEMENT_STATUS {
    pub Version: DWORD,
    pub Size: DWORD,
    pub Health: STORAGE_DISK_HEALTH_STATUS,
    pub NumberOfOperationalStatus: DWORD,
    pub NumberOfAdditionalReasons: DWORD,
    pub OperationalStatus: [STORAGE_DISK_OPERATIONAL_STATUS; 16usize],
    pub AdditionalReasons: [STORAGE_OPERATIONAL_REASON; 1usize],
}
#[test]
fn bindgen_test_layout__STORAGE_DEVICE_MANAGEMENT_STATUS() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_DEVICE_MANAGEMENT_STATUS>(),
        100usize,
        concat!("Size of: ", stringify!(_STORAGE_DEVICE_MANAGEMENT_STATUS))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_DEVICE_MANAGEMENT_STATUS>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_DEVICE_MANAGEMENT_STATUS)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_MANAGEMENT_STATUS>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_MANAGEMENT_STATUS),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_MANAGEMENT_STATUS>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_MANAGEMENT_STATUS),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_MANAGEMENT_STATUS>())).Health as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_MANAGEMENT_STATUS),
            "::",
            stringify!(Health)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_MANAGEMENT_STATUS>())).NumberOfOperationalStatus
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_MANAGEMENT_STATUS),
            "::",
            stringify!(NumberOfOperationalStatus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_MANAGEMENT_STATUS>())).NumberOfAdditionalReasons
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_MANAGEMENT_STATUS),
            "::",
            stringify!(NumberOfAdditionalReasons)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_MANAGEMENT_STATUS>())).OperationalStatus
                as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_MANAGEMENT_STATUS),
            "::",
            stringify!(OperationalStatus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_MANAGEMENT_STATUS>())).AdditionalReasons
                as *const _ as usize
        },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_MANAGEMENT_STATUS),
            "::",
            stringify!(AdditionalReasons)
        )
    );
}
pub type STORAGE_DEVICE_MANAGEMENT_STATUS = _STORAGE_DEVICE_MANAGEMENT_STATUS;
pub type PSTORAGE_DEVICE_MANAGEMENT_STATUS = *mut _STORAGE_DEVICE_MANAGEMENT_STATUS;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _STORAGE_ADAPTER_SERIAL_NUMBER {
    pub Version: DWORD,
    pub Size: DWORD,
    pub SerialNumber: [WCHAR; 128usize],
}
#[test]
fn bindgen_test_layout__STORAGE_ADAPTER_SERIAL_NUMBER() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_ADAPTER_SERIAL_NUMBER>(),
        264usize,
        concat!("Size of: ", stringify!(_STORAGE_ADAPTER_SERIAL_NUMBER))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_ADAPTER_SERIAL_NUMBER>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_ADAPTER_SERIAL_NUMBER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ADAPTER_SERIAL_NUMBER>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ADAPTER_SERIAL_NUMBER),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ADAPTER_SERIAL_NUMBER>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ADAPTER_SERIAL_NUMBER),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ADAPTER_SERIAL_NUMBER>())).SerialNumber as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ADAPTER_SERIAL_NUMBER),
            "::",
            stringify!(SerialNumber)
        )
    );
}
pub type STORAGE_ADAPTER_SERIAL_NUMBER = _STORAGE_ADAPTER_SERIAL_NUMBER;
pub type PSTORAGE_ADAPTER_SERIAL_NUMBER = *mut _STORAGE_ADAPTER_SERIAL_NUMBER;
pub const _STORAGE_ZONED_DEVICE_TYPES_ZonedDeviceTypeUnknown: _STORAGE_ZONED_DEVICE_TYPES = 0;
pub const _STORAGE_ZONED_DEVICE_TYPES_ZonedDeviceTypeHostManaged: _STORAGE_ZONED_DEVICE_TYPES = 1;
pub const _STORAGE_ZONED_DEVICE_TYPES_ZonedDeviceTypeHostAware: _STORAGE_ZONED_DEVICE_TYPES = 2;
pub const _STORAGE_ZONED_DEVICE_TYPES_ZonedDeviceTypeDeviceManaged: _STORAGE_ZONED_DEVICE_TYPES = 3;
pub type _STORAGE_ZONED_DEVICE_TYPES = ::std::os::raw::c_int;
pub use self::_STORAGE_ZONED_DEVICE_TYPES as STORAGE_ZONED_DEVICE_TYPES;
pub type PSTORAGE_ZONED_DEVICE_TYPES = *mut _STORAGE_ZONED_DEVICE_TYPES;
pub const _STORAGE_ZONE_TYPES_ZoneTypeUnknown: _STORAGE_ZONE_TYPES = 0;
pub const _STORAGE_ZONE_TYPES_ZoneTypeConventional: _STORAGE_ZONE_TYPES = 1;
pub const _STORAGE_ZONE_TYPES_ZoneTypeSequentialWriteRequired: _STORAGE_ZONE_TYPES = 2;
pub const _STORAGE_ZONE_TYPES_ZoneTypeSequentialWritePreferred: _STORAGE_ZONE_TYPES = 3;
pub const _STORAGE_ZONE_TYPES_ZoneTypeMax: _STORAGE_ZONE_TYPES = 4;
pub type _STORAGE_ZONE_TYPES = ::std::os::raw::c_int;
pub use self::_STORAGE_ZONE_TYPES as STORAGE_ZONE_TYPES;
pub type PSTORAGE_ZONE_TYPES = *mut _STORAGE_ZONE_TYPES;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_ZONE_GROUP {
    pub ZoneCount: DWORD,
    pub ZoneType: STORAGE_ZONE_TYPES,
    pub ZoneSize: DWORDLONG,
}
#[test]
fn bindgen_test_layout__STORAGE_ZONE_GROUP() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_ZONE_GROUP>(),
        16usize,
        concat!("Size of: ", stringify!(_STORAGE_ZONE_GROUP))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_ZONE_GROUP>(),
        8usize,
        concat!("Alignment of ", stringify!(_STORAGE_ZONE_GROUP))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_ZONE_GROUP>())).ZoneCount as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ZONE_GROUP),
            "::",
            stringify!(ZoneCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_ZONE_GROUP>())).ZoneType as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ZONE_GROUP),
            "::",
            stringify!(ZoneType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_ZONE_GROUP>())).ZoneSize as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ZONE_GROUP),
            "::",
            stringify!(ZoneSize)
        )
    );
}
pub type STORAGE_ZONE_GROUP = _STORAGE_ZONE_GROUP;
pub type PSTORAGE_ZONE_GROUP = *mut _STORAGE_ZONE_GROUP;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _STORAGE_ZONED_DEVICE_DESCRIPTOR {
    pub Version: DWORD,
    pub Size: DWORD,
    pub DeviceType: STORAGE_ZONED_DEVICE_TYPES,
    pub ZoneCount: DWORD,
    pub ZoneAttributes: _STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1,
    pub ZoneGroupCount: DWORD,
    pub ZoneGroup: [STORAGE_ZONE_GROUP; 1usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1 {
    pub SequentialRequiredZone: _STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1,
    pub SequentialPreferredZone: _STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_2,
    _bindgen_union_align: [u32; 2usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1 {
    pub MaxOpenZoneCount: DWORD,
    pub UnrestrictedRead: BOOLEAN,
    pub Reserved: [BYTE; 3usize],
}
#[test]
fn bindgen_test_layout__STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1>()))
                .MaxOpenZoneCount as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(MaxOpenZoneCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1>()))
                .UnrestrictedRead as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(UnrestrictedRead)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1>()))
                .Reserved as *const _ as usize
        },
        5usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Reserved)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_2 {
    pub OptimalOpenZoneCount: DWORD,
    pub Reserved: DWORD,
}
#[test]
fn bindgen_test_layout__STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_2>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_2>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_2>()))
                .OptimalOpenZoneCount as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(OptimalOpenZoneCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_2>()))
                .Reserved as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(Reserved)
        )
    );
}
#[test]
fn bindgen_test_layout__STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1>()))
                .SequentialRequiredZone as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1),
            "::",
            stringify!(SequentialRequiredZone)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1>()))
                .SequentialPreferredZone as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ZONED_DEVICE_DESCRIPTOR__bindgen_ty_1),
            "::",
            stringify!(SequentialPreferredZone)
        )
    );
}
#[test]
fn bindgen_test_layout__STORAGE_ZONED_DEVICE_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_ZONED_DEVICE_DESCRIPTOR>(),
        48usize,
        concat!("Size of: ", stringify!(_STORAGE_ZONED_DEVICE_DESCRIPTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_ZONED_DEVICE_DESCRIPTOR>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_ZONED_DEVICE_DESCRIPTOR)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ZONED_DEVICE_DESCRIPTOR>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ZONED_DEVICE_DESCRIPTOR),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ZONED_DEVICE_DESCRIPTOR>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ZONED_DEVICE_DESCRIPTOR),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ZONED_DEVICE_DESCRIPTOR>())).DeviceType as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ZONED_DEVICE_DESCRIPTOR),
            "::",
            stringify!(DeviceType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ZONED_DEVICE_DESCRIPTOR>())).ZoneCount as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ZONED_DEVICE_DESCRIPTOR),
            "::",
            stringify!(ZoneCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ZONED_DEVICE_DESCRIPTOR>())).ZoneAttributes as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ZONED_DEVICE_DESCRIPTOR),
            "::",
            stringify!(ZoneAttributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ZONED_DEVICE_DESCRIPTOR>())).ZoneGroupCount as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ZONED_DEVICE_DESCRIPTOR),
            "::",
            stringify!(ZoneGroupCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ZONED_DEVICE_DESCRIPTOR>())).ZoneGroup as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ZONED_DEVICE_DESCRIPTOR),
            "::",
            stringify!(ZoneGroup)
        )
    );
}
pub type STORAGE_ZONED_DEVICE_DESCRIPTOR = _STORAGE_ZONED_DEVICE_DESCRIPTOR;
pub type PSTORAGE_ZONED_DEVICE_DESCRIPTOR = *mut _STORAGE_ZONED_DEVICE_DESCRIPTOR;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _DEVICE_LOCATION {
    pub Socket: DWORD,
    pub Slot: DWORD,
    pub Adapter: DWORD,
    pub Port: DWORD,
    pub __bindgen_anon_1: _DEVICE_LOCATION__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _DEVICE_LOCATION__bindgen_ty_1 {
    pub __bindgen_anon_1: _DEVICE_LOCATION__bindgen_ty_1__bindgen_ty_1,
    pub __bindgen_anon_2: _DEVICE_LOCATION__bindgen_ty_1__bindgen_ty_2,
    _bindgen_union_align: [u32; 2usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_LOCATION__bindgen_ty_1__bindgen_ty_1 {
    pub Channel: DWORD,
    pub Device: DWORD,
}
#[test]
fn bindgen_test_layout__DEVICE_LOCATION__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_LOCATION__bindgen_ty_1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_DEVICE_LOCATION__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_LOCATION__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICE_LOCATION__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_LOCATION__bindgen_ty_1__bindgen_ty_1>())).Channel
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_LOCATION__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Channel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_LOCATION__bindgen_ty_1__bindgen_ty_1>())).Device
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_LOCATION__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Device)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_LOCATION__bindgen_ty_1__bindgen_ty_2 {
    pub Target: DWORD,
    pub Lun: DWORD,
}
#[test]
fn bindgen_test_layout__DEVICE_LOCATION__bindgen_ty_1__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_LOCATION__bindgen_ty_1__bindgen_ty_2>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_DEVICE_LOCATION__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_LOCATION__bindgen_ty_1__bindgen_ty_2>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICE_LOCATION__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_LOCATION__bindgen_ty_1__bindgen_ty_2>())).Target
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_LOCATION__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(Target)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_LOCATION__bindgen_ty_1__bindgen_ty_2>())).Lun as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_LOCATION__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(Lun)
        )
    );
}
#[test]
fn bindgen_test_layout__DEVICE_LOCATION__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_LOCATION__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_DEVICE_LOCATION__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_LOCATION__bindgen_ty_1>(),
        4usize,
        concat!("Alignment of ", stringify!(_DEVICE_LOCATION__bindgen_ty_1))
    );
}
#[test]
fn bindgen_test_layout__DEVICE_LOCATION() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_LOCATION>(),
        24usize,
        concat!("Size of: ", stringify!(_DEVICE_LOCATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_LOCATION>(),
        4usize,
        concat!("Alignment of ", stringify!(_DEVICE_LOCATION))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DEVICE_LOCATION>())).Socket as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_LOCATION),
            "::",
            stringify!(Socket)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DEVICE_LOCATION>())).Slot as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_LOCATION),
            "::",
            stringify!(Slot)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DEVICE_LOCATION>())).Adapter as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_LOCATION),
            "::",
            stringify!(Adapter)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DEVICE_LOCATION>())).Port as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_LOCATION),
            "::",
            stringify!(Port)
        )
    );
}
pub type DEVICE_LOCATION = _DEVICE_LOCATION;
pub type PDEVICE_LOCATION = *mut _DEVICE_LOCATION;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _STORAGE_DEVICE_LOCATION_DESCRIPTOR {
    pub Version: DWORD,
    pub Size: DWORD,
    pub Location: DEVICE_LOCATION,
    pub StringOffset: DWORD,
}
#[test]
fn bindgen_test_layout__STORAGE_DEVICE_LOCATION_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_DEVICE_LOCATION_DESCRIPTOR>(),
        36usize,
        concat!("Size of: ", stringify!(_STORAGE_DEVICE_LOCATION_DESCRIPTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_DEVICE_LOCATION_DESCRIPTOR>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_DEVICE_LOCATION_DESCRIPTOR)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_LOCATION_DESCRIPTOR>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_LOCATION_DESCRIPTOR),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_LOCATION_DESCRIPTOR>())).Size as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_LOCATION_DESCRIPTOR),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_LOCATION_DESCRIPTOR>())).Location as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_LOCATION_DESCRIPTOR),
            "::",
            stringify!(Location)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_LOCATION_DESCRIPTOR>())).StringOffset as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_LOCATION_DESCRIPTOR),
            "::",
            stringify!(StringOffset)
        )
    );
}
pub type STORAGE_DEVICE_LOCATION_DESCRIPTOR = _STORAGE_DEVICE_LOCATION_DESCRIPTOR;
pub type PSTORAGE_DEVICE_LOCATION_DESCRIPTOR = *mut _STORAGE_DEVICE_LOCATION_DESCRIPTOR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_DEVICE_NUMA_PROPERTY {
    pub Version: DWORD,
    pub Size: DWORD,
    pub NumaNode: DWORD,
}
#[test]
fn bindgen_test_layout__STORAGE_DEVICE_NUMA_PROPERTY() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_DEVICE_NUMA_PROPERTY>(),
        12usize,
        concat!("Size of: ", stringify!(_STORAGE_DEVICE_NUMA_PROPERTY))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_DEVICE_NUMA_PROPERTY>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_DEVICE_NUMA_PROPERTY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_NUMA_PROPERTY>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_NUMA_PROPERTY),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_NUMA_PROPERTY>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_NUMA_PROPERTY),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_NUMA_PROPERTY>())).NumaNode as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_NUMA_PROPERTY),
            "::",
            stringify!(NumaNode)
        )
    );
}
pub type STORAGE_DEVICE_NUMA_PROPERTY = _STORAGE_DEVICE_NUMA_PROPERTY;
pub type PSTORAGE_DEVICE_NUMA_PROPERTY = *mut _STORAGE_DEVICE_NUMA_PROPERTY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_DEVICE_UNSAFE_SHUTDOWN_COUNT {
    pub Version: DWORD,
    pub Size: DWORD,
    pub UnsafeShutdownCount: DWORD,
}
#[test]
fn bindgen_test_layout__STORAGE_DEVICE_UNSAFE_SHUTDOWN_COUNT() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_DEVICE_UNSAFE_SHUTDOWN_COUNT>(),
        12usize,
        concat!(
            "Size of: ",
            stringify!(_STORAGE_DEVICE_UNSAFE_SHUTDOWN_COUNT)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_DEVICE_UNSAFE_SHUTDOWN_COUNT>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_DEVICE_UNSAFE_SHUTDOWN_COUNT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_UNSAFE_SHUTDOWN_COUNT>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_UNSAFE_SHUTDOWN_COUNT),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_UNSAFE_SHUTDOWN_COUNT>())).Size as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_UNSAFE_SHUTDOWN_COUNT),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_UNSAFE_SHUTDOWN_COUNT>())).UnsafeShutdownCount
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_UNSAFE_SHUTDOWN_COUNT),
            "::",
            stringify!(UnsafeShutdownCount)
        )
    );
}
pub type STORAGE_DEVICE_UNSAFE_SHUTDOWN_COUNT = _STORAGE_DEVICE_UNSAFE_SHUTDOWN_COUNT;
pub type PSTORAGE_DEVICE_UNSAFE_SHUTDOWN_COUNT = *mut _STORAGE_DEVICE_UNSAFE_SHUTDOWN_COUNT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_HW_ENDURANCE_INFO {
    pub ValidFields: DWORD,
    pub GroupId: DWORD,
    pub Flags: _STORAGE_HW_ENDURANCE_INFO__bindgen_ty_1,
    pub LifePercentage: DWORD,
    pub BytesReadCount: [BYTE; 16usize],
    pub ByteWriteCount: [BYTE; 16usize],
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_HW_ENDURANCE_INFO__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
}
#[test]
fn bindgen_test_layout__STORAGE_HW_ENDURANCE_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_HW_ENDURANCE_INFO__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_STORAGE_HW_ENDURANCE_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_HW_ENDURANCE_INFO__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_HW_ENDURANCE_INFO__bindgen_ty_1)
        )
    );
}
impl _STORAGE_HW_ENDURANCE_INFO__bindgen_ty_1 {
    #[inline]
    pub fn Shared(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_Shared(&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(
        Shared: 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 Shared: u32 = unsafe { ::std::mem::transmute(Shared) };
            Shared as u64
        });
        __bindgen_bitfield_unit.set(1usize, 31u8, {
            let Reserved: u32 = unsafe { ::std::mem::transmute(Reserved) };
            Reserved as u64
        });
        __bindgen_bitfield_unit
    }
}
#[test]
fn bindgen_test_layout__STORAGE_HW_ENDURANCE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_HW_ENDURANCE_INFO>(),
        48usize,
        concat!("Size of: ", stringify!(_STORAGE_HW_ENDURANCE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_HW_ENDURANCE_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_HW_ENDURANCE_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_ENDURANCE_INFO>())).ValidFields as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_ENDURANCE_INFO),
            "::",
            stringify!(ValidFields)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_ENDURANCE_INFO>())).GroupId as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_ENDURANCE_INFO),
            "::",
            stringify!(GroupId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_ENDURANCE_INFO>())).Flags as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_ENDURANCE_INFO),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_ENDURANCE_INFO>())).LifePercentage as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_ENDURANCE_INFO),
            "::",
            stringify!(LifePercentage)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_ENDURANCE_INFO>())).BytesReadCount as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_ENDURANCE_INFO),
            "::",
            stringify!(BytesReadCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_ENDURANCE_INFO>())).ByteWriteCount as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_ENDURANCE_INFO),
            "::",
            stringify!(ByteWriteCount)
        )
    );
}
pub type STORAGE_HW_ENDURANCE_INFO = _STORAGE_HW_ENDURANCE_INFO;
pub type PSTORAGE_HW_ENDURANCE_INFO = *mut _STORAGE_HW_ENDURANCE_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_HW_ENDURANCE_DATA_DESCRIPTOR {
    pub Version: DWORD,
    pub Size: DWORD,
    pub EnduranceInfo: STORAGE_HW_ENDURANCE_INFO,
}
#[test]
fn bindgen_test_layout__STORAGE_HW_ENDURANCE_DATA_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_HW_ENDURANCE_DATA_DESCRIPTOR>(),
        56usize,
        concat!(
            "Size of: ",
            stringify!(_STORAGE_HW_ENDURANCE_DATA_DESCRIPTOR)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_HW_ENDURANCE_DATA_DESCRIPTOR>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_HW_ENDURANCE_DATA_DESCRIPTOR)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_ENDURANCE_DATA_DESCRIPTOR>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_ENDURANCE_DATA_DESCRIPTOR),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_ENDURANCE_DATA_DESCRIPTOR>())).Size as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_ENDURANCE_DATA_DESCRIPTOR),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_ENDURANCE_DATA_DESCRIPTOR>())).EnduranceInfo
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_ENDURANCE_DATA_DESCRIPTOR),
            "::",
            stringify!(EnduranceInfo)
        )
    );
}
pub type STORAGE_HW_ENDURANCE_DATA_DESCRIPTOR = _STORAGE_HW_ENDURANCE_DATA_DESCRIPTOR;
pub type PSTORAGE_HW_ENDURANCE_DATA_DESCRIPTOR = *mut _STORAGE_HW_ENDURANCE_DATA_DESCRIPTOR;
pub type DEVICE_DATA_MANAGEMENT_SET_ACTION = DWORD;
pub type DEVICE_DSM_ACTION = DWORD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_DATA_SET_RANGE {
    pub StartingOffset: LONGLONG,
    pub LengthInBytes: DWORDLONG,
}
#[test]
fn bindgen_test_layout__DEVICE_DATA_SET_RANGE() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_DATA_SET_RANGE>(),
        16usize,
        concat!("Size of: ", stringify!(_DEVICE_DATA_SET_RANGE))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_DATA_SET_RANGE>(),
        8usize,
        concat!("Alignment of ", stringify!(_DEVICE_DATA_SET_RANGE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_RANGE>())).StartingOffset as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_RANGE),
            "::",
            stringify!(StartingOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_RANGE>())).LengthInBytes as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_RANGE),
            "::",
            stringify!(LengthInBytes)
        )
    );
}
pub type DEVICE_DATA_SET_RANGE = _DEVICE_DATA_SET_RANGE;
pub type PDEVICE_DATA_SET_RANGE = *mut _DEVICE_DATA_SET_RANGE;
pub type DEVICE_DSM_RANGE = _DEVICE_DATA_SET_RANGE;
pub type PDEVICE_DSM_RANGE = *mut _DEVICE_DATA_SET_RANGE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_MANAGE_DATA_SET_ATTRIBUTES {
    pub Size: DWORD,
    pub Action: DEVICE_DSM_ACTION,
    pub Flags: DWORD,
    pub ParameterBlockOffset: DWORD,
    pub ParameterBlockLength: DWORD,
    pub DataSetRangesOffset: DWORD,
    pub DataSetRangesLength: DWORD,
}
#[test]
fn bindgen_test_layout__DEVICE_MANAGE_DATA_SET_ATTRIBUTES() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_MANAGE_DATA_SET_ATTRIBUTES>(),
        28usize,
        concat!("Size of: ", stringify!(_DEVICE_MANAGE_DATA_SET_ATTRIBUTES))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_MANAGE_DATA_SET_ATTRIBUTES>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICE_MANAGE_DATA_SET_ATTRIBUTES)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MANAGE_DATA_SET_ATTRIBUTES>())).Size as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MANAGE_DATA_SET_ATTRIBUTES),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MANAGE_DATA_SET_ATTRIBUTES>())).Action as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MANAGE_DATA_SET_ATTRIBUTES),
            "::",
            stringify!(Action)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MANAGE_DATA_SET_ATTRIBUTES>())).Flags as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MANAGE_DATA_SET_ATTRIBUTES),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MANAGE_DATA_SET_ATTRIBUTES>())).ParameterBlockOffset
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MANAGE_DATA_SET_ATTRIBUTES),
            "::",
            stringify!(ParameterBlockOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MANAGE_DATA_SET_ATTRIBUTES>())).ParameterBlockLength
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MANAGE_DATA_SET_ATTRIBUTES),
            "::",
            stringify!(ParameterBlockLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MANAGE_DATA_SET_ATTRIBUTES>())).DataSetRangesOffset
                as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MANAGE_DATA_SET_ATTRIBUTES),
            "::",
            stringify!(DataSetRangesOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MANAGE_DATA_SET_ATTRIBUTES>())).DataSetRangesLength
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MANAGE_DATA_SET_ATTRIBUTES),
            "::",
            stringify!(DataSetRangesLength)
        )
    );
}
pub type DEVICE_MANAGE_DATA_SET_ATTRIBUTES = _DEVICE_MANAGE_DATA_SET_ATTRIBUTES;
pub type PDEVICE_MANAGE_DATA_SET_ATTRIBUTES = *mut _DEVICE_MANAGE_DATA_SET_ATTRIBUTES;
pub type DEVICE_DSM_INPUT = _DEVICE_MANAGE_DATA_SET_ATTRIBUTES;
pub type PDEVICE_DSM_INPUT = *mut _DEVICE_MANAGE_DATA_SET_ATTRIBUTES;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT {
    pub Size: DWORD,
    pub Action: DEVICE_DSM_ACTION,
    pub Flags: DWORD,
    pub OperationStatus: DWORD,
    pub ExtendedError: DWORD,
    pub TargetDetailedError: DWORD,
    pub ReservedStatus: DWORD,
    pub OutputBlockOffset: DWORD,
    pub OutputBlockLength: DWORD,
}
#[test]
fn bindgen_test_layout__DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT>(),
        36usize,
        concat!(
            "Size of: ",
            stringify!(_DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT>())).Size as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT>())).Action as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT),
            "::",
            stringify!(Action)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT>())).Flags as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT>())).OperationStatus
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT),
            "::",
            stringify!(OperationStatus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT>())).ExtendedError
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT),
            "::",
            stringify!(ExtendedError)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT>()))
                .TargetDetailedError as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT),
            "::",
            stringify!(TargetDetailedError)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT>())).ReservedStatus
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT),
            "::",
            stringify!(ReservedStatus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT>())).OutputBlockOffset
                as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT),
            "::",
            stringify!(OutputBlockOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT>())).OutputBlockLength
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT),
            "::",
            stringify!(OutputBlockLength)
        )
    );
}
pub type DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT = _DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT;
pub type PDEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT = *mut _DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT;
pub type DEVICE_DSM_OUTPUT = _DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT;
pub type PDEVICE_DSM_OUTPUT = *mut _DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_DSM_DEFINITION {
    pub Action: DEVICE_DSM_ACTION,
    pub SingleRange: BOOLEAN,
    pub ParameterBlockAlignment: DWORD,
    pub ParameterBlockLength: DWORD,
    pub HasOutput: BOOLEAN,
    pub OutputBlockAlignment: DWORD,
    pub OutputBlockLength: DWORD,
}
#[test]
fn bindgen_test_layout__DEVICE_DSM_DEFINITION() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_DSM_DEFINITION>(),
        28usize,
        concat!("Size of: ", stringify!(_DEVICE_DSM_DEFINITION))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_DSM_DEFINITION>(),
        4usize,
        concat!("Alignment of ", stringify!(_DEVICE_DSM_DEFINITION))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DEVICE_DSM_DEFINITION>())).Action as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_DEFINITION),
            "::",
            stringify!(Action)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_DEFINITION>())).SingleRange as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_DEFINITION),
            "::",
            stringify!(SingleRange)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_DEFINITION>())).ParameterBlockAlignment as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_DEFINITION),
            "::",
            stringify!(ParameterBlockAlignment)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_DEFINITION>())).ParameterBlockLength as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_DEFINITION),
            "::",
            stringify!(ParameterBlockLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_DEFINITION>())).HasOutput as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_DEFINITION),
            "::",
            stringify!(HasOutput)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_DEFINITION>())).OutputBlockAlignment as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_DEFINITION),
            "::",
            stringify!(OutputBlockAlignment)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_DEFINITION>())).OutputBlockLength as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_DEFINITION),
            "::",
            stringify!(OutputBlockLength)
        )
    );
}
pub type DEVICE_DSM_DEFINITION = _DEVICE_DSM_DEFINITION;
pub type PDEVICE_DSM_DEFINITION = *mut _DEVICE_DSM_DEFINITION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_DSM_NOTIFICATION_PARAMETERS {
    pub Size: DWORD,
    pub Flags: DWORD,
    pub NumFileTypeIDs: DWORD,
    pub FileTypeID: [GUID; 1usize],
}
#[test]
fn bindgen_test_layout__DEVICE_DSM_NOTIFICATION_PARAMETERS() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_DSM_NOTIFICATION_PARAMETERS>(),
        28usize,
        concat!("Size of: ", stringify!(_DEVICE_DSM_NOTIFICATION_PARAMETERS))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_DSM_NOTIFICATION_PARAMETERS>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICE_DSM_NOTIFICATION_PARAMETERS)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_NOTIFICATION_PARAMETERS>())).Size as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_NOTIFICATION_PARAMETERS),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_NOTIFICATION_PARAMETERS>())).Flags as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_NOTIFICATION_PARAMETERS),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_NOTIFICATION_PARAMETERS>())).NumFileTypeIDs
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_NOTIFICATION_PARAMETERS),
            "::",
            stringify!(NumFileTypeIDs)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_NOTIFICATION_PARAMETERS>())).FileTypeID as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_NOTIFICATION_PARAMETERS),
            "::",
            stringify!(FileTypeID)
        )
    );
}
pub type DEVICE_DSM_NOTIFICATION_PARAMETERS = _DEVICE_DSM_NOTIFICATION_PARAMETERS;
pub type PDEVICE_DSM_NOTIFICATION_PARAMETERS = *mut _DEVICE_DSM_NOTIFICATION_PARAMETERS;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _STORAGE_OFFLOAD_TOKEN {
    pub TokenType: [BYTE; 4usize],
    pub Reserved: [BYTE; 2usize],
    pub TokenIdLength: [BYTE; 2usize],
    pub __bindgen_anon_1: _STORAGE_OFFLOAD_TOKEN__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _STORAGE_OFFLOAD_TOKEN__bindgen_ty_1 {
    pub StorageOffloadZeroDataToken: _STORAGE_OFFLOAD_TOKEN__bindgen_ty_1__bindgen_ty_1,
    pub Token: [BYTE; 504usize],
    _bindgen_union_align: [u8; 504usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _STORAGE_OFFLOAD_TOKEN__bindgen_ty_1__bindgen_ty_1 {
    pub Reserved2: [BYTE; 504usize],
}
#[test]
fn bindgen_test_layout__STORAGE_OFFLOAD_TOKEN__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_OFFLOAD_TOKEN__bindgen_ty_1__bindgen_ty_1>(),
        504usize,
        concat!(
            "Size of: ",
            stringify!(_STORAGE_OFFLOAD_TOKEN__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_OFFLOAD_TOKEN__bindgen_ty_1__bindgen_ty_1>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_OFFLOAD_TOKEN__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_OFFLOAD_TOKEN__bindgen_ty_1__bindgen_ty_1>())).Reserved2
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_OFFLOAD_TOKEN__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Reserved2)
        )
    );
}
#[test]
fn bindgen_test_layout__STORAGE_OFFLOAD_TOKEN__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_OFFLOAD_TOKEN__bindgen_ty_1>(),
        504usize,
        concat!(
            "Size of: ",
            stringify!(_STORAGE_OFFLOAD_TOKEN__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_OFFLOAD_TOKEN__bindgen_ty_1>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_OFFLOAD_TOKEN__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_OFFLOAD_TOKEN__bindgen_ty_1>()))
                .StorageOffloadZeroDataToken as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_OFFLOAD_TOKEN__bindgen_ty_1),
            "::",
            stringify!(StorageOffloadZeroDataToken)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_OFFLOAD_TOKEN__bindgen_ty_1>())).Token as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_OFFLOAD_TOKEN__bindgen_ty_1),
            "::",
            stringify!(Token)
        )
    );
}
#[test]
fn bindgen_test_layout__STORAGE_OFFLOAD_TOKEN() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_OFFLOAD_TOKEN>(),
        512usize,
        concat!("Size of: ", stringify!(_STORAGE_OFFLOAD_TOKEN))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_OFFLOAD_TOKEN>(),
        1usize,
        concat!("Alignment of ", stringify!(_STORAGE_OFFLOAD_TOKEN))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_OFFLOAD_TOKEN>())).TokenType as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_OFFLOAD_TOKEN),
            "::",
            stringify!(TokenType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_OFFLOAD_TOKEN>())).Reserved as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_OFFLOAD_TOKEN),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_OFFLOAD_TOKEN>())).TokenIdLength as *const _ as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_OFFLOAD_TOKEN),
            "::",
            stringify!(TokenIdLength)
        )
    );
}
pub type STORAGE_OFFLOAD_TOKEN = _STORAGE_OFFLOAD_TOKEN;
pub type PSTORAGE_OFFLOAD_TOKEN = *mut _STORAGE_OFFLOAD_TOKEN;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_DSM_OFFLOAD_READ_PARAMETERS {
    pub Flags: DWORD,
    pub TimeToLive: DWORD,
    pub Reserved: [DWORD; 2usize],
}
#[test]
fn bindgen_test_layout__DEVICE_DSM_OFFLOAD_READ_PARAMETERS() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_DSM_OFFLOAD_READ_PARAMETERS>(),
        16usize,
        concat!("Size of: ", stringify!(_DEVICE_DSM_OFFLOAD_READ_PARAMETERS))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_DSM_OFFLOAD_READ_PARAMETERS>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICE_DSM_OFFLOAD_READ_PARAMETERS)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_OFFLOAD_READ_PARAMETERS>())).Flags as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_OFFLOAD_READ_PARAMETERS),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_OFFLOAD_READ_PARAMETERS>())).TimeToLive as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_OFFLOAD_READ_PARAMETERS),
            "::",
            stringify!(TimeToLive)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_OFFLOAD_READ_PARAMETERS>())).Reserved as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_OFFLOAD_READ_PARAMETERS),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type DEVICE_DSM_OFFLOAD_READ_PARAMETERS = _DEVICE_DSM_OFFLOAD_READ_PARAMETERS;
pub type PDEVICE_DSM_OFFLOAD_READ_PARAMETERS = *mut _DEVICE_DSM_OFFLOAD_READ_PARAMETERS;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _STORAGE_OFFLOAD_READ_OUTPUT {
    pub OffloadReadFlags: DWORD,
    pub Reserved: DWORD,
    pub LengthProtected: DWORDLONG,
    pub TokenLength: DWORD,
    pub Token: STORAGE_OFFLOAD_TOKEN,
}
#[test]
fn bindgen_test_layout__STORAGE_OFFLOAD_READ_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_OFFLOAD_READ_OUTPUT>(),
        536usize,
        concat!("Size of: ", stringify!(_STORAGE_OFFLOAD_READ_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_OFFLOAD_READ_OUTPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(_STORAGE_OFFLOAD_READ_OUTPUT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_OFFLOAD_READ_OUTPUT>())).OffloadReadFlags as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_OFFLOAD_READ_OUTPUT),
            "::",
            stringify!(OffloadReadFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_OFFLOAD_READ_OUTPUT>())).Reserved as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_OFFLOAD_READ_OUTPUT),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_OFFLOAD_READ_OUTPUT>())).LengthProtected as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_OFFLOAD_READ_OUTPUT),
            "::",
            stringify!(LengthProtected)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_OFFLOAD_READ_OUTPUT>())).TokenLength as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_OFFLOAD_READ_OUTPUT),
            "::",
            stringify!(TokenLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_OFFLOAD_READ_OUTPUT>())).Token as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_OFFLOAD_READ_OUTPUT),
            "::",
            stringify!(Token)
        )
    );
}
pub type STORAGE_OFFLOAD_READ_OUTPUT = _STORAGE_OFFLOAD_READ_OUTPUT;
pub type PSTORAGE_OFFLOAD_READ_OUTPUT = *mut _STORAGE_OFFLOAD_READ_OUTPUT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS {
    pub Flags: DWORD,
    pub Reserved: DWORD,
    pub TokenOffset: DWORDLONG,
    pub Token: STORAGE_OFFLOAD_TOKEN,
}
#[test]
fn bindgen_test_layout__DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS>(),
        528usize,
        concat!(
            "Size of: ",
            stringify!(_DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS>())).Flags as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS>())).Reserved as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS>())).TokenOffset as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS),
            "::",
            stringify!(TokenOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS>())).Token as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS),
            "::",
            stringify!(Token)
        )
    );
}
pub type DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS = _DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS;
pub type PDEVICE_DSM_OFFLOAD_WRITE_PARAMETERS = *mut _DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_OFFLOAD_WRITE_OUTPUT {
    pub OffloadWriteFlags: DWORD,
    pub Reserved: DWORD,
    pub LengthCopied: DWORDLONG,
}
#[test]
fn bindgen_test_layout__STORAGE_OFFLOAD_WRITE_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_OFFLOAD_WRITE_OUTPUT>(),
        16usize,
        concat!("Size of: ", stringify!(_STORAGE_OFFLOAD_WRITE_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_OFFLOAD_WRITE_OUTPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(_STORAGE_OFFLOAD_WRITE_OUTPUT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_OFFLOAD_WRITE_OUTPUT>())).OffloadWriteFlags as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_OFFLOAD_WRITE_OUTPUT),
            "::",
            stringify!(OffloadWriteFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_OFFLOAD_WRITE_OUTPUT>())).Reserved as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_OFFLOAD_WRITE_OUTPUT),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_OFFLOAD_WRITE_OUTPUT>())).LengthCopied as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_OFFLOAD_WRITE_OUTPUT),
            "::",
            stringify!(LengthCopied)
        )
    );
}
pub type STORAGE_OFFLOAD_WRITE_OUTPUT = _STORAGE_OFFLOAD_WRITE_OUTPUT;
pub type PSTORAGE_OFFLOAD_WRITE_OUTPUT = *mut _STORAGE_OFFLOAD_WRITE_OUTPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_DATA_SET_LBP_STATE_PARAMETERS {
    pub Version: DWORD,
    pub Size: DWORD,
    pub Flags: DWORD,
    pub OutputVersion: DWORD,
}
#[test]
fn bindgen_test_layout__DEVICE_DATA_SET_LBP_STATE_PARAMETERS() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_DATA_SET_LBP_STATE_PARAMETERS>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_DEVICE_DATA_SET_LBP_STATE_PARAMETERS)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_DATA_SET_LBP_STATE_PARAMETERS>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICE_DATA_SET_LBP_STATE_PARAMETERS)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_LBP_STATE_PARAMETERS>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_LBP_STATE_PARAMETERS),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_LBP_STATE_PARAMETERS>())).Size as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_LBP_STATE_PARAMETERS),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_LBP_STATE_PARAMETERS>())).Flags as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_LBP_STATE_PARAMETERS),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_LBP_STATE_PARAMETERS>())).OutputVersion
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_LBP_STATE_PARAMETERS),
            "::",
            stringify!(OutputVersion)
        )
    );
}
pub type DEVICE_DATA_SET_LBP_STATE_PARAMETERS = _DEVICE_DATA_SET_LBP_STATE_PARAMETERS;
pub type PDEVICE_DATA_SET_LBP_STATE_PARAMETERS = *mut _DEVICE_DATA_SET_LBP_STATE_PARAMETERS;
pub type DEVICE_DSM_ALLOCATION_PARAMETERS = _DEVICE_DATA_SET_LBP_STATE_PARAMETERS;
pub type PDEVICE_DSM_ALLOCATION_PARAMETERS = *mut _DEVICE_DATA_SET_LBP_STATE_PARAMETERS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_DATA_SET_LB_PROVISIONING_STATE {
    pub Size: DWORD,
    pub Version: DWORD,
    pub SlabSizeInBytes: DWORDLONG,
    pub SlabOffsetDeltaInBytes: DWORD,
    pub SlabAllocationBitMapBitCount: DWORD,
    pub SlabAllocationBitMapLength: DWORD,
    pub SlabAllocationBitMap: [DWORD; 1usize],
}
#[test]
fn bindgen_test_layout__DEVICE_DATA_SET_LB_PROVISIONING_STATE() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_DATA_SET_LB_PROVISIONING_STATE>(),
        32usize,
        concat!(
            "Size of: ",
            stringify!(_DEVICE_DATA_SET_LB_PROVISIONING_STATE)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_DATA_SET_LB_PROVISIONING_STATE>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICE_DATA_SET_LB_PROVISIONING_STATE)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_LB_PROVISIONING_STATE>())).Size as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_LB_PROVISIONING_STATE),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_LB_PROVISIONING_STATE>())).Version as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_LB_PROVISIONING_STATE),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_LB_PROVISIONING_STATE>())).SlabSizeInBytes
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_LB_PROVISIONING_STATE),
            "::",
            stringify!(SlabSizeInBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_LB_PROVISIONING_STATE>()))
                .SlabOffsetDeltaInBytes as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_LB_PROVISIONING_STATE),
            "::",
            stringify!(SlabOffsetDeltaInBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_LB_PROVISIONING_STATE>()))
                .SlabAllocationBitMapBitCount as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_LB_PROVISIONING_STATE),
            "::",
            stringify!(SlabAllocationBitMapBitCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_LB_PROVISIONING_STATE>()))
                .SlabAllocationBitMapLength as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_LB_PROVISIONING_STATE),
            "::",
            stringify!(SlabAllocationBitMapLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_LB_PROVISIONING_STATE>())).SlabAllocationBitMap
                as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_LB_PROVISIONING_STATE),
            "::",
            stringify!(SlabAllocationBitMap)
        )
    );
}
pub type DEVICE_DATA_SET_LB_PROVISIONING_STATE = _DEVICE_DATA_SET_LB_PROVISIONING_STATE;
pub type PDEVICE_DATA_SET_LB_PROVISIONING_STATE = *mut _DEVICE_DATA_SET_LB_PROVISIONING_STATE;
pub type DEVICE_DSM_ALLOCATION_OUTPUT = _DEVICE_DATA_SET_LB_PROVISIONING_STATE;
pub type PDEVICE_DSM_ALLOCATION_OUTPUT = *mut _DEVICE_DATA_SET_LB_PROVISIONING_STATE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2 {
    pub Size: DWORD,
    pub Version: DWORD,
    pub SlabSizeInBytes: DWORDLONG,
    pub SlabOffsetDeltaInBytes: DWORDLONG,
    pub SlabAllocationBitMapBitCount: DWORD,
    pub SlabAllocationBitMapLength: DWORD,
    pub SlabAllocationBitMap: [DWORD; 1usize],
}
#[test]
fn bindgen_test_layout__DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2>(),
        40usize,
        concat!(
            "Size of: ",
            stringify!(_DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2>())).Size as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2>())).Version
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2>())).SlabSizeInBytes
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2),
            "::",
            stringify!(SlabSizeInBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2>()))
                .SlabOffsetDeltaInBytes as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2),
            "::",
            stringify!(SlabOffsetDeltaInBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2>()))
                .SlabAllocationBitMapBitCount as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2),
            "::",
            stringify!(SlabAllocationBitMapBitCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2>()))
                .SlabAllocationBitMapLength as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2),
            "::",
            stringify!(SlabAllocationBitMapLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2>()))
                .SlabAllocationBitMap as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2),
            "::",
            stringify!(SlabAllocationBitMap)
        )
    );
}
pub type DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2 = _DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2;
pub type PDEVICE_DATA_SET_LB_PROVISIONING_STATE_V2 = *mut _DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2;
pub type DEVICE_DSM_ALLOCATION_OUTPUT2 = _DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2;
pub type PDEVICE_DSM_ALLOCATION_OUTPUT2 = *mut _DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_DATA_SET_REPAIR_PARAMETERS {
    pub NumberOfRepairCopies: DWORD,
    pub SourceCopy: DWORD,
    pub RepairCopies: [DWORD; 1usize],
}
#[test]
fn bindgen_test_layout__DEVICE_DATA_SET_REPAIR_PARAMETERS() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_DATA_SET_REPAIR_PARAMETERS>(),
        12usize,
        concat!("Size of: ", stringify!(_DEVICE_DATA_SET_REPAIR_PARAMETERS))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_DATA_SET_REPAIR_PARAMETERS>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICE_DATA_SET_REPAIR_PARAMETERS)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_REPAIR_PARAMETERS>())).NumberOfRepairCopies
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_REPAIR_PARAMETERS),
            "::",
            stringify!(NumberOfRepairCopies)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_REPAIR_PARAMETERS>())).SourceCopy as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_REPAIR_PARAMETERS),
            "::",
            stringify!(SourceCopy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_REPAIR_PARAMETERS>())).RepairCopies as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_REPAIR_PARAMETERS),
            "::",
            stringify!(RepairCopies)
        )
    );
}
pub type DEVICE_DATA_SET_REPAIR_PARAMETERS = _DEVICE_DATA_SET_REPAIR_PARAMETERS;
pub type PDEVICE_DATA_SET_REPAIR_PARAMETERS = *mut _DEVICE_DATA_SET_REPAIR_PARAMETERS;
pub type DEVICE_DSM_REPAIR_PARAMETERS = _DEVICE_DATA_SET_REPAIR_PARAMETERS;
pub type PDEVICE_DSM_REPAIR_PARAMETERS = *mut _DEVICE_DATA_SET_REPAIR_PARAMETERS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_DATA_SET_REPAIR_OUTPUT {
    pub ParityExtent: DEVICE_DSM_RANGE,
}
#[test]
fn bindgen_test_layout__DEVICE_DATA_SET_REPAIR_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_DATA_SET_REPAIR_OUTPUT>(),
        16usize,
        concat!("Size of: ", stringify!(_DEVICE_DATA_SET_REPAIR_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_DATA_SET_REPAIR_OUTPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(_DEVICE_DATA_SET_REPAIR_OUTPUT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_REPAIR_OUTPUT>())).ParityExtent as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_REPAIR_OUTPUT),
            "::",
            stringify!(ParityExtent)
        )
    );
}
pub type DEVICE_DATA_SET_REPAIR_OUTPUT = _DEVICE_DATA_SET_REPAIR_OUTPUT;
pub type PDEVICE_DATA_SET_REPAIR_OUTPUT = *mut _DEVICE_DATA_SET_REPAIR_OUTPUT;
pub type DEVICE_DSM_REPAIR_OUTPUT = _DEVICE_DATA_SET_REPAIR_OUTPUT;
pub type PDEVICE_DSM_REPAIR_OUTPUT = *mut _DEVICE_DATA_SET_REPAIR_OUTPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_DATA_SET_SCRUB_OUTPUT {
    pub BytesProcessed: DWORDLONG,
    pub BytesRepaired: DWORDLONG,
    pub BytesFailed: DWORDLONG,
}
#[test]
fn bindgen_test_layout__DEVICE_DATA_SET_SCRUB_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_DATA_SET_SCRUB_OUTPUT>(),
        24usize,
        concat!("Size of: ", stringify!(_DEVICE_DATA_SET_SCRUB_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_DATA_SET_SCRUB_OUTPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(_DEVICE_DATA_SET_SCRUB_OUTPUT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_SCRUB_OUTPUT>())).BytesProcessed as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_SCRUB_OUTPUT),
            "::",
            stringify!(BytesProcessed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_SCRUB_OUTPUT>())).BytesRepaired as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_SCRUB_OUTPUT),
            "::",
            stringify!(BytesRepaired)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_SCRUB_OUTPUT>())).BytesFailed as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_SCRUB_OUTPUT),
            "::",
            stringify!(BytesFailed)
        )
    );
}
pub type DEVICE_DATA_SET_SCRUB_OUTPUT = _DEVICE_DATA_SET_SCRUB_OUTPUT;
pub type PDEVICE_DATA_SET_SCRUB_OUTPUT = *mut _DEVICE_DATA_SET_SCRUB_OUTPUT;
pub type DEVICE_DSM_SCRUB_OUTPUT = _DEVICE_DATA_SET_SCRUB_OUTPUT;
pub type PDEVICE_DSM_SCRUB_OUTPUT = *mut _DEVICE_DATA_SET_SCRUB_OUTPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_DATA_SET_SCRUB_EX_OUTPUT {
    pub BytesProcessed: DWORDLONG,
    pub BytesRepaired: DWORDLONG,
    pub BytesFailed: DWORDLONG,
    pub ParityExtent: DEVICE_DSM_RANGE,
}
#[test]
fn bindgen_test_layout__DEVICE_DATA_SET_SCRUB_EX_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_DATA_SET_SCRUB_EX_OUTPUT>(),
        40usize,
        concat!("Size of: ", stringify!(_DEVICE_DATA_SET_SCRUB_EX_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_DATA_SET_SCRUB_EX_OUTPUT>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICE_DATA_SET_SCRUB_EX_OUTPUT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_SCRUB_EX_OUTPUT>())).BytesProcessed as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_SCRUB_EX_OUTPUT),
            "::",
            stringify!(BytesProcessed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_SCRUB_EX_OUTPUT>())).BytesRepaired as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_SCRUB_EX_OUTPUT),
            "::",
            stringify!(BytesRepaired)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_SCRUB_EX_OUTPUT>())).BytesFailed as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_SCRUB_EX_OUTPUT),
            "::",
            stringify!(BytesFailed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_SCRUB_EX_OUTPUT>())).ParityExtent as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_SCRUB_EX_OUTPUT),
            "::",
            stringify!(ParityExtent)
        )
    );
}
pub type DEVICE_DATA_SET_SCRUB_EX_OUTPUT = _DEVICE_DATA_SET_SCRUB_EX_OUTPUT;
pub type PDEVICE_DATA_SET_SCRUB_EX_OUTPUT = *mut _DEVICE_DATA_SET_SCRUB_EX_OUTPUT;
pub type DEVICE_DSM_SCRUB_OUTPUT2 = _DEVICE_DATA_SET_SCRUB_EX_OUTPUT;
pub type PDEVICE_DSM_SCRUB_OUTPUT2 = *mut _DEVICE_DATA_SET_SCRUB_EX_OUTPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_DSM_TIERING_QUERY_INPUT {
    pub Version: DWORD,
    pub Size: DWORD,
    pub Flags: DWORD,
    pub NumberOfTierIds: DWORD,
    pub TierIds: [GUID; 1usize],
}
#[test]
fn bindgen_test_layout__DEVICE_DSM_TIERING_QUERY_INPUT() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_DSM_TIERING_QUERY_INPUT>(),
        32usize,
        concat!("Size of: ", stringify!(_DEVICE_DSM_TIERING_QUERY_INPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_DSM_TIERING_QUERY_INPUT>(),
        4usize,
        concat!("Alignment of ", stringify!(_DEVICE_DSM_TIERING_QUERY_INPUT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_TIERING_QUERY_INPUT>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_TIERING_QUERY_INPUT),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_TIERING_QUERY_INPUT>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_TIERING_QUERY_INPUT),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_TIERING_QUERY_INPUT>())).Flags as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_TIERING_QUERY_INPUT),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_TIERING_QUERY_INPUT>())).NumberOfTierIds as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_TIERING_QUERY_INPUT),
            "::",
            stringify!(NumberOfTierIds)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_TIERING_QUERY_INPUT>())).TierIds as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_TIERING_QUERY_INPUT),
            "::",
            stringify!(TierIds)
        )
    );
}
pub type DEVICE_DSM_TIERING_QUERY_INPUT = _DEVICE_DSM_TIERING_QUERY_INPUT;
pub type PDEVICE_DSM_TIERING_QUERY_INPUT = *mut _DEVICE_DSM_TIERING_QUERY_INPUT;
pub type DEVICE_DSM_TIERING_QUERY_PARAMETERS = _DEVICE_DSM_TIERING_QUERY_INPUT;
pub type PDEVICE_DSM_TIERING_QUERY_PARAMETERS = *mut _DEVICE_DSM_TIERING_QUERY_INPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_TIER_REGION {
    pub TierId: GUID,
    pub Offset: DWORDLONG,
    pub Length: DWORDLONG,
}
#[test]
fn bindgen_test_layout__STORAGE_TIER_REGION() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_TIER_REGION>(),
        32usize,
        concat!("Size of: ", stringify!(_STORAGE_TIER_REGION))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_TIER_REGION>(),
        8usize,
        concat!("Alignment of ", stringify!(_STORAGE_TIER_REGION))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_TIER_REGION>())).TierId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TIER_REGION),
            "::",
            stringify!(TierId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_TIER_REGION>())).Offset as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TIER_REGION),
            "::",
            stringify!(Offset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_TIER_REGION>())).Length as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_TIER_REGION),
            "::",
            stringify!(Length)
        )
    );
}
pub type STORAGE_TIER_REGION = _STORAGE_TIER_REGION;
pub type PSTORAGE_TIER_REGION = *mut _STORAGE_TIER_REGION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_DSM_TIERING_QUERY_OUTPUT {
    pub Version: DWORD,
    pub Size: DWORD,
    pub Flags: DWORD,
    pub Reserved: DWORD,
    pub Alignment: DWORDLONG,
    pub TotalNumberOfRegions: DWORD,
    pub NumberOfRegionsReturned: DWORD,
    pub Regions: [STORAGE_TIER_REGION; 1usize],
}
#[test]
fn bindgen_test_layout__DEVICE_DSM_TIERING_QUERY_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_DSM_TIERING_QUERY_OUTPUT>(),
        64usize,
        concat!("Size of: ", stringify!(_DEVICE_DSM_TIERING_QUERY_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_DSM_TIERING_QUERY_OUTPUT>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICE_DSM_TIERING_QUERY_OUTPUT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_TIERING_QUERY_OUTPUT>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_TIERING_QUERY_OUTPUT),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_TIERING_QUERY_OUTPUT>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_TIERING_QUERY_OUTPUT),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_TIERING_QUERY_OUTPUT>())).Flags as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_TIERING_QUERY_OUTPUT),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_TIERING_QUERY_OUTPUT>())).Reserved as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_TIERING_QUERY_OUTPUT),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_TIERING_QUERY_OUTPUT>())).Alignment as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_TIERING_QUERY_OUTPUT),
            "::",
            stringify!(Alignment)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_TIERING_QUERY_OUTPUT>())).TotalNumberOfRegions
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_TIERING_QUERY_OUTPUT),
            "::",
            stringify!(TotalNumberOfRegions)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_TIERING_QUERY_OUTPUT>())).NumberOfRegionsReturned
                as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_TIERING_QUERY_OUTPUT),
            "::",
            stringify!(NumberOfRegionsReturned)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_TIERING_QUERY_OUTPUT>())).Regions as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_TIERING_QUERY_OUTPUT),
            "::",
            stringify!(Regions)
        )
    );
}
pub type DEVICE_DSM_TIERING_QUERY_OUTPUT = _DEVICE_DSM_TIERING_QUERY_OUTPUT;
pub type PDEVICE_DSM_TIERING_QUERY_OUTPUT = *mut _DEVICE_DSM_TIERING_QUERY_OUTPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_DSM_NVCACHE_CHANGE_PRIORITY_PARAMETERS {
    pub Size: DWORD,
    pub TargetPriority: BYTE,
    pub Reserved: [BYTE; 3usize],
}
#[test]
fn bindgen_test_layout__DEVICE_DSM_NVCACHE_CHANGE_PRIORITY_PARAMETERS() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_DSM_NVCACHE_CHANGE_PRIORITY_PARAMETERS>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_DEVICE_DSM_NVCACHE_CHANGE_PRIORITY_PARAMETERS)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_DSM_NVCACHE_CHANGE_PRIORITY_PARAMETERS>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICE_DSM_NVCACHE_CHANGE_PRIORITY_PARAMETERS)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_NVCACHE_CHANGE_PRIORITY_PARAMETERS>())).Size
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_NVCACHE_CHANGE_PRIORITY_PARAMETERS),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_NVCACHE_CHANGE_PRIORITY_PARAMETERS>()))
                .TargetPriority as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_NVCACHE_CHANGE_PRIORITY_PARAMETERS),
            "::",
            stringify!(TargetPriority)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_NVCACHE_CHANGE_PRIORITY_PARAMETERS>())).Reserved
                as *const _ as usize
        },
        5usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_NVCACHE_CHANGE_PRIORITY_PARAMETERS),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type DEVICE_DSM_NVCACHE_CHANGE_PRIORITY_PARAMETERS =
    _DEVICE_DSM_NVCACHE_CHANGE_PRIORITY_PARAMETERS;
pub type PDEVICE_DSM_NVCACHE_CHANGE_PRIORITY_PARAMETERS =
    *mut _DEVICE_DSM_NVCACHE_CHANGE_PRIORITY_PARAMETERS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_DATA_SET_TOPOLOGY_ID_QUERY_OUTPUT {
    pub TopologyRangeBytes: DWORDLONG,
    pub TopologyId: [BYTE; 16usize],
}
#[test]
fn bindgen_test_layout__DEVICE_DATA_SET_TOPOLOGY_ID_QUERY_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_DATA_SET_TOPOLOGY_ID_QUERY_OUTPUT>(),
        24usize,
        concat!(
            "Size of: ",
            stringify!(_DEVICE_DATA_SET_TOPOLOGY_ID_QUERY_OUTPUT)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_DATA_SET_TOPOLOGY_ID_QUERY_OUTPUT>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICE_DATA_SET_TOPOLOGY_ID_QUERY_OUTPUT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_TOPOLOGY_ID_QUERY_OUTPUT>())).TopologyRangeBytes
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_TOPOLOGY_ID_QUERY_OUTPUT),
            "::",
            stringify!(TopologyRangeBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DATA_SET_TOPOLOGY_ID_QUERY_OUTPUT>())).TopologyId
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DATA_SET_TOPOLOGY_ID_QUERY_OUTPUT),
            "::",
            stringify!(TopologyId)
        )
    );
}
pub type DEVICE_DATA_SET_TOPOLOGY_ID_QUERY_OUTPUT = _DEVICE_DATA_SET_TOPOLOGY_ID_QUERY_OUTPUT;
pub type PDEVICE_DATA_SET_TOPOLOGY_ID_QUERY_OUTPUT = *mut _DEVICE_DATA_SET_TOPOLOGY_ID_QUERY_OUTPUT;
pub type DEVICE_DSM_TOPOLOGY_ID_QUERY_OUTPUT = _DEVICE_DATA_SET_TOPOLOGY_ID_QUERY_OUTPUT;
pub type PDEVICE_DSM_TOPOLOGY_ID_QUERY_OUTPUT = *mut _DEVICE_DATA_SET_TOPOLOGY_ID_QUERY_OUTPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_STORAGE_ADDRESS_RANGE {
    pub StartAddress: LONGLONG,
    pub LengthInBytes: DWORDLONG,
}
#[test]
fn bindgen_test_layout__DEVICE_STORAGE_ADDRESS_RANGE() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_STORAGE_ADDRESS_RANGE>(),
        16usize,
        concat!("Size of: ", stringify!(_DEVICE_STORAGE_ADDRESS_RANGE))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_STORAGE_ADDRESS_RANGE>(),
        8usize,
        concat!("Alignment of ", stringify!(_DEVICE_STORAGE_ADDRESS_RANGE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_STORAGE_ADDRESS_RANGE>())).StartAddress as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_STORAGE_ADDRESS_RANGE),
            "::",
            stringify!(StartAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_STORAGE_ADDRESS_RANGE>())).LengthInBytes as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_STORAGE_ADDRESS_RANGE),
            "::",
            stringify!(LengthInBytes)
        )
    );
}
pub type DEVICE_STORAGE_ADDRESS_RANGE = _DEVICE_STORAGE_ADDRESS_RANGE;
pub type PDEVICE_STORAGE_ADDRESS_RANGE = *mut _DEVICE_STORAGE_ADDRESS_RANGE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT {
    pub Version: DWORD,
    pub Flags: DWORD,
    pub TotalNumberOfRanges: DWORD,
    pub NumberOfRangesReturned: DWORD,
    pub Ranges: [DEVICE_STORAGE_ADDRESS_RANGE; 1usize],
}
#[test]
fn bindgen_test_layout__DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT>(),
        32usize,
        concat!(
            "Size of: ",
            stringify!(_DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT>())).Flags as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT>())).TotalNumberOfRanges
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT),
            "::",
            stringify!(TotalNumberOfRanges)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT>())).NumberOfRangesReturned
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT),
            "::",
            stringify!(NumberOfRangesReturned)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT>())).Ranges as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT),
            "::",
            stringify!(Ranges)
        )
    );
}
pub type DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT = _DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT;
pub type PDEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT = *mut _DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_DSM_REPORT_ZONES_PARAMETERS {
    pub Size: DWORD,
    pub ReportOption: BYTE,
    pub Partial: BYTE,
    pub Reserved: [BYTE; 2usize],
}
#[test]
fn bindgen_test_layout__DEVICE_DSM_REPORT_ZONES_PARAMETERS() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_DSM_REPORT_ZONES_PARAMETERS>(),
        8usize,
        concat!("Size of: ", stringify!(_DEVICE_DSM_REPORT_ZONES_PARAMETERS))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_DSM_REPORT_ZONES_PARAMETERS>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICE_DSM_REPORT_ZONES_PARAMETERS)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_REPORT_ZONES_PARAMETERS>())).Size as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_REPORT_ZONES_PARAMETERS),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_REPORT_ZONES_PARAMETERS>())).ReportOption as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_REPORT_ZONES_PARAMETERS),
            "::",
            stringify!(ReportOption)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_REPORT_ZONES_PARAMETERS>())).Partial as *const _
                as usize
        },
        5usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_REPORT_ZONES_PARAMETERS),
            "::",
            stringify!(Partial)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_REPORT_ZONES_PARAMETERS>())).Reserved as *const _
                as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_REPORT_ZONES_PARAMETERS),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type DEVICE_DSM_REPORT_ZONES_PARAMETERS = _DEVICE_DSM_REPORT_ZONES_PARAMETERS;
pub type PDEVICE_DSM_REPORT_ZONES_PARAMETERS = *mut _DEVICE_DSM_REPORT_ZONES_PARAMETERS;
pub const _STORAGE_ZONES_ATTRIBUTES_ZonesAttributeTypeAndLengthMayDifferent:
    _STORAGE_ZONES_ATTRIBUTES = 0;
pub const _STORAGE_ZONES_ATTRIBUTES_ZonesAttributeTypeSameLengthSame: _STORAGE_ZONES_ATTRIBUTES = 1;
pub const _STORAGE_ZONES_ATTRIBUTES_ZonesAttributeTypeSameLastZoneLengthDifferent:
    _STORAGE_ZONES_ATTRIBUTES = 2;
pub const _STORAGE_ZONES_ATTRIBUTES_ZonesAttributeTypeMayDifferentLengthSame:
    _STORAGE_ZONES_ATTRIBUTES = 3;
pub type _STORAGE_ZONES_ATTRIBUTES = ::std::os::raw::c_int;
pub use self::_STORAGE_ZONES_ATTRIBUTES as STORAGE_ZONES_ATTRIBUTES;
pub type PSTORAGE_ZONES_ATTRIBUTES = *mut _STORAGE_ZONES_ATTRIBUTES;
pub const _STORAGE_ZONE_CONDITION_ZoneConditionConventional: _STORAGE_ZONE_CONDITION = 0;
pub const _STORAGE_ZONE_CONDITION_ZoneConditionEmpty: _STORAGE_ZONE_CONDITION = 1;
pub const _STORAGE_ZONE_CONDITION_ZoneConditionImplicitlyOpened: _STORAGE_ZONE_CONDITION = 2;
pub const _STORAGE_ZONE_CONDITION_ZoneConditionExplicitlyOpened: _STORAGE_ZONE_CONDITION = 3;
pub const _STORAGE_ZONE_CONDITION_ZoneConditionClosed: _STORAGE_ZONE_CONDITION = 4;
pub const _STORAGE_ZONE_CONDITION_ZoneConditionReadOnly: _STORAGE_ZONE_CONDITION = 13;
pub const _STORAGE_ZONE_CONDITION_ZoneConditionFull: _STORAGE_ZONE_CONDITION = 14;
pub const _STORAGE_ZONE_CONDITION_ZoneConditionOffline: _STORAGE_ZONE_CONDITION = 15;
pub type _STORAGE_ZONE_CONDITION = ::std::os::raw::c_int;
pub use self::_STORAGE_ZONE_CONDITION as STORAGE_ZONE_CONDITION;
pub type PSTORAGE_ZONE_CONDITION = *mut _STORAGE_ZONE_CONDITION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_ZONE_DESCRIPTOR {
    pub Size: DWORD,
    pub ZoneType: STORAGE_ZONE_TYPES,
    pub ZoneCondition: STORAGE_ZONE_CONDITION,
    pub ResetWritePointerRecommend: BOOLEAN,
    pub Reserved0: [BYTE; 3usize],
    pub ZoneSize: DWORDLONG,
    pub WritePointerOffset: DWORDLONG,
}
#[test]
fn bindgen_test_layout__STORAGE_ZONE_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_ZONE_DESCRIPTOR>(),
        32usize,
        concat!("Size of: ", stringify!(_STORAGE_ZONE_DESCRIPTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_ZONE_DESCRIPTOR>(),
        8usize,
        concat!("Alignment of ", stringify!(_STORAGE_ZONE_DESCRIPTOR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_ZONE_DESCRIPTOR>())).Size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ZONE_DESCRIPTOR),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ZONE_DESCRIPTOR>())).ZoneType as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ZONE_DESCRIPTOR),
            "::",
            stringify!(ZoneType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ZONE_DESCRIPTOR>())).ZoneCondition as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ZONE_DESCRIPTOR),
            "::",
            stringify!(ZoneCondition)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ZONE_DESCRIPTOR>())).ResetWritePointerRecommend
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ZONE_DESCRIPTOR),
            "::",
            stringify!(ResetWritePointerRecommend)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ZONE_DESCRIPTOR>())).Reserved0 as *const _ as usize
        },
        13usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ZONE_DESCRIPTOR),
            "::",
            stringify!(Reserved0)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ZONE_DESCRIPTOR>())).ZoneSize as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ZONE_DESCRIPTOR),
            "::",
            stringify!(ZoneSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ZONE_DESCRIPTOR>())).WritePointerOffset as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ZONE_DESCRIPTOR),
            "::",
            stringify!(WritePointerOffset)
        )
    );
}
pub type STORAGE_ZONE_DESCRIPTOR = _STORAGE_ZONE_DESCRIPTOR;
pub type PSTORAGE_ZONE_DESCRIPTOR = *mut _STORAGE_ZONE_DESCRIPTOR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_DSM_REPORT_ZONES_DATA {
    pub Size: DWORD,
    pub ZoneCount: DWORD,
    pub Attributes: STORAGE_ZONES_ATTRIBUTES,
    pub Reserved0: DWORD,
    pub ZoneDescriptors: [STORAGE_ZONE_DESCRIPTOR; 1usize],
}
#[test]
fn bindgen_test_layout__DEVICE_DSM_REPORT_ZONES_DATA() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_DSM_REPORT_ZONES_DATA>(),
        48usize,
        concat!("Size of: ", stringify!(_DEVICE_DSM_REPORT_ZONES_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_DSM_REPORT_ZONES_DATA>(),
        8usize,
        concat!("Alignment of ", stringify!(_DEVICE_DSM_REPORT_ZONES_DATA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_REPORT_ZONES_DATA>())).Size as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_REPORT_ZONES_DATA),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_REPORT_ZONES_DATA>())).ZoneCount as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_REPORT_ZONES_DATA),
            "::",
            stringify!(ZoneCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_REPORT_ZONES_DATA>())).Attributes as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_REPORT_ZONES_DATA),
            "::",
            stringify!(Attributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_REPORT_ZONES_DATA>())).Reserved0 as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_REPORT_ZONES_DATA),
            "::",
            stringify!(Reserved0)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_REPORT_ZONES_DATA>())).ZoneDescriptors as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_REPORT_ZONES_DATA),
            "::",
            stringify!(ZoneDescriptors)
        )
    );
}
pub type DEVICE_DSM_REPORT_ZONES_DATA = _DEVICE_DSM_REPORT_ZONES_DATA;
pub type PDEVICE_DSM_REPORT_ZONES_DATA = *mut _DEVICE_DSM_REPORT_ZONES_DATA;
pub type DEVICE_DSM_REPORT_ZONES_OUTPUT = _DEVICE_DSM_REPORT_ZONES_DATA;
pub type PDEVICE_DSM_REPORT_ZONES_OUTPUT = *mut _DEVICE_DSM_REPORT_ZONES_DATA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _DEVICE_STORAGE_RANGE_ATTRIBUTES {
    pub LengthInBytes: DWORDLONG,
    pub __bindgen_anon_1: _DEVICE_STORAGE_RANGE_ATTRIBUTES__bindgen_ty_1,
    pub Reserved: DWORD,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _DEVICE_STORAGE_RANGE_ATTRIBUTES__bindgen_ty_1 {
    pub AllFlags: DWORD,
    pub __bindgen_anon_1: _DEVICE_STORAGE_RANGE_ATTRIBUTES__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: u32,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_STORAGE_RANGE_ATTRIBUTES__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize], u8>,
    pub __bindgen_padding_0: [u8; 3usize],
}
#[test]
fn bindgen_test_layout__DEVICE_STORAGE_RANGE_ATTRIBUTES__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_STORAGE_RANGE_ATTRIBUTES__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_DEVICE_STORAGE_RANGE_ATTRIBUTES__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_STORAGE_RANGE_ATTRIBUTES__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICE_STORAGE_RANGE_ATTRIBUTES__bindgen_ty_1__bindgen_ty_1)
        )
    );
}
impl _DEVICE_STORAGE_RANGE_ATTRIBUTES__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn IsRangeBad(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_IsRangeBad(&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(IsRangeBad: DWORD) -> __BindgenBitfieldUnit<[u8; 1usize], u8> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize], u8> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let IsRangeBad: u32 = unsafe { ::std::mem::transmute(IsRangeBad) };
            IsRangeBad as u64
        });
        __bindgen_bitfield_unit
    }
}
#[test]
fn bindgen_test_layout__DEVICE_STORAGE_RANGE_ATTRIBUTES__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_STORAGE_RANGE_ATTRIBUTES__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_DEVICE_STORAGE_RANGE_ATTRIBUTES__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_STORAGE_RANGE_ATTRIBUTES__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICE_STORAGE_RANGE_ATTRIBUTES__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_STORAGE_RANGE_ATTRIBUTES__bindgen_ty_1>())).AllFlags
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_STORAGE_RANGE_ATTRIBUTES__bindgen_ty_1),
            "::",
            stringify!(AllFlags)
        )
    );
}
#[test]
fn bindgen_test_layout__DEVICE_STORAGE_RANGE_ATTRIBUTES() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_STORAGE_RANGE_ATTRIBUTES>(),
        16usize,
        concat!("Size of: ", stringify!(_DEVICE_STORAGE_RANGE_ATTRIBUTES))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_STORAGE_RANGE_ATTRIBUTES>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICE_STORAGE_RANGE_ATTRIBUTES)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_STORAGE_RANGE_ATTRIBUTES>())).LengthInBytes as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_STORAGE_RANGE_ATTRIBUTES),
            "::",
            stringify!(LengthInBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_STORAGE_RANGE_ATTRIBUTES>())).Reserved as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_STORAGE_RANGE_ATTRIBUTES),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type DEVICE_STORAGE_RANGE_ATTRIBUTES = _DEVICE_STORAGE_RANGE_ATTRIBUTES;
pub type PDEVICE_STORAGE_RANGE_ATTRIBUTES = *mut _DEVICE_STORAGE_RANGE_ATTRIBUTES;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _DEVICE_DSM_RANGE_ERROR_INFO {
    pub Version: DWORD,
    pub Flags: DWORD,
    pub TotalNumberOfRanges: DWORD,
    pub NumberOfRangesReturned: DWORD,
    pub Ranges: [DEVICE_STORAGE_RANGE_ATTRIBUTES; 1usize],
}
#[test]
fn bindgen_test_layout__DEVICE_DSM_RANGE_ERROR_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_DSM_RANGE_ERROR_INFO>(),
        32usize,
        concat!("Size of: ", stringify!(_DEVICE_DSM_RANGE_ERROR_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_DSM_RANGE_ERROR_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_DEVICE_DSM_RANGE_ERROR_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_RANGE_ERROR_INFO>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_RANGE_ERROR_INFO),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_RANGE_ERROR_INFO>())).Flags as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_RANGE_ERROR_INFO),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_RANGE_ERROR_INFO>())).TotalNumberOfRanges as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_RANGE_ERROR_INFO),
            "::",
            stringify!(TotalNumberOfRanges)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_RANGE_ERROR_INFO>())).NumberOfRangesReturned
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_RANGE_ERROR_INFO),
            "::",
            stringify!(NumberOfRangesReturned)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_RANGE_ERROR_INFO>())).Ranges as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_RANGE_ERROR_INFO),
            "::",
            stringify!(Ranges)
        )
    );
}
pub type DEVICE_DSM_RANGE_ERROR_INFO = _DEVICE_DSM_RANGE_ERROR_INFO;
pub type PDEVICE_DSM_RANGE_ERROR_INFO = *mut _DEVICE_DSM_RANGE_ERROR_INFO;
pub type DEVICE_DSM_RANGE_ERROR_OUTPUT = _DEVICE_DSM_RANGE_ERROR_INFO;
pub type PDEVICE_DSM_RANGE_ERROR_OUTPUT = *mut _DEVICE_DSM_RANGE_ERROR_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_DSM_LOST_QUERY_PARAMETERS {
    pub Version: DWORD,
    pub Granularity: DWORDLONG,
}
#[test]
fn bindgen_test_layout__DEVICE_DSM_LOST_QUERY_PARAMETERS() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_DSM_LOST_QUERY_PARAMETERS>(),
        16usize,
        concat!("Size of: ", stringify!(_DEVICE_DSM_LOST_QUERY_PARAMETERS))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_DSM_LOST_QUERY_PARAMETERS>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICE_DSM_LOST_QUERY_PARAMETERS)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_LOST_QUERY_PARAMETERS>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_LOST_QUERY_PARAMETERS),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_LOST_QUERY_PARAMETERS>())).Granularity as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_LOST_QUERY_PARAMETERS),
            "::",
            stringify!(Granularity)
        )
    );
}
pub type DEVICE_DSM_LOST_QUERY_PARAMETERS = _DEVICE_DSM_LOST_QUERY_PARAMETERS;
pub type PDEVICE_DSM_LOST_QUERY_PARAMETERS = *mut _DEVICE_DSM_LOST_QUERY_PARAMETERS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_DSM_LOST_QUERY_OUTPUT {
    pub Version: DWORD,
    pub Size: DWORD,
    pub Alignment: DWORDLONG,
    pub NumberOfBits: DWORD,
    pub BitMap: [DWORD; 1usize],
}
#[test]
fn bindgen_test_layout__DEVICE_DSM_LOST_QUERY_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_DSM_LOST_QUERY_OUTPUT>(),
        24usize,
        concat!("Size of: ", stringify!(_DEVICE_DSM_LOST_QUERY_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_DSM_LOST_QUERY_OUTPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(_DEVICE_DSM_LOST_QUERY_OUTPUT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_LOST_QUERY_OUTPUT>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_LOST_QUERY_OUTPUT),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_LOST_QUERY_OUTPUT>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_LOST_QUERY_OUTPUT),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_LOST_QUERY_OUTPUT>())).Alignment as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_LOST_QUERY_OUTPUT),
            "::",
            stringify!(Alignment)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_LOST_QUERY_OUTPUT>())).NumberOfBits as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_LOST_QUERY_OUTPUT),
            "::",
            stringify!(NumberOfBits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_LOST_QUERY_OUTPUT>())).BitMap as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_LOST_QUERY_OUTPUT),
            "::",
            stringify!(BitMap)
        )
    );
}
pub type DEVICE_DSM_LOST_QUERY_OUTPUT = _DEVICE_DSM_LOST_QUERY_OUTPUT;
pub type PDEVICE_DSM_LOST_QUERY_OUTPUT = *mut _DEVICE_DSM_LOST_QUERY_OUTPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_DSM_FREE_SPACE_OUTPUT {
    pub Version: DWORD,
    pub FreeSpace: DWORDLONG,
}
#[test]
fn bindgen_test_layout__DEVICE_DSM_FREE_SPACE_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_DSM_FREE_SPACE_OUTPUT>(),
        16usize,
        concat!("Size of: ", stringify!(_DEVICE_DSM_FREE_SPACE_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_DSM_FREE_SPACE_OUTPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(_DEVICE_DSM_FREE_SPACE_OUTPUT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_FREE_SPACE_OUTPUT>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_FREE_SPACE_OUTPUT),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_FREE_SPACE_OUTPUT>())).FreeSpace as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_FREE_SPACE_OUTPUT),
            "::",
            stringify!(FreeSpace)
        )
    );
}
pub type DEVICE_DSM_FREE_SPACE_OUTPUT = _DEVICE_DSM_FREE_SPACE_OUTPUT;
pub type PDEVICE_DSM_FREE_SPACE_OUTPUT = *mut _DEVICE_DSM_FREE_SPACE_OUTPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICE_DSM_CONVERSION_OUTPUT {
    pub Version: DWORD,
    pub Source: GUID,
}
#[test]
fn bindgen_test_layout__DEVICE_DSM_CONVERSION_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICE_DSM_CONVERSION_OUTPUT>(),
        20usize,
        concat!("Size of: ", stringify!(_DEVICE_DSM_CONVERSION_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICE_DSM_CONVERSION_OUTPUT>(),
        4usize,
        concat!("Alignment of ", stringify!(_DEVICE_DSM_CONVERSION_OUTPUT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_CONVERSION_OUTPUT>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_CONVERSION_OUTPUT),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICE_DSM_CONVERSION_OUTPUT>())).Source as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICE_DSM_CONVERSION_OUTPUT),
            "::",
            stringify!(Source)
        )
    );
}
pub type DEVICE_DSM_CONVERSION_OUTPUT = _DEVICE_DSM_CONVERSION_OUTPUT;
pub type PDEVICE_DSM_CONVERSION_OUTPUT = *mut _DEVICE_DSM_CONVERSION_OUTPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_GET_BC_PROPERTIES_OUTPUT {
    pub MaximumRequestsPerPeriod: DWORD,
    pub MinimumPeriod: DWORD,
    pub MaximumRequestSize: DWORDLONG,
    pub EstimatedTimePerRequest: DWORD,
    pub NumOutStandingRequests: DWORD,
    pub RequestSize: DWORDLONG,
}
#[test]
fn bindgen_test_layout__STORAGE_GET_BC_PROPERTIES_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_GET_BC_PROPERTIES_OUTPUT>(),
        32usize,
        concat!("Size of: ", stringify!(_STORAGE_GET_BC_PROPERTIES_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_GET_BC_PROPERTIES_OUTPUT>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_GET_BC_PROPERTIES_OUTPUT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_GET_BC_PROPERTIES_OUTPUT>())).MaximumRequestsPerPeriod
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_GET_BC_PROPERTIES_OUTPUT),
            "::",
            stringify!(MaximumRequestsPerPeriod)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_GET_BC_PROPERTIES_OUTPUT>())).MinimumPeriod as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_GET_BC_PROPERTIES_OUTPUT),
            "::",
            stringify!(MinimumPeriod)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_GET_BC_PROPERTIES_OUTPUT>())).MaximumRequestSize
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_GET_BC_PROPERTIES_OUTPUT),
            "::",
            stringify!(MaximumRequestSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_GET_BC_PROPERTIES_OUTPUT>())).EstimatedTimePerRequest
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_GET_BC_PROPERTIES_OUTPUT),
            "::",
            stringify!(EstimatedTimePerRequest)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_GET_BC_PROPERTIES_OUTPUT>())).NumOutStandingRequests
                as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_GET_BC_PROPERTIES_OUTPUT),
            "::",
            stringify!(NumOutStandingRequests)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_GET_BC_PROPERTIES_OUTPUT>())).RequestSize as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_GET_BC_PROPERTIES_OUTPUT),
            "::",
            stringify!(RequestSize)
        )
    );
}
pub type STORAGE_GET_BC_PROPERTIES_OUTPUT = _STORAGE_GET_BC_PROPERTIES_OUTPUT;
pub type PSTORAGE_GET_BC_PROPERTIES_OUTPUT = *mut _STORAGE_GET_BC_PROPERTIES_OUTPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_ALLOCATE_BC_STREAM_INPUT {
    pub Version: DWORD,
    pub RequestsPerPeriod: DWORD,
    pub Period: DWORD,
    pub RetryFailures: BOOLEAN,
    pub Discardable: BOOLEAN,
    pub Reserved1: [BOOLEAN; 2usize],
    pub AccessType: DWORD,
    pub AccessMode: DWORD,
}
#[test]
fn bindgen_test_layout__STORAGE_ALLOCATE_BC_STREAM_INPUT() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_ALLOCATE_BC_STREAM_INPUT>(),
        24usize,
        concat!("Size of: ", stringify!(_STORAGE_ALLOCATE_BC_STREAM_INPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_ALLOCATE_BC_STREAM_INPUT>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_ALLOCATE_BC_STREAM_INPUT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ALLOCATE_BC_STREAM_INPUT>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ALLOCATE_BC_STREAM_INPUT),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ALLOCATE_BC_STREAM_INPUT>())).RequestsPerPeriod
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ALLOCATE_BC_STREAM_INPUT),
            "::",
            stringify!(RequestsPerPeriod)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ALLOCATE_BC_STREAM_INPUT>())).Period as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ALLOCATE_BC_STREAM_INPUT),
            "::",
            stringify!(Period)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ALLOCATE_BC_STREAM_INPUT>())).RetryFailures as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ALLOCATE_BC_STREAM_INPUT),
            "::",
            stringify!(RetryFailures)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ALLOCATE_BC_STREAM_INPUT>())).Discardable as *const _
                as usize
        },
        13usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ALLOCATE_BC_STREAM_INPUT),
            "::",
            stringify!(Discardable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ALLOCATE_BC_STREAM_INPUT>())).Reserved1 as *const _
                as usize
        },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ALLOCATE_BC_STREAM_INPUT),
            "::",
            stringify!(Reserved1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ALLOCATE_BC_STREAM_INPUT>())).AccessType as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ALLOCATE_BC_STREAM_INPUT),
            "::",
            stringify!(AccessType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ALLOCATE_BC_STREAM_INPUT>())).AccessMode as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ALLOCATE_BC_STREAM_INPUT),
            "::",
            stringify!(AccessMode)
        )
    );
}
pub type STORAGE_ALLOCATE_BC_STREAM_INPUT = _STORAGE_ALLOCATE_BC_STREAM_INPUT;
pub type PSTORAGE_ALLOCATE_BC_STREAM_INPUT = *mut _STORAGE_ALLOCATE_BC_STREAM_INPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_ALLOCATE_BC_STREAM_OUTPUT {
    pub RequestSize: DWORDLONG,
    pub NumOutStandingRequests: DWORD,
}
#[test]
fn bindgen_test_layout__STORAGE_ALLOCATE_BC_STREAM_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_ALLOCATE_BC_STREAM_OUTPUT>(),
        16usize,
        concat!("Size of: ", stringify!(_STORAGE_ALLOCATE_BC_STREAM_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_ALLOCATE_BC_STREAM_OUTPUT>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_ALLOCATE_BC_STREAM_OUTPUT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ALLOCATE_BC_STREAM_OUTPUT>())).RequestSize as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ALLOCATE_BC_STREAM_OUTPUT),
            "::",
            stringify!(RequestSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ALLOCATE_BC_STREAM_OUTPUT>())).NumOutStandingRequests
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ALLOCATE_BC_STREAM_OUTPUT),
            "::",
            stringify!(NumOutStandingRequests)
        )
    );
}
pub type STORAGE_ALLOCATE_BC_STREAM_OUTPUT = _STORAGE_ALLOCATE_BC_STREAM_OUTPUT;
pub type PSTORAGE_ALLOCATE_BC_STREAM_OUTPUT = *mut _STORAGE_ALLOCATE_BC_STREAM_OUTPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_PRIORITY_HINT_SUPPORT {
    pub SupportFlags: DWORD,
}
#[test]
fn bindgen_test_layout__STORAGE_PRIORITY_HINT_SUPPORT() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_PRIORITY_HINT_SUPPORT>(),
        4usize,
        concat!("Size of: ", stringify!(_STORAGE_PRIORITY_HINT_SUPPORT))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_PRIORITY_HINT_SUPPORT>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_PRIORITY_HINT_SUPPORT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PRIORITY_HINT_SUPPORT>())).SupportFlags as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PRIORITY_HINT_SUPPORT),
            "::",
            stringify!(SupportFlags)
        )
    );
}
pub type STORAGE_PRIORITY_HINT_SUPPORT = _STORAGE_PRIORITY_HINT_SUPPORT;
pub type PSTORAGE_PRIORITY_HINT_SUPPORT = *mut _STORAGE_PRIORITY_HINT_SUPPORT;
pub const _STORAGE_DIAGNOSTIC_LEVEL_StorageDiagnosticLevelDefault: _STORAGE_DIAGNOSTIC_LEVEL = 0;
pub const _STORAGE_DIAGNOSTIC_LEVEL_StorageDiagnosticLevelMax: _STORAGE_DIAGNOSTIC_LEVEL = 1;
pub type _STORAGE_DIAGNOSTIC_LEVEL = ::std::os::raw::c_int;
pub use self::_STORAGE_DIAGNOSTIC_LEVEL as STORAGE_DIAGNOSTIC_LEVEL;
pub type PSTORAGE_DIAGNOSTIC_LEVEL = *mut _STORAGE_DIAGNOSTIC_LEVEL;
pub const _STORAGE_DIAGNOSTIC_TARGET_TYPE_StorageDiagnosticTargetTypeUndefined:
    _STORAGE_DIAGNOSTIC_TARGET_TYPE = 0;
pub const _STORAGE_DIAGNOSTIC_TARGET_TYPE_StorageDiagnosticTargetTypePort:
    _STORAGE_DIAGNOSTIC_TARGET_TYPE = 1;
pub const _STORAGE_DIAGNOSTIC_TARGET_TYPE_StorageDiagnosticTargetTypeMiniport:
    _STORAGE_DIAGNOSTIC_TARGET_TYPE = 2;
pub const _STORAGE_DIAGNOSTIC_TARGET_TYPE_StorageDiagnosticTargetTypeHbaFirmware:
    _STORAGE_DIAGNOSTIC_TARGET_TYPE = 3;
pub const _STORAGE_DIAGNOSTIC_TARGET_TYPE_StorageDiagnosticTargetTypeMax:
    _STORAGE_DIAGNOSTIC_TARGET_TYPE = 4;
pub type _STORAGE_DIAGNOSTIC_TARGET_TYPE = ::std::os::raw::c_int;
pub use self::_STORAGE_DIAGNOSTIC_TARGET_TYPE as STORAGE_DIAGNOSTIC_TARGET_TYPE;
pub type PSTORAGE_DIAGNOSTIC_TARGET_TYPE = *mut _STORAGE_DIAGNOSTIC_TARGET_TYPE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_DIAGNOSTIC_REQUEST {
    pub Version: DWORD,
    pub Size: DWORD,
    pub Reserved: DWORD,
    pub TargetType: STORAGE_DIAGNOSTIC_TARGET_TYPE,
    pub Level: STORAGE_DIAGNOSTIC_LEVEL,
}
#[test]
fn bindgen_test_layout__STORAGE_DIAGNOSTIC_REQUEST() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_DIAGNOSTIC_REQUEST>(),
        20usize,
        concat!("Size of: ", stringify!(_STORAGE_DIAGNOSTIC_REQUEST))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_DIAGNOSTIC_REQUEST>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_DIAGNOSTIC_REQUEST))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DIAGNOSTIC_REQUEST>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DIAGNOSTIC_REQUEST),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DIAGNOSTIC_REQUEST>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DIAGNOSTIC_REQUEST),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DIAGNOSTIC_REQUEST>())).Reserved as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DIAGNOSTIC_REQUEST),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DIAGNOSTIC_REQUEST>())).TargetType as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DIAGNOSTIC_REQUEST),
            "::",
            stringify!(TargetType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DIAGNOSTIC_REQUEST>())).Level as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DIAGNOSTIC_REQUEST),
            "::",
            stringify!(Level)
        )
    );
}
pub type STORAGE_DIAGNOSTIC_REQUEST = _STORAGE_DIAGNOSTIC_REQUEST;
pub type PSTORAGE_DIAGNOSTIC_REQUEST = *mut _STORAGE_DIAGNOSTIC_REQUEST;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_DIAGNOSTIC_DATA {
    pub Version: DWORD,
    pub Size: DWORD,
    pub ProviderId: GUID,
    pub BufferSize: DWORD,
    pub Reserved: DWORD,
    pub DiagnosticDataBuffer: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout__STORAGE_DIAGNOSTIC_DATA() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_DIAGNOSTIC_DATA>(),
        36usize,
        concat!("Size of: ", stringify!(_STORAGE_DIAGNOSTIC_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_DIAGNOSTIC_DATA>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_DIAGNOSTIC_DATA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DIAGNOSTIC_DATA>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DIAGNOSTIC_DATA),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_DIAGNOSTIC_DATA>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DIAGNOSTIC_DATA),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DIAGNOSTIC_DATA>())).ProviderId as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DIAGNOSTIC_DATA),
            "::",
            stringify!(ProviderId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DIAGNOSTIC_DATA>())).BufferSize as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DIAGNOSTIC_DATA),
            "::",
            stringify!(BufferSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DIAGNOSTIC_DATA>())).Reserved as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DIAGNOSTIC_DATA),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DIAGNOSTIC_DATA>())).DiagnosticDataBuffer as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DIAGNOSTIC_DATA),
            "::",
            stringify!(DiagnosticDataBuffer)
        )
    );
}
pub type STORAGE_DIAGNOSTIC_DATA = _STORAGE_DIAGNOSTIC_DATA;
pub type PSTORAGE_DIAGNOSTIC_DATA = *mut _STORAGE_DIAGNOSTIC_DATA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PHYSICAL_ELEMENT_STATUS_REQUEST {
    pub Version: DWORD,
    pub Size: DWORD,
    pub StartingElement: DWORD,
    pub Filter: BYTE,
    pub ReportType: BYTE,
    pub Reserved: [BYTE; 2usize],
}
#[test]
fn bindgen_test_layout__PHYSICAL_ELEMENT_STATUS_REQUEST() {
    assert_eq!(
        ::std::mem::size_of::<_PHYSICAL_ELEMENT_STATUS_REQUEST>(),
        16usize,
        concat!("Size of: ", stringify!(_PHYSICAL_ELEMENT_STATUS_REQUEST))
    );
    assert_eq!(
        ::std::mem::align_of::<_PHYSICAL_ELEMENT_STATUS_REQUEST>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_PHYSICAL_ELEMENT_STATUS_REQUEST)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PHYSICAL_ELEMENT_STATUS_REQUEST>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PHYSICAL_ELEMENT_STATUS_REQUEST),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PHYSICAL_ELEMENT_STATUS_REQUEST>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PHYSICAL_ELEMENT_STATUS_REQUEST),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PHYSICAL_ELEMENT_STATUS_REQUEST>())).StartingElement as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PHYSICAL_ELEMENT_STATUS_REQUEST),
            "::",
            stringify!(StartingElement)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PHYSICAL_ELEMENT_STATUS_REQUEST>())).Filter as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_PHYSICAL_ELEMENT_STATUS_REQUEST),
            "::",
            stringify!(Filter)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PHYSICAL_ELEMENT_STATUS_REQUEST>())).ReportType as *const _
                as usize
        },
        13usize,
        concat!(
            "Offset of field: ",
            stringify!(_PHYSICAL_ELEMENT_STATUS_REQUEST),
            "::",
            stringify!(ReportType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PHYSICAL_ELEMENT_STATUS_REQUEST>())).Reserved as *const _
                as usize
        },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(_PHYSICAL_ELEMENT_STATUS_REQUEST),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type PHYSICAL_ELEMENT_STATUS_REQUEST = _PHYSICAL_ELEMENT_STATUS_REQUEST;
pub type PPHYSICAL_ELEMENT_STATUS_REQUEST = *mut _PHYSICAL_ELEMENT_STATUS_REQUEST;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PHYSICAL_ELEMENT_STATUS_DESCRIPTOR {
    pub Version: DWORD,
    pub Size: DWORD,
    pub ElementIdentifier: DWORD,
    pub PhysicalElementType: BYTE,
    pub PhysicalElementHealth: BYTE,
    pub Reserved1: [BYTE; 2usize],
    pub AssociatedCapacity: DWORDLONG,
    pub Reserved2: [DWORD; 4usize],
}
#[test]
fn bindgen_test_layout__PHYSICAL_ELEMENT_STATUS_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_PHYSICAL_ELEMENT_STATUS_DESCRIPTOR>(),
        40usize,
        concat!("Size of: ", stringify!(_PHYSICAL_ELEMENT_STATUS_DESCRIPTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<_PHYSICAL_ELEMENT_STATUS_DESCRIPTOR>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PHYSICAL_ELEMENT_STATUS_DESCRIPTOR)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PHYSICAL_ELEMENT_STATUS_DESCRIPTOR>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PHYSICAL_ELEMENT_STATUS_DESCRIPTOR),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PHYSICAL_ELEMENT_STATUS_DESCRIPTOR>())).Size as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PHYSICAL_ELEMENT_STATUS_DESCRIPTOR),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PHYSICAL_ELEMENT_STATUS_DESCRIPTOR>())).ElementIdentifier
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PHYSICAL_ELEMENT_STATUS_DESCRIPTOR),
            "::",
            stringify!(ElementIdentifier)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PHYSICAL_ELEMENT_STATUS_DESCRIPTOR>())).PhysicalElementType
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_PHYSICAL_ELEMENT_STATUS_DESCRIPTOR),
            "::",
            stringify!(PhysicalElementType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PHYSICAL_ELEMENT_STATUS_DESCRIPTOR>())).PhysicalElementHealth
                as *const _ as usize
        },
        13usize,
        concat!(
            "Offset of field: ",
            stringify!(_PHYSICAL_ELEMENT_STATUS_DESCRIPTOR),
            "::",
            stringify!(PhysicalElementHealth)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PHYSICAL_ELEMENT_STATUS_DESCRIPTOR>())).Reserved1 as *const _
                as usize
        },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(_PHYSICAL_ELEMENT_STATUS_DESCRIPTOR),
            "::",
            stringify!(Reserved1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PHYSICAL_ELEMENT_STATUS_DESCRIPTOR>())).AssociatedCapacity
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PHYSICAL_ELEMENT_STATUS_DESCRIPTOR),
            "::",
            stringify!(AssociatedCapacity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PHYSICAL_ELEMENT_STATUS_DESCRIPTOR>())).Reserved2 as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_PHYSICAL_ELEMENT_STATUS_DESCRIPTOR),
            "::",
            stringify!(Reserved2)
        )
    );
}
pub type PHYSICAL_ELEMENT_STATUS_DESCRIPTOR = _PHYSICAL_ELEMENT_STATUS_DESCRIPTOR;
pub type PPHYSICAL_ELEMENT_STATUS_DESCRIPTOR = *mut _PHYSICAL_ELEMENT_STATUS_DESCRIPTOR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PHYSICAL_ELEMENT_STATUS {
    pub Version: DWORD,
    pub Size: DWORD,
    pub DescriptorCount: DWORD,
    pub ReturnedDescriptorCount: DWORD,
    pub ElementIdentifierBeingDepoped: DWORD,
    pub Reserved: DWORD,
    pub Descriptors: [PHYSICAL_ELEMENT_STATUS_DESCRIPTOR; 1usize],
}
#[test]
fn bindgen_test_layout__PHYSICAL_ELEMENT_STATUS() {
    assert_eq!(
        ::std::mem::size_of::<_PHYSICAL_ELEMENT_STATUS>(),
        64usize,
        concat!("Size of: ", stringify!(_PHYSICAL_ELEMENT_STATUS))
    );
    assert_eq!(
        ::std::mem::align_of::<_PHYSICAL_ELEMENT_STATUS>(),
        8usize,
        concat!("Alignment of ", stringify!(_PHYSICAL_ELEMENT_STATUS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PHYSICAL_ELEMENT_STATUS>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PHYSICAL_ELEMENT_STATUS),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PHYSICAL_ELEMENT_STATUS>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PHYSICAL_ELEMENT_STATUS),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PHYSICAL_ELEMENT_STATUS>())).DescriptorCount as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PHYSICAL_ELEMENT_STATUS),
            "::",
            stringify!(DescriptorCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PHYSICAL_ELEMENT_STATUS>())).ReturnedDescriptorCount as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_PHYSICAL_ELEMENT_STATUS),
            "::",
            stringify!(ReturnedDescriptorCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PHYSICAL_ELEMENT_STATUS>())).ElementIdentifierBeingDepoped
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PHYSICAL_ELEMENT_STATUS),
            "::",
            stringify!(ElementIdentifierBeingDepoped)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PHYSICAL_ELEMENT_STATUS>())).Reserved as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_PHYSICAL_ELEMENT_STATUS),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PHYSICAL_ELEMENT_STATUS>())).Descriptors as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_PHYSICAL_ELEMENT_STATUS),
            "::",
            stringify!(Descriptors)
        )
    );
}
pub type PHYSICAL_ELEMENT_STATUS = _PHYSICAL_ELEMENT_STATUS;
pub type PPHYSICAL_ELEMENT_STATUS = *mut _PHYSICAL_ELEMENT_STATUS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _REMOVE_ELEMENT_AND_TRUNCATE_REQUEST {
    pub Version: DWORD,
    pub Size: DWORD,
    pub RequestCapacity: DWORDLONG,
    pub ElementIdentifier: DWORD,
    pub Reserved: DWORD,
}
#[test]
fn bindgen_test_layout__REMOVE_ELEMENT_AND_TRUNCATE_REQUEST() {
    assert_eq!(
        ::std::mem::size_of::<_REMOVE_ELEMENT_AND_TRUNCATE_REQUEST>(),
        24usize,
        concat!(
            "Size of: ",
            stringify!(_REMOVE_ELEMENT_AND_TRUNCATE_REQUEST)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_REMOVE_ELEMENT_AND_TRUNCATE_REQUEST>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_REMOVE_ELEMENT_AND_TRUNCATE_REQUEST)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REMOVE_ELEMENT_AND_TRUNCATE_REQUEST>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_REMOVE_ELEMENT_AND_TRUNCATE_REQUEST),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REMOVE_ELEMENT_AND_TRUNCATE_REQUEST>())).Size as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_REMOVE_ELEMENT_AND_TRUNCATE_REQUEST),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REMOVE_ELEMENT_AND_TRUNCATE_REQUEST>())).RequestCapacity
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_REMOVE_ELEMENT_AND_TRUNCATE_REQUEST),
            "::",
            stringify!(RequestCapacity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REMOVE_ELEMENT_AND_TRUNCATE_REQUEST>())).ElementIdentifier
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_REMOVE_ELEMENT_AND_TRUNCATE_REQUEST),
            "::",
            stringify!(ElementIdentifier)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REMOVE_ELEMENT_AND_TRUNCATE_REQUEST>())).Reserved as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_REMOVE_ELEMENT_AND_TRUNCATE_REQUEST),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type REMOVE_ELEMENT_AND_TRUNCATE_REQUEST = _REMOVE_ELEMENT_AND_TRUNCATE_REQUEST;
pub type PREMOVE_ELEMENT_AND_TRUNCATE_REQUEST = *mut _REMOVE_ELEMENT_AND_TRUNCATE_REQUEST;
#[repr(C)]
#[derive(Debug)]
pub struct _STORAGE_MEDIA_SERIAL_NUMBER_DATA {
    pub Reserved: WORD,
    pub SerialNumberLength: WORD,
    pub SerialNumber: __IncompleteArrayField<BYTE>,
}
#[test]
fn bindgen_test_layout__STORAGE_MEDIA_SERIAL_NUMBER_DATA() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_MEDIA_SERIAL_NUMBER_DATA>(),
        4usize,
        concat!("Size of: ", stringify!(_STORAGE_MEDIA_SERIAL_NUMBER_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_MEDIA_SERIAL_NUMBER_DATA>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_MEDIA_SERIAL_NUMBER_DATA)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_MEDIA_SERIAL_NUMBER_DATA>())).Reserved as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_MEDIA_SERIAL_NUMBER_DATA),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_MEDIA_SERIAL_NUMBER_DATA>())).SerialNumberLength
                as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_MEDIA_SERIAL_NUMBER_DATA),
            "::",
            stringify!(SerialNumberLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_MEDIA_SERIAL_NUMBER_DATA>())).SerialNumber as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_MEDIA_SERIAL_NUMBER_DATA),
            "::",
            stringify!(SerialNumber)
        )
    );
}
pub type STORAGE_MEDIA_SERIAL_NUMBER_DATA = _STORAGE_MEDIA_SERIAL_NUMBER_DATA;
pub type PSTORAGE_MEDIA_SERIAL_NUMBER_DATA = *mut _STORAGE_MEDIA_SERIAL_NUMBER_DATA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _STORAGE_READ_CAPACITY {
    pub Version: DWORD,
    pub Size: DWORD,
    pub BlockLength: DWORD,
    pub NumberOfBlocks: LARGE_INTEGER,
    pub DiskLength: LARGE_INTEGER,
}
#[test]
fn bindgen_test_layout__STORAGE_READ_CAPACITY() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_READ_CAPACITY>(),
        32usize,
        concat!("Size of: ", stringify!(_STORAGE_READ_CAPACITY))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_READ_CAPACITY>(),
        8usize,
        concat!("Alignment of ", stringify!(_STORAGE_READ_CAPACITY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_READ_CAPACITY>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_READ_CAPACITY),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_READ_CAPACITY>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_READ_CAPACITY),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_READ_CAPACITY>())).BlockLength as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_READ_CAPACITY),
            "::",
            stringify!(BlockLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_READ_CAPACITY>())).NumberOfBlocks as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_READ_CAPACITY),
            "::",
            stringify!(NumberOfBlocks)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_READ_CAPACITY>())).DiskLength as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_READ_CAPACITY),
            "::",
            stringify!(DiskLength)
        )
    );
}
pub type STORAGE_READ_CAPACITY = _STORAGE_READ_CAPACITY;
pub type PSTORAGE_READ_CAPACITY = *mut _STORAGE_READ_CAPACITY;
pub const _WRITE_CACHE_TYPE_WriteCacheTypeUnknown: _WRITE_CACHE_TYPE = 0;
pub const _WRITE_CACHE_TYPE_WriteCacheTypeNone: _WRITE_CACHE_TYPE = 1;
pub const _WRITE_CACHE_TYPE_WriteCacheTypeWriteBack: _WRITE_CACHE_TYPE = 2;
pub const _WRITE_CACHE_TYPE_WriteCacheTypeWriteThrough: _WRITE_CACHE_TYPE = 3;
pub type _WRITE_CACHE_TYPE = ::std::os::raw::c_int;
pub use self::_WRITE_CACHE_TYPE as WRITE_CACHE_TYPE;
pub const _WRITE_CACHE_ENABLE_WriteCacheEnableUnknown: _WRITE_CACHE_ENABLE = 0;
pub const _WRITE_CACHE_ENABLE_WriteCacheDisabled: _WRITE_CACHE_ENABLE = 1;
pub const _WRITE_CACHE_ENABLE_WriteCacheEnabled: _WRITE_CACHE_ENABLE = 2;
pub type _WRITE_CACHE_ENABLE = ::std::os::raw::c_int;
pub use self::_WRITE_CACHE_ENABLE as WRITE_CACHE_ENABLE;
pub const _WRITE_CACHE_CHANGE_WriteCacheChangeUnknown: _WRITE_CACHE_CHANGE = 0;
pub const _WRITE_CACHE_CHANGE_WriteCacheNotChangeable: _WRITE_CACHE_CHANGE = 1;
pub const _WRITE_CACHE_CHANGE_WriteCacheChangeable: _WRITE_CACHE_CHANGE = 2;
pub type _WRITE_CACHE_CHANGE = ::std::os::raw::c_int;
pub use self::_WRITE_CACHE_CHANGE as WRITE_CACHE_CHANGE;
pub const _WRITE_THROUGH_WriteThroughUnknown: _WRITE_THROUGH = 0;
pub const _WRITE_THROUGH_WriteThroughNotSupported: _WRITE_THROUGH = 1;
pub const _WRITE_THROUGH_WriteThroughSupported: _WRITE_THROUGH = 2;
pub type _WRITE_THROUGH = ::std::os::raw::c_int;
pub use self::_WRITE_THROUGH as WRITE_THROUGH;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_WRITE_CACHE_PROPERTY {
    pub Version: DWORD,
    pub Size: DWORD,
    pub WriteCacheType: WRITE_CACHE_TYPE,
    pub WriteCacheEnabled: WRITE_CACHE_ENABLE,
    pub WriteCacheChangeable: WRITE_CACHE_CHANGE,
    pub WriteThroughSupported: WRITE_THROUGH,
    pub FlushCacheSupported: BOOLEAN,
    pub UserDefinedPowerProtection: BOOLEAN,
    pub NVCacheEnabled: BOOLEAN,
}
#[test]
fn bindgen_test_layout__STORAGE_WRITE_CACHE_PROPERTY() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_WRITE_CACHE_PROPERTY>(),
        28usize,
        concat!("Size of: ", stringify!(_STORAGE_WRITE_CACHE_PROPERTY))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_WRITE_CACHE_PROPERTY>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_WRITE_CACHE_PROPERTY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_WRITE_CACHE_PROPERTY>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_WRITE_CACHE_PROPERTY),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_WRITE_CACHE_PROPERTY>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_WRITE_CACHE_PROPERTY),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_WRITE_CACHE_PROPERTY>())).WriteCacheType as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_WRITE_CACHE_PROPERTY),
            "::",
            stringify!(WriteCacheType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_WRITE_CACHE_PROPERTY>())).WriteCacheEnabled as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_WRITE_CACHE_PROPERTY),
            "::",
            stringify!(WriteCacheEnabled)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_WRITE_CACHE_PROPERTY>())).WriteCacheChangeable
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_WRITE_CACHE_PROPERTY),
            "::",
            stringify!(WriteCacheChangeable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_WRITE_CACHE_PROPERTY>())).WriteThroughSupported
                as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_WRITE_CACHE_PROPERTY),
            "::",
            stringify!(WriteThroughSupported)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_WRITE_CACHE_PROPERTY>())).FlushCacheSupported
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_WRITE_CACHE_PROPERTY),
            "::",
            stringify!(FlushCacheSupported)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_WRITE_CACHE_PROPERTY>())).UserDefinedPowerProtection
                as *const _ as usize
        },
        25usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_WRITE_CACHE_PROPERTY),
            "::",
            stringify!(UserDefinedPowerProtection)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_WRITE_CACHE_PROPERTY>())).NVCacheEnabled as *const _
                as usize
        },
        26usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_WRITE_CACHE_PROPERTY),
            "::",
            stringify!(NVCacheEnabled)
        )
    );
}
pub type STORAGE_WRITE_CACHE_PROPERTY = _STORAGE_WRITE_CACHE_PROPERTY;
pub type PSTORAGE_WRITE_CACHE_PROPERTY = *mut _STORAGE_WRITE_CACHE_PROPERTY;
#[repr(C)]
pub struct _PERSISTENT_RESERVE_COMMAND {
    pub Version: DWORD,
    pub Size: DWORD,
    pub __bindgen_anon_1: _PERSISTENT_RESERVE_COMMAND__bindgen_ty_1,
}
#[repr(C)]
pub struct _PERSISTENT_RESERVE_COMMAND__bindgen_ty_1 {
    pub PR_IN: __BindgenUnionField<_PERSISTENT_RESERVE_COMMAND__bindgen_ty_1__bindgen_ty_1>,
    pub PR_OUT: __BindgenUnionField<_PERSISTENT_RESERVE_COMMAND__bindgen_ty_1__bindgen_ty_2>,
    pub bindgen_union_field: [u16; 2usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PERSISTENT_RESERVE_COMMAND__bindgen_ty_1__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize], u8>,
    pub AllocationLength: WORD,
}
#[test]
fn bindgen_test_layout__PERSISTENT_RESERVE_COMMAND__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PERSISTENT_RESERVE_COMMAND__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PERSISTENT_RESERVE_COMMAND__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PERSISTENT_RESERVE_COMMAND__bindgen_ty_1__bindgen_ty_1>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(_PERSISTENT_RESERVE_COMMAND__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERSISTENT_RESERVE_COMMAND__bindgen_ty_1__bindgen_ty_1>()))
                .AllocationLength as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERSISTENT_RESERVE_COMMAND__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(AllocationLength)
        )
    );
}
impl _PERSISTENT_RESERVE_COMMAND__bindgen_ty_1__bindgen_ty_1 {
    #[inline]
    pub fn ServiceAction(&self) -> BYTE {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 5u8) as u8) }
    }
    #[inline]
    pub fn set_ServiceAction(&mut self, val: BYTE) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 5u8, val as u64)
        }
    }
    #[inline]
    pub fn Reserved1(&self) -> BYTE {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 3u8) as u8) }
    }
    #[inline]
    pub fn set_Reserved1(&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(
        ServiceAction: BYTE,
        Reserved1: BYTE,
    ) -> __BindgenBitfieldUnit<[u8; 1usize], u8> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize], u8> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 5u8, {
            let ServiceAction: u8 = unsafe { ::std::mem::transmute(ServiceAction) };
            ServiceAction as u64
        });
        __bindgen_bitfield_unit.set(5usize, 3u8, {
            let Reserved1: u8 = unsafe { ::std::mem::transmute(Reserved1) };
            Reserved1 as u64
        });
        __bindgen_bitfield_unit
    }
}
#[repr(C)]
#[derive(Debug)]
pub struct _PERSISTENT_RESERVE_COMMAND__bindgen_ty_1__bindgen_ty_2 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize], u8>,
    pub ParameterList: __IncompleteArrayField<BYTE>,
}
#[test]
fn bindgen_test_layout__PERSISTENT_RESERVE_COMMAND__bindgen_ty_1__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_PERSISTENT_RESERVE_COMMAND__bindgen_ty_1__bindgen_ty_2>(),
        2usize,
        concat!(
            "Size of: ",
            stringify!(_PERSISTENT_RESERVE_COMMAND__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PERSISTENT_RESERVE_COMMAND__bindgen_ty_1__bindgen_ty_2>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(_PERSISTENT_RESERVE_COMMAND__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERSISTENT_RESERVE_COMMAND__bindgen_ty_1__bindgen_ty_2>()))
                .ParameterList as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERSISTENT_RESERVE_COMMAND__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(ParameterList)
        )
    );
}
impl _PERSISTENT_RESERVE_COMMAND__bindgen_ty_1__bindgen_ty_2 {
    #[inline]
    pub fn ServiceAction(&self) -> BYTE {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 5u8) as u8) }
    }
    #[inline]
    pub fn set_ServiceAction(&mut self, val: BYTE) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 5u8, val as u64)
        }
    }
    #[inline]
    pub fn Reserved1(&self) -> BYTE {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 3u8) as u8) }
    }
    #[inline]
    pub fn set_Reserved1(&mut self, val: BYTE) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(5usize, 3u8, val as u64)
        }
    }
    #[inline]
    pub fn Type(&self) -> BYTE {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_Type(&mut self, val: BYTE) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(8usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub fn Scope(&self) -> BYTE {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u8) }
    }
    #[inline]
    pub fn set_Scope(&mut self, val: BYTE) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(12usize, 4u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        ServiceAction: BYTE,
        Reserved1: BYTE,
        Type: BYTE,
        Scope: BYTE,
    ) -> __BindgenBitfieldUnit<[u8; 2usize], u8> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize], u8> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 5u8, {
            let ServiceAction: u8 = unsafe { ::std::mem::transmute(ServiceAction) };
            ServiceAction as u64
        });
        __bindgen_bitfield_unit.set(5usize, 3u8, {
            let Reserved1: u8 = unsafe { ::std::mem::transmute(Reserved1) };
            Reserved1 as u64
        });
        __bindgen_bitfield_unit.set(8usize, 4u8, {
            let Type: u8 = unsafe { ::std::mem::transmute(Type) };
            Type as u64
        });
        __bindgen_bitfield_unit.set(12usize, 4u8, {
            let Scope: u8 = unsafe { ::std::mem::transmute(Scope) };
            Scope as u64
        });
        __bindgen_bitfield_unit
    }
}
#[test]
fn bindgen_test_layout__PERSISTENT_RESERVE_COMMAND__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PERSISTENT_RESERVE_COMMAND__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_PERSISTENT_RESERVE_COMMAND__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PERSISTENT_RESERVE_COMMAND__bindgen_ty_1>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(_PERSISTENT_RESERVE_COMMAND__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERSISTENT_RESERVE_COMMAND__bindgen_ty_1>())).PR_IN as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERSISTENT_RESERVE_COMMAND__bindgen_ty_1),
            "::",
            stringify!(PR_IN)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERSISTENT_RESERVE_COMMAND__bindgen_ty_1>())).PR_OUT as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERSISTENT_RESERVE_COMMAND__bindgen_ty_1),
            "::",
            stringify!(PR_OUT)
        )
    );
}
#[test]
fn bindgen_test_layout__PERSISTENT_RESERVE_COMMAND() {
    assert_eq!(
        ::std::mem::size_of::<_PERSISTENT_RESERVE_COMMAND>(),
        12usize,
        concat!("Size of: ", stringify!(_PERSISTENT_RESERVE_COMMAND))
    );
    assert_eq!(
        ::std::mem::align_of::<_PERSISTENT_RESERVE_COMMAND>(),
        4usize,
        concat!("Alignment of ", stringify!(_PERSISTENT_RESERVE_COMMAND))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERSISTENT_RESERVE_COMMAND>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERSISTENT_RESERVE_COMMAND),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PERSISTENT_RESERVE_COMMAND>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERSISTENT_RESERVE_COMMAND),
            "::",
            stringify!(Size)
        )
    );
}
pub type PERSISTENT_RESERVE_COMMAND = _PERSISTENT_RESERVE_COMMAND;
pub type PPERSISTENT_RESERVE_COMMAND = *mut _PERSISTENT_RESERVE_COMMAND;
pub const _DEVICEDUMP_COLLECTION_TYPE_TCCollectionBugCheck: _DEVICEDUMP_COLLECTION_TYPE = 1;
pub const _DEVICEDUMP_COLLECTION_TYPE_TCCollectionApplicationRequested:
    _DEVICEDUMP_COLLECTION_TYPE = 2;
pub const _DEVICEDUMP_COLLECTION_TYPE_TCCollectionDeviceRequested: _DEVICEDUMP_COLLECTION_TYPE = 3;
pub type _DEVICEDUMP_COLLECTION_TYPE = ::std::os::raw::c_int;
pub use self::_DEVICEDUMP_COLLECTION_TYPE as DEVICEDUMP_COLLECTION_TYPEIDE_NOTIFICATION_TYPE;
pub type PDEVICEDUMP_COLLECTION_TYPE = *mut _DEVICEDUMP_COLLECTION_TYPE;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICEDUMP_SUBSECTION_POINTER {
    pub dwSize: DWORD,
    pub dwFlags: DWORD,
    pub dwOffset: DWORD,
}
#[test]
fn bindgen_test_layout__DEVICEDUMP_SUBSECTION_POINTER() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICEDUMP_SUBSECTION_POINTER>(),
        12usize,
        concat!("Size of: ", stringify!(_DEVICEDUMP_SUBSECTION_POINTER))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICEDUMP_SUBSECTION_POINTER>(),
        1usize,
        concat!("Alignment of ", stringify!(_DEVICEDUMP_SUBSECTION_POINTER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_SUBSECTION_POINTER>())).dwSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_SUBSECTION_POINTER),
            "::",
            stringify!(dwSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_SUBSECTION_POINTER>())).dwFlags as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_SUBSECTION_POINTER),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_SUBSECTION_POINTER>())).dwOffset as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_SUBSECTION_POINTER),
            "::",
            stringify!(dwOffset)
        )
    );
}
pub type DEVICEDUMP_SUBSECTION_POINTER = _DEVICEDUMP_SUBSECTION_POINTER;
pub type PDEVICEDUMP_SUBSECTION_POINTER = *mut _DEVICEDUMP_SUBSECTION_POINTER;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICEDUMP_STRUCTURE_VERSION {
    pub dwSignature: DWORD,
    pub dwVersion: DWORD,
    pub dwSize: DWORD,
}
#[test]
fn bindgen_test_layout__DEVICEDUMP_STRUCTURE_VERSION() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICEDUMP_STRUCTURE_VERSION>(),
        12usize,
        concat!("Size of: ", stringify!(_DEVICEDUMP_STRUCTURE_VERSION))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICEDUMP_STRUCTURE_VERSION>(),
        1usize,
        concat!("Alignment of ", stringify!(_DEVICEDUMP_STRUCTURE_VERSION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_STRUCTURE_VERSION>())).dwSignature as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_STRUCTURE_VERSION),
            "::",
            stringify!(dwSignature)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_STRUCTURE_VERSION>())).dwVersion as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_STRUCTURE_VERSION),
            "::",
            stringify!(dwVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_STRUCTURE_VERSION>())).dwSize as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_STRUCTURE_VERSION),
            "::",
            stringify!(dwSize)
        )
    );
}
pub type DEVICEDUMP_STRUCTURE_VERSION = _DEVICEDUMP_STRUCTURE_VERSION;
pub type PDEVICEDUMP_STRUCTURE_VERSION = *mut _DEVICEDUMP_STRUCTURE_VERSION;
#[repr(C, packed)]
#[derive(Copy, Clone)]
pub struct _DEVICEDUMP_SECTION_HEADER {
    pub guidDeviceDataId: GUID,
    pub sOrganizationID: [BYTE; 16usize],
    pub dwFirmwareRevision: DWORD,
    pub sModelNumber: [BYTE; 32usize],
    pub szDeviceManufacturingID: [BYTE; 32usize],
    pub dwFlags: DWORD,
    pub bRestrictedPrivateDataVersion: DWORD,
    pub dwFirmwareIssueId: DWORD,
    pub szIssueDescriptionString: [BYTE; 132usize],
}
#[test]
fn bindgen_test_layout__DEVICEDUMP_SECTION_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICEDUMP_SECTION_HEADER>(),
        244usize,
        concat!("Size of: ", stringify!(_DEVICEDUMP_SECTION_HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICEDUMP_SECTION_HEADER>(),
        1usize,
        concat!("Alignment of ", stringify!(_DEVICEDUMP_SECTION_HEADER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_SECTION_HEADER>())).guidDeviceDataId as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_SECTION_HEADER),
            "::",
            stringify!(guidDeviceDataId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_SECTION_HEADER>())).sOrganizationID as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_SECTION_HEADER),
            "::",
            stringify!(sOrganizationID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_SECTION_HEADER>())).dwFirmwareRevision as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_SECTION_HEADER),
            "::",
            stringify!(dwFirmwareRevision)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_SECTION_HEADER>())).sModelNumber as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_SECTION_HEADER),
            "::",
            stringify!(sModelNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_SECTION_HEADER>())).szDeviceManufacturingID
                as *const _ as usize
        },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_SECTION_HEADER),
            "::",
            stringify!(szDeviceManufacturingID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_SECTION_HEADER>())).dwFlags as *const _ as usize
        },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_SECTION_HEADER),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_SECTION_HEADER>())).bRestrictedPrivateDataVersion
                as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_SECTION_HEADER),
            "::",
            stringify!(bRestrictedPrivateDataVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_SECTION_HEADER>())).dwFirmwareIssueId as *const _
                as usize
        },
        108usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_SECTION_HEADER),
            "::",
            stringify!(dwFirmwareIssueId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_SECTION_HEADER>())).szIssueDescriptionString
                as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_SECTION_HEADER),
            "::",
            stringify!(szIssueDescriptionString)
        )
    );
}
pub type DEVICEDUMP_SECTION_HEADER = _DEVICEDUMP_SECTION_HEADER;
pub type PDEVICEDUMP_SECTION_HEADER = *mut _DEVICEDUMP_SECTION_HEADER;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _GP_LOG_PAGE_DESCRIPTOR {
    pub LogAddress: WORD,
    pub LogSectors: WORD,
}
#[test]
fn bindgen_test_layout__GP_LOG_PAGE_DESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<_GP_LOG_PAGE_DESCRIPTOR>(),
        4usize,
        concat!("Size of: ", stringify!(_GP_LOG_PAGE_DESCRIPTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<_GP_LOG_PAGE_DESCRIPTOR>(),
        1usize,
        concat!("Alignment of ", stringify!(_GP_LOG_PAGE_DESCRIPTOR))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GP_LOG_PAGE_DESCRIPTOR>())).LogAddress as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_GP_LOG_PAGE_DESCRIPTOR),
            "::",
            stringify!(LogAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GP_LOG_PAGE_DESCRIPTOR>())).LogSectors as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_GP_LOG_PAGE_DESCRIPTOR),
            "::",
            stringify!(LogSectors)
        )
    );
}
pub type GP_LOG_PAGE_DESCRIPTOR = _GP_LOG_PAGE_DESCRIPTOR;
pub type PGP_LOG_PAGE_DESCRIPTOR = *mut _GP_LOG_PAGE_DESCRIPTOR;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICEDUMP_PUBLIC_SUBSECTION {
    pub dwFlags: DWORD,
    pub GPLogTable: [GP_LOG_PAGE_DESCRIPTOR; 16usize],
    pub szDescription: [CHAR; 16usize],
    pub bData: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout__DEVICEDUMP_PUBLIC_SUBSECTION() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICEDUMP_PUBLIC_SUBSECTION>(),
        85usize,
        concat!("Size of: ", stringify!(_DEVICEDUMP_PUBLIC_SUBSECTION))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICEDUMP_PUBLIC_SUBSECTION>(),
        1usize,
        concat!("Alignment of ", stringify!(_DEVICEDUMP_PUBLIC_SUBSECTION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_PUBLIC_SUBSECTION>())).dwFlags as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_PUBLIC_SUBSECTION),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_PUBLIC_SUBSECTION>())).GPLogTable as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_PUBLIC_SUBSECTION),
            "::",
            stringify!(GPLogTable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_PUBLIC_SUBSECTION>())).szDescription as *const _
                as usize
        },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_PUBLIC_SUBSECTION),
            "::",
            stringify!(szDescription)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_PUBLIC_SUBSECTION>())).bData as *const _ as usize
        },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_PUBLIC_SUBSECTION),
            "::",
            stringify!(bData)
        )
    );
}
pub type DEVICEDUMP_PUBLIC_SUBSECTION = _DEVICEDUMP_PUBLIC_SUBSECTION;
pub type PDEVICEDUMP_PUBLIC_SUBSECTION = *mut _DEVICEDUMP_PUBLIC_SUBSECTION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICEDUMP_RESTRICTED_SUBSECTION {
    pub bData: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout__DEVICEDUMP_RESTRICTED_SUBSECTION() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICEDUMP_RESTRICTED_SUBSECTION>(),
        1usize,
        concat!("Size of: ", stringify!(_DEVICEDUMP_RESTRICTED_SUBSECTION))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICEDUMP_RESTRICTED_SUBSECTION>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICEDUMP_RESTRICTED_SUBSECTION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_RESTRICTED_SUBSECTION>())).bData as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_RESTRICTED_SUBSECTION),
            "::",
            stringify!(bData)
        )
    );
}
pub type DEVICEDUMP_RESTRICTED_SUBSECTION = _DEVICEDUMP_RESTRICTED_SUBSECTION;
pub type PDEVICEDUMP_RESTRICTED_SUBSECTION = *mut _DEVICEDUMP_RESTRICTED_SUBSECTION;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICEDUMP_PRIVATE_SUBSECTION {
    pub dwFlags: DWORD,
    pub GPLogId: GP_LOG_PAGE_DESCRIPTOR,
    pub bData: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout__DEVICEDUMP_PRIVATE_SUBSECTION() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICEDUMP_PRIVATE_SUBSECTION>(),
        9usize,
        concat!("Size of: ", stringify!(_DEVICEDUMP_PRIVATE_SUBSECTION))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICEDUMP_PRIVATE_SUBSECTION>(),
        1usize,
        concat!("Alignment of ", stringify!(_DEVICEDUMP_PRIVATE_SUBSECTION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_PRIVATE_SUBSECTION>())).dwFlags as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_PRIVATE_SUBSECTION),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_PRIVATE_SUBSECTION>())).GPLogId as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_PRIVATE_SUBSECTION),
            "::",
            stringify!(GPLogId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_PRIVATE_SUBSECTION>())).bData as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_PRIVATE_SUBSECTION),
            "::",
            stringify!(bData)
        )
    );
}
pub type DEVICEDUMP_PRIVATE_SUBSECTION = _DEVICEDUMP_PRIVATE_SUBSECTION;
pub type PDEVICEDUMP_PRIVATE_SUBSECTION = *mut _DEVICEDUMP_PRIVATE_SUBSECTION;
#[repr(C, packed)]
#[derive(Copy, Clone)]
pub struct _DEVICEDUMP_STORAGEDEVICE_DATA {
    pub Descriptor: DEVICEDUMP_STRUCTURE_VERSION,
    pub SectionHeader: DEVICEDUMP_SECTION_HEADER,
    pub dwBufferSize: DWORD,
    pub dwReasonForCollection: DWORD,
    pub PublicData: DEVICEDUMP_SUBSECTION_POINTER,
    pub RestrictedData: DEVICEDUMP_SUBSECTION_POINTER,
    pub PrivateData: DEVICEDUMP_SUBSECTION_POINTER,
}
#[test]
fn bindgen_test_layout__DEVICEDUMP_STORAGEDEVICE_DATA() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICEDUMP_STORAGEDEVICE_DATA>(),
        300usize,
        concat!("Size of: ", stringify!(_DEVICEDUMP_STORAGEDEVICE_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICEDUMP_STORAGEDEVICE_DATA>(),
        1usize,
        concat!("Alignment of ", stringify!(_DEVICEDUMP_STORAGEDEVICE_DATA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_STORAGEDEVICE_DATA>())).Descriptor as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_STORAGEDEVICE_DATA),
            "::",
            stringify!(Descriptor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_STORAGEDEVICE_DATA>())).SectionHeader as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_STORAGEDEVICE_DATA),
            "::",
            stringify!(SectionHeader)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_STORAGEDEVICE_DATA>())).dwBufferSize as *const _
                as usize
        },
        256usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_STORAGEDEVICE_DATA),
            "::",
            stringify!(dwBufferSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_STORAGEDEVICE_DATA>())).dwReasonForCollection
                as *const _ as usize
        },
        260usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_STORAGEDEVICE_DATA),
            "::",
            stringify!(dwReasonForCollection)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_STORAGEDEVICE_DATA>())).PublicData as *const _
                as usize
        },
        264usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_STORAGEDEVICE_DATA),
            "::",
            stringify!(PublicData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_STORAGEDEVICE_DATA>())).RestrictedData as *const _
                as usize
        },
        276usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_STORAGEDEVICE_DATA),
            "::",
            stringify!(RestrictedData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_STORAGEDEVICE_DATA>())).PrivateData as *const _
                as usize
        },
        288usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_STORAGEDEVICE_DATA),
            "::",
            stringify!(PrivateData)
        )
    );
}
pub type DEVICEDUMP_STORAGEDEVICE_DATA = _DEVICEDUMP_STORAGEDEVICE_DATA;
pub type PDEVICEDUMP_STORAGEDEVICE_DATA = *mut _DEVICEDUMP_STORAGEDEVICE_DATA;
#[repr(C, packed)]
#[derive(Copy, Clone)]
pub struct _DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD {
    pub Cdb: [BYTE; 16usize],
    pub Command: [BYTE; 16usize],
    pub StartTime: DWORDLONG,
    pub EndTime: DWORDLONG,
    pub OperationStatus: DWORD,
    pub OperationError: DWORD,
    pub StackSpecific: _DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1 {
    pub ExternalStack: _DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1__bindgen_ty_1,
    pub AtaPort: _DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1__bindgen_ty_2,
    pub StorPort: _DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1__bindgen_ty_3,
    _bindgen_union_align: [u8; 4usize],
}
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1__bindgen_ty_1 {
    pub dwReserved: DWORD,
}
#[test]
fn bindgen_test_layout__DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<
            _DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1__bindgen_ty_1,
        >(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<
            _DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1__bindgen_ty_1,
        >(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<
                _DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1__bindgen_ty_1,
            >()))
            .dwReserved as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(dwReserved)
        )
    );
}
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1__bindgen_ty_2 {
    pub dwAtaPortSpecific: DWORD,
}
#[test]
fn bindgen_test_layout__DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<
            _DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1__bindgen_ty_2,
        >(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<
            _DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1__bindgen_ty_2,
        >(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<
                _DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1__bindgen_ty_2,
            >()))
            .dwAtaPortSpecific as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(dwAtaPortSpecific)
        )
    );
}
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1__bindgen_ty_3 {
    pub SrbTag: DWORD,
}
#[test]
fn bindgen_test_layout__DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1__bindgen_ty_3() {
    assert_eq!(
        ::std::mem::size_of::<
            _DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1__bindgen_ty_3,
        >(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1__bindgen_ty_3)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<
            _DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1__bindgen_ty_3,
        >(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1__bindgen_ty_3)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<
                _DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1__bindgen_ty_3,
            >()))
            .SrbTag as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1__bindgen_ty_3),
            "::",
            stringify!(SrbTag)
        )
    );
}
#[test]
fn bindgen_test_layout__DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1>()))
                .ExternalStack as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1),
            "::",
            stringify!(ExternalStack)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1>()))
                .AtaPort as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1),
            "::",
            stringify!(AtaPort)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1>()))
                .StorPort as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD__bindgen_ty_1),
            "::",
            stringify!(StorPort)
        )
    );
}
#[test]
fn bindgen_test_layout__DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD>(),
        60usize,
        concat!(
            "Size of: ",
            stringify!(_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD>())).Cdb as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD),
            "::",
            stringify!(Cdb)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD>())).Command
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD),
            "::",
            stringify!(Command)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD>())).StartTime
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD),
            "::",
            stringify!(StartTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD>())).EndTime
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD),
            "::",
            stringify!(EndTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD>())).OperationStatus
                as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD),
            "::",
            stringify!(OperationStatus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD>())).OperationError
                as *const _ as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD),
            "::",
            stringify!(OperationError)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD>())).StackSpecific
                as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD),
            "::",
            stringify!(StackSpecific)
        )
    );
}
pub type DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD = _DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD;
pub type PDEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD =
    *mut _DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD;
#[repr(C, packed)]
#[derive(Copy, Clone)]
pub struct _DEVICEDUMP_STORAGESTACK_PUBLIC_DUMP {
    pub Descriptor: DEVICEDUMP_STRUCTURE_VERSION,
    pub dwReasonForCollection: DWORD,
    pub cDriverName: [BYTE; 16usize],
    pub uiNumRecords: DWORD,
    pub RecordArray: [DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD; 1usize],
}
#[test]
fn bindgen_test_layout__DEVICEDUMP_STORAGESTACK_PUBLIC_DUMP() {
    assert_eq!(
        ::std::mem::size_of::<_DEVICEDUMP_STORAGESTACK_PUBLIC_DUMP>(),
        96usize,
        concat!(
            "Size of: ",
            stringify!(_DEVICEDUMP_STORAGESTACK_PUBLIC_DUMP)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DEVICEDUMP_STORAGESTACK_PUBLIC_DUMP>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(_DEVICEDUMP_STORAGESTACK_PUBLIC_DUMP)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_STORAGESTACK_PUBLIC_DUMP>())).Descriptor as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_STORAGESTACK_PUBLIC_DUMP),
            "::",
            stringify!(Descriptor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_STORAGESTACK_PUBLIC_DUMP>())).dwReasonForCollection
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_STORAGESTACK_PUBLIC_DUMP),
            "::",
            stringify!(dwReasonForCollection)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_STORAGESTACK_PUBLIC_DUMP>())).cDriverName as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_STORAGESTACK_PUBLIC_DUMP),
            "::",
            stringify!(cDriverName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_STORAGESTACK_PUBLIC_DUMP>())).uiNumRecords
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_STORAGESTACK_PUBLIC_DUMP),
            "::",
            stringify!(uiNumRecords)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DEVICEDUMP_STORAGESTACK_PUBLIC_DUMP>())).RecordArray as *const _
                as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_DEVICEDUMP_STORAGESTACK_PUBLIC_DUMP),
            "::",
            stringify!(RecordArray)
        )
    );
}
pub type DEVICEDUMP_STORAGESTACK_PUBLIC_DUMP = _DEVICEDUMP_STORAGESTACK_PUBLIC_DUMP;
pub type PDEVICEDUMP_STORAGESTACK_PUBLIC_DUMP = *mut _DEVICEDUMP_STORAGESTACK_PUBLIC_DUMP;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_IDLE_POWER {
    pub Version: DWORD,
    pub Size: DWORD,
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
    pub D3IdleTimeout: DWORD,
}
#[test]
fn bindgen_test_layout__STORAGE_IDLE_POWER() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_IDLE_POWER>(),
        16usize,
        concat!("Size of: ", stringify!(_STORAGE_IDLE_POWER))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_IDLE_POWER>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_IDLE_POWER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_IDLE_POWER>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_IDLE_POWER),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_IDLE_POWER>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_IDLE_POWER),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_IDLE_POWER>())).D3IdleTimeout as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_IDLE_POWER),
            "::",
            stringify!(D3IdleTimeout)
        )
    );
}
impl _STORAGE_IDLE_POWER {
    #[inline]
    pub fn WakeCapableHint(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_WakeCapableHint(&mut self, val: DWORD) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn D3ColdSupported(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_D3ColdSupported(&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(
        WakeCapableHint: DWORD,
        D3ColdSupported: 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 WakeCapableHint: u32 = unsafe { ::std::mem::transmute(WakeCapableHint) };
            WakeCapableHint as u64
        });
        __bindgen_bitfield_unit.set(1usize, 1u8, {
            let D3ColdSupported: u32 = unsafe { ::std::mem::transmute(D3ColdSupported) };
            D3ColdSupported as u64
        });
        __bindgen_bitfield_unit.set(2usize, 30u8, {
            let Reserved: u32 = unsafe { ::std::mem::transmute(Reserved) };
            Reserved as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type STORAGE_IDLE_POWER = _STORAGE_IDLE_POWER;
pub type PSTORAGE_IDLE_POWER = *mut _STORAGE_IDLE_POWER;
pub const _STORAGE_POWERUP_REASON_TYPE_StoragePowerupUnknown: _STORAGE_POWERUP_REASON_TYPE = 0;
pub const _STORAGE_POWERUP_REASON_TYPE_StoragePowerupIO: _STORAGE_POWERUP_REASON_TYPE = 1;
pub const _STORAGE_POWERUP_REASON_TYPE_StoragePowerupDeviceAttention: _STORAGE_POWERUP_REASON_TYPE =
    2;
pub type _STORAGE_POWERUP_REASON_TYPE = ::std::os::raw::c_int;
pub use self::_STORAGE_POWERUP_REASON_TYPE as STORAGE_POWERUP_REASON_TYPE;
pub type PSTORAGE_POWERUP_REASON_TYPE = *mut _STORAGE_POWERUP_REASON_TYPE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_IDLE_POWERUP_REASON {
    pub Version: DWORD,
    pub Size: DWORD,
    pub PowerupReason: STORAGE_POWERUP_REASON_TYPE,
}
#[test]
fn bindgen_test_layout__STORAGE_IDLE_POWERUP_REASON() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_IDLE_POWERUP_REASON>(),
        12usize,
        concat!("Size of: ", stringify!(_STORAGE_IDLE_POWERUP_REASON))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_IDLE_POWERUP_REASON>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_IDLE_POWERUP_REASON))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_IDLE_POWERUP_REASON>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_IDLE_POWERUP_REASON),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_IDLE_POWERUP_REASON>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_IDLE_POWERUP_REASON),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_IDLE_POWERUP_REASON>())).PowerupReason as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_IDLE_POWERUP_REASON),
            "::",
            stringify!(PowerupReason)
        )
    );
}
pub type STORAGE_IDLE_POWERUP_REASON = _STORAGE_IDLE_POWERUP_REASON;
pub type PSTORAGE_IDLE_POWERUP_REASON = *mut _STORAGE_IDLE_POWERUP_REASON;
pub const _STORAGE_DEVICE_POWER_CAP_UNITS_StorageDevicePowerCapUnitsPercent:
    _STORAGE_DEVICE_POWER_CAP_UNITS = 0;
pub const _STORAGE_DEVICE_POWER_CAP_UNITS_StorageDevicePowerCapUnitsMilliwatts:
    _STORAGE_DEVICE_POWER_CAP_UNITS = 1;
pub type _STORAGE_DEVICE_POWER_CAP_UNITS = ::std::os::raw::c_int;
pub use self::_STORAGE_DEVICE_POWER_CAP_UNITS as STORAGE_DEVICE_POWER_CAP_UNITS;
pub type PSTORAGE_DEVICE_POWER_CAP_UNITS = *mut _STORAGE_DEVICE_POWER_CAP_UNITS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_DEVICE_POWER_CAP {
    pub Version: DWORD,
    pub Size: DWORD,
    pub Units: STORAGE_DEVICE_POWER_CAP_UNITS,
    pub MaxPower: DWORDLONG,
}
#[test]
fn bindgen_test_layout__STORAGE_DEVICE_POWER_CAP() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_DEVICE_POWER_CAP>(),
        24usize,
        concat!("Size of: ", stringify!(_STORAGE_DEVICE_POWER_CAP))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_DEVICE_POWER_CAP>(),
        8usize,
        concat!("Alignment of ", stringify!(_STORAGE_DEVICE_POWER_CAP))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_POWER_CAP>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_POWER_CAP),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_DEVICE_POWER_CAP>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_POWER_CAP),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_DEVICE_POWER_CAP>())).Units as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_POWER_CAP),
            "::",
            stringify!(Units)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_DEVICE_POWER_CAP>())).MaxPower as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_DEVICE_POWER_CAP),
            "::",
            stringify!(MaxPower)
        )
    );
}
pub type STORAGE_DEVICE_POWER_CAP = _STORAGE_DEVICE_POWER_CAP;
pub type PSTORAGE_DEVICE_POWER_CAP = *mut _STORAGE_DEVICE_POWER_CAP;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _STORAGE_RPMB_DATA_FRAME {
    pub Stuff: [BYTE; 196usize],
    pub KeyOrMAC: [BYTE; 32usize],
    pub Data: [BYTE; 256usize],
    pub Nonce: [BYTE; 16usize],
    pub WriteCounter: [BYTE; 4usize],
    pub Address: [BYTE; 2usize],
    pub BlockCount: [BYTE; 2usize],
    pub OperationResult: [BYTE; 2usize],
    pub RequestOrResponseType: [BYTE; 2usize],
}
#[test]
fn bindgen_test_layout__STORAGE_RPMB_DATA_FRAME() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_RPMB_DATA_FRAME>(),
        512usize,
        concat!("Size of: ", stringify!(_STORAGE_RPMB_DATA_FRAME))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_RPMB_DATA_FRAME>(),
        1usize,
        concat!("Alignment of ", stringify!(_STORAGE_RPMB_DATA_FRAME))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_RPMB_DATA_FRAME>())).Stuff as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_RPMB_DATA_FRAME),
            "::",
            stringify!(Stuff)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_RPMB_DATA_FRAME>())).KeyOrMAC as *const _ as usize
        },
        196usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_RPMB_DATA_FRAME),
            "::",
            stringify!(KeyOrMAC)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_RPMB_DATA_FRAME>())).Data as *const _ as usize },
        228usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_RPMB_DATA_FRAME),
            "::",
            stringify!(Data)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_RPMB_DATA_FRAME>())).Nonce as *const _ as usize },
        484usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_RPMB_DATA_FRAME),
            "::",
            stringify!(Nonce)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_RPMB_DATA_FRAME>())).WriteCounter as *const _ as usize
        },
        500usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_RPMB_DATA_FRAME),
            "::",
            stringify!(WriteCounter)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_RPMB_DATA_FRAME>())).Address as *const _ as usize
        },
        504usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_RPMB_DATA_FRAME),
            "::",
            stringify!(Address)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_RPMB_DATA_FRAME>())).BlockCount as *const _ as usize
        },
        506usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_RPMB_DATA_FRAME),
            "::",
            stringify!(BlockCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_RPMB_DATA_FRAME>())).OperationResult as *const _
                as usize
        },
        508usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_RPMB_DATA_FRAME),
            "::",
            stringify!(OperationResult)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_RPMB_DATA_FRAME>())).RequestOrResponseType as *const _
                as usize
        },
        510usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_RPMB_DATA_FRAME),
            "::",
            stringify!(RequestOrResponseType)
        )
    );
}
pub type STORAGE_RPMB_DATA_FRAME = _STORAGE_RPMB_DATA_FRAME;
pub type PSTORAGE_RPMB_DATA_FRAME = *mut _STORAGE_RPMB_DATA_FRAME;
pub const _STORAGE_RPMB_COMMAND_TYPE_StorRpmbProgramAuthKey: _STORAGE_RPMB_COMMAND_TYPE = 1;
pub const _STORAGE_RPMB_COMMAND_TYPE_StorRpmbQueryWriteCounter: _STORAGE_RPMB_COMMAND_TYPE = 2;
pub const _STORAGE_RPMB_COMMAND_TYPE_StorRpmbAuthenticatedWrite: _STORAGE_RPMB_COMMAND_TYPE = 3;
pub const _STORAGE_RPMB_COMMAND_TYPE_StorRpmbAuthenticatedRead: _STORAGE_RPMB_COMMAND_TYPE = 4;
pub const _STORAGE_RPMB_COMMAND_TYPE_StorRpmbReadResultRequest: _STORAGE_RPMB_COMMAND_TYPE = 5;
pub const _STORAGE_RPMB_COMMAND_TYPE_StorRpmbAuthenticatedDeviceConfigWrite:
    _STORAGE_RPMB_COMMAND_TYPE = 6;
pub const _STORAGE_RPMB_COMMAND_TYPE_StorRpmbAuthenticatedDeviceConfigRead:
    _STORAGE_RPMB_COMMAND_TYPE = 7;
pub type _STORAGE_RPMB_COMMAND_TYPE = ::std::os::raw::c_int;
pub use self::_STORAGE_RPMB_COMMAND_TYPE as STORAGE_RPMB_COMMAND_TYPE;
pub type PSTORAGE_RPMB_COMMAND_TYPE = *mut _STORAGE_RPMB_COMMAND_TYPE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_EVENT_NOTIFICATION {
    pub Version: DWORD,
    pub Size: DWORD,
    pub Events: DWORDLONG,
}
#[test]
fn bindgen_test_layout__STORAGE_EVENT_NOTIFICATION() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_EVENT_NOTIFICATION>(),
        16usize,
        concat!("Size of: ", stringify!(_STORAGE_EVENT_NOTIFICATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_EVENT_NOTIFICATION>(),
        8usize,
        concat!("Alignment of ", stringify!(_STORAGE_EVENT_NOTIFICATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_EVENT_NOTIFICATION>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_EVENT_NOTIFICATION),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_EVENT_NOTIFICATION>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_EVENT_NOTIFICATION),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_EVENT_NOTIFICATION>())).Events as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_EVENT_NOTIFICATION),
            "::",
            stringify!(Events)
        )
    );
}
pub type STORAGE_EVENT_NOTIFICATION = _STORAGE_EVENT_NOTIFICATION;
pub type PSTORAGE_EVENT_NOTIFICATION = *mut _STORAGE_EVENT_NOTIFICATION;
pub const _STORAGE_COUNTER_TYPE_StorageCounterTypeUnknown: _STORAGE_COUNTER_TYPE = 0;
pub const _STORAGE_COUNTER_TYPE_StorageCounterTypeTemperatureCelsius: _STORAGE_COUNTER_TYPE = 1;
pub const _STORAGE_COUNTER_TYPE_StorageCounterTypeTemperatureCelsiusMax: _STORAGE_COUNTER_TYPE = 2;
pub const _STORAGE_COUNTER_TYPE_StorageCounterTypeReadErrorsTotal: _STORAGE_COUNTER_TYPE = 3;
pub const _STORAGE_COUNTER_TYPE_StorageCounterTypeReadErrorsCorrected: _STORAGE_COUNTER_TYPE = 4;
pub const _STORAGE_COUNTER_TYPE_StorageCounterTypeReadErrorsUncorrected: _STORAGE_COUNTER_TYPE = 5;
pub const _STORAGE_COUNTER_TYPE_StorageCounterTypeWriteErrorsTotal: _STORAGE_COUNTER_TYPE = 6;
pub const _STORAGE_COUNTER_TYPE_StorageCounterTypeWriteErrorsCorrected: _STORAGE_COUNTER_TYPE = 7;
pub const _STORAGE_COUNTER_TYPE_StorageCounterTypeWriteErrorsUncorrected: _STORAGE_COUNTER_TYPE = 8;
pub const _STORAGE_COUNTER_TYPE_StorageCounterTypeManufactureDate: _STORAGE_COUNTER_TYPE = 9;
pub const _STORAGE_COUNTER_TYPE_StorageCounterTypeStartStopCycleCount: _STORAGE_COUNTER_TYPE = 10;
pub const _STORAGE_COUNTER_TYPE_StorageCounterTypeStartStopCycleCountMax: _STORAGE_COUNTER_TYPE =
    11;
pub const _STORAGE_COUNTER_TYPE_StorageCounterTypeLoadUnloadCycleCount: _STORAGE_COUNTER_TYPE = 12;
pub const _STORAGE_COUNTER_TYPE_StorageCounterTypeLoadUnloadCycleCountMax: _STORAGE_COUNTER_TYPE =
    13;
pub const _STORAGE_COUNTER_TYPE_StorageCounterTypeWearPercentage: _STORAGE_COUNTER_TYPE = 14;
pub const _STORAGE_COUNTER_TYPE_StorageCounterTypeWearPercentageWarning: _STORAGE_COUNTER_TYPE = 15;
pub const _STORAGE_COUNTER_TYPE_StorageCounterTypeWearPercentageMax: _STORAGE_COUNTER_TYPE = 16;
pub const _STORAGE_COUNTER_TYPE_StorageCounterTypePowerOnHours: _STORAGE_COUNTER_TYPE = 17;
pub const _STORAGE_COUNTER_TYPE_StorageCounterTypeReadLatency100NSMax: _STORAGE_COUNTER_TYPE = 18;
pub const _STORAGE_COUNTER_TYPE_StorageCounterTypeWriteLatency100NSMax: _STORAGE_COUNTER_TYPE = 19;
pub const _STORAGE_COUNTER_TYPE_StorageCounterTypeFlushLatency100NSMax: _STORAGE_COUNTER_TYPE = 20;
pub const _STORAGE_COUNTER_TYPE_StorageCounterTypeMax: _STORAGE_COUNTER_TYPE = 21;
pub type _STORAGE_COUNTER_TYPE = ::std::os::raw::c_int;
pub use self::_STORAGE_COUNTER_TYPE as STORAGE_COUNTER_TYPE;
pub type PSTORAGE_COUNTER_TYPE = *mut _STORAGE_COUNTER_TYPE;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _STORAGE_COUNTER {
    pub Type: STORAGE_COUNTER_TYPE,
    pub Value: _STORAGE_COUNTER__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _STORAGE_COUNTER__bindgen_ty_1 {
    pub ManufactureDate: _STORAGE_COUNTER__bindgen_ty_1__bindgen_ty_1,
    pub AsUlonglong: DWORDLONG,
    _bindgen_union_align: u64,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_COUNTER__bindgen_ty_1__bindgen_ty_1 {
    pub Week: DWORD,
    pub Year: DWORD,
}
#[test]
fn bindgen_test_layout__STORAGE_COUNTER__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_COUNTER__bindgen_ty_1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_STORAGE_COUNTER__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_COUNTER__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_COUNTER__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_COUNTER__bindgen_ty_1__bindgen_ty_1>())).Week
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_COUNTER__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Week)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_COUNTER__bindgen_ty_1__bindgen_ty_1>())).Year
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_COUNTER__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Year)
        )
    );
}
#[test]
fn bindgen_test_layout__STORAGE_COUNTER__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_COUNTER__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_STORAGE_COUNTER__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_COUNTER__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(_STORAGE_COUNTER__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_COUNTER__bindgen_ty_1>())).ManufactureDate as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_COUNTER__bindgen_ty_1),
            "::",
            stringify!(ManufactureDate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_COUNTER__bindgen_ty_1>())).AsUlonglong as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_COUNTER__bindgen_ty_1),
            "::",
            stringify!(AsUlonglong)
        )
    );
}
#[test]
fn bindgen_test_layout__STORAGE_COUNTER() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_COUNTER>(),
        16usize,
        concat!("Size of: ", stringify!(_STORAGE_COUNTER))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_COUNTER>(),
        8usize,
        concat!("Alignment of ", stringify!(_STORAGE_COUNTER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_COUNTER>())).Type as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_COUNTER),
            "::",
            stringify!(Type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_COUNTER>())).Value as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_COUNTER),
            "::",
            stringify!(Value)
        )
    );
}
pub type STORAGE_COUNTER = _STORAGE_COUNTER;
pub type PSTORAGE_COUNTER = *mut _STORAGE_COUNTER;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _STORAGE_COUNTERS {
    pub Version: DWORD,
    pub Size: DWORD,
    pub NumberOfCounters: DWORD,
    pub Counters: [STORAGE_COUNTER; 1usize],
}
#[test]
fn bindgen_test_layout__STORAGE_COUNTERS() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_COUNTERS>(),
        32usize,
        concat!("Size of: ", stringify!(_STORAGE_COUNTERS))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_COUNTERS>(),
        8usize,
        concat!("Alignment of ", stringify!(_STORAGE_COUNTERS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_COUNTERS>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_COUNTERS),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_COUNTERS>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_COUNTERS),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_COUNTERS>())).NumberOfCounters as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_COUNTERS),
            "::",
            stringify!(NumberOfCounters)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_COUNTERS>())).Counters as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_COUNTERS),
            "::",
            stringify!(Counters)
        )
    );
}
pub type STORAGE_COUNTERS = _STORAGE_COUNTERS;
pub type PSTORAGE_COUNTERS = *mut _STORAGE_COUNTERS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_HW_FIRMWARE_INFO_QUERY {
    pub Version: DWORD,
    pub Size: DWORD,
    pub Flags: DWORD,
    pub Reserved: DWORD,
}
#[test]
fn bindgen_test_layout__STORAGE_HW_FIRMWARE_INFO_QUERY() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_HW_FIRMWARE_INFO_QUERY>(),
        16usize,
        concat!("Size of: ", stringify!(_STORAGE_HW_FIRMWARE_INFO_QUERY))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_HW_FIRMWARE_INFO_QUERY>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_HW_FIRMWARE_INFO_QUERY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_INFO_QUERY>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_INFO_QUERY),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_INFO_QUERY>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_INFO_QUERY),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_INFO_QUERY>())).Flags as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_INFO_QUERY),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_INFO_QUERY>())).Reserved as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_INFO_QUERY),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type STORAGE_HW_FIRMWARE_INFO_QUERY = _STORAGE_HW_FIRMWARE_INFO_QUERY;
pub type PSTORAGE_HW_FIRMWARE_INFO_QUERY = *mut _STORAGE_HW_FIRMWARE_INFO_QUERY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_HW_FIRMWARE_SLOT_INFO {
    pub Version: DWORD,
    pub Size: DWORD,
    pub SlotNumber: BYTE,
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize], u8>,
    pub Reserved1: [BYTE; 6usize],
    pub Revision: [BYTE; 16usize],
}
#[test]
fn bindgen_test_layout__STORAGE_HW_FIRMWARE_SLOT_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_HW_FIRMWARE_SLOT_INFO>(),
        32usize,
        concat!("Size of: ", stringify!(_STORAGE_HW_FIRMWARE_SLOT_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_HW_FIRMWARE_SLOT_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_HW_FIRMWARE_SLOT_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_SLOT_INFO>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_SLOT_INFO),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_SLOT_INFO>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_SLOT_INFO),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_SLOT_INFO>())).SlotNumber as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_SLOT_INFO),
            "::",
            stringify!(SlotNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_SLOT_INFO>())).Reserved1 as *const _
                as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_SLOT_INFO),
            "::",
            stringify!(Reserved1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_SLOT_INFO>())).Revision as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_SLOT_INFO),
            "::",
            stringify!(Revision)
        )
    );
}
impl _STORAGE_HW_FIRMWARE_SLOT_INFO {
    #[inline]
    pub fn ReadOnly(&self) -> BYTE {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_ReadOnly(&mut self, val: BYTE) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn Reserved0(&self) -> BYTE {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 7u8) as u8) }
    }
    #[inline]
    pub fn set_Reserved0(&mut self, val: BYTE) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 7u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        ReadOnly: BYTE,
        Reserved0: BYTE,
    ) -> __BindgenBitfieldUnit<[u8; 1usize], u8> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize], u8> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let ReadOnly: u8 = unsafe { ::std::mem::transmute(ReadOnly) };
            ReadOnly as u64
        });
        __bindgen_bitfield_unit.set(1usize, 7u8, {
            let Reserved0: u8 = unsafe { ::std::mem::transmute(Reserved0) };
            Reserved0 as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type STORAGE_HW_FIRMWARE_SLOT_INFO = _STORAGE_HW_FIRMWARE_SLOT_INFO;
pub type PSTORAGE_HW_FIRMWARE_SLOT_INFO = *mut _STORAGE_HW_FIRMWARE_SLOT_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_HW_FIRMWARE_INFO {
    pub Version: DWORD,
    pub Size: DWORD,
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize], u8>,
    pub SlotCount: BYTE,
    pub ActiveSlot: BYTE,
    pub PendingActivateSlot: BYTE,
    pub FirmwareShared: BOOLEAN,
    pub Reserved: [BYTE; 3usize],
    pub ImagePayloadAlignment: DWORD,
    pub ImagePayloadMaxSize: DWORD,
    pub Slot: [STORAGE_HW_FIRMWARE_SLOT_INFO; 1usize],
}
#[test]
fn bindgen_test_layout__STORAGE_HW_FIRMWARE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_HW_FIRMWARE_INFO>(),
        56usize,
        concat!("Size of: ", stringify!(_STORAGE_HW_FIRMWARE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_HW_FIRMWARE_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_HW_FIRMWARE_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_INFO>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_INFO),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_INFO>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_INFO),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_INFO>())).SlotCount as *const _ as usize
        },
        9usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_INFO),
            "::",
            stringify!(SlotCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_INFO>())).ActiveSlot as *const _ as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_INFO),
            "::",
            stringify!(ActiveSlot)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_INFO>())).PendingActivateSlot as *const _
                as usize
        },
        11usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_INFO),
            "::",
            stringify!(PendingActivateSlot)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_INFO>())).FirmwareShared as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_INFO),
            "::",
            stringify!(FirmwareShared)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_INFO>())).Reserved as *const _ as usize
        },
        13usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_INFO),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_INFO>())).ImagePayloadAlignment as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_INFO),
            "::",
            stringify!(ImagePayloadAlignment)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_INFO>())).ImagePayloadMaxSize as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_INFO),
            "::",
            stringify!(ImagePayloadMaxSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_INFO>())).Slot as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_INFO),
            "::",
            stringify!(Slot)
        )
    );
}
impl _STORAGE_HW_FIRMWARE_INFO {
    #[inline]
    pub fn SupportUpgrade(&self) -> BYTE {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_SupportUpgrade(&mut self, val: BYTE) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn Reserved0(&self) -> BYTE {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 7u8) as u8) }
    }
    #[inline]
    pub fn set_Reserved0(&mut self, val: BYTE) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 7u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        SupportUpgrade: BYTE,
        Reserved0: BYTE,
    ) -> __BindgenBitfieldUnit<[u8; 1usize], u8> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize], u8> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let SupportUpgrade: u8 = unsafe { ::std::mem::transmute(SupportUpgrade) };
            SupportUpgrade as u64
        });
        __bindgen_bitfield_unit.set(1usize, 7u8, {
            let Reserved0: u8 = unsafe { ::std::mem::transmute(Reserved0) };
            Reserved0 as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type STORAGE_HW_FIRMWARE_INFO = _STORAGE_HW_FIRMWARE_INFO;
pub type PSTORAGE_HW_FIRMWARE_INFO = *mut _STORAGE_HW_FIRMWARE_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_HW_FIRMWARE_DOWNLOAD {
    pub Version: DWORD,
    pub Size: DWORD,
    pub Flags: DWORD,
    pub Slot: BYTE,
    pub Reserved: [BYTE; 3usize],
    pub Offset: DWORDLONG,
    pub BufferSize: DWORDLONG,
    pub ImageBuffer: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout__STORAGE_HW_FIRMWARE_DOWNLOAD() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_HW_FIRMWARE_DOWNLOAD>(),
        40usize,
        concat!("Size of: ", stringify!(_STORAGE_HW_FIRMWARE_DOWNLOAD))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_HW_FIRMWARE_DOWNLOAD>(),
        8usize,
        concat!("Alignment of ", stringify!(_STORAGE_HW_FIRMWARE_DOWNLOAD))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_DOWNLOAD>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_DOWNLOAD),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_DOWNLOAD>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_DOWNLOAD),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_DOWNLOAD>())).Flags as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_DOWNLOAD),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_DOWNLOAD>())).Slot as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_DOWNLOAD),
            "::",
            stringify!(Slot)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_DOWNLOAD>())).Reserved as *const _ as usize
        },
        13usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_DOWNLOAD),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_DOWNLOAD>())).Offset as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_DOWNLOAD),
            "::",
            stringify!(Offset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_DOWNLOAD>())).BufferSize as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_DOWNLOAD),
            "::",
            stringify!(BufferSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_DOWNLOAD>())).ImageBuffer as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_DOWNLOAD),
            "::",
            stringify!(ImageBuffer)
        )
    );
}
pub type STORAGE_HW_FIRMWARE_DOWNLOAD = _STORAGE_HW_FIRMWARE_DOWNLOAD;
pub type PSTORAGE_HW_FIRMWARE_DOWNLOAD = *mut _STORAGE_HW_FIRMWARE_DOWNLOAD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_HW_FIRMWARE_DOWNLOAD_V2 {
    pub Version: DWORD,
    pub Size: DWORD,
    pub Flags: DWORD,
    pub Slot: BYTE,
    pub Reserved: [BYTE; 3usize],
    pub Offset: DWORDLONG,
    pub BufferSize: DWORDLONG,
    pub ImageSize: DWORD,
    pub Reserved2: DWORD,
    pub ImageBuffer: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout__STORAGE_HW_FIRMWARE_DOWNLOAD_V2() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_HW_FIRMWARE_DOWNLOAD_V2>(),
        48usize,
        concat!("Size of: ", stringify!(_STORAGE_HW_FIRMWARE_DOWNLOAD_V2))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_HW_FIRMWARE_DOWNLOAD_V2>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_HW_FIRMWARE_DOWNLOAD_V2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_DOWNLOAD_V2>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_DOWNLOAD_V2),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_DOWNLOAD_V2>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_DOWNLOAD_V2),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_DOWNLOAD_V2>())).Flags as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_DOWNLOAD_V2),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_DOWNLOAD_V2>())).Slot as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_DOWNLOAD_V2),
            "::",
            stringify!(Slot)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_DOWNLOAD_V2>())).Reserved as *const _
                as usize
        },
        13usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_DOWNLOAD_V2),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_DOWNLOAD_V2>())).Offset as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_DOWNLOAD_V2),
            "::",
            stringify!(Offset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_DOWNLOAD_V2>())).BufferSize as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_DOWNLOAD_V2),
            "::",
            stringify!(BufferSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_DOWNLOAD_V2>())).ImageSize as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_DOWNLOAD_V2),
            "::",
            stringify!(ImageSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_DOWNLOAD_V2>())).Reserved2 as *const _
                as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_DOWNLOAD_V2),
            "::",
            stringify!(Reserved2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_DOWNLOAD_V2>())).ImageBuffer as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_DOWNLOAD_V2),
            "::",
            stringify!(ImageBuffer)
        )
    );
}
pub type STORAGE_HW_FIRMWARE_DOWNLOAD_V2 = _STORAGE_HW_FIRMWARE_DOWNLOAD_V2;
pub type PSTORAGE_HW_FIRMWARE_DOWNLOAD_V2 = *mut _STORAGE_HW_FIRMWARE_DOWNLOAD_V2;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_HW_FIRMWARE_ACTIVATE {
    pub Version: DWORD,
    pub Size: DWORD,
    pub Flags: DWORD,
    pub Slot: BYTE,
    pub Reserved0: [BYTE; 3usize],
}
#[test]
fn bindgen_test_layout__STORAGE_HW_FIRMWARE_ACTIVATE() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_HW_FIRMWARE_ACTIVATE>(),
        16usize,
        concat!("Size of: ", stringify!(_STORAGE_HW_FIRMWARE_ACTIVATE))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_HW_FIRMWARE_ACTIVATE>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_HW_FIRMWARE_ACTIVATE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_ACTIVATE>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_ACTIVATE),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_ACTIVATE>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_ACTIVATE),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_ACTIVATE>())).Flags as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_ACTIVATE),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_ACTIVATE>())).Slot as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_ACTIVATE),
            "::",
            stringify!(Slot)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_HW_FIRMWARE_ACTIVATE>())).Reserved0 as *const _ as usize
        },
        13usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_HW_FIRMWARE_ACTIVATE),
            "::",
            stringify!(Reserved0)
        )
    );
}
pub type STORAGE_HW_FIRMWARE_ACTIVATE = _STORAGE_HW_FIRMWARE_ACTIVATE;
pub type PSTORAGE_HW_FIRMWARE_ACTIVATE = *mut _STORAGE_HW_FIRMWARE_ACTIVATE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_PROTOCOL_COMMAND {
    pub Version: DWORD,
    pub Length: DWORD,
    pub ProtocolType: STORAGE_PROTOCOL_TYPE,
    pub Flags: DWORD,
    pub ReturnStatus: DWORD,
    pub ErrorCode: DWORD,
    pub CommandLength: DWORD,
    pub ErrorInfoLength: DWORD,
    pub DataToDeviceTransferLength: DWORD,
    pub DataFromDeviceTransferLength: DWORD,
    pub TimeOutValue: DWORD,
    pub ErrorInfoOffset: DWORD,
    pub DataToDeviceBufferOffset: DWORD,
    pub DataFromDeviceBufferOffset: DWORD,
    pub CommandSpecific: DWORD,
    pub Reserved0: DWORD,
    pub FixedProtocolReturnData: DWORD,
    pub Reserved1: [DWORD; 3usize],
    pub Command: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout__STORAGE_PROTOCOL_COMMAND() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_PROTOCOL_COMMAND>(),
        84usize,
        concat!("Size of: ", stringify!(_STORAGE_PROTOCOL_COMMAND))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_PROTOCOL_COMMAND>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_PROTOCOL_COMMAND))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_COMMAND>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_COMMAND),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_COMMAND>())).Length as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_COMMAND),
            "::",
            stringify!(Length)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_COMMAND>())).ProtocolType as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_COMMAND),
            "::",
            stringify!(ProtocolType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_PROTOCOL_COMMAND>())).Flags as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_COMMAND),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_COMMAND>())).ReturnStatus as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_COMMAND),
            "::",
            stringify!(ReturnStatus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_COMMAND>())).ErrorCode as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_COMMAND),
            "::",
            stringify!(ErrorCode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_COMMAND>())).CommandLength as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_COMMAND),
            "::",
            stringify!(CommandLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_COMMAND>())).ErrorInfoLength as *const _
                as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_COMMAND),
            "::",
            stringify!(ErrorInfoLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_COMMAND>())).DataToDeviceTransferLength
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_COMMAND),
            "::",
            stringify!(DataToDeviceTransferLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_COMMAND>())).DataFromDeviceTransferLength
                as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_COMMAND),
            "::",
            stringify!(DataFromDeviceTransferLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_COMMAND>())).TimeOutValue as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_COMMAND),
            "::",
            stringify!(TimeOutValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_COMMAND>())).ErrorInfoOffset as *const _
                as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_COMMAND),
            "::",
            stringify!(ErrorInfoOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_COMMAND>())).DataToDeviceBufferOffset
                as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_COMMAND),
            "::",
            stringify!(DataToDeviceBufferOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_COMMAND>())).DataFromDeviceBufferOffset
                as *const _ as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_COMMAND),
            "::",
            stringify!(DataFromDeviceBufferOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_COMMAND>())).CommandSpecific as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_COMMAND),
            "::",
            stringify!(CommandSpecific)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_COMMAND>())).Reserved0 as *const _ as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_COMMAND),
            "::",
            stringify!(Reserved0)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_COMMAND>())).FixedProtocolReturnData
                as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_COMMAND),
            "::",
            stringify!(FixedProtocolReturnData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_COMMAND>())).Reserved1 as *const _ as usize
        },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_COMMAND),
            "::",
            stringify!(Reserved1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_PROTOCOL_COMMAND>())).Command as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_PROTOCOL_COMMAND),
            "::",
            stringify!(Command)
        )
    );
}
pub type STORAGE_PROTOCOL_COMMAND = _STORAGE_PROTOCOL_COMMAND;
pub type PSTORAGE_PROTOCOL_COMMAND = *mut _STORAGE_PROTOCOL_COMMAND;
pub const _STORAGE_ATTRIBUTE_MGMT_ACTION_StorAttributeMgmt_ClearAttribute:
    _STORAGE_ATTRIBUTE_MGMT_ACTION = 0;
pub const _STORAGE_ATTRIBUTE_MGMT_ACTION_StorAttributeMgmt_SetAttribute:
    _STORAGE_ATTRIBUTE_MGMT_ACTION = 1;
pub const _STORAGE_ATTRIBUTE_MGMT_ACTION_StorAttributeMgmt_ResetAttribute:
    _STORAGE_ATTRIBUTE_MGMT_ACTION = 2;
pub type _STORAGE_ATTRIBUTE_MGMT_ACTION = ::std::os::raw::c_int;
pub use self::_STORAGE_ATTRIBUTE_MGMT_ACTION as STORAGE_ATTRIBUTE_MGMT_ACTION;
pub type PSTORAGE_ATTRIBUTE_MGMT_ACTION = *mut _STORAGE_ATTRIBUTE_MGMT_ACTION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_ATTRIBUTE_MGMT {
    pub Version: DWORD,
    pub Size: DWORD,
    pub Action: STORAGE_ATTRIBUTE_MGMT_ACTION,
    pub Attribute: DWORD,
}
#[test]
fn bindgen_test_layout__STORAGE_ATTRIBUTE_MGMT() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_ATTRIBUTE_MGMT>(),
        16usize,
        concat!("Size of: ", stringify!(_STORAGE_ATTRIBUTE_MGMT))
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_ATTRIBUTE_MGMT>(),
        4usize,
        concat!("Alignment of ", stringify!(_STORAGE_ATTRIBUTE_MGMT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_ATTRIBUTE_MGMT>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ATTRIBUTE_MGMT),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_ATTRIBUTE_MGMT>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ATTRIBUTE_MGMT),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STORAGE_ATTRIBUTE_MGMT>())).Action as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ATTRIBUTE_MGMT),
            "::",
            stringify!(Action)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_ATTRIBUTE_MGMT>())).Attribute as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_ATTRIBUTE_MGMT),
            "::",
            stringify!(Attribute)
        )
    );
}
pub type STORAGE_ATTRIBUTE_MGMT = _STORAGE_ATTRIBUTE_MGMT;
pub type PSTORAGE_ATTRIBUTE_MGMT = *mut _STORAGE_ATTRIBUTE_MGMT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCM_PD_HEALTH_NOTIFICATION_DATA {
    pub DeviceGuid: GUID,
}
#[test]
fn bindgen_test_layout__SCM_PD_HEALTH_NOTIFICATION_DATA() {
    assert_eq!(
        ::std::mem::size_of::<_SCM_PD_HEALTH_NOTIFICATION_DATA>(),
        16usize,
        concat!("Size of: ", stringify!(_SCM_PD_HEALTH_NOTIFICATION_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCM_PD_HEALTH_NOTIFICATION_DATA>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_SCM_PD_HEALTH_NOTIFICATION_DATA)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_HEALTH_NOTIFICATION_DATA>())).DeviceGuid as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_HEALTH_NOTIFICATION_DATA),
            "::",
            stringify!(DeviceGuid)
        )
    );
}
pub type SCM_PD_HEALTH_NOTIFICATION_DATA = _SCM_PD_HEALTH_NOTIFICATION_DATA;
pub type PSCM_PD_HEALTH_NOTIFICATION_DATA = *mut _SCM_PD_HEALTH_NOTIFICATION_DATA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _SCM_LOGICAL_DEVICE_INSTANCE {
    pub Version: DWORD,
    pub Size: DWORD,
    pub DeviceGuid: GUID,
    pub SymbolicLink: [WCHAR; 256usize],
}
#[test]
fn bindgen_test_layout__SCM_LOGICAL_DEVICE_INSTANCE() {
    assert_eq!(
        ::std::mem::size_of::<_SCM_LOGICAL_DEVICE_INSTANCE>(),
        536usize,
        concat!("Size of: ", stringify!(_SCM_LOGICAL_DEVICE_INSTANCE))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCM_LOGICAL_DEVICE_INSTANCE>(),
        4usize,
        concat!("Alignment of ", stringify!(_SCM_LOGICAL_DEVICE_INSTANCE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_LOGICAL_DEVICE_INSTANCE>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_LOGICAL_DEVICE_INSTANCE),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_LOGICAL_DEVICE_INSTANCE>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_LOGICAL_DEVICE_INSTANCE),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_LOGICAL_DEVICE_INSTANCE>())).DeviceGuid as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_LOGICAL_DEVICE_INSTANCE),
            "::",
            stringify!(DeviceGuid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_LOGICAL_DEVICE_INSTANCE>())).SymbolicLink as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_LOGICAL_DEVICE_INSTANCE),
            "::",
            stringify!(SymbolicLink)
        )
    );
}
pub type SCM_LOGICAL_DEVICE_INSTANCE = _SCM_LOGICAL_DEVICE_INSTANCE;
pub type PSCM_LOGICAL_DEVICE_INSTANCE = *mut _SCM_LOGICAL_DEVICE_INSTANCE;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _SCM_LOGICAL_DEVICES {
    pub Version: DWORD,
    pub Size: DWORD,
    pub DeviceCount: DWORD,
    pub Devices: [SCM_LOGICAL_DEVICE_INSTANCE; 1usize],
}
#[test]
fn bindgen_test_layout__SCM_LOGICAL_DEVICES() {
    assert_eq!(
        ::std::mem::size_of::<_SCM_LOGICAL_DEVICES>(),
        548usize,
        concat!("Size of: ", stringify!(_SCM_LOGICAL_DEVICES))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCM_LOGICAL_DEVICES>(),
        4usize,
        concat!("Alignment of ", stringify!(_SCM_LOGICAL_DEVICES))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_LOGICAL_DEVICES>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_LOGICAL_DEVICES),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_LOGICAL_DEVICES>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_LOGICAL_DEVICES),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_LOGICAL_DEVICES>())).DeviceCount as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_LOGICAL_DEVICES),
            "::",
            stringify!(DeviceCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_LOGICAL_DEVICES>())).Devices as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_LOGICAL_DEVICES),
            "::",
            stringify!(Devices)
        )
    );
}
pub type SCM_LOGICAL_DEVICES = _SCM_LOGICAL_DEVICES;
pub type PSCM_LOGICAL_DEVICES = *mut _SCM_LOGICAL_DEVICES;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _SCM_PHYSICAL_DEVICE_INSTANCE {
    pub Version: DWORD,
    pub Size: DWORD,
    pub NfitHandle: DWORD,
    pub SymbolicLink: [WCHAR; 256usize],
}
#[test]
fn bindgen_test_layout__SCM_PHYSICAL_DEVICE_INSTANCE() {
    assert_eq!(
        ::std::mem::size_of::<_SCM_PHYSICAL_DEVICE_INSTANCE>(),
        524usize,
        concat!("Size of: ", stringify!(_SCM_PHYSICAL_DEVICE_INSTANCE))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCM_PHYSICAL_DEVICE_INSTANCE>(),
        4usize,
        concat!("Alignment of ", stringify!(_SCM_PHYSICAL_DEVICE_INSTANCE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PHYSICAL_DEVICE_INSTANCE>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PHYSICAL_DEVICE_INSTANCE),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PHYSICAL_DEVICE_INSTANCE>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PHYSICAL_DEVICE_INSTANCE),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PHYSICAL_DEVICE_INSTANCE>())).NfitHandle as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PHYSICAL_DEVICE_INSTANCE),
            "::",
            stringify!(NfitHandle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PHYSICAL_DEVICE_INSTANCE>())).SymbolicLink as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PHYSICAL_DEVICE_INSTANCE),
            "::",
            stringify!(SymbolicLink)
        )
    );
}
pub type SCM_PHYSICAL_DEVICE_INSTANCE = _SCM_PHYSICAL_DEVICE_INSTANCE;
pub type PSCM_PHYSICAL_DEVICE_INSTANCE = *mut _SCM_PHYSICAL_DEVICE_INSTANCE;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _SCM_PHYSICAL_DEVICES {
    pub Version: DWORD,
    pub Size: DWORD,
    pub DeviceCount: DWORD,
    pub Devices: [SCM_PHYSICAL_DEVICE_INSTANCE; 1usize],
}
#[test]
fn bindgen_test_layout__SCM_PHYSICAL_DEVICES() {
    assert_eq!(
        ::std::mem::size_of::<_SCM_PHYSICAL_DEVICES>(),
        536usize,
        concat!("Size of: ", stringify!(_SCM_PHYSICAL_DEVICES))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCM_PHYSICAL_DEVICES>(),
        4usize,
        concat!("Alignment of ", stringify!(_SCM_PHYSICAL_DEVICES))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PHYSICAL_DEVICES>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PHYSICAL_DEVICES),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PHYSICAL_DEVICES>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PHYSICAL_DEVICES),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PHYSICAL_DEVICES>())).DeviceCount as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PHYSICAL_DEVICES),
            "::",
            stringify!(DeviceCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PHYSICAL_DEVICES>())).Devices as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PHYSICAL_DEVICES),
            "::",
            stringify!(Devices)
        )
    );
}
pub type SCM_PHYSICAL_DEVICES = _SCM_PHYSICAL_DEVICES;
pub type PSCM_PHYSICAL_DEVICES = *mut _SCM_PHYSICAL_DEVICES;
pub const _SCM_REGION_FLAG_ScmRegionFlagNone: _SCM_REGION_FLAG = 0;
pub const _SCM_REGION_FLAG_ScmRegionFlagLabel: _SCM_REGION_FLAG = 1;
pub type _SCM_REGION_FLAG = ::std::os::raw::c_int;
pub use self::_SCM_REGION_FLAG as SCM_REGION_FLAG;
pub type PSCM_REGION_FLAG = *mut _SCM_REGION_FLAG;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCM_REGION {
    pub Version: DWORD,
    pub Size: DWORD,
    pub Flags: DWORD,
    pub NfitHandle: DWORD,
    pub LogicalDeviceGuid: GUID,
    pub AddressRangeType: GUID,
    pub AssociatedId: DWORD,
    pub Length: DWORD64,
    pub StartingDPA: DWORD64,
    pub BaseSPA: DWORD64,
    pub SPAOffset: DWORD64,
    pub RegionOffset: DWORD64,
}
#[test]
fn bindgen_test_layout__SCM_REGION() {
    assert_eq!(
        ::std::mem::size_of::<_SCM_REGION>(),
        96usize,
        concat!("Size of: ", stringify!(_SCM_REGION))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCM_REGION>(),
        8usize,
        concat!("Alignment of ", stringify!(_SCM_REGION))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_REGION>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_REGION),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_REGION>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_REGION),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_REGION>())).Flags as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_REGION),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_REGION>())).NfitHandle as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_REGION),
            "::",
            stringify!(NfitHandle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_REGION>())).LogicalDeviceGuid as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_REGION),
            "::",
            stringify!(LogicalDeviceGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_REGION>())).AddressRangeType as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_REGION),
            "::",
            stringify!(AddressRangeType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_REGION>())).AssociatedId as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_REGION),
            "::",
            stringify!(AssociatedId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_REGION>())).Length as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_REGION),
            "::",
            stringify!(Length)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_REGION>())).StartingDPA as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_REGION),
            "::",
            stringify!(StartingDPA)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_REGION>())).BaseSPA as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_REGION),
            "::",
            stringify!(BaseSPA)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_REGION>())).SPAOffset as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_REGION),
            "::",
            stringify!(SPAOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_REGION>())).RegionOffset as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_REGION),
            "::",
            stringify!(RegionOffset)
        )
    );
}
pub type SCM_REGION = _SCM_REGION;
pub type PSCM_REGION = *mut _SCM_REGION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCM_REGIONS {
    pub Version: DWORD,
    pub Size: DWORD,
    pub RegionCount: DWORD,
    pub Regions: [SCM_REGION; 1usize],
}
#[test]
fn bindgen_test_layout__SCM_REGIONS() {
    assert_eq!(
        ::std::mem::size_of::<_SCM_REGIONS>(),
        112usize,
        concat!("Size of: ", stringify!(_SCM_REGIONS))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCM_REGIONS>(),
        8usize,
        concat!("Alignment of ", stringify!(_SCM_REGIONS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_REGIONS>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_REGIONS),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_REGIONS>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_REGIONS),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_REGIONS>())).RegionCount as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_REGIONS),
            "::",
            stringify!(RegionCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_REGIONS>())).Regions as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_REGIONS),
            "::",
            stringify!(Regions)
        )
    );
}
pub type SCM_REGIONS = _SCM_REGIONS;
pub type PSCM_REGIONS = *mut _SCM_REGIONS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCM_INTERLEAVED_PD_INFO {
    pub DeviceHandle: DWORD,
    pub DeviceGuid: GUID,
}
#[test]
fn bindgen_test_layout__SCM_INTERLEAVED_PD_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_SCM_INTERLEAVED_PD_INFO>(),
        20usize,
        concat!("Size of: ", stringify!(_SCM_INTERLEAVED_PD_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCM_INTERLEAVED_PD_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_SCM_INTERLEAVED_PD_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_INTERLEAVED_PD_INFO>())).DeviceHandle as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_INTERLEAVED_PD_INFO),
            "::",
            stringify!(DeviceHandle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_INTERLEAVED_PD_INFO>())).DeviceGuid as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_INTERLEAVED_PD_INFO),
            "::",
            stringify!(DeviceGuid)
        )
    );
}
pub type SCM_INTERLEAVED_PD_INFO = _SCM_INTERLEAVED_PD_INFO;
pub type PSCM_INTERLEAVED_PD_INFO = *mut _SCM_INTERLEAVED_PD_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCM_LD_INTERLEAVE_SET_INFO {
    pub Version: DWORD,
    pub Size: DWORD,
    pub InterleaveSetSize: DWORD,
    pub InterleaveSet: [SCM_INTERLEAVED_PD_INFO; 1usize],
}
#[test]
fn bindgen_test_layout__SCM_LD_INTERLEAVE_SET_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_SCM_LD_INTERLEAVE_SET_INFO>(),
        32usize,
        concat!("Size of: ", stringify!(_SCM_LD_INTERLEAVE_SET_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCM_LD_INTERLEAVE_SET_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_SCM_LD_INTERLEAVE_SET_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_LD_INTERLEAVE_SET_INFO>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_LD_INTERLEAVE_SET_INFO),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_LD_INTERLEAVE_SET_INFO>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_LD_INTERLEAVE_SET_INFO),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_LD_INTERLEAVE_SET_INFO>())).InterleaveSetSize as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_LD_INTERLEAVE_SET_INFO),
            "::",
            stringify!(InterleaveSetSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_LD_INTERLEAVE_SET_INFO>())).InterleaveSet as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_LD_INTERLEAVE_SET_INFO),
            "::",
            stringify!(InterleaveSet)
        )
    );
}
pub type SCM_LD_INTERLEAVE_SET_INFO = _SCM_LD_INTERLEAVE_SET_INFO;
pub type PSCM_LD_INTERLEAVE_SET_INFO = *mut _SCM_LD_INTERLEAVE_SET_INFO;
pub const _SCM_PD_QUERY_TYPE_ScmPhysicalDeviceQuery_Descriptor: _SCM_PD_QUERY_TYPE = 0;
pub const _SCM_PD_QUERY_TYPE_ScmPhysicalDeviceQuery_IsSupported: _SCM_PD_QUERY_TYPE = 1;
pub const _SCM_PD_QUERY_TYPE_ScmPhysicalDeviceQuery_Max: _SCM_PD_QUERY_TYPE = 2;
pub type _SCM_PD_QUERY_TYPE = ::std::os::raw::c_int;
pub use self::_SCM_PD_QUERY_TYPE as SCM_PD_QUERY_TYPE;
pub type PSCM_PD_QUERY_TYPE = *mut _SCM_PD_QUERY_TYPE;
pub const _SCM_PD_PROPERTY_ID_ScmPhysicalDeviceProperty_DeviceInfo: _SCM_PD_PROPERTY_ID = 0;
pub const _SCM_PD_PROPERTY_ID_ScmPhysicalDeviceProperty_ManagementStatus: _SCM_PD_PROPERTY_ID = 1;
pub const _SCM_PD_PROPERTY_ID_ScmPhysicalDeviceProperty_FirmwareInfo: _SCM_PD_PROPERTY_ID = 2;
pub const _SCM_PD_PROPERTY_ID_ScmPhysicalDeviceProperty_LocationString: _SCM_PD_PROPERTY_ID = 3;
pub const _SCM_PD_PROPERTY_ID_ScmPhysicalDeviceProperty_DeviceSpecificInfo: _SCM_PD_PROPERTY_ID = 4;
pub const _SCM_PD_PROPERTY_ID_ScmPhysicalDeviceProperty_DeviceHandle: _SCM_PD_PROPERTY_ID = 5;
pub const _SCM_PD_PROPERTY_ID_ScmPhysicalDeviceProperty_Max: _SCM_PD_PROPERTY_ID = 6;
pub type _SCM_PD_PROPERTY_ID = ::std::os::raw::c_int;
pub use self::_SCM_PD_PROPERTY_ID as SCM_PD_PROPERTY_ID;
pub type PSCM_PD_PROPERTY_ID = *mut _SCM_PD_PROPERTY_ID;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCM_PD_PROPERTY_QUERY {
    pub Version: DWORD,
    pub Size: DWORD,
    pub PropertyId: SCM_PD_PROPERTY_ID,
    pub QueryType: SCM_PD_QUERY_TYPE,
    pub AdditionalParameters: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout__SCM_PD_PROPERTY_QUERY() {
    assert_eq!(
        ::std::mem::size_of::<_SCM_PD_PROPERTY_QUERY>(),
        20usize,
        concat!("Size of: ", stringify!(_SCM_PD_PROPERTY_QUERY))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCM_PD_PROPERTY_QUERY>(),
        4usize,
        concat!("Alignment of ", stringify!(_SCM_PD_PROPERTY_QUERY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PD_PROPERTY_QUERY>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_PROPERTY_QUERY),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PD_PROPERTY_QUERY>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_PROPERTY_QUERY),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_PROPERTY_QUERY>())).PropertyId as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_PROPERTY_QUERY),
            "::",
            stringify!(PropertyId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_PROPERTY_QUERY>())).QueryType as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_PROPERTY_QUERY),
            "::",
            stringify!(QueryType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_PROPERTY_QUERY>())).AdditionalParameters as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_PROPERTY_QUERY),
            "::",
            stringify!(AdditionalParameters)
        )
    );
}
pub type SCM_PD_PROPERTY_QUERY = _SCM_PD_PROPERTY_QUERY;
pub type PSCM_PD_PROPERTY_QUERY = *mut _SCM_PD_PROPERTY_QUERY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCM_PD_DESCRIPTOR_HEADER {
    pub Version: DWORD,
    pub Size: DWORD,
}
#[test]
fn bindgen_test_layout__SCM_PD_DESCRIPTOR_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<_SCM_PD_DESCRIPTOR_HEADER>(),
        8usize,
        concat!("Size of: ", stringify!(_SCM_PD_DESCRIPTOR_HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCM_PD_DESCRIPTOR_HEADER>(),
        4usize,
        concat!("Alignment of ", stringify!(_SCM_PD_DESCRIPTOR_HEADER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_DESCRIPTOR_HEADER>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DESCRIPTOR_HEADER),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PD_DESCRIPTOR_HEADER>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DESCRIPTOR_HEADER),
            "::",
            stringify!(Size)
        )
    );
}
pub type SCM_PD_DESCRIPTOR_HEADER = _SCM_PD_DESCRIPTOR_HEADER;
pub type PSCM_PD_DESCRIPTOR_HEADER = *mut _SCM_PD_DESCRIPTOR_HEADER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCM_PD_DEVICE_HANDLE {
    pub Version: DWORD,
    pub Size: DWORD,
    pub DeviceGuid: GUID,
    pub DeviceHandle: DWORD,
}
#[test]
fn bindgen_test_layout__SCM_PD_DEVICE_HANDLE() {
    assert_eq!(
        ::std::mem::size_of::<_SCM_PD_DEVICE_HANDLE>(),
        28usize,
        concat!("Size of: ", stringify!(_SCM_PD_DEVICE_HANDLE))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCM_PD_DEVICE_HANDLE>(),
        4usize,
        concat!("Alignment of ", stringify!(_SCM_PD_DEVICE_HANDLE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PD_DEVICE_HANDLE>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DEVICE_HANDLE),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PD_DEVICE_HANDLE>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DEVICE_HANDLE),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_DEVICE_HANDLE>())).DeviceGuid as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DEVICE_HANDLE),
            "::",
            stringify!(DeviceGuid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_DEVICE_HANDLE>())).DeviceHandle as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DEVICE_HANDLE),
            "::",
            stringify!(DeviceHandle)
        )
    );
}
pub type SCM_PD_DEVICE_HANDLE = _SCM_PD_DEVICE_HANDLE;
pub type PSCM_PD_DEVICE_HANDLE = *mut _SCM_PD_DEVICE_HANDLE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCM_PD_DEVICE_INFO {
    pub Version: DWORD,
    pub Size: DWORD,
    pub DeviceGuid: GUID,
    pub UnsafeShutdownCount: DWORD,
    pub PersistentMemorySizeInBytes: DWORD64,
    pub VolatileMemorySizeInBytes: DWORD64,
    pub TotalMemorySizeInBytes: DWORD64,
    pub SlotNumber: DWORD,
    pub DeviceHandle: DWORD,
    pub PhysicalId: WORD,
    pub NumberOfFormatInterfaceCodes: BYTE,
    pub FormatInterfaceCodes: [WORD; 8usize],
    pub VendorId: DWORD,
    pub ProductId: DWORD,
    pub SubsystemDeviceId: DWORD,
    pub SubsystemVendorId: DWORD,
    pub ManufacturingLocation: BYTE,
    pub ManufacturingWeek: BYTE,
    pub ManufacturingYear: BYTE,
    pub SerialNumber4Byte: DWORD,
    pub SerialNumberLengthInChars: DWORD,
    pub SerialNumber: [CHAR; 1usize],
}
#[test]
fn bindgen_test_layout__SCM_PD_DEVICE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_SCM_PD_DEVICE_INFO>(),
        120usize,
        concat!("Size of: ", stringify!(_SCM_PD_DEVICE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCM_PD_DEVICE_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_SCM_PD_DEVICE_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PD_DEVICE_INFO>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DEVICE_INFO),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PD_DEVICE_INFO>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DEVICE_INFO),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PD_DEVICE_INFO>())).DeviceGuid as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DEVICE_INFO),
            "::",
            stringify!(DeviceGuid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_DEVICE_INFO>())).UnsafeShutdownCount as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DEVICE_INFO),
            "::",
            stringify!(UnsafeShutdownCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_DEVICE_INFO>())).PersistentMemorySizeInBytes as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DEVICE_INFO),
            "::",
            stringify!(PersistentMemorySizeInBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_DEVICE_INFO>())).VolatileMemorySizeInBytes as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DEVICE_INFO),
            "::",
            stringify!(VolatileMemorySizeInBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_DEVICE_INFO>())).TotalMemorySizeInBytes as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DEVICE_INFO),
            "::",
            stringify!(TotalMemorySizeInBytes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PD_DEVICE_INFO>())).SlotNumber as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DEVICE_INFO),
            "::",
            stringify!(SlotNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_DEVICE_INFO>())).DeviceHandle as *const _ as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DEVICE_INFO),
            "::",
            stringify!(DeviceHandle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PD_DEVICE_INFO>())).PhysicalId as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DEVICE_INFO),
            "::",
            stringify!(PhysicalId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_DEVICE_INFO>())).NumberOfFormatInterfaceCodes as *const _
                as usize
        },
        66usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DEVICE_INFO),
            "::",
            stringify!(NumberOfFormatInterfaceCodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_DEVICE_INFO>())).FormatInterfaceCodes as *const _
                as usize
        },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DEVICE_INFO),
            "::",
            stringify!(FormatInterfaceCodes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PD_DEVICE_INFO>())).VendorId as *const _ as usize },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DEVICE_INFO),
            "::",
            stringify!(VendorId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PD_DEVICE_INFO>())).ProductId as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DEVICE_INFO),
            "::",
            stringify!(ProductId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_DEVICE_INFO>())).SubsystemDeviceId as *const _ as usize
        },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DEVICE_INFO),
            "::",
            stringify!(SubsystemDeviceId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_DEVICE_INFO>())).SubsystemVendorId as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DEVICE_INFO),
            "::",
            stringify!(SubsystemVendorId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_DEVICE_INFO>())).ManufacturingLocation as *const _
                as usize
        },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DEVICE_INFO),
            "::",
            stringify!(ManufacturingLocation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_DEVICE_INFO>())).ManufacturingWeek as *const _ as usize
        },
        101usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DEVICE_INFO),
            "::",
            stringify!(ManufacturingWeek)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_DEVICE_INFO>())).ManufacturingYear as *const _ as usize
        },
        102usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DEVICE_INFO),
            "::",
            stringify!(ManufacturingYear)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_DEVICE_INFO>())).SerialNumber4Byte as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DEVICE_INFO),
            "::",
            stringify!(SerialNumber4Byte)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_DEVICE_INFO>())).SerialNumberLengthInChars as *const _
                as usize
        },
        108usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DEVICE_INFO),
            "::",
            stringify!(SerialNumberLengthInChars)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_DEVICE_INFO>())).SerialNumber as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DEVICE_INFO),
            "::",
            stringify!(SerialNumber)
        )
    );
}
pub type SCM_PD_DEVICE_INFO = _SCM_PD_DEVICE_INFO;
pub type PSCM_PD_DEVICE_INFO = *mut _SCM_PD_DEVICE_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _SCM_PD_DEVICE_SPECIFIC_PROPERTY {
    pub Name: [WCHAR; 128usize],
    pub Value: LONGLONG,
}
#[test]
fn bindgen_test_layout__SCM_PD_DEVICE_SPECIFIC_PROPERTY() {
    assert_eq!(
        ::std::mem::size_of::<_SCM_PD_DEVICE_SPECIFIC_PROPERTY>(),
        264usize,
        concat!("Size of: ", stringify!(_SCM_PD_DEVICE_SPECIFIC_PROPERTY))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCM_PD_DEVICE_SPECIFIC_PROPERTY>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_SCM_PD_DEVICE_SPECIFIC_PROPERTY)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_DEVICE_SPECIFIC_PROPERTY>())).Name as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DEVICE_SPECIFIC_PROPERTY),
            "::",
            stringify!(Name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_DEVICE_SPECIFIC_PROPERTY>())).Value as *const _ as usize
        },
        256usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DEVICE_SPECIFIC_PROPERTY),
            "::",
            stringify!(Value)
        )
    );
}
pub type SCM_PD_DEVICE_SPECIFIC_PROPERTY = _SCM_PD_DEVICE_SPECIFIC_PROPERTY;
pub type PSCM_PD_DEVICE_SPECIFIC_PROPERTY = *mut _SCM_PD_DEVICE_SPECIFIC_PROPERTY;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _SCM_PD_DEVICE_SPECIFIC_INFO {
    pub Version: DWORD,
    pub Size: DWORD,
    pub NumberOfProperties: DWORD,
    pub DeviceSpecificProperties: [SCM_PD_DEVICE_SPECIFIC_PROPERTY; 1usize],
}
#[test]
fn bindgen_test_layout__SCM_PD_DEVICE_SPECIFIC_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_SCM_PD_DEVICE_SPECIFIC_INFO>(),
        280usize,
        concat!("Size of: ", stringify!(_SCM_PD_DEVICE_SPECIFIC_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCM_PD_DEVICE_SPECIFIC_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_SCM_PD_DEVICE_SPECIFIC_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_DEVICE_SPECIFIC_INFO>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DEVICE_SPECIFIC_INFO),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_DEVICE_SPECIFIC_INFO>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DEVICE_SPECIFIC_INFO),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_DEVICE_SPECIFIC_INFO>())).NumberOfProperties as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DEVICE_SPECIFIC_INFO),
            "::",
            stringify!(NumberOfProperties)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_DEVICE_SPECIFIC_INFO>())).DeviceSpecificProperties
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_DEVICE_SPECIFIC_INFO),
            "::",
            stringify!(DeviceSpecificProperties)
        )
    );
}
pub type SCM_PD_DEVICE_SPECIFIC_INFO = _SCM_PD_DEVICE_SPECIFIC_INFO;
pub type PSCM_PD_DEVICE_SPECIFIC_INFO = *mut _SCM_PD_DEVICE_SPECIFIC_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCM_PD_FIRMWARE_SLOT_INFO {
    pub Version: DWORD,
    pub Size: DWORD,
    pub SlotNumber: BYTE,
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize], u8>,
    pub Reserved1: [BYTE; 6usize],
    pub Revision: [BYTE; 32usize],
}
#[test]
fn bindgen_test_layout__SCM_PD_FIRMWARE_SLOT_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_SCM_PD_FIRMWARE_SLOT_INFO>(),
        48usize,
        concat!("Size of: ", stringify!(_SCM_PD_FIRMWARE_SLOT_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCM_PD_FIRMWARE_SLOT_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_SCM_PD_FIRMWARE_SLOT_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_FIRMWARE_SLOT_INFO>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_FIRMWARE_SLOT_INFO),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PD_FIRMWARE_SLOT_INFO>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_FIRMWARE_SLOT_INFO),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_FIRMWARE_SLOT_INFO>())).SlotNumber as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_FIRMWARE_SLOT_INFO),
            "::",
            stringify!(SlotNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_FIRMWARE_SLOT_INFO>())).Reserved1 as *const _ as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_FIRMWARE_SLOT_INFO),
            "::",
            stringify!(Reserved1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_FIRMWARE_SLOT_INFO>())).Revision as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_FIRMWARE_SLOT_INFO),
            "::",
            stringify!(Revision)
        )
    );
}
impl _SCM_PD_FIRMWARE_SLOT_INFO {
    #[inline]
    pub fn ReadOnly(&self) -> BYTE {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
    }
    #[inline]
    pub fn set_ReadOnly(&mut self, val: BYTE) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn Reserved0(&self) -> BYTE {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 7u8) as u8) }
    }
    #[inline]
    pub fn set_Reserved0(&mut self, val: BYTE) {
        unsafe {
            let val: u8 = ::std::mem::transmute(val);
            self._bitfield_1.set(1usize, 7u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        ReadOnly: BYTE,
        Reserved0: BYTE,
    ) -> __BindgenBitfieldUnit<[u8; 1usize], u8> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize], u8> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let ReadOnly: u8 = unsafe { ::std::mem::transmute(ReadOnly) };
            ReadOnly as u64
        });
        __bindgen_bitfield_unit.set(1usize, 7u8, {
            let Reserved0: u8 = unsafe { ::std::mem::transmute(Reserved0) };
            Reserved0 as u64
        });
        __bindgen_bitfield_unit
    }
}
pub type SCM_PD_FIRMWARE_SLOT_INFO = _SCM_PD_FIRMWARE_SLOT_INFO;
pub type PSCM_PD_FIRMWARE_SLOT_INFO = *mut _SCM_PD_FIRMWARE_SLOT_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCM_PD_FIRMWARE_INFO {
    pub Version: DWORD,
    pub Size: DWORD,
    pub ActiveSlot: BYTE,
    pub NextActiveSlot: BYTE,
    pub SlotCount: BYTE,
    pub Slots: [SCM_PD_FIRMWARE_SLOT_INFO; 1usize],
}
#[test]
fn bindgen_test_layout__SCM_PD_FIRMWARE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_SCM_PD_FIRMWARE_INFO>(),
        60usize,
        concat!("Size of: ", stringify!(_SCM_PD_FIRMWARE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCM_PD_FIRMWARE_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_SCM_PD_FIRMWARE_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PD_FIRMWARE_INFO>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_FIRMWARE_INFO),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PD_FIRMWARE_INFO>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_FIRMWARE_INFO),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_FIRMWARE_INFO>())).ActiveSlot as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_FIRMWARE_INFO),
            "::",
            stringify!(ActiveSlot)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_FIRMWARE_INFO>())).NextActiveSlot as *const _ as usize
        },
        9usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_FIRMWARE_INFO),
            "::",
            stringify!(NextActiveSlot)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PD_FIRMWARE_INFO>())).SlotCount as *const _ as usize },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_FIRMWARE_INFO),
            "::",
            stringify!(SlotCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PD_FIRMWARE_INFO>())).Slots as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_FIRMWARE_INFO),
            "::",
            stringify!(Slots)
        )
    );
}
pub type SCM_PD_FIRMWARE_INFO = _SCM_PD_FIRMWARE_INFO;
pub type PSCM_PD_FIRMWARE_INFO = *mut _SCM_PD_FIRMWARE_INFO;
pub const _SCM_PD_HEALTH_STATUS_ScmPhysicalDeviceHealth_Unknown: _SCM_PD_HEALTH_STATUS = 0;
pub const _SCM_PD_HEALTH_STATUS_ScmPhysicalDeviceHealth_Unhealthy: _SCM_PD_HEALTH_STATUS = 1;
pub const _SCM_PD_HEALTH_STATUS_ScmPhysicalDeviceHealth_Warning: _SCM_PD_HEALTH_STATUS = 2;
pub const _SCM_PD_HEALTH_STATUS_ScmPhysicalDeviceHealth_Healthy: _SCM_PD_HEALTH_STATUS = 3;
pub const _SCM_PD_HEALTH_STATUS_ScmPhysicalDeviceHealth_Max: _SCM_PD_HEALTH_STATUS = 4;
pub type _SCM_PD_HEALTH_STATUS = ::std::os::raw::c_int;
pub use self::_SCM_PD_HEALTH_STATUS as SCM_PD_HEALTH_STATUS;
pub type PSCM_PD_HEALTH_STATUS = *mut _SCM_PD_HEALTH_STATUS;
pub const _SCM_PD_OPERATIONAL_STATUS_ScmPhysicalDeviceOpStatus_Unknown: _SCM_PD_OPERATIONAL_STATUS =
    0;
pub const _SCM_PD_OPERATIONAL_STATUS_ScmPhysicalDeviceOpStatus_Ok: _SCM_PD_OPERATIONAL_STATUS = 1;
pub const _SCM_PD_OPERATIONAL_STATUS_ScmPhysicalDeviceOpStatus_PredictingFailure:
    _SCM_PD_OPERATIONAL_STATUS = 2;
pub const _SCM_PD_OPERATIONAL_STATUS_ScmPhysicalDeviceOpStatus_InService:
    _SCM_PD_OPERATIONAL_STATUS = 3;
pub const _SCM_PD_OPERATIONAL_STATUS_ScmPhysicalDeviceOpStatus_HardwareError:
    _SCM_PD_OPERATIONAL_STATUS = 4;
pub const _SCM_PD_OPERATIONAL_STATUS_ScmPhysicalDeviceOpStatus_NotUsable:
    _SCM_PD_OPERATIONAL_STATUS = 5;
pub const _SCM_PD_OPERATIONAL_STATUS_ScmPhysicalDeviceOpStatus_TransientError:
    _SCM_PD_OPERATIONAL_STATUS = 6;
pub const _SCM_PD_OPERATIONAL_STATUS_ScmPhysicalDeviceOpStatus_Missing: _SCM_PD_OPERATIONAL_STATUS =
    7;
pub const _SCM_PD_OPERATIONAL_STATUS_ScmPhysicalDeviceOpStatus_Max: _SCM_PD_OPERATIONAL_STATUS = 8;
pub type _SCM_PD_OPERATIONAL_STATUS = ::std::os::raw::c_int;
pub use self::_SCM_PD_OPERATIONAL_STATUS as SCM_PD_OPERATIONAL_STATUS;
pub type PSCM_PD_OPERATIONAL_STATUS = *mut _SCM_PD_OPERATIONAL_STATUS;
pub const _SCM_PD_OPERATIONAL_STATUS_REASON_ScmPhysicalDeviceOpReason_Unknown:
    _SCM_PD_OPERATIONAL_STATUS_REASON = 0;
pub const _SCM_PD_OPERATIONAL_STATUS_REASON_ScmPhysicalDeviceOpReason_Media:
    _SCM_PD_OPERATIONAL_STATUS_REASON = 1;
pub const _SCM_PD_OPERATIONAL_STATUS_REASON_ScmPhysicalDeviceOpReason_ThresholdExceeded:
    _SCM_PD_OPERATIONAL_STATUS_REASON = 2;
pub const _SCM_PD_OPERATIONAL_STATUS_REASON_ScmPhysicalDeviceOpReason_LostData:
    _SCM_PD_OPERATIONAL_STATUS_REASON = 3;
pub const _SCM_PD_OPERATIONAL_STATUS_REASON_ScmPhysicalDeviceOpReason_EnergySource:
    _SCM_PD_OPERATIONAL_STATUS_REASON = 4;
pub const _SCM_PD_OPERATIONAL_STATUS_REASON_ScmPhysicalDeviceOpReason_Configuration:
    _SCM_PD_OPERATIONAL_STATUS_REASON = 5;
pub const _SCM_PD_OPERATIONAL_STATUS_REASON_ScmPhysicalDeviceOpReason_DeviceController:
    _SCM_PD_OPERATIONAL_STATUS_REASON = 6;
pub const _SCM_PD_OPERATIONAL_STATUS_REASON_ScmPhysicalDeviceOpReason_MediaController:
    _SCM_PD_OPERATIONAL_STATUS_REASON = 7;
pub const _SCM_PD_OPERATIONAL_STATUS_REASON_ScmPhysicalDeviceOpReason_Component:
    _SCM_PD_OPERATIONAL_STATUS_REASON = 8;
pub const _SCM_PD_OPERATIONAL_STATUS_REASON_ScmPhysicalDeviceOpReason_BackgroundOperation:
    _SCM_PD_OPERATIONAL_STATUS_REASON = 9;
pub const _SCM_PD_OPERATIONAL_STATUS_REASON_ScmPhysicalDeviceOpReason_InvalidFirmware:
    _SCM_PD_OPERATIONAL_STATUS_REASON = 10;
pub const _SCM_PD_OPERATIONAL_STATUS_REASON_ScmPhysicalDeviceOpReason_HealthCheck:
    _SCM_PD_OPERATIONAL_STATUS_REASON = 11;
pub const _SCM_PD_OPERATIONAL_STATUS_REASON_ScmPhysicalDeviceOpReason_LostDataPersistence:
    _SCM_PD_OPERATIONAL_STATUS_REASON = 12;
pub const _SCM_PD_OPERATIONAL_STATUS_REASON_ScmPhysicalDeviceOpReason_DisabledByPlatform:
    _SCM_PD_OPERATIONAL_STATUS_REASON = 13;
pub const _SCM_PD_OPERATIONAL_STATUS_REASON_ScmPhysicalDeviceOpReason_PermanentError:
    _SCM_PD_OPERATIONAL_STATUS_REASON = 14;
pub const _SCM_PD_OPERATIONAL_STATUS_REASON_ScmPhysicalDeviceOpReason_LostWritePersistence:
    _SCM_PD_OPERATIONAL_STATUS_REASON = 15;
pub const _SCM_PD_OPERATIONAL_STATUS_REASON_ScmPhysicalDeviceOpReason_FatalError:
    _SCM_PD_OPERATIONAL_STATUS_REASON = 16;
pub const _SCM_PD_OPERATIONAL_STATUS_REASON_ScmPhysicalDeviceOpReason_DataPersistenceLossImminent : _SCM_PD_OPERATIONAL_STATUS_REASON = 17 ;
pub const _SCM_PD_OPERATIONAL_STATUS_REASON_ScmPhysicalDeviceOpReason_WritePersistenceLossImminent : _SCM_PD_OPERATIONAL_STATUS_REASON = 18 ;
pub const _SCM_PD_OPERATIONAL_STATUS_REASON_ScmPhysicalDeviceOpReason_MediaRemainingSpareBlock:
    _SCM_PD_OPERATIONAL_STATUS_REASON = 19;
pub const _SCM_PD_OPERATIONAL_STATUS_REASON_ScmPhysicalDeviceOpReason_PerformanceDegradation:
    _SCM_PD_OPERATIONAL_STATUS_REASON = 20;
pub const _SCM_PD_OPERATIONAL_STATUS_REASON_ScmPhysicalDeviceOpReason_ExcessiveTemperature:
    _SCM_PD_OPERATIONAL_STATUS_REASON = 21;
pub const _SCM_PD_OPERATIONAL_STATUS_REASON_ScmPhysicalDeviceOpReason_Max:
    _SCM_PD_OPERATIONAL_STATUS_REASON = 22;
pub type _SCM_PD_OPERATIONAL_STATUS_REASON = ::std::os::raw::c_int;
pub use self::_SCM_PD_OPERATIONAL_STATUS_REASON as SCM_PD_OPERATIONAL_STATUS_REASON;
pub type PSCM_PD_OPERATIONAL_STATUS_REASON = *mut _SCM_PD_OPERATIONAL_STATUS_REASON;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCM_PD_MANAGEMENT_STATUS {
    pub Version: DWORD,
    pub Size: DWORD,
    pub Health: SCM_PD_HEALTH_STATUS,
    pub NumberOfOperationalStatus: DWORD,
    pub NumberOfAdditionalReasons: DWORD,
    pub OperationalStatus: [SCM_PD_OPERATIONAL_STATUS; 16usize],
    pub AdditionalReasons: [SCM_PD_OPERATIONAL_STATUS_REASON; 1usize],
}
#[test]
fn bindgen_test_layout__SCM_PD_MANAGEMENT_STATUS() {
    assert_eq!(
        ::std::mem::size_of::<_SCM_PD_MANAGEMENT_STATUS>(),
        88usize,
        concat!("Size of: ", stringify!(_SCM_PD_MANAGEMENT_STATUS))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCM_PD_MANAGEMENT_STATUS>(),
        4usize,
        concat!("Alignment of ", stringify!(_SCM_PD_MANAGEMENT_STATUS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_MANAGEMENT_STATUS>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_MANAGEMENT_STATUS),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PD_MANAGEMENT_STATUS>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_MANAGEMENT_STATUS),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_MANAGEMENT_STATUS>())).Health as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_MANAGEMENT_STATUS),
            "::",
            stringify!(Health)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_MANAGEMENT_STATUS>())).NumberOfOperationalStatus
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_MANAGEMENT_STATUS),
            "::",
            stringify!(NumberOfOperationalStatus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_MANAGEMENT_STATUS>())).NumberOfAdditionalReasons
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_MANAGEMENT_STATUS),
            "::",
            stringify!(NumberOfAdditionalReasons)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_MANAGEMENT_STATUS>())).OperationalStatus as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_MANAGEMENT_STATUS),
            "::",
            stringify!(OperationalStatus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_MANAGEMENT_STATUS>())).AdditionalReasons as *const _
                as usize
        },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_MANAGEMENT_STATUS),
            "::",
            stringify!(AdditionalReasons)
        )
    );
}
pub type SCM_PD_MANAGEMENT_STATUS = _SCM_PD_MANAGEMENT_STATUS;
pub type PSCM_PD_MANAGEMENT_STATUS = *mut _SCM_PD_MANAGEMENT_STATUS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCM_PD_LOCATION_STRING {
    pub Version: DWORD,
    pub Size: DWORD,
    pub Location: [WCHAR; 1usize],
}
#[test]
fn bindgen_test_layout__SCM_PD_LOCATION_STRING() {
    assert_eq!(
        ::std::mem::size_of::<_SCM_PD_LOCATION_STRING>(),
        12usize,
        concat!("Size of: ", stringify!(_SCM_PD_LOCATION_STRING))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCM_PD_LOCATION_STRING>(),
        4usize,
        concat!("Alignment of ", stringify!(_SCM_PD_LOCATION_STRING))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PD_LOCATION_STRING>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_LOCATION_STRING),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PD_LOCATION_STRING>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_LOCATION_STRING),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_LOCATION_STRING>())).Location as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_LOCATION_STRING),
            "::",
            stringify!(Location)
        )
    );
}
pub type SCM_PD_LOCATION_STRING = _SCM_PD_LOCATION_STRING;
pub type PSCM_PD_LOCATION_STRING = *mut _SCM_PD_LOCATION_STRING;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCM_PD_FIRMWARE_DOWNLOAD {
    pub Version: DWORD,
    pub Size: DWORD,
    pub Flags: DWORD,
    pub Slot: BYTE,
    pub Reserved: [BYTE; 3usize],
    pub Offset: DWORD64,
    pub FirmwareImageSizeInBytes: DWORD,
    pub FirmwareImage: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout__SCM_PD_FIRMWARE_DOWNLOAD() {
    assert_eq!(
        ::std::mem::size_of::<_SCM_PD_FIRMWARE_DOWNLOAD>(),
        32usize,
        concat!("Size of: ", stringify!(_SCM_PD_FIRMWARE_DOWNLOAD))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCM_PD_FIRMWARE_DOWNLOAD>(),
        8usize,
        concat!("Alignment of ", stringify!(_SCM_PD_FIRMWARE_DOWNLOAD))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_FIRMWARE_DOWNLOAD>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_FIRMWARE_DOWNLOAD),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PD_FIRMWARE_DOWNLOAD>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_FIRMWARE_DOWNLOAD),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PD_FIRMWARE_DOWNLOAD>())).Flags as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_FIRMWARE_DOWNLOAD),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PD_FIRMWARE_DOWNLOAD>())).Slot as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_FIRMWARE_DOWNLOAD),
            "::",
            stringify!(Slot)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_FIRMWARE_DOWNLOAD>())).Reserved as *const _ as usize
        },
        13usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_FIRMWARE_DOWNLOAD),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_FIRMWARE_DOWNLOAD>())).Offset as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_FIRMWARE_DOWNLOAD),
            "::",
            stringify!(Offset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_FIRMWARE_DOWNLOAD>())).FirmwareImageSizeInBytes
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_FIRMWARE_DOWNLOAD),
            "::",
            stringify!(FirmwareImageSizeInBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_FIRMWARE_DOWNLOAD>())).FirmwareImage as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_FIRMWARE_DOWNLOAD),
            "::",
            stringify!(FirmwareImage)
        )
    );
}
pub type SCM_PD_FIRMWARE_DOWNLOAD = _SCM_PD_FIRMWARE_DOWNLOAD;
pub type PSCM_PD_FIRMWARE_DOWNLOAD = *mut _SCM_PD_FIRMWARE_DOWNLOAD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCM_PD_FIRMWARE_ACTIVATE {
    pub Version: DWORD,
    pub Size: DWORD,
    pub Flags: DWORD,
    pub Slot: BYTE,
}
#[test]
fn bindgen_test_layout__SCM_PD_FIRMWARE_ACTIVATE() {
    assert_eq!(
        ::std::mem::size_of::<_SCM_PD_FIRMWARE_ACTIVATE>(),
        16usize,
        concat!("Size of: ", stringify!(_SCM_PD_FIRMWARE_ACTIVATE))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCM_PD_FIRMWARE_ACTIVATE>(),
        4usize,
        concat!("Alignment of ", stringify!(_SCM_PD_FIRMWARE_ACTIVATE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_FIRMWARE_ACTIVATE>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_FIRMWARE_ACTIVATE),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PD_FIRMWARE_ACTIVATE>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_FIRMWARE_ACTIVATE),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PD_FIRMWARE_ACTIVATE>())).Flags as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_FIRMWARE_ACTIVATE),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PD_FIRMWARE_ACTIVATE>())).Slot as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_FIRMWARE_ACTIVATE),
            "::",
            stringify!(Slot)
        )
    );
}
pub type SCM_PD_FIRMWARE_ACTIVATE = _SCM_PD_FIRMWARE_ACTIVATE;
pub type PSCM_PD_FIRMWARE_ACTIVATE = *mut _SCM_PD_FIRMWARE_ACTIVATE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCM_PD_PASSTHROUGH_INPUT {
    pub Version: DWORD,
    pub Size: DWORD,
    pub ProtocolGuid: GUID,
    pub DataSize: DWORD,
    pub Data: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout__SCM_PD_PASSTHROUGH_INPUT() {
    assert_eq!(
        ::std::mem::size_of::<_SCM_PD_PASSTHROUGH_INPUT>(),
        32usize,
        concat!("Size of: ", stringify!(_SCM_PD_PASSTHROUGH_INPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCM_PD_PASSTHROUGH_INPUT>(),
        4usize,
        concat!("Alignment of ", stringify!(_SCM_PD_PASSTHROUGH_INPUT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_PASSTHROUGH_INPUT>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_PASSTHROUGH_INPUT),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PD_PASSTHROUGH_INPUT>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_PASSTHROUGH_INPUT),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_PASSTHROUGH_INPUT>())).ProtocolGuid as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_PASSTHROUGH_INPUT),
            "::",
            stringify!(ProtocolGuid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_PASSTHROUGH_INPUT>())).DataSize as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_PASSTHROUGH_INPUT),
            "::",
            stringify!(DataSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PD_PASSTHROUGH_INPUT>())).Data as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_PASSTHROUGH_INPUT),
            "::",
            stringify!(Data)
        )
    );
}
pub type SCM_PD_PASSTHROUGH_INPUT = _SCM_PD_PASSTHROUGH_INPUT;
pub type PSCM_PD_PASSTHROUGH_INPUT = *mut _SCM_PD_PASSTHROUGH_INPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCM_PD_PASSTHROUGH_OUTPUT {
    pub Version: DWORD,
    pub Size: DWORD,
    pub ProtocolGuid: GUID,
    pub DataSize: DWORD,
    pub Data: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout__SCM_PD_PASSTHROUGH_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_SCM_PD_PASSTHROUGH_OUTPUT>(),
        32usize,
        concat!("Size of: ", stringify!(_SCM_PD_PASSTHROUGH_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCM_PD_PASSTHROUGH_OUTPUT>(),
        4usize,
        concat!("Alignment of ", stringify!(_SCM_PD_PASSTHROUGH_OUTPUT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_PASSTHROUGH_OUTPUT>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_PASSTHROUGH_OUTPUT),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PD_PASSTHROUGH_OUTPUT>())).Size as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_PASSTHROUGH_OUTPUT),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_PASSTHROUGH_OUTPUT>())).ProtocolGuid as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_PASSTHROUGH_OUTPUT),
            "::",
            stringify!(ProtocolGuid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_PASSTHROUGH_OUTPUT>())).DataSize as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_PASSTHROUGH_OUTPUT),
            "::",
            stringify!(DataSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCM_PD_PASSTHROUGH_OUTPUT>())).Data as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_PASSTHROUGH_OUTPUT),
            "::",
            stringify!(Data)
        )
    );
}
pub type SCM_PD_PASSTHROUGH_OUTPUT = _SCM_PD_PASSTHROUGH_OUTPUT;
pub type PSCM_PD_PASSTHROUGH_OUTPUT = *mut _SCM_PD_PASSTHROUGH_OUTPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCM_PD_PASSTHROUGH_INVDIMM_INPUT {
    pub Opcode: DWORD,
    pub OpcodeParametersLength: DWORD,
    pub OpcodeParameters: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout__SCM_PD_PASSTHROUGH_INVDIMM_INPUT() {
    assert_eq!(
        ::std::mem::size_of::<_SCM_PD_PASSTHROUGH_INVDIMM_INPUT>(),
        12usize,
        concat!("Size of: ", stringify!(_SCM_PD_PASSTHROUGH_INVDIMM_INPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCM_PD_PASSTHROUGH_INVDIMM_INPUT>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_SCM_PD_PASSTHROUGH_INVDIMM_INPUT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_PASSTHROUGH_INVDIMM_INPUT>())).Opcode as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_PASSTHROUGH_INVDIMM_INPUT),
            "::",
            stringify!(Opcode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_PASSTHROUGH_INVDIMM_INPUT>())).OpcodeParametersLength
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_PASSTHROUGH_INVDIMM_INPUT),
            "::",
            stringify!(OpcodeParametersLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_PASSTHROUGH_INVDIMM_INPUT>())).OpcodeParameters
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_PASSTHROUGH_INVDIMM_INPUT),
            "::",
            stringify!(OpcodeParameters)
        )
    );
}
pub type SCM_PD_PASSTHROUGH_INVDIMM_INPUT = _SCM_PD_PASSTHROUGH_INVDIMM_INPUT;
pub type PSCM_PD_PASSTHROUGH_INVDIMM_INPUT = *mut _SCM_PD_PASSTHROUGH_INVDIMM_INPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCM_PD_PASSTHROUGH_INVDIMM_OUTPUT {
    pub GeneralStatus: WORD,
    pub ExtendedStatus: WORD,
    pub OutputDataLength: DWORD,
    pub OutputData: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout__SCM_PD_PASSTHROUGH_INVDIMM_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_SCM_PD_PASSTHROUGH_INVDIMM_OUTPUT>(),
        12usize,
        concat!("Size of: ", stringify!(_SCM_PD_PASSTHROUGH_INVDIMM_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCM_PD_PASSTHROUGH_INVDIMM_OUTPUT>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_SCM_PD_PASSTHROUGH_INVDIMM_OUTPUT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_PASSTHROUGH_INVDIMM_OUTPUT>())).GeneralStatus as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_PASSTHROUGH_INVDIMM_OUTPUT),
            "::",
            stringify!(GeneralStatus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_PASSTHROUGH_INVDIMM_OUTPUT>())).ExtendedStatus
                as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_PASSTHROUGH_INVDIMM_OUTPUT),
            "::",
            stringify!(ExtendedStatus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_PASSTHROUGH_INVDIMM_OUTPUT>())).OutputDataLength
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_PASSTHROUGH_INVDIMM_OUTPUT),
            "::",
            stringify!(OutputDataLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_PASSTHROUGH_INVDIMM_OUTPUT>())).OutputData as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_PASSTHROUGH_INVDIMM_OUTPUT),
            "::",
            stringify!(OutputData)
        )
    );
}
pub type SCM_PD_PASSTHROUGH_INVDIMM_OUTPUT = _SCM_PD_PASSTHROUGH_INVDIMM_OUTPUT;
pub type PSCM_PD_PASSTHROUGH_INVDIMM_OUTPUT = *mut _SCM_PD_PASSTHROUGH_INVDIMM_OUTPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCM_PD_REINITIALIZE_MEDIA_INPUT {
    pub Version: DWORD,
    pub Size: DWORD,
    pub Options: _SCM_PD_REINITIALIZE_MEDIA_INPUT__bindgen_ty_1,
}
#[repr(C)]
#[repr(align(4))]
#[derive(Debug, Copy, Clone)]
pub struct _SCM_PD_REINITIALIZE_MEDIA_INPUT__bindgen_ty_1 {
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize], u8>,
    pub __bindgen_padding_0: [u8; 3usize],
}
#[test]
fn bindgen_test_layout__SCM_PD_REINITIALIZE_MEDIA_INPUT__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_SCM_PD_REINITIALIZE_MEDIA_INPUT__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_SCM_PD_REINITIALIZE_MEDIA_INPUT__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_SCM_PD_REINITIALIZE_MEDIA_INPUT__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_SCM_PD_REINITIALIZE_MEDIA_INPUT__bindgen_ty_1)
        )
    );
}
impl _SCM_PD_REINITIALIZE_MEDIA_INPUT__bindgen_ty_1 {
    #[inline]
    pub fn Overwrite(&self) -> DWORD {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_Overwrite(&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(Overwrite: DWORD) -> __BindgenBitfieldUnit<[u8; 1usize], u8> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize], u8> =
            Default::default();
        __bindgen_bitfield_unit.set(0usize, 1u8, {
            let Overwrite: u32 = unsafe { ::std::mem::transmute(Overwrite) };
            Overwrite as u64
        });
        __bindgen_bitfield_unit
    }
}
#[test]
fn bindgen_test_layout__SCM_PD_REINITIALIZE_MEDIA_INPUT() {
    assert_eq!(
        ::std::mem::size_of::<_SCM_PD_REINITIALIZE_MEDIA_INPUT>(),
        12usize,
        concat!("Size of: ", stringify!(_SCM_PD_REINITIALIZE_MEDIA_INPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCM_PD_REINITIALIZE_MEDIA_INPUT>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_SCM_PD_REINITIALIZE_MEDIA_INPUT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_REINITIALIZE_MEDIA_INPUT>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_REINITIALIZE_MEDIA_INPUT),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_REINITIALIZE_MEDIA_INPUT>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_REINITIALIZE_MEDIA_INPUT),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_REINITIALIZE_MEDIA_INPUT>())).Options as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_REINITIALIZE_MEDIA_INPUT),
            "::",
            stringify!(Options)
        )
    );
}
pub type SCM_PD_REINITIALIZE_MEDIA_INPUT = _SCM_PD_REINITIALIZE_MEDIA_INPUT;
pub type PSCM_PD_REINITIALIZE_MEDIA_INPUT = *mut _SCM_PD_REINITIALIZE_MEDIA_INPUT;
pub const _SCM_PD_MEDIA_REINITIALIZATION_STATUS_ScmPhysicalDeviceReinit_Success:
    _SCM_PD_MEDIA_REINITIALIZATION_STATUS = 0;
pub const _SCM_PD_MEDIA_REINITIALIZATION_STATUS_ScmPhysicalDeviceReinit_RebootNeeded:
    _SCM_PD_MEDIA_REINITIALIZATION_STATUS = 1;
pub const _SCM_PD_MEDIA_REINITIALIZATION_STATUS_ScmPhysicalDeviceReinit_ColdBootNeeded:
    _SCM_PD_MEDIA_REINITIALIZATION_STATUS = 2;
pub const _SCM_PD_MEDIA_REINITIALIZATION_STATUS_ScmPhysicalDeviceReinit_Max:
    _SCM_PD_MEDIA_REINITIALIZATION_STATUS = 3;
pub type _SCM_PD_MEDIA_REINITIALIZATION_STATUS = ::std::os::raw::c_int;
pub use self::_SCM_PD_MEDIA_REINITIALIZATION_STATUS as SCM_PD_MEDIA_REINITIALIZATION_STATUS;
pub type PSCM_PD_MEDIA_REINITIALIZATION_STATUS = *mut _SCM_PD_MEDIA_REINITIALIZATION_STATUS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCM_PD_REINITIALIZE_MEDIA_OUTPUT {
    pub Version: DWORD,
    pub Size: DWORD,
    pub Status: SCM_PD_MEDIA_REINITIALIZATION_STATUS,
}
#[test]
fn bindgen_test_layout__SCM_PD_REINITIALIZE_MEDIA_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_SCM_PD_REINITIALIZE_MEDIA_OUTPUT>(),
        12usize,
        concat!("Size of: ", stringify!(_SCM_PD_REINITIALIZE_MEDIA_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCM_PD_REINITIALIZE_MEDIA_OUTPUT>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_SCM_PD_REINITIALIZE_MEDIA_OUTPUT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_REINITIALIZE_MEDIA_OUTPUT>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_REINITIALIZE_MEDIA_OUTPUT),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_REINITIALIZE_MEDIA_OUTPUT>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_REINITIALIZE_MEDIA_OUTPUT),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCM_PD_REINITIALIZE_MEDIA_OUTPUT>())).Status as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCM_PD_REINITIALIZE_MEDIA_OUTPUT),
            "::",
            stringify!(Status)
        )
    );
}
pub type SCM_PD_REINITIALIZE_MEDIA_OUTPUT = _SCM_PD_REINITIALIZE_MEDIA_OUTPUT;
pub type PSCM_PD_REINITIALIZE_MEDIA_OUTPUT = *mut _SCM_PD_REINITIALIZE_MEDIA_OUTPUT;
pub const _MEDIA_TYPE_Unknown: _MEDIA_TYPE = 0;
pub const _MEDIA_TYPE_F5_1Pt2_512: _MEDIA_TYPE = 1;
pub const _MEDIA_TYPE_F3_1Pt44_512: _MEDIA_TYPE = 2;
pub const _MEDIA_TYPE_F3_2Pt88_512: _MEDIA_TYPE = 3;
pub const _MEDIA_TYPE_F3_20Pt8_512: _MEDIA_TYPE = 4;
pub const _MEDIA_TYPE_F3_720_512: _MEDIA_TYPE = 5;
pub const _MEDIA_TYPE_F5_360_512: _MEDIA_TYPE = 6;
pub const _MEDIA_TYPE_F5_320_512: _MEDIA_TYPE = 7;
pub const _MEDIA_TYPE_F5_320_1024: _MEDIA_TYPE = 8;
pub const _MEDIA_TYPE_F5_180_512: _MEDIA_TYPE = 9;
pub const _MEDIA_TYPE_F5_160_512: _MEDIA_TYPE = 10;
pub const _MEDIA_TYPE_RemovableMedia: _MEDIA_TYPE = 11;
pub const _MEDIA_TYPE_FixedMedia: _MEDIA_TYPE = 12;
pub const _MEDIA_TYPE_F3_120M_512: _MEDIA_TYPE = 13;
pub const _MEDIA_TYPE_F3_640_512: _MEDIA_TYPE = 14;
pub const _MEDIA_TYPE_F5_640_512: _MEDIA_TYPE = 15;
pub const _MEDIA_TYPE_F5_720_512: _MEDIA_TYPE = 16;
pub const _MEDIA_TYPE_F3_1Pt2_512: _MEDIA_TYPE = 17;
pub const _MEDIA_TYPE_F3_1Pt23_1024: _MEDIA_TYPE = 18;
pub const _MEDIA_TYPE_F5_1Pt23_1024: _MEDIA_TYPE = 19;
pub const _MEDIA_TYPE_F3_128Mb_512: _MEDIA_TYPE = 20;
pub const _MEDIA_TYPE_F3_230Mb_512: _MEDIA_TYPE = 21;
pub const _MEDIA_TYPE_F8_256_128: _MEDIA_TYPE = 22;
pub const _MEDIA_TYPE_F3_200Mb_512: _MEDIA_TYPE = 23;
pub const _MEDIA_TYPE_F3_240M_512: _MEDIA_TYPE = 24;
pub const _MEDIA_TYPE_F3_32M_512: _MEDIA_TYPE = 25;
pub type _MEDIA_TYPE = ::std::os::raw::c_int;
pub use self::_MEDIA_TYPE as MEDIA_TYPE;
pub type PMEDIA_TYPE = *mut _MEDIA_TYPE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FORMAT_PARAMETERS {
    pub MediaType: MEDIA_TYPE,
    pub StartCylinderNumber: DWORD,
    pub EndCylinderNumber: DWORD,
    pub StartHeadNumber: DWORD,
    pub EndHeadNumber: DWORD,
}
#[test]
fn bindgen_test_layout__FORMAT_PARAMETERS() {
    assert_eq!(
        ::std::mem::size_of::<_FORMAT_PARAMETERS>(),
        20usize,
        concat!("Size of: ", stringify!(_FORMAT_PARAMETERS))
    );
    assert_eq!(
        ::std::mem::align_of::<_FORMAT_PARAMETERS>(),
        4usize,
        concat!("Alignment of ", stringify!(_FORMAT_PARAMETERS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FORMAT_PARAMETERS>())).MediaType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORMAT_PARAMETERS),
            "::",
            stringify!(MediaType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FORMAT_PARAMETERS>())).StartCylinderNumber as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORMAT_PARAMETERS),
            "::",
            stringify!(StartCylinderNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FORMAT_PARAMETERS>())).EndCylinderNumber as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORMAT_PARAMETERS),
            "::",
            stringify!(EndCylinderNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FORMAT_PARAMETERS>())).StartHeadNumber as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORMAT_PARAMETERS),
            "::",
            stringify!(StartHeadNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FORMAT_PARAMETERS>())).EndHeadNumber as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORMAT_PARAMETERS),
            "::",
            stringify!(EndHeadNumber)
        )
    );
}
pub type FORMAT_PARAMETERS = _FORMAT_PARAMETERS;
pub type PFORMAT_PARAMETERS = *mut _FORMAT_PARAMETERS;
pub type BAD_TRACK_NUMBER = WORD;
pub type PBAD_TRACK_NUMBER = *mut WORD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FORMAT_EX_PARAMETERS {
    pub MediaType: MEDIA_TYPE,
    pub StartCylinderNumber: DWORD,
    pub EndCylinderNumber: DWORD,
    pub StartHeadNumber: DWORD,
    pub EndHeadNumber: DWORD,
    pub FormatGapLength: WORD,
    pub SectorsPerTrack: WORD,
    pub SectorNumber: [WORD; 1usize],
}
#[test]
fn bindgen_test_layout__FORMAT_EX_PARAMETERS() {
    assert_eq!(
        ::std::mem::size_of::<_FORMAT_EX_PARAMETERS>(),
        28usize,
        concat!("Size of: ", stringify!(_FORMAT_EX_PARAMETERS))
    );
    assert_eq!(
        ::std::mem::align_of::<_FORMAT_EX_PARAMETERS>(),
        4usize,
        concat!("Alignment of ", stringify!(_FORMAT_EX_PARAMETERS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FORMAT_EX_PARAMETERS>())).MediaType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORMAT_EX_PARAMETERS),
            "::",
            stringify!(MediaType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FORMAT_EX_PARAMETERS>())).StartCylinderNumber as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORMAT_EX_PARAMETERS),
            "::",
            stringify!(StartCylinderNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FORMAT_EX_PARAMETERS>())).EndCylinderNumber as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORMAT_EX_PARAMETERS),
            "::",
            stringify!(EndCylinderNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FORMAT_EX_PARAMETERS>())).StartHeadNumber as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORMAT_EX_PARAMETERS),
            "::",
            stringify!(StartHeadNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FORMAT_EX_PARAMETERS>())).EndHeadNumber as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORMAT_EX_PARAMETERS),
            "::",
            stringify!(EndHeadNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FORMAT_EX_PARAMETERS>())).FormatGapLength as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORMAT_EX_PARAMETERS),
            "::",
            stringify!(FormatGapLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FORMAT_EX_PARAMETERS>())).SectorsPerTrack as *const _ as usize
        },
        22usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORMAT_EX_PARAMETERS),
            "::",
            stringify!(SectorsPerTrack)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FORMAT_EX_PARAMETERS>())).SectorNumber as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORMAT_EX_PARAMETERS),
            "::",
            stringify!(SectorNumber)
        )
    );
}
pub type FORMAT_EX_PARAMETERS = _FORMAT_EX_PARAMETERS;
pub type PFORMAT_EX_PARAMETERS = *mut _FORMAT_EX_PARAMETERS;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _DISK_GEOMETRY {
    pub Cylinders: LARGE_INTEGER,
    pub MediaType: MEDIA_TYPE,
    pub TracksPerCylinder: DWORD,
    pub SectorsPerTrack: DWORD,
    pub BytesPerSector: DWORD,
}
#[test]
fn bindgen_test_layout__DISK_GEOMETRY() {
    assert_eq!(
        ::std::mem::size_of::<_DISK_GEOMETRY>(),
        24usize,
        concat!("Size of: ", stringify!(_DISK_GEOMETRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_DISK_GEOMETRY>(),
        8usize,
        concat!("Alignment of ", stringify!(_DISK_GEOMETRY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_GEOMETRY>())).Cylinders as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_GEOMETRY),
            "::",
            stringify!(Cylinders)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_GEOMETRY>())).MediaType as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_GEOMETRY),
            "::",
            stringify!(MediaType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_GEOMETRY>())).TracksPerCylinder as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_GEOMETRY),
            "::",
            stringify!(TracksPerCylinder)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_GEOMETRY>())).SectorsPerTrack as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_GEOMETRY),
            "::",
            stringify!(SectorsPerTrack)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_GEOMETRY>())).BytesPerSector as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_GEOMETRY),
            "::",
            stringify!(BytesPerSector)
        )
    );
}
pub type DISK_GEOMETRY = _DISK_GEOMETRY;
pub type PDISK_GEOMETRY = *mut _DISK_GEOMETRY;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PARTITION_INFORMATION {
    pub StartingOffset: LARGE_INTEGER,
    pub PartitionLength: LARGE_INTEGER,
    pub HiddenSectors: DWORD,
    pub PartitionNumber: DWORD,
    pub PartitionType: BYTE,
    pub BootIndicator: BOOLEAN,
    pub RecognizedPartition: BOOLEAN,
    pub RewritePartition: BOOLEAN,
}
#[test]
fn bindgen_test_layout__PARTITION_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_PARTITION_INFORMATION>(),
        32usize,
        concat!("Size of: ", stringify!(_PARTITION_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_PARTITION_INFORMATION>(),
        8usize,
        concat!("Alignment of ", stringify!(_PARTITION_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PARTITION_INFORMATION>())).StartingOffset as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PARTITION_INFORMATION),
            "::",
            stringify!(StartingOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PARTITION_INFORMATION>())).PartitionLength as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PARTITION_INFORMATION),
            "::",
            stringify!(PartitionLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PARTITION_INFORMATION>())).HiddenSectors as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PARTITION_INFORMATION),
            "::",
            stringify!(HiddenSectors)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PARTITION_INFORMATION>())).PartitionNumber as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_PARTITION_INFORMATION),
            "::",
            stringify!(PartitionNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PARTITION_INFORMATION>())).PartitionType as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_PARTITION_INFORMATION),
            "::",
            stringify!(PartitionType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PARTITION_INFORMATION>())).BootIndicator as *const _ as usize
        },
        25usize,
        concat!(
            "Offset of field: ",
            stringify!(_PARTITION_INFORMATION),
            "::",
            stringify!(BootIndicator)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PARTITION_INFORMATION>())).RecognizedPartition as *const _
                as usize
        },
        26usize,
        concat!(
            "Offset of field: ",
            stringify!(_PARTITION_INFORMATION),
            "::",
            stringify!(RecognizedPartition)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PARTITION_INFORMATION>())).RewritePartition as *const _ as usize
        },
        27usize,
        concat!(
            "Offset of field: ",
            stringify!(_PARTITION_INFORMATION),
            "::",
            stringify!(RewritePartition)
        )
    );
}
pub type PARTITION_INFORMATION = _PARTITION_INFORMATION;
pub type PPARTITION_INFORMATION = *mut _PARTITION_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SET_PARTITION_INFORMATION {
    pub PartitionType: BYTE,
}
#[test]
fn bindgen_test_layout__SET_PARTITION_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_SET_PARTITION_INFORMATION>(),
        1usize,
        concat!("Size of: ", stringify!(_SET_PARTITION_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_SET_PARTITION_INFORMATION>(),
        1usize,
        concat!("Alignment of ", stringify!(_SET_PARTITION_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SET_PARTITION_INFORMATION>())).PartitionType as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SET_PARTITION_INFORMATION),
            "::",
            stringify!(PartitionType)
        )
    );
}
pub type SET_PARTITION_INFORMATION = _SET_PARTITION_INFORMATION;
pub type PSET_PARTITION_INFORMATION = *mut _SET_PARTITION_INFORMATION;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _DRIVE_LAYOUT_INFORMATION {
    pub PartitionCount: DWORD,
    pub Signature: DWORD,
    pub PartitionEntry: [PARTITION_INFORMATION; 1usize],
}
#[test]
fn bindgen_test_layout__DRIVE_LAYOUT_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_DRIVE_LAYOUT_INFORMATION>(),
        40usize,
        concat!("Size of: ", stringify!(_DRIVE_LAYOUT_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_DRIVE_LAYOUT_INFORMATION>(),
        8usize,
        concat!("Alignment of ", stringify!(_DRIVE_LAYOUT_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVE_LAYOUT_INFORMATION>())).PartitionCount as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVE_LAYOUT_INFORMATION),
            "::",
            stringify!(PartitionCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVE_LAYOUT_INFORMATION>())).Signature as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVE_LAYOUT_INFORMATION),
            "::",
            stringify!(Signature)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVE_LAYOUT_INFORMATION>())).PartitionEntry as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVE_LAYOUT_INFORMATION),
            "::",
            stringify!(PartitionEntry)
        )
    );
}
pub type DRIVE_LAYOUT_INFORMATION = _DRIVE_LAYOUT_INFORMATION;
pub type PDRIVE_LAYOUT_INFORMATION = *mut _DRIVE_LAYOUT_INFORMATION;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _VERIFY_INFORMATION {
    pub StartingOffset: LARGE_INTEGER,
    pub Length: DWORD,
}
#[test]
fn bindgen_test_layout__VERIFY_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_VERIFY_INFORMATION>(),
        16usize,
        concat!("Size of: ", stringify!(_VERIFY_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_VERIFY_INFORMATION>(),
        8usize,
        concat!("Alignment of ", stringify!(_VERIFY_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_VERIFY_INFORMATION>())).StartingOffset as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_VERIFY_INFORMATION),
            "::",
            stringify!(StartingOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_VERIFY_INFORMATION>())).Length as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_VERIFY_INFORMATION),
            "::",
            stringify!(Length)
        )
    );
}
pub type VERIFY_INFORMATION = _VERIFY_INFORMATION;
pub type PVERIFY_INFORMATION = *mut _VERIFY_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _REASSIGN_BLOCKS {
    pub Reserved: WORD,
    pub Count: WORD,
    pub BlockNumber: [DWORD; 1usize],
}
#[test]
fn bindgen_test_layout__REASSIGN_BLOCKS() {
    assert_eq!(
        ::std::mem::size_of::<_REASSIGN_BLOCKS>(),
        8usize,
        concat!("Size of: ", stringify!(_REASSIGN_BLOCKS))
    );
    assert_eq!(
        ::std::mem::align_of::<_REASSIGN_BLOCKS>(),
        4usize,
        concat!("Alignment of ", stringify!(_REASSIGN_BLOCKS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_REASSIGN_BLOCKS>())).Reserved as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_REASSIGN_BLOCKS),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_REASSIGN_BLOCKS>())).Count as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_REASSIGN_BLOCKS),
            "::",
            stringify!(Count)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_REASSIGN_BLOCKS>())).BlockNumber as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_REASSIGN_BLOCKS),
            "::",
            stringify!(BlockNumber)
        )
    );
}
pub type REASSIGN_BLOCKS = _REASSIGN_BLOCKS;
pub type PREASSIGN_BLOCKS = *mut _REASSIGN_BLOCKS;
#[repr(C, packed)]
#[derive(Copy, Clone)]
pub struct _REASSIGN_BLOCKS_EX {
    pub Reserved: WORD,
    pub Count: WORD,
    pub BlockNumber: [LARGE_INTEGER; 1usize],
}
#[test]
fn bindgen_test_layout__REASSIGN_BLOCKS_EX() {
    assert_eq!(
        ::std::mem::size_of::<_REASSIGN_BLOCKS_EX>(),
        12usize,
        concat!("Size of: ", stringify!(_REASSIGN_BLOCKS_EX))
    );
    assert_eq!(
        ::std::mem::align_of::<_REASSIGN_BLOCKS_EX>(),
        1usize,
        concat!("Alignment of ", stringify!(_REASSIGN_BLOCKS_EX))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_REASSIGN_BLOCKS_EX>())).Reserved as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_REASSIGN_BLOCKS_EX),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_REASSIGN_BLOCKS_EX>())).Count as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_REASSIGN_BLOCKS_EX),
            "::",
            stringify!(Count)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_REASSIGN_BLOCKS_EX>())).BlockNumber as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_REASSIGN_BLOCKS_EX),
            "::",
            stringify!(BlockNumber)
        )
    );
}
pub type REASSIGN_BLOCKS_EX = _REASSIGN_BLOCKS_EX;
pub type PREASSIGN_BLOCKS_EX = *mut _REASSIGN_BLOCKS_EX;
pub const _PARTITION_STYLE_PARTITION_STYLE_MBR: _PARTITION_STYLE = 0;
pub const _PARTITION_STYLE_PARTITION_STYLE_GPT: _PARTITION_STYLE = 1;
pub const _PARTITION_STYLE_PARTITION_STYLE_RAW: _PARTITION_STYLE = 2;
pub type _PARTITION_STYLE = ::std::os::raw::c_int;
pub use self::_PARTITION_STYLE as PARTITION_STYLE;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PARTITION_INFORMATION_GPT {
    pub PartitionType: GUID,
    pub PartitionId: GUID,
    pub Attributes: DWORD64,
    pub Name: [WCHAR; 36usize],
}
#[test]
fn bindgen_test_layout__PARTITION_INFORMATION_GPT() {
    assert_eq!(
        ::std::mem::size_of::<_PARTITION_INFORMATION_GPT>(),
        112usize,
        concat!("Size of: ", stringify!(_PARTITION_INFORMATION_GPT))
    );
    assert_eq!(
        ::std::mem::align_of::<_PARTITION_INFORMATION_GPT>(),
        8usize,
        concat!("Alignment of ", stringify!(_PARTITION_INFORMATION_GPT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PARTITION_INFORMATION_GPT>())).PartitionType as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PARTITION_INFORMATION_GPT),
            "::",
            stringify!(PartitionType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PARTITION_INFORMATION_GPT>())).PartitionId as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PARTITION_INFORMATION_GPT),
            "::",
            stringify!(PartitionId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PARTITION_INFORMATION_GPT>())).Attributes as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_PARTITION_INFORMATION_GPT),
            "::",
            stringify!(Attributes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PARTITION_INFORMATION_GPT>())).Name as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_PARTITION_INFORMATION_GPT),
            "::",
            stringify!(Name)
        )
    );
}
pub type PARTITION_INFORMATION_GPT = _PARTITION_INFORMATION_GPT;
pub type PPARTITION_INFORMATION_GPT = *mut _PARTITION_INFORMATION_GPT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PARTITION_INFORMATION_MBR {
    pub PartitionType: BYTE,
    pub BootIndicator: BOOLEAN,
    pub RecognizedPartition: BOOLEAN,
    pub HiddenSectors: DWORD,
    pub PartitionId: GUID,
}
#[test]
fn bindgen_test_layout__PARTITION_INFORMATION_MBR() {
    assert_eq!(
        ::std::mem::size_of::<_PARTITION_INFORMATION_MBR>(),
        24usize,
        concat!("Size of: ", stringify!(_PARTITION_INFORMATION_MBR))
    );
    assert_eq!(
        ::std::mem::align_of::<_PARTITION_INFORMATION_MBR>(),
        4usize,
        concat!("Alignment of ", stringify!(_PARTITION_INFORMATION_MBR))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PARTITION_INFORMATION_MBR>())).PartitionType as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PARTITION_INFORMATION_MBR),
            "::",
            stringify!(PartitionType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PARTITION_INFORMATION_MBR>())).BootIndicator as *const _
                as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_PARTITION_INFORMATION_MBR),
            "::",
            stringify!(BootIndicator)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PARTITION_INFORMATION_MBR>())).RecognizedPartition as *const _
                as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_PARTITION_INFORMATION_MBR),
            "::",
            stringify!(RecognizedPartition)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PARTITION_INFORMATION_MBR>())).HiddenSectors as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PARTITION_INFORMATION_MBR),
            "::",
            stringify!(HiddenSectors)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PARTITION_INFORMATION_MBR>())).PartitionId as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PARTITION_INFORMATION_MBR),
            "::",
            stringify!(PartitionId)
        )
    );
}
pub type PARTITION_INFORMATION_MBR = _PARTITION_INFORMATION_MBR;
pub type PPARTITION_INFORMATION_MBR = *mut _PARTITION_INFORMATION_MBR;
pub type SET_PARTITION_INFORMATION_MBR = SET_PARTITION_INFORMATION;
pub type SET_PARTITION_INFORMATION_GPT = PARTITION_INFORMATION_GPT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _SET_PARTITION_INFORMATION_EX {
    pub PartitionStyle: PARTITION_STYLE,
    pub __bindgen_anon_1: _SET_PARTITION_INFORMATION_EX__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _SET_PARTITION_INFORMATION_EX__bindgen_ty_1 {
    pub Mbr: SET_PARTITION_INFORMATION_MBR,
    pub Gpt: SET_PARTITION_INFORMATION_GPT,
    _bindgen_union_align: [u64; 14usize],
}
#[test]
fn bindgen_test_layout__SET_PARTITION_INFORMATION_EX__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_SET_PARTITION_INFORMATION_EX__bindgen_ty_1>(),
        112usize,
        concat!(
            "Size of: ",
            stringify!(_SET_PARTITION_INFORMATION_EX__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_SET_PARTITION_INFORMATION_EX__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_SET_PARTITION_INFORMATION_EX__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SET_PARTITION_INFORMATION_EX__bindgen_ty_1>())).Mbr as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SET_PARTITION_INFORMATION_EX__bindgen_ty_1),
            "::",
            stringify!(Mbr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SET_PARTITION_INFORMATION_EX__bindgen_ty_1>())).Gpt as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SET_PARTITION_INFORMATION_EX__bindgen_ty_1),
            "::",
            stringify!(Gpt)
        )
    );
}
#[test]
fn bindgen_test_layout__SET_PARTITION_INFORMATION_EX() {
    assert_eq!(
        ::std::mem::size_of::<_SET_PARTITION_INFORMATION_EX>(),
        120usize,
        concat!("Size of: ", stringify!(_SET_PARTITION_INFORMATION_EX))
    );
    assert_eq!(
        ::std::mem::align_of::<_SET_PARTITION_INFORMATION_EX>(),
        8usize,
        concat!("Alignment of ", stringify!(_SET_PARTITION_INFORMATION_EX))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SET_PARTITION_INFORMATION_EX>())).PartitionStyle as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SET_PARTITION_INFORMATION_EX),
            "::",
            stringify!(PartitionStyle)
        )
    );
}
pub type SET_PARTITION_INFORMATION_EX = _SET_PARTITION_INFORMATION_EX;
pub type PSET_PARTITION_INFORMATION_EX = *mut _SET_PARTITION_INFORMATION_EX;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CREATE_DISK_GPT {
    pub DiskId: GUID,
    pub MaxPartitionCount: DWORD,
}
#[test]
fn bindgen_test_layout__CREATE_DISK_GPT() {
    assert_eq!(
        ::std::mem::size_of::<_CREATE_DISK_GPT>(),
        20usize,
        concat!("Size of: ", stringify!(_CREATE_DISK_GPT))
    );
    assert_eq!(
        ::std::mem::align_of::<_CREATE_DISK_GPT>(),
        4usize,
        concat!("Alignment of ", stringify!(_CREATE_DISK_GPT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CREATE_DISK_GPT>())).DiskId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CREATE_DISK_GPT),
            "::",
            stringify!(DiskId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CREATE_DISK_GPT>())).MaxPartitionCount as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CREATE_DISK_GPT),
            "::",
            stringify!(MaxPartitionCount)
        )
    );
}
pub type CREATE_DISK_GPT = _CREATE_DISK_GPT;
pub type PCREATE_DISK_GPT = *mut _CREATE_DISK_GPT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CREATE_DISK_MBR {
    pub Signature: DWORD,
}
#[test]
fn bindgen_test_layout__CREATE_DISK_MBR() {
    assert_eq!(
        ::std::mem::size_of::<_CREATE_DISK_MBR>(),
        4usize,
        concat!("Size of: ", stringify!(_CREATE_DISK_MBR))
    );
    assert_eq!(
        ::std::mem::align_of::<_CREATE_DISK_MBR>(),
        4usize,
        concat!("Alignment of ", stringify!(_CREATE_DISK_MBR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CREATE_DISK_MBR>())).Signature as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CREATE_DISK_MBR),
            "::",
            stringify!(Signature)
        )
    );
}
pub type CREATE_DISK_MBR = _CREATE_DISK_MBR;
pub type PCREATE_DISK_MBR = *mut _CREATE_DISK_MBR;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CREATE_DISK {
    pub PartitionStyle: PARTITION_STYLE,
    pub __bindgen_anon_1: _CREATE_DISK__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _CREATE_DISK__bindgen_ty_1 {
    pub Mbr: CREATE_DISK_MBR,
    pub Gpt: CREATE_DISK_GPT,
    _bindgen_union_align: [u32; 5usize],
}
#[test]
fn bindgen_test_layout__CREATE_DISK__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_CREATE_DISK__bindgen_ty_1>(),
        20usize,
        concat!("Size of: ", stringify!(_CREATE_DISK__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_CREATE_DISK__bindgen_ty_1>(),
        4usize,
        concat!("Alignment of ", stringify!(_CREATE_DISK__bindgen_ty_1))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CREATE_DISK__bindgen_ty_1>())).Mbr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CREATE_DISK__bindgen_ty_1),
            "::",
            stringify!(Mbr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CREATE_DISK__bindgen_ty_1>())).Gpt as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CREATE_DISK__bindgen_ty_1),
            "::",
            stringify!(Gpt)
        )
    );
}
#[test]
fn bindgen_test_layout__CREATE_DISK() {
    assert_eq!(
        ::std::mem::size_of::<_CREATE_DISK>(),
        24usize,
        concat!("Size of: ", stringify!(_CREATE_DISK))
    );
    assert_eq!(
        ::std::mem::align_of::<_CREATE_DISK>(),
        4usize,
        concat!("Alignment of ", stringify!(_CREATE_DISK))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CREATE_DISK>())).PartitionStyle as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CREATE_DISK),
            "::",
            stringify!(PartitionStyle)
        )
    );
}
pub type CREATE_DISK = _CREATE_DISK;
pub type PCREATE_DISK = *mut _CREATE_DISK;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _GET_LENGTH_INFORMATION {
    pub Length: LARGE_INTEGER,
}
#[test]
fn bindgen_test_layout__GET_LENGTH_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_GET_LENGTH_INFORMATION>(),
        8usize,
        concat!("Size of: ", stringify!(_GET_LENGTH_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_GET_LENGTH_INFORMATION>(),
        8usize,
        concat!("Alignment of ", stringify!(_GET_LENGTH_INFORMATION))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GET_LENGTH_INFORMATION>())).Length as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_LENGTH_INFORMATION),
            "::",
            stringify!(Length)
        )
    );
}
pub type GET_LENGTH_INFORMATION = _GET_LENGTH_INFORMATION;
pub type PGET_LENGTH_INFORMATION = *mut _GET_LENGTH_INFORMATION;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PARTITION_INFORMATION_EX {
    pub PartitionStyle: PARTITION_STYLE,
    pub StartingOffset: LARGE_INTEGER,
    pub PartitionLength: LARGE_INTEGER,
    pub PartitionNumber: DWORD,
    pub RewritePartition: BOOLEAN,
    pub IsServicePartition: BOOLEAN,
    pub __bindgen_anon_1: _PARTITION_INFORMATION_EX__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PARTITION_INFORMATION_EX__bindgen_ty_1 {
    pub Mbr: PARTITION_INFORMATION_MBR,
    pub Gpt: PARTITION_INFORMATION_GPT,
    _bindgen_union_align: [u64; 14usize],
}
#[test]
fn bindgen_test_layout__PARTITION_INFORMATION_EX__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PARTITION_INFORMATION_EX__bindgen_ty_1>(),
        112usize,
        concat!(
            "Size of: ",
            stringify!(_PARTITION_INFORMATION_EX__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PARTITION_INFORMATION_EX__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PARTITION_INFORMATION_EX__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PARTITION_INFORMATION_EX__bindgen_ty_1>())).Mbr as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PARTITION_INFORMATION_EX__bindgen_ty_1),
            "::",
            stringify!(Mbr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PARTITION_INFORMATION_EX__bindgen_ty_1>())).Gpt as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PARTITION_INFORMATION_EX__bindgen_ty_1),
            "::",
            stringify!(Gpt)
        )
    );
}
#[test]
fn bindgen_test_layout__PARTITION_INFORMATION_EX() {
    assert_eq!(
        ::std::mem::size_of::<_PARTITION_INFORMATION_EX>(),
        144usize,
        concat!("Size of: ", stringify!(_PARTITION_INFORMATION_EX))
    );
    assert_eq!(
        ::std::mem::align_of::<_PARTITION_INFORMATION_EX>(),
        8usize,
        concat!("Alignment of ", stringify!(_PARTITION_INFORMATION_EX))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PARTITION_INFORMATION_EX>())).PartitionStyle as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PARTITION_INFORMATION_EX),
            "::",
            stringify!(PartitionStyle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PARTITION_INFORMATION_EX>())).StartingOffset as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PARTITION_INFORMATION_EX),
            "::",
            stringify!(StartingOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PARTITION_INFORMATION_EX>())).PartitionLength as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PARTITION_INFORMATION_EX),
            "::",
            stringify!(PartitionLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PARTITION_INFORMATION_EX>())).PartitionNumber as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_PARTITION_INFORMATION_EX),
            "::",
            stringify!(PartitionNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PARTITION_INFORMATION_EX>())).RewritePartition as *const _
                as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_PARTITION_INFORMATION_EX),
            "::",
            stringify!(RewritePartition)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PARTITION_INFORMATION_EX>())).IsServicePartition as *const _
                as usize
        },
        29usize,
        concat!(
            "Offset of field: ",
            stringify!(_PARTITION_INFORMATION_EX),
            "::",
            stringify!(IsServicePartition)
        )
    );
}
pub type PARTITION_INFORMATION_EX = _PARTITION_INFORMATION_EX;
pub type PPARTITION_INFORMATION_EX = *mut _PARTITION_INFORMATION_EX;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _DRIVE_LAYOUT_INFORMATION_GPT {
    pub DiskId: GUID,
    pub StartingUsableOffset: LARGE_INTEGER,
    pub UsableLength: LARGE_INTEGER,
    pub MaxPartitionCount: DWORD,
}
#[test]
fn bindgen_test_layout__DRIVE_LAYOUT_INFORMATION_GPT() {
    assert_eq!(
        ::std::mem::size_of::<_DRIVE_LAYOUT_INFORMATION_GPT>(),
        40usize,
        concat!("Size of: ", stringify!(_DRIVE_LAYOUT_INFORMATION_GPT))
    );
    assert_eq!(
        ::std::mem::align_of::<_DRIVE_LAYOUT_INFORMATION_GPT>(),
        8usize,
        concat!("Alignment of ", stringify!(_DRIVE_LAYOUT_INFORMATION_GPT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVE_LAYOUT_INFORMATION_GPT>())).DiskId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVE_LAYOUT_INFORMATION_GPT),
            "::",
            stringify!(DiskId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVE_LAYOUT_INFORMATION_GPT>())).StartingUsableOffset
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVE_LAYOUT_INFORMATION_GPT),
            "::",
            stringify!(StartingUsableOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVE_LAYOUT_INFORMATION_GPT>())).UsableLength as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVE_LAYOUT_INFORMATION_GPT),
            "::",
            stringify!(UsableLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVE_LAYOUT_INFORMATION_GPT>())).MaxPartitionCount as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVE_LAYOUT_INFORMATION_GPT),
            "::",
            stringify!(MaxPartitionCount)
        )
    );
}
pub type DRIVE_LAYOUT_INFORMATION_GPT = _DRIVE_LAYOUT_INFORMATION_GPT;
pub type PDRIVE_LAYOUT_INFORMATION_GPT = *mut _DRIVE_LAYOUT_INFORMATION_GPT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DRIVE_LAYOUT_INFORMATION_MBR {
    pub Signature: DWORD,
    pub CheckSum: DWORD,
}
#[test]
fn bindgen_test_layout__DRIVE_LAYOUT_INFORMATION_MBR() {
    assert_eq!(
        ::std::mem::size_of::<_DRIVE_LAYOUT_INFORMATION_MBR>(),
        8usize,
        concat!("Size of: ", stringify!(_DRIVE_LAYOUT_INFORMATION_MBR))
    );
    assert_eq!(
        ::std::mem::align_of::<_DRIVE_LAYOUT_INFORMATION_MBR>(),
        4usize,
        concat!("Alignment of ", stringify!(_DRIVE_LAYOUT_INFORMATION_MBR))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVE_LAYOUT_INFORMATION_MBR>())).Signature as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVE_LAYOUT_INFORMATION_MBR),
            "::",
            stringify!(Signature)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVE_LAYOUT_INFORMATION_MBR>())).CheckSum as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVE_LAYOUT_INFORMATION_MBR),
            "::",
            stringify!(CheckSum)
        )
    );
}
pub type DRIVE_LAYOUT_INFORMATION_MBR = _DRIVE_LAYOUT_INFORMATION_MBR;
pub type PDRIVE_LAYOUT_INFORMATION_MBR = *mut _DRIVE_LAYOUT_INFORMATION_MBR;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _DRIVE_LAYOUT_INFORMATION_EX {
    pub PartitionStyle: DWORD,
    pub PartitionCount: DWORD,
    pub __bindgen_anon_1: _DRIVE_LAYOUT_INFORMATION_EX__bindgen_ty_1,
    pub PartitionEntry: [PARTITION_INFORMATION_EX; 1usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _DRIVE_LAYOUT_INFORMATION_EX__bindgen_ty_1 {
    pub Mbr: DRIVE_LAYOUT_INFORMATION_MBR,
    pub Gpt: DRIVE_LAYOUT_INFORMATION_GPT,
    _bindgen_union_align: [u64; 5usize],
}
#[test]
fn bindgen_test_layout__DRIVE_LAYOUT_INFORMATION_EX__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_DRIVE_LAYOUT_INFORMATION_EX__bindgen_ty_1>(),
        40usize,
        concat!(
            "Size of: ",
            stringify!(_DRIVE_LAYOUT_INFORMATION_EX__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DRIVE_LAYOUT_INFORMATION_EX__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_DRIVE_LAYOUT_INFORMATION_EX__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVE_LAYOUT_INFORMATION_EX__bindgen_ty_1>())).Mbr as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVE_LAYOUT_INFORMATION_EX__bindgen_ty_1),
            "::",
            stringify!(Mbr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVE_LAYOUT_INFORMATION_EX__bindgen_ty_1>())).Gpt as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVE_LAYOUT_INFORMATION_EX__bindgen_ty_1),
            "::",
            stringify!(Gpt)
        )
    );
}
#[test]
fn bindgen_test_layout__DRIVE_LAYOUT_INFORMATION_EX() {
    assert_eq!(
        ::std::mem::size_of::<_DRIVE_LAYOUT_INFORMATION_EX>(),
        192usize,
        concat!("Size of: ", stringify!(_DRIVE_LAYOUT_INFORMATION_EX))
    );
    assert_eq!(
        ::std::mem::align_of::<_DRIVE_LAYOUT_INFORMATION_EX>(),
        8usize,
        concat!("Alignment of ", stringify!(_DRIVE_LAYOUT_INFORMATION_EX))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVE_LAYOUT_INFORMATION_EX>())).PartitionStyle as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVE_LAYOUT_INFORMATION_EX),
            "::",
            stringify!(PartitionStyle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVE_LAYOUT_INFORMATION_EX>())).PartitionCount as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVE_LAYOUT_INFORMATION_EX),
            "::",
            stringify!(PartitionCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVE_LAYOUT_INFORMATION_EX>())).PartitionEntry as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVE_LAYOUT_INFORMATION_EX),
            "::",
            stringify!(PartitionEntry)
        )
    );
}
pub type DRIVE_LAYOUT_INFORMATION_EX = _DRIVE_LAYOUT_INFORMATION_EX;
pub type PDRIVE_LAYOUT_INFORMATION_EX = *mut _DRIVE_LAYOUT_INFORMATION_EX;
pub const _DETECTION_TYPE_DetectNone: _DETECTION_TYPE = 0;
pub const _DETECTION_TYPE_DetectInt13: _DETECTION_TYPE = 1;
pub const _DETECTION_TYPE_DetectExInt13: _DETECTION_TYPE = 2;
pub type _DETECTION_TYPE = ::std::os::raw::c_int;
pub use self::_DETECTION_TYPE as DETECTION_TYPE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DISK_INT13_INFO {
    pub DriveSelect: WORD,
    pub MaxCylinders: DWORD,
    pub SectorsPerTrack: WORD,
    pub MaxHeads: WORD,
    pub NumberDrives: WORD,
}
#[test]
fn bindgen_test_layout__DISK_INT13_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_DISK_INT13_INFO>(),
        16usize,
        concat!("Size of: ", stringify!(_DISK_INT13_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_DISK_INT13_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_DISK_INT13_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_INT13_INFO>())).DriveSelect as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_INT13_INFO),
            "::",
            stringify!(DriveSelect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_INT13_INFO>())).MaxCylinders as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_INT13_INFO),
            "::",
            stringify!(MaxCylinders)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_INT13_INFO>())).SectorsPerTrack as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_INT13_INFO),
            "::",
            stringify!(SectorsPerTrack)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_INT13_INFO>())).MaxHeads as *const _ as usize },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_INT13_INFO),
            "::",
            stringify!(MaxHeads)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_INT13_INFO>())).NumberDrives as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_INT13_INFO),
            "::",
            stringify!(NumberDrives)
        )
    );
}
pub type DISK_INT13_INFO = _DISK_INT13_INFO;
pub type PDISK_INT13_INFO = *mut _DISK_INT13_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DISK_EX_INT13_INFO {
    pub ExBufferSize: WORD,
    pub ExFlags: WORD,
    pub ExCylinders: DWORD,
    pub ExHeads: DWORD,
    pub ExSectorsPerTrack: DWORD,
    pub ExSectorsPerDrive: DWORD64,
    pub ExSectorSize: WORD,
    pub ExReserved: WORD,
}
#[test]
fn bindgen_test_layout__DISK_EX_INT13_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_DISK_EX_INT13_INFO>(),
        32usize,
        concat!("Size of: ", stringify!(_DISK_EX_INT13_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_DISK_EX_INT13_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_DISK_EX_INT13_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_EX_INT13_INFO>())).ExBufferSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_EX_INT13_INFO),
            "::",
            stringify!(ExBufferSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_EX_INT13_INFO>())).ExFlags as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_EX_INT13_INFO),
            "::",
            stringify!(ExFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_EX_INT13_INFO>())).ExCylinders as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_EX_INT13_INFO),
            "::",
            stringify!(ExCylinders)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_EX_INT13_INFO>())).ExHeads as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_EX_INT13_INFO),
            "::",
            stringify!(ExHeads)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_EX_INT13_INFO>())).ExSectorsPerTrack as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_EX_INT13_INFO),
            "::",
            stringify!(ExSectorsPerTrack)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_EX_INT13_INFO>())).ExSectorsPerDrive as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_EX_INT13_INFO),
            "::",
            stringify!(ExSectorsPerDrive)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_EX_INT13_INFO>())).ExSectorSize as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_EX_INT13_INFO),
            "::",
            stringify!(ExSectorSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_EX_INT13_INFO>())).ExReserved as *const _ as usize },
        26usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_EX_INT13_INFO),
            "::",
            stringify!(ExReserved)
        )
    );
}
pub type DISK_EX_INT13_INFO = _DISK_EX_INT13_INFO;
pub type PDISK_EX_INT13_INFO = *mut _DISK_EX_INT13_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _DISK_DETECTION_INFO {
    pub SizeOfDetectInfo: DWORD,
    pub DetectionType: DETECTION_TYPE,
    pub __bindgen_anon_1: _DISK_DETECTION_INFO__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _DISK_DETECTION_INFO__bindgen_ty_1 {
    pub __bindgen_anon_1: _DISK_DETECTION_INFO__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: [u64; 6usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DISK_DETECTION_INFO__bindgen_ty_1__bindgen_ty_1 {
    pub Int13: DISK_INT13_INFO,
    pub ExInt13: DISK_EX_INT13_INFO,
}
#[test]
fn bindgen_test_layout__DISK_DETECTION_INFO__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_DISK_DETECTION_INFO__bindgen_ty_1__bindgen_ty_1>(),
        48usize,
        concat!(
            "Size of: ",
            stringify!(_DISK_DETECTION_INFO__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DISK_DETECTION_INFO__bindgen_ty_1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_DISK_DETECTION_INFO__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_DETECTION_INFO__bindgen_ty_1__bindgen_ty_1>())).Int13
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_DETECTION_INFO__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Int13)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_DETECTION_INFO__bindgen_ty_1__bindgen_ty_1>())).ExInt13
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_DETECTION_INFO__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(ExInt13)
        )
    );
}
#[test]
fn bindgen_test_layout__DISK_DETECTION_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_DISK_DETECTION_INFO__bindgen_ty_1>(),
        48usize,
        concat!("Size of: ", stringify!(_DISK_DETECTION_INFO__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_DISK_DETECTION_INFO__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_DISK_DETECTION_INFO__bindgen_ty_1)
        )
    );
}
#[test]
fn bindgen_test_layout__DISK_DETECTION_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_DISK_DETECTION_INFO>(),
        56usize,
        concat!("Size of: ", stringify!(_DISK_DETECTION_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_DISK_DETECTION_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_DISK_DETECTION_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_DETECTION_INFO>())).SizeOfDetectInfo as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_DETECTION_INFO),
            "::",
            stringify!(SizeOfDetectInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_DETECTION_INFO>())).DetectionType as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_DETECTION_INFO),
            "::",
            stringify!(DetectionType)
        )
    );
}
pub type DISK_DETECTION_INFO = _DISK_DETECTION_INFO;
pub type PDISK_DETECTION_INFO = *mut _DISK_DETECTION_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _DISK_PARTITION_INFO {
    pub SizeOfPartitionInfo: DWORD,
    pub PartitionStyle: PARTITION_STYLE,
    pub __bindgen_anon_1: _DISK_PARTITION_INFO__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _DISK_PARTITION_INFO__bindgen_ty_1 {
    pub Mbr: _DISK_PARTITION_INFO__bindgen_ty_1__bindgen_ty_1,
    pub Gpt: _DISK_PARTITION_INFO__bindgen_ty_1__bindgen_ty_2,
    _bindgen_union_align: [u32; 4usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DISK_PARTITION_INFO__bindgen_ty_1__bindgen_ty_1 {
    pub Signature: DWORD,
    pub CheckSum: DWORD,
}
#[test]
fn bindgen_test_layout__DISK_PARTITION_INFO__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_DISK_PARTITION_INFO__bindgen_ty_1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_DISK_PARTITION_INFO__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DISK_PARTITION_INFO__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_DISK_PARTITION_INFO__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_PARTITION_INFO__bindgen_ty_1__bindgen_ty_1>())).Signature
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_PARTITION_INFO__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Signature)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_PARTITION_INFO__bindgen_ty_1__bindgen_ty_1>())).CheckSum
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_PARTITION_INFO__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(CheckSum)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DISK_PARTITION_INFO__bindgen_ty_1__bindgen_ty_2 {
    pub DiskId: GUID,
}
#[test]
fn bindgen_test_layout__DISK_PARTITION_INFO__bindgen_ty_1__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_DISK_PARTITION_INFO__bindgen_ty_1__bindgen_ty_2>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_DISK_PARTITION_INFO__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DISK_PARTITION_INFO__bindgen_ty_1__bindgen_ty_2>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_DISK_PARTITION_INFO__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_PARTITION_INFO__bindgen_ty_1__bindgen_ty_2>())).DiskId
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_PARTITION_INFO__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(DiskId)
        )
    );
}
#[test]
fn bindgen_test_layout__DISK_PARTITION_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_DISK_PARTITION_INFO__bindgen_ty_1>(),
        16usize,
        concat!("Size of: ", stringify!(_DISK_PARTITION_INFO__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_DISK_PARTITION_INFO__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_DISK_PARTITION_INFO__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_PARTITION_INFO__bindgen_ty_1>())).Mbr as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_PARTITION_INFO__bindgen_ty_1),
            "::",
            stringify!(Mbr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_PARTITION_INFO__bindgen_ty_1>())).Gpt as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_PARTITION_INFO__bindgen_ty_1),
            "::",
            stringify!(Gpt)
        )
    );
}
#[test]
fn bindgen_test_layout__DISK_PARTITION_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_DISK_PARTITION_INFO>(),
        24usize,
        concat!("Size of: ", stringify!(_DISK_PARTITION_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_DISK_PARTITION_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_DISK_PARTITION_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_PARTITION_INFO>())).SizeOfPartitionInfo as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_PARTITION_INFO),
            "::",
            stringify!(SizeOfPartitionInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_PARTITION_INFO>())).PartitionStyle as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_PARTITION_INFO),
            "::",
            stringify!(PartitionStyle)
        )
    );
}
pub type DISK_PARTITION_INFO = _DISK_PARTITION_INFO;
pub type PDISK_PARTITION_INFO = *mut _DISK_PARTITION_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _DISK_GEOMETRY_EX {
    pub Geometry: DISK_GEOMETRY,
    pub DiskSize: LARGE_INTEGER,
    pub Data: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout__DISK_GEOMETRY_EX() {
    assert_eq!(
        ::std::mem::size_of::<_DISK_GEOMETRY_EX>(),
        40usize,
        concat!("Size of: ", stringify!(_DISK_GEOMETRY_EX))
    );
    assert_eq!(
        ::std::mem::align_of::<_DISK_GEOMETRY_EX>(),
        8usize,
        concat!("Alignment of ", stringify!(_DISK_GEOMETRY_EX))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_GEOMETRY_EX>())).Geometry as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_GEOMETRY_EX),
            "::",
            stringify!(Geometry)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_GEOMETRY_EX>())).DiskSize as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_GEOMETRY_EX),
            "::",
            stringify!(DiskSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_GEOMETRY_EX>())).Data as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_GEOMETRY_EX),
            "::",
            stringify!(Data)
        )
    );
}
pub type DISK_GEOMETRY_EX = _DISK_GEOMETRY_EX;
pub type PDISK_GEOMETRY_EX = *mut _DISK_GEOMETRY_EX;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DISK_CONTROLLER_NUMBER {
    pub ControllerNumber: DWORD,
    pub DiskNumber: DWORD,
}
#[test]
fn bindgen_test_layout__DISK_CONTROLLER_NUMBER() {
    assert_eq!(
        ::std::mem::size_of::<_DISK_CONTROLLER_NUMBER>(),
        8usize,
        concat!("Size of: ", stringify!(_DISK_CONTROLLER_NUMBER))
    );
    assert_eq!(
        ::std::mem::align_of::<_DISK_CONTROLLER_NUMBER>(),
        4usize,
        concat!("Alignment of ", stringify!(_DISK_CONTROLLER_NUMBER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_CONTROLLER_NUMBER>())).ControllerNumber as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_CONTROLLER_NUMBER),
            "::",
            stringify!(ControllerNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_CONTROLLER_NUMBER>())).DiskNumber as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_CONTROLLER_NUMBER),
            "::",
            stringify!(DiskNumber)
        )
    );
}
pub type DISK_CONTROLLER_NUMBER = _DISK_CONTROLLER_NUMBER;
pub type PDISK_CONTROLLER_NUMBER = *mut _DISK_CONTROLLER_NUMBER;
pub const DISK_CACHE_RETENTION_PRIORITY_EqualPriority: DISK_CACHE_RETENTION_PRIORITY = 0;
pub const DISK_CACHE_RETENTION_PRIORITY_KeepPrefetchedData: DISK_CACHE_RETENTION_PRIORITY = 1;
pub const DISK_CACHE_RETENTION_PRIORITY_KeepReadData: DISK_CACHE_RETENTION_PRIORITY = 2;
pub type DISK_CACHE_RETENTION_PRIORITY = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _DISK_CACHE_INFORMATION {
    pub ParametersSavable: BOOLEAN,
    pub ReadCacheEnabled: BOOLEAN,
    pub WriteCacheEnabled: BOOLEAN,
    pub ReadRetentionPriority: DISK_CACHE_RETENTION_PRIORITY,
    pub WriteRetentionPriority: DISK_CACHE_RETENTION_PRIORITY,
    pub DisablePrefetchTransferLength: WORD,
    pub PrefetchScalar: BOOLEAN,
    pub __bindgen_anon_1: _DISK_CACHE_INFORMATION__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _DISK_CACHE_INFORMATION__bindgen_ty_1 {
    pub ScalarPrefetch: _DISK_CACHE_INFORMATION__bindgen_ty_1__bindgen_ty_1,
    pub BlockPrefetch: _DISK_CACHE_INFORMATION__bindgen_ty_1__bindgen_ty_2,
    _bindgen_union_align: [u16; 3usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DISK_CACHE_INFORMATION__bindgen_ty_1__bindgen_ty_1 {
    pub Minimum: WORD,
    pub Maximum: WORD,
    pub MaximumBlocks: WORD,
}
#[test]
fn bindgen_test_layout__DISK_CACHE_INFORMATION__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_DISK_CACHE_INFORMATION__bindgen_ty_1__bindgen_ty_1>(),
        6usize,
        concat!(
            "Size of: ",
            stringify!(_DISK_CACHE_INFORMATION__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DISK_CACHE_INFORMATION__bindgen_ty_1__bindgen_ty_1>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(_DISK_CACHE_INFORMATION__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_CACHE_INFORMATION__bindgen_ty_1__bindgen_ty_1>())).Minimum
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_CACHE_INFORMATION__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Minimum)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_CACHE_INFORMATION__bindgen_ty_1__bindgen_ty_1>())).Maximum
                as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_CACHE_INFORMATION__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Maximum)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_CACHE_INFORMATION__bindgen_ty_1__bindgen_ty_1>()))
                .MaximumBlocks as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_CACHE_INFORMATION__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(MaximumBlocks)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DISK_CACHE_INFORMATION__bindgen_ty_1__bindgen_ty_2 {
    pub Minimum: WORD,
    pub Maximum: WORD,
}
#[test]
fn bindgen_test_layout__DISK_CACHE_INFORMATION__bindgen_ty_1__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_DISK_CACHE_INFORMATION__bindgen_ty_1__bindgen_ty_2>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_DISK_CACHE_INFORMATION__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DISK_CACHE_INFORMATION__bindgen_ty_1__bindgen_ty_2>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(_DISK_CACHE_INFORMATION__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_CACHE_INFORMATION__bindgen_ty_1__bindgen_ty_2>())).Minimum
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_CACHE_INFORMATION__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(Minimum)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_CACHE_INFORMATION__bindgen_ty_1__bindgen_ty_2>())).Maximum
                as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_CACHE_INFORMATION__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(Maximum)
        )
    );
}
#[test]
fn bindgen_test_layout__DISK_CACHE_INFORMATION__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_DISK_CACHE_INFORMATION__bindgen_ty_1>(),
        6usize,
        concat!(
            "Size of: ",
            stringify!(_DISK_CACHE_INFORMATION__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_DISK_CACHE_INFORMATION__bindgen_ty_1>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(_DISK_CACHE_INFORMATION__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_CACHE_INFORMATION__bindgen_ty_1>())).ScalarPrefetch
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_CACHE_INFORMATION__bindgen_ty_1),
            "::",
            stringify!(ScalarPrefetch)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_CACHE_INFORMATION__bindgen_ty_1>())).BlockPrefetch
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_CACHE_INFORMATION__bindgen_ty_1),
            "::",
            stringify!(BlockPrefetch)
        )
    );
}
#[test]
fn bindgen_test_layout__DISK_CACHE_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_DISK_CACHE_INFORMATION>(),
        24usize,
        concat!("Size of: ", stringify!(_DISK_CACHE_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_DISK_CACHE_INFORMATION>(),
        4usize,
        concat!("Alignment of ", stringify!(_DISK_CACHE_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_CACHE_INFORMATION>())).ParametersSavable as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_CACHE_INFORMATION),
            "::",
            stringify!(ParametersSavable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_CACHE_INFORMATION>())).ReadCacheEnabled as *const _
                as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_CACHE_INFORMATION),
            "::",
            stringify!(ReadCacheEnabled)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_CACHE_INFORMATION>())).WriteCacheEnabled as *const _
                as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_CACHE_INFORMATION),
            "::",
            stringify!(WriteCacheEnabled)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_CACHE_INFORMATION>())).ReadRetentionPriority as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_CACHE_INFORMATION),
            "::",
            stringify!(ReadRetentionPriority)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_CACHE_INFORMATION>())).WriteRetentionPriority as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_CACHE_INFORMATION),
            "::",
            stringify!(WriteRetentionPriority)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_CACHE_INFORMATION>())).DisablePrefetchTransferLength
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_CACHE_INFORMATION),
            "::",
            stringify!(DisablePrefetchTransferLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_CACHE_INFORMATION>())).PrefetchScalar as *const _ as usize
        },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_CACHE_INFORMATION),
            "::",
            stringify!(PrefetchScalar)
        )
    );
}
pub type DISK_CACHE_INFORMATION = _DISK_CACHE_INFORMATION;
pub type PDISK_CACHE_INFORMATION = *mut _DISK_CACHE_INFORMATION;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _DISK_GROW_PARTITION {
    pub PartitionNumber: DWORD,
    pub BytesToGrow: LARGE_INTEGER,
}
#[test]
fn bindgen_test_layout__DISK_GROW_PARTITION() {
    assert_eq!(
        ::std::mem::size_of::<_DISK_GROW_PARTITION>(),
        16usize,
        concat!("Size of: ", stringify!(_DISK_GROW_PARTITION))
    );
    assert_eq!(
        ::std::mem::align_of::<_DISK_GROW_PARTITION>(),
        8usize,
        concat!("Alignment of ", stringify!(_DISK_GROW_PARTITION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_GROW_PARTITION>())).PartitionNumber as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_GROW_PARTITION),
            "::",
            stringify!(PartitionNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_GROW_PARTITION>())).BytesToGrow as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_GROW_PARTITION),
            "::",
            stringify!(BytesToGrow)
        )
    );
}
pub type DISK_GROW_PARTITION = _DISK_GROW_PARTITION;
pub type PDISK_GROW_PARTITION = *mut _DISK_GROW_PARTITION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _HISTOGRAM_BUCKET {
    pub Reads: DWORD,
    pub Writes: DWORD,
}
#[test]
fn bindgen_test_layout__HISTOGRAM_BUCKET() {
    assert_eq!(
        ::std::mem::size_of::<_HISTOGRAM_BUCKET>(),
        8usize,
        concat!("Size of: ", stringify!(_HISTOGRAM_BUCKET))
    );
    assert_eq!(
        ::std::mem::align_of::<_HISTOGRAM_BUCKET>(),
        4usize,
        concat!("Alignment of ", stringify!(_HISTOGRAM_BUCKET))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_HISTOGRAM_BUCKET>())).Reads as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_HISTOGRAM_BUCKET),
            "::",
            stringify!(Reads)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_HISTOGRAM_BUCKET>())).Writes as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_HISTOGRAM_BUCKET),
            "::",
            stringify!(Writes)
        )
    );
}
pub type HISTOGRAM_BUCKET = _HISTOGRAM_BUCKET;
pub type PHISTOGRAM_BUCKET = *mut _HISTOGRAM_BUCKET;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _DISK_HISTOGRAM {
    pub DiskSize: LARGE_INTEGER,
    pub Start: LARGE_INTEGER,
    pub End: LARGE_INTEGER,
    pub Average: LARGE_INTEGER,
    pub AverageRead: LARGE_INTEGER,
    pub AverageWrite: LARGE_INTEGER,
    pub Granularity: DWORD,
    pub Size: DWORD,
    pub ReadCount: DWORD,
    pub WriteCount: DWORD,
    pub Histogram: PHISTOGRAM_BUCKET,
}
#[test]
fn bindgen_test_layout__DISK_HISTOGRAM() {
    assert_eq!(
        ::std::mem::size_of::<_DISK_HISTOGRAM>(),
        72usize,
        concat!("Size of: ", stringify!(_DISK_HISTOGRAM))
    );
    assert_eq!(
        ::std::mem::align_of::<_DISK_HISTOGRAM>(),
        8usize,
        concat!("Alignment of ", stringify!(_DISK_HISTOGRAM))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_HISTOGRAM>())).DiskSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_HISTOGRAM),
            "::",
            stringify!(DiskSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_HISTOGRAM>())).Start as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_HISTOGRAM),
            "::",
            stringify!(Start)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_HISTOGRAM>())).End as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_HISTOGRAM),
            "::",
            stringify!(End)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_HISTOGRAM>())).Average as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_HISTOGRAM),
            "::",
            stringify!(Average)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_HISTOGRAM>())).AverageRead as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_HISTOGRAM),
            "::",
            stringify!(AverageRead)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_HISTOGRAM>())).AverageWrite as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_HISTOGRAM),
            "::",
            stringify!(AverageWrite)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_HISTOGRAM>())).Granularity as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_HISTOGRAM),
            "::",
            stringify!(Granularity)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_HISTOGRAM>())).Size as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_HISTOGRAM),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_HISTOGRAM>())).ReadCount as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_HISTOGRAM),
            "::",
            stringify!(ReadCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_HISTOGRAM>())).WriteCount as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_HISTOGRAM),
            "::",
            stringify!(WriteCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_HISTOGRAM>())).Histogram as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_HISTOGRAM),
            "::",
            stringify!(Histogram)
        )
    );
}
pub type DISK_HISTOGRAM = _DISK_HISTOGRAM;
pub type PDISK_HISTOGRAM = *mut _DISK_HISTOGRAM;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _DISK_PERFORMANCE {
    pub BytesRead: LARGE_INTEGER,
    pub BytesWritten: LARGE_INTEGER,
    pub ReadTime: LARGE_INTEGER,
    pub WriteTime: LARGE_INTEGER,
    pub IdleTime: LARGE_INTEGER,
    pub ReadCount: DWORD,
    pub WriteCount: DWORD,
    pub QueueDepth: DWORD,
    pub SplitCount: DWORD,
    pub QueryTime: LARGE_INTEGER,
    pub StorageDeviceNumber: DWORD,
    pub StorageManagerName: [WCHAR; 8usize],
}
#[test]
fn bindgen_test_layout__DISK_PERFORMANCE() {
    assert_eq!(
        ::std::mem::size_of::<_DISK_PERFORMANCE>(),
        88usize,
        concat!("Size of: ", stringify!(_DISK_PERFORMANCE))
    );
    assert_eq!(
        ::std::mem::align_of::<_DISK_PERFORMANCE>(),
        8usize,
        concat!("Alignment of ", stringify!(_DISK_PERFORMANCE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_PERFORMANCE>())).BytesRead as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_PERFORMANCE),
            "::",
            stringify!(BytesRead)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_PERFORMANCE>())).BytesWritten as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_PERFORMANCE),
            "::",
            stringify!(BytesWritten)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_PERFORMANCE>())).ReadTime as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_PERFORMANCE),
            "::",
            stringify!(ReadTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_PERFORMANCE>())).WriteTime as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_PERFORMANCE),
            "::",
            stringify!(WriteTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_PERFORMANCE>())).IdleTime as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_PERFORMANCE),
            "::",
            stringify!(IdleTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_PERFORMANCE>())).ReadCount as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_PERFORMANCE),
            "::",
            stringify!(ReadCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_PERFORMANCE>())).WriteCount as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_PERFORMANCE),
            "::",
            stringify!(WriteCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_PERFORMANCE>())).QueueDepth as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_PERFORMANCE),
            "::",
            stringify!(QueueDepth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_PERFORMANCE>())).SplitCount as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_PERFORMANCE),
            "::",
            stringify!(SplitCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_PERFORMANCE>())).QueryTime as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_PERFORMANCE),
            "::",
            stringify!(QueryTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_PERFORMANCE>())).StorageDeviceNumber as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_PERFORMANCE),
            "::",
            stringify!(StorageDeviceNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DISK_PERFORMANCE>())).StorageManagerName as *const _ as usize
        },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_PERFORMANCE),
            "::",
            stringify!(StorageManagerName)
        )
    );
}
pub type DISK_PERFORMANCE = _DISK_PERFORMANCE;
pub type PDISK_PERFORMANCE = *mut _DISK_PERFORMANCE;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _DISK_RECORD {
    pub ByteOffset: LARGE_INTEGER,
    pub StartTime: LARGE_INTEGER,
    pub EndTime: LARGE_INTEGER,
    pub VirtualAddress: PVOID,
    pub NumberOfBytes: DWORD,
    pub DeviceNumber: BYTE,
    pub ReadRequest: BOOLEAN,
}
#[test]
fn bindgen_test_layout__DISK_RECORD() {
    assert_eq!(
        ::std::mem::size_of::<_DISK_RECORD>(),
        40usize,
        concat!("Size of: ", stringify!(_DISK_RECORD))
    );
    assert_eq!(
        ::std::mem::align_of::<_DISK_RECORD>(),
        8usize,
        concat!("Alignment of ", stringify!(_DISK_RECORD))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_RECORD>())).ByteOffset as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_RECORD),
            "::",
            stringify!(ByteOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_RECORD>())).StartTime as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_RECORD),
            "::",
            stringify!(StartTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_RECORD>())).EndTime as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_RECORD),
            "::",
            stringify!(EndTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_RECORD>())).VirtualAddress as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_RECORD),
            "::",
            stringify!(VirtualAddress)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_RECORD>())).NumberOfBytes as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_RECORD),
            "::",
            stringify!(NumberOfBytes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_RECORD>())).DeviceNumber as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_RECORD),
            "::",
            stringify!(DeviceNumber)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_RECORD>())).ReadRequest as *const _ as usize },
        37usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_RECORD),
            "::",
            stringify!(ReadRequest)
        )
    );
}
pub type DISK_RECORD = _DISK_RECORD;
pub type PDISK_RECORD = *mut _DISK_RECORD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DISK_LOGGING {
    pub Function: BYTE,
    pub BufferAddress: PVOID,
    pub BufferSize: DWORD,
}
#[test]
fn bindgen_test_layout__DISK_LOGGING() {
    assert_eq!(
        ::std::mem::size_of::<_DISK_LOGGING>(),
        24usize,
        concat!("Size of: ", stringify!(_DISK_LOGGING))
    );
    assert_eq!(
        ::std::mem::align_of::<_DISK_LOGGING>(),
        8usize,
        concat!("Alignment of ", stringify!(_DISK_LOGGING))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_LOGGING>())).Function as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_LOGGING),
            "::",
            stringify!(Function)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_LOGGING>())).BufferAddress as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_LOGGING),
            "::",
            stringify!(BufferAddress)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_LOGGING>())).BufferSize as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_LOGGING),
            "::",
            stringify!(BufferSize)
        )
    );
}
pub type DISK_LOGGING = _DISK_LOGGING;
pub type PDISK_LOGGING = *mut _DISK_LOGGING;
pub const _BIN_TYPES_RequestSize: _BIN_TYPES = 0;
pub const _BIN_TYPES_RequestLocation: _BIN_TYPES = 1;
pub type _BIN_TYPES = ::std::os::raw::c_int;
pub use self::_BIN_TYPES as BIN_TYPES;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _BIN_RANGE {
    pub StartValue: LARGE_INTEGER,
    pub Length: LARGE_INTEGER,
}
#[test]
fn bindgen_test_layout__BIN_RANGE() {
    assert_eq!(
        ::std::mem::size_of::<_BIN_RANGE>(),
        16usize,
        concat!("Size of: ", stringify!(_BIN_RANGE))
    );
    assert_eq!(
        ::std::mem::align_of::<_BIN_RANGE>(),
        8usize,
        concat!("Alignment of ", stringify!(_BIN_RANGE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BIN_RANGE>())).StartValue as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BIN_RANGE),
            "::",
            stringify!(StartValue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BIN_RANGE>())).Length as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_BIN_RANGE),
            "::",
            stringify!(Length)
        )
    );
}
pub type BIN_RANGE = _BIN_RANGE;
pub type PBIN_RANGE = *mut _BIN_RANGE;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PERF_BIN {
    pub NumberOfBins: DWORD,
    pub TypeOfBin: DWORD,
    pub BinsRanges: [BIN_RANGE; 1usize],
}
#[test]
fn bindgen_test_layout__PERF_BIN() {
    assert_eq!(
        ::std::mem::size_of::<_PERF_BIN>(),
        24usize,
        concat!("Size of: ", stringify!(_PERF_BIN))
    );
    assert_eq!(
        ::std::mem::align_of::<_PERF_BIN>(),
        8usize,
        concat!("Alignment of ", stringify!(_PERF_BIN))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PERF_BIN>())).NumberOfBins as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_BIN),
            "::",
            stringify!(NumberOfBins)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PERF_BIN>())).TypeOfBin as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_BIN),
            "::",
            stringify!(TypeOfBin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PERF_BIN>())).BinsRanges as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PERF_BIN),
            "::",
            stringify!(BinsRanges)
        )
    );
}
pub type PERF_BIN = _PERF_BIN;
pub type PPERF_BIN = *mut _PERF_BIN;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _BIN_COUNT {
    pub BinRange: BIN_RANGE,
    pub BinCount: DWORD,
}
#[test]
fn bindgen_test_layout__BIN_COUNT() {
    assert_eq!(
        ::std::mem::size_of::<_BIN_COUNT>(),
        24usize,
        concat!("Size of: ", stringify!(_BIN_COUNT))
    );
    assert_eq!(
        ::std::mem::align_of::<_BIN_COUNT>(),
        8usize,
        concat!("Alignment of ", stringify!(_BIN_COUNT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BIN_COUNT>())).BinRange as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BIN_COUNT),
            "::",
            stringify!(BinRange)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BIN_COUNT>())).BinCount as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_BIN_COUNT),
            "::",
            stringify!(BinCount)
        )
    );
}
pub type BIN_COUNT = _BIN_COUNT;
pub type PBIN_COUNT = *mut _BIN_COUNT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _BIN_RESULTS {
    pub NumberOfBins: DWORD,
    pub BinCounts: [BIN_COUNT; 1usize],
}
#[test]
fn bindgen_test_layout__BIN_RESULTS() {
    assert_eq!(
        ::std::mem::size_of::<_BIN_RESULTS>(),
        32usize,
        concat!("Size of: ", stringify!(_BIN_RESULTS))
    );
    assert_eq!(
        ::std::mem::align_of::<_BIN_RESULTS>(),
        8usize,
        concat!("Alignment of ", stringify!(_BIN_RESULTS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BIN_RESULTS>())).NumberOfBins as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BIN_RESULTS),
            "::",
            stringify!(NumberOfBins)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BIN_RESULTS>())).BinCounts as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_BIN_RESULTS),
            "::",
            stringify!(BinCounts)
        )
    );
}
pub type BIN_RESULTS = _BIN_RESULTS;
pub type PBIN_RESULTS = *mut _BIN_RESULTS;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _GETVERSIONINPARAMS {
    pub bVersion: BYTE,
    pub bRevision: BYTE,
    pub bReserved: BYTE,
    pub bIDEDeviceMap: BYTE,
    pub fCapabilities: DWORD,
    pub dwReserved: [DWORD; 4usize],
}
#[test]
fn bindgen_test_layout__GETVERSIONINPARAMS() {
    assert_eq!(
        ::std::mem::size_of::<_GETVERSIONINPARAMS>(),
        24usize,
        concat!("Size of: ", stringify!(_GETVERSIONINPARAMS))
    );
    assert_eq!(
        ::std::mem::align_of::<_GETVERSIONINPARAMS>(),
        1usize,
        concat!("Alignment of ", stringify!(_GETVERSIONINPARAMS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GETVERSIONINPARAMS>())).bVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_GETVERSIONINPARAMS),
            "::",
            stringify!(bVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GETVERSIONINPARAMS>())).bRevision as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_GETVERSIONINPARAMS),
            "::",
            stringify!(bRevision)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GETVERSIONINPARAMS>())).bReserved as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_GETVERSIONINPARAMS),
            "::",
            stringify!(bReserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GETVERSIONINPARAMS>())).bIDEDeviceMap as *const _ as usize
        },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(_GETVERSIONINPARAMS),
            "::",
            stringify!(bIDEDeviceMap)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GETVERSIONINPARAMS>())).fCapabilities as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_GETVERSIONINPARAMS),
            "::",
            stringify!(fCapabilities)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GETVERSIONINPARAMS>())).dwReserved as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_GETVERSIONINPARAMS),
            "::",
            stringify!(dwReserved)
        )
    );
}
pub type GETVERSIONINPARAMS = _GETVERSIONINPARAMS;
pub type PGETVERSIONINPARAMS = *mut _GETVERSIONINPARAMS;
pub type LPGETVERSIONINPARAMS = *mut _GETVERSIONINPARAMS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IDEREGS {
    pub bFeaturesReg: BYTE,
    pub bSectorCountReg: BYTE,
    pub bSectorNumberReg: BYTE,
    pub bCylLowReg: BYTE,
    pub bCylHighReg: BYTE,
    pub bDriveHeadReg: BYTE,
    pub bCommandReg: BYTE,
    pub bReserved: BYTE,
}
#[test]
fn bindgen_test_layout__IDEREGS() {
    assert_eq!(
        ::std::mem::size_of::<_IDEREGS>(),
        8usize,
        concat!("Size of: ", stringify!(_IDEREGS))
    );
    assert_eq!(
        ::std::mem::align_of::<_IDEREGS>(),
        1usize,
        concat!("Alignment of ", stringify!(_IDEREGS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IDEREGS>())).bFeaturesReg as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IDEREGS),
            "::",
            stringify!(bFeaturesReg)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IDEREGS>())).bSectorCountReg as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_IDEREGS),
            "::",
            stringify!(bSectorCountReg)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IDEREGS>())).bSectorNumberReg as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_IDEREGS),
            "::",
            stringify!(bSectorNumberReg)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IDEREGS>())).bCylLowReg as *const _ as usize },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(_IDEREGS),
            "::",
            stringify!(bCylLowReg)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IDEREGS>())).bCylHighReg as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_IDEREGS),
            "::",
            stringify!(bCylHighReg)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IDEREGS>())).bDriveHeadReg as *const _ as usize },
        5usize,
        concat!(
            "Offset of field: ",
            stringify!(_IDEREGS),
            "::",
            stringify!(bDriveHeadReg)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IDEREGS>())).bCommandReg as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_IDEREGS),
            "::",
            stringify!(bCommandReg)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_IDEREGS>())).bReserved as *const _ as usize },
        7usize,
        concat!(
            "Offset of field: ",
            stringify!(_IDEREGS),
            "::",
            stringify!(bReserved)
        )
    );
}
pub type IDEREGS = _IDEREGS;
pub type PIDEREGS = *mut _IDEREGS;
pub type LPIDEREGS = *mut _IDEREGS;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _SENDCMDINPARAMS {
    pub cBufferSize: DWORD,
    pub irDriveRegs: IDEREGS,
    pub bDriveNumber: BYTE,
    pub bReserved: [BYTE; 3usize],
    pub dwReserved: [DWORD; 4usize],
    pub bBuffer: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout__SENDCMDINPARAMS() {
    assert_eq!(
        ::std::mem::size_of::<_SENDCMDINPARAMS>(),
        33usize,
        concat!("Size of: ", stringify!(_SENDCMDINPARAMS))
    );
    assert_eq!(
        ::std::mem::align_of::<_SENDCMDINPARAMS>(),
        1usize,
        concat!("Alignment of ", stringify!(_SENDCMDINPARAMS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SENDCMDINPARAMS>())).cBufferSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SENDCMDINPARAMS),
            "::",
            stringify!(cBufferSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SENDCMDINPARAMS>())).irDriveRegs as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SENDCMDINPARAMS),
            "::",
            stringify!(irDriveRegs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SENDCMDINPARAMS>())).bDriveNumber as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_SENDCMDINPARAMS),
            "::",
            stringify!(bDriveNumber)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SENDCMDINPARAMS>())).bReserved as *const _ as usize },
        13usize,
        concat!(
            "Offset of field: ",
            stringify!(_SENDCMDINPARAMS),
            "::",
            stringify!(bReserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SENDCMDINPARAMS>())).dwReserved as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SENDCMDINPARAMS),
            "::",
            stringify!(dwReserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SENDCMDINPARAMS>())).bBuffer as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_SENDCMDINPARAMS),
            "::",
            stringify!(bBuffer)
        )
    );
}
pub type SENDCMDINPARAMS = _SENDCMDINPARAMS;
pub type PSENDCMDINPARAMS = *mut _SENDCMDINPARAMS;
pub type LPSENDCMDINPARAMS = *mut _SENDCMDINPARAMS;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _DRIVERSTATUS {
    pub bDriverError: BYTE,
    pub bIDEError: BYTE,
    pub bReserved: [BYTE; 2usize],
    pub dwReserved: [DWORD; 2usize],
}
#[test]
fn bindgen_test_layout__DRIVERSTATUS() {
    assert_eq!(
        ::std::mem::size_of::<_DRIVERSTATUS>(),
        12usize,
        concat!("Size of: ", stringify!(_DRIVERSTATUS))
    );
    assert_eq!(
        ::std::mem::align_of::<_DRIVERSTATUS>(),
        1usize,
        concat!("Alignment of ", stringify!(_DRIVERSTATUS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVERSTATUS>())).bDriverError as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVERSTATUS),
            "::",
            stringify!(bDriverError)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVERSTATUS>())).bIDEError as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVERSTATUS),
            "::",
            stringify!(bIDEError)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVERSTATUS>())).bReserved as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVERSTATUS),
            "::",
            stringify!(bReserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVERSTATUS>())).dwReserved as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVERSTATUS),
            "::",
            stringify!(dwReserved)
        )
    );
}
pub type DRIVERSTATUS = _DRIVERSTATUS;
pub type PDRIVERSTATUS = *mut _DRIVERSTATUS;
pub type LPDRIVERSTATUS = *mut _DRIVERSTATUS;
#[repr(C, packed)]
#[derive(Debug, Copy, Clone)]
pub struct _SENDCMDOUTPARAMS {
    pub cBufferSize: DWORD,
    pub DriverStatus: DRIVERSTATUS,
    pub bBuffer: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout__SENDCMDOUTPARAMS() {
    assert_eq!(
        ::std::mem::size_of::<_SENDCMDOUTPARAMS>(),
        17usize,
        concat!("Size of: ", stringify!(_SENDCMDOUTPARAMS))
    );
    assert_eq!(
        ::std::mem::align_of::<_SENDCMDOUTPARAMS>(),
        1usize,
        concat!("Alignment of ", stringify!(_SENDCMDOUTPARAMS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SENDCMDOUTPARAMS>())).cBufferSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SENDCMDOUTPARAMS),
            "::",
            stringify!(cBufferSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SENDCMDOUTPARAMS>())).DriverStatus as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SENDCMDOUTPARAMS),
            "::",
            stringify!(DriverStatus)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SENDCMDOUTPARAMS>())).bBuffer as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SENDCMDOUTPARAMS),
            "::",
            stringify!(bBuffer)
        )
    );
}
pub type SENDCMDOUTPARAMS = _SENDCMDOUTPARAMS;
pub type PSENDCMDOUTPARAMS = *mut _SENDCMDOUTPARAMS;
pub type LPSENDCMDOUTPARAMS = *mut _SENDCMDOUTPARAMS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _GET_DISK_ATTRIBUTES {
    pub Version: DWORD,
    pub Reserved1: DWORD,
    pub Attributes: DWORDLONG,
}
#[test]
fn bindgen_test_layout__GET_DISK_ATTRIBUTES() {
    assert_eq!(
        ::std::mem::size_of::<_GET_DISK_ATTRIBUTES>(),
        16usize,
        concat!("Size of: ", stringify!(_GET_DISK_ATTRIBUTES))
    );
    assert_eq!(
        ::std::mem::align_of::<_GET_DISK_ATTRIBUTES>(),
        8usize,
        concat!("Alignment of ", stringify!(_GET_DISK_ATTRIBUTES))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GET_DISK_ATTRIBUTES>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_DISK_ATTRIBUTES),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GET_DISK_ATTRIBUTES>())).Reserved1 as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_DISK_ATTRIBUTES),
            "::",
            stringify!(Reserved1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GET_DISK_ATTRIBUTES>())).Attributes as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_DISK_ATTRIBUTES),
            "::",
            stringify!(Attributes)
        )
    );
}
pub type GET_DISK_ATTRIBUTES = _GET_DISK_ATTRIBUTES;
pub type PGET_DISK_ATTRIBUTES = *mut _GET_DISK_ATTRIBUTES;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SET_DISK_ATTRIBUTES {
    pub Version: DWORD,
    pub Persist: BOOLEAN,
    pub Reserved1: [BYTE; 3usize],
    pub Attributes: DWORDLONG,
    pub AttributesMask: DWORDLONG,
    pub Reserved2: [DWORD; 4usize],
}
#[test]
fn bindgen_test_layout__SET_DISK_ATTRIBUTES() {
    assert_eq!(
        ::std::mem::size_of::<_SET_DISK_ATTRIBUTES>(),
        40usize,
        concat!("Size of: ", stringify!(_SET_DISK_ATTRIBUTES))
    );
    assert_eq!(
        ::std::mem::align_of::<_SET_DISK_ATTRIBUTES>(),
        8usize,
        concat!("Alignment of ", stringify!(_SET_DISK_ATTRIBUTES))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SET_DISK_ATTRIBUTES>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SET_DISK_ATTRIBUTES),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SET_DISK_ATTRIBUTES>())).Persist as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SET_DISK_ATTRIBUTES),
            "::",
            stringify!(Persist)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SET_DISK_ATTRIBUTES>())).Reserved1 as *const _ as usize },
        5usize,
        concat!(
            "Offset of field: ",
            stringify!(_SET_DISK_ATTRIBUTES),
            "::",
            stringify!(Reserved1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SET_DISK_ATTRIBUTES>())).Attributes as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SET_DISK_ATTRIBUTES),
            "::",
            stringify!(Attributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SET_DISK_ATTRIBUTES>())).AttributesMask as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SET_DISK_ATTRIBUTES),
            "::",
            stringify!(AttributesMask)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SET_DISK_ATTRIBUTES>())).Reserved2 as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_SET_DISK_ATTRIBUTES),
            "::",
            stringify!(Reserved2)
        )
    );
}
pub type SET_DISK_ATTRIBUTES = _SET_DISK_ATTRIBUTES;
pub type PSET_DISK_ATTRIBUTES = *mut _SET_DISK_ATTRIBUTES;
pub const _ELEMENT_TYPE_AllElements: _ELEMENT_TYPE = 0;
pub const _ELEMENT_TYPE_ChangerTransport: _ELEMENT_TYPE = 1;
pub const _ELEMENT_TYPE_ChangerSlot: _ELEMENT_TYPE = 2;
pub const _ELEMENT_TYPE_ChangerIEPort: _ELEMENT_TYPE = 3;
pub const _ELEMENT_TYPE_ChangerDrive: _ELEMENT_TYPE = 4;
pub const _ELEMENT_TYPE_ChangerDoor: _ELEMENT_TYPE = 5;
pub const _ELEMENT_TYPE_ChangerKeypad: _ELEMENT_TYPE = 6;
pub const _ELEMENT_TYPE_ChangerMaxElement: _ELEMENT_TYPE = 7;
pub type _ELEMENT_TYPE = ::std::os::raw::c_int;
pub use self::_ELEMENT_TYPE as ELEMENT_TYPE;
pub type PELEMENT_TYPE = *mut _ELEMENT_TYPE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CHANGER_ELEMENT {
    pub ElementType: ELEMENT_TYPE,
    pub ElementAddress: DWORD,
}
#[test]
fn bindgen_test_layout__CHANGER_ELEMENT() {
    assert_eq!(
        ::std::mem::size_of::<_CHANGER_ELEMENT>(),
        8usize,
        concat!("Size of: ", stringify!(_CHANGER_ELEMENT))
    );
    assert_eq!(
        ::std::mem::align_of::<_CHANGER_ELEMENT>(),
        4usize,
        concat!("Alignment of ", stringify!(_CHANGER_ELEMENT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CHANGER_ELEMENT>())).ElementType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_ELEMENT),
            "::",
            stringify!(ElementType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CHANGER_ELEMENT>())).ElementAddress as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_ELEMENT),
            "::",
            stringify!(ElementAddress)
        )
    );
}
pub type CHANGER_ELEMENT = _CHANGER_ELEMENT;
pub type PCHANGER_ELEMENT = *mut _CHANGER_ELEMENT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CHANGER_ELEMENT_LIST {
    pub Element: CHANGER_ELEMENT,
    pub NumberOfElements: DWORD,
}
#[test]
fn bindgen_test_layout__CHANGER_ELEMENT_LIST() {
    assert_eq!(
        ::std::mem::size_of::<_CHANGER_ELEMENT_LIST>(),
        12usize,
        concat!("Size of: ", stringify!(_CHANGER_ELEMENT_LIST))
    );
    assert_eq!(
        ::std::mem::align_of::<_CHANGER_ELEMENT_LIST>(),
        4usize,
        concat!("Alignment of ", stringify!(_CHANGER_ELEMENT_LIST))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CHANGER_ELEMENT_LIST>())).Element as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_ELEMENT_LIST),
            "::",
            stringify!(Element)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHANGER_ELEMENT_LIST>())).NumberOfElements as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_ELEMENT_LIST),
            "::",
            stringify!(NumberOfElements)
        )
    );
}
pub type CHANGER_ELEMENT_LIST = _CHANGER_ELEMENT_LIST;
pub type PCHANGER_ELEMENT_LIST = *mut _CHANGER_ELEMENT_LIST;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _GET_CHANGER_PARAMETERS {
    pub Size: DWORD,
    pub NumberTransportElements: WORD,
    pub NumberStorageElements: WORD,
    pub NumberCleanerSlots: WORD,
    pub NumberIEElements: WORD,
    pub NumberDataTransferElements: WORD,
    pub NumberOfDoors: WORD,
    pub FirstSlotNumber: WORD,
    pub FirstDriveNumber: WORD,
    pub FirstTransportNumber: WORD,
    pub FirstIEPortNumber: WORD,
    pub FirstCleanerSlotAddress: WORD,
    pub MagazineSize: WORD,
    pub DriveCleanTimeout: DWORD,
    pub Features0: DWORD,
    pub Features1: DWORD,
    pub MoveFromTransport: BYTE,
    pub MoveFromSlot: BYTE,
    pub MoveFromIePort: BYTE,
    pub MoveFromDrive: BYTE,
    pub ExchangeFromTransport: BYTE,
    pub ExchangeFromSlot: BYTE,
    pub ExchangeFromIePort: BYTE,
    pub ExchangeFromDrive: BYTE,
    pub LockUnlockCapabilities: BYTE,
    pub PositionCapabilities: BYTE,
    pub Reserved1: [BYTE; 2usize],
    pub Reserved2: [DWORD; 2usize],
}
#[test]
fn bindgen_test_layout__GET_CHANGER_PARAMETERS() {
    assert_eq!(
        ::std::mem::size_of::<_GET_CHANGER_PARAMETERS>(),
        60usize,
        concat!("Size of: ", stringify!(_GET_CHANGER_PARAMETERS))
    );
    assert_eq!(
        ::std::mem::align_of::<_GET_CHANGER_PARAMETERS>(),
        4usize,
        concat!("Alignment of ", stringify!(_GET_CHANGER_PARAMETERS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GET_CHANGER_PARAMETERS>())).Size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_CHANGER_PARAMETERS),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GET_CHANGER_PARAMETERS>())).NumberTransportElements as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_CHANGER_PARAMETERS),
            "::",
            stringify!(NumberTransportElements)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GET_CHANGER_PARAMETERS>())).NumberStorageElements as *const _
                as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_CHANGER_PARAMETERS),
            "::",
            stringify!(NumberStorageElements)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GET_CHANGER_PARAMETERS>())).NumberCleanerSlots as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_CHANGER_PARAMETERS),
            "::",
            stringify!(NumberCleanerSlots)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GET_CHANGER_PARAMETERS>())).NumberIEElements as *const _
                as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_CHANGER_PARAMETERS),
            "::",
            stringify!(NumberIEElements)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GET_CHANGER_PARAMETERS>())).NumberDataTransferElements
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_CHANGER_PARAMETERS),
            "::",
            stringify!(NumberDataTransferElements)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GET_CHANGER_PARAMETERS>())).NumberOfDoors as *const _ as usize
        },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_CHANGER_PARAMETERS),
            "::",
            stringify!(NumberOfDoors)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GET_CHANGER_PARAMETERS>())).FirstSlotNumber as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_CHANGER_PARAMETERS),
            "::",
            stringify!(FirstSlotNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GET_CHANGER_PARAMETERS>())).FirstDriveNumber as *const _
                as usize
        },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_CHANGER_PARAMETERS),
            "::",
            stringify!(FirstDriveNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GET_CHANGER_PARAMETERS>())).FirstTransportNumber as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_CHANGER_PARAMETERS),
            "::",
            stringify!(FirstTransportNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GET_CHANGER_PARAMETERS>())).FirstIEPortNumber as *const _
                as usize
        },
        22usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_CHANGER_PARAMETERS),
            "::",
            stringify!(FirstIEPortNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GET_CHANGER_PARAMETERS>())).FirstCleanerSlotAddress as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_CHANGER_PARAMETERS),
            "::",
            stringify!(FirstCleanerSlotAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GET_CHANGER_PARAMETERS>())).MagazineSize as *const _ as usize
        },
        26usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_CHANGER_PARAMETERS),
            "::",
            stringify!(MagazineSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GET_CHANGER_PARAMETERS>())).DriveCleanTimeout as *const _
                as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_CHANGER_PARAMETERS),
            "::",
            stringify!(DriveCleanTimeout)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GET_CHANGER_PARAMETERS>())).Features0 as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_CHANGER_PARAMETERS),
            "::",
            stringify!(Features0)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GET_CHANGER_PARAMETERS>())).Features1 as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_CHANGER_PARAMETERS),
            "::",
            stringify!(Features1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GET_CHANGER_PARAMETERS>())).MoveFromTransport as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_CHANGER_PARAMETERS),
            "::",
            stringify!(MoveFromTransport)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GET_CHANGER_PARAMETERS>())).MoveFromSlot as *const _ as usize
        },
        41usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_CHANGER_PARAMETERS),
            "::",
            stringify!(MoveFromSlot)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GET_CHANGER_PARAMETERS>())).MoveFromIePort as *const _ as usize
        },
        42usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_CHANGER_PARAMETERS),
            "::",
            stringify!(MoveFromIePort)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GET_CHANGER_PARAMETERS>())).MoveFromDrive as *const _ as usize
        },
        43usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_CHANGER_PARAMETERS),
            "::",
            stringify!(MoveFromDrive)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GET_CHANGER_PARAMETERS>())).ExchangeFromTransport as *const _
                as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_CHANGER_PARAMETERS),
            "::",
            stringify!(ExchangeFromTransport)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GET_CHANGER_PARAMETERS>())).ExchangeFromSlot as *const _
                as usize
        },
        45usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_CHANGER_PARAMETERS),
            "::",
            stringify!(ExchangeFromSlot)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GET_CHANGER_PARAMETERS>())).ExchangeFromIePort as *const _
                as usize
        },
        46usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_CHANGER_PARAMETERS),
            "::",
            stringify!(ExchangeFromIePort)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GET_CHANGER_PARAMETERS>())).ExchangeFromDrive as *const _
                as usize
        },
        47usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_CHANGER_PARAMETERS),
            "::",
            stringify!(ExchangeFromDrive)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GET_CHANGER_PARAMETERS>())).LockUnlockCapabilities as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_CHANGER_PARAMETERS),
            "::",
            stringify!(LockUnlockCapabilities)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GET_CHANGER_PARAMETERS>())).PositionCapabilities as *const _
                as usize
        },
        49usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_CHANGER_PARAMETERS),
            "::",
            stringify!(PositionCapabilities)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GET_CHANGER_PARAMETERS>())).Reserved1 as *const _ as usize
        },
        50usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_CHANGER_PARAMETERS),
            "::",
            stringify!(Reserved1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GET_CHANGER_PARAMETERS>())).Reserved2 as *const _ as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_CHANGER_PARAMETERS),
            "::",
            stringify!(Reserved2)
        )
    );
}
pub type GET_CHANGER_PARAMETERS = _GET_CHANGER_PARAMETERS;
pub type PGET_CHANGER_PARAMETERS = *mut _GET_CHANGER_PARAMETERS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CHANGER_PRODUCT_DATA {
    pub VendorId: [BYTE; 8usize],
    pub ProductId: [BYTE; 16usize],
    pub Revision: [BYTE; 4usize],
    pub SerialNumber: [BYTE; 32usize],
    pub DeviceType: BYTE,
}
#[test]
fn bindgen_test_layout__CHANGER_PRODUCT_DATA() {
    assert_eq!(
        ::std::mem::size_of::<_CHANGER_PRODUCT_DATA>(),
        61usize,
        concat!("Size of: ", stringify!(_CHANGER_PRODUCT_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CHANGER_PRODUCT_DATA>(),
        1usize,
        concat!("Alignment of ", stringify!(_CHANGER_PRODUCT_DATA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CHANGER_PRODUCT_DATA>())).VendorId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_PRODUCT_DATA),
            "::",
            stringify!(VendorId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CHANGER_PRODUCT_DATA>())).ProductId as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_PRODUCT_DATA),
            "::",
            stringify!(ProductId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CHANGER_PRODUCT_DATA>())).Revision as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_PRODUCT_DATA),
            "::",
            stringify!(Revision)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHANGER_PRODUCT_DATA>())).SerialNumber as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_PRODUCT_DATA),
            "::",
            stringify!(SerialNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHANGER_PRODUCT_DATA>())).DeviceType as *const _ as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_PRODUCT_DATA),
            "::",
            stringify!(DeviceType)
        )
    );
}
pub type CHANGER_PRODUCT_DATA = _CHANGER_PRODUCT_DATA;
pub type PCHANGER_PRODUCT_DATA = *mut _CHANGER_PRODUCT_DATA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CHANGER_SET_ACCESS {
    pub Element: CHANGER_ELEMENT,
    pub Control: DWORD,
}
#[test]
fn bindgen_test_layout__CHANGER_SET_ACCESS() {
    assert_eq!(
        ::std::mem::size_of::<_CHANGER_SET_ACCESS>(),
        12usize,
        concat!("Size of: ", stringify!(_CHANGER_SET_ACCESS))
    );
    assert_eq!(
        ::std::mem::align_of::<_CHANGER_SET_ACCESS>(),
        4usize,
        concat!("Alignment of ", stringify!(_CHANGER_SET_ACCESS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CHANGER_SET_ACCESS>())).Element as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_SET_ACCESS),
            "::",
            stringify!(Element)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CHANGER_SET_ACCESS>())).Control as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_SET_ACCESS),
            "::",
            stringify!(Control)
        )
    );
}
pub type CHANGER_SET_ACCESS = _CHANGER_SET_ACCESS;
pub type PCHANGER_SET_ACCESS = *mut _CHANGER_SET_ACCESS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CHANGER_READ_ELEMENT_STATUS {
    pub ElementList: CHANGER_ELEMENT_LIST,
    pub VolumeTagInfo: BOOLEAN,
}
#[test]
fn bindgen_test_layout__CHANGER_READ_ELEMENT_STATUS() {
    assert_eq!(
        ::std::mem::size_of::<_CHANGER_READ_ELEMENT_STATUS>(),
        16usize,
        concat!("Size of: ", stringify!(_CHANGER_READ_ELEMENT_STATUS))
    );
    assert_eq!(
        ::std::mem::align_of::<_CHANGER_READ_ELEMENT_STATUS>(),
        4usize,
        concat!("Alignment of ", stringify!(_CHANGER_READ_ELEMENT_STATUS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHANGER_READ_ELEMENT_STATUS>())).ElementList as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_READ_ELEMENT_STATUS),
            "::",
            stringify!(ElementList)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHANGER_READ_ELEMENT_STATUS>())).VolumeTagInfo as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_READ_ELEMENT_STATUS),
            "::",
            stringify!(VolumeTagInfo)
        )
    );
}
pub type CHANGER_READ_ELEMENT_STATUS = _CHANGER_READ_ELEMENT_STATUS;
pub type PCHANGER_READ_ELEMENT_STATUS = *mut _CHANGER_READ_ELEMENT_STATUS;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CHANGER_ELEMENT_STATUS {
    pub Element: CHANGER_ELEMENT,
    pub SrcElementAddress: CHANGER_ELEMENT,
    pub Flags: DWORD,
    pub ExceptionCode: DWORD,
    pub TargetId: BYTE,
    pub Lun: BYTE,
    pub Reserved: WORD,
    pub PrimaryVolumeID: [BYTE; 36usize],
    pub AlternateVolumeID: [BYTE; 36usize],
}
#[test]
fn bindgen_test_layout__CHANGER_ELEMENT_STATUS() {
    assert_eq!(
        ::std::mem::size_of::<_CHANGER_ELEMENT_STATUS>(),
        100usize,
        concat!("Size of: ", stringify!(_CHANGER_ELEMENT_STATUS))
    );
    assert_eq!(
        ::std::mem::align_of::<_CHANGER_ELEMENT_STATUS>(),
        4usize,
        concat!("Alignment of ", stringify!(_CHANGER_ELEMENT_STATUS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CHANGER_ELEMENT_STATUS>())).Element as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_ELEMENT_STATUS),
            "::",
            stringify!(Element)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHANGER_ELEMENT_STATUS>())).SrcElementAddress as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_ELEMENT_STATUS),
            "::",
            stringify!(SrcElementAddress)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CHANGER_ELEMENT_STATUS>())).Flags as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_ELEMENT_STATUS),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHANGER_ELEMENT_STATUS>())).ExceptionCode as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_ELEMENT_STATUS),
            "::",
            stringify!(ExceptionCode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHANGER_ELEMENT_STATUS>())).TargetId as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_ELEMENT_STATUS),
            "::",
            stringify!(TargetId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CHANGER_ELEMENT_STATUS>())).Lun as *const _ as usize },
        25usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_ELEMENT_STATUS),
            "::",
            stringify!(Lun)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHANGER_ELEMENT_STATUS>())).Reserved as *const _ as usize
        },
        26usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_ELEMENT_STATUS),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHANGER_ELEMENT_STATUS>())).PrimaryVolumeID as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_ELEMENT_STATUS),
            "::",
            stringify!(PrimaryVolumeID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHANGER_ELEMENT_STATUS>())).AlternateVolumeID as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_ELEMENT_STATUS),
            "::",
            stringify!(AlternateVolumeID)
        )
    );
}
pub type CHANGER_ELEMENT_STATUS = _CHANGER_ELEMENT_STATUS;
pub type PCHANGER_ELEMENT_STATUS = *mut _CHANGER_ELEMENT_STATUS;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CHANGER_ELEMENT_STATUS_EX {
    pub Element: CHANGER_ELEMENT,
    pub SrcElementAddress: CHANGER_ELEMENT,
    pub Flags: DWORD,
    pub ExceptionCode: DWORD,
    pub TargetId: BYTE,
    pub Lun: BYTE,
    pub Reserved: WORD,
    pub PrimaryVolumeID: [BYTE; 36usize],
    pub AlternateVolumeID: [BYTE; 36usize],
    pub VendorIdentification: [BYTE; 8usize],
    pub ProductIdentification: [BYTE; 16usize],
    pub SerialNumber: [BYTE; 32usize],
}
#[test]
fn bindgen_test_layout__CHANGER_ELEMENT_STATUS_EX() {
    assert_eq!(
        ::std::mem::size_of::<_CHANGER_ELEMENT_STATUS_EX>(),
        156usize,
        concat!("Size of: ", stringify!(_CHANGER_ELEMENT_STATUS_EX))
    );
    assert_eq!(
        ::std::mem::align_of::<_CHANGER_ELEMENT_STATUS_EX>(),
        4usize,
        concat!("Alignment of ", stringify!(_CHANGER_ELEMENT_STATUS_EX))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHANGER_ELEMENT_STATUS_EX>())).Element as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_ELEMENT_STATUS_EX),
            "::",
            stringify!(Element)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHANGER_ELEMENT_STATUS_EX>())).SrcElementAddress as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_ELEMENT_STATUS_EX),
            "::",
            stringify!(SrcElementAddress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHANGER_ELEMENT_STATUS_EX>())).Flags as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_ELEMENT_STATUS_EX),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHANGER_ELEMENT_STATUS_EX>())).ExceptionCode as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_ELEMENT_STATUS_EX),
            "::",
            stringify!(ExceptionCode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHANGER_ELEMENT_STATUS_EX>())).TargetId as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_ELEMENT_STATUS_EX),
            "::",
            stringify!(TargetId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CHANGER_ELEMENT_STATUS_EX>())).Lun as *const _ as usize },
        25usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_ELEMENT_STATUS_EX),
            "::",
            stringify!(Lun)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHANGER_ELEMENT_STATUS_EX>())).Reserved as *const _ as usize
        },
        26usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_ELEMENT_STATUS_EX),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHANGER_ELEMENT_STATUS_EX>())).PrimaryVolumeID as *const _
                as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_ELEMENT_STATUS_EX),
            "::",
            stringify!(PrimaryVolumeID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHANGER_ELEMENT_STATUS_EX>())).AlternateVolumeID as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_ELEMENT_STATUS_EX),
            "::",
            stringify!(AlternateVolumeID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHANGER_ELEMENT_STATUS_EX>())).VendorIdentification as *const _
                as usize
        },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_ELEMENT_STATUS_EX),
            "::",
            stringify!(VendorIdentification)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHANGER_ELEMENT_STATUS_EX>())).ProductIdentification as *const _
                as usize
        },
        108usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_ELEMENT_STATUS_EX),
            "::",
            stringify!(ProductIdentification)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHANGER_ELEMENT_STATUS_EX>())).SerialNumber as *const _ as usize
        },
        124usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_ELEMENT_STATUS_EX),
            "::",
            stringify!(SerialNumber)
        )
    );
}
pub type CHANGER_ELEMENT_STATUS_EX = _CHANGER_ELEMENT_STATUS_EX;
pub type PCHANGER_ELEMENT_STATUS_EX = *mut _CHANGER_ELEMENT_STATUS_EX;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CHANGER_INITIALIZE_ELEMENT_STATUS {
    pub ElementList: CHANGER_ELEMENT_LIST,
    pub BarCodeScan: BOOLEAN,
}
#[test]
fn bindgen_test_layout__CHANGER_INITIALIZE_ELEMENT_STATUS() {
    assert_eq!(
        ::std::mem::size_of::<_CHANGER_INITIALIZE_ELEMENT_STATUS>(),
        16usize,
        concat!("Size of: ", stringify!(_CHANGER_INITIALIZE_ELEMENT_STATUS))
    );
    assert_eq!(
        ::std::mem::align_of::<_CHANGER_INITIALIZE_ELEMENT_STATUS>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_CHANGER_INITIALIZE_ELEMENT_STATUS)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHANGER_INITIALIZE_ELEMENT_STATUS>())).ElementList as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_INITIALIZE_ELEMENT_STATUS),
            "::",
            stringify!(ElementList)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHANGER_INITIALIZE_ELEMENT_STATUS>())).BarCodeScan as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_INITIALIZE_ELEMENT_STATUS),
            "::",
            stringify!(BarCodeScan)
        )
    );
}
pub type CHANGER_INITIALIZE_ELEMENT_STATUS = _CHANGER_INITIALIZE_ELEMENT_STATUS;
pub type PCHANGER_INITIALIZE_ELEMENT_STATUS = *mut _CHANGER_INITIALIZE_ELEMENT_STATUS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CHANGER_SET_POSITION {
    pub Transport: CHANGER_ELEMENT,
    pub Destination: CHANGER_ELEMENT,
    pub Flip: BOOLEAN,
}
#[test]
fn bindgen_test_layout__CHANGER_SET_POSITION() {
    assert_eq!(
        ::std::mem::size_of::<_CHANGER_SET_POSITION>(),
        20usize,
        concat!("Size of: ", stringify!(_CHANGER_SET_POSITION))
    );
    assert_eq!(
        ::std::mem::align_of::<_CHANGER_SET_POSITION>(),
        4usize,
        concat!("Alignment of ", stringify!(_CHANGER_SET_POSITION))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CHANGER_SET_POSITION>())).Transport as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_SET_POSITION),
            "::",
            stringify!(Transport)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHANGER_SET_POSITION>())).Destination as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_SET_POSITION),
            "::",
            stringify!(Destination)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CHANGER_SET_POSITION>())).Flip as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_SET_POSITION),
            "::",
            stringify!(Flip)
        )
    );
}
pub type CHANGER_SET_POSITION = _CHANGER_SET_POSITION;
pub type PCHANGER_SET_POSITION = *mut _CHANGER_SET_POSITION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CHANGER_EXCHANGE_MEDIUM {
    pub Transport: CHANGER_ELEMENT,
    pub Source: CHANGER_ELEMENT,
    pub Destination1: CHANGER_ELEMENT,
    pub Destination2: CHANGER_ELEMENT,
    pub Flip1: BOOLEAN,
    pub Flip2: BOOLEAN,
}
#[test]
fn bindgen_test_layout__CHANGER_EXCHANGE_MEDIUM() {
    assert_eq!(
        ::std::mem::size_of::<_CHANGER_EXCHANGE_MEDIUM>(),
        36usize,
        concat!("Size of: ", stringify!(_CHANGER_EXCHANGE_MEDIUM))
    );
    assert_eq!(
        ::std::mem::align_of::<_CHANGER_EXCHANGE_MEDIUM>(),
        4usize,
        concat!("Alignment of ", stringify!(_CHANGER_EXCHANGE_MEDIUM))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHANGER_EXCHANGE_MEDIUM>())).Transport as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_EXCHANGE_MEDIUM),
            "::",
            stringify!(Transport)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CHANGER_EXCHANGE_MEDIUM>())).Source as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_EXCHANGE_MEDIUM),
            "::",
            stringify!(Source)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHANGER_EXCHANGE_MEDIUM>())).Destination1 as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_EXCHANGE_MEDIUM),
            "::",
            stringify!(Destination1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHANGER_EXCHANGE_MEDIUM>())).Destination2 as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_EXCHANGE_MEDIUM),
            "::",
            stringify!(Destination2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CHANGER_EXCHANGE_MEDIUM>())).Flip1 as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_EXCHANGE_MEDIUM),
            "::",
            stringify!(Flip1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CHANGER_EXCHANGE_MEDIUM>())).Flip2 as *const _ as usize },
        33usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_EXCHANGE_MEDIUM),
            "::",
            stringify!(Flip2)
        )
    );
}
pub type CHANGER_EXCHANGE_MEDIUM = _CHANGER_EXCHANGE_MEDIUM;
pub type PCHANGER_EXCHANGE_MEDIUM = *mut _CHANGER_EXCHANGE_MEDIUM;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CHANGER_MOVE_MEDIUM {
    pub Transport: CHANGER_ELEMENT,
    pub Source: CHANGER_ELEMENT,
    pub Destination: CHANGER_ELEMENT,
    pub Flip: BOOLEAN,
}
#[test]
fn bindgen_test_layout__CHANGER_MOVE_MEDIUM() {
    assert_eq!(
        ::std::mem::size_of::<_CHANGER_MOVE_MEDIUM>(),
        28usize,
        concat!("Size of: ", stringify!(_CHANGER_MOVE_MEDIUM))
    );
    assert_eq!(
        ::std::mem::align_of::<_CHANGER_MOVE_MEDIUM>(),
        4usize,
        concat!("Alignment of ", stringify!(_CHANGER_MOVE_MEDIUM))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CHANGER_MOVE_MEDIUM>())).Transport as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_MOVE_MEDIUM),
            "::",
            stringify!(Transport)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CHANGER_MOVE_MEDIUM>())).Source as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_MOVE_MEDIUM),
            "::",
            stringify!(Source)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHANGER_MOVE_MEDIUM>())).Destination as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_MOVE_MEDIUM),
            "::",
            stringify!(Destination)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CHANGER_MOVE_MEDIUM>())).Flip as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_MOVE_MEDIUM),
            "::",
            stringify!(Flip)
        )
    );
}
pub type CHANGER_MOVE_MEDIUM = _CHANGER_MOVE_MEDIUM;
pub type PCHANGER_MOVE_MEDIUM = *mut _CHANGER_MOVE_MEDIUM;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CHANGER_SEND_VOLUME_TAG_INFORMATION {
    pub StartingElement: CHANGER_ELEMENT,
    pub ActionCode: DWORD,
    pub VolumeIDTemplate: [BYTE; 40usize],
}
#[test]
fn bindgen_test_layout__CHANGER_SEND_VOLUME_TAG_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_CHANGER_SEND_VOLUME_TAG_INFORMATION>(),
        52usize,
        concat!(
            "Size of: ",
            stringify!(_CHANGER_SEND_VOLUME_TAG_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CHANGER_SEND_VOLUME_TAG_INFORMATION>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_CHANGER_SEND_VOLUME_TAG_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHANGER_SEND_VOLUME_TAG_INFORMATION>())).StartingElement
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_SEND_VOLUME_TAG_INFORMATION),
            "::",
            stringify!(StartingElement)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHANGER_SEND_VOLUME_TAG_INFORMATION>())).ActionCode as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_SEND_VOLUME_TAG_INFORMATION),
            "::",
            stringify!(ActionCode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CHANGER_SEND_VOLUME_TAG_INFORMATION>())).VolumeIDTemplate
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_CHANGER_SEND_VOLUME_TAG_INFORMATION),
            "::",
            stringify!(VolumeIDTemplate)
        )
    );
}
pub type CHANGER_SEND_VOLUME_TAG_INFORMATION = _CHANGER_SEND_VOLUME_TAG_INFORMATION;
pub type PCHANGER_SEND_VOLUME_TAG_INFORMATION = *mut _CHANGER_SEND_VOLUME_TAG_INFORMATION;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _READ_ELEMENT_ADDRESS_INFO {
    pub NumberOfElements: DWORD,
    pub ElementStatus: [CHANGER_ELEMENT_STATUS; 1usize],
}
#[test]
fn bindgen_test_layout__READ_ELEMENT_ADDRESS_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_READ_ELEMENT_ADDRESS_INFO>(),
        104usize,
        concat!("Size of: ", stringify!(_READ_ELEMENT_ADDRESS_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_READ_ELEMENT_ADDRESS_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_READ_ELEMENT_ADDRESS_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_READ_ELEMENT_ADDRESS_INFO>())).NumberOfElements as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_READ_ELEMENT_ADDRESS_INFO),
            "::",
            stringify!(NumberOfElements)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_READ_ELEMENT_ADDRESS_INFO>())).ElementStatus as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_READ_ELEMENT_ADDRESS_INFO),
            "::",
            stringify!(ElementStatus)
        )
    );
}
pub type READ_ELEMENT_ADDRESS_INFO = _READ_ELEMENT_ADDRESS_INFO;
pub type PREAD_ELEMENT_ADDRESS_INFO = *mut _READ_ELEMENT_ADDRESS_INFO;
pub const _CHANGER_DEVICE_PROBLEM_TYPE_DeviceProblemNone: _CHANGER_DEVICE_PROBLEM_TYPE = 0;
pub const _CHANGER_DEVICE_PROBLEM_TYPE_DeviceProblemHardware: _CHANGER_DEVICE_PROBLEM_TYPE = 1;
pub const _CHANGER_DEVICE_PROBLEM_TYPE_DeviceProblemCHMError: _CHANGER_DEVICE_PROBLEM_TYPE = 2;
pub const _CHANGER_DEVICE_PROBLEM_TYPE_DeviceProblemDoorOpen: _CHANGER_DEVICE_PROBLEM_TYPE = 3;
pub const _CHANGER_DEVICE_PROBLEM_TYPE_DeviceProblemCalibrationError: _CHANGER_DEVICE_PROBLEM_TYPE =
    4;
pub const _CHANGER_DEVICE_PROBLEM_TYPE_DeviceProblemTargetFailure: _CHANGER_DEVICE_PROBLEM_TYPE = 5;
pub const _CHANGER_DEVICE_PROBLEM_TYPE_DeviceProblemCHMMoveError: _CHANGER_DEVICE_PROBLEM_TYPE = 6;
pub const _CHANGER_DEVICE_PROBLEM_TYPE_DeviceProblemCHMZeroError: _CHANGER_DEVICE_PROBLEM_TYPE = 7;
pub const _CHANGER_DEVICE_PROBLEM_TYPE_DeviceProblemCartridgeInsertError:
    _CHANGER_DEVICE_PROBLEM_TYPE = 8;
pub const _CHANGER_DEVICE_PROBLEM_TYPE_DeviceProblemPositionError: _CHANGER_DEVICE_PROBLEM_TYPE = 9;
pub const _CHANGER_DEVICE_PROBLEM_TYPE_DeviceProblemSensorError: _CHANGER_DEVICE_PROBLEM_TYPE = 10;
pub const _CHANGER_DEVICE_PROBLEM_TYPE_DeviceProblemCartridgeEjectError:
    _CHANGER_DEVICE_PROBLEM_TYPE = 11;
pub const _CHANGER_DEVICE_PROBLEM_TYPE_DeviceProblemGripperError: _CHANGER_DEVICE_PROBLEM_TYPE = 12;
pub const _CHANGER_DEVICE_PROBLEM_TYPE_DeviceProblemDriveError: _CHANGER_DEVICE_PROBLEM_TYPE = 13;
pub type _CHANGER_DEVICE_PROBLEM_TYPE = ::std::os::raw::c_int;
pub use self::_CHANGER_DEVICE_PROBLEM_TYPE as CHANGER_DEVICE_PROBLEM_TYPE;
pub type PCHANGER_DEVICE_PROBLEM_TYPE = *mut _CHANGER_DEVICE_PROBLEM_TYPE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PATHNAME_BUFFER {
    pub PathNameLength: DWORD,
    pub Name: [WCHAR; 1usize],
}
#[test]
fn bindgen_test_layout__PATHNAME_BUFFER() {
    assert_eq!(
        ::std::mem::size_of::<_PATHNAME_BUFFER>(),
        8usize,
        concat!("Size of: ", stringify!(_PATHNAME_BUFFER))
    );
    assert_eq!(
        ::std::mem::align_of::<_PATHNAME_BUFFER>(),
        4usize,
        concat!("Alignment of ", stringify!(_PATHNAME_BUFFER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PATHNAME_BUFFER>())).PathNameLength as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PATHNAME_BUFFER),
            "::",
            stringify!(PathNameLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PATHNAME_BUFFER>())).Name as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PATHNAME_BUFFER),
            "::",
            stringify!(Name)
        )
    );
}
pub type PATHNAME_BUFFER = _PATHNAME_BUFFER;
pub type PPATHNAME_BUFFER = *mut _PATHNAME_BUFFER;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _FSCTL_QUERY_FAT_BPB_BUFFER {
    pub First0x24BytesOfBootSector: [BYTE; 36usize],
}
#[test]
fn bindgen_test_layout__FSCTL_QUERY_FAT_BPB_BUFFER() {
    assert_eq!(
        ::std::mem::size_of::<_FSCTL_QUERY_FAT_BPB_BUFFER>(),
        36usize,
        concat!("Size of: ", stringify!(_FSCTL_QUERY_FAT_BPB_BUFFER))
    );
    assert_eq!(
        ::std::mem::align_of::<_FSCTL_QUERY_FAT_BPB_BUFFER>(),
        1usize,
        concat!("Alignment of ", stringify!(_FSCTL_QUERY_FAT_BPB_BUFFER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_QUERY_FAT_BPB_BUFFER>())).First0x24BytesOfBootSector
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_QUERY_FAT_BPB_BUFFER),
            "::",
            stringify!(First0x24BytesOfBootSector)
        )
    );
}
pub type FSCTL_QUERY_FAT_BPB_BUFFER = _FSCTL_QUERY_FAT_BPB_BUFFER;
pub type PFSCTL_QUERY_FAT_BPB_BUFFER = *mut _FSCTL_QUERY_FAT_BPB_BUFFER;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct NTFS_VOLUME_DATA_BUFFER {
    pub VolumeSerialNumber: LARGE_INTEGER,
    pub NumberSectors: LARGE_INTEGER,
    pub TotalClusters: LARGE_INTEGER,
    pub FreeClusters: LARGE_INTEGER,
    pub TotalReserved: LARGE_INTEGER,
    pub BytesPerSector: DWORD,
    pub BytesPerCluster: DWORD,
    pub BytesPerFileRecordSegment: DWORD,
    pub ClustersPerFileRecordSegment: DWORD,
    pub MftValidDataLength: LARGE_INTEGER,
    pub MftStartLcn: LARGE_INTEGER,
    pub Mft2StartLcn: LARGE_INTEGER,
    pub MftZoneStart: LARGE_INTEGER,
    pub MftZoneEnd: LARGE_INTEGER,
}
#[test]
fn bindgen_test_layout_NTFS_VOLUME_DATA_BUFFER() {
    assert_eq!(
        ::std::mem::size_of::<NTFS_VOLUME_DATA_BUFFER>(),
        96usize,
        concat!("Size of: ", stringify!(NTFS_VOLUME_DATA_BUFFER))
    );
    assert_eq!(
        ::std::mem::align_of::<NTFS_VOLUME_DATA_BUFFER>(),
        8usize,
        concat!("Alignment of ", stringify!(NTFS_VOLUME_DATA_BUFFER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NTFS_VOLUME_DATA_BUFFER>())).VolumeSerialNumber as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(NTFS_VOLUME_DATA_BUFFER),
            "::",
            stringify!(VolumeSerialNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NTFS_VOLUME_DATA_BUFFER>())).NumberSectors as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(NTFS_VOLUME_DATA_BUFFER),
            "::",
            stringify!(NumberSectors)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NTFS_VOLUME_DATA_BUFFER>())).TotalClusters as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(NTFS_VOLUME_DATA_BUFFER),
            "::",
            stringify!(TotalClusters)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NTFS_VOLUME_DATA_BUFFER>())).FreeClusters as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(NTFS_VOLUME_DATA_BUFFER),
            "::",
            stringify!(FreeClusters)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NTFS_VOLUME_DATA_BUFFER>())).TotalReserved as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(NTFS_VOLUME_DATA_BUFFER),
            "::",
            stringify!(TotalReserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NTFS_VOLUME_DATA_BUFFER>())).BytesPerSector as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(NTFS_VOLUME_DATA_BUFFER),
            "::",
            stringify!(BytesPerSector)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NTFS_VOLUME_DATA_BUFFER>())).BytesPerCluster as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(NTFS_VOLUME_DATA_BUFFER),
            "::",
            stringify!(BytesPerCluster)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NTFS_VOLUME_DATA_BUFFER>())).BytesPerFileRecordSegment
                as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(NTFS_VOLUME_DATA_BUFFER),
            "::",
            stringify!(BytesPerFileRecordSegment)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NTFS_VOLUME_DATA_BUFFER>())).ClustersPerFileRecordSegment
                as *const _ as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(NTFS_VOLUME_DATA_BUFFER),
            "::",
            stringify!(ClustersPerFileRecordSegment)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NTFS_VOLUME_DATA_BUFFER>())).MftValidDataLength as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(NTFS_VOLUME_DATA_BUFFER),
            "::",
            stringify!(MftValidDataLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NTFS_VOLUME_DATA_BUFFER>())).MftStartLcn as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(NTFS_VOLUME_DATA_BUFFER),
            "::",
            stringify!(MftStartLcn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NTFS_VOLUME_DATA_BUFFER>())).Mft2StartLcn as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(NTFS_VOLUME_DATA_BUFFER),
            "::",
            stringify!(Mft2StartLcn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NTFS_VOLUME_DATA_BUFFER>())).MftZoneStart as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(NTFS_VOLUME_DATA_BUFFER),
            "::",
            stringify!(MftZoneStart)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NTFS_VOLUME_DATA_BUFFER>())).MftZoneEnd as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(NTFS_VOLUME_DATA_BUFFER),
            "::",
            stringify!(MftZoneEnd)
        )
    );
}
pub type PNTFS_VOLUME_DATA_BUFFER = *mut NTFS_VOLUME_DATA_BUFFER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct NTFS_EXTENDED_VOLUME_DATA {
    pub ByteCount: DWORD,
    pub MajorVersion: WORD,
    pub MinorVersion: WORD,
    pub BytesPerPhysicalSector: DWORD,
    pub LfsMajorVersion: WORD,
    pub LfsMinorVersion: WORD,
    pub MaxDeviceTrimExtentCount: DWORD,
    pub MaxDeviceTrimByteCount: DWORD,
    pub MaxVolumeTrimExtentCount: DWORD,
    pub MaxVolumeTrimByteCount: DWORD,
}
#[test]
fn bindgen_test_layout_NTFS_EXTENDED_VOLUME_DATA() {
    assert_eq!(
        ::std::mem::size_of::<NTFS_EXTENDED_VOLUME_DATA>(),
        32usize,
        concat!("Size of: ", stringify!(NTFS_EXTENDED_VOLUME_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<NTFS_EXTENDED_VOLUME_DATA>(),
        4usize,
        concat!("Alignment of ", stringify!(NTFS_EXTENDED_VOLUME_DATA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NTFS_EXTENDED_VOLUME_DATA>())).ByteCount as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(NTFS_EXTENDED_VOLUME_DATA),
            "::",
            stringify!(ByteCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NTFS_EXTENDED_VOLUME_DATA>())).MajorVersion as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(NTFS_EXTENDED_VOLUME_DATA),
            "::",
            stringify!(MajorVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NTFS_EXTENDED_VOLUME_DATA>())).MinorVersion as *const _ as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(NTFS_EXTENDED_VOLUME_DATA),
            "::",
            stringify!(MinorVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NTFS_EXTENDED_VOLUME_DATA>())).BytesPerPhysicalSector as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(NTFS_EXTENDED_VOLUME_DATA),
            "::",
            stringify!(BytesPerPhysicalSector)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NTFS_EXTENDED_VOLUME_DATA>())).LfsMajorVersion as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(NTFS_EXTENDED_VOLUME_DATA),
            "::",
            stringify!(LfsMajorVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NTFS_EXTENDED_VOLUME_DATA>())).LfsMinorVersion as *const _
                as usize
        },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(NTFS_EXTENDED_VOLUME_DATA),
            "::",
            stringify!(LfsMinorVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NTFS_EXTENDED_VOLUME_DATA>())).MaxDeviceTrimExtentCount
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(NTFS_EXTENDED_VOLUME_DATA),
            "::",
            stringify!(MaxDeviceTrimExtentCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NTFS_EXTENDED_VOLUME_DATA>())).MaxDeviceTrimByteCount as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(NTFS_EXTENDED_VOLUME_DATA),
            "::",
            stringify!(MaxDeviceTrimByteCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NTFS_EXTENDED_VOLUME_DATA>())).MaxVolumeTrimExtentCount
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(NTFS_EXTENDED_VOLUME_DATA),
            "::",
            stringify!(MaxVolumeTrimExtentCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NTFS_EXTENDED_VOLUME_DATA>())).MaxVolumeTrimByteCount as *const _
                as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(NTFS_EXTENDED_VOLUME_DATA),
            "::",
            stringify!(MaxVolumeTrimByteCount)
        )
    );
}
pub type PNTFS_EXTENDED_VOLUME_DATA = *mut NTFS_EXTENDED_VOLUME_DATA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct REFS_VOLUME_DATA_BUFFER {
    pub ByteCount: DWORD,
    pub MajorVersion: DWORD,
    pub MinorVersion: DWORD,
    pub BytesPerPhysicalSector: DWORD,
    pub VolumeSerialNumber: LARGE_INTEGER,
    pub NumberSectors: LARGE_INTEGER,
    pub TotalClusters: LARGE_INTEGER,
    pub FreeClusters: LARGE_INTEGER,
    pub TotalReserved: LARGE_INTEGER,
    pub BytesPerSector: DWORD,
    pub BytesPerCluster: DWORD,
    pub MaximumSizeOfResidentFile: LARGE_INTEGER,
    pub Reserved: [LARGE_INTEGER; 10usize],
}
#[test]
fn bindgen_test_layout_REFS_VOLUME_DATA_BUFFER() {
    assert_eq!(
        ::std::mem::size_of::<REFS_VOLUME_DATA_BUFFER>(),
        152usize,
        concat!("Size of: ", stringify!(REFS_VOLUME_DATA_BUFFER))
    );
    assert_eq!(
        ::std::mem::align_of::<REFS_VOLUME_DATA_BUFFER>(),
        8usize,
        concat!("Alignment of ", stringify!(REFS_VOLUME_DATA_BUFFER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<REFS_VOLUME_DATA_BUFFER>())).ByteCount as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(REFS_VOLUME_DATA_BUFFER),
            "::",
            stringify!(ByteCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<REFS_VOLUME_DATA_BUFFER>())).MajorVersion as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(REFS_VOLUME_DATA_BUFFER),
            "::",
            stringify!(MajorVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<REFS_VOLUME_DATA_BUFFER>())).MinorVersion as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(REFS_VOLUME_DATA_BUFFER),
            "::",
            stringify!(MinorVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<REFS_VOLUME_DATA_BUFFER>())).BytesPerPhysicalSector as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(REFS_VOLUME_DATA_BUFFER),
            "::",
            stringify!(BytesPerPhysicalSector)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<REFS_VOLUME_DATA_BUFFER>())).VolumeSerialNumber as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(REFS_VOLUME_DATA_BUFFER),
            "::",
            stringify!(VolumeSerialNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<REFS_VOLUME_DATA_BUFFER>())).NumberSectors as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(REFS_VOLUME_DATA_BUFFER),
            "::",
            stringify!(NumberSectors)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<REFS_VOLUME_DATA_BUFFER>())).TotalClusters as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(REFS_VOLUME_DATA_BUFFER),
            "::",
            stringify!(TotalClusters)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<REFS_VOLUME_DATA_BUFFER>())).FreeClusters as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(REFS_VOLUME_DATA_BUFFER),
            "::",
            stringify!(FreeClusters)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<REFS_VOLUME_DATA_BUFFER>())).TotalReserved as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(REFS_VOLUME_DATA_BUFFER),
            "::",
            stringify!(TotalReserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<REFS_VOLUME_DATA_BUFFER>())).BytesPerSector as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(REFS_VOLUME_DATA_BUFFER),
            "::",
            stringify!(BytesPerSector)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<REFS_VOLUME_DATA_BUFFER>())).BytesPerCluster as *const _ as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(REFS_VOLUME_DATA_BUFFER),
            "::",
            stringify!(BytesPerCluster)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<REFS_VOLUME_DATA_BUFFER>())).MaximumSizeOfResidentFile
                as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(REFS_VOLUME_DATA_BUFFER),
            "::",
            stringify!(MaximumSizeOfResidentFile)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<REFS_VOLUME_DATA_BUFFER>())).Reserved as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(REFS_VOLUME_DATA_BUFFER),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type PREFS_VOLUME_DATA_BUFFER = *mut REFS_VOLUME_DATA_BUFFER;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct STARTING_LCN_INPUT_BUFFER {
    pub StartingLcn: LARGE_INTEGER,
}
#[test]
fn bindgen_test_layout_STARTING_LCN_INPUT_BUFFER() {
    assert_eq!(
        ::std::mem::size_of::<STARTING_LCN_INPUT_BUFFER>(),
        8usize,
        concat!("Size of: ", stringify!(STARTING_LCN_INPUT_BUFFER))
    );
    assert_eq!(
        ::std::mem::align_of::<STARTING_LCN_INPUT_BUFFER>(),
        8usize,
        concat!("Alignment of ", stringify!(STARTING_LCN_INPUT_BUFFER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<STARTING_LCN_INPUT_BUFFER>())).StartingLcn as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(STARTING_LCN_INPUT_BUFFER),
            "::",
            stringify!(StartingLcn)
        )
    );
}
pub type PSTARTING_LCN_INPUT_BUFFER = *mut STARTING_LCN_INPUT_BUFFER;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct STARTING_LCN_INPUT_BUFFER_EX {
    pub StartingLcn: LARGE_INTEGER,
    pub Flags: DWORD,
}
#[test]
fn bindgen_test_layout_STARTING_LCN_INPUT_BUFFER_EX() {
    assert_eq!(
        ::std::mem::size_of::<STARTING_LCN_INPUT_BUFFER_EX>(),
        16usize,
        concat!("Size of: ", stringify!(STARTING_LCN_INPUT_BUFFER_EX))
    );
    assert_eq!(
        ::std::mem::align_of::<STARTING_LCN_INPUT_BUFFER_EX>(),
        8usize,
        concat!("Alignment of ", stringify!(STARTING_LCN_INPUT_BUFFER_EX))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<STARTING_LCN_INPUT_BUFFER_EX>())).StartingLcn as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(STARTING_LCN_INPUT_BUFFER_EX),
            "::",
            stringify!(StartingLcn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<STARTING_LCN_INPUT_BUFFER_EX>())).Flags as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(STARTING_LCN_INPUT_BUFFER_EX),
            "::",
            stringify!(Flags)
        )
    );
}
pub type PSTARTING_LCN_INPUT_BUFFER_EX = *mut STARTING_LCN_INPUT_BUFFER_EX;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct VOLUME_BITMAP_BUFFER {
    pub StartingLcn: LARGE_INTEGER,
    pub BitmapSize: LARGE_INTEGER,
    pub Buffer: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout_VOLUME_BITMAP_BUFFER() {
    assert_eq!(
        ::std::mem::size_of::<VOLUME_BITMAP_BUFFER>(),
        24usize,
        concat!("Size of: ", stringify!(VOLUME_BITMAP_BUFFER))
    );
    assert_eq!(
        ::std::mem::align_of::<VOLUME_BITMAP_BUFFER>(),
        8usize,
        concat!("Alignment of ", stringify!(VOLUME_BITMAP_BUFFER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<VOLUME_BITMAP_BUFFER>())).StartingLcn as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(VOLUME_BITMAP_BUFFER),
            "::",
            stringify!(StartingLcn)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<VOLUME_BITMAP_BUFFER>())).BitmapSize as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(VOLUME_BITMAP_BUFFER),
            "::",
            stringify!(BitmapSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<VOLUME_BITMAP_BUFFER>())).Buffer as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(VOLUME_BITMAP_BUFFER),
            "::",
            stringify!(Buffer)
        )
    );
}
pub type PVOLUME_BITMAP_BUFFER = *mut VOLUME_BITMAP_BUFFER;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct STARTING_VCN_INPUT_BUFFER {
    pub StartingVcn: LARGE_INTEGER,
}
#[test]
fn bindgen_test_layout_STARTING_VCN_INPUT_BUFFER() {
    assert_eq!(
        ::std::mem::size_of::<STARTING_VCN_INPUT_BUFFER>(),
        8usize,
        concat!("Size of: ", stringify!(STARTING_VCN_INPUT_BUFFER))
    );
    assert_eq!(
        ::std::mem::align_of::<STARTING_VCN_INPUT_BUFFER>(),
        8usize,
        concat!("Alignment of ", stringify!(STARTING_VCN_INPUT_BUFFER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<STARTING_VCN_INPUT_BUFFER>())).StartingVcn as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(STARTING_VCN_INPUT_BUFFER),
            "::",
            stringify!(StartingVcn)
        )
    );
}
pub type PSTARTING_VCN_INPUT_BUFFER = *mut STARTING_VCN_INPUT_BUFFER;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct RETRIEVAL_POINTERS_BUFFER {
    pub ExtentCount: DWORD,
    pub StartingVcn: LARGE_INTEGER,
    pub Extents: [RETRIEVAL_POINTERS_BUFFER__bindgen_ty_1; 1usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct RETRIEVAL_POINTERS_BUFFER__bindgen_ty_1 {
    pub NextVcn: LARGE_INTEGER,
    pub Lcn: LARGE_INTEGER,
}
#[test]
fn bindgen_test_layout_RETRIEVAL_POINTERS_BUFFER__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<RETRIEVAL_POINTERS_BUFFER__bindgen_ty_1>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(RETRIEVAL_POINTERS_BUFFER__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<RETRIEVAL_POINTERS_BUFFER__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(RETRIEVAL_POINTERS_BUFFER__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RETRIEVAL_POINTERS_BUFFER__bindgen_ty_1>())).NextVcn as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(RETRIEVAL_POINTERS_BUFFER__bindgen_ty_1),
            "::",
            stringify!(NextVcn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RETRIEVAL_POINTERS_BUFFER__bindgen_ty_1>())).Lcn as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(RETRIEVAL_POINTERS_BUFFER__bindgen_ty_1),
            "::",
            stringify!(Lcn)
        )
    );
}
#[test]
fn bindgen_test_layout_RETRIEVAL_POINTERS_BUFFER() {
    assert_eq!(
        ::std::mem::size_of::<RETRIEVAL_POINTERS_BUFFER>(),
        32usize,
        concat!("Size of: ", stringify!(RETRIEVAL_POINTERS_BUFFER))
    );
    assert_eq!(
        ::std::mem::align_of::<RETRIEVAL_POINTERS_BUFFER>(),
        8usize,
        concat!("Alignment of ", stringify!(RETRIEVAL_POINTERS_BUFFER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RETRIEVAL_POINTERS_BUFFER>())).ExtentCount as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(RETRIEVAL_POINTERS_BUFFER),
            "::",
            stringify!(ExtentCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RETRIEVAL_POINTERS_BUFFER>())).StartingVcn as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(RETRIEVAL_POINTERS_BUFFER),
            "::",
            stringify!(StartingVcn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RETRIEVAL_POINTERS_BUFFER>())).Extents as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(RETRIEVAL_POINTERS_BUFFER),
            "::",
            stringify!(Extents)
        )
    );
}
pub type PRETRIEVAL_POINTERS_BUFFER = *mut RETRIEVAL_POINTERS_BUFFER;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER {
    pub ExtentCount: DWORD,
    pub StartingVcn: LARGE_INTEGER,
    pub Extents: [RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER__bindgen_ty_1; 1usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER__bindgen_ty_1 {
    pub NextVcn: LARGE_INTEGER,
    pub Lcn: LARGE_INTEGER,
    pub ReferenceCount: DWORD,
}
#[test]
fn bindgen_test_layout_RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER__bindgen_ty_1>(),
        24usize,
        concat!(
            "Size of: ",
            stringify!(RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER__bindgen_ty_1>())).NextVcn
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER__bindgen_ty_1),
            "::",
            stringify!(NextVcn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER__bindgen_ty_1>())).Lcn
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER__bindgen_ty_1),
            "::",
            stringify!(Lcn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER__bindgen_ty_1>()))
                .ReferenceCount as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER__bindgen_ty_1),
            "::",
            stringify!(ReferenceCount)
        )
    );
}
#[test]
fn bindgen_test_layout_RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER() {
    assert_eq!(
        ::std::mem::size_of::<RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER>(),
        40usize,
        concat!(
            "Size of: ",
            stringify!(RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER>())).ExtentCount
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER),
            "::",
            stringify!(ExtentCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER>())).StartingVcn
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER),
            "::",
            stringify!(StartingVcn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER>())).Extents as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER),
            "::",
            stringify!(Extents)
        )
    );
}
pub type PRETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER = *mut RETRIEVAL_POINTERS_AND_REFCOUNT_BUFFER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct RETRIEVAL_POINTER_COUNT {
    pub ExtentCount: DWORD,
}
#[test]
fn bindgen_test_layout_RETRIEVAL_POINTER_COUNT() {
    assert_eq!(
        ::std::mem::size_of::<RETRIEVAL_POINTER_COUNT>(),
        4usize,
        concat!("Size of: ", stringify!(RETRIEVAL_POINTER_COUNT))
    );
    assert_eq!(
        ::std::mem::align_of::<RETRIEVAL_POINTER_COUNT>(),
        4usize,
        concat!("Alignment of ", stringify!(RETRIEVAL_POINTER_COUNT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<RETRIEVAL_POINTER_COUNT>())).ExtentCount as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(RETRIEVAL_POINTER_COUNT),
            "::",
            stringify!(ExtentCount)
        )
    );
}
pub type PRETRIEVAL_POINTER_COUNT = *mut RETRIEVAL_POINTER_COUNT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct NTFS_FILE_RECORD_INPUT_BUFFER {
    pub FileReferenceNumber: LARGE_INTEGER,
}
#[test]
fn bindgen_test_layout_NTFS_FILE_RECORD_INPUT_BUFFER() {
    assert_eq!(
        ::std::mem::size_of::<NTFS_FILE_RECORD_INPUT_BUFFER>(),
        8usize,
        concat!("Size of: ", stringify!(NTFS_FILE_RECORD_INPUT_BUFFER))
    );
    assert_eq!(
        ::std::mem::align_of::<NTFS_FILE_RECORD_INPUT_BUFFER>(),
        8usize,
        concat!("Alignment of ", stringify!(NTFS_FILE_RECORD_INPUT_BUFFER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NTFS_FILE_RECORD_INPUT_BUFFER>())).FileReferenceNumber
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(NTFS_FILE_RECORD_INPUT_BUFFER),
            "::",
            stringify!(FileReferenceNumber)
        )
    );
}
pub type PNTFS_FILE_RECORD_INPUT_BUFFER = *mut NTFS_FILE_RECORD_INPUT_BUFFER;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct NTFS_FILE_RECORD_OUTPUT_BUFFER {
    pub FileReferenceNumber: LARGE_INTEGER,
    pub FileRecordLength: DWORD,
    pub FileRecordBuffer: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout_NTFS_FILE_RECORD_OUTPUT_BUFFER() {
    assert_eq!(
        ::std::mem::size_of::<NTFS_FILE_RECORD_OUTPUT_BUFFER>(),
        16usize,
        concat!("Size of: ", stringify!(NTFS_FILE_RECORD_OUTPUT_BUFFER))
    );
    assert_eq!(
        ::std::mem::align_of::<NTFS_FILE_RECORD_OUTPUT_BUFFER>(),
        8usize,
        concat!("Alignment of ", stringify!(NTFS_FILE_RECORD_OUTPUT_BUFFER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NTFS_FILE_RECORD_OUTPUT_BUFFER>())).FileReferenceNumber
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(NTFS_FILE_RECORD_OUTPUT_BUFFER),
            "::",
            stringify!(FileReferenceNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NTFS_FILE_RECORD_OUTPUT_BUFFER>())).FileRecordLength as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(NTFS_FILE_RECORD_OUTPUT_BUFFER),
            "::",
            stringify!(FileRecordLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<NTFS_FILE_RECORD_OUTPUT_BUFFER>())).FileRecordBuffer as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(NTFS_FILE_RECORD_OUTPUT_BUFFER),
            "::",
            stringify!(FileRecordBuffer)
        )
    );
}
pub type PNTFS_FILE_RECORD_OUTPUT_BUFFER = *mut NTFS_FILE_RECORD_OUTPUT_BUFFER;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct MOVE_FILE_DATA {
    pub FileHandle: HANDLE,
    pub StartingVcn: LARGE_INTEGER,
    pub StartingLcn: LARGE_INTEGER,
    pub ClusterCount: DWORD,
}
#[test]
fn bindgen_test_layout_MOVE_FILE_DATA() {
    assert_eq!(
        ::std::mem::size_of::<MOVE_FILE_DATA>(),
        32usize,
        concat!("Size of: ", stringify!(MOVE_FILE_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<MOVE_FILE_DATA>(),
        8usize,
        concat!("Alignment of ", stringify!(MOVE_FILE_DATA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<MOVE_FILE_DATA>())).FileHandle as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(MOVE_FILE_DATA),
            "::",
            stringify!(FileHandle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<MOVE_FILE_DATA>())).StartingVcn as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(MOVE_FILE_DATA),
            "::",
            stringify!(StartingVcn)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<MOVE_FILE_DATA>())).StartingLcn as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(MOVE_FILE_DATA),
            "::",
            stringify!(StartingLcn)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<MOVE_FILE_DATA>())).ClusterCount as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(MOVE_FILE_DATA),
            "::",
            stringify!(ClusterCount)
        )
    );
}
pub type PMOVE_FILE_DATA = *mut MOVE_FILE_DATA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct MOVE_FILE_RECORD_DATA {
    pub FileHandle: HANDLE,
    pub SourceFileRecord: LARGE_INTEGER,
    pub TargetFileRecord: LARGE_INTEGER,
}
#[test]
fn bindgen_test_layout_MOVE_FILE_RECORD_DATA() {
    assert_eq!(
        ::std::mem::size_of::<MOVE_FILE_RECORD_DATA>(),
        24usize,
        concat!("Size of: ", stringify!(MOVE_FILE_RECORD_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<MOVE_FILE_RECORD_DATA>(),
        8usize,
        concat!("Alignment of ", stringify!(MOVE_FILE_RECORD_DATA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<MOVE_FILE_RECORD_DATA>())).FileHandle as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(MOVE_FILE_RECORD_DATA),
            "::",
            stringify!(FileHandle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<MOVE_FILE_RECORD_DATA>())).SourceFileRecord as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(MOVE_FILE_RECORD_DATA),
            "::",
            stringify!(SourceFileRecord)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<MOVE_FILE_RECORD_DATA>())).TargetFileRecord as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(MOVE_FILE_RECORD_DATA),
            "::",
            stringify!(TargetFileRecord)
        )
    );
}
pub type PMOVE_FILE_RECORD_DATA = *mut MOVE_FILE_RECORD_DATA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _MOVE_FILE_DATA32 {
    pub FileHandle: UINT32,
    pub StartingVcn: LARGE_INTEGER,
    pub StartingLcn: LARGE_INTEGER,
    pub ClusterCount: DWORD,
}
#[test]
fn bindgen_test_layout__MOVE_FILE_DATA32() {
    assert_eq!(
        ::std::mem::size_of::<_MOVE_FILE_DATA32>(),
        32usize,
        concat!("Size of: ", stringify!(_MOVE_FILE_DATA32))
    );
    assert_eq!(
        ::std::mem::align_of::<_MOVE_FILE_DATA32>(),
        8usize,
        concat!("Alignment of ", stringify!(_MOVE_FILE_DATA32))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MOVE_FILE_DATA32>())).FileHandle as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MOVE_FILE_DATA32),
            "::",
            stringify!(FileHandle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MOVE_FILE_DATA32>())).StartingVcn as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_MOVE_FILE_DATA32),
            "::",
            stringify!(StartingVcn)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MOVE_FILE_DATA32>())).StartingLcn as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_MOVE_FILE_DATA32),
            "::",
            stringify!(StartingLcn)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MOVE_FILE_DATA32>())).ClusterCount as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_MOVE_FILE_DATA32),
            "::",
            stringify!(ClusterCount)
        )
    );
}
pub type MOVE_FILE_DATA32 = _MOVE_FILE_DATA32;
pub type PMOVE_FILE_DATA32 = *mut _MOVE_FILE_DATA32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct FIND_BY_SID_DATA {
    pub Restart: DWORD,
    pub Sid: SID,
}
#[test]
fn bindgen_test_layout_FIND_BY_SID_DATA() {
    assert_eq!(
        ::std::mem::size_of::<FIND_BY_SID_DATA>(),
        16usize,
        concat!("Size of: ", stringify!(FIND_BY_SID_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<FIND_BY_SID_DATA>(),
        4usize,
        concat!("Alignment of ", stringify!(FIND_BY_SID_DATA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<FIND_BY_SID_DATA>())).Restart as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(FIND_BY_SID_DATA),
            "::",
            stringify!(Restart)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<FIND_BY_SID_DATA>())).Sid as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(FIND_BY_SID_DATA),
            "::",
            stringify!(Sid)
        )
    );
}
pub type PFIND_BY_SID_DATA = *mut FIND_BY_SID_DATA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct FIND_BY_SID_OUTPUT {
    pub NextEntryOffset: DWORD,
    pub FileIndex: DWORD,
    pub FileNameLength: DWORD,
    pub FileName: [WCHAR; 1usize],
}
#[test]
fn bindgen_test_layout_FIND_BY_SID_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<FIND_BY_SID_OUTPUT>(),
        16usize,
        concat!("Size of: ", stringify!(FIND_BY_SID_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<FIND_BY_SID_OUTPUT>(),
        4usize,
        concat!("Alignment of ", stringify!(FIND_BY_SID_OUTPUT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<FIND_BY_SID_OUTPUT>())).NextEntryOffset as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(FIND_BY_SID_OUTPUT),
            "::",
            stringify!(NextEntryOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<FIND_BY_SID_OUTPUT>())).FileIndex as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(FIND_BY_SID_OUTPUT),
            "::",
            stringify!(FileIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<FIND_BY_SID_OUTPUT>())).FileNameLength as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(FIND_BY_SID_OUTPUT),
            "::",
            stringify!(FileNameLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<FIND_BY_SID_OUTPUT>())).FileName as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(FIND_BY_SID_OUTPUT),
            "::",
            stringify!(FileName)
        )
    );
}
pub type PFIND_BY_SID_OUTPUT = *mut FIND_BY_SID_OUTPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct MFT_ENUM_DATA_V0 {
    pub StartFileReferenceNumber: DWORDLONG,
    pub LowUsn: USN,
    pub HighUsn: USN,
}
#[test]
fn bindgen_test_layout_MFT_ENUM_DATA_V0() {
    assert_eq!(
        ::std::mem::size_of::<MFT_ENUM_DATA_V0>(),
        24usize,
        concat!("Size of: ", stringify!(MFT_ENUM_DATA_V0))
    );
    assert_eq!(
        ::std::mem::align_of::<MFT_ENUM_DATA_V0>(),
        8usize,
        concat!("Alignment of ", stringify!(MFT_ENUM_DATA_V0))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<MFT_ENUM_DATA_V0>())).StartFileReferenceNumber as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(MFT_ENUM_DATA_V0),
            "::",
            stringify!(StartFileReferenceNumber)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<MFT_ENUM_DATA_V0>())).LowUsn as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(MFT_ENUM_DATA_V0),
            "::",
            stringify!(LowUsn)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<MFT_ENUM_DATA_V0>())).HighUsn as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(MFT_ENUM_DATA_V0),
            "::",
            stringify!(HighUsn)
        )
    );
}
pub type PMFT_ENUM_DATA_V0 = *mut MFT_ENUM_DATA_V0;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct MFT_ENUM_DATA_V1 {
    pub StartFileReferenceNumber: DWORDLONG,
    pub LowUsn: USN,
    pub HighUsn: USN,
    pub MinMajorVersion: WORD,
    pub MaxMajorVersion: WORD,
}
#[test]
fn bindgen_test_layout_MFT_ENUM_DATA_V1() {
    assert_eq!(
        ::std::mem::size_of::<MFT_ENUM_DATA_V1>(),
        32usize,
        concat!("Size of: ", stringify!(MFT_ENUM_DATA_V1))
    );
    assert_eq!(
        ::std::mem::align_of::<MFT_ENUM_DATA_V1>(),
        8usize,
        concat!("Alignment of ", stringify!(MFT_ENUM_DATA_V1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<MFT_ENUM_DATA_V1>())).StartFileReferenceNumber as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(MFT_ENUM_DATA_V1),
            "::",
            stringify!(StartFileReferenceNumber)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<MFT_ENUM_DATA_V1>())).LowUsn as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(MFT_ENUM_DATA_V1),
            "::",
            stringify!(LowUsn)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<MFT_ENUM_DATA_V1>())).HighUsn as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(MFT_ENUM_DATA_V1),
            "::",
            stringify!(HighUsn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<MFT_ENUM_DATA_V1>())).MinMajorVersion as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(MFT_ENUM_DATA_V1),
            "::",
            stringify!(MinMajorVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<MFT_ENUM_DATA_V1>())).MaxMajorVersion as *const _ as usize
        },
        26usize,
        concat!(
            "Offset of field: ",
            stringify!(MFT_ENUM_DATA_V1),
            "::",
            stringify!(MaxMajorVersion)
        )
    );
}
pub type PMFT_ENUM_DATA_V1 = *mut MFT_ENUM_DATA_V1;
pub type MFT_ENUM_DATA = MFT_ENUM_DATA_V1;
pub type PMFT_ENUM_DATA = *mut MFT_ENUM_DATA_V1;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CREATE_USN_JOURNAL_DATA {
    pub MaximumSize: DWORDLONG,
    pub AllocationDelta: DWORDLONG,
}
#[test]
fn bindgen_test_layout_CREATE_USN_JOURNAL_DATA() {
    assert_eq!(
        ::std::mem::size_of::<CREATE_USN_JOURNAL_DATA>(),
        16usize,
        concat!("Size of: ", stringify!(CREATE_USN_JOURNAL_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<CREATE_USN_JOURNAL_DATA>(),
        8usize,
        concat!("Alignment of ", stringify!(CREATE_USN_JOURNAL_DATA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<CREATE_USN_JOURNAL_DATA>())).MaximumSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(CREATE_USN_JOURNAL_DATA),
            "::",
            stringify!(MaximumSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<CREATE_USN_JOURNAL_DATA>())).AllocationDelta as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(CREATE_USN_JOURNAL_DATA),
            "::",
            stringify!(AllocationDelta)
        )
    );
}
pub type PCREATE_USN_JOURNAL_DATA = *mut CREATE_USN_JOURNAL_DATA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct READ_FILE_USN_DATA {
    pub MinMajorVersion: WORD,
    pub MaxMajorVersion: WORD,
}
#[test]
fn bindgen_test_layout_READ_FILE_USN_DATA() {
    assert_eq!(
        ::std::mem::size_of::<READ_FILE_USN_DATA>(),
        4usize,
        concat!("Size of: ", stringify!(READ_FILE_USN_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<READ_FILE_USN_DATA>(),
        2usize,
        concat!("Alignment of ", stringify!(READ_FILE_USN_DATA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<READ_FILE_USN_DATA>())).MinMajorVersion as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(READ_FILE_USN_DATA),
            "::",
            stringify!(MinMajorVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<READ_FILE_USN_DATA>())).MaxMajorVersion as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(READ_FILE_USN_DATA),
            "::",
            stringify!(MaxMajorVersion)
        )
    );
}
pub type PREAD_FILE_USN_DATA = *mut READ_FILE_USN_DATA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct READ_USN_JOURNAL_DATA_V0 {
    pub StartUsn: USN,
    pub ReasonMask: DWORD,
    pub ReturnOnlyOnClose: DWORD,
    pub Timeout: DWORDLONG,
    pub BytesToWaitFor: DWORDLONG,
    pub UsnJournalID: DWORDLONG,
}
#[test]
fn bindgen_test_layout_READ_USN_JOURNAL_DATA_V0() {
    assert_eq!(
        ::std::mem::size_of::<READ_USN_JOURNAL_DATA_V0>(),
        40usize,
        concat!("Size of: ", stringify!(READ_USN_JOURNAL_DATA_V0))
    );
    assert_eq!(
        ::std::mem::align_of::<READ_USN_JOURNAL_DATA_V0>(),
        8usize,
        concat!("Alignment of ", stringify!(READ_USN_JOURNAL_DATA_V0))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<READ_USN_JOURNAL_DATA_V0>())).StartUsn as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(READ_USN_JOURNAL_DATA_V0),
            "::",
            stringify!(StartUsn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<READ_USN_JOURNAL_DATA_V0>())).ReasonMask as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(READ_USN_JOURNAL_DATA_V0),
            "::",
            stringify!(ReasonMask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<READ_USN_JOURNAL_DATA_V0>())).ReturnOnlyOnClose as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(READ_USN_JOURNAL_DATA_V0),
            "::",
            stringify!(ReturnOnlyOnClose)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<READ_USN_JOURNAL_DATA_V0>())).Timeout as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(READ_USN_JOURNAL_DATA_V0),
            "::",
            stringify!(Timeout)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<READ_USN_JOURNAL_DATA_V0>())).BytesToWaitFor as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(READ_USN_JOURNAL_DATA_V0),
            "::",
            stringify!(BytesToWaitFor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<READ_USN_JOURNAL_DATA_V0>())).UsnJournalID as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(READ_USN_JOURNAL_DATA_V0),
            "::",
            stringify!(UsnJournalID)
        )
    );
}
pub type PREAD_USN_JOURNAL_DATA_V0 = *mut READ_USN_JOURNAL_DATA_V0;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct READ_USN_JOURNAL_DATA_V1 {
    pub StartUsn: USN,
    pub ReasonMask: DWORD,
    pub ReturnOnlyOnClose: DWORD,
    pub Timeout: DWORDLONG,
    pub BytesToWaitFor: DWORDLONG,
    pub UsnJournalID: DWORDLONG,
    pub MinMajorVersion: WORD,
    pub MaxMajorVersion: WORD,
}
#[test]
fn bindgen_test_layout_READ_USN_JOURNAL_DATA_V1() {
    assert_eq!(
        ::std::mem::size_of::<READ_USN_JOURNAL_DATA_V1>(),
        48usize,
        concat!("Size of: ", stringify!(READ_USN_JOURNAL_DATA_V1))
    );
    assert_eq!(
        ::std::mem::align_of::<READ_USN_JOURNAL_DATA_V1>(),
        8usize,
        concat!("Alignment of ", stringify!(READ_USN_JOURNAL_DATA_V1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<READ_USN_JOURNAL_DATA_V1>())).StartUsn as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(READ_USN_JOURNAL_DATA_V1),
            "::",
            stringify!(StartUsn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<READ_USN_JOURNAL_DATA_V1>())).ReasonMask as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(READ_USN_JOURNAL_DATA_V1),
            "::",
            stringify!(ReasonMask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<READ_USN_JOURNAL_DATA_V1>())).ReturnOnlyOnClose as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(READ_USN_JOURNAL_DATA_V1),
            "::",
            stringify!(ReturnOnlyOnClose)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<READ_USN_JOURNAL_DATA_V1>())).Timeout as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(READ_USN_JOURNAL_DATA_V1),
            "::",
            stringify!(Timeout)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<READ_USN_JOURNAL_DATA_V1>())).BytesToWaitFor as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(READ_USN_JOURNAL_DATA_V1),
            "::",
            stringify!(BytesToWaitFor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<READ_USN_JOURNAL_DATA_V1>())).UsnJournalID as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(READ_USN_JOURNAL_DATA_V1),
            "::",
            stringify!(UsnJournalID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<READ_USN_JOURNAL_DATA_V1>())).MinMajorVersion as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(READ_USN_JOURNAL_DATA_V1),
            "::",
            stringify!(MinMajorVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<READ_USN_JOURNAL_DATA_V1>())).MaxMajorVersion as *const _
                as usize
        },
        42usize,
        concat!(
            "Offset of field: ",
            stringify!(READ_USN_JOURNAL_DATA_V1),
            "::",
            stringify!(MaxMajorVersion)
        )
    );
}
pub type PREAD_USN_JOURNAL_DATA_V1 = *mut READ_USN_JOURNAL_DATA_V1;
pub type READ_USN_JOURNAL_DATA = READ_USN_JOURNAL_DATA_V1;
pub type PREAD_USN_JOURNAL_DATA = *mut READ_USN_JOURNAL_DATA_V1;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct USN_TRACK_MODIFIED_RANGES {
    pub Flags: DWORD,
    pub Unused: DWORD,
    pub ChunkSize: DWORDLONG,
    pub FileSizeThreshold: LONGLONG,
}
#[test]
fn bindgen_test_layout_USN_TRACK_MODIFIED_RANGES() {
    assert_eq!(
        ::std::mem::size_of::<USN_TRACK_MODIFIED_RANGES>(),
        24usize,
        concat!("Size of: ", stringify!(USN_TRACK_MODIFIED_RANGES))
    );
    assert_eq!(
        ::std::mem::align_of::<USN_TRACK_MODIFIED_RANGES>(),
        8usize,
        concat!("Alignment of ", stringify!(USN_TRACK_MODIFIED_RANGES))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_TRACK_MODIFIED_RANGES>())).Flags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_TRACK_MODIFIED_RANGES),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<USN_TRACK_MODIFIED_RANGES>())).Unused as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_TRACK_MODIFIED_RANGES),
            "::",
            stringify!(Unused)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<USN_TRACK_MODIFIED_RANGES>())).ChunkSize as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_TRACK_MODIFIED_RANGES),
            "::",
            stringify!(ChunkSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<USN_TRACK_MODIFIED_RANGES>())).FileSizeThreshold as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_TRACK_MODIFIED_RANGES),
            "::",
            stringify!(FileSizeThreshold)
        )
    );
}
pub type PUSN_TRACK_MODIFIED_RANGES = *mut USN_TRACK_MODIFIED_RANGES;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct USN_RANGE_TRACK_OUTPUT {
    pub Usn: USN,
}
#[test]
fn bindgen_test_layout_USN_RANGE_TRACK_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<USN_RANGE_TRACK_OUTPUT>(),
        8usize,
        concat!("Size of: ", stringify!(USN_RANGE_TRACK_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<USN_RANGE_TRACK_OUTPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(USN_RANGE_TRACK_OUTPUT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RANGE_TRACK_OUTPUT>())).Usn as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RANGE_TRACK_OUTPUT),
            "::",
            stringify!(Usn)
        )
    );
}
pub type PUSN_RANGE_TRACK_OUTPUT = *mut USN_RANGE_TRACK_OUTPUT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct USN_RECORD_V2 {
    pub RecordLength: DWORD,
    pub MajorVersion: WORD,
    pub MinorVersion: WORD,
    pub FileReferenceNumber: DWORDLONG,
    pub ParentFileReferenceNumber: DWORDLONG,
    pub Usn: USN,
    pub TimeStamp: LARGE_INTEGER,
    pub Reason: DWORD,
    pub SourceInfo: DWORD,
    pub SecurityId: DWORD,
    pub FileAttributes: DWORD,
    pub FileNameLength: WORD,
    pub FileNameOffset: WORD,
    pub FileName: [WCHAR; 1usize],
}
#[test]
fn bindgen_test_layout_USN_RECORD_V2() {
    assert_eq!(
        ::std::mem::size_of::<USN_RECORD_V2>(),
        64usize,
        concat!("Size of: ", stringify!(USN_RECORD_V2))
    );
    assert_eq!(
        ::std::mem::align_of::<USN_RECORD_V2>(),
        8usize,
        concat!("Alignment of ", stringify!(USN_RECORD_V2))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_V2>())).RecordLength as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V2),
            "::",
            stringify!(RecordLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_V2>())).MajorVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V2),
            "::",
            stringify!(MajorVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_V2>())).MinorVersion as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V2),
            "::",
            stringify!(MinorVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<USN_RECORD_V2>())).FileReferenceNumber as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V2),
            "::",
            stringify!(FileReferenceNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<USN_RECORD_V2>())).ParentFileReferenceNumber as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V2),
            "::",
            stringify!(ParentFileReferenceNumber)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_V2>())).Usn as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V2),
            "::",
            stringify!(Usn)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_V2>())).TimeStamp as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V2),
            "::",
            stringify!(TimeStamp)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_V2>())).Reason as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V2),
            "::",
            stringify!(Reason)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_V2>())).SourceInfo as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V2),
            "::",
            stringify!(SourceInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_V2>())).SecurityId as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V2),
            "::",
            stringify!(SecurityId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_V2>())).FileAttributes as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V2),
            "::",
            stringify!(FileAttributes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_V2>())).FileNameLength as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V2),
            "::",
            stringify!(FileNameLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_V2>())).FileNameOffset as *const _ as usize },
        58usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V2),
            "::",
            stringify!(FileNameOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_V2>())).FileName as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V2),
            "::",
            stringify!(FileName)
        )
    );
}
pub type PUSN_RECORD_V2 = *mut USN_RECORD_V2;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct USN_RECORD_V3 {
    pub RecordLength: DWORD,
    pub MajorVersion: WORD,
    pub MinorVersion: WORD,
    pub FileReferenceNumber: FILE_ID_128,
    pub ParentFileReferenceNumber: FILE_ID_128,
    pub Usn: USN,
    pub TimeStamp: LARGE_INTEGER,
    pub Reason: DWORD,
    pub SourceInfo: DWORD,
    pub SecurityId: DWORD,
    pub FileAttributes: DWORD,
    pub FileNameLength: WORD,
    pub FileNameOffset: WORD,
    pub FileName: [WCHAR; 1usize],
}
#[test]
fn bindgen_test_layout_USN_RECORD_V3() {
    assert_eq!(
        ::std::mem::size_of::<USN_RECORD_V3>(),
        80usize,
        concat!("Size of: ", stringify!(USN_RECORD_V3))
    );
    assert_eq!(
        ::std::mem::align_of::<USN_RECORD_V3>(),
        8usize,
        concat!("Alignment of ", stringify!(USN_RECORD_V3))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_V3>())).RecordLength as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V3),
            "::",
            stringify!(RecordLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_V3>())).MajorVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V3),
            "::",
            stringify!(MajorVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_V3>())).MinorVersion as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V3),
            "::",
            stringify!(MinorVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<USN_RECORD_V3>())).FileReferenceNumber as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V3),
            "::",
            stringify!(FileReferenceNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<USN_RECORD_V3>())).ParentFileReferenceNumber as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V3),
            "::",
            stringify!(ParentFileReferenceNumber)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_V3>())).Usn as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V3),
            "::",
            stringify!(Usn)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_V3>())).TimeStamp as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V3),
            "::",
            stringify!(TimeStamp)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_V3>())).Reason as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V3),
            "::",
            stringify!(Reason)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_V3>())).SourceInfo as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V3),
            "::",
            stringify!(SourceInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_V3>())).SecurityId as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V3),
            "::",
            stringify!(SecurityId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_V3>())).FileAttributes as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V3),
            "::",
            stringify!(FileAttributes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_V3>())).FileNameLength as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V3),
            "::",
            stringify!(FileNameLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_V3>())).FileNameOffset as *const _ as usize },
        74usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V3),
            "::",
            stringify!(FileNameOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_V3>())).FileName as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V3),
            "::",
            stringify!(FileName)
        )
    );
}
pub type PUSN_RECORD_V3 = *mut USN_RECORD_V3;
pub type USN_RECORD = USN_RECORD_V2;
pub type PUSN_RECORD = *mut USN_RECORD_V2;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct USN_RECORD_COMMON_HEADER {
    pub RecordLength: DWORD,
    pub MajorVersion: WORD,
    pub MinorVersion: WORD,
}
#[test]
fn bindgen_test_layout_USN_RECORD_COMMON_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<USN_RECORD_COMMON_HEADER>(),
        8usize,
        concat!("Size of: ", stringify!(USN_RECORD_COMMON_HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<USN_RECORD_COMMON_HEADER>(),
        4usize,
        concat!("Alignment of ", stringify!(USN_RECORD_COMMON_HEADER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<USN_RECORD_COMMON_HEADER>())).RecordLength as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_COMMON_HEADER),
            "::",
            stringify!(RecordLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<USN_RECORD_COMMON_HEADER>())).MajorVersion as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_COMMON_HEADER),
            "::",
            stringify!(MajorVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<USN_RECORD_COMMON_HEADER>())).MinorVersion as *const _ as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_COMMON_HEADER),
            "::",
            stringify!(MinorVersion)
        )
    );
}
pub type PUSN_RECORD_COMMON_HEADER = *mut USN_RECORD_COMMON_HEADER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct USN_RECORD_EXTENT {
    pub Offset: LONGLONG,
    pub Length: LONGLONG,
}
#[test]
fn bindgen_test_layout_USN_RECORD_EXTENT() {
    assert_eq!(
        ::std::mem::size_of::<USN_RECORD_EXTENT>(),
        16usize,
        concat!("Size of: ", stringify!(USN_RECORD_EXTENT))
    );
    assert_eq!(
        ::std::mem::align_of::<USN_RECORD_EXTENT>(),
        8usize,
        concat!("Alignment of ", stringify!(USN_RECORD_EXTENT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_EXTENT>())).Offset as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_EXTENT),
            "::",
            stringify!(Offset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_EXTENT>())).Length as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_EXTENT),
            "::",
            stringify!(Length)
        )
    );
}
pub type PUSN_RECORD_EXTENT = *mut USN_RECORD_EXTENT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct USN_RECORD_V4 {
    pub Header: USN_RECORD_COMMON_HEADER,
    pub FileReferenceNumber: FILE_ID_128,
    pub ParentFileReferenceNumber: FILE_ID_128,
    pub Usn: USN,
    pub Reason: DWORD,
    pub SourceInfo: DWORD,
    pub RemainingExtents: DWORD,
    pub NumberOfExtents: WORD,
    pub ExtentSize: WORD,
    pub Extents: [USN_RECORD_EXTENT; 1usize],
}
#[test]
fn bindgen_test_layout_USN_RECORD_V4() {
    assert_eq!(
        ::std::mem::size_of::<USN_RECORD_V4>(),
        80usize,
        concat!("Size of: ", stringify!(USN_RECORD_V4))
    );
    assert_eq!(
        ::std::mem::align_of::<USN_RECORD_V4>(),
        8usize,
        concat!("Alignment of ", stringify!(USN_RECORD_V4))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_V4>())).Header as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V4),
            "::",
            stringify!(Header)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<USN_RECORD_V4>())).FileReferenceNumber as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V4),
            "::",
            stringify!(FileReferenceNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<USN_RECORD_V4>())).ParentFileReferenceNumber as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V4),
            "::",
            stringify!(ParentFileReferenceNumber)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_V4>())).Usn as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V4),
            "::",
            stringify!(Usn)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_V4>())).Reason as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V4),
            "::",
            stringify!(Reason)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_V4>())).SourceInfo as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V4),
            "::",
            stringify!(SourceInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_V4>())).RemainingExtents as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V4),
            "::",
            stringify!(RemainingExtents)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_V4>())).NumberOfExtents as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V4),
            "::",
            stringify!(NumberOfExtents)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_V4>())).ExtentSize as *const _ as usize },
        62usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V4),
            "::",
            stringify!(ExtentSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_V4>())).Extents as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_V4),
            "::",
            stringify!(Extents)
        )
    );
}
pub type PUSN_RECORD_V4 = *mut USN_RECORD_V4;
#[repr(C)]
#[derive(Copy, Clone)]
pub union USN_RECORD_UNION {
    pub Header: USN_RECORD_COMMON_HEADER,
    pub V2: USN_RECORD_V2,
    pub V3: USN_RECORD_V3,
    pub V4: USN_RECORD_V4,
    _bindgen_union_align: [u64; 10usize],
}
#[test]
fn bindgen_test_layout_USN_RECORD_UNION() {
    assert_eq!(
        ::std::mem::size_of::<USN_RECORD_UNION>(),
        80usize,
        concat!("Size of: ", stringify!(USN_RECORD_UNION))
    );
    assert_eq!(
        ::std::mem::align_of::<USN_RECORD_UNION>(),
        8usize,
        concat!("Alignment of ", stringify!(USN_RECORD_UNION))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_UNION>())).Header as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_UNION),
            "::",
            stringify!(Header)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_UNION>())).V2 as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_UNION),
            "::",
            stringify!(V2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_UNION>())).V3 as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_UNION),
            "::",
            stringify!(V3)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_RECORD_UNION>())).V4 as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_RECORD_UNION),
            "::",
            stringify!(V4)
        )
    );
}
pub type PUSN_RECORD_UNION = *mut USN_RECORD_UNION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct USN_JOURNAL_DATA_V0 {
    pub UsnJournalID: DWORDLONG,
    pub FirstUsn: USN,
    pub NextUsn: USN,
    pub LowestValidUsn: USN,
    pub MaxUsn: USN,
    pub MaximumSize: DWORDLONG,
    pub AllocationDelta: DWORDLONG,
}
#[test]
fn bindgen_test_layout_USN_JOURNAL_DATA_V0() {
    assert_eq!(
        ::std::mem::size_of::<USN_JOURNAL_DATA_V0>(),
        56usize,
        concat!("Size of: ", stringify!(USN_JOURNAL_DATA_V0))
    );
    assert_eq!(
        ::std::mem::align_of::<USN_JOURNAL_DATA_V0>(),
        8usize,
        concat!("Alignment of ", stringify!(USN_JOURNAL_DATA_V0))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<USN_JOURNAL_DATA_V0>())).UsnJournalID as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_JOURNAL_DATA_V0),
            "::",
            stringify!(UsnJournalID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_JOURNAL_DATA_V0>())).FirstUsn as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_JOURNAL_DATA_V0),
            "::",
            stringify!(FirstUsn)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_JOURNAL_DATA_V0>())).NextUsn as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_JOURNAL_DATA_V0),
            "::",
            stringify!(NextUsn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<USN_JOURNAL_DATA_V0>())).LowestValidUsn as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_JOURNAL_DATA_V0),
            "::",
            stringify!(LowestValidUsn)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_JOURNAL_DATA_V0>())).MaxUsn as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_JOURNAL_DATA_V0),
            "::",
            stringify!(MaxUsn)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_JOURNAL_DATA_V0>())).MaximumSize as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_JOURNAL_DATA_V0),
            "::",
            stringify!(MaximumSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<USN_JOURNAL_DATA_V0>())).AllocationDelta as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_JOURNAL_DATA_V0),
            "::",
            stringify!(AllocationDelta)
        )
    );
}
pub type PUSN_JOURNAL_DATA_V0 = *mut USN_JOURNAL_DATA_V0;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct USN_JOURNAL_DATA_V1 {
    pub UsnJournalID: DWORDLONG,
    pub FirstUsn: USN,
    pub NextUsn: USN,
    pub LowestValidUsn: USN,
    pub MaxUsn: USN,
    pub MaximumSize: DWORDLONG,
    pub AllocationDelta: DWORDLONG,
    pub MinSupportedMajorVersion: WORD,
    pub MaxSupportedMajorVersion: WORD,
}
#[test]
fn bindgen_test_layout_USN_JOURNAL_DATA_V1() {
    assert_eq!(
        ::std::mem::size_of::<USN_JOURNAL_DATA_V1>(),
        64usize,
        concat!("Size of: ", stringify!(USN_JOURNAL_DATA_V1))
    );
    assert_eq!(
        ::std::mem::align_of::<USN_JOURNAL_DATA_V1>(),
        8usize,
        concat!("Alignment of ", stringify!(USN_JOURNAL_DATA_V1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<USN_JOURNAL_DATA_V1>())).UsnJournalID as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_JOURNAL_DATA_V1),
            "::",
            stringify!(UsnJournalID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_JOURNAL_DATA_V1>())).FirstUsn as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_JOURNAL_DATA_V1),
            "::",
            stringify!(FirstUsn)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_JOURNAL_DATA_V1>())).NextUsn as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_JOURNAL_DATA_V1),
            "::",
            stringify!(NextUsn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<USN_JOURNAL_DATA_V1>())).LowestValidUsn as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_JOURNAL_DATA_V1),
            "::",
            stringify!(LowestValidUsn)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_JOURNAL_DATA_V1>())).MaxUsn as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_JOURNAL_DATA_V1),
            "::",
            stringify!(MaxUsn)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_JOURNAL_DATA_V1>())).MaximumSize as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_JOURNAL_DATA_V1),
            "::",
            stringify!(MaximumSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<USN_JOURNAL_DATA_V1>())).AllocationDelta as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_JOURNAL_DATA_V1),
            "::",
            stringify!(AllocationDelta)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<USN_JOURNAL_DATA_V1>())).MinSupportedMajorVersion as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_JOURNAL_DATA_V1),
            "::",
            stringify!(MinSupportedMajorVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<USN_JOURNAL_DATA_V1>())).MaxSupportedMajorVersion as *const _
                as usize
        },
        58usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_JOURNAL_DATA_V1),
            "::",
            stringify!(MaxSupportedMajorVersion)
        )
    );
}
pub type PUSN_JOURNAL_DATA_V1 = *mut USN_JOURNAL_DATA_V1;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct USN_JOURNAL_DATA_V2 {
    pub UsnJournalID: DWORDLONG,
    pub FirstUsn: USN,
    pub NextUsn: USN,
    pub LowestValidUsn: USN,
    pub MaxUsn: USN,
    pub MaximumSize: DWORDLONG,
    pub AllocationDelta: DWORDLONG,
    pub MinSupportedMajorVersion: WORD,
    pub MaxSupportedMajorVersion: WORD,
    pub Flags: DWORD,
    pub RangeTrackChunkSize: DWORDLONG,
    pub RangeTrackFileSizeThreshold: LONGLONG,
}
#[test]
fn bindgen_test_layout_USN_JOURNAL_DATA_V2() {
    assert_eq!(
        ::std::mem::size_of::<USN_JOURNAL_DATA_V2>(),
        80usize,
        concat!("Size of: ", stringify!(USN_JOURNAL_DATA_V2))
    );
    assert_eq!(
        ::std::mem::align_of::<USN_JOURNAL_DATA_V2>(),
        8usize,
        concat!("Alignment of ", stringify!(USN_JOURNAL_DATA_V2))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<USN_JOURNAL_DATA_V2>())).UsnJournalID as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_JOURNAL_DATA_V2),
            "::",
            stringify!(UsnJournalID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_JOURNAL_DATA_V2>())).FirstUsn as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_JOURNAL_DATA_V2),
            "::",
            stringify!(FirstUsn)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_JOURNAL_DATA_V2>())).NextUsn as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_JOURNAL_DATA_V2),
            "::",
            stringify!(NextUsn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<USN_JOURNAL_DATA_V2>())).LowestValidUsn as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_JOURNAL_DATA_V2),
            "::",
            stringify!(LowestValidUsn)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_JOURNAL_DATA_V2>())).MaxUsn as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_JOURNAL_DATA_V2),
            "::",
            stringify!(MaxUsn)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_JOURNAL_DATA_V2>())).MaximumSize as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_JOURNAL_DATA_V2),
            "::",
            stringify!(MaximumSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<USN_JOURNAL_DATA_V2>())).AllocationDelta as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_JOURNAL_DATA_V2),
            "::",
            stringify!(AllocationDelta)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<USN_JOURNAL_DATA_V2>())).MinSupportedMajorVersion as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_JOURNAL_DATA_V2),
            "::",
            stringify!(MinSupportedMajorVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<USN_JOURNAL_DATA_V2>())).MaxSupportedMajorVersion as *const _
                as usize
        },
        58usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_JOURNAL_DATA_V2),
            "::",
            stringify!(MaxSupportedMajorVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<USN_JOURNAL_DATA_V2>())).Flags as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_JOURNAL_DATA_V2),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<USN_JOURNAL_DATA_V2>())).RangeTrackChunkSize as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_JOURNAL_DATA_V2),
            "::",
            stringify!(RangeTrackChunkSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<USN_JOURNAL_DATA_V2>())).RangeTrackFileSizeThreshold as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(USN_JOURNAL_DATA_V2),
            "::",
            stringify!(RangeTrackFileSizeThreshold)
        )
    );
}
pub type PUSN_JOURNAL_DATA_V2 = *mut USN_JOURNAL_DATA_V2;
pub type USN_JOURNAL_DATA = USN_JOURNAL_DATA_V1;
pub type PUSN_JOURNAL_DATA = *mut USN_JOURNAL_DATA_V1;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct DELETE_USN_JOURNAL_DATA {
    pub UsnJournalID: DWORDLONG,
    pub DeleteFlags: DWORD,
}
#[test]
fn bindgen_test_layout_DELETE_USN_JOURNAL_DATA() {
    assert_eq!(
        ::std::mem::size_of::<DELETE_USN_JOURNAL_DATA>(),
        16usize,
        concat!("Size of: ", stringify!(DELETE_USN_JOURNAL_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<DELETE_USN_JOURNAL_DATA>(),
        8usize,
        concat!("Alignment of ", stringify!(DELETE_USN_JOURNAL_DATA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DELETE_USN_JOURNAL_DATA>())).UsnJournalID as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DELETE_USN_JOURNAL_DATA),
            "::",
            stringify!(UsnJournalID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<DELETE_USN_JOURNAL_DATA>())).DeleteFlags as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(DELETE_USN_JOURNAL_DATA),
            "::",
            stringify!(DeleteFlags)
        )
    );
}
pub type PDELETE_USN_JOURNAL_DATA = *mut DELETE_USN_JOURNAL_DATA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct MARK_HANDLE_INFO {
    pub __bindgen_anon_1: MARK_HANDLE_INFO__bindgen_ty_1,
    pub VolumeHandle: HANDLE,
    pub HandleInfo: DWORD,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union MARK_HANDLE_INFO__bindgen_ty_1 {
    pub UsnSourceInfo: DWORD,
    pub CopyNumber: DWORD,
    _bindgen_union_align: u32,
}
#[test]
fn bindgen_test_layout_MARK_HANDLE_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<MARK_HANDLE_INFO__bindgen_ty_1>(),
        4usize,
        concat!("Size of: ", stringify!(MARK_HANDLE_INFO__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<MARK_HANDLE_INFO__bindgen_ty_1>(),
        4usize,
        concat!("Alignment of ", stringify!(MARK_HANDLE_INFO__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<MARK_HANDLE_INFO__bindgen_ty_1>())).UsnSourceInfo as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(MARK_HANDLE_INFO__bindgen_ty_1),
            "::",
            stringify!(UsnSourceInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<MARK_HANDLE_INFO__bindgen_ty_1>())).CopyNumber as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(MARK_HANDLE_INFO__bindgen_ty_1),
            "::",
            stringify!(CopyNumber)
        )
    );
}
#[test]
fn bindgen_test_layout_MARK_HANDLE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<MARK_HANDLE_INFO>(),
        24usize,
        concat!("Size of: ", stringify!(MARK_HANDLE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<MARK_HANDLE_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(MARK_HANDLE_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<MARK_HANDLE_INFO>())).VolumeHandle as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(MARK_HANDLE_INFO),
            "::",
            stringify!(VolumeHandle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<MARK_HANDLE_INFO>())).HandleInfo as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(MARK_HANDLE_INFO),
            "::",
            stringify!(HandleInfo)
        )
    );
}
pub type PMARK_HANDLE_INFO = *mut MARK_HANDLE_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct MARK_HANDLE_INFO32 {
    pub __bindgen_anon_1: MARK_HANDLE_INFO32__bindgen_ty_1,
    pub VolumeHandle: UINT32,
    pub HandleInfo: DWORD,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union MARK_HANDLE_INFO32__bindgen_ty_1 {
    pub UsnSourceInfo: DWORD,
    pub CopyNumber: DWORD,
    _bindgen_union_align: u32,
}
#[test]
fn bindgen_test_layout_MARK_HANDLE_INFO32__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<MARK_HANDLE_INFO32__bindgen_ty_1>(),
        4usize,
        concat!("Size of: ", stringify!(MARK_HANDLE_INFO32__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<MARK_HANDLE_INFO32__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(MARK_HANDLE_INFO32__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<MARK_HANDLE_INFO32__bindgen_ty_1>())).UsnSourceInfo as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(MARK_HANDLE_INFO32__bindgen_ty_1),
            "::",
            stringify!(UsnSourceInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<MARK_HANDLE_INFO32__bindgen_ty_1>())).CopyNumber as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(MARK_HANDLE_INFO32__bindgen_ty_1),
            "::",
            stringify!(CopyNumber)
        )
    );
}
#[test]
fn bindgen_test_layout_MARK_HANDLE_INFO32() {
    assert_eq!(
        ::std::mem::size_of::<MARK_HANDLE_INFO32>(),
        12usize,
        concat!("Size of: ", stringify!(MARK_HANDLE_INFO32))
    );
    assert_eq!(
        ::std::mem::align_of::<MARK_HANDLE_INFO32>(),
        4usize,
        concat!("Alignment of ", stringify!(MARK_HANDLE_INFO32))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<MARK_HANDLE_INFO32>())).VolumeHandle as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(MARK_HANDLE_INFO32),
            "::",
            stringify!(VolumeHandle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<MARK_HANDLE_INFO32>())).HandleInfo as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(MARK_HANDLE_INFO32),
            "::",
            stringify!(HandleInfo)
        )
    );
}
pub type PMARK_HANDLE_INFO32 = *mut MARK_HANDLE_INFO32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BULK_SECURITY_TEST_DATA {
    pub DesiredAccess: ACCESS_MASK,
    pub SecurityIds: [DWORD; 1usize],
}
#[test]
fn bindgen_test_layout_BULK_SECURITY_TEST_DATA() {
    assert_eq!(
        ::std::mem::size_of::<BULK_SECURITY_TEST_DATA>(),
        8usize,
        concat!("Size of: ", stringify!(BULK_SECURITY_TEST_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<BULK_SECURITY_TEST_DATA>(),
        4usize,
        concat!("Alignment of ", stringify!(BULK_SECURITY_TEST_DATA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<BULK_SECURITY_TEST_DATA>())).DesiredAccess as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(BULK_SECURITY_TEST_DATA),
            "::",
            stringify!(DesiredAccess)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<BULK_SECURITY_TEST_DATA>())).SecurityIds as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(BULK_SECURITY_TEST_DATA),
            "::",
            stringify!(SecurityIds)
        )
    );
}
pub type PBULK_SECURITY_TEST_DATA = *mut BULK_SECURITY_TEST_DATA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_PREFETCH {
    pub Type: DWORD,
    pub Count: DWORD,
    pub Prefetch: [DWORDLONG; 1usize],
}
#[test]
fn bindgen_test_layout__FILE_PREFETCH() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_PREFETCH>(),
        16usize,
        concat!("Size of: ", stringify!(_FILE_PREFETCH))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_PREFETCH>(),
        8usize,
        concat!("Alignment of ", stringify!(_FILE_PREFETCH))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_PREFETCH>())).Type as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_PREFETCH),
            "::",
            stringify!(Type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_PREFETCH>())).Count as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_PREFETCH),
            "::",
            stringify!(Count)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_PREFETCH>())).Prefetch as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_PREFETCH),
            "::",
            stringify!(Prefetch)
        )
    );
}
pub type FILE_PREFETCH = _FILE_PREFETCH;
pub type PFILE_PREFETCH = *mut _FILE_PREFETCH;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_PREFETCH_EX {
    pub Type: DWORD,
    pub Count: DWORD,
    pub Context: PVOID,
    pub Prefetch: [DWORDLONG; 1usize],
}
#[test]
fn bindgen_test_layout__FILE_PREFETCH_EX() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_PREFETCH_EX>(),
        24usize,
        concat!("Size of: ", stringify!(_FILE_PREFETCH_EX))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_PREFETCH_EX>(),
        8usize,
        concat!("Alignment of ", stringify!(_FILE_PREFETCH_EX))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_PREFETCH_EX>())).Type as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_PREFETCH_EX),
            "::",
            stringify!(Type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_PREFETCH_EX>())).Count as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_PREFETCH_EX),
            "::",
            stringify!(Count)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_PREFETCH_EX>())).Context as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_PREFETCH_EX),
            "::",
            stringify!(Context)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_PREFETCH_EX>())).Prefetch as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_PREFETCH_EX),
            "::",
            stringify!(Prefetch)
        )
    );
}
pub type FILE_PREFETCH_EX = _FILE_PREFETCH_EX;
pub type PFILE_PREFETCH_EX = *mut _FILE_PREFETCH_EX;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILESYSTEM_STATISTICS {
    pub FileSystemType: WORD,
    pub Version: WORD,
    pub SizeOfCompleteStructure: DWORD,
    pub UserFileReads: DWORD,
    pub UserFileReadBytes: DWORD,
    pub UserDiskReads: DWORD,
    pub UserFileWrites: DWORD,
    pub UserFileWriteBytes: DWORD,
    pub UserDiskWrites: DWORD,
    pub MetaDataReads: DWORD,
    pub MetaDataReadBytes: DWORD,
    pub MetaDataDiskReads: DWORD,
    pub MetaDataWrites: DWORD,
    pub MetaDataWriteBytes: DWORD,
    pub MetaDataDiskWrites: DWORD,
}
#[test]
fn bindgen_test_layout__FILESYSTEM_STATISTICS() {
    assert_eq!(
        ::std::mem::size_of::<_FILESYSTEM_STATISTICS>(),
        56usize,
        concat!("Size of: ", stringify!(_FILESYSTEM_STATISTICS))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILESYSTEM_STATISTICS>(),
        4usize,
        concat!("Alignment of ", stringify!(_FILESYSTEM_STATISTICS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILESYSTEM_STATISTICS>())).FileSystemType as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILESYSTEM_STATISTICS),
            "::",
            stringify!(FileSystemType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILESYSTEM_STATISTICS>())).Version as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILESYSTEM_STATISTICS),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILESYSTEM_STATISTICS>())).SizeOfCompleteStructure as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILESYSTEM_STATISTICS),
            "::",
            stringify!(SizeOfCompleteStructure)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILESYSTEM_STATISTICS>())).UserFileReads as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILESYSTEM_STATISTICS),
            "::",
            stringify!(UserFileReads)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILESYSTEM_STATISTICS>())).UserFileReadBytes as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILESYSTEM_STATISTICS),
            "::",
            stringify!(UserFileReadBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILESYSTEM_STATISTICS>())).UserDiskReads as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILESYSTEM_STATISTICS),
            "::",
            stringify!(UserDiskReads)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILESYSTEM_STATISTICS>())).UserFileWrites as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILESYSTEM_STATISTICS),
            "::",
            stringify!(UserFileWrites)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILESYSTEM_STATISTICS>())).UserFileWriteBytes as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILESYSTEM_STATISTICS),
            "::",
            stringify!(UserFileWriteBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILESYSTEM_STATISTICS>())).UserDiskWrites as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILESYSTEM_STATISTICS),
            "::",
            stringify!(UserDiskWrites)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILESYSTEM_STATISTICS>())).MetaDataReads as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILESYSTEM_STATISTICS),
            "::",
            stringify!(MetaDataReads)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILESYSTEM_STATISTICS>())).MetaDataReadBytes as *const _
                as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILESYSTEM_STATISTICS),
            "::",
            stringify!(MetaDataReadBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILESYSTEM_STATISTICS>())).MetaDataDiskReads as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILESYSTEM_STATISTICS),
            "::",
            stringify!(MetaDataDiskReads)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILESYSTEM_STATISTICS>())).MetaDataWrites as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILESYSTEM_STATISTICS),
            "::",
            stringify!(MetaDataWrites)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILESYSTEM_STATISTICS>())).MetaDataWriteBytes as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILESYSTEM_STATISTICS),
            "::",
            stringify!(MetaDataWriteBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILESYSTEM_STATISTICS>())).MetaDataDiskWrites as *const _
                as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILESYSTEM_STATISTICS),
            "::",
            stringify!(MetaDataDiskWrites)
        )
    );
}
pub type FILESYSTEM_STATISTICS = _FILESYSTEM_STATISTICS;
pub type PFILESYSTEM_STATISTICS = *mut _FILESYSTEM_STATISTICS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FAT_STATISTICS {
    pub CreateHits: DWORD,
    pub SuccessfulCreates: DWORD,
    pub FailedCreates: DWORD,
    pub NonCachedReads: DWORD,
    pub NonCachedReadBytes: DWORD,
    pub NonCachedWrites: DWORD,
    pub NonCachedWriteBytes: DWORD,
    pub NonCachedDiskReads: DWORD,
    pub NonCachedDiskWrites: DWORD,
}
#[test]
fn bindgen_test_layout__FAT_STATISTICS() {
    assert_eq!(
        ::std::mem::size_of::<_FAT_STATISTICS>(),
        36usize,
        concat!("Size of: ", stringify!(_FAT_STATISTICS))
    );
    assert_eq!(
        ::std::mem::align_of::<_FAT_STATISTICS>(),
        4usize,
        concat!("Alignment of ", stringify!(_FAT_STATISTICS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FAT_STATISTICS>())).CreateHits as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FAT_STATISTICS),
            "::",
            stringify!(CreateHits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FAT_STATISTICS>())).SuccessfulCreates as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FAT_STATISTICS),
            "::",
            stringify!(SuccessfulCreates)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FAT_STATISTICS>())).FailedCreates as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FAT_STATISTICS),
            "::",
            stringify!(FailedCreates)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FAT_STATISTICS>())).NonCachedReads as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_FAT_STATISTICS),
            "::",
            stringify!(NonCachedReads)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FAT_STATISTICS>())).NonCachedReadBytes as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FAT_STATISTICS),
            "::",
            stringify!(NonCachedReadBytes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FAT_STATISTICS>())).NonCachedWrites as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_FAT_STATISTICS),
            "::",
            stringify!(NonCachedWrites)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FAT_STATISTICS>())).NonCachedWriteBytes as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_FAT_STATISTICS),
            "::",
            stringify!(NonCachedWriteBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FAT_STATISTICS>())).NonCachedDiskReads as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_FAT_STATISTICS),
            "::",
            stringify!(NonCachedDiskReads)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FAT_STATISTICS>())).NonCachedDiskWrites as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_FAT_STATISTICS),
            "::",
            stringify!(NonCachedDiskWrites)
        )
    );
}
pub type FAT_STATISTICS = _FAT_STATISTICS;
pub type PFAT_STATISTICS = *mut _FAT_STATISTICS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _EXFAT_STATISTICS {
    pub CreateHits: DWORD,
    pub SuccessfulCreates: DWORD,
    pub FailedCreates: DWORD,
    pub NonCachedReads: DWORD,
    pub NonCachedReadBytes: DWORD,
    pub NonCachedWrites: DWORD,
    pub NonCachedWriteBytes: DWORD,
    pub NonCachedDiskReads: DWORD,
    pub NonCachedDiskWrites: DWORD,
}
#[test]
fn bindgen_test_layout__EXFAT_STATISTICS() {
    assert_eq!(
        ::std::mem::size_of::<_EXFAT_STATISTICS>(),
        36usize,
        concat!("Size of: ", stringify!(_EXFAT_STATISTICS))
    );
    assert_eq!(
        ::std::mem::align_of::<_EXFAT_STATISTICS>(),
        4usize,
        concat!("Alignment of ", stringify!(_EXFAT_STATISTICS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EXFAT_STATISTICS>())).CreateHits as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXFAT_STATISTICS),
            "::",
            stringify!(CreateHits)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXFAT_STATISTICS>())).SuccessfulCreates as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXFAT_STATISTICS),
            "::",
            stringify!(SuccessfulCreates)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_EXFAT_STATISTICS>())).FailedCreates as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXFAT_STATISTICS),
            "::",
            stringify!(FailedCreates)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXFAT_STATISTICS>())).NonCachedReads as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXFAT_STATISTICS),
            "::",
            stringify!(NonCachedReads)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXFAT_STATISTICS>())).NonCachedReadBytes as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXFAT_STATISTICS),
            "::",
            stringify!(NonCachedReadBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXFAT_STATISTICS>())).NonCachedWrites as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXFAT_STATISTICS),
            "::",
            stringify!(NonCachedWrites)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXFAT_STATISTICS>())).NonCachedWriteBytes as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXFAT_STATISTICS),
            "::",
            stringify!(NonCachedWriteBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXFAT_STATISTICS>())).NonCachedDiskReads as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXFAT_STATISTICS),
            "::",
            stringify!(NonCachedDiskReads)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXFAT_STATISTICS>())).NonCachedDiskWrites as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXFAT_STATISTICS),
            "::",
            stringify!(NonCachedDiskWrites)
        )
    );
}
pub type EXFAT_STATISTICS = _EXFAT_STATISTICS;
pub type PEXFAT_STATISTICS = *mut _EXFAT_STATISTICS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NTFS_STATISTICS {
    pub LogFileFullExceptions: DWORD,
    pub OtherExceptions: DWORD,
    pub MftReads: DWORD,
    pub MftReadBytes: DWORD,
    pub MftWrites: DWORD,
    pub MftWriteBytes: DWORD,
    pub MftWritesUserLevel: _NTFS_STATISTICS__bindgen_ty_1,
    pub MftWritesFlushForLogFileFull: WORD,
    pub MftWritesLazyWriter: WORD,
    pub MftWritesUserRequest: WORD,
    pub Mft2Writes: DWORD,
    pub Mft2WriteBytes: DWORD,
    pub Mft2WritesUserLevel: _NTFS_STATISTICS__bindgen_ty_2,
    pub Mft2WritesFlushForLogFileFull: WORD,
    pub Mft2WritesLazyWriter: WORD,
    pub Mft2WritesUserRequest: WORD,
    pub RootIndexReads: DWORD,
    pub RootIndexReadBytes: DWORD,
    pub RootIndexWrites: DWORD,
    pub RootIndexWriteBytes: DWORD,
    pub BitmapReads: DWORD,
    pub BitmapReadBytes: DWORD,
    pub BitmapWrites: DWORD,
    pub BitmapWriteBytes: DWORD,
    pub BitmapWritesFlushForLogFileFull: WORD,
    pub BitmapWritesLazyWriter: WORD,
    pub BitmapWritesUserRequest: WORD,
    pub BitmapWritesUserLevel: _NTFS_STATISTICS__bindgen_ty_3,
    pub MftBitmapReads: DWORD,
    pub MftBitmapReadBytes: DWORD,
    pub MftBitmapWrites: DWORD,
    pub MftBitmapWriteBytes: DWORD,
    pub MftBitmapWritesFlushForLogFileFull: WORD,
    pub MftBitmapWritesLazyWriter: WORD,
    pub MftBitmapWritesUserRequest: WORD,
    pub MftBitmapWritesUserLevel: _NTFS_STATISTICS__bindgen_ty_4,
    pub UserIndexReads: DWORD,
    pub UserIndexReadBytes: DWORD,
    pub UserIndexWrites: DWORD,
    pub UserIndexWriteBytes: DWORD,
    pub LogFileReads: DWORD,
    pub LogFileReadBytes: DWORD,
    pub LogFileWrites: DWORD,
    pub LogFileWriteBytes: DWORD,
    pub Allocate: _NTFS_STATISTICS__bindgen_ty_5,
    pub DiskResourcesExhausted: DWORD,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NTFS_STATISTICS__bindgen_ty_1 {
    pub Write: WORD,
    pub Create: WORD,
    pub SetInfo: WORD,
    pub Flush: WORD,
}
#[test]
fn bindgen_test_layout__NTFS_STATISTICS__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_NTFS_STATISTICS__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_NTFS_STATISTICS__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_NTFS_STATISTICS__bindgen_ty_1>(),
        2usize,
        concat!("Alignment of ", stringify!(_NTFS_STATISTICS__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS__bindgen_ty_1>())).Write as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS__bindgen_ty_1),
            "::",
            stringify!(Write)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS__bindgen_ty_1>())).Create as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS__bindgen_ty_1),
            "::",
            stringify!(Create)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS__bindgen_ty_1>())).SetInfo as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS__bindgen_ty_1),
            "::",
            stringify!(SetInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS__bindgen_ty_1>())).Flush as *const _ as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS__bindgen_ty_1),
            "::",
            stringify!(Flush)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NTFS_STATISTICS__bindgen_ty_2 {
    pub Write: WORD,
    pub Create: WORD,
    pub SetInfo: WORD,
    pub Flush: WORD,
}
#[test]
fn bindgen_test_layout__NTFS_STATISTICS__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_NTFS_STATISTICS__bindgen_ty_2>(),
        8usize,
        concat!("Size of: ", stringify!(_NTFS_STATISTICS__bindgen_ty_2))
    );
    assert_eq!(
        ::std::mem::align_of::<_NTFS_STATISTICS__bindgen_ty_2>(),
        2usize,
        concat!("Alignment of ", stringify!(_NTFS_STATISTICS__bindgen_ty_2))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS__bindgen_ty_2>())).Write as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS__bindgen_ty_2),
            "::",
            stringify!(Write)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS__bindgen_ty_2>())).Create as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS__bindgen_ty_2),
            "::",
            stringify!(Create)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS__bindgen_ty_2>())).SetInfo as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS__bindgen_ty_2),
            "::",
            stringify!(SetInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS__bindgen_ty_2>())).Flush as *const _ as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS__bindgen_ty_2),
            "::",
            stringify!(Flush)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NTFS_STATISTICS__bindgen_ty_3 {
    pub Write: WORD,
    pub Create: WORD,
    pub SetInfo: WORD,
}
#[test]
fn bindgen_test_layout__NTFS_STATISTICS__bindgen_ty_3() {
    assert_eq!(
        ::std::mem::size_of::<_NTFS_STATISTICS__bindgen_ty_3>(),
        6usize,
        concat!("Size of: ", stringify!(_NTFS_STATISTICS__bindgen_ty_3))
    );
    assert_eq!(
        ::std::mem::align_of::<_NTFS_STATISTICS__bindgen_ty_3>(),
        2usize,
        concat!("Alignment of ", stringify!(_NTFS_STATISTICS__bindgen_ty_3))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS__bindgen_ty_3>())).Write as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS__bindgen_ty_3),
            "::",
            stringify!(Write)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS__bindgen_ty_3>())).Create as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS__bindgen_ty_3),
            "::",
            stringify!(Create)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS__bindgen_ty_3>())).SetInfo as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS__bindgen_ty_3),
            "::",
            stringify!(SetInfo)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NTFS_STATISTICS__bindgen_ty_4 {
    pub Write: WORD,
    pub Create: WORD,
    pub SetInfo: WORD,
    pub Flush: WORD,
}
#[test]
fn bindgen_test_layout__NTFS_STATISTICS__bindgen_ty_4() {
    assert_eq!(
        ::std::mem::size_of::<_NTFS_STATISTICS__bindgen_ty_4>(),
        8usize,
        concat!("Size of: ", stringify!(_NTFS_STATISTICS__bindgen_ty_4))
    );
    assert_eq!(
        ::std::mem::align_of::<_NTFS_STATISTICS__bindgen_ty_4>(),
        2usize,
        concat!("Alignment of ", stringify!(_NTFS_STATISTICS__bindgen_ty_4))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS__bindgen_ty_4>())).Write as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS__bindgen_ty_4),
            "::",
            stringify!(Write)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS__bindgen_ty_4>())).Create as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS__bindgen_ty_4),
            "::",
            stringify!(Create)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS__bindgen_ty_4>())).SetInfo as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS__bindgen_ty_4),
            "::",
            stringify!(SetInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS__bindgen_ty_4>())).Flush as *const _ as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS__bindgen_ty_4),
            "::",
            stringify!(Flush)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NTFS_STATISTICS__bindgen_ty_5 {
    pub Calls: DWORD,
    pub Clusters: DWORD,
    pub Hints: DWORD,
    pub RunsReturned: DWORD,
    pub HintsHonored: DWORD,
    pub HintsClusters: DWORD,
    pub Cache: DWORD,
    pub CacheClusters: DWORD,
    pub CacheMiss: DWORD,
    pub CacheMissClusters: DWORD,
}
#[test]
fn bindgen_test_layout__NTFS_STATISTICS__bindgen_ty_5() {
    assert_eq!(
        ::std::mem::size_of::<_NTFS_STATISTICS__bindgen_ty_5>(),
        40usize,
        concat!("Size of: ", stringify!(_NTFS_STATISTICS__bindgen_ty_5))
    );
    assert_eq!(
        ::std::mem::align_of::<_NTFS_STATISTICS__bindgen_ty_5>(),
        4usize,
        concat!("Alignment of ", stringify!(_NTFS_STATISTICS__bindgen_ty_5))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS__bindgen_ty_5>())).Calls as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS__bindgen_ty_5),
            "::",
            stringify!(Calls)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS__bindgen_ty_5>())).Clusters as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS__bindgen_ty_5),
            "::",
            stringify!(Clusters)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS__bindgen_ty_5>())).Hints as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS__bindgen_ty_5),
            "::",
            stringify!(Hints)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS__bindgen_ty_5>())).RunsReturned as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS__bindgen_ty_5),
            "::",
            stringify!(RunsReturned)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS__bindgen_ty_5>())).HintsHonored as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS__bindgen_ty_5),
            "::",
            stringify!(HintsHonored)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS__bindgen_ty_5>())).HintsClusters as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS__bindgen_ty_5),
            "::",
            stringify!(HintsClusters)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS__bindgen_ty_5>())).Cache as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS__bindgen_ty_5),
            "::",
            stringify!(Cache)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS__bindgen_ty_5>())).CacheClusters as *const _
                as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS__bindgen_ty_5),
            "::",
            stringify!(CacheClusters)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS__bindgen_ty_5>())).CacheMiss as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS__bindgen_ty_5),
            "::",
            stringify!(CacheMiss)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS__bindgen_ty_5>())).CacheMissClusters as *const _
                as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS__bindgen_ty_5),
            "::",
            stringify!(CacheMissClusters)
        )
    );
}
#[test]
fn bindgen_test_layout__NTFS_STATISTICS() {
    assert_eq!(
        ::std::mem::size_of::<_NTFS_STATISTICS>(),
        216usize,
        concat!("Size of: ", stringify!(_NTFS_STATISTICS))
    );
    assert_eq!(
        ::std::mem::align_of::<_NTFS_STATISTICS>(),
        4usize,
        concat!("Alignment of ", stringify!(_NTFS_STATISTICS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS>())).LogFileFullExceptions as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(LogFileFullExceptions)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS>())).OtherExceptions as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(OtherExceptions)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NTFS_STATISTICS>())).MftReads as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(MftReads)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NTFS_STATISTICS>())).MftReadBytes as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(MftReadBytes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NTFS_STATISTICS>())).MftWrites as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(MftWrites)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NTFS_STATISTICS>())).MftWriteBytes as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(MftWriteBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS>())).MftWritesUserLevel as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(MftWritesUserLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS>())).MftWritesFlushForLogFileFull as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(MftWritesFlushForLogFileFull)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS>())).MftWritesLazyWriter as *const _ as usize
        },
        34usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(MftWritesLazyWriter)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS>())).MftWritesUserRequest as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(MftWritesUserRequest)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NTFS_STATISTICS>())).Mft2Writes as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(Mft2Writes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NTFS_STATISTICS>())).Mft2WriteBytes as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(Mft2WriteBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS>())).Mft2WritesUserLevel as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(Mft2WritesUserLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS>())).Mft2WritesFlushForLogFileFull as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(Mft2WritesFlushForLogFileFull)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS>())).Mft2WritesLazyWriter as *const _ as usize
        },
        58usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(Mft2WritesLazyWriter)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS>())).Mft2WritesUserRequest as *const _ as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(Mft2WritesUserRequest)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NTFS_STATISTICS>())).RootIndexReads as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(RootIndexReads)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS>())).RootIndexReadBytes as *const _ as usize
        },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(RootIndexReadBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS>())).RootIndexWrites as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(RootIndexWrites)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS>())).RootIndexWriteBytes as *const _ as usize
        },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(RootIndexWriteBytes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NTFS_STATISTICS>())).BitmapReads as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(BitmapReads)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS>())).BitmapReadBytes as *const _ as usize
        },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(BitmapReadBytes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NTFS_STATISTICS>())).BitmapWrites as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(BitmapWrites)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS>())).BitmapWriteBytes as *const _ as usize
        },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(BitmapWriteBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS>())).BitmapWritesFlushForLogFileFull as *const _
                as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(BitmapWritesFlushForLogFileFull)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS>())).BitmapWritesLazyWriter as *const _ as usize
        },
        98usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(BitmapWritesLazyWriter)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS>())).BitmapWritesUserRequest as *const _
                as usize
        },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(BitmapWritesUserRequest)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS>())).BitmapWritesUserLevel as *const _ as usize
        },
        102usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(BitmapWritesUserLevel)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NTFS_STATISTICS>())).MftBitmapReads as *const _ as usize },
        108usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(MftBitmapReads)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS>())).MftBitmapReadBytes as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(MftBitmapReadBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS>())).MftBitmapWrites as *const _ as usize
        },
        116usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(MftBitmapWrites)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS>())).MftBitmapWriteBytes as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(MftBitmapWriteBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS>())).MftBitmapWritesFlushForLogFileFull
                as *const _ as usize
        },
        124usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(MftBitmapWritesFlushForLogFileFull)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS>())).MftBitmapWritesLazyWriter as *const _
                as usize
        },
        126usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(MftBitmapWritesLazyWriter)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS>())).MftBitmapWritesUserRequest as *const _
                as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(MftBitmapWritesUserRequest)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS>())).MftBitmapWritesUserLevel as *const _
                as usize
        },
        130usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(MftBitmapWritesUserLevel)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NTFS_STATISTICS>())).UserIndexReads as *const _ as usize },
        140usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(UserIndexReads)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS>())).UserIndexReadBytes as *const _ as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(UserIndexReadBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS>())).UserIndexWrites as *const _ as usize
        },
        148usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(UserIndexWrites)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS>())).UserIndexWriteBytes as *const _ as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(UserIndexWriteBytes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NTFS_STATISTICS>())).LogFileReads as *const _ as usize },
        156usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(LogFileReads)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS>())).LogFileReadBytes as *const _ as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(LogFileReadBytes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NTFS_STATISTICS>())).LogFileWrites as *const _ as usize },
        164usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(LogFileWrites)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS>())).LogFileWriteBytes as *const _ as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(LogFileWriteBytes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NTFS_STATISTICS>())).Allocate as *const _ as usize },
        172usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(Allocate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS>())).DiskResourcesExhausted as *const _ as usize
        },
        212usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS),
            "::",
            stringify!(DiskResourcesExhausted)
        )
    );
}
pub type NTFS_STATISTICS = _NTFS_STATISTICS;
pub type PNTFS_STATISTICS = *mut _NTFS_STATISTICS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILESYSTEM_STATISTICS_EX {
    pub FileSystemType: WORD,
    pub Version: WORD,
    pub SizeOfCompleteStructure: DWORD,
    pub UserFileReads: DWORDLONG,
    pub UserFileReadBytes: DWORDLONG,
    pub UserDiskReads: DWORDLONG,
    pub UserFileWrites: DWORDLONG,
    pub UserFileWriteBytes: DWORDLONG,
    pub UserDiskWrites: DWORDLONG,
    pub MetaDataReads: DWORDLONG,
    pub MetaDataReadBytes: DWORDLONG,
    pub MetaDataDiskReads: DWORDLONG,
    pub MetaDataWrites: DWORDLONG,
    pub MetaDataWriteBytes: DWORDLONG,
    pub MetaDataDiskWrites: DWORDLONG,
}
#[test]
fn bindgen_test_layout__FILESYSTEM_STATISTICS_EX() {
    assert_eq!(
        ::std::mem::size_of::<_FILESYSTEM_STATISTICS_EX>(),
        104usize,
        concat!("Size of: ", stringify!(_FILESYSTEM_STATISTICS_EX))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILESYSTEM_STATISTICS_EX>(),
        8usize,
        concat!("Alignment of ", stringify!(_FILESYSTEM_STATISTICS_EX))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILESYSTEM_STATISTICS_EX>())).FileSystemType as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILESYSTEM_STATISTICS_EX),
            "::",
            stringify!(FileSystemType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILESYSTEM_STATISTICS_EX>())).Version as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILESYSTEM_STATISTICS_EX),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILESYSTEM_STATISTICS_EX>())).SizeOfCompleteStructure
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILESYSTEM_STATISTICS_EX),
            "::",
            stringify!(SizeOfCompleteStructure)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILESYSTEM_STATISTICS_EX>())).UserFileReads as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILESYSTEM_STATISTICS_EX),
            "::",
            stringify!(UserFileReads)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILESYSTEM_STATISTICS_EX>())).UserFileReadBytes as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILESYSTEM_STATISTICS_EX),
            "::",
            stringify!(UserFileReadBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILESYSTEM_STATISTICS_EX>())).UserDiskReads as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILESYSTEM_STATISTICS_EX),
            "::",
            stringify!(UserDiskReads)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILESYSTEM_STATISTICS_EX>())).UserFileWrites as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILESYSTEM_STATISTICS_EX),
            "::",
            stringify!(UserFileWrites)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILESYSTEM_STATISTICS_EX>())).UserFileWriteBytes as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILESYSTEM_STATISTICS_EX),
            "::",
            stringify!(UserFileWriteBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILESYSTEM_STATISTICS_EX>())).UserDiskWrites as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILESYSTEM_STATISTICS_EX),
            "::",
            stringify!(UserDiskWrites)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILESYSTEM_STATISTICS_EX>())).MetaDataReads as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILESYSTEM_STATISTICS_EX),
            "::",
            stringify!(MetaDataReads)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILESYSTEM_STATISTICS_EX>())).MetaDataReadBytes as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILESYSTEM_STATISTICS_EX),
            "::",
            stringify!(MetaDataReadBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILESYSTEM_STATISTICS_EX>())).MetaDataDiskReads as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILESYSTEM_STATISTICS_EX),
            "::",
            stringify!(MetaDataDiskReads)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILESYSTEM_STATISTICS_EX>())).MetaDataWrites as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILESYSTEM_STATISTICS_EX),
            "::",
            stringify!(MetaDataWrites)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILESYSTEM_STATISTICS_EX>())).MetaDataWriteBytes as *const _
                as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILESYSTEM_STATISTICS_EX),
            "::",
            stringify!(MetaDataWriteBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILESYSTEM_STATISTICS_EX>())).MetaDataDiskWrites as *const _
                as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILESYSTEM_STATISTICS_EX),
            "::",
            stringify!(MetaDataDiskWrites)
        )
    );
}
pub type FILESYSTEM_STATISTICS_EX = _FILESYSTEM_STATISTICS_EX;
pub type PFILESYSTEM_STATISTICS_EX = *mut _FILESYSTEM_STATISTICS_EX;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NTFS_STATISTICS_EX {
    pub LogFileFullExceptions: DWORD,
    pub OtherExceptions: DWORD,
    pub MftReads: DWORDLONG,
    pub MftReadBytes: DWORDLONG,
    pub MftWrites: DWORDLONG,
    pub MftWriteBytes: DWORDLONG,
    pub MftWritesUserLevel: _NTFS_STATISTICS_EX__bindgen_ty_1,
    pub MftWritesFlushForLogFileFull: DWORD,
    pub MftWritesLazyWriter: DWORD,
    pub MftWritesUserRequest: DWORD,
    pub Mft2Writes: DWORDLONG,
    pub Mft2WriteBytes: DWORDLONG,
    pub Mft2WritesUserLevel: _NTFS_STATISTICS_EX__bindgen_ty_2,
    pub Mft2WritesFlushForLogFileFull: DWORD,
    pub Mft2WritesLazyWriter: DWORD,
    pub Mft2WritesUserRequest: DWORD,
    pub RootIndexReads: DWORDLONG,
    pub RootIndexReadBytes: DWORDLONG,
    pub RootIndexWrites: DWORDLONG,
    pub RootIndexWriteBytes: DWORDLONG,
    pub BitmapReads: DWORDLONG,
    pub BitmapReadBytes: DWORDLONG,
    pub BitmapWrites: DWORDLONG,
    pub BitmapWriteBytes: DWORDLONG,
    pub BitmapWritesFlushForLogFileFull: DWORD,
    pub BitmapWritesLazyWriter: DWORD,
    pub BitmapWritesUserRequest: DWORD,
    pub BitmapWritesUserLevel: _NTFS_STATISTICS_EX__bindgen_ty_3,
    pub MftBitmapReads: DWORDLONG,
    pub MftBitmapReadBytes: DWORDLONG,
    pub MftBitmapWrites: DWORDLONG,
    pub MftBitmapWriteBytes: DWORDLONG,
    pub MftBitmapWritesFlushForLogFileFull: DWORD,
    pub MftBitmapWritesLazyWriter: DWORD,
    pub MftBitmapWritesUserRequest: DWORD,
    pub MftBitmapWritesUserLevel: _NTFS_STATISTICS_EX__bindgen_ty_4,
    pub UserIndexReads: DWORDLONG,
    pub UserIndexReadBytes: DWORDLONG,
    pub UserIndexWrites: DWORDLONG,
    pub UserIndexWriteBytes: DWORDLONG,
    pub LogFileReads: DWORDLONG,
    pub LogFileReadBytes: DWORDLONG,
    pub LogFileWrites: DWORDLONG,
    pub LogFileWriteBytes: DWORDLONG,
    pub Allocate: _NTFS_STATISTICS_EX__bindgen_ty_5,
    pub DiskResourcesExhausted: DWORD,
    pub VolumeTrimCount: DWORDLONG,
    pub VolumeTrimTime: DWORDLONG,
    pub VolumeTrimByteCount: DWORDLONG,
    pub FileLevelTrimCount: DWORDLONG,
    pub FileLevelTrimTime: DWORDLONG,
    pub FileLevelTrimByteCount: DWORDLONG,
    pub VolumeTrimSkippedCount: DWORDLONG,
    pub VolumeTrimSkippedByteCount: DWORDLONG,
    pub NtfsFillStatInfoFromMftRecordCalledCount: DWORDLONG,
    pub NtfsFillStatInfoFromMftRecordBailedBecauseOfAttributeListCount: DWORDLONG,
    pub NtfsFillStatInfoFromMftRecordBailedBecauseOfNonResReparsePointCount: DWORDLONG,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NTFS_STATISTICS_EX__bindgen_ty_1 {
    pub Write: DWORD,
    pub Create: DWORD,
    pub SetInfo: DWORD,
    pub Flush: DWORD,
}
#[test]
fn bindgen_test_layout__NTFS_STATISTICS_EX__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_NTFS_STATISTICS_EX__bindgen_ty_1>(),
        16usize,
        concat!("Size of: ", stringify!(_NTFS_STATISTICS_EX__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_NTFS_STATISTICS_EX__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_NTFS_STATISTICS_EX__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX__bindgen_ty_1>())).Write as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX__bindgen_ty_1),
            "::",
            stringify!(Write)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX__bindgen_ty_1>())).Create as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX__bindgen_ty_1),
            "::",
            stringify!(Create)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX__bindgen_ty_1>())).SetInfo as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX__bindgen_ty_1),
            "::",
            stringify!(SetInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX__bindgen_ty_1>())).Flush as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX__bindgen_ty_1),
            "::",
            stringify!(Flush)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NTFS_STATISTICS_EX__bindgen_ty_2 {
    pub Write: DWORD,
    pub Create: DWORD,
    pub SetInfo: DWORD,
    pub Flush: DWORD,
}
#[test]
fn bindgen_test_layout__NTFS_STATISTICS_EX__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_NTFS_STATISTICS_EX__bindgen_ty_2>(),
        16usize,
        concat!("Size of: ", stringify!(_NTFS_STATISTICS_EX__bindgen_ty_2))
    );
    assert_eq!(
        ::std::mem::align_of::<_NTFS_STATISTICS_EX__bindgen_ty_2>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_NTFS_STATISTICS_EX__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX__bindgen_ty_2>())).Write as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX__bindgen_ty_2),
            "::",
            stringify!(Write)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX__bindgen_ty_2>())).Create as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX__bindgen_ty_2),
            "::",
            stringify!(Create)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX__bindgen_ty_2>())).SetInfo as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX__bindgen_ty_2),
            "::",
            stringify!(SetInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX__bindgen_ty_2>())).Flush as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX__bindgen_ty_2),
            "::",
            stringify!(Flush)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NTFS_STATISTICS_EX__bindgen_ty_3 {
    pub Write: DWORD,
    pub Create: DWORD,
    pub SetInfo: DWORD,
    pub Flush: DWORD,
}
#[test]
fn bindgen_test_layout__NTFS_STATISTICS_EX__bindgen_ty_3() {
    assert_eq!(
        ::std::mem::size_of::<_NTFS_STATISTICS_EX__bindgen_ty_3>(),
        16usize,
        concat!("Size of: ", stringify!(_NTFS_STATISTICS_EX__bindgen_ty_3))
    );
    assert_eq!(
        ::std::mem::align_of::<_NTFS_STATISTICS_EX__bindgen_ty_3>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_NTFS_STATISTICS_EX__bindgen_ty_3)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX__bindgen_ty_3>())).Write as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX__bindgen_ty_3),
            "::",
            stringify!(Write)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX__bindgen_ty_3>())).Create as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX__bindgen_ty_3),
            "::",
            stringify!(Create)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX__bindgen_ty_3>())).SetInfo as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX__bindgen_ty_3),
            "::",
            stringify!(SetInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX__bindgen_ty_3>())).Flush as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX__bindgen_ty_3),
            "::",
            stringify!(Flush)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NTFS_STATISTICS_EX__bindgen_ty_4 {
    pub Write: DWORD,
    pub Create: DWORD,
    pub SetInfo: DWORD,
    pub Flush: DWORD,
}
#[test]
fn bindgen_test_layout__NTFS_STATISTICS_EX__bindgen_ty_4() {
    assert_eq!(
        ::std::mem::size_of::<_NTFS_STATISTICS_EX__bindgen_ty_4>(),
        16usize,
        concat!("Size of: ", stringify!(_NTFS_STATISTICS_EX__bindgen_ty_4))
    );
    assert_eq!(
        ::std::mem::align_of::<_NTFS_STATISTICS_EX__bindgen_ty_4>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_NTFS_STATISTICS_EX__bindgen_ty_4)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX__bindgen_ty_4>())).Write as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX__bindgen_ty_4),
            "::",
            stringify!(Write)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX__bindgen_ty_4>())).Create as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX__bindgen_ty_4),
            "::",
            stringify!(Create)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX__bindgen_ty_4>())).SetInfo as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX__bindgen_ty_4),
            "::",
            stringify!(SetInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX__bindgen_ty_4>())).Flush as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX__bindgen_ty_4),
            "::",
            stringify!(Flush)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _NTFS_STATISTICS_EX__bindgen_ty_5 {
    pub Calls: DWORD,
    pub RunsReturned: DWORD,
    pub Hints: DWORD,
    pub HintsHonored: DWORD,
    pub Cache: DWORD,
    pub CacheMiss: DWORD,
    pub Clusters: DWORDLONG,
    pub HintsClusters: DWORDLONG,
    pub CacheClusters: DWORDLONG,
    pub CacheMissClusters: DWORDLONG,
}
#[test]
fn bindgen_test_layout__NTFS_STATISTICS_EX__bindgen_ty_5() {
    assert_eq!(
        ::std::mem::size_of::<_NTFS_STATISTICS_EX__bindgen_ty_5>(),
        56usize,
        concat!("Size of: ", stringify!(_NTFS_STATISTICS_EX__bindgen_ty_5))
    );
    assert_eq!(
        ::std::mem::align_of::<_NTFS_STATISTICS_EX__bindgen_ty_5>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_NTFS_STATISTICS_EX__bindgen_ty_5)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX__bindgen_ty_5>())).Calls as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX__bindgen_ty_5),
            "::",
            stringify!(Calls)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX__bindgen_ty_5>())).RunsReturned as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX__bindgen_ty_5),
            "::",
            stringify!(RunsReturned)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX__bindgen_ty_5>())).Hints as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX__bindgen_ty_5),
            "::",
            stringify!(Hints)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX__bindgen_ty_5>())).HintsHonored as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX__bindgen_ty_5),
            "::",
            stringify!(HintsHonored)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX__bindgen_ty_5>())).Cache as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX__bindgen_ty_5),
            "::",
            stringify!(Cache)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX__bindgen_ty_5>())).CacheMiss as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX__bindgen_ty_5),
            "::",
            stringify!(CacheMiss)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX__bindgen_ty_5>())).Clusters as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX__bindgen_ty_5),
            "::",
            stringify!(Clusters)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX__bindgen_ty_5>())).HintsClusters as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX__bindgen_ty_5),
            "::",
            stringify!(HintsClusters)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX__bindgen_ty_5>())).CacheClusters as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX__bindgen_ty_5),
            "::",
            stringify!(CacheClusters)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX__bindgen_ty_5>())).CacheMissClusters
                as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX__bindgen_ty_5),
            "::",
            stringify!(CacheMissClusters)
        )
    );
}
#[test]
fn bindgen_test_layout__NTFS_STATISTICS_EX() {
    assert_eq!(
        ::std::mem::size_of::<_NTFS_STATISTICS_EX>(),
        496usize,
        concat!("Size of: ", stringify!(_NTFS_STATISTICS_EX))
    );
    assert_eq!(
        ::std::mem::align_of::<_NTFS_STATISTICS_EX>(),
        8usize,
        concat!("Alignment of ", stringify!(_NTFS_STATISTICS_EX))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).LogFileFullExceptions as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(LogFileFullExceptions)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).OtherExceptions as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(OtherExceptions)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).MftReads as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(MftReads)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).MftReadBytes as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(MftReadBytes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).MftWrites as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(MftWrites)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).MftWriteBytes as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(MftWriteBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).MftWritesUserLevel as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(MftWritesUserLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).MftWritesFlushForLogFileFull as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(MftWritesFlushForLogFileFull)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).MftWritesLazyWriter as *const _ as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(MftWritesLazyWriter)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).MftWritesUserRequest as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(MftWritesUserRequest)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).Mft2Writes as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(Mft2Writes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).Mft2WriteBytes as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(Mft2WriteBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).Mft2WritesUserLevel as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(Mft2WritesUserLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).Mft2WritesFlushForLogFileFull
                as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(Mft2WritesFlushForLogFileFull)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).Mft2WritesLazyWriter as *const _
                as usize
        },
        108usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(Mft2WritesLazyWriter)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).Mft2WritesUserRequest as *const _
                as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(Mft2WritesUserRequest)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).RootIndexReads as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(RootIndexReads)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).RootIndexReadBytes as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(RootIndexReadBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).RootIndexWrites as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(RootIndexWrites)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).RootIndexWriteBytes as *const _ as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(RootIndexWriteBytes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).BitmapReads as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(BitmapReads)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).BitmapReadBytes as *const _ as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(BitmapReadBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).BitmapWrites as *const _ as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(BitmapWrites)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).BitmapWriteBytes as *const _ as usize
        },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(BitmapWriteBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).BitmapWritesFlushForLogFileFull
                as *const _ as usize
        },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(BitmapWritesFlushForLogFileFull)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).BitmapWritesLazyWriter as *const _
                as usize
        },
        188usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(BitmapWritesLazyWriter)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).BitmapWritesUserRequest as *const _
                as usize
        },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(BitmapWritesUserRequest)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).BitmapWritesUserLevel as *const _
                as usize
        },
        196usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(BitmapWritesUserLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).MftBitmapReads as *const _ as usize
        },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(MftBitmapReads)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).MftBitmapReadBytes as *const _ as usize
        },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(MftBitmapReadBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).MftBitmapWrites as *const _ as usize
        },
        232usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(MftBitmapWrites)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).MftBitmapWriteBytes as *const _ as usize
        },
        240usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(MftBitmapWriteBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).MftBitmapWritesFlushForLogFileFull
                as *const _ as usize
        },
        248usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(MftBitmapWritesFlushForLogFileFull)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).MftBitmapWritesLazyWriter as *const _
                as usize
        },
        252usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(MftBitmapWritesLazyWriter)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).MftBitmapWritesUserRequest as *const _
                as usize
        },
        256usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(MftBitmapWritesUserRequest)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).MftBitmapWritesUserLevel as *const _
                as usize
        },
        260usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(MftBitmapWritesUserLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).UserIndexReads as *const _ as usize
        },
        280usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(UserIndexReads)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).UserIndexReadBytes as *const _ as usize
        },
        288usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(UserIndexReadBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).UserIndexWrites as *const _ as usize
        },
        296usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(UserIndexWrites)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).UserIndexWriteBytes as *const _ as usize
        },
        304usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(UserIndexWriteBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).LogFileReads as *const _ as usize
        },
        312usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(LogFileReads)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).LogFileReadBytes as *const _ as usize
        },
        320usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(LogFileReadBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).LogFileWrites as *const _ as usize
        },
        328usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(LogFileWrites)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).LogFileWriteBytes as *const _ as usize
        },
        336usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(LogFileWriteBytes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).Allocate as *const _ as usize },
        344usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(Allocate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).DiskResourcesExhausted as *const _
                as usize
        },
        400usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(DiskResourcesExhausted)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).VolumeTrimCount as *const _ as usize
        },
        408usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(VolumeTrimCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).VolumeTrimTime as *const _ as usize
        },
        416usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(VolumeTrimTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).VolumeTrimByteCount as *const _ as usize
        },
        424usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(VolumeTrimByteCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).FileLevelTrimCount as *const _ as usize
        },
        432usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(FileLevelTrimCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).FileLevelTrimTime as *const _ as usize
        },
        440usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(FileLevelTrimTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).FileLevelTrimByteCount as *const _
                as usize
        },
        448usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(FileLevelTrimByteCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).VolumeTrimSkippedCount as *const _
                as usize
        },
        456usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(VolumeTrimSkippedCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).VolumeTrimSkippedByteCount as *const _
                as usize
        },
        464usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(VolumeTrimSkippedByteCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>())).NtfsFillStatInfoFromMftRecordCalledCount
                as *const _ as usize
        },
        472usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(NtfsFillStatInfoFromMftRecordCalledCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>()))
                .NtfsFillStatInfoFromMftRecordBailedBecauseOfAttributeListCount
                as *const _ as usize
        },
        480usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(NtfsFillStatInfoFromMftRecordBailedBecauseOfAttributeListCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_NTFS_STATISTICS_EX>()))
                .NtfsFillStatInfoFromMftRecordBailedBecauseOfNonResReparsePointCount
                as *const _ as usize
        },
        488usize,
        concat!(
            "Offset of field: ",
            stringify!(_NTFS_STATISTICS_EX),
            "::",
            stringify!(NtfsFillStatInfoFromMftRecordBailedBecauseOfNonResReparsePointCount)
        )
    );
}
pub type NTFS_STATISTICS_EX = _NTFS_STATISTICS_EX;
pub type PNTFS_STATISTICS_EX = *mut _NTFS_STATISTICS_EX;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _FILE_OBJECTID_BUFFER {
    pub ObjectId: [BYTE; 16usize],
    pub __bindgen_anon_1: _FILE_OBJECTID_BUFFER__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _FILE_OBJECTID_BUFFER__bindgen_ty_1 {
    pub __bindgen_anon_1: _FILE_OBJECTID_BUFFER__bindgen_ty_1__bindgen_ty_1,
    pub ExtendedInfo: [BYTE; 48usize],
    _bindgen_union_align: [u8; 48usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_OBJECTID_BUFFER__bindgen_ty_1__bindgen_ty_1 {
    pub BirthVolumeId: [BYTE; 16usize],
    pub BirthObjectId: [BYTE; 16usize],
    pub DomainId: [BYTE; 16usize],
}
#[test]
fn bindgen_test_layout__FILE_OBJECTID_BUFFER__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_OBJECTID_BUFFER__bindgen_ty_1__bindgen_ty_1>(),
        48usize,
        concat!(
            "Size of: ",
            stringify!(_FILE_OBJECTID_BUFFER__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_OBJECTID_BUFFER__bindgen_ty_1__bindgen_ty_1>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(_FILE_OBJECTID_BUFFER__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_OBJECTID_BUFFER__bindgen_ty_1__bindgen_ty_1>()))
                .BirthVolumeId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_OBJECTID_BUFFER__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(BirthVolumeId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_OBJECTID_BUFFER__bindgen_ty_1__bindgen_ty_1>()))
                .BirthObjectId as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_OBJECTID_BUFFER__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(BirthObjectId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_OBJECTID_BUFFER__bindgen_ty_1__bindgen_ty_1>())).DomainId
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_OBJECTID_BUFFER__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(DomainId)
        )
    );
}
#[test]
fn bindgen_test_layout__FILE_OBJECTID_BUFFER__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_OBJECTID_BUFFER__bindgen_ty_1>(),
        48usize,
        concat!("Size of: ", stringify!(_FILE_OBJECTID_BUFFER__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_OBJECTID_BUFFER__bindgen_ty_1>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(_FILE_OBJECTID_BUFFER__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_OBJECTID_BUFFER__bindgen_ty_1>())).ExtendedInfo as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_OBJECTID_BUFFER__bindgen_ty_1),
            "::",
            stringify!(ExtendedInfo)
        )
    );
}
#[test]
fn bindgen_test_layout__FILE_OBJECTID_BUFFER() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_OBJECTID_BUFFER>(),
        64usize,
        concat!("Size of: ", stringify!(_FILE_OBJECTID_BUFFER))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_OBJECTID_BUFFER>(),
        1usize,
        concat!("Alignment of ", stringify!(_FILE_OBJECTID_BUFFER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_OBJECTID_BUFFER>())).ObjectId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_OBJECTID_BUFFER),
            "::",
            stringify!(ObjectId)
        )
    );
}
pub type FILE_OBJECTID_BUFFER = _FILE_OBJECTID_BUFFER;
pub type PFILE_OBJECTID_BUFFER = *mut _FILE_OBJECTID_BUFFER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_SET_SPARSE_BUFFER {
    pub SetSparse: BOOLEAN,
}
#[test]
fn bindgen_test_layout__FILE_SET_SPARSE_BUFFER() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_SET_SPARSE_BUFFER>(),
        1usize,
        concat!("Size of: ", stringify!(_FILE_SET_SPARSE_BUFFER))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_SET_SPARSE_BUFFER>(),
        1usize,
        concat!("Alignment of ", stringify!(_FILE_SET_SPARSE_BUFFER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_SET_SPARSE_BUFFER>())).SetSparse as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_SET_SPARSE_BUFFER),
            "::",
            stringify!(SetSparse)
        )
    );
}
pub type FILE_SET_SPARSE_BUFFER = _FILE_SET_SPARSE_BUFFER;
pub type PFILE_SET_SPARSE_BUFFER = *mut _FILE_SET_SPARSE_BUFFER;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _FILE_ZERO_DATA_INFORMATION {
    pub FileOffset: LARGE_INTEGER,
    pub BeyondFinalZero: LARGE_INTEGER,
}
#[test]
fn bindgen_test_layout__FILE_ZERO_DATA_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_ZERO_DATA_INFORMATION>(),
        16usize,
        concat!("Size of: ", stringify!(_FILE_ZERO_DATA_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_ZERO_DATA_INFORMATION>(),
        8usize,
        concat!("Alignment of ", stringify!(_FILE_ZERO_DATA_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ZERO_DATA_INFORMATION>())).FileOffset as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ZERO_DATA_INFORMATION),
            "::",
            stringify!(FileOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ZERO_DATA_INFORMATION>())).BeyondFinalZero as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ZERO_DATA_INFORMATION),
            "::",
            stringify!(BeyondFinalZero)
        )
    );
}
pub type FILE_ZERO_DATA_INFORMATION = _FILE_ZERO_DATA_INFORMATION;
pub type PFILE_ZERO_DATA_INFORMATION = *mut _FILE_ZERO_DATA_INFORMATION;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _FILE_ZERO_DATA_INFORMATION_EX {
    pub FileOffset: LARGE_INTEGER,
    pub BeyondFinalZero: LARGE_INTEGER,
    pub Flags: DWORD,
}
#[test]
fn bindgen_test_layout__FILE_ZERO_DATA_INFORMATION_EX() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_ZERO_DATA_INFORMATION_EX>(),
        24usize,
        concat!("Size of: ", stringify!(_FILE_ZERO_DATA_INFORMATION_EX))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_ZERO_DATA_INFORMATION_EX>(),
        8usize,
        concat!("Alignment of ", stringify!(_FILE_ZERO_DATA_INFORMATION_EX))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ZERO_DATA_INFORMATION_EX>())).FileOffset as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ZERO_DATA_INFORMATION_EX),
            "::",
            stringify!(FileOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ZERO_DATA_INFORMATION_EX>())).BeyondFinalZero as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ZERO_DATA_INFORMATION_EX),
            "::",
            stringify!(BeyondFinalZero)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ZERO_DATA_INFORMATION_EX>())).Flags as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ZERO_DATA_INFORMATION_EX),
            "::",
            stringify!(Flags)
        )
    );
}
pub type FILE_ZERO_DATA_INFORMATION_EX = _FILE_ZERO_DATA_INFORMATION_EX;
pub type PFILE_ZERO_DATA_INFORMATION_EX = *mut _FILE_ZERO_DATA_INFORMATION_EX;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _FILE_ALLOCATED_RANGE_BUFFER {
    pub FileOffset: LARGE_INTEGER,
    pub Length: LARGE_INTEGER,
}
#[test]
fn bindgen_test_layout__FILE_ALLOCATED_RANGE_BUFFER() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_ALLOCATED_RANGE_BUFFER>(),
        16usize,
        concat!("Size of: ", stringify!(_FILE_ALLOCATED_RANGE_BUFFER))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_ALLOCATED_RANGE_BUFFER>(),
        8usize,
        concat!("Alignment of ", stringify!(_FILE_ALLOCATED_RANGE_BUFFER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ALLOCATED_RANGE_BUFFER>())).FileOffset as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ALLOCATED_RANGE_BUFFER),
            "::",
            stringify!(FileOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_ALLOCATED_RANGE_BUFFER>())).Length as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_ALLOCATED_RANGE_BUFFER),
            "::",
            stringify!(Length)
        )
    );
}
pub type FILE_ALLOCATED_RANGE_BUFFER = _FILE_ALLOCATED_RANGE_BUFFER;
pub type PFILE_ALLOCATED_RANGE_BUFFER = *mut _FILE_ALLOCATED_RANGE_BUFFER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ENCRYPTION_BUFFER {
    pub EncryptionOperation: DWORD,
    pub Private: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout__ENCRYPTION_BUFFER() {
    assert_eq!(
        ::std::mem::size_of::<_ENCRYPTION_BUFFER>(),
        8usize,
        concat!("Size of: ", stringify!(_ENCRYPTION_BUFFER))
    );
    assert_eq!(
        ::std::mem::align_of::<_ENCRYPTION_BUFFER>(),
        4usize,
        concat!("Alignment of ", stringify!(_ENCRYPTION_BUFFER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTION_BUFFER>())).EncryptionOperation as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTION_BUFFER),
            "::",
            stringify!(EncryptionOperation)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ENCRYPTION_BUFFER>())).Private as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTION_BUFFER),
            "::",
            stringify!(Private)
        )
    );
}
pub type ENCRYPTION_BUFFER = _ENCRYPTION_BUFFER;
pub type PENCRYPTION_BUFFER = *mut _ENCRYPTION_BUFFER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DECRYPTION_STATUS_BUFFER {
    pub NoEncryptedStreams: BOOLEAN,
}
#[test]
fn bindgen_test_layout__DECRYPTION_STATUS_BUFFER() {
    assert_eq!(
        ::std::mem::size_of::<_DECRYPTION_STATUS_BUFFER>(),
        1usize,
        concat!("Size of: ", stringify!(_DECRYPTION_STATUS_BUFFER))
    );
    assert_eq!(
        ::std::mem::align_of::<_DECRYPTION_STATUS_BUFFER>(),
        1usize,
        concat!("Alignment of ", stringify!(_DECRYPTION_STATUS_BUFFER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DECRYPTION_STATUS_BUFFER>())).NoEncryptedStreams as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DECRYPTION_STATUS_BUFFER),
            "::",
            stringify!(NoEncryptedStreams)
        )
    );
}
pub type DECRYPTION_STATUS_BUFFER = _DECRYPTION_STATUS_BUFFER;
pub type PDECRYPTION_STATUS_BUFFER = *mut _DECRYPTION_STATUS_BUFFER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _REQUEST_RAW_ENCRYPTED_DATA {
    pub FileOffset: LONGLONG,
    pub Length: DWORD,
}
#[test]
fn bindgen_test_layout__REQUEST_RAW_ENCRYPTED_DATA() {
    assert_eq!(
        ::std::mem::size_of::<_REQUEST_RAW_ENCRYPTED_DATA>(),
        16usize,
        concat!("Size of: ", stringify!(_REQUEST_RAW_ENCRYPTED_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<_REQUEST_RAW_ENCRYPTED_DATA>(),
        8usize,
        concat!("Alignment of ", stringify!(_REQUEST_RAW_ENCRYPTED_DATA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REQUEST_RAW_ENCRYPTED_DATA>())).FileOffset as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_REQUEST_RAW_ENCRYPTED_DATA),
            "::",
            stringify!(FileOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REQUEST_RAW_ENCRYPTED_DATA>())).Length as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_REQUEST_RAW_ENCRYPTED_DATA),
            "::",
            stringify!(Length)
        )
    );
}
pub type REQUEST_RAW_ENCRYPTED_DATA = _REQUEST_RAW_ENCRYPTED_DATA;
pub type PREQUEST_RAW_ENCRYPTED_DATA = *mut _REQUEST_RAW_ENCRYPTED_DATA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ENCRYPTED_DATA_INFO {
    pub StartingFileOffset: DWORDLONG,
    pub OutputBufferOffset: DWORD,
    pub BytesWithinFileSize: DWORD,
    pub BytesWithinValidDataLength: DWORD,
    pub CompressionFormat: WORD,
    pub DataUnitShift: BYTE,
    pub ChunkShift: BYTE,
    pub ClusterShift: BYTE,
    pub EncryptionFormat: BYTE,
    pub NumberOfDataBlocks: WORD,
    pub DataBlockSize: [DWORD; 1usize],
}
#[test]
fn bindgen_test_layout__ENCRYPTED_DATA_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_ENCRYPTED_DATA_INFO>(),
        32usize,
        concat!("Size of: ", stringify!(_ENCRYPTED_DATA_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_ENCRYPTED_DATA_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_ENCRYPTED_DATA_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTED_DATA_INFO>())).StartingFileOffset as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTED_DATA_INFO),
            "::",
            stringify!(StartingFileOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTED_DATA_INFO>())).OutputBufferOffset as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTED_DATA_INFO),
            "::",
            stringify!(OutputBufferOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTED_DATA_INFO>())).BytesWithinFileSize as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTED_DATA_INFO),
            "::",
            stringify!(BytesWithinFileSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTED_DATA_INFO>())).BytesWithinValidDataLength as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTED_DATA_INFO),
            "::",
            stringify!(BytesWithinValidDataLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTED_DATA_INFO>())).CompressionFormat as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTED_DATA_INFO),
            "::",
            stringify!(CompressionFormat)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTED_DATA_INFO>())).DataUnitShift as *const _ as usize
        },
        22usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTED_DATA_INFO),
            "::",
            stringify!(DataUnitShift)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ENCRYPTED_DATA_INFO>())).ChunkShift as *const _ as usize },
        23usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTED_DATA_INFO),
            "::",
            stringify!(ChunkShift)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTED_DATA_INFO>())).ClusterShift as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTED_DATA_INFO),
            "::",
            stringify!(ClusterShift)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTED_DATA_INFO>())).EncryptionFormat as *const _ as usize
        },
        25usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTED_DATA_INFO),
            "::",
            stringify!(EncryptionFormat)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTED_DATA_INFO>())).NumberOfDataBlocks as *const _ as usize
        },
        26usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTED_DATA_INFO),
            "::",
            stringify!(NumberOfDataBlocks)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTED_DATA_INFO>())).DataBlockSize as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTED_DATA_INFO),
            "::",
            stringify!(DataBlockSize)
        )
    );
}
pub type ENCRYPTED_DATA_INFO = _ENCRYPTED_DATA_INFO;
pub type PENCRYPTED_DATA_INFO = *mut _ENCRYPTED_DATA_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _EXTENDED_ENCRYPTED_DATA_INFO {
    pub ExtendedCode: DWORD,
    pub Length: DWORD,
    pub Flags: DWORD,
    pub Reserved: DWORD,
}
#[test]
fn bindgen_test_layout__EXTENDED_ENCRYPTED_DATA_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_EXTENDED_ENCRYPTED_DATA_INFO>(),
        16usize,
        concat!("Size of: ", stringify!(_EXTENDED_ENCRYPTED_DATA_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_EXTENDED_ENCRYPTED_DATA_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_EXTENDED_ENCRYPTED_DATA_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXTENDED_ENCRYPTED_DATA_INFO>())).ExtendedCode as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXTENDED_ENCRYPTED_DATA_INFO),
            "::",
            stringify!(ExtendedCode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXTENDED_ENCRYPTED_DATA_INFO>())).Length as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXTENDED_ENCRYPTED_DATA_INFO),
            "::",
            stringify!(Length)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXTENDED_ENCRYPTED_DATA_INFO>())).Flags as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXTENDED_ENCRYPTED_DATA_INFO),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_EXTENDED_ENCRYPTED_DATA_INFO>())).Reserved as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_EXTENDED_ENCRYPTED_DATA_INFO),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type EXTENDED_ENCRYPTED_DATA_INFO = _EXTENDED_ENCRYPTED_DATA_INFO;
pub type PEXTENDED_ENCRYPTED_DATA_INFO = *mut _EXTENDED_ENCRYPTED_DATA_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PLEX_READ_DATA_REQUEST {
    pub ByteOffset: LARGE_INTEGER,
    pub ByteLength: DWORD,
    pub PlexNumber: DWORD,
}
#[test]
fn bindgen_test_layout__PLEX_READ_DATA_REQUEST() {
    assert_eq!(
        ::std::mem::size_of::<_PLEX_READ_DATA_REQUEST>(),
        16usize,
        concat!("Size of: ", stringify!(_PLEX_READ_DATA_REQUEST))
    );
    assert_eq!(
        ::std::mem::align_of::<_PLEX_READ_DATA_REQUEST>(),
        8usize,
        concat!("Alignment of ", stringify!(_PLEX_READ_DATA_REQUEST))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PLEX_READ_DATA_REQUEST>())).ByteOffset as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PLEX_READ_DATA_REQUEST),
            "::",
            stringify!(ByteOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PLEX_READ_DATA_REQUEST>())).ByteLength as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PLEX_READ_DATA_REQUEST),
            "::",
            stringify!(ByteLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PLEX_READ_DATA_REQUEST>())).PlexNumber as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_PLEX_READ_DATA_REQUEST),
            "::",
            stringify!(PlexNumber)
        )
    );
}
pub type PLEX_READ_DATA_REQUEST = _PLEX_READ_DATA_REQUEST;
pub type PPLEX_READ_DATA_REQUEST = *mut _PLEX_READ_DATA_REQUEST;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SI_COPYFILE {
    pub SourceFileNameLength: DWORD,
    pub DestinationFileNameLength: DWORD,
    pub Flags: DWORD,
    pub FileNameBuffer: [WCHAR; 1usize],
}
#[test]
fn bindgen_test_layout__SI_COPYFILE() {
    assert_eq!(
        ::std::mem::size_of::<_SI_COPYFILE>(),
        16usize,
        concat!("Size of: ", stringify!(_SI_COPYFILE))
    );
    assert_eq!(
        ::std::mem::align_of::<_SI_COPYFILE>(),
        4usize,
        concat!("Alignment of ", stringify!(_SI_COPYFILE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SI_COPYFILE>())).SourceFileNameLength as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SI_COPYFILE),
            "::",
            stringify!(SourceFileNameLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SI_COPYFILE>())).DestinationFileNameLength as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SI_COPYFILE),
            "::",
            stringify!(DestinationFileNameLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SI_COPYFILE>())).Flags as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SI_COPYFILE),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SI_COPYFILE>())).FileNameBuffer as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_SI_COPYFILE),
            "::",
            stringify!(FileNameBuffer)
        )
    );
}
pub type SI_COPYFILE = _SI_COPYFILE;
pub type PSI_COPYFILE = *mut _SI_COPYFILE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_MAKE_COMPATIBLE_BUFFER {
    pub CloseDisc: BOOLEAN,
}
#[test]
fn bindgen_test_layout__FILE_MAKE_COMPATIBLE_BUFFER() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_MAKE_COMPATIBLE_BUFFER>(),
        1usize,
        concat!("Size of: ", stringify!(_FILE_MAKE_COMPATIBLE_BUFFER))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_MAKE_COMPATIBLE_BUFFER>(),
        1usize,
        concat!("Alignment of ", stringify!(_FILE_MAKE_COMPATIBLE_BUFFER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_MAKE_COMPATIBLE_BUFFER>())).CloseDisc as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_MAKE_COMPATIBLE_BUFFER),
            "::",
            stringify!(CloseDisc)
        )
    );
}
pub type FILE_MAKE_COMPATIBLE_BUFFER = _FILE_MAKE_COMPATIBLE_BUFFER;
pub type PFILE_MAKE_COMPATIBLE_BUFFER = *mut _FILE_MAKE_COMPATIBLE_BUFFER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_SET_DEFECT_MGMT_BUFFER {
    pub Disable: BOOLEAN,
}
#[test]
fn bindgen_test_layout__FILE_SET_DEFECT_MGMT_BUFFER() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_SET_DEFECT_MGMT_BUFFER>(),
        1usize,
        concat!("Size of: ", stringify!(_FILE_SET_DEFECT_MGMT_BUFFER))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_SET_DEFECT_MGMT_BUFFER>(),
        1usize,
        concat!("Alignment of ", stringify!(_FILE_SET_DEFECT_MGMT_BUFFER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_SET_DEFECT_MGMT_BUFFER>())).Disable as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_SET_DEFECT_MGMT_BUFFER),
            "::",
            stringify!(Disable)
        )
    );
}
pub type FILE_SET_DEFECT_MGMT_BUFFER = _FILE_SET_DEFECT_MGMT_BUFFER;
pub type PFILE_SET_DEFECT_MGMT_BUFFER = *mut _FILE_SET_DEFECT_MGMT_BUFFER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_QUERY_SPARING_BUFFER {
    pub SparingUnitBytes: DWORD,
    pub SoftwareSparing: BOOLEAN,
    pub TotalSpareBlocks: DWORD,
    pub FreeSpareBlocks: DWORD,
}
#[test]
fn bindgen_test_layout__FILE_QUERY_SPARING_BUFFER() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_QUERY_SPARING_BUFFER>(),
        16usize,
        concat!("Size of: ", stringify!(_FILE_QUERY_SPARING_BUFFER))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_QUERY_SPARING_BUFFER>(),
        4usize,
        concat!("Alignment of ", stringify!(_FILE_QUERY_SPARING_BUFFER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_QUERY_SPARING_BUFFER>())).SparingUnitBytes as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_QUERY_SPARING_BUFFER),
            "::",
            stringify!(SparingUnitBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_QUERY_SPARING_BUFFER>())).SoftwareSparing as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_QUERY_SPARING_BUFFER),
            "::",
            stringify!(SoftwareSparing)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_QUERY_SPARING_BUFFER>())).TotalSpareBlocks as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_QUERY_SPARING_BUFFER),
            "::",
            stringify!(TotalSpareBlocks)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_QUERY_SPARING_BUFFER>())).FreeSpareBlocks as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_QUERY_SPARING_BUFFER),
            "::",
            stringify!(FreeSpareBlocks)
        )
    );
}
pub type FILE_QUERY_SPARING_BUFFER = _FILE_QUERY_SPARING_BUFFER;
pub type PFILE_QUERY_SPARING_BUFFER = *mut _FILE_QUERY_SPARING_BUFFER;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _FILE_QUERY_ON_DISK_VOL_INFO_BUFFER {
    pub DirectoryCount: LARGE_INTEGER,
    pub FileCount: LARGE_INTEGER,
    pub FsFormatMajVersion: WORD,
    pub FsFormatMinVersion: WORD,
    pub FsFormatName: [WCHAR; 12usize],
    pub FormatTime: LARGE_INTEGER,
    pub LastUpdateTime: LARGE_INTEGER,
    pub CopyrightInfo: [WCHAR; 34usize],
    pub AbstractInfo: [WCHAR; 34usize],
    pub FormattingImplementationInfo: [WCHAR; 34usize],
    pub LastModifyingImplementationInfo: [WCHAR; 34usize],
}
#[test]
fn bindgen_test_layout__FILE_QUERY_ON_DISK_VOL_INFO_BUFFER() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_QUERY_ON_DISK_VOL_INFO_BUFFER>(),
        336usize,
        concat!("Size of: ", stringify!(_FILE_QUERY_ON_DISK_VOL_INFO_BUFFER))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_QUERY_ON_DISK_VOL_INFO_BUFFER>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_FILE_QUERY_ON_DISK_VOL_INFO_BUFFER)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_QUERY_ON_DISK_VOL_INFO_BUFFER>())).DirectoryCount
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_QUERY_ON_DISK_VOL_INFO_BUFFER),
            "::",
            stringify!(DirectoryCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_QUERY_ON_DISK_VOL_INFO_BUFFER>())).FileCount as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_QUERY_ON_DISK_VOL_INFO_BUFFER),
            "::",
            stringify!(FileCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_QUERY_ON_DISK_VOL_INFO_BUFFER>())).FsFormatMajVersion
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_QUERY_ON_DISK_VOL_INFO_BUFFER),
            "::",
            stringify!(FsFormatMajVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_QUERY_ON_DISK_VOL_INFO_BUFFER>())).FsFormatMinVersion
                as *const _ as usize
        },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_QUERY_ON_DISK_VOL_INFO_BUFFER),
            "::",
            stringify!(FsFormatMinVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_QUERY_ON_DISK_VOL_INFO_BUFFER>())).FsFormatName as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_QUERY_ON_DISK_VOL_INFO_BUFFER),
            "::",
            stringify!(FsFormatName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_QUERY_ON_DISK_VOL_INFO_BUFFER>())).FormatTime as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_QUERY_ON_DISK_VOL_INFO_BUFFER),
            "::",
            stringify!(FormatTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_QUERY_ON_DISK_VOL_INFO_BUFFER>())).LastUpdateTime
                as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_QUERY_ON_DISK_VOL_INFO_BUFFER),
            "::",
            stringify!(LastUpdateTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_QUERY_ON_DISK_VOL_INFO_BUFFER>())).CopyrightInfo
                as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_QUERY_ON_DISK_VOL_INFO_BUFFER),
            "::",
            stringify!(CopyrightInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_QUERY_ON_DISK_VOL_INFO_BUFFER>())).AbstractInfo as *const _
                as usize
        },
        132usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_QUERY_ON_DISK_VOL_INFO_BUFFER),
            "::",
            stringify!(AbstractInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_QUERY_ON_DISK_VOL_INFO_BUFFER>()))
                .FormattingImplementationInfo as *const _ as usize
        },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_QUERY_ON_DISK_VOL_INFO_BUFFER),
            "::",
            stringify!(FormattingImplementationInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_QUERY_ON_DISK_VOL_INFO_BUFFER>()))
                .LastModifyingImplementationInfo as *const _ as usize
        },
        268usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_QUERY_ON_DISK_VOL_INFO_BUFFER),
            "::",
            stringify!(LastModifyingImplementationInfo)
        )
    );
}
pub type FILE_QUERY_ON_DISK_VOL_INFO_BUFFER = _FILE_QUERY_ON_DISK_VOL_INFO_BUFFER;
pub type PFILE_QUERY_ON_DISK_VOL_INFO_BUFFER = *mut _FILE_QUERY_ON_DISK_VOL_INFO_BUFFER;
pub type CLSN = DWORDLONG;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_INITIATE_REPAIR_OUTPUT_BUFFER {
    pub Hint1: DWORDLONG,
    pub Hint2: DWORDLONG,
    pub Clsn: CLSN,
    pub Status: DWORD,
}
#[test]
fn bindgen_test_layout__FILE_INITIATE_REPAIR_OUTPUT_BUFFER() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_INITIATE_REPAIR_OUTPUT_BUFFER>(),
        32usize,
        concat!("Size of: ", stringify!(_FILE_INITIATE_REPAIR_OUTPUT_BUFFER))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_INITIATE_REPAIR_OUTPUT_BUFFER>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_FILE_INITIATE_REPAIR_OUTPUT_BUFFER)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_INITIATE_REPAIR_OUTPUT_BUFFER>())).Hint1 as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_INITIATE_REPAIR_OUTPUT_BUFFER),
            "::",
            stringify!(Hint1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_INITIATE_REPAIR_OUTPUT_BUFFER>())).Hint2 as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_INITIATE_REPAIR_OUTPUT_BUFFER),
            "::",
            stringify!(Hint2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_INITIATE_REPAIR_OUTPUT_BUFFER>())).Clsn as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_INITIATE_REPAIR_OUTPUT_BUFFER),
            "::",
            stringify!(Clsn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_INITIATE_REPAIR_OUTPUT_BUFFER>())).Status as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_INITIATE_REPAIR_OUTPUT_BUFFER),
            "::",
            stringify!(Status)
        )
    );
}
pub type FILE_INITIATE_REPAIR_OUTPUT_BUFFER = _FILE_INITIATE_REPAIR_OUTPUT_BUFFER;
pub type PFILE_INITIATE_REPAIR_OUTPUT_BUFFER = *mut _FILE_INITIATE_REPAIR_OUTPUT_BUFFER;
pub const _SHRINK_VOLUME_REQUEST_TYPES_ShrinkPrepare: _SHRINK_VOLUME_REQUEST_TYPES = 1;
pub const _SHRINK_VOLUME_REQUEST_TYPES_ShrinkCommit: _SHRINK_VOLUME_REQUEST_TYPES = 2;
pub const _SHRINK_VOLUME_REQUEST_TYPES_ShrinkAbort: _SHRINK_VOLUME_REQUEST_TYPES = 3;
pub type _SHRINK_VOLUME_REQUEST_TYPES = ::std::os::raw::c_int;
pub use self::_SHRINK_VOLUME_REQUEST_TYPES as SHRINK_VOLUME_REQUEST_TYPES;
pub type PSHRINK_VOLUME_REQUEST_TYPES = *mut _SHRINK_VOLUME_REQUEST_TYPES;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SHRINK_VOLUME_INFORMATION {
    pub ShrinkRequestType: SHRINK_VOLUME_REQUEST_TYPES,
    pub Flags: DWORDLONG,
    pub NewNumberOfSectors: LONGLONG,
}
#[test]
fn bindgen_test_layout__SHRINK_VOLUME_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_SHRINK_VOLUME_INFORMATION>(),
        24usize,
        concat!("Size of: ", stringify!(_SHRINK_VOLUME_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_SHRINK_VOLUME_INFORMATION>(),
        8usize,
        concat!("Alignment of ", stringify!(_SHRINK_VOLUME_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SHRINK_VOLUME_INFORMATION>())).ShrinkRequestType as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHRINK_VOLUME_INFORMATION),
            "::",
            stringify!(ShrinkRequestType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SHRINK_VOLUME_INFORMATION>())).Flags as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHRINK_VOLUME_INFORMATION),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SHRINK_VOLUME_INFORMATION>())).NewNumberOfSectors as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SHRINK_VOLUME_INFORMATION),
            "::",
            stringify!(NewNumberOfSectors)
        )
    );
}
pub type SHRINK_VOLUME_INFORMATION = _SHRINK_VOLUME_INFORMATION;
pub type PSHRINK_VOLUME_INFORMATION = *mut _SHRINK_VOLUME_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TXFS_MODIFY_RM {
    pub Flags: DWORD,
    pub LogContainerCountMax: DWORD,
    pub LogContainerCountMin: DWORD,
    pub LogContainerCount: DWORD,
    pub LogGrowthIncrement: DWORD,
    pub LogAutoShrinkPercentage: DWORD,
    pub Reserved: DWORDLONG,
    pub LoggingMode: WORD,
}
#[test]
fn bindgen_test_layout__TXFS_MODIFY_RM() {
    assert_eq!(
        ::std::mem::size_of::<_TXFS_MODIFY_RM>(),
        40usize,
        concat!("Size of: ", stringify!(_TXFS_MODIFY_RM))
    );
    assert_eq!(
        ::std::mem::align_of::<_TXFS_MODIFY_RM>(),
        8usize,
        concat!("Alignment of ", stringify!(_TXFS_MODIFY_RM))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TXFS_MODIFY_RM>())).Flags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_MODIFY_RM),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_MODIFY_RM>())).LogContainerCountMax as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_MODIFY_RM),
            "::",
            stringify!(LogContainerCountMax)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_MODIFY_RM>())).LogContainerCountMin as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_MODIFY_RM),
            "::",
            stringify!(LogContainerCountMin)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_MODIFY_RM>())).LogContainerCount as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_MODIFY_RM),
            "::",
            stringify!(LogContainerCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_MODIFY_RM>())).LogGrowthIncrement as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_MODIFY_RM),
            "::",
            stringify!(LogGrowthIncrement)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_MODIFY_RM>())).LogAutoShrinkPercentage as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_MODIFY_RM),
            "::",
            stringify!(LogAutoShrinkPercentage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TXFS_MODIFY_RM>())).Reserved as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_MODIFY_RM),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_TXFS_MODIFY_RM>())).LoggingMode as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_MODIFY_RM),
            "::",
            stringify!(LoggingMode)
        )
    );
}
pub type TXFS_MODIFY_RM = _TXFS_MODIFY_RM;
pub type PTXFS_MODIFY_RM = *mut _TXFS_MODIFY_RM;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _TXFS_QUERY_RM_INFORMATION {
    pub BytesRequired: DWORD,
    pub TailLsn: DWORDLONG,
    pub CurrentLsn: DWORDLONG,
    pub ArchiveTailLsn: DWORDLONG,
    pub LogContainerSize: DWORDLONG,
    pub HighestVirtualClock: LARGE_INTEGER,
    pub LogContainerCount: DWORD,
    pub LogContainerCountMax: DWORD,
    pub LogContainerCountMin: DWORD,
    pub LogGrowthIncrement: DWORD,
    pub LogAutoShrinkPercentage: DWORD,
    pub Flags: DWORD,
    pub LoggingMode: WORD,
    pub Reserved: WORD,
    pub RmState: DWORD,
    pub LogCapacity: DWORDLONG,
    pub LogFree: DWORDLONG,
    pub TopsSize: DWORDLONG,
    pub TopsUsed: DWORDLONG,
    pub TransactionCount: DWORDLONG,
    pub OnePCCount: DWORDLONG,
    pub TwoPCCount: DWORDLONG,
    pub NumberLogFileFull: DWORDLONG,
    pub OldestTransactionAge: DWORDLONG,
    pub RMName: GUID,
    pub TmLogPathOffset: DWORD,
}
#[test]
fn bindgen_test_layout__TXFS_QUERY_RM_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_TXFS_QUERY_RM_INFORMATION>(),
        176usize,
        concat!("Size of: ", stringify!(_TXFS_QUERY_RM_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_TXFS_QUERY_RM_INFORMATION>(),
        8usize,
        concat!("Alignment of ", stringify!(_TXFS_QUERY_RM_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_QUERY_RM_INFORMATION>())).BytesRequired as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_QUERY_RM_INFORMATION),
            "::",
            stringify!(BytesRequired)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_QUERY_RM_INFORMATION>())).TailLsn as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_QUERY_RM_INFORMATION),
            "::",
            stringify!(TailLsn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_QUERY_RM_INFORMATION>())).CurrentLsn as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_QUERY_RM_INFORMATION),
            "::",
            stringify!(CurrentLsn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_QUERY_RM_INFORMATION>())).ArchiveTailLsn as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_QUERY_RM_INFORMATION),
            "::",
            stringify!(ArchiveTailLsn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_QUERY_RM_INFORMATION>())).LogContainerSize as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_QUERY_RM_INFORMATION),
            "::",
            stringify!(LogContainerSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_QUERY_RM_INFORMATION>())).HighestVirtualClock as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_QUERY_RM_INFORMATION),
            "::",
            stringify!(HighestVirtualClock)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_QUERY_RM_INFORMATION>())).LogContainerCount as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_QUERY_RM_INFORMATION),
            "::",
            stringify!(LogContainerCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_QUERY_RM_INFORMATION>())).LogContainerCountMax as *const _
                as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_QUERY_RM_INFORMATION),
            "::",
            stringify!(LogContainerCountMax)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_QUERY_RM_INFORMATION>())).LogContainerCountMin as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_QUERY_RM_INFORMATION),
            "::",
            stringify!(LogContainerCountMin)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_QUERY_RM_INFORMATION>())).LogGrowthIncrement as *const _
                as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_QUERY_RM_INFORMATION),
            "::",
            stringify!(LogGrowthIncrement)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_QUERY_RM_INFORMATION>())).LogAutoShrinkPercentage
                as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_QUERY_RM_INFORMATION),
            "::",
            stringify!(LogAutoShrinkPercentage)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_QUERY_RM_INFORMATION>())).Flags as *const _ as usize
        },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_QUERY_RM_INFORMATION),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_QUERY_RM_INFORMATION>())).LoggingMode as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_QUERY_RM_INFORMATION),
            "::",
            stringify!(LoggingMode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_QUERY_RM_INFORMATION>())).Reserved as *const _ as usize
        },
        74usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_QUERY_RM_INFORMATION),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_QUERY_RM_INFORMATION>())).RmState as *const _ as usize
        },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_QUERY_RM_INFORMATION),
            "::",
            stringify!(RmState)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_QUERY_RM_INFORMATION>())).LogCapacity as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_QUERY_RM_INFORMATION),
            "::",
            stringify!(LogCapacity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_QUERY_RM_INFORMATION>())).LogFree as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_QUERY_RM_INFORMATION),
            "::",
            stringify!(LogFree)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_QUERY_RM_INFORMATION>())).TopsSize as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_QUERY_RM_INFORMATION),
            "::",
            stringify!(TopsSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_QUERY_RM_INFORMATION>())).TopsUsed as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_QUERY_RM_INFORMATION),
            "::",
            stringify!(TopsUsed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_QUERY_RM_INFORMATION>())).TransactionCount as *const _
                as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_QUERY_RM_INFORMATION),
            "::",
            stringify!(TransactionCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_QUERY_RM_INFORMATION>())).OnePCCount as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_QUERY_RM_INFORMATION),
            "::",
            stringify!(OnePCCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_QUERY_RM_INFORMATION>())).TwoPCCount as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_QUERY_RM_INFORMATION),
            "::",
            stringify!(TwoPCCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_QUERY_RM_INFORMATION>())).NumberLogFileFull as *const _
                as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_QUERY_RM_INFORMATION),
            "::",
            stringify!(NumberLogFileFull)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_QUERY_RM_INFORMATION>())).OldestTransactionAge as *const _
                as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_QUERY_RM_INFORMATION),
            "::",
            stringify!(OldestTransactionAge)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_QUERY_RM_INFORMATION>())).RMName as *const _ as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_QUERY_RM_INFORMATION),
            "::",
            stringify!(RMName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_QUERY_RM_INFORMATION>())).TmLogPathOffset as *const _
                as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_QUERY_RM_INFORMATION),
            "::",
            stringify!(TmLogPathOffset)
        )
    );
}
pub type TXFS_QUERY_RM_INFORMATION = _TXFS_QUERY_RM_INFORMATION;
pub type PTXFS_QUERY_RM_INFORMATION = *mut _TXFS_QUERY_RM_INFORMATION;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _TXFS_ROLLFORWARD_REDO_INFORMATION {
    pub LastVirtualClock: LARGE_INTEGER,
    pub LastRedoLsn: DWORDLONG,
    pub HighestRecoveryLsn: DWORDLONG,
    pub Flags: DWORD,
}
#[test]
fn bindgen_test_layout__TXFS_ROLLFORWARD_REDO_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_TXFS_ROLLFORWARD_REDO_INFORMATION>(),
        32usize,
        concat!("Size of: ", stringify!(_TXFS_ROLLFORWARD_REDO_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_TXFS_ROLLFORWARD_REDO_INFORMATION>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_TXFS_ROLLFORWARD_REDO_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_ROLLFORWARD_REDO_INFORMATION>())).LastVirtualClock
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_ROLLFORWARD_REDO_INFORMATION),
            "::",
            stringify!(LastVirtualClock)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_ROLLFORWARD_REDO_INFORMATION>())).LastRedoLsn as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_ROLLFORWARD_REDO_INFORMATION),
            "::",
            stringify!(LastRedoLsn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_ROLLFORWARD_REDO_INFORMATION>())).HighestRecoveryLsn
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_ROLLFORWARD_REDO_INFORMATION),
            "::",
            stringify!(HighestRecoveryLsn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_ROLLFORWARD_REDO_INFORMATION>())).Flags as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_ROLLFORWARD_REDO_INFORMATION),
            "::",
            stringify!(Flags)
        )
    );
}
pub type TXFS_ROLLFORWARD_REDO_INFORMATION = _TXFS_ROLLFORWARD_REDO_INFORMATION;
pub type PTXFS_ROLLFORWARD_REDO_INFORMATION = *mut _TXFS_ROLLFORWARD_REDO_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TXFS_START_RM_INFORMATION {
    pub Flags: DWORD,
    pub LogContainerSize: DWORDLONG,
    pub LogContainerCountMin: DWORD,
    pub LogContainerCountMax: DWORD,
    pub LogGrowthIncrement: DWORD,
    pub LogAutoShrinkPercentage: DWORD,
    pub TmLogPathOffset: DWORD,
    pub TmLogPathLength: WORD,
    pub LoggingMode: WORD,
    pub LogPathLength: WORD,
    pub Reserved: WORD,
    pub LogPath: [WCHAR; 1usize],
}
#[test]
fn bindgen_test_layout__TXFS_START_RM_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_TXFS_START_RM_INFORMATION>(),
        48usize,
        concat!("Size of: ", stringify!(_TXFS_START_RM_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_TXFS_START_RM_INFORMATION>(),
        8usize,
        concat!("Alignment of ", stringify!(_TXFS_START_RM_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_START_RM_INFORMATION>())).Flags as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_START_RM_INFORMATION),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_START_RM_INFORMATION>())).LogContainerSize as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_START_RM_INFORMATION),
            "::",
            stringify!(LogContainerSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_START_RM_INFORMATION>())).LogContainerCountMin as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_START_RM_INFORMATION),
            "::",
            stringify!(LogContainerCountMin)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_START_RM_INFORMATION>())).LogContainerCountMax as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_START_RM_INFORMATION),
            "::",
            stringify!(LogContainerCountMax)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_START_RM_INFORMATION>())).LogGrowthIncrement as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_START_RM_INFORMATION),
            "::",
            stringify!(LogGrowthIncrement)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_START_RM_INFORMATION>())).LogAutoShrinkPercentage
                as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_START_RM_INFORMATION),
            "::",
            stringify!(LogAutoShrinkPercentage)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_START_RM_INFORMATION>())).TmLogPathOffset as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_START_RM_INFORMATION),
            "::",
            stringify!(TmLogPathOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_START_RM_INFORMATION>())).TmLogPathLength as *const _
                as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_START_RM_INFORMATION),
            "::",
            stringify!(TmLogPathLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_START_RM_INFORMATION>())).LoggingMode as *const _ as usize
        },
        38usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_START_RM_INFORMATION),
            "::",
            stringify!(LoggingMode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_START_RM_INFORMATION>())).LogPathLength as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_START_RM_INFORMATION),
            "::",
            stringify!(LogPathLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_START_RM_INFORMATION>())).Reserved as *const _ as usize
        },
        42usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_START_RM_INFORMATION),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_START_RM_INFORMATION>())).LogPath as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_START_RM_INFORMATION),
            "::",
            stringify!(LogPath)
        )
    );
}
pub type TXFS_START_RM_INFORMATION = _TXFS_START_RM_INFORMATION;
pub type PTXFS_START_RM_INFORMATION = *mut _TXFS_START_RM_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TXFS_GET_METADATA_INFO_OUT {
    pub TxfFileId: _TXFS_GET_METADATA_INFO_OUT__bindgen_ty_1,
    pub LockingTransaction: GUID,
    pub LastLsn: DWORDLONG,
    pub TransactionState: DWORD,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TXFS_GET_METADATA_INFO_OUT__bindgen_ty_1 {
    pub LowPart: LONGLONG,
    pub HighPart: LONGLONG,
}
#[test]
fn bindgen_test_layout__TXFS_GET_METADATA_INFO_OUT__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_TXFS_GET_METADATA_INFO_OUT__bindgen_ty_1>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_TXFS_GET_METADATA_INFO_OUT__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_TXFS_GET_METADATA_INFO_OUT__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_TXFS_GET_METADATA_INFO_OUT__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_GET_METADATA_INFO_OUT__bindgen_ty_1>())).LowPart
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_GET_METADATA_INFO_OUT__bindgen_ty_1),
            "::",
            stringify!(LowPart)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_GET_METADATA_INFO_OUT__bindgen_ty_1>())).HighPart
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_GET_METADATA_INFO_OUT__bindgen_ty_1),
            "::",
            stringify!(HighPart)
        )
    );
}
#[test]
fn bindgen_test_layout__TXFS_GET_METADATA_INFO_OUT() {
    assert_eq!(
        ::std::mem::size_of::<_TXFS_GET_METADATA_INFO_OUT>(),
        48usize,
        concat!("Size of: ", stringify!(_TXFS_GET_METADATA_INFO_OUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_TXFS_GET_METADATA_INFO_OUT>(),
        8usize,
        concat!("Alignment of ", stringify!(_TXFS_GET_METADATA_INFO_OUT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_GET_METADATA_INFO_OUT>())).TxfFileId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_GET_METADATA_INFO_OUT),
            "::",
            stringify!(TxfFileId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_GET_METADATA_INFO_OUT>())).LockingTransaction as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_GET_METADATA_INFO_OUT),
            "::",
            stringify!(LockingTransaction)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_GET_METADATA_INFO_OUT>())).LastLsn as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_GET_METADATA_INFO_OUT),
            "::",
            stringify!(LastLsn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_GET_METADATA_INFO_OUT>())).TransactionState as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_GET_METADATA_INFO_OUT),
            "::",
            stringify!(TransactionState)
        )
    );
}
pub type TXFS_GET_METADATA_INFO_OUT = _TXFS_GET_METADATA_INFO_OUT;
pub type PTXFS_GET_METADATA_INFO_OUT = *mut _TXFS_GET_METADATA_INFO_OUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY {
    pub Offset: DWORDLONG,
    pub NameFlags: DWORD,
    pub FileId: LONGLONG,
    pub Reserved1: DWORD,
    pub Reserved2: DWORD,
    pub Reserved3: LONGLONG,
    pub FileName: [WCHAR; 1usize],
}
#[test]
fn bindgen_test_layout__TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY>(),
        48usize,
        concat!(
            "Size of: ",
            stringify!(_TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY>())).Offset as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY),
            "::",
            stringify!(Offset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY>())).NameFlags
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY),
            "::",
            stringify!(NameFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY>())).FileId as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY),
            "::",
            stringify!(FileId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY>())).Reserved1
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY),
            "::",
            stringify!(Reserved1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY>())).Reserved2
                as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY),
            "::",
            stringify!(Reserved2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY>())).Reserved3
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY),
            "::",
            stringify!(Reserved3)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY>())).FileName
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY),
            "::",
            stringify!(FileName)
        )
    );
}
pub type TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY = _TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY;
pub type PTXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY = *mut _TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TXFS_LIST_TRANSACTION_LOCKED_FILES {
    pub KtmTransaction: GUID,
    pub NumberOfFiles: DWORDLONG,
    pub BufferSizeRequired: DWORDLONG,
    pub Offset: DWORDLONG,
}
#[test]
fn bindgen_test_layout__TXFS_LIST_TRANSACTION_LOCKED_FILES() {
    assert_eq!(
        ::std::mem::size_of::<_TXFS_LIST_TRANSACTION_LOCKED_FILES>(),
        40usize,
        concat!("Size of: ", stringify!(_TXFS_LIST_TRANSACTION_LOCKED_FILES))
    );
    assert_eq!(
        ::std::mem::align_of::<_TXFS_LIST_TRANSACTION_LOCKED_FILES>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_TXFS_LIST_TRANSACTION_LOCKED_FILES)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_LIST_TRANSACTION_LOCKED_FILES>())).KtmTransaction
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_LIST_TRANSACTION_LOCKED_FILES),
            "::",
            stringify!(KtmTransaction)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_LIST_TRANSACTION_LOCKED_FILES>())).NumberOfFiles
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_LIST_TRANSACTION_LOCKED_FILES),
            "::",
            stringify!(NumberOfFiles)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_LIST_TRANSACTION_LOCKED_FILES>())).BufferSizeRequired
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_LIST_TRANSACTION_LOCKED_FILES),
            "::",
            stringify!(BufferSizeRequired)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_LIST_TRANSACTION_LOCKED_FILES>())).Offset as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_LIST_TRANSACTION_LOCKED_FILES),
            "::",
            stringify!(Offset)
        )
    );
}
pub type TXFS_LIST_TRANSACTION_LOCKED_FILES = _TXFS_LIST_TRANSACTION_LOCKED_FILES;
pub type PTXFS_LIST_TRANSACTION_LOCKED_FILES = *mut _TXFS_LIST_TRANSACTION_LOCKED_FILES;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TXFS_LIST_TRANSACTIONS_ENTRY {
    pub TransactionId: GUID,
    pub TransactionState: DWORD,
    pub Reserved1: DWORD,
    pub Reserved2: DWORD,
    pub Reserved3: LONGLONG,
}
#[test]
fn bindgen_test_layout__TXFS_LIST_TRANSACTIONS_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_TXFS_LIST_TRANSACTIONS_ENTRY>(),
        40usize,
        concat!("Size of: ", stringify!(_TXFS_LIST_TRANSACTIONS_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_TXFS_LIST_TRANSACTIONS_ENTRY>(),
        8usize,
        concat!("Alignment of ", stringify!(_TXFS_LIST_TRANSACTIONS_ENTRY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_LIST_TRANSACTIONS_ENTRY>())).TransactionId as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_LIST_TRANSACTIONS_ENTRY),
            "::",
            stringify!(TransactionId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_LIST_TRANSACTIONS_ENTRY>())).TransactionState as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_LIST_TRANSACTIONS_ENTRY),
            "::",
            stringify!(TransactionState)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_LIST_TRANSACTIONS_ENTRY>())).Reserved1 as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_LIST_TRANSACTIONS_ENTRY),
            "::",
            stringify!(Reserved1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_LIST_TRANSACTIONS_ENTRY>())).Reserved2 as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_LIST_TRANSACTIONS_ENTRY),
            "::",
            stringify!(Reserved2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_LIST_TRANSACTIONS_ENTRY>())).Reserved3 as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_LIST_TRANSACTIONS_ENTRY),
            "::",
            stringify!(Reserved3)
        )
    );
}
pub type TXFS_LIST_TRANSACTIONS_ENTRY = _TXFS_LIST_TRANSACTIONS_ENTRY;
pub type PTXFS_LIST_TRANSACTIONS_ENTRY = *mut _TXFS_LIST_TRANSACTIONS_ENTRY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TXFS_LIST_TRANSACTIONS {
    pub NumberOfTransactions: DWORDLONG,
    pub BufferSizeRequired: DWORDLONG,
}
#[test]
fn bindgen_test_layout__TXFS_LIST_TRANSACTIONS() {
    assert_eq!(
        ::std::mem::size_of::<_TXFS_LIST_TRANSACTIONS>(),
        16usize,
        concat!("Size of: ", stringify!(_TXFS_LIST_TRANSACTIONS))
    );
    assert_eq!(
        ::std::mem::align_of::<_TXFS_LIST_TRANSACTIONS>(),
        8usize,
        concat!("Alignment of ", stringify!(_TXFS_LIST_TRANSACTIONS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_LIST_TRANSACTIONS>())).NumberOfTransactions as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_LIST_TRANSACTIONS),
            "::",
            stringify!(NumberOfTransactions)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_LIST_TRANSACTIONS>())).BufferSizeRequired as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_LIST_TRANSACTIONS),
            "::",
            stringify!(BufferSizeRequired)
        )
    );
}
pub type TXFS_LIST_TRANSACTIONS = _TXFS_LIST_TRANSACTIONS;
pub type PTXFS_LIST_TRANSACTIONS = *mut _TXFS_LIST_TRANSACTIONS;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _TXFS_READ_BACKUP_INFORMATION_OUT {
    pub __bindgen_anon_1: _TXFS_READ_BACKUP_INFORMATION_OUT__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _TXFS_READ_BACKUP_INFORMATION_OUT__bindgen_ty_1 {
    pub BufferLength: DWORD,
    pub Buffer: [BYTE; 1usize],
    _bindgen_union_align: u32,
}
#[test]
fn bindgen_test_layout__TXFS_READ_BACKUP_INFORMATION_OUT__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_TXFS_READ_BACKUP_INFORMATION_OUT__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_TXFS_READ_BACKUP_INFORMATION_OUT__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_TXFS_READ_BACKUP_INFORMATION_OUT__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_TXFS_READ_BACKUP_INFORMATION_OUT__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_READ_BACKUP_INFORMATION_OUT__bindgen_ty_1>())).BufferLength
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_READ_BACKUP_INFORMATION_OUT__bindgen_ty_1),
            "::",
            stringify!(BufferLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_READ_BACKUP_INFORMATION_OUT__bindgen_ty_1>())).Buffer
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_READ_BACKUP_INFORMATION_OUT__bindgen_ty_1),
            "::",
            stringify!(Buffer)
        )
    );
}
#[test]
fn bindgen_test_layout__TXFS_READ_BACKUP_INFORMATION_OUT() {
    assert_eq!(
        ::std::mem::size_of::<_TXFS_READ_BACKUP_INFORMATION_OUT>(),
        4usize,
        concat!("Size of: ", stringify!(_TXFS_READ_BACKUP_INFORMATION_OUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_TXFS_READ_BACKUP_INFORMATION_OUT>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_TXFS_READ_BACKUP_INFORMATION_OUT)
        )
    );
}
pub type TXFS_READ_BACKUP_INFORMATION_OUT = _TXFS_READ_BACKUP_INFORMATION_OUT;
pub type PTXFS_READ_BACKUP_INFORMATION_OUT = *mut _TXFS_READ_BACKUP_INFORMATION_OUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TXFS_WRITE_BACKUP_INFORMATION {
    pub Buffer: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout__TXFS_WRITE_BACKUP_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_TXFS_WRITE_BACKUP_INFORMATION>(),
        1usize,
        concat!("Size of: ", stringify!(_TXFS_WRITE_BACKUP_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_TXFS_WRITE_BACKUP_INFORMATION>(),
        1usize,
        concat!("Alignment of ", stringify!(_TXFS_WRITE_BACKUP_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_WRITE_BACKUP_INFORMATION>())).Buffer as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_WRITE_BACKUP_INFORMATION),
            "::",
            stringify!(Buffer)
        )
    );
}
pub type TXFS_WRITE_BACKUP_INFORMATION = _TXFS_WRITE_BACKUP_INFORMATION;
pub type PTXFS_WRITE_BACKUP_INFORMATION = *mut _TXFS_WRITE_BACKUP_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TXFS_GET_TRANSACTED_VERSION {
    pub ThisBaseVersion: DWORD,
    pub LatestVersion: DWORD,
    pub ThisMiniVersion: WORD,
    pub FirstMiniVersion: WORD,
    pub LatestMiniVersion: WORD,
}
#[test]
fn bindgen_test_layout__TXFS_GET_TRANSACTED_VERSION() {
    assert_eq!(
        ::std::mem::size_of::<_TXFS_GET_TRANSACTED_VERSION>(),
        16usize,
        concat!("Size of: ", stringify!(_TXFS_GET_TRANSACTED_VERSION))
    );
    assert_eq!(
        ::std::mem::align_of::<_TXFS_GET_TRANSACTED_VERSION>(),
        4usize,
        concat!("Alignment of ", stringify!(_TXFS_GET_TRANSACTED_VERSION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_GET_TRANSACTED_VERSION>())).ThisBaseVersion as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_GET_TRANSACTED_VERSION),
            "::",
            stringify!(ThisBaseVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_GET_TRANSACTED_VERSION>())).LatestVersion as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_GET_TRANSACTED_VERSION),
            "::",
            stringify!(LatestVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_GET_TRANSACTED_VERSION>())).ThisMiniVersion as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_GET_TRANSACTED_VERSION),
            "::",
            stringify!(ThisMiniVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_GET_TRANSACTED_VERSION>())).FirstMiniVersion as *const _
                as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_GET_TRANSACTED_VERSION),
            "::",
            stringify!(FirstMiniVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_GET_TRANSACTED_VERSION>())).LatestMiniVersion as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_GET_TRANSACTED_VERSION),
            "::",
            stringify!(LatestMiniVersion)
        )
    );
}
pub type TXFS_GET_TRANSACTED_VERSION = _TXFS_GET_TRANSACTED_VERSION;
pub type PTXFS_GET_TRANSACTED_VERSION = *mut _TXFS_GET_TRANSACTED_VERSION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TXFS_SAVEPOINT_INFORMATION {
    pub KtmTransaction: HANDLE,
    pub ActionCode: DWORD,
    pub SavepointId: DWORD,
}
#[test]
fn bindgen_test_layout__TXFS_SAVEPOINT_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_TXFS_SAVEPOINT_INFORMATION>(),
        16usize,
        concat!("Size of: ", stringify!(_TXFS_SAVEPOINT_INFORMATION))
    );
    assert_eq!(
        ::std::mem::align_of::<_TXFS_SAVEPOINT_INFORMATION>(),
        8usize,
        concat!("Alignment of ", stringify!(_TXFS_SAVEPOINT_INFORMATION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_SAVEPOINT_INFORMATION>())).KtmTransaction as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_SAVEPOINT_INFORMATION),
            "::",
            stringify!(KtmTransaction)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_SAVEPOINT_INFORMATION>())).ActionCode as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_SAVEPOINT_INFORMATION),
            "::",
            stringify!(ActionCode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_SAVEPOINT_INFORMATION>())).SavepointId as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_SAVEPOINT_INFORMATION),
            "::",
            stringify!(SavepointId)
        )
    );
}
pub type TXFS_SAVEPOINT_INFORMATION = _TXFS_SAVEPOINT_INFORMATION;
pub type PTXFS_SAVEPOINT_INFORMATION = *mut _TXFS_SAVEPOINT_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TXFS_CREATE_MINIVERSION_INFO {
    pub StructureVersion: WORD,
    pub StructureLength: WORD,
    pub BaseVersion: DWORD,
    pub MiniVersion: WORD,
}
#[test]
fn bindgen_test_layout__TXFS_CREATE_MINIVERSION_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_TXFS_CREATE_MINIVERSION_INFO>(),
        12usize,
        concat!("Size of: ", stringify!(_TXFS_CREATE_MINIVERSION_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_TXFS_CREATE_MINIVERSION_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_TXFS_CREATE_MINIVERSION_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_CREATE_MINIVERSION_INFO>())).StructureVersion as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_CREATE_MINIVERSION_INFO),
            "::",
            stringify!(StructureVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_CREATE_MINIVERSION_INFO>())).StructureLength as *const _
                as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_CREATE_MINIVERSION_INFO),
            "::",
            stringify!(StructureLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_CREATE_MINIVERSION_INFO>())).BaseVersion as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_CREATE_MINIVERSION_INFO),
            "::",
            stringify!(BaseVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_CREATE_MINIVERSION_INFO>())).MiniVersion as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_CREATE_MINIVERSION_INFO),
            "::",
            stringify!(MiniVersion)
        )
    );
}
pub type TXFS_CREATE_MINIVERSION_INFO = _TXFS_CREATE_MINIVERSION_INFO;
pub type PTXFS_CREATE_MINIVERSION_INFO = *mut _TXFS_CREATE_MINIVERSION_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _TXFS_TRANSACTION_ACTIVE_INFO {
    pub TransactionsActiveAtSnapshot: BOOLEAN,
}
#[test]
fn bindgen_test_layout__TXFS_TRANSACTION_ACTIVE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_TXFS_TRANSACTION_ACTIVE_INFO>(),
        1usize,
        concat!("Size of: ", stringify!(_TXFS_TRANSACTION_ACTIVE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_TXFS_TRANSACTION_ACTIVE_INFO>(),
        1usize,
        concat!("Alignment of ", stringify!(_TXFS_TRANSACTION_ACTIVE_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_TXFS_TRANSACTION_ACTIVE_INFO>())).TransactionsActiveAtSnapshot
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_TXFS_TRANSACTION_ACTIVE_INFO),
            "::",
            stringify!(TransactionsActiveAtSnapshot)
        )
    );
}
pub type TXFS_TRANSACTION_ACTIVE_INFO = _TXFS_TRANSACTION_ACTIVE_INFO;
pub type PTXFS_TRANSACTION_ACTIVE_INFO = *mut _TXFS_TRANSACTION_ACTIVE_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _BOOT_AREA_INFO {
    pub BootSectorCount: DWORD,
    pub BootSectors: [_BOOT_AREA_INFO__bindgen_ty_1; 2usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _BOOT_AREA_INFO__bindgen_ty_1 {
    pub Offset: LARGE_INTEGER,
}
#[test]
fn bindgen_test_layout__BOOT_AREA_INFO__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_BOOT_AREA_INFO__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_BOOT_AREA_INFO__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_BOOT_AREA_INFO__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(_BOOT_AREA_INFO__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BOOT_AREA_INFO__bindgen_ty_1>())).Offset as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BOOT_AREA_INFO__bindgen_ty_1),
            "::",
            stringify!(Offset)
        )
    );
}
#[test]
fn bindgen_test_layout__BOOT_AREA_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_BOOT_AREA_INFO>(),
        24usize,
        concat!("Size of: ", stringify!(_BOOT_AREA_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_BOOT_AREA_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_BOOT_AREA_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BOOT_AREA_INFO>())).BootSectorCount as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BOOT_AREA_INFO),
            "::",
            stringify!(BootSectorCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BOOT_AREA_INFO>())).BootSectors as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_BOOT_AREA_INFO),
            "::",
            stringify!(BootSectors)
        )
    );
}
pub type BOOT_AREA_INFO = _BOOT_AREA_INFO;
pub type PBOOT_AREA_INFO = *mut _BOOT_AREA_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _RETRIEVAL_POINTER_BASE {
    pub FileAreaOffset: LARGE_INTEGER,
}
#[test]
fn bindgen_test_layout__RETRIEVAL_POINTER_BASE() {
    assert_eq!(
        ::std::mem::size_of::<_RETRIEVAL_POINTER_BASE>(),
        8usize,
        concat!("Size of: ", stringify!(_RETRIEVAL_POINTER_BASE))
    );
    assert_eq!(
        ::std::mem::align_of::<_RETRIEVAL_POINTER_BASE>(),
        8usize,
        concat!("Alignment of ", stringify!(_RETRIEVAL_POINTER_BASE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_RETRIEVAL_POINTER_BASE>())).FileAreaOffset as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_RETRIEVAL_POINTER_BASE),
            "::",
            stringify!(FileAreaOffset)
        )
    );
}
pub type RETRIEVAL_POINTER_BASE = _RETRIEVAL_POINTER_BASE;
pub type PRETRIEVAL_POINTER_BASE = *mut _RETRIEVAL_POINTER_BASE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_FS_PERSISTENT_VOLUME_INFORMATION {
    pub VolumeFlags: DWORD,
    pub FlagMask: DWORD,
    pub Version: DWORD,
    pub Reserved: DWORD,
}
#[test]
fn bindgen_test_layout__FILE_FS_PERSISTENT_VOLUME_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_FS_PERSISTENT_VOLUME_INFORMATION>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_FILE_FS_PERSISTENT_VOLUME_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_FS_PERSISTENT_VOLUME_INFORMATION>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_FILE_FS_PERSISTENT_VOLUME_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_FS_PERSISTENT_VOLUME_INFORMATION>())).VolumeFlags
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_FS_PERSISTENT_VOLUME_INFORMATION),
            "::",
            stringify!(VolumeFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_FS_PERSISTENT_VOLUME_INFORMATION>())).FlagMask as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_FS_PERSISTENT_VOLUME_INFORMATION),
            "::",
            stringify!(FlagMask)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_FS_PERSISTENT_VOLUME_INFORMATION>())).Version as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_FS_PERSISTENT_VOLUME_INFORMATION),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_FS_PERSISTENT_VOLUME_INFORMATION>())).Reserved as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_FS_PERSISTENT_VOLUME_INFORMATION),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type FILE_FS_PERSISTENT_VOLUME_INFORMATION = _FILE_FS_PERSISTENT_VOLUME_INFORMATION;
pub type PFILE_FS_PERSISTENT_VOLUME_INFORMATION = *mut _FILE_FS_PERSISTENT_VOLUME_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_SYSTEM_RECOGNITION_INFORMATION {
    pub FileSystem: [CHAR; 9usize],
}
#[test]
fn bindgen_test_layout__FILE_SYSTEM_RECOGNITION_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_SYSTEM_RECOGNITION_INFORMATION>(),
        9usize,
        concat!(
            "Size of: ",
            stringify!(_FILE_SYSTEM_RECOGNITION_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_SYSTEM_RECOGNITION_INFORMATION>(),
        1usize,
        concat!(
            "Alignment of ",
            stringify!(_FILE_SYSTEM_RECOGNITION_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_SYSTEM_RECOGNITION_INFORMATION>())).FileSystem as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_SYSTEM_RECOGNITION_INFORMATION),
            "::",
            stringify!(FileSystem)
        )
    );
}
pub type FILE_SYSTEM_RECOGNITION_INFORMATION = _FILE_SYSTEM_RECOGNITION_INFORMATION;
pub type PFILE_SYSTEM_RECOGNITION_INFORMATION = *mut _FILE_SYSTEM_RECOGNITION_INFORMATION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _REQUEST_OPLOCK_INPUT_BUFFER {
    pub StructureVersion: WORD,
    pub StructureLength: WORD,
    pub RequestedOplockLevel: DWORD,
    pub Flags: DWORD,
}
#[test]
fn bindgen_test_layout__REQUEST_OPLOCK_INPUT_BUFFER() {
    assert_eq!(
        ::std::mem::size_of::<_REQUEST_OPLOCK_INPUT_BUFFER>(),
        12usize,
        concat!("Size of: ", stringify!(_REQUEST_OPLOCK_INPUT_BUFFER))
    );
    assert_eq!(
        ::std::mem::align_of::<_REQUEST_OPLOCK_INPUT_BUFFER>(),
        4usize,
        concat!("Alignment of ", stringify!(_REQUEST_OPLOCK_INPUT_BUFFER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REQUEST_OPLOCK_INPUT_BUFFER>())).StructureVersion as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_REQUEST_OPLOCK_INPUT_BUFFER),
            "::",
            stringify!(StructureVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REQUEST_OPLOCK_INPUT_BUFFER>())).StructureLength as *const _
                as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_REQUEST_OPLOCK_INPUT_BUFFER),
            "::",
            stringify!(StructureLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REQUEST_OPLOCK_INPUT_BUFFER>())).RequestedOplockLevel
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_REQUEST_OPLOCK_INPUT_BUFFER),
            "::",
            stringify!(RequestedOplockLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REQUEST_OPLOCK_INPUT_BUFFER>())).Flags as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_REQUEST_OPLOCK_INPUT_BUFFER),
            "::",
            stringify!(Flags)
        )
    );
}
pub type REQUEST_OPLOCK_INPUT_BUFFER = _REQUEST_OPLOCK_INPUT_BUFFER;
pub type PREQUEST_OPLOCK_INPUT_BUFFER = *mut _REQUEST_OPLOCK_INPUT_BUFFER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _REQUEST_OPLOCK_OUTPUT_BUFFER {
    pub StructureVersion: WORD,
    pub StructureLength: WORD,
    pub OriginalOplockLevel: DWORD,
    pub NewOplockLevel: DWORD,
    pub Flags: DWORD,
    pub AccessMode: ACCESS_MASK,
    pub ShareMode: WORD,
}
#[test]
fn bindgen_test_layout__REQUEST_OPLOCK_OUTPUT_BUFFER() {
    assert_eq!(
        ::std::mem::size_of::<_REQUEST_OPLOCK_OUTPUT_BUFFER>(),
        24usize,
        concat!("Size of: ", stringify!(_REQUEST_OPLOCK_OUTPUT_BUFFER))
    );
    assert_eq!(
        ::std::mem::align_of::<_REQUEST_OPLOCK_OUTPUT_BUFFER>(),
        4usize,
        concat!("Alignment of ", stringify!(_REQUEST_OPLOCK_OUTPUT_BUFFER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REQUEST_OPLOCK_OUTPUT_BUFFER>())).StructureVersion as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_REQUEST_OPLOCK_OUTPUT_BUFFER),
            "::",
            stringify!(StructureVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REQUEST_OPLOCK_OUTPUT_BUFFER>())).StructureLength as *const _
                as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_REQUEST_OPLOCK_OUTPUT_BUFFER),
            "::",
            stringify!(StructureLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REQUEST_OPLOCK_OUTPUT_BUFFER>())).OriginalOplockLevel
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_REQUEST_OPLOCK_OUTPUT_BUFFER),
            "::",
            stringify!(OriginalOplockLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REQUEST_OPLOCK_OUTPUT_BUFFER>())).NewOplockLevel as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_REQUEST_OPLOCK_OUTPUT_BUFFER),
            "::",
            stringify!(NewOplockLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REQUEST_OPLOCK_OUTPUT_BUFFER>())).Flags as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_REQUEST_OPLOCK_OUTPUT_BUFFER),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REQUEST_OPLOCK_OUTPUT_BUFFER>())).AccessMode as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_REQUEST_OPLOCK_OUTPUT_BUFFER),
            "::",
            stringify!(AccessMode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REQUEST_OPLOCK_OUTPUT_BUFFER>())).ShareMode as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_REQUEST_OPLOCK_OUTPUT_BUFFER),
            "::",
            stringify!(ShareMode)
        )
    );
}
pub type REQUEST_OPLOCK_OUTPUT_BUFFER = _REQUEST_OPLOCK_OUTPUT_BUFFER;
pub type PREQUEST_OPLOCK_OUTPUT_BUFFER = *mut _REQUEST_OPLOCK_OUTPUT_BUFFER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _VIRTUAL_STORAGE_TYPE {
    pub DeviceId: DWORD,
    pub VendorId: GUID,
}
#[test]
fn bindgen_test_layout__VIRTUAL_STORAGE_TYPE() {
    assert_eq!(
        ::std::mem::size_of::<_VIRTUAL_STORAGE_TYPE>(),
        20usize,
        concat!("Size of: ", stringify!(_VIRTUAL_STORAGE_TYPE))
    );
    assert_eq!(
        ::std::mem::align_of::<_VIRTUAL_STORAGE_TYPE>(),
        4usize,
        concat!("Alignment of ", stringify!(_VIRTUAL_STORAGE_TYPE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_VIRTUAL_STORAGE_TYPE>())).DeviceId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIRTUAL_STORAGE_TYPE),
            "::",
            stringify!(DeviceId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_VIRTUAL_STORAGE_TYPE>())).VendorId as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIRTUAL_STORAGE_TYPE),
            "::",
            stringify!(VendorId)
        )
    );
}
pub type VIRTUAL_STORAGE_TYPE = _VIRTUAL_STORAGE_TYPE;
pub type PVIRTUAL_STORAGE_TYPE = *mut _VIRTUAL_STORAGE_TYPE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_QUERY_DEPENDENT_VOLUME_REQUEST {
    pub RequestLevel: DWORD,
    pub RequestFlags: DWORD,
}
#[test]
fn bindgen_test_layout__STORAGE_QUERY_DEPENDENT_VOLUME_REQUEST() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_QUERY_DEPENDENT_VOLUME_REQUEST>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_REQUEST)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_QUERY_DEPENDENT_VOLUME_REQUEST>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_REQUEST)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_QUERY_DEPENDENT_VOLUME_REQUEST>())).RequestLevel
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_REQUEST),
            "::",
            stringify!(RequestLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_QUERY_DEPENDENT_VOLUME_REQUEST>())).RequestFlags
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_REQUEST),
            "::",
            stringify!(RequestFlags)
        )
    );
}
pub type STORAGE_QUERY_DEPENDENT_VOLUME_REQUEST = _STORAGE_QUERY_DEPENDENT_VOLUME_REQUEST;
pub type PSTORAGE_QUERY_DEPENDENT_VOLUME_REQUEST = *mut _STORAGE_QUERY_DEPENDENT_VOLUME_REQUEST;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY {
    pub EntryLength: DWORD,
    pub DependencyTypeFlags: DWORD,
    pub ProviderSpecificFlags: DWORD,
    pub VirtualStorageType: VIRTUAL_STORAGE_TYPE,
}
#[test]
fn bindgen_test_layout__STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY>(),
        32usize,
        concat!(
            "Size of: ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY>())).EntryLength
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY),
            "::",
            stringify!(EntryLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY>()))
                .DependencyTypeFlags as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY),
            "::",
            stringify!(DependencyTypeFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY>()))
                .ProviderSpecificFlags as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY),
            "::",
            stringify!(ProviderSpecificFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY>()))
                .VirtualStorageType as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY),
            "::",
            stringify!(VirtualStorageType)
        )
    );
}
pub type STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY = _STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY;
pub type PSTORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY =
    *mut _STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY {
    pub EntryLength: DWORD,
    pub DependencyTypeFlags: DWORD,
    pub ProviderSpecificFlags: DWORD,
    pub VirtualStorageType: VIRTUAL_STORAGE_TYPE,
    pub AncestorLevel: DWORD,
    pub HostVolumeNameOffset: DWORD,
    pub HostVolumeNameSize: DWORD,
    pub DependentVolumeNameOffset: DWORD,
    pub DependentVolumeNameSize: DWORD,
    pub RelativePathOffset: DWORD,
    pub RelativePathSize: DWORD,
    pub DependentDeviceNameOffset: DWORD,
    pub DependentDeviceNameSize: DWORD,
}
#[test]
fn bindgen_test_layout__STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY>(),
        68usize,
        concat!(
            "Size of: ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY>())).EntryLength
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY),
            "::",
            stringify!(EntryLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY>()))
                .DependencyTypeFlags as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY),
            "::",
            stringify!(DependencyTypeFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY>()))
                .ProviderSpecificFlags as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY),
            "::",
            stringify!(ProviderSpecificFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY>()))
                .VirtualStorageType as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY),
            "::",
            stringify!(VirtualStorageType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY>())).AncestorLevel
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY),
            "::",
            stringify!(AncestorLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY>()))
                .HostVolumeNameOffset as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY),
            "::",
            stringify!(HostVolumeNameOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY>()))
                .HostVolumeNameSize as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY),
            "::",
            stringify!(HostVolumeNameSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY>()))
                .DependentVolumeNameOffset as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY),
            "::",
            stringify!(DependentVolumeNameOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY>()))
                .DependentVolumeNameSize as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY),
            "::",
            stringify!(DependentVolumeNameSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY>()))
                .RelativePathOffset as *const _ as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY),
            "::",
            stringify!(RelativePathOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY>())).RelativePathSize
                as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY),
            "::",
            stringify!(RelativePathSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY>()))
                .DependentDeviceNameOffset as *const _ as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY),
            "::",
            stringify!(DependentDeviceNameOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY>()))
                .DependentDeviceNameSize as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY),
            "::",
            stringify!(DependentDeviceNameSize)
        )
    );
}
pub type STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY = _STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY;
pub type PSTORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY =
    *mut _STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY;
#[repr(C)]
pub struct _STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE {
    pub ResponseLevel: DWORD,
    pub NumberEntries: DWORD,
    pub __bindgen_anon_1: _STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE__bindgen_ty_1,
}
#[repr(C)]
pub struct _STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE__bindgen_ty_1 {
    pub Lev1Depends: __BindgenUnionField<[STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY; 0usize]>,
    pub Lev2Depends: __BindgenUnionField<[STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY; 0usize]>,
    pub bindgen_union_field: u32,
}
#[test]
fn bindgen_test_layout__STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE__bindgen_ty_1>()))
                .Lev1Depends as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE__bindgen_ty_1),
            "::",
            stringify!(Lev1Depends)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE__bindgen_ty_1>()))
                .Lev2Depends as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE__bindgen_ty_1),
            "::",
            stringify!(Lev2Depends)
        )
    );
}
#[test]
fn bindgen_test_layout__STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE() {
    assert_eq!(
        ::std::mem::size_of::<_STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE>(),
        12usize,
        concat!(
            "Size of: ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE>())).ResponseLevel
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE),
            "::",
            stringify!(ResponseLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE>())).NumberEntries
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE),
            "::",
            stringify!(NumberEntries)
        )
    );
}
pub type STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE = _STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE;
pub type PSTORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE = *mut _STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SD_CHANGE_MACHINE_SID_INPUT {
    pub CurrentMachineSIDOffset: WORD,
    pub CurrentMachineSIDLength: WORD,
    pub NewMachineSIDOffset: WORD,
    pub NewMachineSIDLength: WORD,
}
#[test]
fn bindgen_test_layout__SD_CHANGE_MACHINE_SID_INPUT() {
    assert_eq!(
        ::std::mem::size_of::<_SD_CHANGE_MACHINE_SID_INPUT>(),
        8usize,
        concat!("Size of: ", stringify!(_SD_CHANGE_MACHINE_SID_INPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_SD_CHANGE_MACHINE_SID_INPUT>(),
        2usize,
        concat!("Alignment of ", stringify!(_SD_CHANGE_MACHINE_SID_INPUT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SD_CHANGE_MACHINE_SID_INPUT>())).CurrentMachineSIDOffset
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_CHANGE_MACHINE_SID_INPUT),
            "::",
            stringify!(CurrentMachineSIDOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SD_CHANGE_MACHINE_SID_INPUT>())).CurrentMachineSIDLength
                as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_CHANGE_MACHINE_SID_INPUT),
            "::",
            stringify!(CurrentMachineSIDLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SD_CHANGE_MACHINE_SID_INPUT>())).NewMachineSIDOffset as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_CHANGE_MACHINE_SID_INPUT),
            "::",
            stringify!(NewMachineSIDOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SD_CHANGE_MACHINE_SID_INPUT>())).NewMachineSIDLength as *const _
                as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_CHANGE_MACHINE_SID_INPUT),
            "::",
            stringify!(NewMachineSIDLength)
        )
    );
}
pub type SD_CHANGE_MACHINE_SID_INPUT = _SD_CHANGE_MACHINE_SID_INPUT;
pub type PSD_CHANGE_MACHINE_SID_INPUT = *mut _SD_CHANGE_MACHINE_SID_INPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SD_CHANGE_MACHINE_SID_OUTPUT {
    pub NumSDChangedSuccess: DWORDLONG,
    pub NumSDChangedFail: DWORDLONG,
    pub NumSDUnused: DWORDLONG,
    pub NumSDTotal: DWORDLONG,
    pub NumMftSDChangedSuccess: DWORDLONG,
    pub NumMftSDChangedFail: DWORDLONG,
    pub NumMftSDTotal: DWORDLONG,
}
#[test]
fn bindgen_test_layout__SD_CHANGE_MACHINE_SID_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_SD_CHANGE_MACHINE_SID_OUTPUT>(),
        56usize,
        concat!("Size of: ", stringify!(_SD_CHANGE_MACHINE_SID_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_SD_CHANGE_MACHINE_SID_OUTPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(_SD_CHANGE_MACHINE_SID_OUTPUT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SD_CHANGE_MACHINE_SID_OUTPUT>())).NumSDChangedSuccess
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_CHANGE_MACHINE_SID_OUTPUT),
            "::",
            stringify!(NumSDChangedSuccess)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SD_CHANGE_MACHINE_SID_OUTPUT>())).NumSDChangedFail as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_CHANGE_MACHINE_SID_OUTPUT),
            "::",
            stringify!(NumSDChangedFail)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SD_CHANGE_MACHINE_SID_OUTPUT>())).NumSDUnused as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_CHANGE_MACHINE_SID_OUTPUT),
            "::",
            stringify!(NumSDUnused)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SD_CHANGE_MACHINE_SID_OUTPUT>())).NumSDTotal as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_CHANGE_MACHINE_SID_OUTPUT),
            "::",
            stringify!(NumSDTotal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SD_CHANGE_MACHINE_SID_OUTPUT>())).NumMftSDChangedSuccess
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_CHANGE_MACHINE_SID_OUTPUT),
            "::",
            stringify!(NumMftSDChangedSuccess)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SD_CHANGE_MACHINE_SID_OUTPUT>())).NumMftSDChangedFail
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_CHANGE_MACHINE_SID_OUTPUT),
            "::",
            stringify!(NumMftSDChangedFail)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SD_CHANGE_MACHINE_SID_OUTPUT>())).NumMftSDTotal as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_CHANGE_MACHINE_SID_OUTPUT),
            "::",
            stringify!(NumMftSDTotal)
        )
    );
}
pub type SD_CHANGE_MACHINE_SID_OUTPUT = _SD_CHANGE_MACHINE_SID_OUTPUT;
pub type PSD_CHANGE_MACHINE_SID_OUTPUT = *mut _SD_CHANGE_MACHINE_SID_OUTPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SD_QUERY_STATS_INPUT {
    pub Reserved: DWORD,
}
#[test]
fn bindgen_test_layout__SD_QUERY_STATS_INPUT() {
    assert_eq!(
        ::std::mem::size_of::<_SD_QUERY_STATS_INPUT>(),
        4usize,
        concat!("Size of: ", stringify!(_SD_QUERY_STATS_INPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_SD_QUERY_STATS_INPUT>(),
        4usize,
        concat!("Alignment of ", stringify!(_SD_QUERY_STATS_INPUT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SD_QUERY_STATS_INPUT>())).Reserved as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_QUERY_STATS_INPUT),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type SD_QUERY_STATS_INPUT = _SD_QUERY_STATS_INPUT;
pub type PSD_QUERY_STATS_INPUT = *mut _SD_QUERY_STATS_INPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SD_QUERY_STATS_OUTPUT {
    pub SdsStreamSize: DWORDLONG,
    pub SdsAllocationSize: DWORDLONG,
    pub SiiStreamSize: DWORDLONG,
    pub SiiAllocationSize: DWORDLONG,
    pub SdhStreamSize: DWORDLONG,
    pub SdhAllocationSize: DWORDLONG,
    pub NumSDTotal: DWORDLONG,
    pub NumSDUnused: DWORDLONG,
}
#[test]
fn bindgen_test_layout__SD_QUERY_STATS_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_SD_QUERY_STATS_OUTPUT>(),
        64usize,
        concat!("Size of: ", stringify!(_SD_QUERY_STATS_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_SD_QUERY_STATS_OUTPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(_SD_QUERY_STATS_OUTPUT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SD_QUERY_STATS_OUTPUT>())).SdsStreamSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_QUERY_STATS_OUTPUT),
            "::",
            stringify!(SdsStreamSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SD_QUERY_STATS_OUTPUT>())).SdsAllocationSize as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_QUERY_STATS_OUTPUT),
            "::",
            stringify!(SdsAllocationSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SD_QUERY_STATS_OUTPUT>())).SiiStreamSize as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_QUERY_STATS_OUTPUT),
            "::",
            stringify!(SiiStreamSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SD_QUERY_STATS_OUTPUT>())).SiiAllocationSize as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_QUERY_STATS_OUTPUT),
            "::",
            stringify!(SiiAllocationSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SD_QUERY_STATS_OUTPUT>())).SdhStreamSize as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_QUERY_STATS_OUTPUT),
            "::",
            stringify!(SdhStreamSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SD_QUERY_STATS_OUTPUT>())).SdhAllocationSize as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_QUERY_STATS_OUTPUT),
            "::",
            stringify!(SdhAllocationSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SD_QUERY_STATS_OUTPUT>())).NumSDTotal as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_QUERY_STATS_OUTPUT),
            "::",
            stringify!(NumSDTotal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SD_QUERY_STATS_OUTPUT>())).NumSDUnused as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_QUERY_STATS_OUTPUT),
            "::",
            stringify!(NumSDUnused)
        )
    );
}
pub type SD_QUERY_STATS_OUTPUT = _SD_QUERY_STATS_OUTPUT;
pub type PSD_QUERY_STATS_OUTPUT = *mut _SD_QUERY_STATS_OUTPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SD_ENUM_SDS_INPUT {
    pub StartingOffset: DWORDLONG,
    pub MaxSDEntriesToReturn: DWORDLONG,
}
#[test]
fn bindgen_test_layout__SD_ENUM_SDS_INPUT() {
    assert_eq!(
        ::std::mem::size_of::<_SD_ENUM_SDS_INPUT>(),
        16usize,
        concat!("Size of: ", stringify!(_SD_ENUM_SDS_INPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_SD_ENUM_SDS_INPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(_SD_ENUM_SDS_INPUT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SD_ENUM_SDS_INPUT>())).StartingOffset as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_ENUM_SDS_INPUT),
            "::",
            stringify!(StartingOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SD_ENUM_SDS_INPUT>())).MaxSDEntriesToReturn as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_ENUM_SDS_INPUT),
            "::",
            stringify!(MaxSDEntriesToReturn)
        )
    );
}
pub type SD_ENUM_SDS_INPUT = _SD_ENUM_SDS_INPUT;
pub type PSD_ENUM_SDS_INPUT = *mut _SD_ENUM_SDS_INPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SD_ENUM_SDS_ENTRY {
    pub Hash: DWORD,
    pub SecurityId: DWORD,
    pub Offset: DWORDLONG,
    pub Length: DWORD,
    pub Descriptor: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout__SD_ENUM_SDS_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_SD_ENUM_SDS_ENTRY>(),
        24usize,
        concat!("Size of: ", stringify!(_SD_ENUM_SDS_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_SD_ENUM_SDS_ENTRY>(),
        8usize,
        concat!("Alignment of ", stringify!(_SD_ENUM_SDS_ENTRY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SD_ENUM_SDS_ENTRY>())).Hash as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_ENUM_SDS_ENTRY),
            "::",
            stringify!(Hash)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SD_ENUM_SDS_ENTRY>())).SecurityId as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_ENUM_SDS_ENTRY),
            "::",
            stringify!(SecurityId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SD_ENUM_SDS_ENTRY>())).Offset as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_ENUM_SDS_ENTRY),
            "::",
            stringify!(Offset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SD_ENUM_SDS_ENTRY>())).Length as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_ENUM_SDS_ENTRY),
            "::",
            stringify!(Length)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SD_ENUM_SDS_ENTRY>())).Descriptor as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_ENUM_SDS_ENTRY),
            "::",
            stringify!(Descriptor)
        )
    );
}
pub type SD_ENUM_SDS_ENTRY = _SD_ENUM_SDS_ENTRY;
pub type PSD_ENUM_SDS_ENTRY = *mut _SD_ENUM_SDS_ENTRY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SD_ENUM_SDS_OUTPUT {
    pub NextOffset: DWORDLONG,
    pub NumSDEntriesReturned: DWORDLONG,
    pub NumSDBytesReturned: DWORDLONG,
    pub SDEntry: [SD_ENUM_SDS_ENTRY; 1usize],
}
#[test]
fn bindgen_test_layout__SD_ENUM_SDS_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_SD_ENUM_SDS_OUTPUT>(),
        48usize,
        concat!("Size of: ", stringify!(_SD_ENUM_SDS_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_SD_ENUM_SDS_OUTPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(_SD_ENUM_SDS_OUTPUT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SD_ENUM_SDS_OUTPUT>())).NextOffset as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_ENUM_SDS_OUTPUT),
            "::",
            stringify!(NextOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SD_ENUM_SDS_OUTPUT>())).NumSDEntriesReturned as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_ENUM_SDS_OUTPUT),
            "::",
            stringify!(NumSDEntriesReturned)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SD_ENUM_SDS_OUTPUT>())).NumSDBytesReturned as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_ENUM_SDS_OUTPUT),
            "::",
            stringify!(NumSDBytesReturned)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SD_ENUM_SDS_OUTPUT>())).SDEntry as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_ENUM_SDS_OUTPUT),
            "::",
            stringify!(SDEntry)
        )
    );
}
pub type SD_ENUM_SDS_OUTPUT = _SD_ENUM_SDS_OUTPUT;
pub type PSD_ENUM_SDS_OUTPUT = *mut _SD_ENUM_SDS_OUTPUT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _SD_GLOBAL_CHANGE_INPUT {
    pub Flags: DWORD,
    pub ChangeType: DWORD,
    pub __bindgen_anon_1: _SD_GLOBAL_CHANGE_INPUT__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _SD_GLOBAL_CHANGE_INPUT__bindgen_ty_1 {
    pub SdChange: SD_CHANGE_MACHINE_SID_INPUT,
    pub SdQueryStats: SD_QUERY_STATS_INPUT,
    pub SdEnumSds: SD_ENUM_SDS_INPUT,
    _bindgen_union_align: [u64; 2usize],
}
#[test]
fn bindgen_test_layout__SD_GLOBAL_CHANGE_INPUT__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_SD_GLOBAL_CHANGE_INPUT__bindgen_ty_1>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_SD_GLOBAL_CHANGE_INPUT__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_SD_GLOBAL_CHANGE_INPUT__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_SD_GLOBAL_CHANGE_INPUT__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SD_GLOBAL_CHANGE_INPUT__bindgen_ty_1>())).SdChange as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_GLOBAL_CHANGE_INPUT__bindgen_ty_1),
            "::",
            stringify!(SdChange)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SD_GLOBAL_CHANGE_INPUT__bindgen_ty_1>())).SdQueryStats
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_GLOBAL_CHANGE_INPUT__bindgen_ty_1),
            "::",
            stringify!(SdQueryStats)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SD_GLOBAL_CHANGE_INPUT__bindgen_ty_1>())).SdEnumSds as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_GLOBAL_CHANGE_INPUT__bindgen_ty_1),
            "::",
            stringify!(SdEnumSds)
        )
    );
}
#[test]
fn bindgen_test_layout__SD_GLOBAL_CHANGE_INPUT() {
    assert_eq!(
        ::std::mem::size_of::<_SD_GLOBAL_CHANGE_INPUT>(),
        24usize,
        concat!("Size of: ", stringify!(_SD_GLOBAL_CHANGE_INPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_SD_GLOBAL_CHANGE_INPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(_SD_GLOBAL_CHANGE_INPUT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SD_GLOBAL_CHANGE_INPUT>())).Flags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_GLOBAL_CHANGE_INPUT),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SD_GLOBAL_CHANGE_INPUT>())).ChangeType as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_GLOBAL_CHANGE_INPUT),
            "::",
            stringify!(ChangeType)
        )
    );
}
pub type SD_GLOBAL_CHANGE_INPUT = _SD_GLOBAL_CHANGE_INPUT;
pub type PSD_GLOBAL_CHANGE_INPUT = *mut _SD_GLOBAL_CHANGE_INPUT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _SD_GLOBAL_CHANGE_OUTPUT {
    pub Flags: DWORD,
    pub ChangeType: DWORD,
    pub __bindgen_anon_1: _SD_GLOBAL_CHANGE_OUTPUT__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _SD_GLOBAL_CHANGE_OUTPUT__bindgen_ty_1 {
    pub SdChange: SD_CHANGE_MACHINE_SID_OUTPUT,
    pub SdQueryStats: SD_QUERY_STATS_OUTPUT,
    pub SdEnumSds: SD_ENUM_SDS_OUTPUT,
    _bindgen_union_align: [u64; 8usize],
}
#[test]
fn bindgen_test_layout__SD_GLOBAL_CHANGE_OUTPUT__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_SD_GLOBAL_CHANGE_OUTPUT__bindgen_ty_1>(),
        64usize,
        concat!(
            "Size of: ",
            stringify!(_SD_GLOBAL_CHANGE_OUTPUT__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_SD_GLOBAL_CHANGE_OUTPUT__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_SD_GLOBAL_CHANGE_OUTPUT__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SD_GLOBAL_CHANGE_OUTPUT__bindgen_ty_1>())).SdChange as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_GLOBAL_CHANGE_OUTPUT__bindgen_ty_1),
            "::",
            stringify!(SdChange)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SD_GLOBAL_CHANGE_OUTPUT__bindgen_ty_1>())).SdQueryStats
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_GLOBAL_CHANGE_OUTPUT__bindgen_ty_1),
            "::",
            stringify!(SdQueryStats)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SD_GLOBAL_CHANGE_OUTPUT__bindgen_ty_1>())).SdEnumSds as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_GLOBAL_CHANGE_OUTPUT__bindgen_ty_1),
            "::",
            stringify!(SdEnumSds)
        )
    );
}
#[test]
fn bindgen_test_layout__SD_GLOBAL_CHANGE_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_SD_GLOBAL_CHANGE_OUTPUT>(),
        72usize,
        concat!("Size of: ", stringify!(_SD_GLOBAL_CHANGE_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_SD_GLOBAL_CHANGE_OUTPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(_SD_GLOBAL_CHANGE_OUTPUT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SD_GLOBAL_CHANGE_OUTPUT>())).Flags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_GLOBAL_CHANGE_OUTPUT),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SD_GLOBAL_CHANGE_OUTPUT>())).ChangeType as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SD_GLOBAL_CHANGE_OUTPUT),
            "::",
            stringify!(ChangeType)
        )
    );
}
pub type SD_GLOBAL_CHANGE_OUTPUT = _SD_GLOBAL_CHANGE_OUTPUT;
pub type PSD_GLOBAL_CHANGE_OUTPUT = *mut _SD_GLOBAL_CHANGE_OUTPUT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _LOOKUP_STREAM_FROM_CLUSTER_INPUT {
    pub Flags: DWORD,
    pub NumberOfClusters: DWORD,
    pub Cluster: [LARGE_INTEGER; 1usize],
}
#[test]
fn bindgen_test_layout__LOOKUP_STREAM_FROM_CLUSTER_INPUT() {
    assert_eq!(
        ::std::mem::size_of::<_LOOKUP_STREAM_FROM_CLUSTER_INPUT>(),
        16usize,
        concat!("Size of: ", stringify!(_LOOKUP_STREAM_FROM_CLUSTER_INPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_LOOKUP_STREAM_FROM_CLUSTER_INPUT>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_LOOKUP_STREAM_FROM_CLUSTER_INPUT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_LOOKUP_STREAM_FROM_CLUSTER_INPUT>())).Flags as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_LOOKUP_STREAM_FROM_CLUSTER_INPUT),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_LOOKUP_STREAM_FROM_CLUSTER_INPUT>())).NumberOfClusters
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_LOOKUP_STREAM_FROM_CLUSTER_INPUT),
            "::",
            stringify!(NumberOfClusters)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_LOOKUP_STREAM_FROM_CLUSTER_INPUT>())).Cluster as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_LOOKUP_STREAM_FROM_CLUSTER_INPUT),
            "::",
            stringify!(Cluster)
        )
    );
}
pub type LOOKUP_STREAM_FROM_CLUSTER_INPUT = _LOOKUP_STREAM_FROM_CLUSTER_INPUT;
pub type PLOOKUP_STREAM_FROM_CLUSTER_INPUT = *mut _LOOKUP_STREAM_FROM_CLUSTER_INPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _LOOKUP_STREAM_FROM_CLUSTER_OUTPUT {
    pub Offset: DWORD,
    pub NumberOfMatches: DWORD,
    pub BufferSizeRequired: DWORD,
}
#[test]
fn bindgen_test_layout__LOOKUP_STREAM_FROM_CLUSTER_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_LOOKUP_STREAM_FROM_CLUSTER_OUTPUT>(),
        12usize,
        concat!("Size of: ", stringify!(_LOOKUP_STREAM_FROM_CLUSTER_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_LOOKUP_STREAM_FROM_CLUSTER_OUTPUT>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_LOOKUP_STREAM_FROM_CLUSTER_OUTPUT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_LOOKUP_STREAM_FROM_CLUSTER_OUTPUT>())).Offset as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_LOOKUP_STREAM_FROM_CLUSTER_OUTPUT),
            "::",
            stringify!(Offset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_LOOKUP_STREAM_FROM_CLUSTER_OUTPUT>())).NumberOfMatches
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_LOOKUP_STREAM_FROM_CLUSTER_OUTPUT),
            "::",
            stringify!(NumberOfMatches)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_LOOKUP_STREAM_FROM_CLUSTER_OUTPUT>())).BufferSizeRequired
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_LOOKUP_STREAM_FROM_CLUSTER_OUTPUT),
            "::",
            stringify!(BufferSizeRequired)
        )
    );
}
pub type LOOKUP_STREAM_FROM_CLUSTER_OUTPUT = _LOOKUP_STREAM_FROM_CLUSTER_OUTPUT;
pub type PLOOKUP_STREAM_FROM_CLUSTER_OUTPUT = *mut _LOOKUP_STREAM_FROM_CLUSTER_OUTPUT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _LOOKUP_STREAM_FROM_CLUSTER_ENTRY {
    pub OffsetToNext: DWORD,
    pub Flags: DWORD,
    pub Reserved: LARGE_INTEGER,
    pub Cluster: LARGE_INTEGER,
    pub FileName: [WCHAR; 1usize],
}
#[test]
fn bindgen_test_layout__LOOKUP_STREAM_FROM_CLUSTER_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_LOOKUP_STREAM_FROM_CLUSTER_ENTRY>(),
        32usize,
        concat!("Size of: ", stringify!(_LOOKUP_STREAM_FROM_CLUSTER_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_LOOKUP_STREAM_FROM_CLUSTER_ENTRY>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_LOOKUP_STREAM_FROM_CLUSTER_ENTRY)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_LOOKUP_STREAM_FROM_CLUSTER_ENTRY>())).OffsetToNext as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_LOOKUP_STREAM_FROM_CLUSTER_ENTRY),
            "::",
            stringify!(OffsetToNext)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_LOOKUP_STREAM_FROM_CLUSTER_ENTRY>())).Flags as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_LOOKUP_STREAM_FROM_CLUSTER_ENTRY),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_LOOKUP_STREAM_FROM_CLUSTER_ENTRY>())).Reserved as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_LOOKUP_STREAM_FROM_CLUSTER_ENTRY),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_LOOKUP_STREAM_FROM_CLUSTER_ENTRY>())).Cluster as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_LOOKUP_STREAM_FROM_CLUSTER_ENTRY),
            "::",
            stringify!(Cluster)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_LOOKUP_STREAM_FROM_CLUSTER_ENTRY>())).FileName as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_LOOKUP_STREAM_FROM_CLUSTER_ENTRY),
            "::",
            stringify!(FileName)
        )
    );
}
pub type LOOKUP_STREAM_FROM_CLUSTER_ENTRY = _LOOKUP_STREAM_FROM_CLUSTER_ENTRY;
pub type PLOOKUP_STREAM_FROM_CLUSTER_ENTRY = *mut _LOOKUP_STREAM_FROM_CLUSTER_ENTRY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_TYPE_NOTIFICATION_INPUT {
    pub Flags: DWORD,
    pub NumFileTypeIDs: DWORD,
    pub FileTypeID: [GUID; 1usize],
}
#[test]
fn bindgen_test_layout__FILE_TYPE_NOTIFICATION_INPUT() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_TYPE_NOTIFICATION_INPUT>(),
        24usize,
        concat!("Size of: ", stringify!(_FILE_TYPE_NOTIFICATION_INPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_TYPE_NOTIFICATION_INPUT>(),
        4usize,
        concat!("Alignment of ", stringify!(_FILE_TYPE_NOTIFICATION_INPUT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_TYPE_NOTIFICATION_INPUT>())).Flags as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_TYPE_NOTIFICATION_INPUT),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_TYPE_NOTIFICATION_INPUT>())).NumFileTypeIDs as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_TYPE_NOTIFICATION_INPUT),
            "::",
            stringify!(NumFileTypeIDs)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_TYPE_NOTIFICATION_INPUT>())).FileTypeID as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_TYPE_NOTIFICATION_INPUT),
            "::",
            stringify!(FileTypeID)
        )
    );
}
pub type FILE_TYPE_NOTIFICATION_INPUT = _FILE_TYPE_NOTIFICATION_INPUT;
pub type PFILE_TYPE_NOTIFICATION_INPUT = *mut _FILE_TYPE_NOTIFICATION_INPUT;
extern "C" {
    pub static FILE_TYPE_NOTIFICATION_GUID_PAGE_FILE: GUID;
}
extern "C" {
    pub static FILE_TYPE_NOTIFICATION_GUID_HIBERNATION_FILE: GUID;
}
extern "C" {
    pub static FILE_TYPE_NOTIFICATION_GUID_CRASHDUMP_FILE: GUID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CSV_MGMT_LOCK {
    pub Flags: DWORD,
}
#[test]
fn bindgen_test_layout__CSV_MGMT_LOCK() {
    assert_eq!(
        ::std::mem::size_of::<_CSV_MGMT_LOCK>(),
        4usize,
        concat!("Size of: ", stringify!(_CSV_MGMT_LOCK))
    );
    assert_eq!(
        ::std::mem::align_of::<_CSV_MGMT_LOCK>(),
        4usize,
        concat!("Alignment of ", stringify!(_CSV_MGMT_LOCK))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CSV_MGMT_LOCK>())).Flags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_MGMT_LOCK),
            "::",
            stringify!(Flags)
        )
    );
}
pub type CSV_MGMT_LOCK = _CSV_MGMT_LOCK;
pub type PCSV_MGMT_LOCK = *mut _CSV_MGMT_LOCK;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CSV_NAMESPACE_INFO {
    pub Version: DWORD,
    pub DeviceNumber: DWORD,
    pub StartingOffset: LARGE_INTEGER,
    pub SectorSize: DWORD,
}
#[test]
fn bindgen_test_layout__CSV_NAMESPACE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_CSV_NAMESPACE_INFO>(),
        24usize,
        concat!("Size of: ", stringify!(_CSV_NAMESPACE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_CSV_NAMESPACE_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_CSV_NAMESPACE_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CSV_NAMESPACE_INFO>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_NAMESPACE_INFO),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CSV_NAMESPACE_INFO>())).DeviceNumber as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_NAMESPACE_INFO),
            "::",
            stringify!(DeviceNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CSV_NAMESPACE_INFO>())).StartingOffset as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_NAMESPACE_INFO),
            "::",
            stringify!(StartingOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CSV_NAMESPACE_INFO>())).SectorSize as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_NAMESPACE_INFO),
            "::",
            stringify!(SectorSize)
        )
    );
}
pub type CSV_NAMESPACE_INFO = _CSV_NAMESPACE_INFO;
pub type PCSV_NAMESPACE_INFO = *mut _CSV_NAMESPACE_INFO;
pub const _CSV_CONTROL_OP_CsvControlStartRedirectFile: _CSV_CONTROL_OP = 2;
pub const _CSV_CONTROL_OP_CsvControlStopRedirectFile: _CSV_CONTROL_OP = 3;
pub const _CSV_CONTROL_OP_CsvControlQueryRedirectState: _CSV_CONTROL_OP = 4;
pub const _CSV_CONTROL_OP_CsvControlQueryFileRevision: _CSV_CONTROL_OP = 6;
pub const _CSV_CONTROL_OP_CsvControlQueryMdsPath: _CSV_CONTROL_OP = 8;
pub const _CSV_CONTROL_OP_CsvControlQueryFileRevisionFileId128: _CSV_CONTROL_OP = 9;
pub const _CSV_CONTROL_OP_CsvControlQueryVolumeRedirectState: _CSV_CONTROL_OP = 10;
pub const _CSV_CONTROL_OP_CsvControlEnableUSNRangeModificationTracking: _CSV_CONTROL_OP = 13;
pub const _CSV_CONTROL_OP_CsvControlMarkHandleLocalVolumeMount: _CSV_CONTROL_OP = 14;
pub const _CSV_CONTROL_OP_CsvControlUnmarkHandleLocalVolumeMount: _CSV_CONTROL_OP = 15;
pub const _CSV_CONTROL_OP_CsvControlGetCsvFsMdsPathV2: _CSV_CONTROL_OP = 18;
pub const _CSV_CONTROL_OP_CsvControlDisableCaching: _CSV_CONTROL_OP = 19;
pub const _CSV_CONTROL_OP_CsvControlEnableCaching: _CSV_CONTROL_OP = 20;
pub type _CSV_CONTROL_OP = ::std::os::raw::c_int;
pub use self::_CSV_CONTROL_OP as CSV_CONTROL_OP;
pub type PCSV_CONTROL_OP = *mut _CSV_CONTROL_OP;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CSV_CONTROL_PARAM {
    pub Operation: CSV_CONTROL_OP,
    pub Unused: LONGLONG,
}
#[test]
fn bindgen_test_layout__CSV_CONTROL_PARAM() {
    assert_eq!(
        ::std::mem::size_of::<_CSV_CONTROL_PARAM>(),
        16usize,
        concat!("Size of: ", stringify!(_CSV_CONTROL_PARAM))
    );
    assert_eq!(
        ::std::mem::align_of::<_CSV_CONTROL_PARAM>(),
        8usize,
        concat!("Alignment of ", stringify!(_CSV_CONTROL_PARAM))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CSV_CONTROL_PARAM>())).Operation as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_CONTROL_PARAM),
            "::",
            stringify!(Operation)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CSV_CONTROL_PARAM>())).Unused as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_CONTROL_PARAM),
            "::",
            stringify!(Unused)
        )
    );
}
pub type CSV_CONTROL_PARAM = _CSV_CONTROL_PARAM;
pub type PCSV_CONTROL_PARAM = *mut _CSV_CONTROL_PARAM;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CSV_QUERY_REDIRECT_STATE {
    pub MdsNodeId: DWORD,
    pub DsNodeId: DWORD,
    pub FileRedirected: BOOLEAN,
}
#[test]
fn bindgen_test_layout__CSV_QUERY_REDIRECT_STATE() {
    assert_eq!(
        ::std::mem::size_of::<_CSV_QUERY_REDIRECT_STATE>(),
        12usize,
        concat!("Size of: ", stringify!(_CSV_QUERY_REDIRECT_STATE))
    );
    assert_eq!(
        ::std::mem::align_of::<_CSV_QUERY_REDIRECT_STATE>(),
        4usize,
        concat!("Alignment of ", stringify!(_CSV_QUERY_REDIRECT_STATE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CSV_QUERY_REDIRECT_STATE>())).MdsNodeId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_QUERY_REDIRECT_STATE),
            "::",
            stringify!(MdsNodeId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CSV_QUERY_REDIRECT_STATE>())).DsNodeId as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_QUERY_REDIRECT_STATE),
            "::",
            stringify!(DsNodeId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CSV_QUERY_REDIRECT_STATE>())).FileRedirected as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_QUERY_REDIRECT_STATE),
            "::",
            stringify!(FileRedirected)
        )
    );
}
pub type CSV_QUERY_REDIRECT_STATE = _CSV_QUERY_REDIRECT_STATE;
pub type PCSV_QUERY_REDIRECT_STATE = *mut _CSV_QUERY_REDIRECT_STATE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CSV_QUERY_FILE_REVISION {
    pub FileId: LONGLONG,
    pub FileRevision: [LONGLONG; 3usize],
}
#[test]
fn bindgen_test_layout__CSV_QUERY_FILE_REVISION() {
    assert_eq!(
        ::std::mem::size_of::<_CSV_QUERY_FILE_REVISION>(),
        32usize,
        concat!("Size of: ", stringify!(_CSV_QUERY_FILE_REVISION))
    );
    assert_eq!(
        ::std::mem::align_of::<_CSV_QUERY_FILE_REVISION>(),
        8usize,
        concat!("Alignment of ", stringify!(_CSV_QUERY_FILE_REVISION))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CSV_QUERY_FILE_REVISION>())).FileId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_QUERY_FILE_REVISION),
            "::",
            stringify!(FileId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CSV_QUERY_FILE_REVISION>())).FileRevision as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_QUERY_FILE_REVISION),
            "::",
            stringify!(FileRevision)
        )
    );
}
pub type CSV_QUERY_FILE_REVISION = _CSV_QUERY_FILE_REVISION;
pub type PCSV_QUERY_FILE_REVISION = *mut _CSV_QUERY_FILE_REVISION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CSV_QUERY_FILE_REVISION_FILE_ID_128 {
    pub FileId: FILE_ID_128,
    pub FileRevision: [LONGLONG; 3usize],
}
#[test]
fn bindgen_test_layout__CSV_QUERY_FILE_REVISION_FILE_ID_128() {
    assert_eq!(
        ::std::mem::size_of::<_CSV_QUERY_FILE_REVISION_FILE_ID_128>(),
        40usize,
        concat!(
            "Size of: ",
            stringify!(_CSV_QUERY_FILE_REVISION_FILE_ID_128)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CSV_QUERY_FILE_REVISION_FILE_ID_128>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CSV_QUERY_FILE_REVISION_FILE_ID_128)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CSV_QUERY_FILE_REVISION_FILE_ID_128>())).FileId as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_QUERY_FILE_REVISION_FILE_ID_128),
            "::",
            stringify!(FileId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CSV_QUERY_FILE_REVISION_FILE_ID_128>())).FileRevision
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_QUERY_FILE_REVISION_FILE_ID_128),
            "::",
            stringify!(FileRevision)
        )
    );
}
pub type CSV_QUERY_FILE_REVISION_FILE_ID_128 = _CSV_QUERY_FILE_REVISION_FILE_ID_128;
pub type PCSV_QUERY_FILE_REVISION_FILE_ID_128 = *mut _CSV_QUERY_FILE_REVISION_FILE_ID_128;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CSV_QUERY_MDS_PATH {
    pub MdsNodeId: DWORD,
    pub DsNodeId: DWORD,
    pub PathLength: DWORD,
    pub Path: [WCHAR; 1usize],
}
#[test]
fn bindgen_test_layout__CSV_QUERY_MDS_PATH() {
    assert_eq!(
        ::std::mem::size_of::<_CSV_QUERY_MDS_PATH>(),
        16usize,
        concat!("Size of: ", stringify!(_CSV_QUERY_MDS_PATH))
    );
    assert_eq!(
        ::std::mem::align_of::<_CSV_QUERY_MDS_PATH>(),
        4usize,
        concat!("Alignment of ", stringify!(_CSV_QUERY_MDS_PATH))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CSV_QUERY_MDS_PATH>())).MdsNodeId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_QUERY_MDS_PATH),
            "::",
            stringify!(MdsNodeId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CSV_QUERY_MDS_PATH>())).DsNodeId as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_QUERY_MDS_PATH),
            "::",
            stringify!(DsNodeId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CSV_QUERY_MDS_PATH>())).PathLength as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_QUERY_MDS_PATH),
            "::",
            stringify!(PathLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CSV_QUERY_MDS_PATH>())).Path as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_QUERY_MDS_PATH),
            "::",
            stringify!(Path)
        )
    );
}
pub type CSV_QUERY_MDS_PATH = _CSV_QUERY_MDS_PATH;
pub type PCSV_QUERY_MDS_PATH = *mut _CSV_QUERY_MDS_PATH;
pub const _CSVFS_DISK_CONNECTIVITY_CsvFsDiskConnectivityNone: _CSVFS_DISK_CONNECTIVITY = 0;
pub const _CSVFS_DISK_CONNECTIVITY_CsvFsDiskConnectivityMdsNodeOnly: _CSVFS_DISK_CONNECTIVITY = 1;
pub const _CSVFS_DISK_CONNECTIVITY_CsvFsDiskConnectivitySubsetOfNodes: _CSVFS_DISK_CONNECTIVITY = 2;
pub const _CSVFS_DISK_CONNECTIVITY_CsvFsDiskConnectivityAllNodes: _CSVFS_DISK_CONNECTIVITY = 3;
pub type _CSVFS_DISK_CONNECTIVITY = ::std::os::raw::c_int;
pub use self::_CSVFS_DISK_CONNECTIVITY as CSVFS_DISK_CONNECTIVITY;
pub type PCSVFS_DISK_CONNECTIVITY = *mut _CSVFS_DISK_CONNECTIVITY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CSV_QUERY_VOLUME_REDIRECT_STATE {
    pub MdsNodeId: DWORD,
    pub DsNodeId: DWORD,
    pub IsDiskConnected: BOOLEAN,
    pub ClusterEnableDirectIo: BOOLEAN,
    pub DiskConnectivity: CSVFS_DISK_CONNECTIVITY,
}
#[test]
fn bindgen_test_layout__CSV_QUERY_VOLUME_REDIRECT_STATE() {
    assert_eq!(
        ::std::mem::size_of::<_CSV_QUERY_VOLUME_REDIRECT_STATE>(),
        16usize,
        concat!("Size of: ", stringify!(_CSV_QUERY_VOLUME_REDIRECT_STATE))
    );
    assert_eq!(
        ::std::mem::align_of::<_CSV_QUERY_VOLUME_REDIRECT_STATE>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_CSV_QUERY_VOLUME_REDIRECT_STATE)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CSV_QUERY_VOLUME_REDIRECT_STATE>())).MdsNodeId as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_QUERY_VOLUME_REDIRECT_STATE),
            "::",
            stringify!(MdsNodeId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CSV_QUERY_VOLUME_REDIRECT_STATE>())).DsNodeId as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_QUERY_VOLUME_REDIRECT_STATE),
            "::",
            stringify!(DsNodeId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CSV_QUERY_VOLUME_REDIRECT_STATE>())).IsDiskConnected as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_QUERY_VOLUME_REDIRECT_STATE),
            "::",
            stringify!(IsDiskConnected)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CSV_QUERY_VOLUME_REDIRECT_STATE>())).ClusterEnableDirectIo
                as *const _ as usize
        },
        9usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_QUERY_VOLUME_REDIRECT_STATE),
            "::",
            stringify!(ClusterEnableDirectIo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CSV_QUERY_VOLUME_REDIRECT_STATE>())).DiskConnectivity
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_QUERY_VOLUME_REDIRECT_STATE),
            "::",
            stringify!(DiskConnectivity)
        )
    );
}
pub type CSV_QUERY_VOLUME_REDIRECT_STATE = _CSV_QUERY_VOLUME_REDIRECT_STATE;
pub type PCSV_QUERY_VOLUME_REDIRECT_STATE = *mut _CSV_QUERY_VOLUME_REDIRECT_STATE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CSV_QUERY_MDS_PATH_V2 {
    pub Version: LONGLONG,
    pub RequiredSize: DWORD,
    pub MdsNodeId: DWORD,
    pub DsNodeId: DWORD,
    pub Flags: DWORD,
    pub DiskConnectivity: CSVFS_DISK_CONNECTIVITY,
    pub VolumeId: GUID,
    pub IpAddressOffset: DWORD,
    pub IpAddressLength: DWORD,
    pub PathOffset: DWORD,
    pub PathLength: DWORD,
}
#[test]
fn bindgen_test_layout__CSV_QUERY_MDS_PATH_V2() {
    assert_eq!(
        ::std::mem::size_of::<_CSV_QUERY_MDS_PATH_V2>(),
        64usize,
        concat!("Size of: ", stringify!(_CSV_QUERY_MDS_PATH_V2))
    );
    assert_eq!(
        ::std::mem::align_of::<_CSV_QUERY_MDS_PATH_V2>(),
        8usize,
        concat!("Alignment of ", stringify!(_CSV_QUERY_MDS_PATH_V2))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CSV_QUERY_MDS_PATH_V2>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_QUERY_MDS_PATH_V2),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CSV_QUERY_MDS_PATH_V2>())).RequiredSize as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_QUERY_MDS_PATH_V2),
            "::",
            stringify!(RequiredSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CSV_QUERY_MDS_PATH_V2>())).MdsNodeId as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_QUERY_MDS_PATH_V2),
            "::",
            stringify!(MdsNodeId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CSV_QUERY_MDS_PATH_V2>())).DsNodeId as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_QUERY_MDS_PATH_V2),
            "::",
            stringify!(DsNodeId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CSV_QUERY_MDS_PATH_V2>())).Flags as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_QUERY_MDS_PATH_V2),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CSV_QUERY_MDS_PATH_V2>())).DiskConnectivity as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_QUERY_MDS_PATH_V2),
            "::",
            stringify!(DiskConnectivity)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CSV_QUERY_MDS_PATH_V2>())).VolumeId as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_QUERY_MDS_PATH_V2),
            "::",
            stringify!(VolumeId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CSV_QUERY_MDS_PATH_V2>())).IpAddressOffset as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_QUERY_MDS_PATH_V2),
            "::",
            stringify!(IpAddressOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CSV_QUERY_MDS_PATH_V2>())).IpAddressLength as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_QUERY_MDS_PATH_V2),
            "::",
            stringify!(IpAddressLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CSV_QUERY_MDS_PATH_V2>())).PathOffset as *const _ as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_QUERY_MDS_PATH_V2),
            "::",
            stringify!(PathOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CSV_QUERY_MDS_PATH_V2>())).PathLength as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_QUERY_MDS_PATH_V2),
            "::",
            stringify!(PathLength)
        )
    );
}
pub type CSV_QUERY_MDS_PATH_V2 = _CSV_QUERY_MDS_PATH_V2;
pub type PCSV_QUERY_MDS_PATH_V2 = *mut _CSV_QUERY_MDS_PATH_V2;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CSV_QUERY_VETO_FILE_DIRECT_IO_OUTPUT {
    pub VetoedFromAltitudeIntegral: DWORDLONG,
    pub VetoedFromAltitudeDecimal: DWORDLONG,
    pub Reason: [WCHAR; 256usize],
}
#[test]
fn bindgen_test_layout__CSV_QUERY_VETO_FILE_DIRECT_IO_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_CSV_QUERY_VETO_FILE_DIRECT_IO_OUTPUT>(),
        528usize,
        concat!(
            "Size of: ",
            stringify!(_CSV_QUERY_VETO_FILE_DIRECT_IO_OUTPUT)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_CSV_QUERY_VETO_FILE_DIRECT_IO_OUTPUT>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_CSV_QUERY_VETO_FILE_DIRECT_IO_OUTPUT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CSV_QUERY_VETO_FILE_DIRECT_IO_OUTPUT>()))
                .VetoedFromAltitudeIntegral as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_QUERY_VETO_FILE_DIRECT_IO_OUTPUT),
            "::",
            stringify!(VetoedFromAltitudeIntegral)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CSV_QUERY_VETO_FILE_DIRECT_IO_OUTPUT>()))
                .VetoedFromAltitudeDecimal as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_QUERY_VETO_FILE_DIRECT_IO_OUTPUT),
            "::",
            stringify!(VetoedFromAltitudeDecimal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CSV_QUERY_VETO_FILE_DIRECT_IO_OUTPUT>())).Reason as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_QUERY_VETO_FILE_DIRECT_IO_OUTPUT),
            "::",
            stringify!(Reason)
        )
    );
}
pub type CSV_QUERY_VETO_FILE_DIRECT_IO_OUTPUT = _CSV_QUERY_VETO_FILE_DIRECT_IO_OUTPUT;
pub type PCSV_QUERY_VETO_FILE_DIRECT_IO_OUTPUT = *mut _CSV_QUERY_VETO_FILE_DIRECT_IO_OUTPUT;
pub const _STORAGE_RESERVE_ID_StorageReserveIdNone: _STORAGE_RESERVE_ID = 0;
pub const _STORAGE_RESERVE_ID_StorageReserveIdHard: _STORAGE_RESERVE_ID = 1;
pub const _STORAGE_RESERVE_ID_StorageReserveIdSoft: _STORAGE_RESERVE_ID = 2;
pub const _STORAGE_RESERVE_ID_StorageReserveIdUpdateScratch: _STORAGE_RESERVE_ID = 3;
pub const _STORAGE_RESERVE_ID_StorageReserveIdMax: _STORAGE_RESERVE_ID = 4;
pub type _STORAGE_RESERVE_ID = ::std::os::raw::c_int;
pub use self::_STORAGE_RESERVE_ID as STORAGE_RESERVE_ID;
pub type PSTORAGE_RESERVE_ID = *mut _STORAGE_RESERVE_ID;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CSV_IS_OWNED_BY_CSVFS {
    pub OwnedByCSVFS: BOOLEAN,
}
#[test]
fn bindgen_test_layout__CSV_IS_OWNED_BY_CSVFS() {
    assert_eq!(
        ::std::mem::size_of::<_CSV_IS_OWNED_BY_CSVFS>(),
        1usize,
        concat!("Size of: ", stringify!(_CSV_IS_OWNED_BY_CSVFS))
    );
    assert_eq!(
        ::std::mem::align_of::<_CSV_IS_OWNED_BY_CSVFS>(),
        1usize,
        concat!("Alignment of ", stringify!(_CSV_IS_OWNED_BY_CSVFS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CSV_IS_OWNED_BY_CSVFS>())).OwnedByCSVFS as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CSV_IS_OWNED_BY_CSVFS),
            "::",
            stringify!(OwnedByCSVFS)
        )
    );
}
pub type CSV_IS_OWNED_BY_CSVFS = _CSV_IS_OWNED_BY_CSVFS;
pub type PCSV_IS_OWNED_BY_CSVFS = *mut _CSV_IS_OWNED_BY_CSVFS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_LEVEL_TRIM_RANGE {
    pub Offset: DWORDLONG,
    pub Length: DWORDLONG,
}
#[test]
fn bindgen_test_layout__FILE_LEVEL_TRIM_RANGE() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_LEVEL_TRIM_RANGE>(),
        16usize,
        concat!("Size of: ", stringify!(_FILE_LEVEL_TRIM_RANGE))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_LEVEL_TRIM_RANGE>(),
        8usize,
        concat!("Alignment of ", stringify!(_FILE_LEVEL_TRIM_RANGE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_LEVEL_TRIM_RANGE>())).Offset as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_LEVEL_TRIM_RANGE),
            "::",
            stringify!(Offset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_LEVEL_TRIM_RANGE>())).Length as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_LEVEL_TRIM_RANGE),
            "::",
            stringify!(Length)
        )
    );
}
pub type FILE_LEVEL_TRIM_RANGE = _FILE_LEVEL_TRIM_RANGE;
pub type PFILE_LEVEL_TRIM_RANGE = *mut _FILE_LEVEL_TRIM_RANGE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_LEVEL_TRIM {
    pub Key: DWORD,
    pub NumRanges: DWORD,
    pub Ranges: [FILE_LEVEL_TRIM_RANGE; 1usize],
}
#[test]
fn bindgen_test_layout__FILE_LEVEL_TRIM() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_LEVEL_TRIM>(),
        24usize,
        concat!("Size of: ", stringify!(_FILE_LEVEL_TRIM))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_LEVEL_TRIM>(),
        8usize,
        concat!("Alignment of ", stringify!(_FILE_LEVEL_TRIM))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_LEVEL_TRIM>())).Key as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_LEVEL_TRIM),
            "::",
            stringify!(Key)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_LEVEL_TRIM>())).NumRanges as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_LEVEL_TRIM),
            "::",
            stringify!(NumRanges)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_LEVEL_TRIM>())).Ranges as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_LEVEL_TRIM),
            "::",
            stringify!(Ranges)
        )
    );
}
pub type FILE_LEVEL_TRIM = _FILE_LEVEL_TRIM;
pub type PFILE_LEVEL_TRIM = *mut _FILE_LEVEL_TRIM;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_LEVEL_TRIM_OUTPUT {
    pub NumRangesProcessed: DWORD,
}
#[test]
fn bindgen_test_layout__FILE_LEVEL_TRIM_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_LEVEL_TRIM_OUTPUT>(),
        4usize,
        concat!("Size of: ", stringify!(_FILE_LEVEL_TRIM_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_LEVEL_TRIM_OUTPUT>(),
        4usize,
        concat!("Alignment of ", stringify!(_FILE_LEVEL_TRIM_OUTPUT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_LEVEL_TRIM_OUTPUT>())).NumRangesProcessed as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_LEVEL_TRIM_OUTPUT),
            "::",
            stringify!(NumRangesProcessed)
        )
    );
}
pub type FILE_LEVEL_TRIM_OUTPUT = _FILE_LEVEL_TRIM_OUTPUT;
pub type PFILE_LEVEL_TRIM_OUTPUT = *mut _FILE_LEVEL_TRIM_OUTPUT;
pub const _QUERY_FILE_LAYOUT_FILTER_TYPE_QUERY_FILE_LAYOUT_FILTER_TYPE_NONE:
    _QUERY_FILE_LAYOUT_FILTER_TYPE = 0;
pub const _QUERY_FILE_LAYOUT_FILTER_TYPE_QUERY_FILE_LAYOUT_FILTER_TYPE_CLUSTERS:
    _QUERY_FILE_LAYOUT_FILTER_TYPE = 1;
pub const _QUERY_FILE_LAYOUT_FILTER_TYPE_QUERY_FILE_LAYOUT_FILTER_TYPE_FILEID:
    _QUERY_FILE_LAYOUT_FILTER_TYPE = 2;
pub const _QUERY_FILE_LAYOUT_FILTER_TYPE_QUERY_FILE_LAYOUT_FILTER_TYPE_STORAGE_RESERVE_ID:
    _QUERY_FILE_LAYOUT_FILTER_TYPE = 3;
pub const _QUERY_FILE_LAYOUT_FILTER_TYPE_QUERY_FILE_LAYOUT_NUM_FILTER_TYPES:
    _QUERY_FILE_LAYOUT_FILTER_TYPE = 4;
pub type _QUERY_FILE_LAYOUT_FILTER_TYPE = ::std::os::raw::c_int;
pub use self::_QUERY_FILE_LAYOUT_FILTER_TYPE as QUERY_FILE_LAYOUT_FILTER_TYPE;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CLUSTER_RANGE {
    pub StartingCluster: LARGE_INTEGER,
    pub ClusterCount: LARGE_INTEGER,
}
#[test]
fn bindgen_test_layout__CLUSTER_RANGE() {
    assert_eq!(
        ::std::mem::size_of::<_CLUSTER_RANGE>(),
        16usize,
        concat!("Size of: ", stringify!(_CLUSTER_RANGE))
    );
    assert_eq!(
        ::std::mem::align_of::<_CLUSTER_RANGE>(),
        8usize,
        concat!("Alignment of ", stringify!(_CLUSTER_RANGE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CLUSTER_RANGE>())).StartingCluster as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLUSTER_RANGE),
            "::",
            stringify!(StartingCluster)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CLUSTER_RANGE>())).ClusterCount as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_CLUSTER_RANGE),
            "::",
            stringify!(ClusterCount)
        )
    );
}
pub type CLUSTER_RANGE = _CLUSTER_RANGE;
pub type PCLUSTER_RANGE = *mut _CLUSTER_RANGE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_REFERENCE_RANGE {
    pub StartingFileReferenceNumber: DWORDLONG,
    pub EndingFileReferenceNumber: DWORDLONG,
}
#[test]
fn bindgen_test_layout__FILE_REFERENCE_RANGE() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_REFERENCE_RANGE>(),
        16usize,
        concat!("Size of: ", stringify!(_FILE_REFERENCE_RANGE))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_REFERENCE_RANGE>(),
        8usize,
        concat!("Alignment of ", stringify!(_FILE_REFERENCE_RANGE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_REFERENCE_RANGE>())).StartingFileReferenceNumber
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_REFERENCE_RANGE),
            "::",
            stringify!(StartingFileReferenceNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_REFERENCE_RANGE>())).EndingFileReferenceNumber as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_REFERENCE_RANGE),
            "::",
            stringify!(EndingFileReferenceNumber)
        )
    );
}
pub type FILE_REFERENCE_RANGE = _FILE_REFERENCE_RANGE;
pub type PFILE_REFERENCE_RANGE = *mut _FILE_REFERENCE_RANGE;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _QUERY_FILE_LAYOUT_INPUT {
    pub __bindgen_anon_1: _QUERY_FILE_LAYOUT_INPUT__bindgen_ty_1,
    pub Flags: DWORD,
    pub FilterType: QUERY_FILE_LAYOUT_FILTER_TYPE,
    pub Reserved: DWORD,
    pub Filter: _QUERY_FILE_LAYOUT_INPUT__bindgen_ty_2,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _QUERY_FILE_LAYOUT_INPUT__bindgen_ty_1 {
    pub FilterEntryCount: DWORD,
    pub NumberOfPairs: DWORD,
    _bindgen_union_align: u32,
}
#[test]
fn bindgen_test_layout__QUERY_FILE_LAYOUT_INPUT__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_QUERY_FILE_LAYOUT_INPUT__bindgen_ty_1>(),
        4usize,
        concat!(
            "Size of: ",
            stringify!(_QUERY_FILE_LAYOUT_INPUT__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_QUERY_FILE_LAYOUT_INPUT__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_QUERY_FILE_LAYOUT_INPUT__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_FILE_LAYOUT_INPUT__bindgen_ty_1>())).FilterEntryCount
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_FILE_LAYOUT_INPUT__bindgen_ty_1),
            "::",
            stringify!(FilterEntryCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_FILE_LAYOUT_INPUT__bindgen_ty_1>())).NumberOfPairs
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_FILE_LAYOUT_INPUT__bindgen_ty_1),
            "::",
            stringify!(NumberOfPairs)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _QUERY_FILE_LAYOUT_INPUT__bindgen_ty_2 {
    pub ClusterRanges: [CLUSTER_RANGE; 1usize],
    pub FileReferenceRanges: [FILE_REFERENCE_RANGE; 1usize],
    pub StorageReserveIds: [STORAGE_RESERVE_ID; 1usize],
    _bindgen_union_align: [u64; 2usize],
}
#[test]
fn bindgen_test_layout__QUERY_FILE_LAYOUT_INPUT__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_QUERY_FILE_LAYOUT_INPUT__bindgen_ty_2>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_QUERY_FILE_LAYOUT_INPUT__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_QUERY_FILE_LAYOUT_INPUT__bindgen_ty_2>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_QUERY_FILE_LAYOUT_INPUT__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_FILE_LAYOUT_INPUT__bindgen_ty_2>())).ClusterRanges
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_FILE_LAYOUT_INPUT__bindgen_ty_2),
            "::",
            stringify!(ClusterRanges)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_FILE_LAYOUT_INPUT__bindgen_ty_2>())).FileReferenceRanges
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_FILE_LAYOUT_INPUT__bindgen_ty_2),
            "::",
            stringify!(FileReferenceRanges)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_FILE_LAYOUT_INPUT__bindgen_ty_2>())).StorageReserveIds
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_FILE_LAYOUT_INPUT__bindgen_ty_2),
            "::",
            stringify!(StorageReserveIds)
        )
    );
}
#[test]
fn bindgen_test_layout__QUERY_FILE_LAYOUT_INPUT() {
    assert_eq!(
        ::std::mem::size_of::<_QUERY_FILE_LAYOUT_INPUT>(),
        32usize,
        concat!("Size of: ", stringify!(_QUERY_FILE_LAYOUT_INPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_QUERY_FILE_LAYOUT_INPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(_QUERY_FILE_LAYOUT_INPUT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_QUERY_FILE_LAYOUT_INPUT>())).Flags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_FILE_LAYOUT_INPUT),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_FILE_LAYOUT_INPUT>())).FilterType as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_FILE_LAYOUT_INPUT),
            "::",
            stringify!(FilterType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_FILE_LAYOUT_INPUT>())).Reserved as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_FILE_LAYOUT_INPUT),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_QUERY_FILE_LAYOUT_INPUT>())).Filter as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_FILE_LAYOUT_INPUT),
            "::",
            stringify!(Filter)
        )
    );
}
pub type QUERY_FILE_LAYOUT_INPUT = _QUERY_FILE_LAYOUT_INPUT;
pub type PQUERY_FILE_LAYOUT_INPUT = *mut _QUERY_FILE_LAYOUT_INPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _QUERY_FILE_LAYOUT_OUTPUT {
    pub FileEntryCount: DWORD,
    pub FirstFileOffset: DWORD,
    pub Flags: DWORD,
    pub Reserved: DWORD,
}
#[test]
fn bindgen_test_layout__QUERY_FILE_LAYOUT_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_QUERY_FILE_LAYOUT_OUTPUT>(),
        16usize,
        concat!("Size of: ", stringify!(_QUERY_FILE_LAYOUT_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_QUERY_FILE_LAYOUT_OUTPUT>(),
        4usize,
        concat!("Alignment of ", stringify!(_QUERY_FILE_LAYOUT_OUTPUT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_FILE_LAYOUT_OUTPUT>())).FileEntryCount as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_FILE_LAYOUT_OUTPUT),
            "::",
            stringify!(FileEntryCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_FILE_LAYOUT_OUTPUT>())).FirstFileOffset as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_FILE_LAYOUT_OUTPUT),
            "::",
            stringify!(FirstFileOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_QUERY_FILE_LAYOUT_OUTPUT>())).Flags as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_FILE_LAYOUT_OUTPUT),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_FILE_LAYOUT_OUTPUT>())).Reserved as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_FILE_LAYOUT_OUTPUT),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type QUERY_FILE_LAYOUT_OUTPUT = _QUERY_FILE_LAYOUT_OUTPUT;
pub type PQUERY_FILE_LAYOUT_OUTPUT = *mut _QUERY_FILE_LAYOUT_OUTPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_LAYOUT_ENTRY {
    pub Version: DWORD,
    pub NextFileOffset: DWORD,
    pub Flags: DWORD,
    pub FileAttributes: DWORD,
    pub FileReferenceNumber: DWORDLONG,
    pub FirstNameOffset: DWORD,
    pub FirstStreamOffset: DWORD,
    pub ExtraInfoOffset: DWORD,
    pub ExtraInfoLength: DWORD,
}
#[test]
fn bindgen_test_layout__FILE_LAYOUT_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_LAYOUT_ENTRY>(),
        40usize,
        concat!("Size of: ", stringify!(_FILE_LAYOUT_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_LAYOUT_ENTRY>(),
        8usize,
        concat!("Alignment of ", stringify!(_FILE_LAYOUT_ENTRY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_LAYOUT_ENTRY>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_LAYOUT_ENTRY),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_LAYOUT_ENTRY>())).NextFileOffset as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_LAYOUT_ENTRY),
            "::",
            stringify!(NextFileOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_LAYOUT_ENTRY>())).Flags as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_LAYOUT_ENTRY),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_LAYOUT_ENTRY>())).FileAttributes as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_LAYOUT_ENTRY),
            "::",
            stringify!(FileAttributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_LAYOUT_ENTRY>())).FileReferenceNumber as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_LAYOUT_ENTRY),
            "::",
            stringify!(FileReferenceNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_LAYOUT_ENTRY>())).FirstNameOffset as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_LAYOUT_ENTRY),
            "::",
            stringify!(FirstNameOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_LAYOUT_ENTRY>())).FirstStreamOffset as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_LAYOUT_ENTRY),
            "::",
            stringify!(FirstStreamOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_LAYOUT_ENTRY>())).ExtraInfoOffset as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_LAYOUT_ENTRY),
            "::",
            stringify!(ExtraInfoOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_LAYOUT_ENTRY>())).ExtraInfoLength as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_LAYOUT_ENTRY),
            "::",
            stringify!(ExtraInfoLength)
        )
    );
}
pub type FILE_LAYOUT_ENTRY = _FILE_LAYOUT_ENTRY;
pub type PFILE_LAYOUT_ENTRY = *mut _FILE_LAYOUT_ENTRY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_LAYOUT_NAME_ENTRY {
    pub NextNameOffset: DWORD,
    pub Flags: DWORD,
    pub ParentFileReferenceNumber: DWORDLONG,
    pub FileNameLength: DWORD,
    pub Reserved: DWORD,
    pub FileName: [WCHAR; 1usize],
}
#[test]
fn bindgen_test_layout__FILE_LAYOUT_NAME_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_LAYOUT_NAME_ENTRY>(),
        32usize,
        concat!("Size of: ", stringify!(_FILE_LAYOUT_NAME_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_LAYOUT_NAME_ENTRY>(),
        8usize,
        concat!("Alignment of ", stringify!(_FILE_LAYOUT_NAME_ENTRY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_LAYOUT_NAME_ENTRY>())).NextNameOffset as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_LAYOUT_NAME_ENTRY),
            "::",
            stringify!(NextNameOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_LAYOUT_NAME_ENTRY>())).Flags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_LAYOUT_NAME_ENTRY),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_LAYOUT_NAME_ENTRY>())).ParentFileReferenceNumber
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_LAYOUT_NAME_ENTRY),
            "::",
            stringify!(ParentFileReferenceNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_LAYOUT_NAME_ENTRY>())).FileNameLength as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_LAYOUT_NAME_ENTRY),
            "::",
            stringify!(FileNameLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_LAYOUT_NAME_ENTRY>())).Reserved as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_LAYOUT_NAME_ENTRY),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_LAYOUT_NAME_ENTRY>())).FileName as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_LAYOUT_NAME_ENTRY),
            "::",
            stringify!(FileName)
        )
    );
}
pub type FILE_LAYOUT_NAME_ENTRY = _FILE_LAYOUT_NAME_ENTRY;
pub type PFILE_LAYOUT_NAME_ENTRY = *mut _FILE_LAYOUT_NAME_ENTRY;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _FILE_LAYOUT_INFO_ENTRY {
    pub BasicInformation: _FILE_LAYOUT_INFO_ENTRY__bindgen_ty_1,
    pub OwnerId: DWORD,
    pub SecurityId: DWORD,
    pub Usn: USN,
    pub StorageReserveId: STORAGE_RESERVE_ID,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _FILE_LAYOUT_INFO_ENTRY__bindgen_ty_1 {
    pub CreationTime: LARGE_INTEGER,
    pub LastAccessTime: LARGE_INTEGER,
    pub LastWriteTime: LARGE_INTEGER,
    pub ChangeTime: LARGE_INTEGER,
    pub FileAttributes: DWORD,
}
#[test]
fn bindgen_test_layout__FILE_LAYOUT_INFO_ENTRY__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_LAYOUT_INFO_ENTRY__bindgen_ty_1>(),
        40usize,
        concat!(
            "Size of: ",
            stringify!(_FILE_LAYOUT_INFO_ENTRY__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_LAYOUT_INFO_ENTRY__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_FILE_LAYOUT_INFO_ENTRY__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_LAYOUT_INFO_ENTRY__bindgen_ty_1>())).CreationTime
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_LAYOUT_INFO_ENTRY__bindgen_ty_1),
            "::",
            stringify!(CreationTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_LAYOUT_INFO_ENTRY__bindgen_ty_1>())).LastAccessTime
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_LAYOUT_INFO_ENTRY__bindgen_ty_1),
            "::",
            stringify!(LastAccessTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_LAYOUT_INFO_ENTRY__bindgen_ty_1>())).LastWriteTime
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_LAYOUT_INFO_ENTRY__bindgen_ty_1),
            "::",
            stringify!(LastWriteTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_LAYOUT_INFO_ENTRY__bindgen_ty_1>())).ChangeTime as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_LAYOUT_INFO_ENTRY__bindgen_ty_1),
            "::",
            stringify!(ChangeTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_LAYOUT_INFO_ENTRY__bindgen_ty_1>())).FileAttributes
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_LAYOUT_INFO_ENTRY__bindgen_ty_1),
            "::",
            stringify!(FileAttributes)
        )
    );
}
#[test]
fn bindgen_test_layout__FILE_LAYOUT_INFO_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_LAYOUT_INFO_ENTRY>(),
        64usize,
        concat!("Size of: ", stringify!(_FILE_LAYOUT_INFO_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_LAYOUT_INFO_ENTRY>(),
        8usize,
        concat!("Alignment of ", stringify!(_FILE_LAYOUT_INFO_ENTRY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_LAYOUT_INFO_ENTRY>())).BasicInformation as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_LAYOUT_INFO_ENTRY),
            "::",
            stringify!(BasicInformation)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_LAYOUT_INFO_ENTRY>())).OwnerId as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_LAYOUT_INFO_ENTRY),
            "::",
            stringify!(OwnerId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_LAYOUT_INFO_ENTRY>())).SecurityId as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_LAYOUT_INFO_ENTRY),
            "::",
            stringify!(SecurityId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_LAYOUT_INFO_ENTRY>())).Usn as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_LAYOUT_INFO_ENTRY),
            "::",
            stringify!(Usn)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_LAYOUT_INFO_ENTRY>())).StorageReserveId as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_LAYOUT_INFO_ENTRY),
            "::",
            stringify!(StorageReserveId)
        )
    );
}
pub type FILE_LAYOUT_INFO_ENTRY = _FILE_LAYOUT_INFO_ENTRY;
pub type PFILE_LAYOUT_INFO_ENTRY = *mut _FILE_LAYOUT_INFO_ENTRY;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _STREAM_LAYOUT_ENTRY {
    pub Version: DWORD,
    pub NextStreamOffset: DWORD,
    pub Flags: DWORD,
    pub ExtentInformationOffset: DWORD,
    pub AllocationSize: LARGE_INTEGER,
    pub EndOfFile: LARGE_INTEGER,
    pub StreamInformationOffset: DWORD,
    pub AttributeTypeCode: DWORD,
    pub AttributeFlags: DWORD,
    pub StreamIdentifierLength: DWORD,
    pub StreamIdentifier: [WCHAR; 1usize],
}
#[test]
fn bindgen_test_layout__STREAM_LAYOUT_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_STREAM_LAYOUT_ENTRY>(),
        56usize,
        concat!("Size of: ", stringify!(_STREAM_LAYOUT_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_STREAM_LAYOUT_ENTRY>(),
        8usize,
        concat!("Alignment of ", stringify!(_STREAM_LAYOUT_ENTRY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STREAM_LAYOUT_ENTRY>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STREAM_LAYOUT_ENTRY),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STREAM_LAYOUT_ENTRY>())).NextStreamOffset as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STREAM_LAYOUT_ENTRY),
            "::",
            stringify!(NextStreamOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STREAM_LAYOUT_ENTRY>())).Flags as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STREAM_LAYOUT_ENTRY),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STREAM_LAYOUT_ENTRY>())).ExtentInformationOffset as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STREAM_LAYOUT_ENTRY),
            "::",
            stringify!(ExtentInformationOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STREAM_LAYOUT_ENTRY>())).AllocationSize as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_STREAM_LAYOUT_ENTRY),
            "::",
            stringify!(AllocationSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STREAM_LAYOUT_ENTRY>())).EndOfFile as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_STREAM_LAYOUT_ENTRY),
            "::",
            stringify!(EndOfFile)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STREAM_LAYOUT_ENTRY>())).StreamInformationOffset as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_STREAM_LAYOUT_ENTRY),
            "::",
            stringify!(StreamInformationOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STREAM_LAYOUT_ENTRY>())).AttributeTypeCode as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_STREAM_LAYOUT_ENTRY),
            "::",
            stringify!(AttributeTypeCode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STREAM_LAYOUT_ENTRY>())).AttributeFlags as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_STREAM_LAYOUT_ENTRY),
            "::",
            stringify!(AttributeFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STREAM_LAYOUT_ENTRY>())).StreamIdentifierLength as *const _
                as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_STREAM_LAYOUT_ENTRY),
            "::",
            stringify!(StreamIdentifierLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STREAM_LAYOUT_ENTRY>())).StreamIdentifier as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_STREAM_LAYOUT_ENTRY),
            "::",
            stringify!(StreamIdentifier)
        )
    );
}
pub type STREAM_LAYOUT_ENTRY = _STREAM_LAYOUT_ENTRY;
pub type PSTREAM_LAYOUT_ENTRY = *mut _STREAM_LAYOUT_ENTRY;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _STREAM_EXTENT_ENTRY {
    pub Flags: DWORD,
    pub ExtentInformation: _STREAM_EXTENT_ENTRY__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _STREAM_EXTENT_ENTRY__bindgen_ty_1 {
    pub RetrievalPointers: RETRIEVAL_POINTERS_BUFFER,
    _bindgen_union_align: [u64; 4usize],
}
#[test]
fn bindgen_test_layout__STREAM_EXTENT_ENTRY__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_STREAM_EXTENT_ENTRY__bindgen_ty_1>(),
        32usize,
        concat!("Size of: ", stringify!(_STREAM_EXTENT_ENTRY__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_STREAM_EXTENT_ENTRY__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_STREAM_EXTENT_ENTRY__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STREAM_EXTENT_ENTRY__bindgen_ty_1>())).RetrievalPointers
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STREAM_EXTENT_ENTRY__bindgen_ty_1),
            "::",
            stringify!(RetrievalPointers)
        )
    );
}
#[test]
fn bindgen_test_layout__STREAM_EXTENT_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_STREAM_EXTENT_ENTRY>(),
        40usize,
        concat!("Size of: ", stringify!(_STREAM_EXTENT_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_STREAM_EXTENT_ENTRY>(),
        8usize,
        concat!("Alignment of ", stringify!(_STREAM_EXTENT_ENTRY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STREAM_EXTENT_ENTRY>())).Flags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STREAM_EXTENT_ENTRY),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STREAM_EXTENT_ENTRY>())).ExtentInformation as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STREAM_EXTENT_ENTRY),
            "::",
            stringify!(ExtentInformation)
        )
    );
}
pub type STREAM_EXTENT_ENTRY = _STREAM_EXTENT_ENTRY;
pub type PSTREAM_EXTENT_ENTRY = *mut _STREAM_EXTENT_ENTRY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FSCTL_GET_INTEGRITY_INFORMATION_BUFFER {
    pub ChecksumAlgorithm: WORD,
    pub Reserved: WORD,
    pub Flags: DWORD,
    pub ChecksumChunkSizeInBytes: DWORD,
    pub ClusterSizeInBytes: DWORD,
}
#[test]
fn bindgen_test_layout__FSCTL_GET_INTEGRITY_INFORMATION_BUFFER() {
    assert_eq!(
        ::std::mem::size_of::<_FSCTL_GET_INTEGRITY_INFORMATION_BUFFER>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_FSCTL_GET_INTEGRITY_INFORMATION_BUFFER)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_FSCTL_GET_INTEGRITY_INFORMATION_BUFFER>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_FSCTL_GET_INTEGRITY_INFORMATION_BUFFER)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_GET_INTEGRITY_INFORMATION_BUFFER>())).ChecksumAlgorithm
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_GET_INTEGRITY_INFORMATION_BUFFER),
            "::",
            stringify!(ChecksumAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_GET_INTEGRITY_INFORMATION_BUFFER>())).Reserved as *const _
                as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_GET_INTEGRITY_INFORMATION_BUFFER),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_GET_INTEGRITY_INFORMATION_BUFFER>())).Flags as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_GET_INTEGRITY_INFORMATION_BUFFER),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_GET_INTEGRITY_INFORMATION_BUFFER>()))
                .ChecksumChunkSizeInBytes as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_GET_INTEGRITY_INFORMATION_BUFFER),
            "::",
            stringify!(ChecksumChunkSizeInBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_GET_INTEGRITY_INFORMATION_BUFFER>())).ClusterSizeInBytes
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_GET_INTEGRITY_INFORMATION_BUFFER),
            "::",
            stringify!(ClusterSizeInBytes)
        )
    );
}
pub type FSCTL_GET_INTEGRITY_INFORMATION_BUFFER = _FSCTL_GET_INTEGRITY_INFORMATION_BUFFER;
pub type PFSCTL_GET_INTEGRITY_INFORMATION_BUFFER = *mut _FSCTL_GET_INTEGRITY_INFORMATION_BUFFER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FSCTL_SET_INTEGRITY_INFORMATION_BUFFER {
    pub ChecksumAlgorithm: WORD,
    pub Reserved: WORD,
    pub Flags: DWORD,
}
#[test]
fn bindgen_test_layout__FSCTL_SET_INTEGRITY_INFORMATION_BUFFER() {
    assert_eq!(
        ::std::mem::size_of::<_FSCTL_SET_INTEGRITY_INFORMATION_BUFFER>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_FSCTL_SET_INTEGRITY_INFORMATION_BUFFER)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_FSCTL_SET_INTEGRITY_INFORMATION_BUFFER>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_FSCTL_SET_INTEGRITY_INFORMATION_BUFFER)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_SET_INTEGRITY_INFORMATION_BUFFER>())).ChecksumAlgorithm
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_SET_INTEGRITY_INFORMATION_BUFFER),
            "::",
            stringify!(ChecksumAlgorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_SET_INTEGRITY_INFORMATION_BUFFER>())).Reserved as *const _
                as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_SET_INTEGRITY_INFORMATION_BUFFER),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_SET_INTEGRITY_INFORMATION_BUFFER>())).Flags as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_SET_INTEGRITY_INFORMATION_BUFFER),
            "::",
            stringify!(Flags)
        )
    );
}
pub type FSCTL_SET_INTEGRITY_INFORMATION_BUFFER = _FSCTL_SET_INTEGRITY_INFORMATION_BUFFER;
pub type PFSCTL_SET_INTEGRITY_INFORMATION_BUFFER = *mut _FSCTL_SET_INTEGRITY_INFORMATION_BUFFER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FSCTL_SET_INTEGRITY_INFORMATION_BUFFER_EX {
    pub EnableIntegrity: BYTE,
    pub KeepIntegrityStateUnchanged: BYTE,
    pub Reserved: WORD,
    pub Flags: DWORD,
    pub Version: BYTE,
    pub Reserved2: [BYTE; 7usize],
}
#[test]
fn bindgen_test_layout__FSCTL_SET_INTEGRITY_INFORMATION_BUFFER_EX() {
    assert_eq!(
        ::std::mem::size_of::<_FSCTL_SET_INTEGRITY_INFORMATION_BUFFER_EX>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_FSCTL_SET_INTEGRITY_INFORMATION_BUFFER_EX)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_FSCTL_SET_INTEGRITY_INFORMATION_BUFFER_EX>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_FSCTL_SET_INTEGRITY_INFORMATION_BUFFER_EX)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_SET_INTEGRITY_INFORMATION_BUFFER_EX>())).EnableIntegrity
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_SET_INTEGRITY_INFORMATION_BUFFER_EX),
            "::",
            stringify!(EnableIntegrity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_SET_INTEGRITY_INFORMATION_BUFFER_EX>()))
                .KeepIntegrityStateUnchanged as *const _ as usize
        },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_SET_INTEGRITY_INFORMATION_BUFFER_EX),
            "::",
            stringify!(KeepIntegrityStateUnchanged)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_SET_INTEGRITY_INFORMATION_BUFFER_EX>())).Reserved
                as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_SET_INTEGRITY_INFORMATION_BUFFER_EX),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_SET_INTEGRITY_INFORMATION_BUFFER_EX>())).Flags as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_SET_INTEGRITY_INFORMATION_BUFFER_EX),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_SET_INTEGRITY_INFORMATION_BUFFER_EX>())).Version
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_SET_INTEGRITY_INFORMATION_BUFFER_EX),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_SET_INTEGRITY_INFORMATION_BUFFER_EX>())).Reserved2
                as *const _ as usize
        },
        9usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_SET_INTEGRITY_INFORMATION_BUFFER_EX),
            "::",
            stringify!(Reserved2)
        )
    );
}
pub type FSCTL_SET_INTEGRITY_INFORMATION_BUFFER_EX = _FSCTL_SET_INTEGRITY_INFORMATION_BUFFER_EX;
pub type PFSCTL_SET_INTEGRITY_INFORMATION_BUFFER_EX =
    *mut _FSCTL_SET_INTEGRITY_INFORMATION_BUFFER_EX;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FSCTL_OFFLOAD_READ_INPUT {
    pub Size: DWORD,
    pub Flags: DWORD,
    pub TokenTimeToLive: DWORD,
    pub Reserved: DWORD,
    pub FileOffset: DWORDLONG,
    pub CopyLength: DWORDLONG,
}
#[test]
fn bindgen_test_layout__FSCTL_OFFLOAD_READ_INPUT() {
    assert_eq!(
        ::std::mem::size_of::<_FSCTL_OFFLOAD_READ_INPUT>(),
        32usize,
        concat!("Size of: ", stringify!(_FSCTL_OFFLOAD_READ_INPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_FSCTL_OFFLOAD_READ_INPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(_FSCTL_OFFLOAD_READ_INPUT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FSCTL_OFFLOAD_READ_INPUT>())).Size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_OFFLOAD_READ_INPUT),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FSCTL_OFFLOAD_READ_INPUT>())).Flags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_OFFLOAD_READ_INPUT),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_OFFLOAD_READ_INPUT>())).TokenTimeToLive as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_OFFLOAD_READ_INPUT),
            "::",
            stringify!(TokenTimeToLive)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_OFFLOAD_READ_INPUT>())).Reserved as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_OFFLOAD_READ_INPUT),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_OFFLOAD_READ_INPUT>())).FileOffset as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_OFFLOAD_READ_INPUT),
            "::",
            stringify!(FileOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_OFFLOAD_READ_INPUT>())).CopyLength as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_OFFLOAD_READ_INPUT),
            "::",
            stringify!(CopyLength)
        )
    );
}
pub type FSCTL_OFFLOAD_READ_INPUT = _FSCTL_OFFLOAD_READ_INPUT;
pub type PFSCTL_OFFLOAD_READ_INPUT = *mut _FSCTL_OFFLOAD_READ_INPUT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _FSCTL_OFFLOAD_READ_OUTPUT {
    pub Size: DWORD,
    pub Flags: DWORD,
    pub TransferLength: DWORDLONG,
    pub Token: [BYTE; 512usize],
}
#[test]
fn bindgen_test_layout__FSCTL_OFFLOAD_READ_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_FSCTL_OFFLOAD_READ_OUTPUT>(),
        528usize,
        concat!("Size of: ", stringify!(_FSCTL_OFFLOAD_READ_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_FSCTL_OFFLOAD_READ_OUTPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(_FSCTL_OFFLOAD_READ_OUTPUT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FSCTL_OFFLOAD_READ_OUTPUT>())).Size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_OFFLOAD_READ_OUTPUT),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_OFFLOAD_READ_OUTPUT>())).Flags as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_OFFLOAD_READ_OUTPUT),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_OFFLOAD_READ_OUTPUT>())).TransferLength as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_OFFLOAD_READ_OUTPUT),
            "::",
            stringify!(TransferLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_OFFLOAD_READ_OUTPUT>())).Token as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_OFFLOAD_READ_OUTPUT),
            "::",
            stringify!(Token)
        )
    );
}
pub type FSCTL_OFFLOAD_READ_OUTPUT = _FSCTL_OFFLOAD_READ_OUTPUT;
pub type PFSCTL_OFFLOAD_READ_OUTPUT = *mut _FSCTL_OFFLOAD_READ_OUTPUT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _FSCTL_OFFLOAD_WRITE_INPUT {
    pub Size: DWORD,
    pub Flags: DWORD,
    pub FileOffset: DWORDLONG,
    pub CopyLength: DWORDLONG,
    pub TransferOffset: DWORDLONG,
    pub Token: [BYTE; 512usize],
}
#[test]
fn bindgen_test_layout__FSCTL_OFFLOAD_WRITE_INPUT() {
    assert_eq!(
        ::std::mem::size_of::<_FSCTL_OFFLOAD_WRITE_INPUT>(),
        544usize,
        concat!("Size of: ", stringify!(_FSCTL_OFFLOAD_WRITE_INPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_FSCTL_OFFLOAD_WRITE_INPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(_FSCTL_OFFLOAD_WRITE_INPUT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FSCTL_OFFLOAD_WRITE_INPUT>())).Size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_OFFLOAD_WRITE_INPUT),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_OFFLOAD_WRITE_INPUT>())).Flags as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_OFFLOAD_WRITE_INPUT),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_OFFLOAD_WRITE_INPUT>())).FileOffset as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_OFFLOAD_WRITE_INPUT),
            "::",
            stringify!(FileOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_OFFLOAD_WRITE_INPUT>())).CopyLength as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_OFFLOAD_WRITE_INPUT),
            "::",
            stringify!(CopyLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_OFFLOAD_WRITE_INPUT>())).TransferOffset as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_OFFLOAD_WRITE_INPUT),
            "::",
            stringify!(TransferOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_OFFLOAD_WRITE_INPUT>())).Token as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_OFFLOAD_WRITE_INPUT),
            "::",
            stringify!(Token)
        )
    );
}
pub type FSCTL_OFFLOAD_WRITE_INPUT = _FSCTL_OFFLOAD_WRITE_INPUT;
pub type PFSCTL_OFFLOAD_WRITE_INPUT = *mut _FSCTL_OFFLOAD_WRITE_INPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FSCTL_OFFLOAD_WRITE_OUTPUT {
    pub Size: DWORD,
    pub Flags: DWORD,
    pub LengthWritten: DWORDLONG,
}
#[test]
fn bindgen_test_layout__FSCTL_OFFLOAD_WRITE_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_FSCTL_OFFLOAD_WRITE_OUTPUT>(),
        16usize,
        concat!("Size of: ", stringify!(_FSCTL_OFFLOAD_WRITE_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_FSCTL_OFFLOAD_WRITE_OUTPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(_FSCTL_OFFLOAD_WRITE_OUTPUT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_OFFLOAD_WRITE_OUTPUT>())).Size as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_OFFLOAD_WRITE_OUTPUT),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_OFFLOAD_WRITE_OUTPUT>())).Flags as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_OFFLOAD_WRITE_OUTPUT),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_OFFLOAD_WRITE_OUTPUT>())).LengthWritten as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_OFFLOAD_WRITE_OUTPUT),
            "::",
            stringify!(LengthWritten)
        )
    );
}
pub type FSCTL_OFFLOAD_WRITE_OUTPUT = _FSCTL_OFFLOAD_WRITE_OUTPUT;
pub type PFSCTL_OFFLOAD_WRITE_OUTPUT = *mut _FSCTL_OFFLOAD_WRITE_OUTPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SET_PURGE_FAILURE_MODE_INPUT {
    pub Flags: DWORD,
}
#[test]
fn bindgen_test_layout__SET_PURGE_FAILURE_MODE_INPUT() {
    assert_eq!(
        ::std::mem::size_of::<_SET_PURGE_FAILURE_MODE_INPUT>(),
        4usize,
        concat!("Size of: ", stringify!(_SET_PURGE_FAILURE_MODE_INPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_SET_PURGE_FAILURE_MODE_INPUT>(),
        4usize,
        concat!("Alignment of ", stringify!(_SET_PURGE_FAILURE_MODE_INPUT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SET_PURGE_FAILURE_MODE_INPUT>())).Flags as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SET_PURGE_FAILURE_MODE_INPUT),
            "::",
            stringify!(Flags)
        )
    );
}
pub type SET_PURGE_FAILURE_MODE_INPUT = _SET_PURGE_FAILURE_MODE_INPUT;
pub type PSET_PURGE_FAILURE_MODE_INPUT = *mut _SET_PURGE_FAILURE_MODE_INPUT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _REPAIR_COPIES_INPUT {
    pub Size: DWORD,
    pub Flags: DWORD,
    pub FileOffset: LARGE_INTEGER,
    pub Length: DWORD,
    pub SourceCopy: DWORD,
    pub NumberOfRepairCopies: DWORD,
    pub RepairCopies: [DWORD; 1usize],
}
#[test]
fn bindgen_test_layout__REPAIR_COPIES_INPUT() {
    assert_eq!(
        ::std::mem::size_of::<_REPAIR_COPIES_INPUT>(),
        32usize,
        concat!("Size of: ", stringify!(_REPAIR_COPIES_INPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_REPAIR_COPIES_INPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(_REPAIR_COPIES_INPUT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_REPAIR_COPIES_INPUT>())).Size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_REPAIR_COPIES_INPUT),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_REPAIR_COPIES_INPUT>())).Flags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_REPAIR_COPIES_INPUT),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_REPAIR_COPIES_INPUT>())).FileOffset as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_REPAIR_COPIES_INPUT),
            "::",
            stringify!(FileOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_REPAIR_COPIES_INPUT>())).Length as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_REPAIR_COPIES_INPUT),
            "::",
            stringify!(Length)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_REPAIR_COPIES_INPUT>())).SourceCopy as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_REPAIR_COPIES_INPUT),
            "::",
            stringify!(SourceCopy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REPAIR_COPIES_INPUT>())).NumberOfRepairCopies as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_REPAIR_COPIES_INPUT),
            "::",
            stringify!(NumberOfRepairCopies)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REPAIR_COPIES_INPUT>())).RepairCopies as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_REPAIR_COPIES_INPUT),
            "::",
            stringify!(RepairCopies)
        )
    );
}
pub type REPAIR_COPIES_INPUT = _REPAIR_COPIES_INPUT;
pub type PREPAIR_COPIES_INPUT = *mut _REPAIR_COPIES_INPUT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _REPAIR_COPIES_OUTPUT {
    pub Size: DWORD,
    pub Status: DWORD,
    pub ResumeFileOffset: LARGE_INTEGER,
}
#[test]
fn bindgen_test_layout__REPAIR_COPIES_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_REPAIR_COPIES_OUTPUT>(),
        16usize,
        concat!("Size of: ", stringify!(_REPAIR_COPIES_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_REPAIR_COPIES_OUTPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(_REPAIR_COPIES_OUTPUT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_REPAIR_COPIES_OUTPUT>())).Size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_REPAIR_COPIES_OUTPUT),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_REPAIR_COPIES_OUTPUT>())).Status as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_REPAIR_COPIES_OUTPUT),
            "::",
            stringify!(Status)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REPAIR_COPIES_OUTPUT>())).ResumeFileOffset as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_REPAIR_COPIES_OUTPUT),
            "::",
            stringify!(ResumeFileOffset)
        )
    );
}
pub type REPAIR_COPIES_OUTPUT = _REPAIR_COPIES_OUTPUT;
pub type PREPAIR_COPIES_OUTPUT = *mut _REPAIR_COPIES_OUTPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_REGION_INFO {
    pub FileOffset: LONGLONG,
    pub Length: LONGLONG,
    pub Usage: DWORD,
    pub Reserved: DWORD,
}
#[test]
fn bindgen_test_layout__FILE_REGION_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_REGION_INFO>(),
        24usize,
        concat!("Size of: ", stringify!(_FILE_REGION_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_REGION_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_FILE_REGION_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_REGION_INFO>())).FileOffset as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_REGION_INFO),
            "::",
            stringify!(FileOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_REGION_INFO>())).Length as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_REGION_INFO),
            "::",
            stringify!(Length)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_REGION_INFO>())).Usage as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_REGION_INFO),
            "::",
            stringify!(Usage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_REGION_INFO>())).Reserved as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_REGION_INFO),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type FILE_REGION_INFO = _FILE_REGION_INFO;
pub type PFILE_REGION_INFO = *mut _FILE_REGION_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_REGION_OUTPUT {
    pub Flags: DWORD,
    pub TotalRegionEntryCount: DWORD,
    pub RegionEntryCount: DWORD,
    pub Reserved: DWORD,
    pub Region: [FILE_REGION_INFO; 1usize],
}
#[test]
fn bindgen_test_layout__FILE_REGION_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_REGION_OUTPUT>(),
        40usize,
        concat!("Size of: ", stringify!(_FILE_REGION_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_REGION_OUTPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(_FILE_REGION_OUTPUT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_REGION_OUTPUT>())).Flags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_REGION_OUTPUT),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_REGION_OUTPUT>())).TotalRegionEntryCount as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_REGION_OUTPUT),
            "::",
            stringify!(TotalRegionEntryCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_REGION_OUTPUT>())).RegionEntryCount as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_REGION_OUTPUT),
            "::",
            stringify!(RegionEntryCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_REGION_OUTPUT>())).Reserved as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_REGION_OUTPUT),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_REGION_OUTPUT>())).Region as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_REGION_OUTPUT),
            "::",
            stringify!(Region)
        )
    );
}
pub type FILE_REGION_OUTPUT = _FILE_REGION_OUTPUT;
pub type PFILE_REGION_OUTPUT = *mut _FILE_REGION_OUTPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_REGION_INPUT {
    pub FileOffset: LONGLONG,
    pub Length: LONGLONG,
    pub DesiredUsage: DWORD,
}
#[test]
fn bindgen_test_layout__FILE_REGION_INPUT() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_REGION_INPUT>(),
        24usize,
        concat!("Size of: ", stringify!(_FILE_REGION_INPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_REGION_INPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(_FILE_REGION_INPUT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_REGION_INPUT>())).FileOffset as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_REGION_INPUT),
            "::",
            stringify!(FileOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_REGION_INPUT>())).Length as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_REGION_INPUT),
            "::",
            stringify!(Length)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_REGION_INPUT>())).DesiredUsage as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_REGION_INPUT),
            "::",
            stringify!(DesiredUsage)
        )
    );
}
pub type FILE_REGION_INPUT = _FILE_REGION_INPUT;
pub type PFILE_REGION_INPUT = *mut _FILE_REGION_INPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _WRITE_USN_REASON_INPUT {
    pub Flags: DWORD,
    pub UsnReasonToWrite: DWORD,
}
#[test]
fn bindgen_test_layout__WRITE_USN_REASON_INPUT() {
    assert_eq!(
        ::std::mem::size_of::<_WRITE_USN_REASON_INPUT>(),
        8usize,
        concat!("Size of: ", stringify!(_WRITE_USN_REASON_INPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_WRITE_USN_REASON_INPUT>(),
        4usize,
        concat!("Alignment of ", stringify!(_WRITE_USN_REASON_INPUT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WRITE_USN_REASON_INPUT>())).Flags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_WRITE_USN_REASON_INPUT),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WRITE_USN_REASON_INPUT>())).UsnReasonToWrite as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_WRITE_USN_REASON_INPUT),
            "::",
            stringify!(UsnReasonToWrite)
        )
    );
}
pub type WRITE_USN_REASON_INPUT = _WRITE_USN_REASON_INPUT;
pub type PWRITE_USN_REASON_INPUT = *mut _WRITE_USN_REASON_INPUT;
pub const _FILE_STORAGE_TIER_MEDIA_TYPE_FileStorageTierMediaTypeUnspecified:
    _FILE_STORAGE_TIER_MEDIA_TYPE = 0;
pub const _FILE_STORAGE_TIER_MEDIA_TYPE_FileStorageTierMediaTypeDisk:
    _FILE_STORAGE_TIER_MEDIA_TYPE = 1;
pub const _FILE_STORAGE_TIER_MEDIA_TYPE_FileStorageTierMediaTypeSsd: _FILE_STORAGE_TIER_MEDIA_TYPE =
    2;
pub const _FILE_STORAGE_TIER_MEDIA_TYPE_FileStorageTierMediaTypeScm: _FILE_STORAGE_TIER_MEDIA_TYPE =
    4;
pub const _FILE_STORAGE_TIER_MEDIA_TYPE_FileStorageTierMediaTypeMax: _FILE_STORAGE_TIER_MEDIA_TYPE =
    5;
pub type _FILE_STORAGE_TIER_MEDIA_TYPE = ::std::os::raw::c_int;
pub use self::_FILE_STORAGE_TIER_MEDIA_TYPE as FILE_STORAGE_TIER_MEDIA_TYPE;
pub type PFILE_STORAGE_TIER_MEDIA_TYPE = *mut _FILE_STORAGE_TIER_MEDIA_TYPE;
pub const _FILE_STORAGE_TIER_CLASS_FileStorageTierClassUnspecified: _FILE_STORAGE_TIER_CLASS = 0;
pub const _FILE_STORAGE_TIER_CLASS_FileStorageTierClassCapacity: _FILE_STORAGE_TIER_CLASS = 1;
pub const _FILE_STORAGE_TIER_CLASS_FileStorageTierClassPerformance: _FILE_STORAGE_TIER_CLASS = 2;
pub const _FILE_STORAGE_TIER_CLASS_FileStorageTierClassMax: _FILE_STORAGE_TIER_CLASS = 3;
pub type _FILE_STORAGE_TIER_CLASS = ::std::os::raw::c_int;
pub use self::_FILE_STORAGE_TIER_CLASS as FILE_STORAGE_TIER_CLASS;
pub type PFILE_STORAGE_TIER_CLASS = *mut _FILE_STORAGE_TIER_CLASS;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _FILE_STORAGE_TIER {
    pub Id: GUID,
    pub Name: [WCHAR; 256usize],
    pub Description: [WCHAR; 256usize],
    pub Flags: DWORDLONG,
    pub ProvisionedCapacity: DWORDLONG,
    pub MediaType: FILE_STORAGE_TIER_MEDIA_TYPE,
    pub Class: FILE_STORAGE_TIER_CLASS,
}
#[test]
fn bindgen_test_layout__FILE_STORAGE_TIER() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_STORAGE_TIER>(),
        1064usize,
        concat!("Size of: ", stringify!(_FILE_STORAGE_TIER))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_STORAGE_TIER>(),
        8usize,
        concat!("Alignment of ", stringify!(_FILE_STORAGE_TIER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_STORAGE_TIER>())).Id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_STORAGE_TIER),
            "::",
            stringify!(Id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_STORAGE_TIER>())).Name as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_STORAGE_TIER),
            "::",
            stringify!(Name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_STORAGE_TIER>())).Description as *const _ as usize },
        528usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_STORAGE_TIER),
            "::",
            stringify!(Description)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_STORAGE_TIER>())).Flags as *const _ as usize },
        1040usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_STORAGE_TIER),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_STORAGE_TIER>())).ProvisionedCapacity as *const _ as usize
        },
        1048usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_STORAGE_TIER),
            "::",
            stringify!(ProvisionedCapacity)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_STORAGE_TIER>())).MediaType as *const _ as usize },
        1056usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_STORAGE_TIER),
            "::",
            stringify!(MediaType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FILE_STORAGE_TIER>())).Class as *const _ as usize },
        1060usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_STORAGE_TIER),
            "::",
            stringify!(Class)
        )
    );
}
pub type FILE_STORAGE_TIER = _FILE_STORAGE_TIER;
pub type PFILE_STORAGE_TIER = *mut _FILE_STORAGE_TIER;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _FSCTL_QUERY_STORAGE_CLASSES_OUTPUT {
    pub Version: DWORD,
    pub Size: DWORD,
    pub Flags: DWORD,
    pub TotalNumberOfTiers: DWORD,
    pub NumberOfTiersReturned: DWORD,
    pub Tiers: [FILE_STORAGE_TIER; 1usize],
}
#[test]
fn bindgen_test_layout__FSCTL_QUERY_STORAGE_CLASSES_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_FSCTL_QUERY_STORAGE_CLASSES_OUTPUT>(),
        1088usize,
        concat!("Size of: ", stringify!(_FSCTL_QUERY_STORAGE_CLASSES_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_FSCTL_QUERY_STORAGE_CLASSES_OUTPUT>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_FSCTL_QUERY_STORAGE_CLASSES_OUTPUT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_QUERY_STORAGE_CLASSES_OUTPUT>())).Version as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_QUERY_STORAGE_CLASSES_OUTPUT),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_QUERY_STORAGE_CLASSES_OUTPUT>())).Size as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_QUERY_STORAGE_CLASSES_OUTPUT),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_QUERY_STORAGE_CLASSES_OUTPUT>())).Flags as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_QUERY_STORAGE_CLASSES_OUTPUT),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_QUERY_STORAGE_CLASSES_OUTPUT>())).TotalNumberOfTiers
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_QUERY_STORAGE_CLASSES_OUTPUT),
            "::",
            stringify!(TotalNumberOfTiers)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_QUERY_STORAGE_CLASSES_OUTPUT>())).NumberOfTiersReturned
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_QUERY_STORAGE_CLASSES_OUTPUT),
            "::",
            stringify!(NumberOfTiersReturned)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_QUERY_STORAGE_CLASSES_OUTPUT>())).Tiers as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_QUERY_STORAGE_CLASSES_OUTPUT),
            "::",
            stringify!(Tiers)
        )
    );
}
pub type FSCTL_QUERY_STORAGE_CLASSES_OUTPUT = _FSCTL_QUERY_STORAGE_CLASSES_OUTPUT;
pub type PFSCTL_QUERY_STORAGE_CLASSES_OUTPUT = *mut _FSCTL_QUERY_STORAGE_CLASSES_OUTPUT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _STREAM_INFORMATION_ENTRY {
    pub Version: DWORD,
    pub Flags: DWORD,
    pub StreamInformation: _STREAM_INFORMATION_ENTRY__StreamInformation,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _STREAM_INFORMATION_ENTRY__StreamInformation {
    pub DesiredStorageClass: _STREAM_INFORMATION_ENTRY__StreamInformation__DesiredStorageClass,
    _bindgen_union_align: [u32; 2usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STREAM_INFORMATION_ENTRY__StreamInformation__DesiredStorageClass {
    pub Class: FILE_STORAGE_TIER_CLASS,
    pub Flags: DWORD,
}
#[test]
fn bindgen_test_layout__STREAM_INFORMATION_ENTRY__StreamInformation__DesiredStorageClass() {
    assert_eq!(
        ::std::mem::size_of::<_STREAM_INFORMATION_ENTRY__StreamInformation__DesiredStorageClass>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_STREAM_INFORMATION_ENTRY__StreamInformation__DesiredStorageClass)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_STREAM_INFORMATION_ENTRY__StreamInformation__DesiredStorageClass>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_STREAM_INFORMATION_ENTRY__StreamInformation__DesiredStorageClass)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<
                _STREAM_INFORMATION_ENTRY__StreamInformation__DesiredStorageClass,
            >()))
            .Class as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STREAM_INFORMATION_ENTRY__StreamInformation__DesiredStorageClass),
            "::",
            stringify!(Class)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<
                _STREAM_INFORMATION_ENTRY__StreamInformation__DesiredStorageClass,
            >()))
            .Flags as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STREAM_INFORMATION_ENTRY__StreamInformation__DesiredStorageClass),
            "::",
            stringify!(Flags)
        )
    );
}
#[test]
fn bindgen_test_layout__STREAM_INFORMATION_ENTRY__StreamInformation() {
    assert_eq!(
        ::std::mem::size_of::<_STREAM_INFORMATION_ENTRY__StreamInformation>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_STREAM_INFORMATION_ENTRY__StreamInformation)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_STREAM_INFORMATION_ENTRY__StreamInformation>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_STREAM_INFORMATION_ENTRY__StreamInformation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STREAM_INFORMATION_ENTRY__StreamInformation>()))
                .DesiredStorageClass as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STREAM_INFORMATION_ENTRY__StreamInformation),
            "::",
            stringify!(DesiredStorageClass)
        )
    );
}
#[test]
fn bindgen_test_layout__STREAM_INFORMATION_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_STREAM_INFORMATION_ENTRY>(),
        16usize,
        concat!("Size of: ", stringify!(_STREAM_INFORMATION_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_STREAM_INFORMATION_ENTRY>(),
        4usize,
        concat!("Alignment of ", stringify!(_STREAM_INFORMATION_ENTRY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STREAM_INFORMATION_ENTRY>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STREAM_INFORMATION_ENTRY),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_STREAM_INFORMATION_ENTRY>())).Flags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STREAM_INFORMATION_ENTRY),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STREAM_INFORMATION_ENTRY>())).StreamInformation as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STREAM_INFORMATION_ENTRY),
            "::",
            stringify!(StreamInformation)
        )
    );
}
pub type STREAM_INFORMATION_ENTRY = _STREAM_INFORMATION_ENTRY;
pub type PSTREAM_INFORMATION_ENTRY = *mut _STREAM_INFORMATION_ENTRY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FSCTL_QUERY_REGION_INFO_INPUT {
    pub Version: DWORD,
    pub Size: DWORD,
    pub Flags: DWORD,
    pub NumberOfTierIds: DWORD,
    pub TierIds: [GUID; 1usize],
}
#[test]
fn bindgen_test_layout__FSCTL_QUERY_REGION_INFO_INPUT() {
    assert_eq!(
        ::std::mem::size_of::<_FSCTL_QUERY_REGION_INFO_INPUT>(),
        32usize,
        concat!("Size of: ", stringify!(_FSCTL_QUERY_REGION_INFO_INPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_FSCTL_QUERY_REGION_INFO_INPUT>(),
        4usize,
        concat!("Alignment of ", stringify!(_FSCTL_QUERY_REGION_INFO_INPUT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_QUERY_REGION_INFO_INPUT>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_QUERY_REGION_INFO_INPUT),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_QUERY_REGION_INFO_INPUT>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_QUERY_REGION_INFO_INPUT),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_QUERY_REGION_INFO_INPUT>())).Flags as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_QUERY_REGION_INFO_INPUT),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_QUERY_REGION_INFO_INPUT>())).NumberOfTierIds as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_QUERY_REGION_INFO_INPUT),
            "::",
            stringify!(NumberOfTierIds)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_QUERY_REGION_INFO_INPUT>())).TierIds as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_QUERY_REGION_INFO_INPUT),
            "::",
            stringify!(TierIds)
        )
    );
}
pub type FSCTL_QUERY_REGION_INFO_INPUT = _FSCTL_QUERY_REGION_INFO_INPUT;
pub type PFSCTL_QUERY_REGION_INFO_INPUT = *mut _FSCTL_QUERY_REGION_INFO_INPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_STORAGE_TIER_REGION {
    pub TierId: GUID,
    pub Offset: DWORDLONG,
    pub Length: DWORDLONG,
}
#[test]
fn bindgen_test_layout__FILE_STORAGE_TIER_REGION() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_STORAGE_TIER_REGION>(),
        32usize,
        concat!("Size of: ", stringify!(_FILE_STORAGE_TIER_REGION))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_STORAGE_TIER_REGION>(),
        8usize,
        concat!("Alignment of ", stringify!(_FILE_STORAGE_TIER_REGION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_STORAGE_TIER_REGION>())).TierId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_STORAGE_TIER_REGION),
            "::",
            stringify!(TierId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_STORAGE_TIER_REGION>())).Offset as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_STORAGE_TIER_REGION),
            "::",
            stringify!(Offset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_STORAGE_TIER_REGION>())).Length as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_STORAGE_TIER_REGION),
            "::",
            stringify!(Length)
        )
    );
}
pub type FILE_STORAGE_TIER_REGION = _FILE_STORAGE_TIER_REGION;
pub type PFILE_STORAGE_TIER_REGION = *mut _FILE_STORAGE_TIER_REGION;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FSCTL_QUERY_REGION_INFO_OUTPUT {
    pub Version: DWORD,
    pub Size: DWORD,
    pub Flags: DWORD,
    pub Reserved: DWORD,
    pub Alignment: DWORDLONG,
    pub TotalNumberOfRegions: DWORD,
    pub NumberOfRegionsReturned: DWORD,
    pub Regions: [FILE_STORAGE_TIER_REGION; 1usize],
}
#[test]
fn bindgen_test_layout__FSCTL_QUERY_REGION_INFO_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_FSCTL_QUERY_REGION_INFO_OUTPUT>(),
        64usize,
        concat!("Size of: ", stringify!(_FSCTL_QUERY_REGION_INFO_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_FSCTL_QUERY_REGION_INFO_OUTPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(_FSCTL_QUERY_REGION_INFO_OUTPUT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_QUERY_REGION_INFO_OUTPUT>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_QUERY_REGION_INFO_OUTPUT),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_QUERY_REGION_INFO_OUTPUT>())).Size as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_QUERY_REGION_INFO_OUTPUT),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_QUERY_REGION_INFO_OUTPUT>())).Flags as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_QUERY_REGION_INFO_OUTPUT),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_QUERY_REGION_INFO_OUTPUT>())).Reserved as *const _
                as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_QUERY_REGION_INFO_OUTPUT),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_QUERY_REGION_INFO_OUTPUT>())).Alignment as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_QUERY_REGION_INFO_OUTPUT),
            "::",
            stringify!(Alignment)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_QUERY_REGION_INFO_OUTPUT>())).TotalNumberOfRegions
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_QUERY_REGION_INFO_OUTPUT),
            "::",
            stringify!(TotalNumberOfRegions)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_QUERY_REGION_INFO_OUTPUT>())).NumberOfRegionsReturned
                as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_QUERY_REGION_INFO_OUTPUT),
            "::",
            stringify!(NumberOfRegionsReturned)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FSCTL_QUERY_REGION_INFO_OUTPUT>())).Regions as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_FSCTL_QUERY_REGION_INFO_OUTPUT),
            "::",
            stringify!(Regions)
        )
    );
}
pub type FSCTL_QUERY_REGION_INFO_OUTPUT = _FSCTL_QUERY_REGION_INFO_OUTPUT;
pub type PFSCTL_QUERY_REGION_INFO_OUTPUT = *mut _FSCTL_QUERY_REGION_INFO_OUTPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_DESIRED_STORAGE_CLASS_INFORMATION {
    pub Class: FILE_STORAGE_TIER_CLASS,
    pub Flags: DWORD,
}
#[test]
fn bindgen_test_layout__FILE_DESIRED_STORAGE_CLASS_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_DESIRED_STORAGE_CLASS_INFORMATION>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_FILE_DESIRED_STORAGE_CLASS_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_DESIRED_STORAGE_CLASS_INFORMATION>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_FILE_DESIRED_STORAGE_CLASS_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_DESIRED_STORAGE_CLASS_INFORMATION>())).Class as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_DESIRED_STORAGE_CLASS_INFORMATION),
            "::",
            stringify!(Class)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_DESIRED_STORAGE_CLASS_INFORMATION>())).Flags as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_DESIRED_STORAGE_CLASS_INFORMATION),
            "::",
            stringify!(Flags)
        )
    );
}
pub type FILE_DESIRED_STORAGE_CLASS_INFORMATION = _FILE_DESIRED_STORAGE_CLASS_INFORMATION;
pub type PFILE_DESIRED_STORAGE_CLASS_INFORMATION = *mut _FILE_DESIRED_STORAGE_CLASS_INFORMATION;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _DUPLICATE_EXTENTS_DATA {
    pub FileHandle: HANDLE,
    pub SourceFileOffset: LARGE_INTEGER,
    pub TargetFileOffset: LARGE_INTEGER,
    pub ByteCount: LARGE_INTEGER,
}
#[test]
fn bindgen_test_layout__DUPLICATE_EXTENTS_DATA() {
    assert_eq!(
        ::std::mem::size_of::<_DUPLICATE_EXTENTS_DATA>(),
        32usize,
        concat!("Size of: ", stringify!(_DUPLICATE_EXTENTS_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<_DUPLICATE_EXTENTS_DATA>(),
        8usize,
        concat!("Alignment of ", stringify!(_DUPLICATE_EXTENTS_DATA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DUPLICATE_EXTENTS_DATA>())).FileHandle as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DUPLICATE_EXTENTS_DATA),
            "::",
            stringify!(FileHandle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DUPLICATE_EXTENTS_DATA>())).SourceFileOffset as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DUPLICATE_EXTENTS_DATA),
            "::",
            stringify!(SourceFileOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DUPLICATE_EXTENTS_DATA>())).TargetFileOffset as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DUPLICATE_EXTENTS_DATA),
            "::",
            stringify!(TargetFileOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DUPLICATE_EXTENTS_DATA>())).ByteCount as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DUPLICATE_EXTENTS_DATA),
            "::",
            stringify!(ByteCount)
        )
    );
}
pub type DUPLICATE_EXTENTS_DATA = _DUPLICATE_EXTENTS_DATA;
pub type PDUPLICATE_EXTENTS_DATA = *mut _DUPLICATE_EXTENTS_DATA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _DUPLICATE_EXTENTS_DATA32 {
    pub FileHandle: UINT32,
    pub SourceFileOffset: LARGE_INTEGER,
    pub TargetFileOffset: LARGE_INTEGER,
    pub ByteCount: LARGE_INTEGER,
}
#[test]
fn bindgen_test_layout__DUPLICATE_EXTENTS_DATA32() {
    assert_eq!(
        ::std::mem::size_of::<_DUPLICATE_EXTENTS_DATA32>(),
        32usize,
        concat!("Size of: ", stringify!(_DUPLICATE_EXTENTS_DATA32))
    );
    assert_eq!(
        ::std::mem::align_of::<_DUPLICATE_EXTENTS_DATA32>(),
        8usize,
        concat!("Alignment of ", stringify!(_DUPLICATE_EXTENTS_DATA32))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DUPLICATE_EXTENTS_DATA32>())).FileHandle as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DUPLICATE_EXTENTS_DATA32),
            "::",
            stringify!(FileHandle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DUPLICATE_EXTENTS_DATA32>())).SourceFileOffset as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DUPLICATE_EXTENTS_DATA32),
            "::",
            stringify!(SourceFileOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DUPLICATE_EXTENTS_DATA32>())).TargetFileOffset as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DUPLICATE_EXTENTS_DATA32),
            "::",
            stringify!(TargetFileOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DUPLICATE_EXTENTS_DATA32>())).ByteCount as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DUPLICATE_EXTENTS_DATA32),
            "::",
            stringify!(ByteCount)
        )
    );
}
pub type DUPLICATE_EXTENTS_DATA32 = _DUPLICATE_EXTENTS_DATA32;
pub type PDUPLICATE_EXTENTS_DATA32 = *mut _DUPLICATE_EXTENTS_DATA32;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _DUPLICATE_EXTENTS_DATA_EX {
    pub Size: SIZE_T,
    pub FileHandle: HANDLE,
    pub SourceFileOffset: LARGE_INTEGER,
    pub TargetFileOffset: LARGE_INTEGER,
    pub ByteCount: LARGE_INTEGER,
    pub Flags: DWORD,
}
#[test]
fn bindgen_test_layout__DUPLICATE_EXTENTS_DATA_EX() {
    assert_eq!(
        ::std::mem::size_of::<_DUPLICATE_EXTENTS_DATA_EX>(),
        48usize,
        concat!("Size of: ", stringify!(_DUPLICATE_EXTENTS_DATA_EX))
    );
    assert_eq!(
        ::std::mem::align_of::<_DUPLICATE_EXTENTS_DATA_EX>(),
        8usize,
        concat!("Alignment of ", stringify!(_DUPLICATE_EXTENTS_DATA_EX))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DUPLICATE_EXTENTS_DATA_EX>())).Size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DUPLICATE_EXTENTS_DATA_EX),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DUPLICATE_EXTENTS_DATA_EX>())).FileHandle as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DUPLICATE_EXTENTS_DATA_EX),
            "::",
            stringify!(FileHandle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DUPLICATE_EXTENTS_DATA_EX>())).SourceFileOffset as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DUPLICATE_EXTENTS_DATA_EX),
            "::",
            stringify!(SourceFileOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DUPLICATE_EXTENTS_DATA_EX>())).TargetFileOffset as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DUPLICATE_EXTENTS_DATA_EX),
            "::",
            stringify!(TargetFileOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DUPLICATE_EXTENTS_DATA_EX>())).ByteCount as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_DUPLICATE_EXTENTS_DATA_EX),
            "::",
            stringify!(ByteCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DUPLICATE_EXTENTS_DATA_EX>())).Flags as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_DUPLICATE_EXTENTS_DATA_EX),
            "::",
            stringify!(Flags)
        )
    );
}
pub type DUPLICATE_EXTENTS_DATA_EX = _DUPLICATE_EXTENTS_DATA_EX;
pub type PDUPLICATE_EXTENTS_DATA_EX = *mut _DUPLICATE_EXTENTS_DATA_EX;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _DUPLICATE_EXTENTS_DATA_EX32 {
    pub Size: DWORD32,
    pub FileHandle: DWORD32,
    pub SourceFileOffset: LARGE_INTEGER,
    pub TargetFileOffset: LARGE_INTEGER,
    pub ByteCount: LARGE_INTEGER,
    pub Flags: DWORD,
}
#[test]
fn bindgen_test_layout__DUPLICATE_EXTENTS_DATA_EX32() {
    assert_eq!(
        ::std::mem::size_of::<_DUPLICATE_EXTENTS_DATA_EX32>(),
        40usize,
        concat!("Size of: ", stringify!(_DUPLICATE_EXTENTS_DATA_EX32))
    );
    assert_eq!(
        ::std::mem::align_of::<_DUPLICATE_EXTENTS_DATA_EX32>(),
        8usize,
        concat!("Alignment of ", stringify!(_DUPLICATE_EXTENTS_DATA_EX32))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DUPLICATE_EXTENTS_DATA_EX32>())).Size as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DUPLICATE_EXTENTS_DATA_EX32),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DUPLICATE_EXTENTS_DATA_EX32>())).FileHandle as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_DUPLICATE_EXTENTS_DATA_EX32),
            "::",
            stringify!(FileHandle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DUPLICATE_EXTENTS_DATA_EX32>())).SourceFileOffset as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DUPLICATE_EXTENTS_DATA_EX32),
            "::",
            stringify!(SourceFileOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DUPLICATE_EXTENTS_DATA_EX32>())).TargetFileOffset as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DUPLICATE_EXTENTS_DATA_EX32),
            "::",
            stringify!(TargetFileOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DUPLICATE_EXTENTS_DATA_EX32>())).ByteCount as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DUPLICATE_EXTENTS_DATA_EX32),
            "::",
            stringify!(ByteCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DUPLICATE_EXTENTS_DATA_EX32>())).Flags as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_DUPLICATE_EXTENTS_DATA_EX32),
            "::",
            stringify!(Flags)
        )
    );
}
pub type DUPLICATE_EXTENTS_DATA_EX32 = _DUPLICATE_EXTENTS_DATA_EX32;
pub type PDUPLICATE_EXTENTS_DATA_EX32 = *mut _DUPLICATE_EXTENTS_DATA_EX32;
pub const _REFS_SMR_VOLUME_GC_STATE_SmrGcStateInactive: _REFS_SMR_VOLUME_GC_STATE = 0;
pub const _REFS_SMR_VOLUME_GC_STATE_SmrGcStatePaused: _REFS_SMR_VOLUME_GC_STATE = 1;
pub const _REFS_SMR_VOLUME_GC_STATE_SmrGcStateActive: _REFS_SMR_VOLUME_GC_STATE = 2;
pub const _REFS_SMR_VOLUME_GC_STATE_SmrGcStateActiveFullSpeed: _REFS_SMR_VOLUME_GC_STATE = 3;
pub type _REFS_SMR_VOLUME_GC_STATE = ::std::os::raw::c_int;
pub use self::_REFS_SMR_VOLUME_GC_STATE as REFS_SMR_VOLUME_GC_STATE;
pub type PREFS_SMR_VOLUME_GC_STATE = *mut _REFS_SMR_VOLUME_GC_STATE;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _REFS_SMR_VOLUME_INFO_OUTPUT {
    pub Version: DWORD,
    pub Flags: DWORD,
    pub SizeOfRandomlyWritableTier: LARGE_INTEGER,
    pub FreeSpaceInRandomlyWritableTier: LARGE_INTEGER,
    pub SizeofSMRTier: LARGE_INTEGER,
    pub FreeSpaceInSMRTier: LARGE_INTEGER,
    pub UsableFreeSpaceInSMRTier: LARGE_INTEGER,
    pub VolumeGcState: REFS_SMR_VOLUME_GC_STATE,
    pub VolumeGcLastStatus: DWORD,
    pub Unused: [DWORDLONG; 7usize],
}
#[test]
fn bindgen_test_layout__REFS_SMR_VOLUME_INFO_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_REFS_SMR_VOLUME_INFO_OUTPUT>(),
        112usize,
        concat!("Size of: ", stringify!(_REFS_SMR_VOLUME_INFO_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_REFS_SMR_VOLUME_INFO_OUTPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(_REFS_SMR_VOLUME_INFO_OUTPUT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REFS_SMR_VOLUME_INFO_OUTPUT>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_REFS_SMR_VOLUME_INFO_OUTPUT),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REFS_SMR_VOLUME_INFO_OUTPUT>())).Flags as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_REFS_SMR_VOLUME_INFO_OUTPUT),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REFS_SMR_VOLUME_INFO_OUTPUT>())).SizeOfRandomlyWritableTier
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_REFS_SMR_VOLUME_INFO_OUTPUT),
            "::",
            stringify!(SizeOfRandomlyWritableTier)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REFS_SMR_VOLUME_INFO_OUTPUT>())).FreeSpaceInRandomlyWritableTier
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_REFS_SMR_VOLUME_INFO_OUTPUT),
            "::",
            stringify!(FreeSpaceInRandomlyWritableTier)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REFS_SMR_VOLUME_INFO_OUTPUT>())).SizeofSMRTier as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_REFS_SMR_VOLUME_INFO_OUTPUT),
            "::",
            stringify!(SizeofSMRTier)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REFS_SMR_VOLUME_INFO_OUTPUT>())).FreeSpaceInSMRTier as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_REFS_SMR_VOLUME_INFO_OUTPUT),
            "::",
            stringify!(FreeSpaceInSMRTier)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REFS_SMR_VOLUME_INFO_OUTPUT>())).UsableFreeSpaceInSMRTier
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_REFS_SMR_VOLUME_INFO_OUTPUT),
            "::",
            stringify!(UsableFreeSpaceInSMRTier)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REFS_SMR_VOLUME_INFO_OUTPUT>())).VolumeGcState as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_REFS_SMR_VOLUME_INFO_OUTPUT),
            "::",
            stringify!(VolumeGcState)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REFS_SMR_VOLUME_INFO_OUTPUT>())).VolumeGcLastStatus as *const _
                as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_REFS_SMR_VOLUME_INFO_OUTPUT),
            "::",
            stringify!(VolumeGcLastStatus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REFS_SMR_VOLUME_INFO_OUTPUT>())).Unused as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_REFS_SMR_VOLUME_INFO_OUTPUT),
            "::",
            stringify!(Unused)
        )
    );
}
pub type REFS_SMR_VOLUME_INFO_OUTPUT = _REFS_SMR_VOLUME_INFO_OUTPUT;
pub type PREFS_SMR_VOLUME_INFO_OUTPUT = *mut _REFS_SMR_VOLUME_INFO_OUTPUT;
pub const _REFS_SMR_VOLUME_GC_ACTION_SmrGcActionStart: _REFS_SMR_VOLUME_GC_ACTION = 1;
pub const _REFS_SMR_VOLUME_GC_ACTION_SmrGcActionStartFullSpeed: _REFS_SMR_VOLUME_GC_ACTION = 2;
pub const _REFS_SMR_VOLUME_GC_ACTION_SmrGcActionPause: _REFS_SMR_VOLUME_GC_ACTION = 3;
pub const _REFS_SMR_VOLUME_GC_ACTION_SmrGcActionStop: _REFS_SMR_VOLUME_GC_ACTION = 4;
pub type _REFS_SMR_VOLUME_GC_ACTION = ::std::os::raw::c_int;
pub use self::_REFS_SMR_VOLUME_GC_ACTION as REFS_SMR_VOLUME_GC_ACTION;
pub type PREFS_SMR_VOLUME_GC_ACTION = *mut _REFS_SMR_VOLUME_GC_ACTION;
pub const _REFS_SMR_VOLUME_GC_METHOD_SmrGcMethodCompaction: _REFS_SMR_VOLUME_GC_METHOD = 1;
pub const _REFS_SMR_VOLUME_GC_METHOD_SmrGcMethodCompression: _REFS_SMR_VOLUME_GC_METHOD = 2;
pub const _REFS_SMR_VOLUME_GC_METHOD_SmrGcMethodRotation: _REFS_SMR_VOLUME_GC_METHOD = 3;
pub type _REFS_SMR_VOLUME_GC_METHOD = ::std::os::raw::c_int;
pub use self::_REFS_SMR_VOLUME_GC_METHOD as REFS_SMR_VOLUME_GC_METHOD;
pub type PREFS_SMR_VOLUME_GC_METHOD = *mut _REFS_SMR_VOLUME_GC_METHOD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _REFS_SMR_VOLUME_GC_PARAMETERS {
    pub Version: DWORD,
    pub Flags: DWORD,
    pub Action: REFS_SMR_VOLUME_GC_ACTION,
    pub Method: REFS_SMR_VOLUME_GC_METHOD,
    pub IoGranularity: DWORD,
    pub CompressionFormat: DWORD,
    pub Unused: [DWORDLONG; 8usize],
}
#[test]
fn bindgen_test_layout__REFS_SMR_VOLUME_GC_PARAMETERS() {
    assert_eq!(
        ::std::mem::size_of::<_REFS_SMR_VOLUME_GC_PARAMETERS>(),
        88usize,
        concat!("Size of: ", stringify!(_REFS_SMR_VOLUME_GC_PARAMETERS))
    );
    assert_eq!(
        ::std::mem::align_of::<_REFS_SMR_VOLUME_GC_PARAMETERS>(),
        8usize,
        concat!("Alignment of ", stringify!(_REFS_SMR_VOLUME_GC_PARAMETERS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REFS_SMR_VOLUME_GC_PARAMETERS>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_REFS_SMR_VOLUME_GC_PARAMETERS),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REFS_SMR_VOLUME_GC_PARAMETERS>())).Flags as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_REFS_SMR_VOLUME_GC_PARAMETERS),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REFS_SMR_VOLUME_GC_PARAMETERS>())).Action as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_REFS_SMR_VOLUME_GC_PARAMETERS),
            "::",
            stringify!(Action)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REFS_SMR_VOLUME_GC_PARAMETERS>())).Method as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_REFS_SMR_VOLUME_GC_PARAMETERS),
            "::",
            stringify!(Method)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REFS_SMR_VOLUME_GC_PARAMETERS>())).IoGranularity as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_REFS_SMR_VOLUME_GC_PARAMETERS),
            "::",
            stringify!(IoGranularity)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REFS_SMR_VOLUME_GC_PARAMETERS>())).CompressionFormat as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_REFS_SMR_VOLUME_GC_PARAMETERS),
            "::",
            stringify!(CompressionFormat)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REFS_SMR_VOLUME_GC_PARAMETERS>())).Unused as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_REFS_SMR_VOLUME_GC_PARAMETERS),
            "::",
            stringify!(Unused)
        )
    );
}
pub type REFS_SMR_VOLUME_GC_PARAMETERS = _REFS_SMR_VOLUME_GC_PARAMETERS;
pub type PREFS_SMR_VOLUME_GC_PARAMETERS = *mut _REFS_SMR_VOLUME_GC_PARAMETERS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STREAMS_QUERY_PARAMETERS_OUTPUT_BUFFER {
    pub OptimalWriteSize: DWORD,
    pub StreamGranularitySize: DWORD,
    pub StreamIdMin: DWORD,
    pub StreamIdMax: DWORD,
}
#[test]
fn bindgen_test_layout__STREAMS_QUERY_PARAMETERS_OUTPUT_BUFFER() {
    assert_eq!(
        ::std::mem::size_of::<_STREAMS_QUERY_PARAMETERS_OUTPUT_BUFFER>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_STREAMS_QUERY_PARAMETERS_OUTPUT_BUFFER)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_STREAMS_QUERY_PARAMETERS_OUTPUT_BUFFER>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_STREAMS_QUERY_PARAMETERS_OUTPUT_BUFFER)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STREAMS_QUERY_PARAMETERS_OUTPUT_BUFFER>())).OptimalWriteSize
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STREAMS_QUERY_PARAMETERS_OUTPUT_BUFFER),
            "::",
            stringify!(OptimalWriteSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STREAMS_QUERY_PARAMETERS_OUTPUT_BUFFER>()))
                .StreamGranularitySize as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STREAMS_QUERY_PARAMETERS_OUTPUT_BUFFER),
            "::",
            stringify!(StreamGranularitySize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STREAMS_QUERY_PARAMETERS_OUTPUT_BUFFER>())).StreamIdMin
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_STREAMS_QUERY_PARAMETERS_OUTPUT_BUFFER),
            "::",
            stringify!(StreamIdMin)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STREAMS_QUERY_PARAMETERS_OUTPUT_BUFFER>())).StreamIdMax
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_STREAMS_QUERY_PARAMETERS_OUTPUT_BUFFER),
            "::",
            stringify!(StreamIdMax)
        )
    );
}
pub type STREAMS_QUERY_PARAMETERS_OUTPUT_BUFFER = _STREAMS_QUERY_PARAMETERS_OUTPUT_BUFFER;
pub type PSTREAMS_QUERY_PARAMETERS_OUTPUT_BUFFER = *mut _STREAMS_QUERY_PARAMETERS_OUTPUT_BUFFER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STREAMS_ASSOCIATE_ID_INPUT_BUFFER {
    pub Flags: DWORD,
    pub StreamId: DWORD,
}
#[test]
fn bindgen_test_layout__STREAMS_ASSOCIATE_ID_INPUT_BUFFER() {
    assert_eq!(
        ::std::mem::size_of::<_STREAMS_ASSOCIATE_ID_INPUT_BUFFER>(),
        8usize,
        concat!("Size of: ", stringify!(_STREAMS_ASSOCIATE_ID_INPUT_BUFFER))
    );
    assert_eq!(
        ::std::mem::align_of::<_STREAMS_ASSOCIATE_ID_INPUT_BUFFER>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_STREAMS_ASSOCIATE_ID_INPUT_BUFFER)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STREAMS_ASSOCIATE_ID_INPUT_BUFFER>())).Flags as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STREAMS_ASSOCIATE_ID_INPUT_BUFFER),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STREAMS_ASSOCIATE_ID_INPUT_BUFFER>())).StreamId as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_STREAMS_ASSOCIATE_ID_INPUT_BUFFER),
            "::",
            stringify!(StreamId)
        )
    );
}
pub type STREAMS_ASSOCIATE_ID_INPUT_BUFFER = _STREAMS_ASSOCIATE_ID_INPUT_BUFFER;
pub type PSTREAMS_ASSOCIATE_ID_INPUT_BUFFER = *mut _STREAMS_ASSOCIATE_ID_INPUT_BUFFER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _STREAMS_QUERY_ID_OUTPUT_BUFFER {
    pub StreamId: DWORD,
}
#[test]
fn bindgen_test_layout__STREAMS_QUERY_ID_OUTPUT_BUFFER() {
    assert_eq!(
        ::std::mem::size_of::<_STREAMS_QUERY_ID_OUTPUT_BUFFER>(),
        4usize,
        concat!("Size of: ", stringify!(_STREAMS_QUERY_ID_OUTPUT_BUFFER))
    );
    assert_eq!(
        ::std::mem::align_of::<_STREAMS_QUERY_ID_OUTPUT_BUFFER>(),
        4usize,
        concat!("Alignment of ", stringify!(_STREAMS_QUERY_ID_OUTPUT_BUFFER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_STREAMS_QUERY_ID_OUTPUT_BUFFER>())).StreamId as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_STREAMS_QUERY_ID_OUTPUT_BUFFER),
            "::",
            stringify!(StreamId)
        )
    );
}
pub type STREAMS_QUERY_ID_OUTPUT_BUFFER = _STREAMS_QUERY_ID_OUTPUT_BUFFER;
pub type PSTREAMS_QUERY_ID_OUTPUT_BUFFER = *mut _STREAMS_QUERY_ID_OUTPUT_BUFFER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _QUERY_BAD_RANGES_INPUT_RANGE {
    pub StartOffset: DWORDLONG,
    pub LengthInBytes: DWORDLONG,
}
#[test]
fn bindgen_test_layout__QUERY_BAD_RANGES_INPUT_RANGE() {
    assert_eq!(
        ::std::mem::size_of::<_QUERY_BAD_RANGES_INPUT_RANGE>(),
        16usize,
        concat!("Size of: ", stringify!(_QUERY_BAD_RANGES_INPUT_RANGE))
    );
    assert_eq!(
        ::std::mem::align_of::<_QUERY_BAD_RANGES_INPUT_RANGE>(),
        8usize,
        concat!("Alignment of ", stringify!(_QUERY_BAD_RANGES_INPUT_RANGE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_BAD_RANGES_INPUT_RANGE>())).StartOffset as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_BAD_RANGES_INPUT_RANGE),
            "::",
            stringify!(StartOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_BAD_RANGES_INPUT_RANGE>())).LengthInBytes as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_BAD_RANGES_INPUT_RANGE),
            "::",
            stringify!(LengthInBytes)
        )
    );
}
pub type QUERY_BAD_RANGES_INPUT_RANGE = _QUERY_BAD_RANGES_INPUT_RANGE;
pub type PQUERY_BAD_RANGES_INPUT_RANGE = *mut _QUERY_BAD_RANGES_INPUT_RANGE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _QUERY_BAD_RANGES_INPUT {
    pub Flags: DWORD,
    pub NumRanges: DWORD,
    pub Ranges: [QUERY_BAD_RANGES_INPUT_RANGE; 1usize],
}
#[test]
fn bindgen_test_layout__QUERY_BAD_RANGES_INPUT() {
    assert_eq!(
        ::std::mem::size_of::<_QUERY_BAD_RANGES_INPUT>(),
        24usize,
        concat!("Size of: ", stringify!(_QUERY_BAD_RANGES_INPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_QUERY_BAD_RANGES_INPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(_QUERY_BAD_RANGES_INPUT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_QUERY_BAD_RANGES_INPUT>())).Flags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_BAD_RANGES_INPUT),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_BAD_RANGES_INPUT>())).NumRanges as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_BAD_RANGES_INPUT),
            "::",
            stringify!(NumRanges)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_QUERY_BAD_RANGES_INPUT>())).Ranges as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_BAD_RANGES_INPUT),
            "::",
            stringify!(Ranges)
        )
    );
}
pub type QUERY_BAD_RANGES_INPUT = _QUERY_BAD_RANGES_INPUT;
pub type PQUERY_BAD_RANGES_INPUT = *mut _QUERY_BAD_RANGES_INPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _QUERY_BAD_RANGES_OUTPUT_RANGE {
    pub Flags: DWORD,
    pub Reserved: DWORD,
    pub StartOffset: DWORDLONG,
    pub LengthInBytes: DWORDLONG,
}
#[test]
fn bindgen_test_layout__QUERY_BAD_RANGES_OUTPUT_RANGE() {
    assert_eq!(
        ::std::mem::size_of::<_QUERY_BAD_RANGES_OUTPUT_RANGE>(),
        24usize,
        concat!("Size of: ", stringify!(_QUERY_BAD_RANGES_OUTPUT_RANGE))
    );
    assert_eq!(
        ::std::mem::align_of::<_QUERY_BAD_RANGES_OUTPUT_RANGE>(),
        8usize,
        concat!("Alignment of ", stringify!(_QUERY_BAD_RANGES_OUTPUT_RANGE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_BAD_RANGES_OUTPUT_RANGE>())).Flags as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_BAD_RANGES_OUTPUT_RANGE),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_BAD_RANGES_OUTPUT_RANGE>())).Reserved as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_BAD_RANGES_OUTPUT_RANGE),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_BAD_RANGES_OUTPUT_RANGE>())).StartOffset as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_BAD_RANGES_OUTPUT_RANGE),
            "::",
            stringify!(StartOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_BAD_RANGES_OUTPUT_RANGE>())).LengthInBytes as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_BAD_RANGES_OUTPUT_RANGE),
            "::",
            stringify!(LengthInBytes)
        )
    );
}
pub type QUERY_BAD_RANGES_OUTPUT_RANGE = _QUERY_BAD_RANGES_OUTPUT_RANGE;
pub type PQUERY_BAD_RANGES_OUTPUT_RANGE = *mut _QUERY_BAD_RANGES_OUTPUT_RANGE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _QUERY_BAD_RANGES_OUTPUT {
    pub Flags: DWORD,
    pub NumBadRanges: DWORD,
    pub NextOffsetToLookUp: DWORDLONG,
    pub BadRanges: [QUERY_BAD_RANGES_OUTPUT_RANGE; 1usize],
}
#[test]
fn bindgen_test_layout__QUERY_BAD_RANGES_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_QUERY_BAD_RANGES_OUTPUT>(),
        40usize,
        concat!("Size of: ", stringify!(_QUERY_BAD_RANGES_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_QUERY_BAD_RANGES_OUTPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(_QUERY_BAD_RANGES_OUTPUT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_QUERY_BAD_RANGES_OUTPUT>())).Flags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_BAD_RANGES_OUTPUT),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_BAD_RANGES_OUTPUT>())).NumBadRanges as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_BAD_RANGES_OUTPUT),
            "::",
            stringify!(NumBadRanges)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_BAD_RANGES_OUTPUT>())).NextOffsetToLookUp as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_BAD_RANGES_OUTPUT),
            "::",
            stringify!(NextOffsetToLookUp)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_BAD_RANGES_OUTPUT>())).BadRanges as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_BAD_RANGES_OUTPUT),
            "::",
            stringify!(BadRanges)
        )
    );
}
pub type QUERY_BAD_RANGES_OUTPUT = _QUERY_BAD_RANGES_OUTPUT;
pub type PQUERY_BAD_RANGES_OUTPUT = *mut _QUERY_BAD_RANGES_OUTPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SET_DAX_ALLOC_ALIGNMENT_HINT_INPUT {
    pub Flags: DWORD,
    pub AlignmentShift: DWORD,
    pub FileOffsetToAlign: DWORDLONG,
    pub FallbackAlignmentShift: DWORD,
}
#[test]
fn bindgen_test_layout__SET_DAX_ALLOC_ALIGNMENT_HINT_INPUT() {
    assert_eq!(
        ::std::mem::size_of::<_SET_DAX_ALLOC_ALIGNMENT_HINT_INPUT>(),
        24usize,
        concat!("Size of: ", stringify!(_SET_DAX_ALLOC_ALIGNMENT_HINT_INPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_SET_DAX_ALLOC_ALIGNMENT_HINT_INPUT>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_SET_DAX_ALLOC_ALIGNMENT_HINT_INPUT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SET_DAX_ALLOC_ALIGNMENT_HINT_INPUT>())).Flags as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SET_DAX_ALLOC_ALIGNMENT_HINT_INPUT),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SET_DAX_ALLOC_ALIGNMENT_HINT_INPUT>())).AlignmentShift
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SET_DAX_ALLOC_ALIGNMENT_HINT_INPUT),
            "::",
            stringify!(AlignmentShift)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SET_DAX_ALLOC_ALIGNMENT_HINT_INPUT>())).FileOffsetToAlign
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SET_DAX_ALLOC_ALIGNMENT_HINT_INPUT),
            "::",
            stringify!(FileOffsetToAlign)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SET_DAX_ALLOC_ALIGNMENT_HINT_INPUT>())).FallbackAlignmentShift
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SET_DAX_ALLOC_ALIGNMENT_HINT_INPUT),
            "::",
            stringify!(FallbackAlignmentShift)
        )
    );
}
pub type SET_DAX_ALLOC_ALIGNMENT_HINT_INPUT = _SET_DAX_ALLOC_ALIGNMENT_HINT_INPUT;
pub type PSET_DAX_ALLOC_ALIGNMENT_HINT_INPUT = *mut _SET_DAX_ALLOC_ALIGNMENT_HINT_INPUT;
pub const _VIRTUAL_STORAGE_BEHAVIOR_CODE_VirtualStorageBehaviorUndefined:
    _VIRTUAL_STORAGE_BEHAVIOR_CODE = 0;
pub const _VIRTUAL_STORAGE_BEHAVIOR_CODE_VirtualStorageBehaviorCacheWriteThrough:
    _VIRTUAL_STORAGE_BEHAVIOR_CODE = 1;
pub const _VIRTUAL_STORAGE_BEHAVIOR_CODE_VirtualStorageBehaviorCacheWriteBack:
    _VIRTUAL_STORAGE_BEHAVIOR_CODE = 2;
pub type _VIRTUAL_STORAGE_BEHAVIOR_CODE = ::std::os::raw::c_int;
pub use self::_VIRTUAL_STORAGE_BEHAVIOR_CODE as VIRTUAL_STORAGE_BEHAVIOR_CODE;
pub type PVIRTUAL_STORAGE_BEHAVIOR_CODE = *mut _VIRTUAL_STORAGE_BEHAVIOR_CODE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _VIRTUAL_STORAGE_SET_BEHAVIOR_INPUT {
    pub Size: DWORD,
    pub BehaviorCode: VIRTUAL_STORAGE_BEHAVIOR_CODE,
}
#[test]
fn bindgen_test_layout__VIRTUAL_STORAGE_SET_BEHAVIOR_INPUT() {
    assert_eq!(
        ::std::mem::size_of::<_VIRTUAL_STORAGE_SET_BEHAVIOR_INPUT>(),
        8usize,
        concat!("Size of: ", stringify!(_VIRTUAL_STORAGE_SET_BEHAVIOR_INPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_VIRTUAL_STORAGE_SET_BEHAVIOR_INPUT>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_VIRTUAL_STORAGE_SET_BEHAVIOR_INPUT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_VIRTUAL_STORAGE_SET_BEHAVIOR_INPUT>())).Size as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIRTUAL_STORAGE_SET_BEHAVIOR_INPUT),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_VIRTUAL_STORAGE_SET_BEHAVIOR_INPUT>())).BehaviorCode as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIRTUAL_STORAGE_SET_BEHAVIOR_INPUT),
            "::",
            stringify!(BehaviorCode)
        )
    );
}
pub type VIRTUAL_STORAGE_SET_BEHAVIOR_INPUT = _VIRTUAL_STORAGE_SET_BEHAVIOR_INPUT;
pub type PVIRTUAL_STORAGE_SET_BEHAVIOR_INPUT = *mut _VIRTUAL_STORAGE_SET_BEHAVIOR_INPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ENCRYPTION_KEY_CTRL_INPUT {
    pub HeaderSize: DWORD,
    pub StructureSize: DWORD,
    pub KeyOffset: WORD,
    pub KeySize: WORD,
    pub DplLock: DWORD,
    pub DplUserId: DWORDLONG,
    pub DplCredentialId: DWORDLONG,
}
#[test]
fn bindgen_test_layout__ENCRYPTION_KEY_CTRL_INPUT() {
    assert_eq!(
        ::std::mem::size_of::<_ENCRYPTION_KEY_CTRL_INPUT>(),
        32usize,
        concat!("Size of: ", stringify!(_ENCRYPTION_KEY_CTRL_INPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_ENCRYPTION_KEY_CTRL_INPUT>(),
        8usize,
        concat!("Alignment of ", stringify!(_ENCRYPTION_KEY_CTRL_INPUT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTION_KEY_CTRL_INPUT>())).HeaderSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTION_KEY_CTRL_INPUT),
            "::",
            stringify!(HeaderSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTION_KEY_CTRL_INPUT>())).StructureSize as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTION_KEY_CTRL_INPUT),
            "::",
            stringify!(StructureSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTION_KEY_CTRL_INPUT>())).KeyOffset as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTION_KEY_CTRL_INPUT),
            "::",
            stringify!(KeyOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTION_KEY_CTRL_INPUT>())).KeySize as *const _ as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTION_KEY_CTRL_INPUT),
            "::",
            stringify!(KeySize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTION_KEY_CTRL_INPUT>())).DplLock as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTION_KEY_CTRL_INPUT),
            "::",
            stringify!(DplLock)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTION_KEY_CTRL_INPUT>())).DplUserId as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTION_KEY_CTRL_INPUT),
            "::",
            stringify!(DplUserId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENCRYPTION_KEY_CTRL_INPUT>())).DplCredentialId as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENCRYPTION_KEY_CTRL_INPUT),
            "::",
            stringify!(DplCredentialId)
        )
    );
}
pub type ENCRYPTION_KEY_CTRL_INPUT = _ENCRYPTION_KEY_CTRL_INPUT;
pub type PENCRYPTION_KEY_CTRL_INPUT = *mut _ENCRYPTION_KEY_CTRL_INPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _WOF_EXTERNAL_INFO {
    pub Version: DWORD,
    pub Provider: DWORD,
}
#[test]
fn bindgen_test_layout__WOF_EXTERNAL_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_WOF_EXTERNAL_INFO>(),
        8usize,
        concat!("Size of: ", stringify!(_WOF_EXTERNAL_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_WOF_EXTERNAL_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_WOF_EXTERNAL_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WOF_EXTERNAL_INFO>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOF_EXTERNAL_INFO),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WOF_EXTERNAL_INFO>())).Provider as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOF_EXTERNAL_INFO),
            "::",
            stringify!(Provider)
        )
    );
}
pub type WOF_EXTERNAL_INFO = _WOF_EXTERNAL_INFO;
pub type PWOF_EXTERNAL_INFO = *mut _WOF_EXTERNAL_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _WOF_EXTERNAL_FILE_ID {
    pub FileId: FILE_ID_128,
}
#[test]
fn bindgen_test_layout__WOF_EXTERNAL_FILE_ID() {
    assert_eq!(
        ::std::mem::size_of::<_WOF_EXTERNAL_FILE_ID>(),
        16usize,
        concat!("Size of: ", stringify!(_WOF_EXTERNAL_FILE_ID))
    );
    assert_eq!(
        ::std::mem::align_of::<_WOF_EXTERNAL_FILE_ID>(),
        1usize,
        concat!("Alignment of ", stringify!(_WOF_EXTERNAL_FILE_ID))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WOF_EXTERNAL_FILE_ID>())).FileId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOF_EXTERNAL_FILE_ID),
            "::",
            stringify!(FileId)
        )
    );
}
pub type WOF_EXTERNAL_FILE_ID = _WOF_EXTERNAL_FILE_ID;
pub type PWOF_EXTERNAL_FILE_ID = *mut _WOF_EXTERNAL_FILE_ID;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _WOF_VERSION_INFO {
    pub WofVersion: DWORD,
}
#[test]
fn bindgen_test_layout__WOF_VERSION_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_WOF_VERSION_INFO>(),
        4usize,
        concat!("Size of: ", stringify!(_WOF_VERSION_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_WOF_VERSION_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_WOF_VERSION_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_WOF_VERSION_INFO>())).WofVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_WOF_VERSION_INFO),
            "::",
            stringify!(WofVersion)
        )
    );
}
pub type WOF_VERSION_INFO = _WOF_VERSION_INFO;
pub type PWOF_VERSION_INFO = *mut _WOF_VERSION_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _WIM_PROVIDER_EXTERNAL_INFO {
    pub Version: DWORD,
    pub Flags: DWORD,
    pub DataSourceId: LARGE_INTEGER,
    pub ResourceHash: [BYTE; 20usize],
}
#[test]
fn bindgen_test_layout__WIM_PROVIDER_EXTERNAL_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_WIM_PROVIDER_EXTERNAL_INFO>(),
        40usize,
        concat!("Size of: ", stringify!(_WIM_PROVIDER_EXTERNAL_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_WIM_PROVIDER_EXTERNAL_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_WIM_PROVIDER_EXTERNAL_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIM_PROVIDER_EXTERNAL_INFO>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIM_PROVIDER_EXTERNAL_INFO),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIM_PROVIDER_EXTERNAL_INFO>())).Flags as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIM_PROVIDER_EXTERNAL_INFO),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIM_PROVIDER_EXTERNAL_INFO>())).DataSourceId as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIM_PROVIDER_EXTERNAL_INFO),
            "::",
            stringify!(DataSourceId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIM_PROVIDER_EXTERNAL_INFO>())).ResourceHash as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIM_PROVIDER_EXTERNAL_INFO),
            "::",
            stringify!(ResourceHash)
        )
    );
}
pub type WIM_PROVIDER_EXTERNAL_INFO = _WIM_PROVIDER_EXTERNAL_INFO;
pub type PWIM_PROVIDER_EXTERNAL_INFO = *mut _WIM_PROVIDER_EXTERNAL_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _WIM_PROVIDER_ADD_OVERLAY_INPUT {
    pub WimType: DWORD,
    pub WimIndex: DWORD,
    pub WimFileNameOffset: DWORD,
    pub WimFileNameLength: DWORD,
}
#[test]
fn bindgen_test_layout__WIM_PROVIDER_ADD_OVERLAY_INPUT() {
    assert_eq!(
        ::std::mem::size_of::<_WIM_PROVIDER_ADD_OVERLAY_INPUT>(),
        16usize,
        concat!("Size of: ", stringify!(_WIM_PROVIDER_ADD_OVERLAY_INPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_WIM_PROVIDER_ADD_OVERLAY_INPUT>(),
        4usize,
        concat!("Alignment of ", stringify!(_WIM_PROVIDER_ADD_OVERLAY_INPUT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIM_PROVIDER_ADD_OVERLAY_INPUT>())).WimType as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIM_PROVIDER_ADD_OVERLAY_INPUT),
            "::",
            stringify!(WimType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIM_PROVIDER_ADD_OVERLAY_INPUT>())).WimIndex as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIM_PROVIDER_ADD_OVERLAY_INPUT),
            "::",
            stringify!(WimIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIM_PROVIDER_ADD_OVERLAY_INPUT>())).WimFileNameOffset
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIM_PROVIDER_ADD_OVERLAY_INPUT),
            "::",
            stringify!(WimFileNameOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIM_PROVIDER_ADD_OVERLAY_INPUT>())).WimFileNameLength
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIM_PROVIDER_ADD_OVERLAY_INPUT),
            "::",
            stringify!(WimFileNameLength)
        )
    );
}
pub type WIM_PROVIDER_ADD_OVERLAY_INPUT = _WIM_PROVIDER_ADD_OVERLAY_INPUT;
pub type PWIM_PROVIDER_ADD_OVERLAY_INPUT = *mut _WIM_PROVIDER_ADD_OVERLAY_INPUT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _WIM_PROVIDER_UPDATE_OVERLAY_INPUT {
    pub DataSourceId: LARGE_INTEGER,
    pub WimFileNameOffset: DWORD,
    pub WimFileNameLength: DWORD,
}
#[test]
fn bindgen_test_layout__WIM_PROVIDER_UPDATE_OVERLAY_INPUT() {
    assert_eq!(
        ::std::mem::size_of::<_WIM_PROVIDER_UPDATE_OVERLAY_INPUT>(),
        16usize,
        concat!("Size of: ", stringify!(_WIM_PROVIDER_UPDATE_OVERLAY_INPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_WIM_PROVIDER_UPDATE_OVERLAY_INPUT>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_WIM_PROVIDER_UPDATE_OVERLAY_INPUT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIM_PROVIDER_UPDATE_OVERLAY_INPUT>())).DataSourceId as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIM_PROVIDER_UPDATE_OVERLAY_INPUT),
            "::",
            stringify!(DataSourceId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIM_PROVIDER_UPDATE_OVERLAY_INPUT>())).WimFileNameOffset
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIM_PROVIDER_UPDATE_OVERLAY_INPUT),
            "::",
            stringify!(WimFileNameOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIM_PROVIDER_UPDATE_OVERLAY_INPUT>())).WimFileNameLength
                as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIM_PROVIDER_UPDATE_OVERLAY_INPUT),
            "::",
            stringify!(WimFileNameLength)
        )
    );
}
pub type WIM_PROVIDER_UPDATE_OVERLAY_INPUT = _WIM_PROVIDER_UPDATE_OVERLAY_INPUT;
pub type PWIM_PROVIDER_UPDATE_OVERLAY_INPUT = *mut _WIM_PROVIDER_UPDATE_OVERLAY_INPUT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _WIM_PROVIDER_REMOVE_OVERLAY_INPUT {
    pub DataSourceId: LARGE_INTEGER,
}
#[test]
fn bindgen_test_layout__WIM_PROVIDER_REMOVE_OVERLAY_INPUT() {
    assert_eq!(
        ::std::mem::size_of::<_WIM_PROVIDER_REMOVE_OVERLAY_INPUT>(),
        8usize,
        concat!("Size of: ", stringify!(_WIM_PROVIDER_REMOVE_OVERLAY_INPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_WIM_PROVIDER_REMOVE_OVERLAY_INPUT>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_WIM_PROVIDER_REMOVE_OVERLAY_INPUT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIM_PROVIDER_REMOVE_OVERLAY_INPUT>())).DataSourceId as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIM_PROVIDER_REMOVE_OVERLAY_INPUT),
            "::",
            stringify!(DataSourceId)
        )
    );
}
pub type WIM_PROVIDER_REMOVE_OVERLAY_INPUT = _WIM_PROVIDER_REMOVE_OVERLAY_INPUT;
pub type PWIM_PROVIDER_REMOVE_OVERLAY_INPUT = *mut _WIM_PROVIDER_REMOVE_OVERLAY_INPUT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _WIM_PROVIDER_SUSPEND_OVERLAY_INPUT {
    pub DataSourceId: LARGE_INTEGER,
}
#[test]
fn bindgen_test_layout__WIM_PROVIDER_SUSPEND_OVERLAY_INPUT() {
    assert_eq!(
        ::std::mem::size_of::<_WIM_PROVIDER_SUSPEND_OVERLAY_INPUT>(),
        8usize,
        concat!("Size of: ", stringify!(_WIM_PROVIDER_SUSPEND_OVERLAY_INPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_WIM_PROVIDER_SUSPEND_OVERLAY_INPUT>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_WIM_PROVIDER_SUSPEND_OVERLAY_INPUT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIM_PROVIDER_SUSPEND_OVERLAY_INPUT>())).DataSourceId as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIM_PROVIDER_SUSPEND_OVERLAY_INPUT),
            "::",
            stringify!(DataSourceId)
        )
    );
}
pub type WIM_PROVIDER_SUSPEND_OVERLAY_INPUT = _WIM_PROVIDER_SUSPEND_OVERLAY_INPUT;
pub type PWIM_PROVIDER_SUSPEND_OVERLAY_INPUT = *mut _WIM_PROVIDER_SUSPEND_OVERLAY_INPUT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _WIM_PROVIDER_OVERLAY_ENTRY {
    pub NextEntryOffset: DWORD,
    pub DataSourceId: LARGE_INTEGER,
    pub WimGuid: GUID,
    pub WimFileNameOffset: DWORD,
    pub WimType: DWORD,
    pub WimIndex: DWORD,
    pub Flags: DWORD,
}
#[test]
fn bindgen_test_layout__WIM_PROVIDER_OVERLAY_ENTRY() {
    assert_eq!(
        ::std::mem::size_of::<_WIM_PROVIDER_OVERLAY_ENTRY>(),
        48usize,
        concat!("Size of: ", stringify!(_WIM_PROVIDER_OVERLAY_ENTRY))
    );
    assert_eq!(
        ::std::mem::align_of::<_WIM_PROVIDER_OVERLAY_ENTRY>(),
        8usize,
        concat!("Alignment of ", stringify!(_WIM_PROVIDER_OVERLAY_ENTRY))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIM_PROVIDER_OVERLAY_ENTRY>())).NextEntryOffset as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIM_PROVIDER_OVERLAY_ENTRY),
            "::",
            stringify!(NextEntryOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIM_PROVIDER_OVERLAY_ENTRY>())).DataSourceId as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIM_PROVIDER_OVERLAY_ENTRY),
            "::",
            stringify!(DataSourceId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIM_PROVIDER_OVERLAY_ENTRY>())).WimGuid as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIM_PROVIDER_OVERLAY_ENTRY),
            "::",
            stringify!(WimGuid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIM_PROVIDER_OVERLAY_ENTRY>())).WimFileNameOffset as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIM_PROVIDER_OVERLAY_ENTRY),
            "::",
            stringify!(WimFileNameOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIM_PROVIDER_OVERLAY_ENTRY>())).WimType as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIM_PROVIDER_OVERLAY_ENTRY),
            "::",
            stringify!(WimType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIM_PROVIDER_OVERLAY_ENTRY>())).WimIndex as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIM_PROVIDER_OVERLAY_ENTRY),
            "::",
            stringify!(WimIndex)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_WIM_PROVIDER_OVERLAY_ENTRY>())).Flags as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_WIM_PROVIDER_OVERLAY_ENTRY),
            "::",
            stringify!(Flags)
        )
    );
}
pub type WIM_PROVIDER_OVERLAY_ENTRY = _WIM_PROVIDER_OVERLAY_ENTRY;
pub type PWIM_PROVIDER_OVERLAY_ENTRY = *mut _WIM_PROVIDER_OVERLAY_ENTRY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_PROVIDER_EXTERNAL_INFO_V0 {
    pub Version: DWORD,
    pub Algorithm: DWORD,
}
#[test]
fn bindgen_test_layout__FILE_PROVIDER_EXTERNAL_INFO_V0() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_PROVIDER_EXTERNAL_INFO_V0>(),
        8usize,
        concat!("Size of: ", stringify!(_FILE_PROVIDER_EXTERNAL_INFO_V0))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_PROVIDER_EXTERNAL_INFO_V0>(),
        4usize,
        concat!("Alignment of ", stringify!(_FILE_PROVIDER_EXTERNAL_INFO_V0))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_PROVIDER_EXTERNAL_INFO_V0>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_PROVIDER_EXTERNAL_INFO_V0),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_PROVIDER_EXTERNAL_INFO_V0>())).Algorithm as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_PROVIDER_EXTERNAL_INFO_V0),
            "::",
            stringify!(Algorithm)
        )
    );
}
pub type FILE_PROVIDER_EXTERNAL_INFO_V0 = _FILE_PROVIDER_EXTERNAL_INFO_V0;
pub type PFILE_PROVIDER_EXTERNAL_INFO_V0 = *mut _FILE_PROVIDER_EXTERNAL_INFO_V0;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FILE_PROVIDER_EXTERNAL_INFO_V1 {
    pub Version: DWORD,
    pub Algorithm: DWORD,
    pub Flags: DWORD,
}
#[test]
fn bindgen_test_layout__FILE_PROVIDER_EXTERNAL_INFO_V1() {
    assert_eq!(
        ::std::mem::size_of::<_FILE_PROVIDER_EXTERNAL_INFO_V1>(),
        12usize,
        concat!("Size of: ", stringify!(_FILE_PROVIDER_EXTERNAL_INFO_V1))
    );
    assert_eq!(
        ::std::mem::align_of::<_FILE_PROVIDER_EXTERNAL_INFO_V1>(),
        4usize,
        concat!("Alignment of ", stringify!(_FILE_PROVIDER_EXTERNAL_INFO_V1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_PROVIDER_EXTERNAL_INFO_V1>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_PROVIDER_EXTERNAL_INFO_V1),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_PROVIDER_EXTERNAL_INFO_V1>())).Algorithm as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_PROVIDER_EXTERNAL_INFO_V1),
            "::",
            stringify!(Algorithm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_FILE_PROVIDER_EXTERNAL_INFO_V1>())).Flags as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FILE_PROVIDER_EXTERNAL_INFO_V1),
            "::",
            stringify!(Flags)
        )
    );
}
pub type FILE_PROVIDER_EXTERNAL_INFO_V1 = _FILE_PROVIDER_EXTERNAL_INFO_V1;
pub type PFILE_PROVIDER_EXTERNAL_INFO_V1 = *mut _FILE_PROVIDER_EXTERNAL_INFO_V1;
pub type FILE_PROVIDER_EXTERNAL_INFO = FILE_PROVIDER_EXTERNAL_INFO_V1;
pub type PFILE_PROVIDER_EXTERNAL_INFO = PFILE_PROVIDER_EXTERNAL_INFO_V1;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CONTAINER_VOLUME_STATE {
    pub Flags: DWORD,
}
#[test]
fn bindgen_test_layout__CONTAINER_VOLUME_STATE() {
    assert_eq!(
        ::std::mem::size_of::<_CONTAINER_VOLUME_STATE>(),
        4usize,
        concat!("Size of: ", stringify!(_CONTAINER_VOLUME_STATE))
    );
    assert_eq!(
        ::std::mem::align_of::<_CONTAINER_VOLUME_STATE>(),
        4usize,
        concat!("Alignment of ", stringify!(_CONTAINER_VOLUME_STATE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CONTAINER_VOLUME_STATE>())).Flags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTAINER_VOLUME_STATE),
            "::",
            stringify!(Flags)
        )
    );
}
pub type CONTAINER_VOLUME_STATE = _CONTAINER_VOLUME_STATE;
pub type PCONTAINER_VOLUME_STATE = *mut _CONTAINER_VOLUME_STATE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CONTAINER_ROOT_INFO_INPUT {
    pub Flags: DWORD,
}
#[test]
fn bindgen_test_layout__CONTAINER_ROOT_INFO_INPUT() {
    assert_eq!(
        ::std::mem::size_of::<_CONTAINER_ROOT_INFO_INPUT>(),
        4usize,
        concat!("Size of: ", stringify!(_CONTAINER_ROOT_INFO_INPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_CONTAINER_ROOT_INFO_INPUT>(),
        4usize,
        concat!("Alignment of ", stringify!(_CONTAINER_ROOT_INFO_INPUT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONTAINER_ROOT_INFO_INPUT>())).Flags as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTAINER_ROOT_INFO_INPUT),
            "::",
            stringify!(Flags)
        )
    );
}
pub type CONTAINER_ROOT_INFO_INPUT = _CONTAINER_ROOT_INFO_INPUT;
pub type PCONTAINER_ROOT_INFO_INPUT = *mut _CONTAINER_ROOT_INFO_INPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CONTAINER_ROOT_INFO_OUTPUT {
    pub ContainerRootIdLength: WORD,
    pub ContainerRootId: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout__CONTAINER_ROOT_INFO_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_CONTAINER_ROOT_INFO_OUTPUT>(),
        4usize,
        concat!("Size of: ", stringify!(_CONTAINER_ROOT_INFO_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_CONTAINER_ROOT_INFO_OUTPUT>(),
        2usize,
        concat!("Alignment of ", stringify!(_CONTAINER_ROOT_INFO_OUTPUT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONTAINER_ROOT_INFO_OUTPUT>())).ContainerRootIdLength
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTAINER_ROOT_INFO_OUTPUT),
            "::",
            stringify!(ContainerRootIdLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CONTAINER_ROOT_INFO_OUTPUT>())).ContainerRootId as *const _
                as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_CONTAINER_ROOT_INFO_OUTPUT),
            "::",
            stringify!(ContainerRootId)
        )
    );
}
pub type CONTAINER_ROOT_INFO_OUTPUT = _CONTAINER_ROOT_INFO_OUTPUT;
pub type PCONTAINER_ROOT_INFO_OUTPUT = *mut _CONTAINER_ROOT_INFO_OUTPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _VIRTUALIZATION_INSTANCE_INFO_INPUT {
    pub NumberOfWorkerThreads: DWORD,
    pub Flags: DWORD,
}
#[test]
fn bindgen_test_layout__VIRTUALIZATION_INSTANCE_INFO_INPUT() {
    assert_eq!(
        ::std::mem::size_of::<_VIRTUALIZATION_INSTANCE_INFO_INPUT>(),
        8usize,
        concat!("Size of: ", stringify!(_VIRTUALIZATION_INSTANCE_INFO_INPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_VIRTUALIZATION_INSTANCE_INFO_INPUT>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_VIRTUALIZATION_INSTANCE_INFO_INPUT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_VIRTUALIZATION_INSTANCE_INFO_INPUT>())).NumberOfWorkerThreads
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIRTUALIZATION_INSTANCE_INFO_INPUT),
            "::",
            stringify!(NumberOfWorkerThreads)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_VIRTUALIZATION_INSTANCE_INFO_INPUT>())).Flags as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIRTUALIZATION_INSTANCE_INFO_INPUT),
            "::",
            stringify!(Flags)
        )
    );
}
pub type VIRTUALIZATION_INSTANCE_INFO_INPUT = _VIRTUALIZATION_INSTANCE_INFO_INPUT;
pub type PVIRTUALIZATION_INSTANCE_INFO_INPUT = *mut _VIRTUALIZATION_INSTANCE_INFO_INPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _VIRTUALIZATION_INSTANCE_INFO_INPUT_EX {
    pub HeaderSize: WORD,
    pub Flags: DWORD,
    pub NotificationInfoSize: DWORD,
    pub NotificationInfoOffset: WORD,
    pub ProviderMajorVersion: WORD,
}
#[test]
fn bindgen_test_layout__VIRTUALIZATION_INSTANCE_INFO_INPUT_EX() {
    assert_eq!(
        ::std::mem::size_of::<_VIRTUALIZATION_INSTANCE_INFO_INPUT_EX>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_VIRTUALIZATION_INSTANCE_INFO_INPUT_EX)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_VIRTUALIZATION_INSTANCE_INFO_INPUT_EX>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_VIRTUALIZATION_INSTANCE_INFO_INPUT_EX)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_VIRTUALIZATION_INSTANCE_INFO_INPUT_EX>())).HeaderSize
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIRTUALIZATION_INSTANCE_INFO_INPUT_EX),
            "::",
            stringify!(HeaderSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_VIRTUALIZATION_INSTANCE_INFO_INPUT_EX>())).Flags as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIRTUALIZATION_INSTANCE_INFO_INPUT_EX),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_VIRTUALIZATION_INSTANCE_INFO_INPUT_EX>())).NotificationInfoSize
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIRTUALIZATION_INSTANCE_INFO_INPUT_EX),
            "::",
            stringify!(NotificationInfoSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_VIRTUALIZATION_INSTANCE_INFO_INPUT_EX>()))
                .NotificationInfoOffset as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIRTUALIZATION_INSTANCE_INFO_INPUT_EX),
            "::",
            stringify!(NotificationInfoOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_VIRTUALIZATION_INSTANCE_INFO_INPUT_EX>())).ProviderMajorVersion
                as *const _ as usize
        },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIRTUALIZATION_INSTANCE_INFO_INPUT_EX),
            "::",
            stringify!(ProviderMajorVersion)
        )
    );
}
pub type VIRTUALIZATION_INSTANCE_INFO_INPUT_EX = _VIRTUALIZATION_INSTANCE_INFO_INPUT_EX;
pub type PVIRTUALIZATION_INSTANCE_INFO_INPUT_EX = *mut _VIRTUALIZATION_INSTANCE_INFO_INPUT_EX;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _VIRTUALIZATION_INSTANCE_INFO_OUTPUT {
    pub VirtualizationInstanceID: GUID,
}
#[test]
fn bindgen_test_layout__VIRTUALIZATION_INSTANCE_INFO_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_VIRTUALIZATION_INSTANCE_INFO_OUTPUT>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_VIRTUALIZATION_INSTANCE_INFO_OUTPUT)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_VIRTUALIZATION_INSTANCE_INFO_OUTPUT>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_VIRTUALIZATION_INSTANCE_INFO_OUTPUT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_VIRTUALIZATION_INSTANCE_INFO_OUTPUT>()))
                .VirtualizationInstanceID as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_VIRTUALIZATION_INSTANCE_INFO_OUTPUT),
            "::",
            stringify!(VirtualizationInstanceID)
        )
    );
}
pub type VIRTUALIZATION_INSTANCE_INFO_OUTPUT = _VIRTUALIZATION_INSTANCE_INFO_OUTPUT;
pub type PVIRTUALIZATION_INSTANCE_INFO_OUTPUT = *mut _VIRTUALIZATION_INSTANCE_INFO_OUTPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _GET_FILTER_FILE_IDENTIFIER_INPUT {
    pub AltitudeLength: WORD,
    pub Altitude: [WCHAR; 1usize],
}
#[test]
fn bindgen_test_layout__GET_FILTER_FILE_IDENTIFIER_INPUT() {
    assert_eq!(
        ::std::mem::size_of::<_GET_FILTER_FILE_IDENTIFIER_INPUT>(),
        4usize,
        concat!("Size of: ", stringify!(_GET_FILTER_FILE_IDENTIFIER_INPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_GET_FILTER_FILE_IDENTIFIER_INPUT>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(_GET_FILTER_FILE_IDENTIFIER_INPUT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GET_FILTER_FILE_IDENTIFIER_INPUT>())).AltitudeLength as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_FILTER_FILE_IDENTIFIER_INPUT),
            "::",
            stringify!(AltitudeLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GET_FILTER_FILE_IDENTIFIER_INPUT>())).Altitude as *const _
                as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_FILTER_FILE_IDENTIFIER_INPUT),
            "::",
            stringify!(Altitude)
        )
    );
}
pub type GET_FILTER_FILE_IDENTIFIER_INPUT = _GET_FILTER_FILE_IDENTIFIER_INPUT;
pub type PGET_FILTER_FILE_IDENTIFIER_INPUT = *mut _GET_FILTER_FILE_IDENTIFIER_INPUT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _GET_FILTER_FILE_IDENTIFIER_OUTPUT {
    pub FilterFileIdentifierLength: WORD,
    pub FilterFileIdentifier: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout__GET_FILTER_FILE_IDENTIFIER_OUTPUT() {
    assert_eq!(
        ::std::mem::size_of::<_GET_FILTER_FILE_IDENTIFIER_OUTPUT>(),
        4usize,
        concat!("Size of: ", stringify!(_GET_FILTER_FILE_IDENTIFIER_OUTPUT))
    );
    assert_eq!(
        ::std::mem::align_of::<_GET_FILTER_FILE_IDENTIFIER_OUTPUT>(),
        2usize,
        concat!(
            "Alignment of ",
            stringify!(_GET_FILTER_FILE_IDENTIFIER_OUTPUT)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GET_FILTER_FILE_IDENTIFIER_OUTPUT>()))
                .FilterFileIdentifierLength as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_FILTER_FILE_IDENTIFIER_OUTPUT),
            "::",
            stringify!(FilterFileIdentifierLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GET_FILTER_FILE_IDENTIFIER_OUTPUT>())).FilterFileIdentifier
                as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_GET_FILTER_FILE_IDENTIFIER_OUTPUT),
            "::",
            stringify!(FilterFileIdentifier)
        )
    );
}
pub type GET_FILTER_FILE_IDENTIFIER_OUTPUT = _GET_FILTER_FILE_IDENTIFIER_OUTPUT;
pub type PGET_FILTER_FILE_IDENTIFIER_OUTPUT = *mut _GET_FILTER_FILE_IDENTIFIER_OUTPUT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _DISK_EXTENT {
    pub DiskNumber: DWORD,
    pub StartingOffset: LARGE_INTEGER,
    pub ExtentLength: LARGE_INTEGER,
}
#[test]
fn bindgen_test_layout__DISK_EXTENT() {
    assert_eq!(
        ::std::mem::size_of::<_DISK_EXTENT>(),
        24usize,
        concat!("Size of: ", stringify!(_DISK_EXTENT))
    );
    assert_eq!(
        ::std::mem::align_of::<_DISK_EXTENT>(),
        8usize,
        concat!("Alignment of ", stringify!(_DISK_EXTENT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_EXTENT>())).DiskNumber as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_EXTENT),
            "::",
            stringify!(DiskNumber)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_EXTENT>())).StartingOffset as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_EXTENT),
            "::",
            stringify!(StartingOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DISK_EXTENT>())).ExtentLength as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DISK_EXTENT),
            "::",
            stringify!(ExtentLength)
        )
    );
}
pub type DISK_EXTENT = _DISK_EXTENT;
pub type PDISK_EXTENT = *mut _DISK_EXTENT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _VOLUME_DISK_EXTENTS {
    pub NumberOfDiskExtents: DWORD,
    pub Extents: [DISK_EXTENT; 1usize],
}
#[test]
fn bindgen_test_layout__VOLUME_DISK_EXTENTS() {
    assert_eq!(
        ::std::mem::size_of::<_VOLUME_DISK_EXTENTS>(),
        32usize,
        concat!("Size of: ", stringify!(_VOLUME_DISK_EXTENTS))
    );
    assert_eq!(
        ::std::mem::align_of::<_VOLUME_DISK_EXTENTS>(),
        8usize,
        concat!("Alignment of ", stringify!(_VOLUME_DISK_EXTENTS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_VOLUME_DISK_EXTENTS>())).NumberOfDiskExtents as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_VOLUME_DISK_EXTENTS),
            "::",
            stringify!(NumberOfDiskExtents)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_VOLUME_DISK_EXTENTS>())).Extents as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_VOLUME_DISK_EXTENTS),
            "::",
            stringify!(Extents)
        )
    );
}
pub type VOLUME_DISK_EXTENTS = _VOLUME_DISK_EXTENTS;
pub type PVOLUME_DISK_EXTENTS = *mut _VOLUME_DISK_EXTENTS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _VOLUME_GET_GPT_ATTRIBUTES_INFORMATION {
    pub GptAttributes: DWORDLONG,
}
#[test]
fn bindgen_test_layout__VOLUME_GET_GPT_ATTRIBUTES_INFORMATION() {
    assert_eq!(
        ::std::mem::size_of::<_VOLUME_GET_GPT_ATTRIBUTES_INFORMATION>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_VOLUME_GET_GPT_ATTRIBUTES_INFORMATION)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_VOLUME_GET_GPT_ATTRIBUTES_INFORMATION>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_VOLUME_GET_GPT_ATTRIBUTES_INFORMATION)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_VOLUME_GET_GPT_ATTRIBUTES_INFORMATION>())).GptAttributes
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_VOLUME_GET_GPT_ATTRIBUTES_INFORMATION),
            "::",
            stringify!(GptAttributes)
        )
    );
}
pub type VOLUME_GET_GPT_ATTRIBUTES_INFORMATION = _VOLUME_GET_GPT_ATTRIBUTES_INFORMATION;
pub type PVOLUME_GET_GPT_ATTRIBUTES_INFORMATION = *mut _VOLUME_GET_GPT_ATTRIBUTES_INFORMATION;
pub type PIO_IRP_EXT_PROCESS_TRACKED_OFFSET_CALLBACK = ::std::option::Option<
    unsafe extern "C" fn(
        SourceContext: *mut _IO_IRP_EXT_TRACK_OFFSET_HEADER,
        TargetContext: *mut _IO_IRP_EXT_TRACK_OFFSET_HEADER,
        RelativeOffset: LONGLONG,
    ),
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IO_IRP_EXT_TRACK_OFFSET_HEADER {
    pub Validation: WORD,
    pub Flags: WORD,
    pub TrackedOffsetCallback: PIO_IRP_EXT_PROCESS_TRACKED_OFFSET_CALLBACK,
}
#[test]
fn bindgen_test_layout__IO_IRP_EXT_TRACK_OFFSET_HEADER() {
    assert_eq!(
        ::std::mem::size_of::<_IO_IRP_EXT_TRACK_OFFSET_HEADER>(),
        16usize,
        concat!("Size of: ", stringify!(_IO_IRP_EXT_TRACK_OFFSET_HEADER))
    );
    assert_eq!(
        ::std::mem::align_of::<_IO_IRP_EXT_TRACK_OFFSET_HEADER>(),
        8usize,
        concat!("Alignment of ", stringify!(_IO_IRP_EXT_TRACK_OFFSET_HEADER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IO_IRP_EXT_TRACK_OFFSET_HEADER>())).Validation as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_IRP_EXT_TRACK_OFFSET_HEADER),
            "::",
            stringify!(Validation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IO_IRP_EXT_TRACK_OFFSET_HEADER>())).Flags as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_IRP_EXT_TRACK_OFFSET_HEADER),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_IO_IRP_EXT_TRACK_OFFSET_HEADER>())).TrackedOffsetCallback
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_IRP_EXT_TRACK_OFFSET_HEADER),
            "::",
            stringify!(TrackedOffsetCallback)
        )
    );
}
pub type IO_IRP_EXT_TRACK_OFFSET_HEADER = _IO_IRP_EXT_TRACK_OFFSET_HEADER;
pub type PIO_IRP_EXT_TRACK_OFFSET_HEADER = *mut _IO_IRP_EXT_TRACK_OFFSET_HEADER;
pub type UWORD = WORD;
extern "C" {
    pub static GUID_DEVINTERFACE_SMARTCARD_READER: GUID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCARD_IO_REQUEST {
    pub dwProtocol: DWORD,
    pub cbPciLength: DWORD,
}
#[test]
fn bindgen_test_layout__SCARD_IO_REQUEST() {
    assert_eq!(
        ::std::mem::size_of::<_SCARD_IO_REQUEST>(),
        8usize,
        concat!("Size of: ", stringify!(_SCARD_IO_REQUEST))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCARD_IO_REQUEST>(),
        4usize,
        concat!("Alignment of ", stringify!(_SCARD_IO_REQUEST))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCARD_IO_REQUEST>())).dwProtocol as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCARD_IO_REQUEST),
            "::",
            stringify!(dwProtocol)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCARD_IO_REQUEST>())).cbPciLength as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCARD_IO_REQUEST),
            "::",
            stringify!(cbPciLength)
        )
    );
}
pub type SCARD_IO_REQUEST = _SCARD_IO_REQUEST;
pub type PSCARD_IO_REQUEST = *mut _SCARD_IO_REQUEST;
pub type LPSCARD_IO_REQUEST = *mut _SCARD_IO_REQUEST;
pub type LPCSCARD_IO_REQUEST = *const SCARD_IO_REQUEST;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCARD_T0_COMMAND {
    pub bCla: BYTE,
    pub bIns: BYTE,
    pub bP1: BYTE,
    pub bP2: BYTE,
    pub bP3: BYTE,
}
#[test]
fn bindgen_test_layout__SCARD_T0_COMMAND() {
    assert_eq!(
        ::std::mem::size_of::<_SCARD_T0_COMMAND>(),
        5usize,
        concat!("Size of: ", stringify!(_SCARD_T0_COMMAND))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCARD_T0_COMMAND>(),
        1usize,
        concat!("Alignment of ", stringify!(_SCARD_T0_COMMAND))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCARD_T0_COMMAND>())).bCla as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCARD_T0_COMMAND),
            "::",
            stringify!(bCla)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCARD_T0_COMMAND>())).bIns as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCARD_T0_COMMAND),
            "::",
            stringify!(bIns)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCARD_T0_COMMAND>())).bP1 as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCARD_T0_COMMAND),
            "::",
            stringify!(bP1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCARD_T0_COMMAND>())).bP2 as *const _ as usize },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCARD_T0_COMMAND),
            "::",
            stringify!(bP2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCARD_T0_COMMAND>())).bP3 as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCARD_T0_COMMAND),
            "::",
            stringify!(bP3)
        )
    );
}
pub type SCARD_T0_COMMAND = _SCARD_T0_COMMAND;
pub type LPSCARD_T0_COMMAND = *mut _SCARD_T0_COMMAND;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _SCARD_T0_REQUEST {
    pub ioRequest: SCARD_IO_REQUEST,
    pub bSw1: BYTE,
    pub bSw2: BYTE,
    pub __bindgen_anon_1: _SCARD_T0_REQUEST__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _SCARD_T0_REQUEST__bindgen_ty_1 {
    pub CmdBytes: SCARD_T0_COMMAND,
    pub rgbHeader: [BYTE; 5usize],
    _bindgen_union_align: [u8; 5usize],
}
#[test]
fn bindgen_test_layout__SCARD_T0_REQUEST__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_SCARD_T0_REQUEST__bindgen_ty_1>(),
        5usize,
        concat!("Size of: ", stringify!(_SCARD_T0_REQUEST__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCARD_T0_REQUEST__bindgen_ty_1>(),
        1usize,
        concat!("Alignment of ", stringify!(_SCARD_T0_REQUEST__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCARD_T0_REQUEST__bindgen_ty_1>())).CmdBytes as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCARD_T0_REQUEST__bindgen_ty_1),
            "::",
            stringify!(CmdBytes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SCARD_T0_REQUEST__bindgen_ty_1>())).rgbHeader as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCARD_T0_REQUEST__bindgen_ty_1),
            "::",
            stringify!(rgbHeader)
        )
    );
}
#[test]
fn bindgen_test_layout__SCARD_T0_REQUEST() {
    assert_eq!(
        ::std::mem::size_of::<_SCARD_T0_REQUEST>(),
        16usize,
        concat!("Size of: ", stringify!(_SCARD_T0_REQUEST))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCARD_T0_REQUEST>(),
        4usize,
        concat!("Alignment of ", stringify!(_SCARD_T0_REQUEST))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCARD_T0_REQUEST>())).ioRequest as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCARD_T0_REQUEST),
            "::",
            stringify!(ioRequest)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCARD_T0_REQUEST>())).bSw1 as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCARD_T0_REQUEST),
            "::",
            stringify!(bSw1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCARD_T0_REQUEST>())).bSw2 as *const _ as usize },
        9usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCARD_T0_REQUEST),
            "::",
            stringify!(bSw2)
        )
    );
}
pub type SCARD_T0_REQUEST = _SCARD_T0_REQUEST;
pub type PSCARD_T0_REQUEST = *mut SCARD_T0_REQUEST;
pub type LPSCARD_T0_REQUEST = *mut SCARD_T0_REQUEST;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SCARD_T1_REQUEST {
    pub ioRequest: SCARD_IO_REQUEST,
}
#[test]
fn bindgen_test_layout__SCARD_T1_REQUEST() {
    assert_eq!(
        ::std::mem::size_of::<_SCARD_T1_REQUEST>(),
        8usize,
        concat!("Size of: ", stringify!(_SCARD_T1_REQUEST))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCARD_T1_REQUEST>(),
        4usize,
        concat!("Alignment of ", stringify!(_SCARD_T1_REQUEST))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCARD_T1_REQUEST>())).ioRequest as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCARD_T1_REQUEST),
            "::",
            stringify!(ioRequest)
        )
    );
}
pub type SCARD_T1_REQUEST = _SCARD_T1_REQUEST;
pub type PSCARD_T1_REQUEST = *mut SCARD_T1_REQUEST;
pub type LPSCARD_T1_REQUEST = *mut SCARD_T1_REQUEST;
pub type LPCBYTE = *const BYTE;
extern "C" {
    pub static g_rgSCardT0Pci: SCARD_IO_REQUEST;
}
extern "C" {
    pub static g_rgSCardT1Pci: SCARD_IO_REQUEST;
}
extern "C" {
    pub static g_rgSCardRawPci: SCARD_IO_REQUEST;
}
pub type SCARDCONTEXT = ULONG_PTR;
pub type PSCARDCONTEXT = *mut SCARDCONTEXT;
pub type LPSCARDCONTEXT = *mut SCARDCONTEXT;
pub type SCARDHANDLE = ULONG_PTR;
pub type PSCARDHANDLE = *mut SCARDHANDLE;
pub type LPSCARDHANDLE = *mut SCARDHANDLE;
extern "C" {
    pub fn SCardEstablishContext(
        dwScope: DWORD,
        pvReserved1: LPCVOID,
        pvReserved2: LPCVOID,
        phContext: LPSCARDCONTEXT,
    ) -> LONG;
}
extern "C" {
    pub fn SCardReleaseContext(hContext: SCARDCONTEXT) -> LONG;
}
extern "C" {
    pub fn SCardIsValidContext(hContext: SCARDCONTEXT) -> LONG;
}
extern "C" {
    pub fn SCardListReaderGroupsA(
        hContext: SCARDCONTEXT,
        mszGroups: LPSTR,
        pcchGroups: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardListReaderGroupsW(
        hContext: SCARDCONTEXT,
        mszGroups: LPWSTR,
        pcchGroups: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardListReadersA(
        hContext: SCARDCONTEXT,
        mszGroups: LPCSTR,
        mszReaders: LPSTR,
        pcchReaders: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardListReadersW(
        hContext: SCARDCONTEXT,
        mszGroups: LPCWSTR,
        mszReaders: LPWSTR,
        pcchReaders: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardListCardsA(
        hContext: SCARDCONTEXT,
        pbAtr: LPCBYTE,
        rgquidInterfaces: LPCGUID,
        cguidInterfaceCount: DWORD,
        mszCards: *mut CHAR,
        pcchCards: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardListCardsW(
        hContext: SCARDCONTEXT,
        pbAtr: LPCBYTE,
        rgquidInterfaces: LPCGUID,
        cguidInterfaceCount: DWORD,
        mszCards: *mut WCHAR,
        pcchCards: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardListInterfacesA(
        hContext: SCARDCONTEXT,
        szCard: LPCSTR,
        pguidInterfaces: LPGUID,
        pcguidInterfaces: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardListInterfacesW(
        hContext: SCARDCONTEXT,
        szCard: LPCWSTR,
        pguidInterfaces: LPGUID,
        pcguidInterfaces: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardGetProviderIdA(
        hContext: SCARDCONTEXT,
        szCard: LPCSTR,
        pguidProviderId: LPGUID,
    ) -> LONG;
}
extern "C" {
    pub fn SCardGetProviderIdW(
        hContext: SCARDCONTEXT,
        szCard: LPCWSTR,
        pguidProviderId: LPGUID,
    ) -> LONG;
}
extern "C" {
    pub fn SCardGetCardTypeProviderNameA(
        hContext: SCARDCONTEXT,
        szCardName: LPCSTR,
        dwProviderId: DWORD,
        szProvider: *mut CHAR,
        pcchProvider: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardGetCardTypeProviderNameW(
        hContext: SCARDCONTEXT,
        szCardName: LPCWSTR,
        dwProviderId: DWORD,
        szProvider: *mut WCHAR,
        pcchProvider: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardIntroduceReaderGroupA(hContext: SCARDCONTEXT, szGroupName: LPCSTR) -> LONG;
}
extern "C" {
    pub fn SCardIntroduceReaderGroupW(hContext: SCARDCONTEXT, szGroupName: LPCWSTR) -> LONG;
}
extern "C" {
    pub fn SCardForgetReaderGroupA(hContext: SCARDCONTEXT, szGroupName: LPCSTR) -> LONG;
}
extern "C" {
    pub fn SCardForgetReaderGroupW(hContext: SCARDCONTEXT, szGroupName: LPCWSTR) -> LONG;
}
extern "C" {
    pub fn SCardIntroduceReaderA(
        hContext: SCARDCONTEXT,
        szReaderName: LPCSTR,
        szDeviceName: LPCSTR,
    ) -> LONG;
}
extern "C" {
    pub fn SCardIntroduceReaderW(
        hContext: SCARDCONTEXT,
        szReaderName: LPCWSTR,
        szDeviceName: LPCWSTR,
    ) -> LONG;
}
extern "C" {
    pub fn SCardForgetReaderA(hContext: SCARDCONTEXT, szReaderName: LPCSTR) -> LONG;
}
extern "C" {
    pub fn SCardForgetReaderW(hContext: SCARDCONTEXT, szReaderName: LPCWSTR) -> LONG;
}
extern "C" {
    pub fn SCardAddReaderToGroupA(
        hContext: SCARDCONTEXT,
        szReaderName: LPCSTR,
        szGroupName: LPCSTR,
    ) -> LONG;
}
extern "C" {
    pub fn SCardAddReaderToGroupW(
        hContext: SCARDCONTEXT,
        szReaderName: LPCWSTR,
        szGroupName: LPCWSTR,
    ) -> LONG;
}
extern "C" {
    pub fn SCardRemoveReaderFromGroupA(
        hContext: SCARDCONTEXT,
        szReaderName: LPCSTR,
        szGroupName: LPCSTR,
    ) -> LONG;
}
extern "C" {
    pub fn SCardRemoveReaderFromGroupW(
        hContext: SCARDCONTEXT,
        szReaderName: LPCWSTR,
        szGroupName: LPCWSTR,
    ) -> LONG;
}
extern "C" {
    pub fn SCardIntroduceCardTypeA(
        hContext: SCARDCONTEXT,
        szCardName: LPCSTR,
        pguidPrimaryProvider: LPCGUID,
        rgguidInterfaces: LPCGUID,
        dwInterfaceCount: DWORD,
        pbAtr: LPCBYTE,
        pbAtrMask: LPCBYTE,
        cbAtrLen: DWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardIntroduceCardTypeW(
        hContext: SCARDCONTEXT,
        szCardName: LPCWSTR,
        pguidPrimaryProvider: LPCGUID,
        rgguidInterfaces: LPCGUID,
        dwInterfaceCount: DWORD,
        pbAtr: LPCBYTE,
        pbAtrMask: LPCBYTE,
        cbAtrLen: DWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardSetCardTypeProviderNameA(
        hContext: SCARDCONTEXT,
        szCardName: LPCSTR,
        dwProviderId: DWORD,
        szProvider: LPCSTR,
    ) -> LONG;
}
extern "C" {
    pub fn SCardSetCardTypeProviderNameW(
        hContext: SCARDCONTEXT,
        szCardName: LPCWSTR,
        dwProviderId: DWORD,
        szProvider: LPCWSTR,
    ) -> LONG;
}
extern "C" {
    pub fn SCardForgetCardTypeA(hContext: SCARDCONTEXT, szCardName: LPCSTR) -> LONG;
}
extern "C" {
    pub fn SCardForgetCardTypeW(hContext: SCARDCONTEXT, szCardName: LPCWSTR) -> LONG;
}
extern "C" {
    pub fn SCardFreeMemory(hContext: SCARDCONTEXT, pvMem: LPCVOID) -> LONG;
}
extern "C" {
    pub fn SCardAccessStartedEvent() -> HANDLE;
}
extern "C" {
    pub fn SCardReleaseStartedEvent();
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct SCARD_READERSTATEA {
    pub szReader: LPCSTR,
    pub pvUserData: LPVOID,
    pub dwCurrentState: DWORD,
    pub dwEventState: DWORD,
    pub cbAtr: DWORD,
    pub rgbAtr: [BYTE; 36usize],
}
#[test]
fn bindgen_test_layout_SCARD_READERSTATEA() {
    assert_eq!(
        ::std::mem::size_of::<SCARD_READERSTATEA>(),
        64usize,
        concat!("Size of: ", stringify!(SCARD_READERSTATEA))
    );
    assert_eq!(
        ::std::mem::align_of::<SCARD_READERSTATEA>(),
        8usize,
        concat!("Alignment of ", stringify!(SCARD_READERSTATEA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SCARD_READERSTATEA>())).szReader as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(SCARD_READERSTATEA),
            "::",
            stringify!(szReader)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SCARD_READERSTATEA>())).pvUserData as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(SCARD_READERSTATEA),
            "::",
            stringify!(pvUserData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SCARD_READERSTATEA>())).dwCurrentState as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(SCARD_READERSTATEA),
            "::",
            stringify!(dwCurrentState)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SCARD_READERSTATEA>())).dwEventState as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(SCARD_READERSTATEA),
            "::",
            stringify!(dwEventState)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SCARD_READERSTATEA>())).cbAtr as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(SCARD_READERSTATEA),
            "::",
            stringify!(cbAtr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SCARD_READERSTATEA>())).rgbAtr as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(SCARD_READERSTATEA),
            "::",
            stringify!(rgbAtr)
        )
    );
}
pub type PSCARD_READERSTATEA = *mut SCARD_READERSTATEA;
pub type LPSCARD_READERSTATEA = *mut SCARD_READERSTATEA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct SCARD_READERSTATEW {
    pub szReader: LPCWSTR,
    pub pvUserData: LPVOID,
    pub dwCurrentState: DWORD,
    pub dwEventState: DWORD,
    pub cbAtr: DWORD,
    pub rgbAtr: [BYTE; 36usize],
}
#[test]
fn bindgen_test_layout_SCARD_READERSTATEW() {
    assert_eq!(
        ::std::mem::size_of::<SCARD_READERSTATEW>(),
        64usize,
        concat!("Size of: ", stringify!(SCARD_READERSTATEW))
    );
    assert_eq!(
        ::std::mem::align_of::<SCARD_READERSTATEW>(),
        8usize,
        concat!("Alignment of ", stringify!(SCARD_READERSTATEW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SCARD_READERSTATEW>())).szReader as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(SCARD_READERSTATEW),
            "::",
            stringify!(szReader)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SCARD_READERSTATEW>())).pvUserData as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(SCARD_READERSTATEW),
            "::",
            stringify!(pvUserData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SCARD_READERSTATEW>())).dwCurrentState as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(SCARD_READERSTATEW),
            "::",
            stringify!(dwCurrentState)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SCARD_READERSTATEW>())).dwEventState as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(SCARD_READERSTATEW),
            "::",
            stringify!(dwEventState)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SCARD_READERSTATEW>())).cbAtr as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(SCARD_READERSTATEW),
            "::",
            stringify!(cbAtr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SCARD_READERSTATEW>())).rgbAtr as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(SCARD_READERSTATEW),
            "::",
            stringify!(rgbAtr)
        )
    );
}
pub type PSCARD_READERSTATEW = *mut SCARD_READERSTATEW;
pub type LPSCARD_READERSTATEW = *mut SCARD_READERSTATEW;
pub type SCARD_READERSTATE = SCARD_READERSTATEA;
pub type PSCARD_READERSTATE = PSCARD_READERSTATEA;
pub type LPSCARD_READERSTATE = LPSCARD_READERSTATEA;
extern "C" {
    pub fn SCardLocateCardsA(
        hContext: SCARDCONTEXT,
        mszCards: LPCSTR,
        rgReaderStates: LPSCARD_READERSTATEA,
        cReaders: DWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardLocateCardsW(
        hContext: SCARDCONTEXT,
        mszCards: LPCWSTR,
        rgReaderStates: LPSCARD_READERSTATEW,
        cReaders: DWORD,
    ) -> LONG;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _SCARD_ATRMASK {
    pub cbAtr: DWORD,
    pub rgbAtr: [BYTE; 36usize],
    pub rgbMask: [BYTE; 36usize],
}
#[test]
fn bindgen_test_layout__SCARD_ATRMASK() {
    assert_eq!(
        ::std::mem::size_of::<_SCARD_ATRMASK>(),
        76usize,
        concat!("Size of: ", stringify!(_SCARD_ATRMASK))
    );
    assert_eq!(
        ::std::mem::align_of::<_SCARD_ATRMASK>(),
        4usize,
        concat!("Alignment of ", stringify!(_SCARD_ATRMASK))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCARD_ATRMASK>())).cbAtr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCARD_ATRMASK),
            "::",
            stringify!(cbAtr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCARD_ATRMASK>())).rgbAtr as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCARD_ATRMASK),
            "::",
            stringify!(rgbAtr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SCARD_ATRMASK>())).rgbMask as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_SCARD_ATRMASK),
            "::",
            stringify!(rgbMask)
        )
    );
}
pub type SCARD_ATRMASK = _SCARD_ATRMASK;
pub type PSCARD_ATRMASK = *mut _SCARD_ATRMASK;
pub type LPSCARD_ATRMASK = *mut _SCARD_ATRMASK;
extern "C" {
    pub fn SCardLocateCardsByATRA(
        hContext: SCARDCONTEXT,
        rgAtrMasks: LPSCARD_ATRMASK,
        cAtrs: DWORD,
        rgReaderStates: LPSCARD_READERSTATEA,
        cReaders: DWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardLocateCardsByATRW(
        hContext: SCARDCONTEXT,
        rgAtrMasks: LPSCARD_ATRMASK,
        cAtrs: DWORD,
        rgReaderStates: LPSCARD_READERSTATEW,
        cReaders: DWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardGetStatusChangeA(
        hContext: SCARDCONTEXT,
        dwTimeout: DWORD,
        rgReaderStates: LPSCARD_READERSTATEA,
        cReaders: DWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardGetStatusChangeW(
        hContext: SCARDCONTEXT,
        dwTimeout: DWORD,
        rgReaderStates: LPSCARD_READERSTATEW,
        cReaders: DWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardCancel(hContext: SCARDCONTEXT) -> LONG;
}
extern "C" {
    pub fn SCardConnectA(
        hContext: SCARDCONTEXT,
        szReader: LPCSTR,
        dwShareMode: DWORD,
        dwPreferredProtocols: DWORD,
        phCard: LPSCARDHANDLE,
        pdwActiveProtocol: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardConnectW(
        hContext: SCARDCONTEXT,
        szReader: LPCWSTR,
        dwShareMode: DWORD,
        dwPreferredProtocols: DWORD,
        phCard: LPSCARDHANDLE,
        pdwActiveProtocol: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardReconnect(
        hCard: SCARDHANDLE,
        dwShareMode: DWORD,
        dwPreferredProtocols: DWORD,
        dwInitialization: DWORD,
        pdwActiveProtocol: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardDisconnect(hCard: SCARDHANDLE, dwDisposition: DWORD) -> LONG;
}
extern "C" {
    pub fn SCardBeginTransaction(hCard: SCARDHANDLE) -> LONG;
}
extern "C" {
    pub fn SCardEndTransaction(hCard: SCARDHANDLE, dwDisposition: DWORD) -> LONG;
}
extern "C" {
    pub fn SCardCancelTransaction(hCard: SCARDHANDLE) -> LONG;
}
extern "C" {
    pub fn SCardState(
        hCard: SCARDHANDLE,
        pdwState: LPDWORD,
        pdwProtocol: LPDWORD,
        pbAtr: LPBYTE,
        pcbAtrLen: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardStatusA(
        hCard: SCARDHANDLE,
        mszReaderNames: LPSTR,
        pcchReaderLen: LPDWORD,
        pdwState: LPDWORD,
        pdwProtocol: LPDWORD,
        pbAtr: LPBYTE,
        pcbAtrLen: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardStatusW(
        hCard: SCARDHANDLE,
        mszReaderNames: LPWSTR,
        pcchReaderLen: LPDWORD,
        pdwState: LPDWORD,
        pdwProtocol: LPDWORD,
        pbAtr: LPBYTE,
        pcbAtrLen: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardTransmit(
        hCard: SCARDHANDLE,
        pioSendPci: LPCSCARD_IO_REQUEST,
        pbSendBuffer: LPCBYTE,
        cbSendLength: DWORD,
        pioRecvPci: LPSCARD_IO_REQUEST,
        pbRecvBuffer: LPBYTE,
        pcbRecvLength: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardGetTransmitCount(hCard: SCARDHANDLE, pcTransmitCount: LPDWORD) -> LONG;
}
extern "C" {
    pub fn SCardControl(
        hCard: SCARDHANDLE,
        dwControlCode: DWORD,
        lpInBuffer: LPCVOID,
        cbInBufferSize: DWORD,
        lpOutBuffer: LPVOID,
        cbOutBufferSize: DWORD,
        lpBytesReturned: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardGetAttrib(
        hCard: SCARDHANDLE,
        dwAttrId: DWORD,
        pbAttr: LPBYTE,
        pcbAttrLen: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardSetAttrib(
        hCard: SCARDHANDLE,
        dwAttrId: DWORD,
        pbAttr: LPCBYTE,
        cbAttrLen: DWORD,
    ) -> LONG;
}
pub type LPOCNCONNPROCA = ::std::option::Option<
    unsafe extern "C" fn(arg1: SCARDCONTEXT, arg2: LPSTR, arg3: LPSTR, arg4: PVOID) -> SCARDHANDLE,
>;
pub type LPOCNCONNPROCW = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: SCARDCONTEXT,
        arg2: LPWSTR,
        arg3: LPWSTR,
        arg4: PVOID,
    ) -> SCARDHANDLE,
>;
pub type LPOCNCHKPROC = ::std::option::Option<
    unsafe extern "C" fn(arg1: SCARDCONTEXT, arg2: SCARDHANDLE, arg3: PVOID) -> BOOL,
>;
pub type LPOCNDSCPROC =
    ::std::option::Option<unsafe extern "C" fn(arg1: SCARDCONTEXT, arg2: SCARDHANDLE, arg3: PVOID)>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OPENCARD_SEARCH_CRITERIAA {
    pub dwStructSize: DWORD,
    pub lpstrGroupNames: LPSTR,
    pub nMaxGroupNames: DWORD,
    pub rgguidInterfaces: LPCGUID,
    pub cguidInterfaces: DWORD,
    pub lpstrCardNames: LPSTR,
    pub nMaxCardNames: DWORD,
    pub lpfnCheck: LPOCNCHKPROC,
    pub lpfnConnect: LPOCNCONNPROCA,
    pub lpfnDisconnect: LPOCNDSCPROC,
    pub pvUserData: LPVOID,
    pub dwShareMode: DWORD,
    pub dwPreferredProtocols: DWORD,
}
#[test]
fn bindgen_test_layout_OPENCARD_SEARCH_CRITERIAA() {
    assert_eq!(
        ::std::mem::size_of::<OPENCARD_SEARCH_CRITERIAA>(),
        96usize,
        concat!("Size of: ", stringify!(OPENCARD_SEARCH_CRITERIAA))
    );
    assert_eq!(
        ::std::mem::align_of::<OPENCARD_SEARCH_CRITERIAA>(),
        8usize,
        concat!("Alignment of ", stringify!(OPENCARD_SEARCH_CRITERIAA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARD_SEARCH_CRITERIAA>())).dwStructSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARD_SEARCH_CRITERIAA),
            "::",
            stringify!(dwStructSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARD_SEARCH_CRITERIAA>())).lpstrGroupNames as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARD_SEARCH_CRITERIAA),
            "::",
            stringify!(lpstrGroupNames)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARD_SEARCH_CRITERIAA>())).nMaxGroupNames as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARD_SEARCH_CRITERIAA),
            "::",
            stringify!(nMaxGroupNames)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARD_SEARCH_CRITERIAA>())).rgguidInterfaces as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARD_SEARCH_CRITERIAA),
            "::",
            stringify!(rgguidInterfaces)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARD_SEARCH_CRITERIAA>())).cguidInterfaces as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARD_SEARCH_CRITERIAA),
            "::",
            stringify!(cguidInterfaces)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARD_SEARCH_CRITERIAA>())).lpstrCardNames as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARD_SEARCH_CRITERIAA),
            "::",
            stringify!(lpstrCardNames)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARD_SEARCH_CRITERIAA>())).nMaxCardNames as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARD_SEARCH_CRITERIAA),
            "::",
            stringify!(nMaxCardNames)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARD_SEARCH_CRITERIAA>())).lpfnCheck as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARD_SEARCH_CRITERIAA),
            "::",
            stringify!(lpfnCheck)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARD_SEARCH_CRITERIAA>())).lpfnConnect as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARD_SEARCH_CRITERIAA),
            "::",
            stringify!(lpfnConnect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARD_SEARCH_CRITERIAA>())).lpfnDisconnect as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARD_SEARCH_CRITERIAA),
            "::",
            stringify!(lpfnDisconnect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARD_SEARCH_CRITERIAA>())).pvUserData as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARD_SEARCH_CRITERIAA),
            "::",
            stringify!(pvUserData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARD_SEARCH_CRITERIAA>())).dwShareMode as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARD_SEARCH_CRITERIAA),
            "::",
            stringify!(dwShareMode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARD_SEARCH_CRITERIAA>())).dwPreferredProtocols as *const _
                as usize
        },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARD_SEARCH_CRITERIAA),
            "::",
            stringify!(dwPreferredProtocols)
        )
    );
}
pub type POPENCARD_SEARCH_CRITERIAA = *mut OPENCARD_SEARCH_CRITERIAA;
pub type LPOPENCARD_SEARCH_CRITERIAA = *mut OPENCARD_SEARCH_CRITERIAA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OPENCARD_SEARCH_CRITERIAW {
    pub dwStructSize: DWORD,
    pub lpstrGroupNames: LPWSTR,
    pub nMaxGroupNames: DWORD,
    pub rgguidInterfaces: LPCGUID,
    pub cguidInterfaces: DWORD,
    pub lpstrCardNames: LPWSTR,
    pub nMaxCardNames: DWORD,
    pub lpfnCheck: LPOCNCHKPROC,
    pub lpfnConnect: LPOCNCONNPROCW,
    pub lpfnDisconnect: LPOCNDSCPROC,
    pub pvUserData: LPVOID,
    pub dwShareMode: DWORD,
    pub dwPreferredProtocols: DWORD,
}
#[test]
fn bindgen_test_layout_OPENCARD_SEARCH_CRITERIAW() {
    assert_eq!(
        ::std::mem::size_of::<OPENCARD_SEARCH_CRITERIAW>(),
        96usize,
        concat!("Size of: ", stringify!(OPENCARD_SEARCH_CRITERIAW))
    );
    assert_eq!(
        ::std::mem::align_of::<OPENCARD_SEARCH_CRITERIAW>(),
        8usize,
        concat!("Alignment of ", stringify!(OPENCARD_SEARCH_CRITERIAW))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARD_SEARCH_CRITERIAW>())).dwStructSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARD_SEARCH_CRITERIAW),
            "::",
            stringify!(dwStructSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARD_SEARCH_CRITERIAW>())).lpstrGroupNames as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARD_SEARCH_CRITERIAW),
            "::",
            stringify!(lpstrGroupNames)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARD_SEARCH_CRITERIAW>())).nMaxGroupNames as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARD_SEARCH_CRITERIAW),
            "::",
            stringify!(nMaxGroupNames)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARD_SEARCH_CRITERIAW>())).rgguidInterfaces as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARD_SEARCH_CRITERIAW),
            "::",
            stringify!(rgguidInterfaces)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARD_SEARCH_CRITERIAW>())).cguidInterfaces as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARD_SEARCH_CRITERIAW),
            "::",
            stringify!(cguidInterfaces)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARD_SEARCH_CRITERIAW>())).lpstrCardNames as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARD_SEARCH_CRITERIAW),
            "::",
            stringify!(lpstrCardNames)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARD_SEARCH_CRITERIAW>())).nMaxCardNames as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARD_SEARCH_CRITERIAW),
            "::",
            stringify!(nMaxCardNames)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARD_SEARCH_CRITERIAW>())).lpfnCheck as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARD_SEARCH_CRITERIAW),
            "::",
            stringify!(lpfnCheck)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARD_SEARCH_CRITERIAW>())).lpfnConnect as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARD_SEARCH_CRITERIAW),
            "::",
            stringify!(lpfnConnect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARD_SEARCH_CRITERIAW>())).lpfnDisconnect as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARD_SEARCH_CRITERIAW),
            "::",
            stringify!(lpfnDisconnect)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARD_SEARCH_CRITERIAW>())).pvUserData as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARD_SEARCH_CRITERIAW),
            "::",
            stringify!(pvUserData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARD_SEARCH_CRITERIAW>())).dwShareMode as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARD_SEARCH_CRITERIAW),
            "::",
            stringify!(dwShareMode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARD_SEARCH_CRITERIAW>())).dwPreferredProtocols as *const _
                as usize
        },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARD_SEARCH_CRITERIAW),
            "::",
            stringify!(dwPreferredProtocols)
        )
    );
}
pub type POPENCARD_SEARCH_CRITERIAW = *mut OPENCARD_SEARCH_CRITERIAW;
pub type LPOPENCARD_SEARCH_CRITERIAW = *mut OPENCARD_SEARCH_CRITERIAW;
pub type OPENCARD_SEARCH_CRITERIA = OPENCARD_SEARCH_CRITERIAA;
pub type POPENCARD_SEARCH_CRITERIA = POPENCARD_SEARCH_CRITERIAA;
pub type LPOPENCARD_SEARCH_CRITERIA = LPOPENCARD_SEARCH_CRITERIAA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OPENCARDNAME_EXA {
    pub dwStructSize: DWORD,
    pub hSCardContext: SCARDCONTEXT,
    pub hwndOwner: HWND,
    pub dwFlags: DWORD,
    pub lpstrTitle: LPCSTR,
    pub lpstrSearchDesc: LPCSTR,
    pub hIcon: HICON,
    pub pOpenCardSearchCriteria: POPENCARD_SEARCH_CRITERIAA,
    pub lpfnConnect: LPOCNCONNPROCA,
    pub pvUserData: LPVOID,
    pub dwShareMode: DWORD,
    pub dwPreferredProtocols: DWORD,
    pub lpstrRdr: LPSTR,
    pub nMaxRdr: DWORD,
    pub lpstrCard: LPSTR,
    pub nMaxCard: DWORD,
    pub dwActiveProtocol: DWORD,
    pub hCardHandle: SCARDHANDLE,
}
#[test]
fn bindgen_test_layout_OPENCARDNAME_EXA() {
    assert_eq!(
        ::std::mem::size_of::<OPENCARDNAME_EXA>(),
        128usize,
        concat!("Size of: ", stringify!(OPENCARDNAME_EXA))
    );
    assert_eq!(
        ::std::mem::align_of::<OPENCARDNAME_EXA>(),
        8usize,
        concat!("Alignment of ", stringify!(OPENCARDNAME_EXA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAME_EXA>())).dwStructSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXA),
            "::",
            stringify!(dwStructSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAME_EXA>())).hSCardContext as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXA),
            "::",
            stringify!(hSCardContext)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAME_EXA>())).hwndOwner as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXA),
            "::",
            stringify!(hwndOwner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAME_EXA>())).dwFlags as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXA),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAME_EXA>())).lpstrTitle as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXA),
            "::",
            stringify!(lpstrTitle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARDNAME_EXA>())).lpstrSearchDesc as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXA),
            "::",
            stringify!(lpstrSearchDesc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAME_EXA>())).hIcon as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXA),
            "::",
            stringify!(hIcon)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARDNAME_EXA>())).pOpenCardSearchCriteria as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXA),
            "::",
            stringify!(pOpenCardSearchCriteria)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAME_EXA>())).lpfnConnect as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXA),
            "::",
            stringify!(lpfnConnect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAME_EXA>())).pvUserData as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXA),
            "::",
            stringify!(pvUserData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAME_EXA>())).dwShareMode as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXA),
            "::",
            stringify!(dwShareMode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARDNAME_EXA>())).dwPreferredProtocols as *const _ as usize
        },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXA),
            "::",
            stringify!(dwPreferredProtocols)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAME_EXA>())).lpstrRdr as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXA),
            "::",
            stringify!(lpstrRdr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAME_EXA>())).nMaxRdr as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXA),
            "::",
            stringify!(nMaxRdr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAME_EXA>())).lpstrCard as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXA),
            "::",
            stringify!(lpstrCard)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAME_EXA>())).nMaxCard as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXA),
            "::",
            stringify!(nMaxCard)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARDNAME_EXA>())).dwActiveProtocol as *const _ as usize
        },
        116usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXA),
            "::",
            stringify!(dwActiveProtocol)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAME_EXA>())).hCardHandle as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXA),
            "::",
            stringify!(hCardHandle)
        )
    );
}
pub type POPENCARDNAME_EXA = *mut OPENCARDNAME_EXA;
pub type LPOPENCARDNAME_EXA = *mut OPENCARDNAME_EXA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OPENCARDNAME_EXW {
    pub dwStructSize: DWORD,
    pub hSCardContext: SCARDCONTEXT,
    pub hwndOwner: HWND,
    pub dwFlags: DWORD,
    pub lpstrTitle: LPCWSTR,
    pub lpstrSearchDesc: LPCWSTR,
    pub hIcon: HICON,
    pub pOpenCardSearchCriteria: POPENCARD_SEARCH_CRITERIAW,
    pub lpfnConnect: LPOCNCONNPROCW,
    pub pvUserData: LPVOID,
    pub dwShareMode: DWORD,
    pub dwPreferredProtocols: DWORD,
    pub lpstrRdr: LPWSTR,
    pub nMaxRdr: DWORD,
    pub lpstrCard: LPWSTR,
    pub nMaxCard: DWORD,
    pub dwActiveProtocol: DWORD,
    pub hCardHandle: SCARDHANDLE,
}
#[test]
fn bindgen_test_layout_OPENCARDNAME_EXW() {
    assert_eq!(
        ::std::mem::size_of::<OPENCARDNAME_EXW>(),
        128usize,
        concat!("Size of: ", stringify!(OPENCARDNAME_EXW))
    );
    assert_eq!(
        ::std::mem::align_of::<OPENCARDNAME_EXW>(),
        8usize,
        concat!("Alignment of ", stringify!(OPENCARDNAME_EXW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAME_EXW>())).dwStructSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXW),
            "::",
            stringify!(dwStructSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAME_EXW>())).hSCardContext as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXW),
            "::",
            stringify!(hSCardContext)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAME_EXW>())).hwndOwner as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXW),
            "::",
            stringify!(hwndOwner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAME_EXW>())).dwFlags as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXW),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAME_EXW>())).lpstrTitle as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXW),
            "::",
            stringify!(lpstrTitle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARDNAME_EXW>())).lpstrSearchDesc as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXW),
            "::",
            stringify!(lpstrSearchDesc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAME_EXW>())).hIcon as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXW),
            "::",
            stringify!(hIcon)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARDNAME_EXW>())).pOpenCardSearchCriteria as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXW),
            "::",
            stringify!(pOpenCardSearchCriteria)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAME_EXW>())).lpfnConnect as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXW),
            "::",
            stringify!(lpfnConnect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAME_EXW>())).pvUserData as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXW),
            "::",
            stringify!(pvUserData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAME_EXW>())).dwShareMode as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXW),
            "::",
            stringify!(dwShareMode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARDNAME_EXW>())).dwPreferredProtocols as *const _ as usize
        },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXW),
            "::",
            stringify!(dwPreferredProtocols)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAME_EXW>())).lpstrRdr as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXW),
            "::",
            stringify!(lpstrRdr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAME_EXW>())).nMaxRdr as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXW),
            "::",
            stringify!(nMaxRdr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAME_EXW>())).lpstrCard as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXW),
            "::",
            stringify!(lpstrCard)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAME_EXW>())).nMaxCard as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXW),
            "::",
            stringify!(nMaxCard)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARDNAME_EXW>())).dwActiveProtocol as *const _ as usize
        },
        116usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXW),
            "::",
            stringify!(dwActiveProtocol)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAME_EXW>())).hCardHandle as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAME_EXW),
            "::",
            stringify!(hCardHandle)
        )
    );
}
pub type POPENCARDNAME_EXW = *mut OPENCARDNAME_EXW;
pub type LPOPENCARDNAME_EXW = *mut OPENCARDNAME_EXW;
pub type OPENCARDNAME_EX = OPENCARDNAME_EXA;
pub type POPENCARDNAME_EX = POPENCARDNAME_EXA;
pub type LPOPENCARDNAME_EX = LPOPENCARDNAME_EXA;
pub const READER_SEL_REQUEST_MATCH_TYPE_RSR_MATCH_TYPE_READER_AND_CONTAINER:
    READER_SEL_REQUEST_MATCH_TYPE = 1;
pub const READER_SEL_REQUEST_MATCH_TYPE_RSR_MATCH_TYPE_SERIAL_NUMBER:
    READER_SEL_REQUEST_MATCH_TYPE = 2;
pub const READER_SEL_REQUEST_MATCH_TYPE_RSR_MATCH_TYPE_ALL_CARDS: READER_SEL_REQUEST_MATCH_TYPE = 3;
pub type READER_SEL_REQUEST_MATCH_TYPE = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct READER_SEL_REQUEST {
    pub dwShareMode: DWORD,
    pub dwPreferredProtocols: DWORD,
    pub MatchType: READER_SEL_REQUEST_MATCH_TYPE,
    pub __bindgen_anon_1: READER_SEL_REQUEST__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union READER_SEL_REQUEST__bindgen_ty_1 {
    pub ReaderAndContainerParameter: READER_SEL_REQUEST__bindgen_ty_1__bindgen_ty_1,
    pub SerialNumberParameter: READER_SEL_REQUEST__bindgen_ty_1__bindgen_ty_2,
    _bindgen_union_align: [u32; 6usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct READER_SEL_REQUEST__bindgen_ty_1__bindgen_ty_1 {
    pub cbReaderNameOffset: DWORD,
    pub cchReaderNameLength: DWORD,
    pub cbContainerNameOffset: DWORD,
    pub cchContainerNameLength: DWORD,
    pub dwDesiredCardModuleVersion: DWORD,
    pub dwCspFlags: DWORD,
}
#[test]
fn bindgen_test_layout_READER_SEL_REQUEST__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<READER_SEL_REQUEST__bindgen_ty_1__bindgen_ty_1>(),
        24usize,
        concat!(
            "Size of: ",
            stringify!(READER_SEL_REQUEST__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<READER_SEL_REQUEST__bindgen_ty_1__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(READER_SEL_REQUEST__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<READER_SEL_REQUEST__bindgen_ty_1__bindgen_ty_1>()))
                .cbReaderNameOffset as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(READER_SEL_REQUEST__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(cbReaderNameOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<READER_SEL_REQUEST__bindgen_ty_1__bindgen_ty_1>()))
                .cchReaderNameLength as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(READER_SEL_REQUEST__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(cchReaderNameLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<READER_SEL_REQUEST__bindgen_ty_1__bindgen_ty_1>()))
                .cbContainerNameOffset as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(READER_SEL_REQUEST__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(cbContainerNameOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<READER_SEL_REQUEST__bindgen_ty_1__bindgen_ty_1>()))
                .cchContainerNameLength as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(READER_SEL_REQUEST__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(cchContainerNameLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<READER_SEL_REQUEST__bindgen_ty_1__bindgen_ty_1>()))
                .dwDesiredCardModuleVersion as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(READER_SEL_REQUEST__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(dwDesiredCardModuleVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<READER_SEL_REQUEST__bindgen_ty_1__bindgen_ty_1>())).dwCspFlags
                as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(READER_SEL_REQUEST__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(dwCspFlags)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct READER_SEL_REQUEST__bindgen_ty_1__bindgen_ty_2 {
    pub cbSerialNumberOffset: DWORD,
    pub cbSerialNumberLength: DWORD,
    pub dwDesiredCardModuleVersion: DWORD,
}
#[test]
fn bindgen_test_layout_READER_SEL_REQUEST__bindgen_ty_1__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<READER_SEL_REQUEST__bindgen_ty_1__bindgen_ty_2>(),
        12usize,
        concat!(
            "Size of: ",
            stringify!(READER_SEL_REQUEST__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<READER_SEL_REQUEST__bindgen_ty_1__bindgen_ty_2>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(READER_SEL_REQUEST__bindgen_ty_1__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<READER_SEL_REQUEST__bindgen_ty_1__bindgen_ty_2>()))
                .cbSerialNumberOffset as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(READER_SEL_REQUEST__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(cbSerialNumberOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<READER_SEL_REQUEST__bindgen_ty_1__bindgen_ty_2>()))
                .cbSerialNumberLength as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(READER_SEL_REQUEST__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(cbSerialNumberLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<READER_SEL_REQUEST__bindgen_ty_1__bindgen_ty_2>()))
                .dwDesiredCardModuleVersion as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(READER_SEL_REQUEST__bindgen_ty_1__bindgen_ty_2),
            "::",
            stringify!(dwDesiredCardModuleVersion)
        )
    );
}
#[test]
fn bindgen_test_layout_READER_SEL_REQUEST__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<READER_SEL_REQUEST__bindgen_ty_1>(),
        24usize,
        concat!("Size of: ", stringify!(READER_SEL_REQUEST__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<READER_SEL_REQUEST__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(READER_SEL_REQUEST__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<READER_SEL_REQUEST__bindgen_ty_1>())).ReaderAndContainerParameter
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(READER_SEL_REQUEST__bindgen_ty_1),
            "::",
            stringify!(ReaderAndContainerParameter)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<READER_SEL_REQUEST__bindgen_ty_1>())).SerialNumberParameter
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(READER_SEL_REQUEST__bindgen_ty_1),
            "::",
            stringify!(SerialNumberParameter)
        )
    );
}
#[test]
fn bindgen_test_layout_READER_SEL_REQUEST() {
    assert_eq!(
        ::std::mem::size_of::<READER_SEL_REQUEST>(),
        36usize,
        concat!("Size of: ", stringify!(READER_SEL_REQUEST))
    );
    assert_eq!(
        ::std::mem::align_of::<READER_SEL_REQUEST>(),
        4usize,
        concat!("Alignment of ", stringify!(READER_SEL_REQUEST))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<READER_SEL_REQUEST>())).dwShareMode as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(READER_SEL_REQUEST),
            "::",
            stringify!(dwShareMode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<READER_SEL_REQUEST>())).dwPreferredProtocols as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(READER_SEL_REQUEST),
            "::",
            stringify!(dwPreferredProtocols)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<READER_SEL_REQUEST>())).MatchType as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(READER_SEL_REQUEST),
            "::",
            stringify!(MatchType)
        )
    );
}
pub type PREADER_SEL_REQUEST = *mut READER_SEL_REQUEST;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct READER_SEL_RESPONSE {
    pub cbReaderNameOffset: DWORD,
    pub cchReaderNameLength: DWORD,
    pub cbCardNameOffset: DWORD,
    pub cchCardNameLength: DWORD,
}
#[test]
fn bindgen_test_layout_READER_SEL_RESPONSE() {
    assert_eq!(
        ::std::mem::size_of::<READER_SEL_RESPONSE>(),
        16usize,
        concat!("Size of: ", stringify!(READER_SEL_RESPONSE))
    );
    assert_eq!(
        ::std::mem::align_of::<READER_SEL_RESPONSE>(),
        4usize,
        concat!("Alignment of ", stringify!(READER_SEL_RESPONSE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<READER_SEL_RESPONSE>())).cbReaderNameOffset as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(READER_SEL_RESPONSE),
            "::",
            stringify!(cbReaderNameOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<READER_SEL_RESPONSE>())).cchReaderNameLength as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(READER_SEL_RESPONSE),
            "::",
            stringify!(cchReaderNameLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<READER_SEL_RESPONSE>())).cbCardNameOffset as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(READER_SEL_RESPONSE),
            "::",
            stringify!(cbCardNameOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<READER_SEL_RESPONSE>())).cchCardNameLength as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(READER_SEL_RESPONSE),
            "::",
            stringify!(cchCardNameLength)
        )
    );
}
pub type PREADER_SEL_RESPONSE = *mut READER_SEL_RESPONSE;
extern "C" {
    pub fn SCardUIDlgSelectCardA(arg1: LPOPENCARDNAME_EXA) -> LONG;
}
extern "C" {
    pub fn SCardUIDlgSelectCardW(arg1: LPOPENCARDNAME_EXW) -> LONG;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OPENCARDNAMEA {
    pub dwStructSize: DWORD,
    pub hwndOwner: HWND,
    pub hSCardContext: SCARDCONTEXT,
    pub lpstrGroupNames: LPSTR,
    pub nMaxGroupNames: DWORD,
    pub lpstrCardNames: LPSTR,
    pub nMaxCardNames: DWORD,
    pub rgguidInterfaces: LPCGUID,
    pub cguidInterfaces: DWORD,
    pub lpstrRdr: LPSTR,
    pub nMaxRdr: DWORD,
    pub lpstrCard: LPSTR,
    pub nMaxCard: DWORD,
    pub lpstrTitle: LPCSTR,
    pub dwFlags: DWORD,
    pub pvUserData: LPVOID,
    pub dwShareMode: DWORD,
    pub dwPreferredProtocols: DWORD,
    pub dwActiveProtocol: DWORD,
    pub lpfnConnect: LPOCNCONNPROCA,
    pub lpfnCheck: LPOCNCHKPROC,
    pub lpfnDisconnect: LPOCNDSCPROC,
    pub hCardHandle: SCARDHANDLE,
}
#[test]
fn bindgen_test_layout_OPENCARDNAMEA() {
    assert_eq!(
        ::std::mem::size_of::<OPENCARDNAMEA>(),
        176usize,
        concat!("Size of: ", stringify!(OPENCARDNAMEA))
    );
    assert_eq!(
        ::std::mem::align_of::<OPENCARDNAMEA>(),
        8usize,
        concat!("Alignment of ", stringify!(OPENCARDNAMEA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEA>())).dwStructSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEA),
            "::",
            stringify!(dwStructSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEA>())).hwndOwner as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEA),
            "::",
            stringify!(hwndOwner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEA>())).hSCardContext as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEA),
            "::",
            stringify!(hSCardContext)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEA>())).lpstrGroupNames as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEA),
            "::",
            stringify!(lpstrGroupNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEA>())).nMaxGroupNames as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEA),
            "::",
            stringify!(nMaxGroupNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEA>())).lpstrCardNames as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEA),
            "::",
            stringify!(lpstrCardNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEA>())).nMaxCardNames as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEA),
            "::",
            stringify!(nMaxCardNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEA>())).rgguidInterfaces as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEA),
            "::",
            stringify!(rgguidInterfaces)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEA>())).cguidInterfaces as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEA),
            "::",
            stringify!(cguidInterfaces)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEA>())).lpstrRdr as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEA),
            "::",
            stringify!(lpstrRdr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEA>())).nMaxRdr as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEA),
            "::",
            stringify!(nMaxRdr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEA>())).lpstrCard as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEA),
            "::",
            stringify!(lpstrCard)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEA>())).nMaxCard as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEA),
            "::",
            stringify!(nMaxCard)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEA>())).lpstrTitle as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEA),
            "::",
            stringify!(lpstrTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEA>())).dwFlags as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEA),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEA>())).pvUserData as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEA),
            "::",
            stringify!(pvUserData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEA>())).dwShareMode as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEA),
            "::",
            stringify!(dwShareMode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARDNAMEA>())).dwPreferredProtocols as *const _ as usize
        },
        132usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEA),
            "::",
            stringify!(dwPreferredProtocols)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEA>())).dwActiveProtocol as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEA),
            "::",
            stringify!(dwActiveProtocol)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEA>())).lpfnConnect as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEA),
            "::",
            stringify!(lpfnConnect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEA>())).lpfnCheck as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEA),
            "::",
            stringify!(lpfnCheck)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEA>())).lpfnDisconnect as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEA),
            "::",
            stringify!(lpfnDisconnect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEA>())).hCardHandle as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEA),
            "::",
            stringify!(hCardHandle)
        )
    );
}
pub type POPENCARDNAMEA = *mut OPENCARDNAMEA;
pub type LPOPENCARDNAMEA = *mut OPENCARDNAMEA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OPENCARDNAMEW {
    pub dwStructSize: DWORD,
    pub hwndOwner: HWND,
    pub hSCardContext: SCARDCONTEXT,
    pub lpstrGroupNames: LPWSTR,
    pub nMaxGroupNames: DWORD,
    pub lpstrCardNames: LPWSTR,
    pub nMaxCardNames: DWORD,
    pub rgguidInterfaces: LPCGUID,
    pub cguidInterfaces: DWORD,
    pub lpstrRdr: LPWSTR,
    pub nMaxRdr: DWORD,
    pub lpstrCard: LPWSTR,
    pub nMaxCard: DWORD,
    pub lpstrTitle: LPCWSTR,
    pub dwFlags: DWORD,
    pub pvUserData: LPVOID,
    pub dwShareMode: DWORD,
    pub dwPreferredProtocols: DWORD,
    pub dwActiveProtocol: DWORD,
    pub lpfnConnect: LPOCNCONNPROCW,
    pub lpfnCheck: LPOCNCHKPROC,
    pub lpfnDisconnect: LPOCNDSCPROC,
    pub hCardHandle: SCARDHANDLE,
}
#[test]
fn bindgen_test_layout_OPENCARDNAMEW() {
    assert_eq!(
        ::std::mem::size_of::<OPENCARDNAMEW>(),
        176usize,
        concat!("Size of: ", stringify!(OPENCARDNAMEW))
    );
    assert_eq!(
        ::std::mem::align_of::<OPENCARDNAMEW>(),
        8usize,
        concat!("Alignment of ", stringify!(OPENCARDNAMEW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEW>())).dwStructSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEW),
            "::",
            stringify!(dwStructSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEW>())).hwndOwner as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEW),
            "::",
            stringify!(hwndOwner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEW>())).hSCardContext as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEW),
            "::",
            stringify!(hSCardContext)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEW>())).lpstrGroupNames as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEW),
            "::",
            stringify!(lpstrGroupNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEW>())).nMaxGroupNames as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEW),
            "::",
            stringify!(nMaxGroupNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEW>())).lpstrCardNames as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEW),
            "::",
            stringify!(lpstrCardNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEW>())).nMaxCardNames as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEW),
            "::",
            stringify!(nMaxCardNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEW>())).rgguidInterfaces as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEW),
            "::",
            stringify!(rgguidInterfaces)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEW>())).cguidInterfaces as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEW),
            "::",
            stringify!(cguidInterfaces)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEW>())).lpstrRdr as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEW),
            "::",
            stringify!(lpstrRdr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEW>())).nMaxRdr as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEW),
            "::",
            stringify!(nMaxRdr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEW>())).lpstrCard as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEW),
            "::",
            stringify!(lpstrCard)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEW>())).nMaxCard as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEW),
            "::",
            stringify!(nMaxCard)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEW>())).lpstrTitle as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEW),
            "::",
            stringify!(lpstrTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEW>())).dwFlags as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEW),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEW>())).pvUserData as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEW),
            "::",
            stringify!(pvUserData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEW>())).dwShareMode as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEW),
            "::",
            stringify!(dwShareMode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<OPENCARDNAMEW>())).dwPreferredProtocols as *const _ as usize
        },
        132usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEW),
            "::",
            stringify!(dwPreferredProtocols)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEW>())).dwActiveProtocol as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEW),
            "::",
            stringify!(dwActiveProtocol)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEW>())).lpfnConnect as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEW),
            "::",
            stringify!(lpfnConnect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEW>())).lpfnCheck as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEW),
            "::",
            stringify!(lpfnCheck)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEW>())).lpfnDisconnect as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEW),
            "::",
            stringify!(lpfnDisconnect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<OPENCARDNAMEW>())).hCardHandle as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(OPENCARDNAMEW),
            "::",
            stringify!(hCardHandle)
        )
    );
}
pub type POPENCARDNAMEW = *mut OPENCARDNAMEW;
pub type LPOPENCARDNAMEW = *mut OPENCARDNAMEW;
pub type OPENCARDNAME = OPENCARDNAMEA;
pub type POPENCARDNAME = POPENCARDNAMEA;
pub type LPOPENCARDNAME = LPOPENCARDNAMEA;
extern "C" {
    pub fn GetOpenCardNameA(arg1: LPOPENCARDNAMEA) -> LONG;
}
extern "C" {
    pub fn GetOpenCardNameW(arg1: LPOPENCARDNAMEW) -> LONG;
}
extern "C" {
    pub fn SCardDlgExtendedError() -> LONG;
}
extern "C" {
    pub fn SCardReadCacheA(
        hContext: SCARDCONTEXT,
        CardIdentifier: *mut UUID,
        FreshnessCounter: DWORD,
        LookupName: LPSTR,
        Data: PBYTE,
        DataLen: *mut DWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardReadCacheW(
        hContext: SCARDCONTEXT,
        CardIdentifier: *mut UUID,
        FreshnessCounter: DWORD,
        LookupName: LPWSTR,
        Data: PBYTE,
        DataLen: *mut DWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardWriteCacheA(
        hContext: SCARDCONTEXT,
        CardIdentifier: *mut UUID,
        FreshnessCounter: DWORD,
        LookupName: LPSTR,
        Data: PBYTE,
        DataLen: DWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardWriteCacheW(
        hContext: SCARDCONTEXT,
        CardIdentifier: *mut UUID,
        FreshnessCounter: DWORD,
        LookupName: LPWSTR,
        Data: PBYTE,
        DataLen: DWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardGetReaderIconA(
        hContext: SCARDCONTEXT,
        szReaderName: LPCSTR,
        pbIcon: LPBYTE,
        pcbIcon: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardGetReaderIconW(
        hContext: SCARDCONTEXT,
        szReaderName: LPCWSTR,
        pbIcon: LPBYTE,
        pcbIcon: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardGetDeviceTypeIdA(
        hContext: SCARDCONTEXT,
        szReaderName: LPCSTR,
        pdwDeviceTypeId: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardGetDeviceTypeIdW(
        hContext: SCARDCONTEXT,
        szReaderName: LPCWSTR,
        pdwDeviceTypeId: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardGetReaderDeviceInstanceIdA(
        hContext: SCARDCONTEXT,
        szReaderName: LPCSTR,
        szDeviceInstanceId: LPSTR,
        pcchDeviceInstanceId: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardGetReaderDeviceInstanceIdW(
        hContext: SCARDCONTEXT,
        szReaderName: LPCWSTR,
        szDeviceInstanceId: LPWSTR,
        pcchDeviceInstanceId: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardListReadersWithDeviceInstanceIdA(
        hContext: SCARDCONTEXT,
        szDeviceInstanceId: LPCSTR,
        mszReaders: LPSTR,
        pcchReaders: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardListReadersWithDeviceInstanceIdW(
        hContext: SCARDCONTEXT,
        szDeviceInstanceId: LPCWSTR,
        mszReaders: LPWSTR,
        pcchReaders: LPDWORD,
    ) -> LONG;
}
extern "C" {
    pub fn SCardAudit(hContext: SCARDCONTEXT, dwEvent: DWORD) -> LONG;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PSP {
    _unused: [u8; 0],
}
pub type HPROPSHEETPAGE = *mut _PSP;
pub type LPFNPSPCALLBACKA = ::std::option::Option<
    unsafe extern "C" fn(hwnd: HWND, uMsg: UINT, ppsp: *mut _PROPSHEETPAGEA) -> UINT,
>;
pub type LPFNPSPCALLBACKW = ::std::option::Option<
    unsafe extern "C" fn(hwnd: HWND, uMsg: UINT, ppsp: *mut _PROPSHEETPAGEW) -> UINT,
>;
pub type PROPSHEETPAGE_RESOURCE = LPCDLGTEMPLATE;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PROPSHEETPAGEA_V1 {
    pub dwSize: DWORD,
    pub dwFlags: DWORD,
    pub hInstance: HINSTANCE,
    pub __bindgen_anon_1: _PROPSHEETPAGEA_V1__bindgen_ty_1,
    pub __bindgen_anon_2: _PROPSHEETPAGEA_V1__bindgen_ty_2,
    pub pszTitle: LPCSTR,
    pub pfnDlgProc: DLGPROC,
    pub lParam: LPARAM,
    pub pfnCallback: LPFNPSPCALLBACKA,
    pub pcRefParent: *mut UINT,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETPAGEA_V1__bindgen_ty_1 {
    pub pszTemplate: LPCSTR,
    pub pResource: PROPSHEETPAGE_RESOURCE,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETPAGEA_V1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETPAGEA_V1__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETPAGEA_V1__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETPAGEA_V1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PROPSHEETPAGEA_V1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEA_V1__bindgen_ty_1>())).pszTemplate as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V1__bindgen_ty_1),
            "::",
            stringify!(pszTemplate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEA_V1__bindgen_ty_1>())).pResource as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V1__bindgen_ty_1),
            "::",
            stringify!(pResource)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETPAGEA_V1__bindgen_ty_2 {
    pub hIcon: HICON,
    pub pszIcon: LPCSTR,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETPAGEA_V1__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETPAGEA_V1__bindgen_ty_2>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETPAGEA_V1__bindgen_ty_2))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETPAGEA_V1__bindgen_ty_2>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PROPSHEETPAGEA_V1__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEA_V1__bindgen_ty_2>())).hIcon as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V1__bindgen_ty_2),
            "::",
            stringify!(hIcon)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEA_V1__bindgen_ty_2>())).pszIcon as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V1__bindgen_ty_2),
            "::",
            stringify!(pszIcon)
        )
    );
}
#[test]
fn bindgen_test_layout__PROPSHEETPAGEA_V1() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETPAGEA_V1>(),
        72usize,
        concat!("Size of: ", stringify!(_PROPSHEETPAGEA_V1))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETPAGEA_V1>(),
        8usize,
        concat!("Alignment of ", stringify!(_PROPSHEETPAGEA_V1))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA_V1>())).dwSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V1),
            "::",
            stringify!(dwSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA_V1>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V1),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA_V1>())).hInstance as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V1),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA_V1>())).pszTitle as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V1),
            "::",
            stringify!(pszTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA_V1>())).pfnDlgProc as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V1),
            "::",
            stringify!(pfnDlgProc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA_V1>())).lParam as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V1),
            "::",
            stringify!(lParam)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA_V1>())).pfnCallback as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V1),
            "::",
            stringify!(pfnCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA_V1>())).pcRefParent as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V1),
            "::",
            stringify!(pcRefParent)
        )
    );
}
pub type PROPSHEETPAGEA_V1 = _PROPSHEETPAGEA_V1;
pub type LPPROPSHEETPAGEA_V1 = *mut _PROPSHEETPAGEA_V1;
pub type LPCPROPSHEETPAGEA_V1 = *const PROPSHEETPAGEA_V1;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PROPSHEETPAGEA_V2 {
    pub dwSize: DWORD,
    pub dwFlags: DWORD,
    pub hInstance: HINSTANCE,
    pub __bindgen_anon_1: _PROPSHEETPAGEA_V2__bindgen_ty_1,
    pub __bindgen_anon_2: _PROPSHEETPAGEA_V2__bindgen_ty_2,
    pub pszTitle: LPCSTR,
    pub pfnDlgProc: DLGPROC,
    pub lParam: LPARAM,
    pub pfnCallback: LPFNPSPCALLBACKA,
    pub pcRefParent: *mut UINT,
    pub pszHeaderTitle: LPCSTR,
    pub pszHeaderSubTitle: LPCSTR,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETPAGEA_V2__bindgen_ty_1 {
    pub pszTemplate: LPCSTR,
    pub pResource: PROPSHEETPAGE_RESOURCE,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETPAGEA_V2__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETPAGEA_V2__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETPAGEA_V2__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETPAGEA_V2__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PROPSHEETPAGEA_V2__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEA_V2__bindgen_ty_1>())).pszTemplate as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V2__bindgen_ty_1),
            "::",
            stringify!(pszTemplate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEA_V2__bindgen_ty_1>())).pResource as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V2__bindgen_ty_1),
            "::",
            stringify!(pResource)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETPAGEA_V2__bindgen_ty_2 {
    pub hIcon: HICON,
    pub pszIcon: LPCSTR,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETPAGEA_V2__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETPAGEA_V2__bindgen_ty_2>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETPAGEA_V2__bindgen_ty_2))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETPAGEA_V2__bindgen_ty_2>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PROPSHEETPAGEA_V2__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEA_V2__bindgen_ty_2>())).hIcon as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V2__bindgen_ty_2),
            "::",
            stringify!(hIcon)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEA_V2__bindgen_ty_2>())).pszIcon as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V2__bindgen_ty_2),
            "::",
            stringify!(pszIcon)
        )
    );
}
#[test]
fn bindgen_test_layout__PROPSHEETPAGEA_V2() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETPAGEA_V2>(),
        88usize,
        concat!("Size of: ", stringify!(_PROPSHEETPAGEA_V2))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETPAGEA_V2>(),
        8usize,
        concat!("Alignment of ", stringify!(_PROPSHEETPAGEA_V2))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA_V2>())).dwSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V2),
            "::",
            stringify!(dwSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA_V2>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V2),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA_V2>())).hInstance as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V2),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA_V2>())).pszTitle as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V2),
            "::",
            stringify!(pszTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA_V2>())).pfnDlgProc as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V2),
            "::",
            stringify!(pfnDlgProc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA_V2>())).lParam as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V2),
            "::",
            stringify!(lParam)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA_V2>())).pfnCallback as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V2),
            "::",
            stringify!(pfnCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA_V2>())).pcRefParent as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V2),
            "::",
            stringify!(pcRefParent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEA_V2>())).pszHeaderTitle as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V2),
            "::",
            stringify!(pszHeaderTitle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEA_V2>())).pszHeaderSubTitle as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V2),
            "::",
            stringify!(pszHeaderSubTitle)
        )
    );
}
pub type PROPSHEETPAGEA_V2 = _PROPSHEETPAGEA_V2;
pub type LPPROPSHEETPAGEA_V2 = *mut _PROPSHEETPAGEA_V2;
pub type LPCPROPSHEETPAGEA_V2 = *const PROPSHEETPAGEA_V2;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PROPSHEETPAGEA_V3 {
    pub dwSize: DWORD,
    pub dwFlags: DWORD,
    pub hInstance: HINSTANCE,
    pub __bindgen_anon_1: _PROPSHEETPAGEA_V3__bindgen_ty_1,
    pub __bindgen_anon_2: _PROPSHEETPAGEA_V3__bindgen_ty_2,
    pub pszTitle: LPCSTR,
    pub pfnDlgProc: DLGPROC,
    pub lParam: LPARAM,
    pub pfnCallback: LPFNPSPCALLBACKA,
    pub pcRefParent: *mut UINT,
    pub pszHeaderTitle: LPCSTR,
    pub pszHeaderSubTitle: LPCSTR,
    pub hActCtx: HANDLE,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETPAGEA_V3__bindgen_ty_1 {
    pub pszTemplate: LPCSTR,
    pub pResource: PROPSHEETPAGE_RESOURCE,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETPAGEA_V3__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETPAGEA_V3__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETPAGEA_V3__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETPAGEA_V3__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PROPSHEETPAGEA_V3__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEA_V3__bindgen_ty_1>())).pszTemplate as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V3__bindgen_ty_1),
            "::",
            stringify!(pszTemplate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEA_V3__bindgen_ty_1>())).pResource as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V3__bindgen_ty_1),
            "::",
            stringify!(pResource)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETPAGEA_V3__bindgen_ty_2 {
    pub hIcon: HICON,
    pub pszIcon: LPCSTR,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETPAGEA_V3__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETPAGEA_V3__bindgen_ty_2>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETPAGEA_V3__bindgen_ty_2))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETPAGEA_V3__bindgen_ty_2>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PROPSHEETPAGEA_V3__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEA_V3__bindgen_ty_2>())).hIcon as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V3__bindgen_ty_2),
            "::",
            stringify!(hIcon)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEA_V3__bindgen_ty_2>())).pszIcon as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V3__bindgen_ty_2),
            "::",
            stringify!(pszIcon)
        )
    );
}
#[test]
fn bindgen_test_layout__PROPSHEETPAGEA_V3() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETPAGEA_V3>(),
        96usize,
        concat!("Size of: ", stringify!(_PROPSHEETPAGEA_V3))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETPAGEA_V3>(),
        8usize,
        concat!("Alignment of ", stringify!(_PROPSHEETPAGEA_V3))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA_V3>())).dwSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V3),
            "::",
            stringify!(dwSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA_V3>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V3),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA_V3>())).hInstance as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V3),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA_V3>())).pszTitle as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V3),
            "::",
            stringify!(pszTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA_V3>())).pfnDlgProc as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V3),
            "::",
            stringify!(pfnDlgProc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA_V3>())).lParam as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V3),
            "::",
            stringify!(lParam)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA_V3>())).pfnCallback as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V3),
            "::",
            stringify!(pfnCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA_V3>())).pcRefParent as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V3),
            "::",
            stringify!(pcRefParent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEA_V3>())).pszHeaderTitle as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V3),
            "::",
            stringify!(pszHeaderTitle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEA_V3>())).pszHeaderSubTitle as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V3),
            "::",
            stringify!(pszHeaderSubTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA_V3>())).hActCtx as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA_V3),
            "::",
            stringify!(hActCtx)
        )
    );
}
pub type PROPSHEETPAGEA_V3 = _PROPSHEETPAGEA_V3;
pub type LPPROPSHEETPAGEA_V3 = *mut _PROPSHEETPAGEA_V3;
pub type LPCPROPSHEETPAGEA_V3 = *const PROPSHEETPAGEA_V3;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PROPSHEETPAGEA {
    pub dwSize: DWORD,
    pub dwFlags: DWORD,
    pub hInstance: HINSTANCE,
    pub __bindgen_anon_1: _PROPSHEETPAGEA__bindgen_ty_1,
    pub __bindgen_anon_2: _PROPSHEETPAGEA__bindgen_ty_2,
    pub pszTitle: LPCSTR,
    pub pfnDlgProc: DLGPROC,
    pub lParam: LPARAM,
    pub pfnCallback: LPFNPSPCALLBACKA,
    pub pcRefParent: *mut UINT,
    pub pszHeaderTitle: LPCSTR,
    pub pszHeaderSubTitle: LPCSTR,
    pub hActCtx: HANDLE,
    pub __bindgen_anon_3: _PROPSHEETPAGEA__bindgen_ty_3,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETPAGEA__bindgen_ty_1 {
    pub pszTemplate: LPCSTR,
    pub pResource: PROPSHEETPAGE_RESOURCE,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETPAGEA__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETPAGEA__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETPAGEA__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETPAGEA__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(_PROPSHEETPAGEA__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEA__bindgen_ty_1>())).pszTemplate as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA__bindgen_ty_1),
            "::",
            stringify!(pszTemplate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEA__bindgen_ty_1>())).pResource as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA__bindgen_ty_1),
            "::",
            stringify!(pResource)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETPAGEA__bindgen_ty_2 {
    pub hIcon: HICON,
    pub pszIcon: LPCSTR,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETPAGEA__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETPAGEA__bindgen_ty_2>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETPAGEA__bindgen_ty_2))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETPAGEA__bindgen_ty_2>(),
        8usize,
        concat!("Alignment of ", stringify!(_PROPSHEETPAGEA__bindgen_ty_2))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEA__bindgen_ty_2>())).hIcon as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA__bindgen_ty_2),
            "::",
            stringify!(hIcon)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEA__bindgen_ty_2>())).pszIcon as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA__bindgen_ty_2),
            "::",
            stringify!(pszIcon)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETPAGEA__bindgen_ty_3 {
    pub hbmHeader: HBITMAP,
    pub pszbmHeader: LPCSTR,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETPAGEA__bindgen_ty_3() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETPAGEA__bindgen_ty_3>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETPAGEA__bindgen_ty_3))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETPAGEA__bindgen_ty_3>(),
        8usize,
        concat!("Alignment of ", stringify!(_PROPSHEETPAGEA__bindgen_ty_3))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEA__bindgen_ty_3>())).hbmHeader as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA__bindgen_ty_3),
            "::",
            stringify!(hbmHeader)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEA__bindgen_ty_3>())).pszbmHeader as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA__bindgen_ty_3),
            "::",
            stringify!(pszbmHeader)
        )
    );
}
#[test]
fn bindgen_test_layout__PROPSHEETPAGEA() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETPAGEA>(),
        104usize,
        concat!("Size of: ", stringify!(_PROPSHEETPAGEA))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETPAGEA>(),
        8usize,
        concat!("Alignment of ", stringify!(_PROPSHEETPAGEA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA>())).dwSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA),
            "::",
            stringify!(dwSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA>())).hInstance as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA>())).pszTitle as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA),
            "::",
            stringify!(pszTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA>())).pfnDlgProc as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA),
            "::",
            stringify!(pfnDlgProc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA>())).lParam as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA),
            "::",
            stringify!(lParam)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA>())).pfnCallback as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA),
            "::",
            stringify!(pfnCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA>())).pcRefParent as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA),
            "::",
            stringify!(pcRefParent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA>())).pszHeaderTitle as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA),
            "::",
            stringify!(pszHeaderTitle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEA>())).pszHeaderSubTitle as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA),
            "::",
            stringify!(pszHeaderSubTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEA>())).hActCtx as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEA),
            "::",
            stringify!(hActCtx)
        )
    );
}
pub type PROPSHEETPAGEA_V4 = _PROPSHEETPAGEA;
pub type LPPROPSHEETPAGEA_V4 = *mut _PROPSHEETPAGEA;
pub type LPCPROPSHEETPAGEA_V4 = *const PROPSHEETPAGEA_V4;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PROPSHEETPAGEW_V1 {
    pub dwSize: DWORD,
    pub dwFlags: DWORD,
    pub hInstance: HINSTANCE,
    pub __bindgen_anon_1: _PROPSHEETPAGEW_V1__bindgen_ty_1,
    pub __bindgen_anon_2: _PROPSHEETPAGEW_V1__bindgen_ty_2,
    pub pszTitle: LPCWSTR,
    pub pfnDlgProc: DLGPROC,
    pub lParam: LPARAM,
    pub pfnCallback: LPFNPSPCALLBACKW,
    pub pcRefParent: *mut UINT,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETPAGEW_V1__bindgen_ty_1 {
    pub pszTemplate: LPCWSTR,
    pub pResource: PROPSHEETPAGE_RESOURCE,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETPAGEW_V1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETPAGEW_V1__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETPAGEW_V1__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETPAGEW_V1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PROPSHEETPAGEW_V1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEW_V1__bindgen_ty_1>())).pszTemplate as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V1__bindgen_ty_1),
            "::",
            stringify!(pszTemplate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEW_V1__bindgen_ty_1>())).pResource as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V1__bindgen_ty_1),
            "::",
            stringify!(pResource)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETPAGEW_V1__bindgen_ty_2 {
    pub hIcon: HICON,
    pub pszIcon: LPCWSTR,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETPAGEW_V1__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETPAGEW_V1__bindgen_ty_2>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETPAGEW_V1__bindgen_ty_2))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETPAGEW_V1__bindgen_ty_2>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PROPSHEETPAGEW_V1__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEW_V1__bindgen_ty_2>())).hIcon as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V1__bindgen_ty_2),
            "::",
            stringify!(hIcon)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEW_V1__bindgen_ty_2>())).pszIcon as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V1__bindgen_ty_2),
            "::",
            stringify!(pszIcon)
        )
    );
}
#[test]
fn bindgen_test_layout__PROPSHEETPAGEW_V1() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETPAGEW_V1>(),
        72usize,
        concat!("Size of: ", stringify!(_PROPSHEETPAGEW_V1))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETPAGEW_V1>(),
        8usize,
        concat!("Alignment of ", stringify!(_PROPSHEETPAGEW_V1))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW_V1>())).dwSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V1),
            "::",
            stringify!(dwSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW_V1>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V1),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW_V1>())).hInstance as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V1),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW_V1>())).pszTitle as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V1),
            "::",
            stringify!(pszTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW_V1>())).pfnDlgProc as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V1),
            "::",
            stringify!(pfnDlgProc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW_V1>())).lParam as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V1),
            "::",
            stringify!(lParam)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW_V1>())).pfnCallback as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V1),
            "::",
            stringify!(pfnCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW_V1>())).pcRefParent as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V1),
            "::",
            stringify!(pcRefParent)
        )
    );
}
pub type PROPSHEETPAGEW_V1 = _PROPSHEETPAGEW_V1;
pub type LPPROPSHEETPAGEW_V1 = *mut _PROPSHEETPAGEW_V1;
pub type LPCPROPSHEETPAGEW_V1 = *const PROPSHEETPAGEW_V1;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PROPSHEETPAGEW_V2 {
    pub dwSize: DWORD,
    pub dwFlags: DWORD,
    pub hInstance: HINSTANCE,
    pub __bindgen_anon_1: _PROPSHEETPAGEW_V2__bindgen_ty_1,
    pub __bindgen_anon_2: _PROPSHEETPAGEW_V2__bindgen_ty_2,
    pub pszTitle: LPCWSTR,
    pub pfnDlgProc: DLGPROC,
    pub lParam: LPARAM,
    pub pfnCallback: LPFNPSPCALLBACKW,
    pub pcRefParent: *mut UINT,
    pub pszHeaderTitle: LPCWSTR,
    pub pszHeaderSubTitle: LPCWSTR,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETPAGEW_V2__bindgen_ty_1 {
    pub pszTemplate: LPCWSTR,
    pub pResource: PROPSHEETPAGE_RESOURCE,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETPAGEW_V2__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETPAGEW_V2__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETPAGEW_V2__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETPAGEW_V2__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PROPSHEETPAGEW_V2__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEW_V2__bindgen_ty_1>())).pszTemplate as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V2__bindgen_ty_1),
            "::",
            stringify!(pszTemplate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEW_V2__bindgen_ty_1>())).pResource as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V2__bindgen_ty_1),
            "::",
            stringify!(pResource)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETPAGEW_V2__bindgen_ty_2 {
    pub hIcon: HICON,
    pub pszIcon: LPCWSTR,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETPAGEW_V2__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETPAGEW_V2__bindgen_ty_2>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETPAGEW_V2__bindgen_ty_2))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETPAGEW_V2__bindgen_ty_2>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PROPSHEETPAGEW_V2__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEW_V2__bindgen_ty_2>())).hIcon as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V2__bindgen_ty_2),
            "::",
            stringify!(hIcon)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEW_V2__bindgen_ty_2>())).pszIcon as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V2__bindgen_ty_2),
            "::",
            stringify!(pszIcon)
        )
    );
}
#[test]
fn bindgen_test_layout__PROPSHEETPAGEW_V2() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETPAGEW_V2>(),
        88usize,
        concat!("Size of: ", stringify!(_PROPSHEETPAGEW_V2))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETPAGEW_V2>(),
        8usize,
        concat!("Alignment of ", stringify!(_PROPSHEETPAGEW_V2))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW_V2>())).dwSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V2),
            "::",
            stringify!(dwSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW_V2>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V2),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW_V2>())).hInstance as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V2),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW_V2>())).pszTitle as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V2),
            "::",
            stringify!(pszTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW_V2>())).pfnDlgProc as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V2),
            "::",
            stringify!(pfnDlgProc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW_V2>())).lParam as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V2),
            "::",
            stringify!(lParam)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW_V2>())).pfnCallback as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V2),
            "::",
            stringify!(pfnCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW_V2>())).pcRefParent as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V2),
            "::",
            stringify!(pcRefParent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEW_V2>())).pszHeaderTitle as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V2),
            "::",
            stringify!(pszHeaderTitle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEW_V2>())).pszHeaderSubTitle as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V2),
            "::",
            stringify!(pszHeaderSubTitle)
        )
    );
}
pub type PROPSHEETPAGEW_V2 = _PROPSHEETPAGEW_V2;
pub type LPPROPSHEETPAGEW_V2 = *mut _PROPSHEETPAGEW_V2;
pub type LPCPROPSHEETPAGEW_V2 = *const PROPSHEETPAGEW_V2;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PROPSHEETPAGEW_V3 {
    pub dwSize: DWORD,
    pub dwFlags: DWORD,
    pub hInstance: HINSTANCE,
    pub __bindgen_anon_1: _PROPSHEETPAGEW_V3__bindgen_ty_1,
    pub __bindgen_anon_2: _PROPSHEETPAGEW_V3__bindgen_ty_2,
    pub pszTitle: LPCWSTR,
    pub pfnDlgProc: DLGPROC,
    pub lParam: LPARAM,
    pub pfnCallback: LPFNPSPCALLBACKW,
    pub pcRefParent: *mut UINT,
    pub pszHeaderTitle: LPCWSTR,
    pub pszHeaderSubTitle: LPCWSTR,
    pub hActCtx: HANDLE,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETPAGEW_V3__bindgen_ty_1 {
    pub pszTemplate: LPCWSTR,
    pub pResource: PROPSHEETPAGE_RESOURCE,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETPAGEW_V3__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETPAGEW_V3__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETPAGEW_V3__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETPAGEW_V3__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PROPSHEETPAGEW_V3__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEW_V3__bindgen_ty_1>())).pszTemplate as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V3__bindgen_ty_1),
            "::",
            stringify!(pszTemplate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEW_V3__bindgen_ty_1>())).pResource as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V3__bindgen_ty_1),
            "::",
            stringify!(pResource)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETPAGEW_V3__bindgen_ty_2 {
    pub hIcon: HICON,
    pub pszIcon: LPCWSTR,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETPAGEW_V3__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETPAGEW_V3__bindgen_ty_2>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETPAGEW_V3__bindgen_ty_2))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETPAGEW_V3__bindgen_ty_2>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PROPSHEETPAGEW_V3__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEW_V3__bindgen_ty_2>())).hIcon as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V3__bindgen_ty_2),
            "::",
            stringify!(hIcon)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEW_V3__bindgen_ty_2>())).pszIcon as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V3__bindgen_ty_2),
            "::",
            stringify!(pszIcon)
        )
    );
}
#[test]
fn bindgen_test_layout__PROPSHEETPAGEW_V3() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETPAGEW_V3>(),
        96usize,
        concat!("Size of: ", stringify!(_PROPSHEETPAGEW_V3))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETPAGEW_V3>(),
        8usize,
        concat!("Alignment of ", stringify!(_PROPSHEETPAGEW_V3))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW_V3>())).dwSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V3),
            "::",
            stringify!(dwSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW_V3>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V3),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW_V3>())).hInstance as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V3),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW_V3>())).pszTitle as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V3),
            "::",
            stringify!(pszTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW_V3>())).pfnDlgProc as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V3),
            "::",
            stringify!(pfnDlgProc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW_V3>())).lParam as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V3),
            "::",
            stringify!(lParam)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW_V3>())).pfnCallback as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V3),
            "::",
            stringify!(pfnCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW_V3>())).pcRefParent as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V3),
            "::",
            stringify!(pcRefParent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEW_V3>())).pszHeaderTitle as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V3),
            "::",
            stringify!(pszHeaderTitle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEW_V3>())).pszHeaderSubTitle as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V3),
            "::",
            stringify!(pszHeaderSubTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW_V3>())).hActCtx as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW_V3),
            "::",
            stringify!(hActCtx)
        )
    );
}
pub type PROPSHEETPAGEW_V3 = _PROPSHEETPAGEW_V3;
pub type LPPROPSHEETPAGEW_V3 = *mut _PROPSHEETPAGEW_V3;
pub type LPCPROPSHEETPAGEW_V3 = *const PROPSHEETPAGEW_V3;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PROPSHEETPAGEW {
    pub dwSize: DWORD,
    pub dwFlags: DWORD,
    pub hInstance: HINSTANCE,
    pub __bindgen_anon_1: _PROPSHEETPAGEW__bindgen_ty_1,
    pub __bindgen_anon_2: _PROPSHEETPAGEW__bindgen_ty_2,
    pub pszTitle: LPCWSTR,
    pub pfnDlgProc: DLGPROC,
    pub lParam: LPARAM,
    pub pfnCallback: LPFNPSPCALLBACKW,
    pub pcRefParent: *mut UINT,
    pub pszHeaderTitle: LPCWSTR,
    pub pszHeaderSubTitle: LPCWSTR,
    pub hActCtx: HANDLE,
    pub __bindgen_anon_3: _PROPSHEETPAGEW__bindgen_ty_3,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETPAGEW__bindgen_ty_1 {
    pub pszTemplate: LPCWSTR,
    pub pResource: PROPSHEETPAGE_RESOURCE,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETPAGEW__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETPAGEW__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETPAGEW__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETPAGEW__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(_PROPSHEETPAGEW__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEW__bindgen_ty_1>())).pszTemplate as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW__bindgen_ty_1),
            "::",
            stringify!(pszTemplate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEW__bindgen_ty_1>())).pResource as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW__bindgen_ty_1),
            "::",
            stringify!(pResource)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETPAGEW__bindgen_ty_2 {
    pub hIcon: HICON,
    pub pszIcon: LPCWSTR,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETPAGEW__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETPAGEW__bindgen_ty_2>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETPAGEW__bindgen_ty_2))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETPAGEW__bindgen_ty_2>(),
        8usize,
        concat!("Alignment of ", stringify!(_PROPSHEETPAGEW__bindgen_ty_2))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEW__bindgen_ty_2>())).hIcon as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW__bindgen_ty_2),
            "::",
            stringify!(hIcon)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEW__bindgen_ty_2>())).pszIcon as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW__bindgen_ty_2),
            "::",
            stringify!(pszIcon)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETPAGEW__bindgen_ty_3 {
    pub hbmHeader: HBITMAP,
    pub pszbmHeader: LPCWSTR,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETPAGEW__bindgen_ty_3() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETPAGEW__bindgen_ty_3>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETPAGEW__bindgen_ty_3))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETPAGEW__bindgen_ty_3>(),
        8usize,
        concat!("Alignment of ", stringify!(_PROPSHEETPAGEW__bindgen_ty_3))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEW__bindgen_ty_3>())).hbmHeader as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW__bindgen_ty_3),
            "::",
            stringify!(hbmHeader)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEW__bindgen_ty_3>())).pszbmHeader as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW__bindgen_ty_3),
            "::",
            stringify!(pszbmHeader)
        )
    );
}
#[test]
fn bindgen_test_layout__PROPSHEETPAGEW() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETPAGEW>(),
        104usize,
        concat!("Size of: ", stringify!(_PROPSHEETPAGEW))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETPAGEW>(),
        8usize,
        concat!("Alignment of ", stringify!(_PROPSHEETPAGEW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW>())).dwSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW),
            "::",
            stringify!(dwSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW>())).hInstance as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW>())).pszTitle as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW),
            "::",
            stringify!(pszTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW>())).pfnDlgProc as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW),
            "::",
            stringify!(pfnDlgProc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW>())).lParam as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW),
            "::",
            stringify!(lParam)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW>())).pfnCallback as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW),
            "::",
            stringify!(pfnCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW>())).pcRefParent as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW),
            "::",
            stringify!(pcRefParent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW>())).pszHeaderTitle as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW),
            "::",
            stringify!(pszHeaderTitle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETPAGEW>())).pszHeaderSubTitle as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW),
            "::",
            stringify!(pszHeaderSubTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETPAGEW>())).hActCtx as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETPAGEW),
            "::",
            stringify!(hActCtx)
        )
    );
}
pub type PROPSHEETPAGEW_V4 = _PROPSHEETPAGEW;
pub type LPPROPSHEETPAGEW_V4 = *mut _PROPSHEETPAGEW;
pub type LPCPROPSHEETPAGEW_V4 = *const PROPSHEETPAGEW_V4;
pub type PROPSHEETPAGEA_LATEST = PROPSHEETPAGEA_V4;
pub type PROPSHEETPAGEW_LATEST = PROPSHEETPAGEW_V4;
pub type LPPROPSHEETPAGEA_LATEST = LPPROPSHEETPAGEA_V4;
pub type LPPROPSHEETPAGEW_LATEST = LPPROPSHEETPAGEW_V4;
pub type LPCPROPSHEETPAGEA_LATEST = LPCPROPSHEETPAGEA_V4;
pub type LPCPROPSHEETPAGEW_LATEST = LPCPROPSHEETPAGEW_V4;
pub type PROPSHEETPAGEA = PROPSHEETPAGEA_V4;
pub type PROPSHEETPAGEW = PROPSHEETPAGEW_V4;
pub type LPPROPSHEETPAGEA = LPPROPSHEETPAGEA_V4;
pub type LPPROPSHEETPAGEW = LPPROPSHEETPAGEW_V4;
pub type LPCPROPSHEETPAGEA = LPCPROPSHEETPAGEA_V4;
pub type LPCPROPSHEETPAGEW = LPCPROPSHEETPAGEW_V4;
pub type PFNPROPSHEETCALLBACK = ::std::option::Option<
    unsafe extern "C" fn(arg1: HWND, arg2: UINT, arg3: LPARAM) -> ::std::os::raw::c_int,
>;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PROPSHEETHEADERA_V1 {
    pub dwSize: DWORD,
    pub dwFlags: DWORD,
    pub hwndParent: HWND,
    pub hInstance: HINSTANCE,
    pub __bindgen_anon_1: _PROPSHEETHEADERA_V1__bindgen_ty_1,
    pub pszCaption: LPCSTR,
    pub nPages: UINT,
    pub __bindgen_anon_2: _PROPSHEETHEADERA_V1__bindgen_ty_2,
    pub __bindgen_anon_3: _PROPSHEETHEADERA_V1__bindgen_ty_3,
    pub pfnCallback: PFNPROPSHEETCALLBACK,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETHEADERA_V1__bindgen_ty_1 {
    pub hIcon: HICON,
    pub pszIcon: LPCSTR,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETHEADERA_V1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETHEADERA_V1__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETHEADERA_V1__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETHEADERA_V1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PROPSHEETHEADERA_V1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERA_V1__bindgen_ty_1>())).hIcon as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERA_V1__bindgen_ty_1),
            "::",
            stringify!(hIcon)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERA_V1__bindgen_ty_1>())).pszIcon as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERA_V1__bindgen_ty_1),
            "::",
            stringify!(pszIcon)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETHEADERA_V1__bindgen_ty_2 {
    pub nStartPage: UINT,
    pub pStartPage: LPCSTR,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETHEADERA_V1__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETHEADERA_V1__bindgen_ty_2>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETHEADERA_V1__bindgen_ty_2))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETHEADERA_V1__bindgen_ty_2>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PROPSHEETHEADERA_V1__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERA_V1__bindgen_ty_2>())).nStartPage as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERA_V1__bindgen_ty_2),
            "::",
            stringify!(nStartPage)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERA_V1__bindgen_ty_2>())).pStartPage as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERA_V1__bindgen_ty_2),
            "::",
            stringify!(pStartPage)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETHEADERA_V1__bindgen_ty_3 {
    pub ppsp: LPCPROPSHEETPAGEA,
    pub phpage: *mut HPROPSHEETPAGE,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETHEADERA_V1__bindgen_ty_3() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETHEADERA_V1__bindgen_ty_3>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETHEADERA_V1__bindgen_ty_3))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETHEADERA_V1__bindgen_ty_3>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PROPSHEETHEADERA_V1__bindgen_ty_3)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERA_V1__bindgen_ty_3>())).ppsp as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERA_V1__bindgen_ty_3),
            "::",
            stringify!(ppsp)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERA_V1__bindgen_ty_3>())).phpage as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERA_V1__bindgen_ty_3),
            "::",
            stringify!(phpage)
        )
    );
}
#[test]
fn bindgen_test_layout__PROPSHEETHEADERA_V1() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETHEADERA_V1>(),
        72usize,
        concat!("Size of: ", stringify!(_PROPSHEETHEADERA_V1))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETHEADERA_V1>(),
        8usize,
        concat!("Alignment of ", stringify!(_PROPSHEETHEADERA_V1))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETHEADERA_V1>())).dwSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERA_V1),
            "::",
            stringify!(dwSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETHEADERA_V1>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERA_V1),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETHEADERA_V1>())).hwndParent as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERA_V1),
            "::",
            stringify!(hwndParent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETHEADERA_V1>())).hInstance as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERA_V1),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETHEADERA_V1>())).pszCaption as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERA_V1),
            "::",
            stringify!(pszCaption)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETHEADERA_V1>())).nPages as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERA_V1),
            "::",
            stringify!(nPages)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERA_V1>())).pfnCallback as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERA_V1),
            "::",
            stringify!(pfnCallback)
        )
    );
}
pub type PROPSHEETHEADERA_V1 = _PROPSHEETHEADERA_V1;
pub type LPPROPSHEETHEADERA_V1 = *mut _PROPSHEETHEADERA_V1;
pub type LPCPROPSHEETHEADERA_V1 = *const PROPSHEETHEADERA_V1;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PROPSHEETHEADERA_V2 {
    pub dwSize: DWORD,
    pub dwFlags: DWORD,
    pub hwndParent: HWND,
    pub hInstance: HINSTANCE,
    pub __bindgen_anon_1: _PROPSHEETHEADERA_V2__bindgen_ty_1,
    pub pszCaption: LPCSTR,
    pub nPages: UINT,
    pub __bindgen_anon_2: _PROPSHEETHEADERA_V2__bindgen_ty_2,
    pub __bindgen_anon_3: _PROPSHEETHEADERA_V2__bindgen_ty_3,
    pub pfnCallback: PFNPROPSHEETCALLBACK,
    pub __bindgen_anon_4: _PROPSHEETHEADERA_V2__bindgen_ty_4,
    pub hplWatermark: HPALETTE,
    pub __bindgen_anon_5: _PROPSHEETHEADERA_V2__bindgen_ty_5,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETHEADERA_V2__bindgen_ty_1 {
    pub hIcon: HICON,
    pub pszIcon: LPCSTR,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETHEADERA_V2__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETHEADERA_V2__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETHEADERA_V2__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETHEADERA_V2__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PROPSHEETHEADERA_V2__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERA_V2__bindgen_ty_1>())).hIcon as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERA_V2__bindgen_ty_1),
            "::",
            stringify!(hIcon)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERA_V2__bindgen_ty_1>())).pszIcon as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERA_V2__bindgen_ty_1),
            "::",
            stringify!(pszIcon)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETHEADERA_V2__bindgen_ty_2 {
    pub nStartPage: UINT,
    pub pStartPage: LPCSTR,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETHEADERA_V2__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETHEADERA_V2__bindgen_ty_2>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETHEADERA_V2__bindgen_ty_2))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETHEADERA_V2__bindgen_ty_2>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PROPSHEETHEADERA_V2__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERA_V2__bindgen_ty_2>())).nStartPage as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERA_V2__bindgen_ty_2),
            "::",
            stringify!(nStartPage)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERA_V2__bindgen_ty_2>())).pStartPage as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERA_V2__bindgen_ty_2),
            "::",
            stringify!(pStartPage)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETHEADERA_V2__bindgen_ty_3 {
    pub ppsp: LPCPROPSHEETPAGEA,
    pub phpage: *mut HPROPSHEETPAGE,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETHEADERA_V2__bindgen_ty_3() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETHEADERA_V2__bindgen_ty_3>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETHEADERA_V2__bindgen_ty_3))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETHEADERA_V2__bindgen_ty_3>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PROPSHEETHEADERA_V2__bindgen_ty_3)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERA_V2__bindgen_ty_3>())).ppsp as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERA_V2__bindgen_ty_3),
            "::",
            stringify!(ppsp)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERA_V2__bindgen_ty_3>())).phpage as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERA_V2__bindgen_ty_3),
            "::",
            stringify!(phpage)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETHEADERA_V2__bindgen_ty_4 {
    pub hbmWatermark: HBITMAP,
    pub pszbmWatermark: LPCSTR,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETHEADERA_V2__bindgen_ty_4() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETHEADERA_V2__bindgen_ty_4>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETHEADERA_V2__bindgen_ty_4))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETHEADERA_V2__bindgen_ty_4>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PROPSHEETHEADERA_V2__bindgen_ty_4)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERA_V2__bindgen_ty_4>())).hbmWatermark as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERA_V2__bindgen_ty_4),
            "::",
            stringify!(hbmWatermark)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERA_V2__bindgen_ty_4>())).pszbmWatermark
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERA_V2__bindgen_ty_4),
            "::",
            stringify!(pszbmWatermark)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETHEADERA_V2__bindgen_ty_5 {
    pub hbmHeader: HBITMAP,
    pub pszbmHeader: LPCSTR,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETHEADERA_V2__bindgen_ty_5() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETHEADERA_V2__bindgen_ty_5>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETHEADERA_V2__bindgen_ty_5))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETHEADERA_V2__bindgen_ty_5>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PROPSHEETHEADERA_V2__bindgen_ty_5)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERA_V2__bindgen_ty_5>())).hbmHeader as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERA_V2__bindgen_ty_5),
            "::",
            stringify!(hbmHeader)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERA_V2__bindgen_ty_5>())).pszbmHeader as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERA_V2__bindgen_ty_5),
            "::",
            stringify!(pszbmHeader)
        )
    );
}
#[test]
fn bindgen_test_layout__PROPSHEETHEADERA_V2() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETHEADERA_V2>(),
        96usize,
        concat!("Size of: ", stringify!(_PROPSHEETHEADERA_V2))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETHEADERA_V2>(),
        8usize,
        concat!("Alignment of ", stringify!(_PROPSHEETHEADERA_V2))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETHEADERA_V2>())).dwSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERA_V2),
            "::",
            stringify!(dwSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETHEADERA_V2>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERA_V2),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETHEADERA_V2>())).hwndParent as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERA_V2),
            "::",
            stringify!(hwndParent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETHEADERA_V2>())).hInstance as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERA_V2),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETHEADERA_V2>())).pszCaption as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERA_V2),
            "::",
            stringify!(pszCaption)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETHEADERA_V2>())).nPages as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERA_V2),
            "::",
            stringify!(nPages)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERA_V2>())).pfnCallback as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERA_V2),
            "::",
            stringify!(pfnCallback)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERA_V2>())).hplWatermark as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERA_V2),
            "::",
            stringify!(hplWatermark)
        )
    );
}
pub type PROPSHEETHEADERA_V2 = _PROPSHEETHEADERA_V2;
pub type LPPROPSHEETHEADERA_V2 = *mut _PROPSHEETHEADERA_V2;
pub type LPCPROPSHEETHEADERA_V2 = *const PROPSHEETHEADERA_V2;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PROPSHEETHEADERW_V1 {
    pub dwSize: DWORD,
    pub dwFlags: DWORD,
    pub hwndParent: HWND,
    pub hInstance: HINSTANCE,
    pub __bindgen_anon_1: _PROPSHEETHEADERW_V1__bindgen_ty_1,
    pub pszCaption: LPCWSTR,
    pub nPages: UINT,
    pub __bindgen_anon_2: _PROPSHEETHEADERW_V1__bindgen_ty_2,
    pub __bindgen_anon_3: _PROPSHEETHEADERW_V1__bindgen_ty_3,
    pub pfnCallback: PFNPROPSHEETCALLBACK,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETHEADERW_V1__bindgen_ty_1 {
    pub hIcon: HICON,
    pub pszIcon: LPCWSTR,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETHEADERW_V1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETHEADERW_V1__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETHEADERW_V1__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETHEADERW_V1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PROPSHEETHEADERW_V1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERW_V1__bindgen_ty_1>())).hIcon as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERW_V1__bindgen_ty_1),
            "::",
            stringify!(hIcon)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERW_V1__bindgen_ty_1>())).pszIcon as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERW_V1__bindgen_ty_1),
            "::",
            stringify!(pszIcon)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETHEADERW_V1__bindgen_ty_2 {
    pub nStartPage: UINT,
    pub pStartPage: LPCWSTR,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETHEADERW_V1__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETHEADERW_V1__bindgen_ty_2>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETHEADERW_V1__bindgen_ty_2))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETHEADERW_V1__bindgen_ty_2>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PROPSHEETHEADERW_V1__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERW_V1__bindgen_ty_2>())).nStartPage as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERW_V1__bindgen_ty_2),
            "::",
            stringify!(nStartPage)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERW_V1__bindgen_ty_2>())).pStartPage as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERW_V1__bindgen_ty_2),
            "::",
            stringify!(pStartPage)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETHEADERW_V1__bindgen_ty_3 {
    pub ppsp: LPCPROPSHEETPAGEW,
    pub phpage: *mut HPROPSHEETPAGE,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETHEADERW_V1__bindgen_ty_3() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETHEADERW_V1__bindgen_ty_3>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETHEADERW_V1__bindgen_ty_3))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETHEADERW_V1__bindgen_ty_3>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PROPSHEETHEADERW_V1__bindgen_ty_3)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERW_V1__bindgen_ty_3>())).ppsp as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERW_V1__bindgen_ty_3),
            "::",
            stringify!(ppsp)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERW_V1__bindgen_ty_3>())).phpage as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERW_V1__bindgen_ty_3),
            "::",
            stringify!(phpage)
        )
    );
}
#[test]
fn bindgen_test_layout__PROPSHEETHEADERW_V1() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETHEADERW_V1>(),
        72usize,
        concat!("Size of: ", stringify!(_PROPSHEETHEADERW_V1))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETHEADERW_V1>(),
        8usize,
        concat!("Alignment of ", stringify!(_PROPSHEETHEADERW_V1))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETHEADERW_V1>())).dwSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERW_V1),
            "::",
            stringify!(dwSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETHEADERW_V1>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERW_V1),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETHEADERW_V1>())).hwndParent as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERW_V1),
            "::",
            stringify!(hwndParent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETHEADERW_V1>())).hInstance as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERW_V1),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETHEADERW_V1>())).pszCaption as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERW_V1),
            "::",
            stringify!(pszCaption)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETHEADERW_V1>())).nPages as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERW_V1),
            "::",
            stringify!(nPages)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERW_V1>())).pfnCallback as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERW_V1),
            "::",
            stringify!(pfnCallback)
        )
    );
}
pub type PROPSHEETHEADERW_V1 = _PROPSHEETHEADERW_V1;
pub type LPPROPSHEETHEADERW_V1 = *mut _PROPSHEETHEADERW_V1;
pub type LPCPROPSHEETHEADERW_V1 = *const PROPSHEETHEADERW_V1;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PROPSHEETHEADERW_V2 {
    pub dwSize: DWORD,
    pub dwFlags: DWORD,
    pub hwndParent: HWND,
    pub hInstance: HINSTANCE,
    pub __bindgen_anon_1: _PROPSHEETHEADERW_V2__bindgen_ty_1,
    pub pszCaption: LPCWSTR,
    pub nPages: UINT,
    pub __bindgen_anon_2: _PROPSHEETHEADERW_V2__bindgen_ty_2,
    pub __bindgen_anon_3: _PROPSHEETHEADERW_V2__bindgen_ty_3,
    pub pfnCallback: PFNPROPSHEETCALLBACK,
    pub __bindgen_anon_4: _PROPSHEETHEADERW_V2__bindgen_ty_4,
    pub hplWatermark: HPALETTE,
    pub __bindgen_anon_5: _PROPSHEETHEADERW_V2__bindgen_ty_5,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETHEADERW_V2__bindgen_ty_1 {
    pub hIcon: HICON,
    pub pszIcon: LPCWSTR,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETHEADERW_V2__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETHEADERW_V2__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETHEADERW_V2__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETHEADERW_V2__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PROPSHEETHEADERW_V2__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERW_V2__bindgen_ty_1>())).hIcon as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERW_V2__bindgen_ty_1),
            "::",
            stringify!(hIcon)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERW_V2__bindgen_ty_1>())).pszIcon as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERW_V2__bindgen_ty_1),
            "::",
            stringify!(pszIcon)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETHEADERW_V2__bindgen_ty_2 {
    pub nStartPage: UINT,
    pub pStartPage: LPCWSTR,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETHEADERW_V2__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETHEADERW_V2__bindgen_ty_2>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETHEADERW_V2__bindgen_ty_2))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETHEADERW_V2__bindgen_ty_2>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PROPSHEETHEADERW_V2__bindgen_ty_2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERW_V2__bindgen_ty_2>())).nStartPage as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERW_V2__bindgen_ty_2),
            "::",
            stringify!(nStartPage)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERW_V2__bindgen_ty_2>())).pStartPage as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERW_V2__bindgen_ty_2),
            "::",
            stringify!(pStartPage)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETHEADERW_V2__bindgen_ty_3 {
    pub ppsp: LPCPROPSHEETPAGEW,
    pub phpage: *mut HPROPSHEETPAGE,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETHEADERW_V2__bindgen_ty_3() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETHEADERW_V2__bindgen_ty_3>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETHEADERW_V2__bindgen_ty_3))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETHEADERW_V2__bindgen_ty_3>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PROPSHEETHEADERW_V2__bindgen_ty_3)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERW_V2__bindgen_ty_3>())).ppsp as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERW_V2__bindgen_ty_3),
            "::",
            stringify!(ppsp)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERW_V2__bindgen_ty_3>())).phpage as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERW_V2__bindgen_ty_3),
            "::",
            stringify!(phpage)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETHEADERW_V2__bindgen_ty_4 {
    pub hbmWatermark: HBITMAP,
    pub pszbmWatermark: LPCWSTR,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETHEADERW_V2__bindgen_ty_4() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETHEADERW_V2__bindgen_ty_4>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETHEADERW_V2__bindgen_ty_4))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETHEADERW_V2__bindgen_ty_4>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PROPSHEETHEADERW_V2__bindgen_ty_4)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERW_V2__bindgen_ty_4>())).hbmWatermark as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERW_V2__bindgen_ty_4),
            "::",
            stringify!(hbmWatermark)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERW_V2__bindgen_ty_4>())).pszbmWatermark
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERW_V2__bindgen_ty_4),
            "::",
            stringify!(pszbmWatermark)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PROPSHEETHEADERW_V2__bindgen_ty_5 {
    pub hbmHeader: HBITMAP,
    pub pszbmHeader: LPCWSTR,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__PROPSHEETHEADERW_V2__bindgen_ty_5() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETHEADERW_V2__bindgen_ty_5>(),
        8usize,
        concat!("Size of: ", stringify!(_PROPSHEETHEADERW_V2__bindgen_ty_5))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETHEADERW_V2__bindgen_ty_5>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PROPSHEETHEADERW_V2__bindgen_ty_5)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERW_V2__bindgen_ty_5>())).hbmHeader as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERW_V2__bindgen_ty_5),
            "::",
            stringify!(hbmHeader)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERW_V2__bindgen_ty_5>())).pszbmHeader as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERW_V2__bindgen_ty_5),
            "::",
            stringify!(pszbmHeader)
        )
    );
}
#[test]
fn bindgen_test_layout__PROPSHEETHEADERW_V2() {
    assert_eq!(
        ::std::mem::size_of::<_PROPSHEETHEADERW_V2>(),
        96usize,
        concat!("Size of: ", stringify!(_PROPSHEETHEADERW_V2))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROPSHEETHEADERW_V2>(),
        8usize,
        concat!("Alignment of ", stringify!(_PROPSHEETHEADERW_V2))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETHEADERW_V2>())).dwSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERW_V2),
            "::",
            stringify!(dwSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETHEADERW_V2>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERW_V2),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETHEADERW_V2>())).hwndParent as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERW_V2),
            "::",
            stringify!(hwndParent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETHEADERW_V2>())).hInstance as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERW_V2),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETHEADERW_V2>())).pszCaption as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERW_V2),
            "::",
            stringify!(pszCaption)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROPSHEETHEADERW_V2>())).nPages as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERW_V2),
            "::",
            stringify!(nPages)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERW_V2>())).pfnCallback as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERW_V2),
            "::",
            stringify!(pfnCallback)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PROPSHEETHEADERW_V2>())).hplWatermark as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROPSHEETHEADERW_V2),
            "::",
            stringify!(hplWatermark)
        )
    );
}
pub type PROPSHEETHEADERW_V2 = _PROPSHEETHEADERW_V2;
pub type LPPROPSHEETHEADERW_V2 = *mut _PROPSHEETHEADERW_V2;
pub type LPCPROPSHEETHEADERW_V2 = *const PROPSHEETHEADERW_V2;
pub type PROPSHEETHEADERA = PROPSHEETHEADERA_V2;
pub type PROPSHEETHEADERW = PROPSHEETHEADERW_V2;
pub type LPPROPSHEETHEADERA = LPPROPSHEETHEADERA_V2;
pub type LPPROPSHEETHEADERW = LPPROPSHEETHEADERW_V2;
pub type LPCPROPSHEETHEADERA = LPCPROPSHEETHEADERA_V2;
pub type LPCPROPSHEETHEADERW = LPCPROPSHEETHEADERW_V2;
extern "C" {
    pub fn CreatePropertySheetPageA(constPropSheetPagePointer: LPCPROPSHEETPAGEA)
        -> HPROPSHEETPAGE;
}
extern "C" {
    pub fn CreatePropertySheetPageW(constPropSheetPagePointer: LPCPROPSHEETPAGEW)
        -> HPROPSHEETPAGE;
}
extern "C" {
    pub fn DestroyPropertySheetPage(arg1: HPROPSHEETPAGE) -> BOOL;
}
extern "C" {
    pub fn PropertySheetA(arg1: LPCPROPSHEETHEADERA) -> INT_PTR;
}
extern "C" {
    pub fn PropertySheetW(arg1: LPCPROPSHEETHEADERW) -> INT_PTR;
}
pub type LPFNADDPROPSHEETPAGE =
    ::std::option::Option<unsafe extern "C" fn(arg1: HPROPSHEETPAGE, arg2: LPARAM) -> BOOL>;
pub type LPFNADDPROPSHEETPAGES = ::std::option::Option<
    unsafe extern "C" fn(arg1: LPVOID, arg2: LPFNADDPROPSHEETPAGE, arg3: LPARAM) -> BOOL,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PSHNOTIFY {
    pub hdr: NMHDR,
    pub lParam: LPARAM,
}
#[test]
fn bindgen_test_layout__PSHNOTIFY() {
    assert_eq!(
        ::std::mem::size_of::<_PSHNOTIFY>(),
        32usize,
        concat!("Size of: ", stringify!(_PSHNOTIFY))
    );
    assert_eq!(
        ::std::mem::align_of::<_PSHNOTIFY>(),
        8usize,
        concat!("Alignment of ", stringify!(_PSHNOTIFY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PSHNOTIFY>())).hdr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PSHNOTIFY),
            "::",
            stringify!(hdr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PSHNOTIFY>())).lParam as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_PSHNOTIFY),
            "::",
            stringify!(lParam)
        )
    );
}
pub type PSHNOTIFY = _PSHNOTIFY;
pub type LPPSHNOTIFY = *mut _PSHNOTIFY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRINTER_INFO_1A {
    pub Flags: DWORD,
    pub pDescription: LPSTR,
    pub pName: LPSTR,
    pub pComment: LPSTR,
}
#[test]
fn bindgen_test_layout__PRINTER_INFO_1A() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTER_INFO_1A>(),
        32usize,
        concat!("Size of: ", stringify!(_PRINTER_INFO_1A))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTER_INFO_1A>(),
        8usize,
        concat!("Alignment of ", stringify!(_PRINTER_INFO_1A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_1A>())).Flags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_1A),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_1A>())).pDescription as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_1A),
            "::",
            stringify!(pDescription)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_1A>())).pName as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_1A),
            "::",
            stringify!(pName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_1A>())).pComment as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_1A),
            "::",
            stringify!(pComment)
        )
    );
}
pub type PRINTER_INFO_1A = _PRINTER_INFO_1A;
pub type PPRINTER_INFO_1A = *mut _PRINTER_INFO_1A;
pub type LPPRINTER_INFO_1A = *mut _PRINTER_INFO_1A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRINTER_INFO_1W {
    pub Flags: DWORD,
    pub pDescription: LPWSTR,
    pub pName: LPWSTR,
    pub pComment: LPWSTR,
}
#[test]
fn bindgen_test_layout__PRINTER_INFO_1W() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTER_INFO_1W>(),
        32usize,
        concat!("Size of: ", stringify!(_PRINTER_INFO_1W))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTER_INFO_1W>(),
        8usize,
        concat!("Alignment of ", stringify!(_PRINTER_INFO_1W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_1W>())).Flags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_1W),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_1W>())).pDescription as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_1W),
            "::",
            stringify!(pDescription)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_1W>())).pName as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_1W),
            "::",
            stringify!(pName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_1W>())).pComment as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_1W),
            "::",
            stringify!(pComment)
        )
    );
}
pub type PRINTER_INFO_1W = _PRINTER_INFO_1W;
pub type PPRINTER_INFO_1W = *mut _PRINTER_INFO_1W;
pub type LPPRINTER_INFO_1W = *mut _PRINTER_INFO_1W;
pub type PRINTER_INFO_1 = PRINTER_INFO_1A;
pub type PPRINTER_INFO_1 = PPRINTER_INFO_1A;
pub type LPPRINTER_INFO_1 = LPPRINTER_INFO_1A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRINTER_INFO_2A {
    pub pServerName: LPSTR,
    pub pPrinterName: LPSTR,
    pub pShareName: LPSTR,
    pub pPortName: LPSTR,
    pub pDriverName: LPSTR,
    pub pComment: LPSTR,
    pub pLocation: LPSTR,
    pub pDevMode: LPDEVMODEA,
    pub pSepFile: LPSTR,
    pub pPrintProcessor: LPSTR,
    pub pDatatype: LPSTR,
    pub pParameters: LPSTR,
    pub pSecurityDescriptor: PSECURITY_DESCRIPTOR,
    pub Attributes: DWORD,
    pub Priority: DWORD,
    pub DefaultPriority: DWORD,
    pub StartTime: DWORD,
    pub UntilTime: DWORD,
    pub Status: DWORD,
    pub cJobs: DWORD,
    pub AveragePPM: DWORD,
}
#[test]
fn bindgen_test_layout__PRINTER_INFO_2A() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTER_INFO_2A>(),
        136usize,
        concat!("Size of: ", stringify!(_PRINTER_INFO_2A))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTER_INFO_2A>(),
        8usize,
        concat!("Alignment of ", stringify!(_PRINTER_INFO_2A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2A>())).pServerName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2A),
            "::",
            stringify!(pServerName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2A>())).pPrinterName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2A),
            "::",
            stringify!(pPrinterName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2A>())).pShareName as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2A),
            "::",
            stringify!(pShareName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2A>())).pPortName as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2A),
            "::",
            stringify!(pPortName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2A>())).pDriverName as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2A),
            "::",
            stringify!(pDriverName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2A>())).pComment as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2A),
            "::",
            stringify!(pComment)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2A>())).pLocation as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2A),
            "::",
            stringify!(pLocation)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2A>())).pDevMode as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2A),
            "::",
            stringify!(pDevMode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2A>())).pSepFile as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2A),
            "::",
            stringify!(pSepFile)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_INFO_2A>())).pPrintProcessor as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2A),
            "::",
            stringify!(pPrintProcessor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2A>())).pDatatype as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2A),
            "::",
            stringify!(pDatatype)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2A>())).pParameters as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2A),
            "::",
            stringify!(pParameters)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_INFO_2A>())).pSecurityDescriptor as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2A),
            "::",
            stringify!(pSecurityDescriptor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2A>())).Attributes as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2A),
            "::",
            stringify!(Attributes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2A>())).Priority as *const _ as usize },
        108usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2A),
            "::",
            stringify!(Priority)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_INFO_2A>())).DefaultPriority as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2A),
            "::",
            stringify!(DefaultPriority)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2A>())).StartTime as *const _ as usize },
        116usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2A),
            "::",
            stringify!(StartTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2A>())).UntilTime as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2A),
            "::",
            stringify!(UntilTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2A>())).Status as *const _ as usize },
        124usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2A),
            "::",
            stringify!(Status)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2A>())).cJobs as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2A),
            "::",
            stringify!(cJobs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2A>())).AveragePPM as *const _ as usize },
        132usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2A),
            "::",
            stringify!(AveragePPM)
        )
    );
}
pub type PRINTER_INFO_2A = _PRINTER_INFO_2A;
pub type PPRINTER_INFO_2A = *mut _PRINTER_INFO_2A;
pub type LPPRINTER_INFO_2A = *mut _PRINTER_INFO_2A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRINTER_INFO_2W {
    pub pServerName: LPWSTR,
    pub pPrinterName: LPWSTR,
    pub pShareName: LPWSTR,
    pub pPortName: LPWSTR,
    pub pDriverName: LPWSTR,
    pub pComment: LPWSTR,
    pub pLocation: LPWSTR,
    pub pDevMode: LPDEVMODEW,
    pub pSepFile: LPWSTR,
    pub pPrintProcessor: LPWSTR,
    pub pDatatype: LPWSTR,
    pub pParameters: LPWSTR,
    pub pSecurityDescriptor: PSECURITY_DESCRIPTOR,
    pub Attributes: DWORD,
    pub Priority: DWORD,
    pub DefaultPriority: DWORD,
    pub StartTime: DWORD,
    pub UntilTime: DWORD,
    pub Status: DWORD,
    pub cJobs: DWORD,
    pub AveragePPM: DWORD,
}
#[test]
fn bindgen_test_layout__PRINTER_INFO_2W() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTER_INFO_2W>(),
        136usize,
        concat!("Size of: ", stringify!(_PRINTER_INFO_2W))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTER_INFO_2W>(),
        8usize,
        concat!("Alignment of ", stringify!(_PRINTER_INFO_2W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2W>())).pServerName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2W),
            "::",
            stringify!(pServerName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2W>())).pPrinterName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2W),
            "::",
            stringify!(pPrinterName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2W>())).pShareName as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2W),
            "::",
            stringify!(pShareName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2W>())).pPortName as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2W),
            "::",
            stringify!(pPortName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2W>())).pDriverName as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2W),
            "::",
            stringify!(pDriverName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2W>())).pComment as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2W),
            "::",
            stringify!(pComment)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2W>())).pLocation as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2W),
            "::",
            stringify!(pLocation)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2W>())).pDevMode as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2W),
            "::",
            stringify!(pDevMode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2W>())).pSepFile as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2W),
            "::",
            stringify!(pSepFile)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_INFO_2W>())).pPrintProcessor as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2W),
            "::",
            stringify!(pPrintProcessor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2W>())).pDatatype as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2W),
            "::",
            stringify!(pDatatype)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2W>())).pParameters as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2W),
            "::",
            stringify!(pParameters)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_INFO_2W>())).pSecurityDescriptor as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2W),
            "::",
            stringify!(pSecurityDescriptor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2W>())).Attributes as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2W),
            "::",
            stringify!(Attributes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2W>())).Priority as *const _ as usize },
        108usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2W),
            "::",
            stringify!(Priority)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_INFO_2W>())).DefaultPriority as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2W),
            "::",
            stringify!(DefaultPriority)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2W>())).StartTime as *const _ as usize },
        116usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2W),
            "::",
            stringify!(StartTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2W>())).UntilTime as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2W),
            "::",
            stringify!(UntilTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2W>())).Status as *const _ as usize },
        124usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2W),
            "::",
            stringify!(Status)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2W>())).cJobs as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2W),
            "::",
            stringify!(cJobs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_2W>())).AveragePPM as *const _ as usize },
        132usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_2W),
            "::",
            stringify!(AveragePPM)
        )
    );
}
pub type PRINTER_INFO_2W = _PRINTER_INFO_2W;
pub type PPRINTER_INFO_2W = *mut _PRINTER_INFO_2W;
pub type LPPRINTER_INFO_2W = *mut _PRINTER_INFO_2W;
pub type PRINTER_INFO_2 = PRINTER_INFO_2A;
pub type PPRINTER_INFO_2 = PPRINTER_INFO_2A;
pub type LPPRINTER_INFO_2 = LPPRINTER_INFO_2A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRINTER_INFO_3 {
    pub pSecurityDescriptor: PSECURITY_DESCRIPTOR,
}
#[test]
fn bindgen_test_layout__PRINTER_INFO_3() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTER_INFO_3>(),
        8usize,
        concat!("Size of: ", stringify!(_PRINTER_INFO_3))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTER_INFO_3>(),
        8usize,
        concat!("Alignment of ", stringify!(_PRINTER_INFO_3))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_INFO_3>())).pSecurityDescriptor as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_3),
            "::",
            stringify!(pSecurityDescriptor)
        )
    );
}
pub type PRINTER_INFO_3 = _PRINTER_INFO_3;
pub type PPRINTER_INFO_3 = *mut _PRINTER_INFO_3;
pub type LPPRINTER_INFO_3 = *mut _PRINTER_INFO_3;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRINTER_INFO_4A {
    pub pPrinterName: LPSTR,
    pub pServerName: LPSTR,
    pub Attributes: DWORD,
}
#[test]
fn bindgen_test_layout__PRINTER_INFO_4A() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTER_INFO_4A>(),
        24usize,
        concat!("Size of: ", stringify!(_PRINTER_INFO_4A))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTER_INFO_4A>(),
        8usize,
        concat!("Alignment of ", stringify!(_PRINTER_INFO_4A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_4A>())).pPrinterName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_4A),
            "::",
            stringify!(pPrinterName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_4A>())).pServerName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_4A),
            "::",
            stringify!(pServerName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_4A>())).Attributes as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_4A),
            "::",
            stringify!(Attributes)
        )
    );
}
pub type PRINTER_INFO_4A = _PRINTER_INFO_4A;
pub type PPRINTER_INFO_4A = *mut _PRINTER_INFO_4A;
pub type LPPRINTER_INFO_4A = *mut _PRINTER_INFO_4A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRINTER_INFO_4W {
    pub pPrinterName: LPWSTR,
    pub pServerName: LPWSTR,
    pub Attributes: DWORD,
}
#[test]
fn bindgen_test_layout__PRINTER_INFO_4W() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTER_INFO_4W>(),
        24usize,
        concat!("Size of: ", stringify!(_PRINTER_INFO_4W))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTER_INFO_4W>(),
        8usize,
        concat!("Alignment of ", stringify!(_PRINTER_INFO_4W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_4W>())).pPrinterName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_4W),
            "::",
            stringify!(pPrinterName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_4W>())).pServerName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_4W),
            "::",
            stringify!(pServerName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_4W>())).Attributes as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_4W),
            "::",
            stringify!(Attributes)
        )
    );
}
pub type PRINTER_INFO_4W = _PRINTER_INFO_4W;
pub type PPRINTER_INFO_4W = *mut _PRINTER_INFO_4W;
pub type LPPRINTER_INFO_4W = *mut _PRINTER_INFO_4W;
pub type PRINTER_INFO_4 = PRINTER_INFO_4A;
pub type PPRINTER_INFO_4 = PPRINTER_INFO_4A;
pub type LPPRINTER_INFO_4 = LPPRINTER_INFO_4A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRINTER_INFO_5A {
    pub pPrinterName: LPSTR,
    pub pPortName: LPSTR,
    pub Attributes: DWORD,
    pub DeviceNotSelectedTimeout: DWORD,
    pub TransmissionRetryTimeout: DWORD,
}
#[test]
fn bindgen_test_layout__PRINTER_INFO_5A() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTER_INFO_5A>(),
        32usize,
        concat!("Size of: ", stringify!(_PRINTER_INFO_5A))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTER_INFO_5A>(),
        8usize,
        concat!("Alignment of ", stringify!(_PRINTER_INFO_5A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_5A>())).pPrinterName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_5A),
            "::",
            stringify!(pPrinterName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_5A>())).pPortName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_5A),
            "::",
            stringify!(pPortName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_5A>())).Attributes as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_5A),
            "::",
            stringify!(Attributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_INFO_5A>())).DeviceNotSelectedTimeout as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_5A),
            "::",
            stringify!(DeviceNotSelectedTimeout)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_INFO_5A>())).TransmissionRetryTimeout as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_5A),
            "::",
            stringify!(TransmissionRetryTimeout)
        )
    );
}
pub type PRINTER_INFO_5A = _PRINTER_INFO_5A;
pub type PPRINTER_INFO_5A = *mut _PRINTER_INFO_5A;
pub type LPPRINTER_INFO_5A = *mut _PRINTER_INFO_5A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRINTER_INFO_5W {
    pub pPrinterName: LPWSTR,
    pub pPortName: LPWSTR,
    pub Attributes: DWORD,
    pub DeviceNotSelectedTimeout: DWORD,
    pub TransmissionRetryTimeout: DWORD,
}
#[test]
fn bindgen_test_layout__PRINTER_INFO_5W() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTER_INFO_5W>(),
        32usize,
        concat!("Size of: ", stringify!(_PRINTER_INFO_5W))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTER_INFO_5W>(),
        8usize,
        concat!("Alignment of ", stringify!(_PRINTER_INFO_5W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_5W>())).pPrinterName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_5W),
            "::",
            stringify!(pPrinterName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_5W>())).pPortName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_5W),
            "::",
            stringify!(pPortName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_5W>())).Attributes as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_5W),
            "::",
            stringify!(Attributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_INFO_5W>())).DeviceNotSelectedTimeout as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_5W),
            "::",
            stringify!(DeviceNotSelectedTimeout)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_INFO_5W>())).TransmissionRetryTimeout as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_5W),
            "::",
            stringify!(TransmissionRetryTimeout)
        )
    );
}
pub type PRINTER_INFO_5W = _PRINTER_INFO_5W;
pub type PPRINTER_INFO_5W = *mut _PRINTER_INFO_5W;
pub type LPPRINTER_INFO_5W = *mut _PRINTER_INFO_5W;
pub type PRINTER_INFO_5 = PRINTER_INFO_5A;
pub type PPRINTER_INFO_5 = PPRINTER_INFO_5A;
pub type LPPRINTER_INFO_5 = LPPRINTER_INFO_5A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRINTER_INFO_6 {
    pub dwStatus: DWORD,
}
#[test]
fn bindgen_test_layout__PRINTER_INFO_6() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTER_INFO_6>(),
        4usize,
        concat!("Size of: ", stringify!(_PRINTER_INFO_6))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTER_INFO_6>(),
        4usize,
        concat!("Alignment of ", stringify!(_PRINTER_INFO_6))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_6>())).dwStatus as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_6),
            "::",
            stringify!(dwStatus)
        )
    );
}
pub type PRINTER_INFO_6 = _PRINTER_INFO_6;
pub type PPRINTER_INFO_6 = *mut _PRINTER_INFO_6;
pub type LPPRINTER_INFO_6 = *mut _PRINTER_INFO_6;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRINTER_INFO_7A {
    pub pszObjectGUID: LPSTR,
    pub dwAction: DWORD,
}
#[test]
fn bindgen_test_layout__PRINTER_INFO_7A() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTER_INFO_7A>(),
        16usize,
        concat!("Size of: ", stringify!(_PRINTER_INFO_7A))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTER_INFO_7A>(),
        8usize,
        concat!("Alignment of ", stringify!(_PRINTER_INFO_7A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_7A>())).pszObjectGUID as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_7A),
            "::",
            stringify!(pszObjectGUID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_7A>())).dwAction as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_7A),
            "::",
            stringify!(dwAction)
        )
    );
}
pub type PRINTER_INFO_7A = _PRINTER_INFO_7A;
pub type PPRINTER_INFO_7A = *mut _PRINTER_INFO_7A;
pub type LPPRINTER_INFO_7A = *mut _PRINTER_INFO_7A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRINTER_INFO_7W {
    pub pszObjectGUID: LPWSTR,
    pub dwAction: DWORD,
}
#[test]
fn bindgen_test_layout__PRINTER_INFO_7W() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTER_INFO_7W>(),
        16usize,
        concat!("Size of: ", stringify!(_PRINTER_INFO_7W))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTER_INFO_7W>(),
        8usize,
        concat!("Alignment of ", stringify!(_PRINTER_INFO_7W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_7W>())).pszObjectGUID as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_7W),
            "::",
            stringify!(pszObjectGUID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_7W>())).dwAction as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_7W),
            "::",
            stringify!(dwAction)
        )
    );
}
pub type PRINTER_INFO_7W = _PRINTER_INFO_7W;
pub type PPRINTER_INFO_7W = *mut _PRINTER_INFO_7W;
pub type LPPRINTER_INFO_7W = *mut _PRINTER_INFO_7W;
pub type PRINTER_INFO_7 = PRINTER_INFO_7A;
pub type PPRINTER_INFO_7 = PPRINTER_INFO_7A;
pub type LPPRINTER_INFO_7 = LPPRINTER_INFO_7A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRINTER_INFO_8A {
    pub pDevMode: LPDEVMODEA,
}
#[test]
fn bindgen_test_layout__PRINTER_INFO_8A() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTER_INFO_8A>(),
        8usize,
        concat!("Size of: ", stringify!(_PRINTER_INFO_8A))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTER_INFO_8A>(),
        8usize,
        concat!("Alignment of ", stringify!(_PRINTER_INFO_8A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_8A>())).pDevMode as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_8A),
            "::",
            stringify!(pDevMode)
        )
    );
}
pub type PRINTER_INFO_8A = _PRINTER_INFO_8A;
pub type PPRINTER_INFO_8A = *mut _PRINTER_INFO_8A;
pub type LPPRINTER_INFO_8A = *mut _PRINTER_INFO_8A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRINTER_INFO_8W {
    pub pDevMode: LPDEVMODEW,
}
#[test]
fn bindgen_test_layout__PRINTER_INFO_8W() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTER_INFO_8W>(),
        8usize,
        concat!("Size of: ", stringify!(_PRINTER_INFO_8W))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTER_INFO_8W>(),
        8usize,
        concat!("Alignment of ", stringify!(_PRINTER_INFO_8W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_8W>())).pDevMode as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_8W),
            "::",
            stringify!(pDevMode)
        )
    );
}
pub type PRINTER_INFO_8W = _PRINTER_INFO_8W;
pub type PPRINTER_INFO_8W = *mut _PRINTER_INFO_8W;
pub type LPPRINTER_INFO_8W = *mut _PRINTER_INFO_8W;
pub type PRINTER_INFO_8 = PRINTER_INFO_8A;
pub type PPRINTER_INFO_8 = PPRINTER_INFO_8A;
pub type LPPRINTER_INFO_8 = LPPRINTER_INFO_8A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRINTER_INFO_9A {
    pub pDevMode: LPDEVMODEA,
}
#[test]
fn bindgen_test_layout__PRINTER_INFO_9A() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTER_INFO_9A>(),
        8usize,
        concat!("Size of: ", stringify!(_PRINTER_INFO_9A))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTER_INFO_9A>(),
        8usize,
        concat!("Alignment of ", stringify!(_PRINTER_INFO_9A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_9A>())).pDevMode as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_9A),
            "::",
            stringify!(pDevMode)
        )
    );
}
pub type PRINTER_INFO_9A = _PRINTER_INFO_9A;
pub type PPRINTER_INFO_9A = *mut _PRINTER_INFO_9A;
pub type LPPRINTER_INFO_9A = *mut _PRINTER_INFO_9A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRINTER_INFO_9W {
    pub pDevMode: LPDEVMODEW,
}
#[test]
fn bindgen_test_layout__PRINTER_INFO_9W() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTER_INFO_9W>(),
        8usize,
        concat!("Size of: ", stringify!(_PRINTER_INFO_9W))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTER_INFO_9W>(),
        8usize,
        concat!("Alignment of ", stringify!(_PRINTER_INFO_9W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_INFO_9W>())).pDevMode as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_INFO_9W),
            "::",
            stringify!(pDevMode)
        )
    );
}
pub type PRINTER_INFO_9W = _PRINTER_INFO_9W;
pub type PPRINTER_INFO_9W = *mut _PRINTER_INFO_9W;
pub type LPPRINTER_INFO_9W = *mut _PRINTER_INFO_9W;
pub type PRINTER_INFO_9 = PRINTER_INFO_9A;
pub type PPRINTER_INFO_9 = PPRINTER_INFO_9A;
pub type LPPRINTER_INFO_9 = LPPRINTER_INFO_9A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _JOB_INFO_1A {
    pub JobId: DWORD,
    pub pPrinterName: LPSTR,
    pub pMachineName: LPSTR,
    pub pUserName: LPSTR,
    pub pDocument: LPSTR,
    pub pDatatype: LPSTR,
    pub pStatus: LPSTR,
    pub Status: DWORD,
    pub Priority: DWORD,
    pub Position: DWORD,
    pub TotalPages: DWORD,
    pub PagesPrinted: DWORD,
    pub Submitted: SYSTEMTIME,
}
#[test]
fn bindgen_test_layout__JOB_INFO_1A() {
    assert_eq!(
        ::std::mem::size_of::<_JOB_INFO_1A>(),
        96usize,
        concat!("Size of: ", stringify!(_JOB_INFO_1A))
    );
    assert_eq!(
        ::std::mem::align_of::<_JOB_INFO_1A>(),
        8usize,
        concat!("Alignment of ", stringify!(_JOB_INFO_1A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_1A>())).JobId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_1A),
            "::",
            stringify!(JobId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_1A>())).pPrinterName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_1A),
            "::",
            stringify!(pPrinterName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_1A>())).pMachineName as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_1A),
            "::",
            stringify!(pMachineName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_1A>())).pUserName as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_1A),
            "::",
            stringify!(pUserName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_1A>())).pDocument as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_1A),
            "::",
            stringify!(pDocument)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_1A>())).pDatatype as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_1A),
            "::",
            stringify!(pDatatype)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_1A>())).pStatus as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_1A),
            "::",
            stringify!(pStatus)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_1A>())).Status as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_1A),
            "::",
            stringify!(Status)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_1A>())).Priority as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_1A),
            "::",
            stringify!(Priority)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_1A>())).Position as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_1A),
            "::",
            stringify!(Position)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_1A>())).TotalPages as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_1A),
            "::",
            stringify!(TotalPages)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_1A>())).PagesPrinted as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_1A),
            "::",
            stringify!(PagesPrinted)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_1A>())).Submitted as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_1A),
            "::",
            stringify!(Submitted)
        )
    );
}
pub type JOB_INFO_1A = _JOB_INFO_1A;
pub type PJOB_INFO_1A = *mut _JOB_INFO_1A;
pub type LPJOB_INFO_1A = *mut _JOB_INFO_1A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _JOB_INFO_1W {
    pub JobId: DWORD,
    pub pPrinterName: LPWSTR,
    pub pMachineName: LPWSTR,
    pub pUserName: LPWSTR,
    pub pDocument: LPWSTR,
    pub pDatatype: LPWSTR,
    pub pStatus: LPWSTR,
    pub Status: DWORD,
    pub Priority: DWORD,
    pub Position: DWORD,
    pub TotalPages: DWORD,
    pub PagesPrinted: DWORD,
    pub Submitted: SYSTEMTIME,
}
#[test]
fn bindgen_test_layout__JOB_INFO_1W() {
    assert_eq!(
        ::std::mem::size_of::<_JOB_INFO_1W>(),
        96usize,
        concat!("Size of: ", stringify!(_JOB_INFO_1W))
    );
    assert_eq!(
        ::std::mem::align_of::<_JOB_INFO_1W>(),
        8usize,
        concat!("Alignment of ", stringify!(_JOB_INFO_1W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_1W>())).JobId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_1W),
            "::",
            stringify!(JobId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_1W>())).pPrinterName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_1W),
            "::",
            stringify!(pPrinterName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_1W>())).pMachineName as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_1W),
            "::",
            stringify!(pMachineName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_1W>())).pUserName as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_1W),
            "::",
            stringify!(pUserName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_1W>())).pDocument as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_1W),
            "::",
            stringify!(pDocument)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_1W>())).pDatatype as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_1W),
            "::",
            stringify!(pDatatype)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_1W>())).pStatus as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_1W),
            "::",
            stringify!(pStatus)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_1W>())).Status as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_1W),
            "::",
            stringify!(Status)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_1W>())).Priority as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_1W),
            "::",
            stringify!(Priority)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_1W>())).Position as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_1W),
            "::",
            stringify!(Position)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_1W>())).TotalPages as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_1W),
            "::",
            stringify!(TotalPages)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_1W>())).PagesPrinted as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_1W),
            "::",
            stringify!(PagesPrinted)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_1W>())).Submitted as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_1W),
            "::",
            stringify!(Submitted)
        )
    );
}
pub type JOB_INFO_1W = _JOB_INFO_1W;
pub type PJOB_INFO_1W = *mut _JOB_INFO_1W;
pub type LPJOB_INFO_1W = *mut _JOB_INFO_1W;
pub type JOB_INFO_1 = JOB_INFO_1A;
pub type PJOB_INFO_1 = PJOB_INFO_1A;
pub type LPJOB_INFO_1 = LPJOB_INFO_1A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _JOB_INFO_2A {
    pub JobId: DWORD,
    pub pPrinterName: LPSTR,
    pub pMachineName: LPSTR,
    pub pUserName: LPSTR,
    pub pDocument: LPSTR,
    pub pNotifyName: LPSTR,
    pub pDatatype: LPSTR,
    pub pPrintProcessor: LPSTR,
    pub pParameters: LPSTR,
    pub pDriverName: LPSTR,
    pub pDevMode: LPDEVMODEA,
    pub pStatus: LPSTR,
    pub pSecurityDescriptor: PSECURITY_DESCRIPTOR,
    pub Status: DWORD,
    pub Priority: DWORD,
    pub Position: DWORD,
    pub StartTime: DWORD,
    pub UntilTime: DWORD,
    pub TotalPages: DWORD,
    pub Size: DWORD,
    pub Submitted: SYSTEMTIME,
    pub Time: DWORD,
    pub PagesPrinted: DWORD,
}
#[test]
fn bindgen_test_layout__JOB_INFO_2A() {
    assert_eq!(
        ::std::mem::size_of::<_JOB_INFO_2A>(),
        160usize,
        concat!("Size of: ", stringify!(_JOB_INFO_2A))
    );
    assert_eq!(
        ::std::mem::align_of::<_JOB_INFO_2A>(),
        8usize,
        concat!("Alignment of ", stringify!(_JOB_INFO_2A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2A>())).JobId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2A),
            "::",
            stringify!(JobId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2A>())).pPrinterName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2A),
            "::",
            stringify!(pPrinterName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2A>())).pMachineName as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2A),
            "::",
            stringify!(pMachineName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2A>())).pUserName as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2A),
            "::",
            stringify!(pUserName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2A>())).pDocument as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2A),
            "::",
            stringify!(pDocument)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2A>())).pNotifyName as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2A),
            "::",
            stringify!(pNotifyName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2A>())).pDatatype as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2A),
            "::",
            stringify!(pDatatype)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2A>())).pPrintProcessor as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2A),
            "::",
            stringify!(pPrintProcessor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2A>())).pParameters as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2A),
            "::",
            stringify!(pParameters)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2A>())).pDriverName as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2A),
            "::",
            stringify!(pDriverName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2A>())).pDevMode as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2A),
            "::",
            stringify!(pDevMode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2A>())).pStatus as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2A),
            "::",
            stringify!(pStatus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOB_INFO_2A>())).pSecurityDescriptor as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2A),
            "::",
            stringify!(pSecurityDescriptor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2A>())).Status as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2A),
            "::",
            stringify!(Status)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2A>())).Priority as *const _ as usize },
        108usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2A),
            "::",
            stringify!(Priority)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2A>())).Position as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2A),
            "::",
            stringify!(Position)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2A>())).StartTime as *const _ as usize },
        116usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2A),
            "::",
            stringify!(StartTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2A>())).UntilTime as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2A),
            "::",
            stringify!(UntilTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2A>())).TotalPages as *const _ as usize },
        124usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2A),
            "::",
            stringify!(TotalPages)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2A>())).Size as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2A),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2A>())).Submitted as *const _ as usize },
        132usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2A),
            "::",
            stringify!(Submitted)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2A>())).Time as *const _ as usize },
        148usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2A),
            "::",
            stringify!(Time)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2A>())).PagesPrinted as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2A),
            "::",
            stringify!(PagesPrinted)
        )
    );
}
pub type JOB_INFO_2A = _JOB_INFO_2A;
pub type PJOB_INFO_2A = *mut _JOB_INFO_2A;
pub type LPJOB_INFO_2A = *mut _JOB_INFO_2A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _JOB_INFO_2W {
    pub JobId: DWORD,
    pub pPrinterName: LPWSTR,
    pub pMachineName: LPWSTR,
    pub pUserName: LPWSTR,
    pub pDocument: LPWSTR,
    pub pNotifyName: LPWSTR,
    pub pDatatype: LPWSTR,
    pub pPrintProcessor: LPWSTR,
    pub pParameters: LPWSTR,
    pub pDriverName: LPWSTR,
    pub pDevMode: LPDEVMODEW,
    pub pStatus: LPWSTR,
    pub pSecurityDescriptor: PSECURITY_DESCRIPTOR,
    pub Status: DWORD,
    pub Priority: DWORD,
    pub Position: DWORD,
    pub StartTime: DWORD,
    pub UntilTime: DWORD,
    pub TotalPages: DWORD,
    pub Size: DWORD,
    pub Submitted: SYSTEMTIME,
    pub Time: DWORD,
    pub PagesPrinted: DWORD,
}
#[test]
fn bindgen_test_layout__JOB_INFO_2W() {
    assert_eq!(
        ::std::mem::size_of::<_JOB_INFO_2W>(),
        160usize,
        concat!("Size of: ", stringify!(_JOB_INFO_2W))
    );
    assert_eq!(
        ::std::mem::align_of::<_JOB_INFO_2W>(),
        8usize,
        concat!("Alignment of ", stringify!(_JOB_INFO_2W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2W>())).JobId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2W),
            "::",
            stringify!(JobId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2W>())).pPrinterName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2W),
            "::",
            stringify!(pPrinterName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2W>())).pMachineName as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2W),
            "::",
            stringify!(pMachineName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2W>())).pUserName as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2W),
            "::",
            stringify!(pUserName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2W>())).pDocument as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2W),
            "::",
            stringify!(pDocument)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2W>())).pNotifyName as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2W),
            "::",
            stringify!(pNotifyName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2W>())).pDatatype as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2W),
            "::",
            stringify!(pDatatype)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2W>())).pPrintProcessor as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2W),
            "::",
            stringify!(pPrintProcessor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2W>())).pParameters as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2W),
            "::",
            stringify!(pParameters)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2W>())).pDriverName as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2W),
            "::",
            stringify!(pDriverName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2W>())).pDevMode as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2W),
            "::",
            stringify!(pDevMode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2W>())).pStatus as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2W),
            "::",
            stringify!(pStatus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOB_INFO_2W>())).pSecurityDescriptor as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2W),
            "::",
            stringify!(pSecurityDescriptor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2W>())).Status as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2W),
            "::",
            stringify!(Status)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2W>())).Priority as *const _ as usize },
        108usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2W),
            "::",
            stringify!(Priority)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2W>())).Position as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2W),
            "::",
            stringify!(Position)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2W>())).StartTime as *const _ as usize },
        116usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2W),
            "::",
            stringify!(StartTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2W>())).UntilTime as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2W),
            "::",
            stringify!(UntilTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2W>())).TotalPages as *const _ as usize },
        124usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2W),
            "::",
            stringify!(TotalPages)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2W>())).Size as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2W),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2W>())).Submitted as *const _ as usize },
        132usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2W),
            "::",
            stringify!(Submitted)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2W>())).Time as *const _ as usize },
        148usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2W),
            "::",
            stringify!(Time)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_2W>())).PagesPrinted as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_2W),
            "::",
            stringify!(PagesPrinted)
        )
    );
}
pub type JOB_INFO_2W = _JOB_INFO_2W;
pub type PJOB_INFO_2W = *mut _JOB_INFO_2W;
pub type LPJOB_INFO_2W = *mut _JOB_INFO_2W;
pub type JOB_INFO_2 = JOB_INFO_2A;
pub type PJOB_INFO_2 = PJOB_INFO_2A;
pub type LPJOB_INFO_2 = LPJOB_INFO_2A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _JOB_INFO_3 {
    pub JobId: DWORD,
    pub NextJobId: DWORD,
    pub Reserved: DWORD,
}
#[test]
fn bindgen_test_layout__JOB_INFO_3() {
    assert_eq!(
        ::std::mem::size_of::<_JOB_INFO_3>(),
        12usize,
        concat!("Size of: ", stringify!(_JOB_INFO_3))
    );
    assert_eq!(
        ::std::mem::align_of::<_JOB_INFO_3>(),
        4usize,
        concat!("Alignment of ", stringify!(_JOB_INFO_3))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_3>())).JobId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_3),
            "::",
            stringify!(JobId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_3>())).NextJobId as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_3),
            "::",
            stringify!(NextJobId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_3>())).Reserved as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_3),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type JOB_INFO_3 = _JOB_INFO_3;
pub type PJOB_INFO_3 = *mut _JOB_INFO_3;
pub type LPJOB_INFO_3 = *mut _JOB_INFO_3;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _JOB_INFO_4A {
    pub JobId: DWORD,
    pub pPrinterName: LPSTR,
    pub pMachineName: LPSTR,
    pub pUserName: LPSTR,
    pub pDocument: LPSTR,
    pub pNotifyName: LPSTR,
    pub pDatatype: LPSTR,
    pub pPrintProcessor: LPSTR,
    pub pParameters: LPSTR,
    pub pDriverName: LPSTR,
    pub pDevMode: LPDEVMODEA,
    pub pStatus: LPSTR,
    pub pSecurityDescriptor: PSECURITY_DESCRIPTOR,
    pub Status: DWORD,
    pub Priority: DWORD,
    pub Position: DWORD,
    pub StartTime: DWORD,
    pub UntilTime: DWORD,
    pub TotalPages: DWORD,
    pub Size: DWORD,
    pub Submitted: SYSTEMTIME,
    pub Time: DWORD,
    pub PagesPrinted: DWORD,
    pub SizeHigh: LONG,
}
#[test]
fn bindgen_test_layout__JOB_INFO_4A() {
    assert_eq!(
        ::std::mem::size_of::<_JOB_INFO_4A>(),
        160usize,
        concat!("Size of: ", stringify!(_JOB_INFO_4A))
    );
    assert_eq!(
        ::std::mem::align_of::<_JOB_INFO_4A>(),
        8usize,
        concat!("Alignment of ", stringify!(_JOB_INFO_4A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4A>())).JobId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4A),
            "::",
            stringify!(JobId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4A>())).pPrinterName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4A),
            "::",
            stringify!(pPrinterName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4A>())).pMachineName as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4A),
            "::",
            stringify!(pMachineName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4A>())).pUserName as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4A),
            "::",
            stringify!(pUserName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4A>())).pDocument as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4A),
            "::",
            stringify!(pDocument)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4A>())).pNotifyName as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4A),
            "::",
            stringify!(pNotifyName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4A>())).pDatatype as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4A),
            "::",
            stringify!(pDatatype)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4A>())).pPrintProcessor as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4A),
            "::",
            stringify!(pPrintProcessor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4A>())).pParameters as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4A),
            "::",
            stringify!(pParameters)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4A>())).pDriverName as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4A),
            "::",
            stringify!(pDriverName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4A>())).pDevMode as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4A),
            "::",
            stringify!(pDevMode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4A>())).pStatus as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4A),
            "::",
            stringify!(pStatus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOB_INFO_4A>())).pSecurityDescriptor as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4A),
            "::",
            stringify!(pSecurityDescriptor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4A>())).Status as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4A),
            "::",
            stringify!(Status)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4A>())).Priority as *const _ as usize },
        108usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4A),
            "::",
            stringify!(Priority)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4A>())).Position as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4A),
            "::",
            stringify!(Position)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4A>())).StartTime as *const _ as usize },
        116usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4A),
            "::",
            stringify!(StartTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4A>())).UntilTime as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4A),
            "::",
            stringify!(UntilTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4A>())).TotalPages as *const _ as usize },
        124usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4A),
            "::",
            stringify!(TotalPages)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4A>())).Size as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4A),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4A>())).Submitted as *const _ as usize },
        132usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4A),
            "::",
            stringify!(Submitted)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4A>())).Time as *const _ as usize },
        148usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4A),
            "::",
            stringify!(Time)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4A>())).PagesPrinted as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4A),
            "::",
            stringify!(PagesPrinted)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4A>())).SizeHigh as *const _ as usize },
        156usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4A),
            "::",
            stringify!(SizeHigh)
        )
    );
}
pub type JOB_INFO_4A = _JOB_INFO_4A;
pub type PJOB_INFO_4A = *mut _JOB_INFO_4A;
pub type LPJOB_INFO_4A = *mut _JOB_INFO_4A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _JOB_INFO_4W {
    pub JobId: DWORD,
    pub pPrinterName: LPWSTR,
    pub pMachineName: LPWSTR,
    pub pUserName: LPWSTR,
    pub pDocument: LPWSTR,
    pub pNotifyName: LPWSTR,
    pub pDatatype: LPWSTR,
    pub pPrintProcessor: LPWSTR,
    pub pParameters: LPWSTR,
    pub pDriverName: LPWSTR,
    pub pDevMode: LPDEVMODEW,
    pub pStatus: LPWSTR,
    pub pSecurityDescriptor: PSECURITY_DESCRIPTOR,
    pub Status: DWORD,
    pub Priority: DWORD,
    pub Position: DWORD,
    pub StartTime: DWORD,
    pub UntilTime: DWORD,
    pub TotalPages: DWORD,
    pub Size: DWORD,
    pub Submitted: SYSTEMTIME,
    pub Time: DWORD,
    pub PagesPrinted: DWORD,
    pub SizeHigh: LONG,
}
#[test]
fn bindgen_test_layout__JOB_INFO_4W() {
    assert_eq!(
        ::std::mem::size_of::<_JOB_INFO_4W>(),
        160usize,
        concat!("Size of: ", stringify!(_JOB_INFO_4W))
    );
    assert_eq!(
        ::std::mem::align_of::<_JOB_INFO_4W>(),
        8usize,
        concat!("Alignment of ", stringify!(_JOB_INFO_4W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4W>())).JobId as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4W),
            "::",
            stringify!(JobId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4W>())).pPrinterName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4W),
            "::",
            stringify!(pPrinterName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4W>())).pMachineName as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4W),
            "::",
            stringify!(pMachineName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4W>())).pUserName as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4W),
            "::",
            stringify!(pUserName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4W>())).pDocument as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4W),
            "::",
            stringify!(pDocument)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4W>())).pNotifyName as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4W),
            "::",
            stringify!(pNotifyName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4W>())).pDatatype as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4W),
            "::",
            stringify!(pDatatype)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4W>())).pPrintProcessor as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4W),
            "::",
            stringify!(pPrintProcessor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4W>())).pParameters as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4W),
            "::",
            stringify!(pParameters)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4W>())).pDriverName as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4W),
            "::",
            stringify!(pDriverName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4W>())).pDevMode as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4W),
            "::",
            stringify!(pDevMode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4W>())).pStatus as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4W),
            "::",
            stringify!(pStatus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_JOB_INFO_4W>())).pSecurityDescriptor as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4W),
            "::",
            stringify!(pSecurityDescriptor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4W>())).Status as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4W),
            "::",
            stringify!(Status)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4W>())).Priority as *const _ as usize },
        108usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4W),
            "::",
            stringify!(Priority)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4W>())).Position as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4W),
            "::",
            stringify!(Position)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4W>())).StartTime as *const _ as usize },
        116usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4W),
            "::",
            stringify!(StartTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4W>())).UntilTime as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4W),
            "::",
            stringify!(UntilTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4W>())).TotalPages as *const _ as usize },
        124usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4W),
            "::",
            stringify!(TotalPages)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4W>())).Size as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4W),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4W>())).Submitted as *const _ as usize },
        132usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4W),
            "::",
            stringify!(Submitted)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4W>())).Time as *const _ as usize },
        148usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4W),
            "::",
            stringify!(Time)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4W>())).PagesPrinted as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4W),
            "::",
            stringify!(PagesPrinted)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_JOB_INFO_4W>())).SizeHigh as *const _ as usize },
        156usize,
        concat!(
            "Offset of field: ",
            stringify!(_JOB_INFO_4W),
            "::",
            stringify!(SizeHigh)
        )
    );
}
pub type JOB_INFO_4W = _JOB_INFO_4W;
pub type PJOB_INFO_4W = *mut _JOB_INFO_4W;
pub type LPJOB_INFO_4W = *mut _JOB_INFO_4W;
pub type JOB_INFO_4 = JOB_INFO_4A;
pub type PJOB_INFO_4 = PJOB_INFO_4A;
pub type LPJOB_INFO_4 = LPJOB_INFO_4A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ADDJOB_INFO_1A {
    pub Path: LPSTR,
    pub JobId: DWORD,
}
#[test]
fn bindgen_test_layout__ADDJOB_INFO_1A() {
    assert_eq!(
        ::std::mem::size_of::<_ADDJOB_INFO_1A>(),
        16usize,
        concat!("Size of: ", stringify!(_ADDJOB_INFO_1A))
    );
    assert_eq!(
        ::std::mem::align_of::<_ADDJOB_INFO_1A>(),
        8usize,
        concat!("Alignment of ", stringify!(_ADDJOB_INFO_1A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ADDJOB_INFO_1A>())).Path as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADDJOB_INFO_1A),
            "::",
            stringify!(Path)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ADDJOB_INFO_1A>())).JobId as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADDJOB_INFO_1A),
            "::",
            stringify!(JobId)
        )
    );
}
pub type ADDJOB_INFO_1A = _ADDJOB_INFO_1A;
pub type PADDJOB_INFO_1A = *mut _ADDJOB_INFO_1A;
pub type LPADDJOB_INFO_1A = *mut _ADDJOB_INFO_1A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ADDJOB_INFO_1W {
    pub Path: LPWSTR,
    pub JobId: DWORD,
}
#[test]
fn bindgen_test_layout__ADDJOB_INFO_1W() {
    assert_eq!(
        ::std::mem::size_of::<_ADDJOB_INFO_1W>(),
        16usize,
        concat!("Size of: ", stringify!(_ADDJOB_INFO_1W))
    );
    assert_eq!(
        ::std::mem::align_of::<_ADDJOB_INFO_1W>(),
        8usize,
        concat!("Alignment of ", stringify!(_ADDJOB_INFO_1W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ADDJOB_INFO_1W>())).Path as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADDJOB_INFO_1W),
            "::",
            stringify!(Path)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ADDJOB_INFO_1W>())).JobId as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ADDJOB_INFO_1W),
            "::",
            stringify!(JobId)
        )
    );
}
pub type ADDJOB_INFO_1W = _ADDJOB_INFO_1W;
pub type PADDJOB_INFO_1W = *mut _ADDJOB_INFO_1W;
pub type LPADDJOB_INFO_1W = *mut _ADDJOB_INFO_1W;
pub type ADDJOB_INFO_1 = ADDJOB_INFO_1A;
pub type PADDJOB_INFO_1 = PADDJOB_INFO_1A;
pub type LPADDJOB_INFO_1 = LPADDJOB_INFO_1A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DRIVER_INFO_1A {
    pub pName: LPSTR,
}
#[test]
fn bindgen_test_layout__DRIVER_INFO_1A() {
    assert_eq!(
        ::std::mem::size_of::<_DRIVER_INFO_1A>(),
        8usize,
        concat!("Size of: ", stringify!(_DRIVER_INFO_1A))
    );
    assert_eq!(
        ::std::mem::align_of::<_DRIVER_INFO_1A>(),
        8usize,
        concat!("Alignment of ", stringify!(_DRIVER_INFO_1A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_1A>())).pName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_1A),
            "::",
            stringify!(pName)
        )
    );
}
pub type DRIVER_INFO_1A = _DRIVER_INFO_1A;
pub type PDRIVER_INFO_1A = *mut _DRIVER_INFO_1A;
pub type LPDRIVER_INFO_1A = *mut _DRIVER_INFO_1A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DRIVER_INFO_1W {
    pub pName: LPWSTR,
}
#[test]
fn bindgen_test_layout__DRIVER_INFO_1W() {
    assert_eq!(
        ::std::mem::size_of::<_DRIVER_INFO_1W>(),
        8usize,
        concat!("Size of: ", stringify!(_DRIVER_INFO_1W))
    );
    assert_eq!(
        ::std::mem::align_of::<_DRIVER_INFO_1W>(),
        8usize,
        concat!("Alignment of ", stringify!(_DRIVER_INFO_1W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_1W>())).pName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_1W),
            "::",
            stringify!(pName)
        )
    );
}
pub type DRIVER_INFO_1W = _DRIVER_INFO_1W;
pub type PDRIVER_INFO_1W = *mut _DRIVER_INFO_1W;
pub type LPDRIVER_INFO_1W = *mut _DRIVER_INFO_1W;
pub type DRIVER_INFO_1 = DRIVER_INFO_1A;
pub type PDRIVER_INFO_1 = PDRIVER_INFO_1A;
pub type LPDRIVER_INFO_1 = LPDRIVER_INFO_1A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DRIVER_INFO_2A {
    pub cVersion: DWORD,
    pub pName: LPSTR,
    pub pEnvironment: LPSTR,
    pub pDriverPath: LPSTR,
    pub pDataFile: LPSTR,
    pub pConfigFile: LPSTR,
}
#[test]
fn bindgen_test_layout__DRIVER_INFO_2A() {
    assert_eq!(
        ::std::mem::size_of::<_DRIVER_INFO_2A>(),
        48usize,
        concat!("Size of: ", stringify!(_DRIVER_INFO_2A))
    );
    assert_eq!(
        ::std::mem::align_of::<_DRIVER_INFO_2A>(),
        8usize,
        concat!("Alignment of ", stringify!(_DRIVER_INFO_2A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_2A>())).cVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_2A),
            "::",
            stringify!(cVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_2A>())).pName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_2A),
            "::",
            stringify!(pName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_2A>())).pEnvironment as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_2A),
            "::",
            stringify!(pEnvironment)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_2A>())).pDriverPath as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_2A),
            "::",
            stringify!(pDriverPath)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_2A>())).pDataFile as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_2A),
            "::",
            stringify!(pDataFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_2A>())).pConfigFile as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_2A),
            "::",
            stringify!(pConfigFile)
        )
    );
}
pub type DRIVER_INFO_2A = _DRIVER_INFO_2A;
pub type PDRIVER_INFO_2A = *mut _DRIVER_INFO_2A;
pub type LPDRIVER_INFO_2A = *mut _DRIVER_INFO_2A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DRIVER_INFO_2W {
    pub cVersion: DWORD,
    pub pName: LPWSTR,
    pub pEnvironment: LPWSTR,
    pub pDriverPath: LPWSTR,
    pub pDataFile: LPWSTR,
    pub pConfigFile: LPWSTR,
}
#[test]
fn bindgen_test_layout__DRIVER_INFO_2W() {
    assert_eq!(
        ::std::mem::size_of::<_DRIVER_INFO_2W>(),
        48usize,
        concat!("Size of: ", stringify!(_DRIVER_INFO_2W))
    );
    assert_eq!(
        ::std::mem::align_of::<_DRIVER_INFO_2W>(),
        8usize,
        concat!("Alignment of ", stringify!(_DRIVER_INFO_2W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_2W>())).cVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_2W),
            "::",
            stringify!(cVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_2W>())).pName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_2W),
            "::",
            stringify!(pName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_2W>())).pEnvironment as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_2W),
            "::",
            stringify!(pEnvironment)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_2W>())).pDriverPath as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_2W),
            "::",
            stringify!(pDriverPath)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_2W>())).pDataFile as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_2W),
            "::",
            stringify!(pDataFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_2W>())).pConfigFile as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_2W),
            "::",
            stringify!(pConfigFile)
        )
    );
}
pub type DRIVER_INFO_2W = _DRIVER_INFO_2W;
pub type PDRIVER_INFO_2W = *mut _DRIVER_INFO_2W;
pub type LPDRIVER_INFO_2W = *mut _DRIVER_INFO_2W;
pub type DRIVER_INFO_2 = DRIVER_INFO_2A;
pub type PDRIVER_INFO_2 = PDRIVER_INFO_2A;
pub type LPDRIVER_INFO_2 = LPDRIVER_INFO_2A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DRIVER_INFO_3A {
    pub cVersion: DWORD,
    pub pName: LPSTR,
    pub pEnvironment: LPSTR,
    pub pDriverPath: LPSTR,
    pub pDataFile: LPSTR,
    pub pConfigFile: LPSTR,
    pub pHelpFile: LPSTR,
    pub pDependentFiles: LPSTR,
    pub pMonitorName: LPSTR,
    pub pDefaultDataType: LPSTR,
}
#[test]
fn bindgen_test_layout__DRIVER_INFO_3A() {
    assert_eq!(
        ::std::mem::size_of::<_DRIVER_INFO_3A>(),
        80usize,
        concat!("Size of: ", stringify!(_DRIVER_INFO_3A))
    );
    assert_eq!(
        ::std::mem::align_of::<_DRIVER_INFO_3A>(),
        8usize,
        concat!("Alignment of ", stringify!(_DRIVER_INFO_3A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_3A>())).cVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_3A),
            "::",
            stringify!(cVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_3A>())).pName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_3A),
            "::",
            stringify!(pName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_3A>())).pEnvironment as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_3A),
            "::",
            stringify!(pEnvironment)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_3A>())).pDriverPath as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_3A),
            "::",
            stringify!(pDriverPath)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_3A>())).pDataFile as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_3A),
            "::",
            stringify!(pDataFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_3A>())).pConfigFile as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_3A),
            "::",
            stringify!(pConfigFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_3A>())).pHelpFile as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_3A),
            "::",
            stringify!(pHelpFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_3A>())).pDependentFiles as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_3A),
            "::",
            stringify!(pDependentFiles)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_3A>())).pMonitorName as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_3A),
            "::",
            stringify!(pMonitorName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVER_INFO_3A>())).pDefaultDataType as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_3A),
            "::",
            stringify!(pDefaultDataType)
        )
    );
}
pub type DRIVER_INFO_3A = _DRIVER_INFO_3A;
pub type PDRIVER_INFO_3A = *mut _DRIVER_INFO_3A;
pub type LPDRIVER_INFO_3A = *mut _DRIVER_INFO_3A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DRIVER_INFO_3W {
    pub cVersion: DWORD,
    pub pName: LPWSTR,
    pub pEnvironment: LPWSTR,
    pub pDriverPath: LPWSTR,
    pub pDataFile: LPWSTR,
    pub pConfigFile: LPWSTR,
    pub pHelpFile: LPWSTR,
    pub pDependentFiles: LPWSTR,
    pub pMonitorName: LPWSTR,
    pub pDefaultDataType: LPWSTR,
}
#[test]
fn bindgen_test_layout__DRIVER_INFO_3W() {
    assert_eq!(
        ::std::mem::size_of::<_DRIVER_INFO_3W>(),
        80usize,
        concat!("Size of: ", stringify!(_DRIVER_INFO_3W))
    );
    assert_eq!(
        ::std::mem::align_of::<_DRIVER_INFO_3W>(),
        8usize,
        concat!("Alignment of ", stringify!(_DRIVER_INFO_3W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_3W>())).cVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_3W),
            "::",
            stringify!(cVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_3W>())).pName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_3W),
            "::",
            stringify!(pName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_3W>())).pEnvironment as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_3W),
            "::",
            stringify!(pEnvironment)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_3W>())).pDriverPath as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_3W),
            "::",
            stringify!(pDriverPath)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_3W>())).pDataFile as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_3W),
            "::",
            stringify!(pDataFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_3W>())).pConfigFile as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_3W),
            "::",
            stringify!(pConfigFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_3W>())).pHelpFile as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_3W),
            "::",
            stringify!(pHelpFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_3W>())).pDependentFiles as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_3W),
            "::",
            stringify!(pDependentFiles)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_3W>())).pMonitorName as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_3W),
            "::",
            stringify!(pMonitorName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVER_INFO_3W>())).pDefaultDataType as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_3W),
            "::",
            stringify!(pDefaultDataType)
        )
    );
}
pub type DRIVER_INFO_3W = _DRIVER_INFO_3W;
pub type PDRIVER_INFO_3W = *mut _DRIVER_INFO_3W;
pub type LPDRIVER_INFO_3W = *mut _DRIVER_INFO_3W;
pub type DRIVER_INFO_3 = DRIVER_INFO_3A;
pub type PDRIVER_INFO_3 = PDRIVER_INFO_3A;
pub type LPDRIVER_INFO_3 = LPDRIVER_INFO_3A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DRIVER_INFO_4A {
    pub cVersion: DWORD,
    pub pName: LPSTR,
    pub pEnvironment: LPSTR,
    pub pDriverPath: LPSTR,
    pub pDataFile: LPSTR,
    pub pConfigFile: LPSTR,
    pub pHelpFile: LPSTR,
    pub pDependentFiles: LPSTR,
    pub pMonitorName: LPSTR,
    pub pDefaultDataType: LPSTR,
    pub pszzPreviousNames: LPSTR,
}
#[test]
fn bindgen_test_layout__DRIVER_INFO_4A() {
    assert_eq!(
        ::std::mem::size_of::<_DRIVER_INFO_4A>(),
        88usize,
        concat!("Size of: ", stringify!(_DRIVER_INFO_4A))
    );
    assert_eq!(
        ::std::mem::align_of::<_DRIVER_INFO_4A>(),
        8usize,
        concat!("Alignment of ", stringify!(_DRIVER_INFO_4A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_4A>())).cVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_4A),
            "::",
            stringify!(cVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_4A>())).pName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_4A),
            "::",
            stringify!(pName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_4A>())).pEnvironment as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_4A),
            "::",
            stringify!(pEnvironment)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_4A>())).pDriverPath as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_4A),
            "::",
            stringify!(pDriverPath)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_4A>())).pDataFile as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_4A),
            "::",
            stringify!(pDataFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_4A>())).pConfigFile as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_4A),
            "::",
            stringify!(pConfigFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_4A>())).pHelpFile as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_4A),
            "::",
            stringify!(pHelpFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_4A>())).pDependentFiles as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_4A),
            "::",
            stringify!(pDependentFiles)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_4A>())).pMonitorName as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_4A),
            "::",
            stringify!(pMonitorName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVER_INFO_4A>())).pDefaultDataType as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_4A),
            "::",
            stringify!(pDefaultDataType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVER_INFO_4A>())).pszzPreviousNames as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_4A),
            "::",
            stringify!(pszzPreviousNames)
        )
    );
}
pub type DRIVER_INFO_4A = _DRIVER_INFO_4A;
pub type PDRIVER_INFO_4A = *mut _DRIVER_INFO_4A;
pub type LPDRIVER_INFO_4A = *mut _DRIVER_INFO_4A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DRIVER_INFO_4W {
    pub cVersion: DWORD,
    pub pName: LPWSTR,
    pub pEnvironment: LPWSTR,
    pub pDriverPath: LPWSTR,
    pub pDataFile: LPWSTR,
    pub pConfigFile: LPWSTR,
    pub pHelpFile: LPWSTR,
    pub pDependentFiles: LPWSTR,
    pub pMonitorName: LPWSTR,
    pub pDefaultDataType: LPWSTR,
    pub pszzPreviousNames: LPWSTR,
}
#[test]
fn bindgen_test_layout__DRIVER_INFO_4W() {
    assert_eq!(
        ::std::mem::size_of::<_DRIVER_INFO_4W>(),
        88usize,
        concat!("Size of: ", stringify!(_DRIVER_INFO_4W))
    );
    assert_eq!(
        ::std::mem::align_of::<_DRIVER_INFO_4W>(),
        8usize,
        concat!("Alignment of ", stringify!(_DRIVER_INFO_4W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_4W>())).cVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_4W),
            "::",
            stringify!(cVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_4W>())).pName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_4W),
            "::",
            stringify!(pName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_4W>())).pEnvironment as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_4W),
            "::",
            stringify!(pEnvironment)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_4W>())).pDriverPath as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_4W),
            "::",
            stringify!(pDriverPath)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_4W>())).pDataFile as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_4W),
            "::",
            stringify!(pDataFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_4W>())).pConfigFile as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_4W),
            "::",
            stringify!(pConfigFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_4W>())).pHelpFile as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_4W),
            "::",
            stringify!(pHelpFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_4W>())).pDependentFiles as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_4W),
            "::",
            stringify!(pDependentFiles)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_4W>())).pMonitorName as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_4W),
            "::",
            stringify!(pMonitorName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVER_INFO_4W>())).pDefaultDataType as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_4W),
            "::",
            stringify!(pDefaultDataType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVER_INFO_4W>())).pszzPreviousNames as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_4W),
            "::",
            stringify!(pszzPreviousNames)
        )
    );
}
pub type DRIVER_INFO_4W = _DRIVER_INFO_4W;
pub type PDRIVER_INFO_4W = *mut _DRIVER_INFO_4W;
pub type LPDRIVER_INFO_4W = *mut _DRIVER_INFO_4W;
pub type DRIVER_INFO_4 = DRIVER_INFO_4A;
pub type PDRIVER_INFO_4 = PDRIVER_INFO_4A;
pub type LPDRIVER_INFO_4 = LPDRIVER_INFO_4A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DRIVER_INFO_5A {
    pub cVersion: DWORD,
    pub pName: LPSTR,
    pub pEnvironment: LPSTR,
    pub pDriverPath: LPSTR,
    pub pDataFile: LPSTR,
    pub pConfigFile: LPSTR,
    pub dwDriverAttributes: DWORD,
    pub dwConfigVersion: DWORD,
    pub dwDriverVersion: DWORD,
}
#[test]
fn bindgen_test_layout__DRIVER_INFO_5A() {
    assert_eq!(
        ::std::mem::size_of::<_DRIVER_INFO_5A>(),
        64usize,
        concat!("Size of: ", stringify!(_DRIVER_INFO_5A))
    );
    assert_eq!(
        ::std::mem::align_of::<_DRIVER_INFO_5A>(),
        8usize,
        concat!("Alignment of ", stringify!(_DRIVER_INFO_5A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_5A>())).cVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_5A),
            "::",
            stringify!(cVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_5A>())).pName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_5A),
            "::",
            stringify!(pName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_5A>())).pEnvironment as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_5A),
            "::",
            stringify!(pEnvironment)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_5A>())).pDriverPath as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_5A),
            "::",
            stringify!(pDriverPath)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_5A>())).pDataFile as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_5A),
            "::",
            stringify!(pDataFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_5A>())).pConfigFile as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_5A),
            "::",
            stringify!(pConfigFile)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVER_INFO_5A>())).dwDriverAttributes as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_5A),
            "::",
            stringify!(dwDriverAttributes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_5A>())).dwConfigVersion as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_5A),
            "::",
            stringify!(dwConfigVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_5A>())).dwDriverVersion as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_5A),
            "::",
            stringify!(dwDriverVersion)
        )
    );
}
pub type DRIVER_INFO_5A = _DRIVER_INFO_5A;
pub type PDRIVER_INFO_5A = *mut _DRIVER_INFO_5A;
pub type LPDRIVER_INFO_5A = *mut _DRIVER_INFO_5A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DRIVER_INFO_5W {
    pub cVersion: DWORD,
    pub pName: LPWSTR,
    pub pEnvironment: LPWSTR,
    pub pDriverPath: LPWSTR,
    pub pDataFile: LPWSTR,
    pub pConfigFile: LPWSTR,
    pub dwDriverAttributes: DWORD,
    pub dwConfigVersion: DWORD,
    pub dwDriverVersion: DWORD,
}
#[test]
fn bindgen_test_layout__DRIVER_INFO_5W() {
    assert_eq!(
        ::std::mem::size_of::<_DRIVER_INFO_5W>(),
        64usize,
        concat!("Size of: ", stringify!(_DRIVER_INFO_5W))
    );
    assert_eq!(
        ::std::mem::align_of::<_DRIVER_INFO_5W>(),
        8usize,
        concat!("Alignment of ", stringify!(_DRIVER_INFO_5W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_5W>())).cVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_5W),
            "::",
            stringify!(cVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_5W>())).pName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_5W),
            "::",
            stringify!(pName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_5W>())).pEnvironment as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_5W),
            "::",
            stringify!(pEnvironment)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_5W>())).pDriverPath as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_5W),
            "::",
            stringify!(pDriverPath)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_5W>())).pDataFile as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_5W),
            "::",
            stringify!(pDataFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_5W>())).pConfigFile as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_5W),
            "::",
            stringify!(pConfigFile)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVER_INFO_5W>())).dwDriverAttributes as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_5W),
            "::",
            stringify!(dwDriverAttributes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_5W>())).dwConfigVersion as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_5W),
            "::",
            stringify!(dwConfigVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_5W>())).dwDriverVersion as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_5W),
            "::",
            stringify!(dwDriverVersion)
        )
    );
}
pub type DRIVER_INFO_5W = _DRIVER_INFO_5W;
pub type PDRIVER_INFO_5W = *mut _DRIVER_INFO_5W;
pub type LPDRIVER_INFO_5W = *mut _DRIVER_INFO_5W;
pub type DRIVER_INFO_5 = DRIVER_INFO_5A;
pub type PDRIVER_INFO_5 = PDRIVER_INFO_5A;
pub type LPDRIVER_INFO_5 = LPDRIVER_INFO_5A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DRIVER_INFO_6A {
    pub cVersion: DWORD,
    pub pName: LPSTR,
    pub pEnvironment: LPSTR,
    pub pDriverPath: LPSTR,
    pub pDataFile: LPSTR,
    pub pConfigFile: LPSTR,
    pub pHelpFile: LPSTR,
    pub pDependentFiles: LPSTR,
    pub pMonitorName: LPSTR,
    pub pDefaultDataType: LPSTR,
    pub pszzPreviousNames: LPSTR,
    pub ftDriverDate: FILETIME,
    pub dwlDriverVersion: DWORDLONG,
    pub pszMfgName: LPSTR,
    pub pszOEMUrl: LPSTR,
    pub pszHardwareID: LPSTR,
    pub pszProvider: LPSTR,
}
#[test]
fn bindgen_test_layout__DRIVER_INFO_6A() {
    assert_eq!(
        ::std::mem::size_of::<_DRIVER_INFO_6A>(),
        136usize,
        concat!("Size of: ", stringify!(_DRIVER_INFO_6A))
    );
    assert_eq!(
        ::std::mem::align_of::<_DRIVER_INFO_6A>(),
        8usize,
        concat!("Alignment of ", stringify!(_DRIVER_INFO_6A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_6A>())).cVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6A),
            "::",
            stringify!(cVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_6A>())).pName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6A),
            "::",
            stringify!(pName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_6A>())).pEnvironment as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6A),
            "::",
            stringify!(pEnvironment)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_6A>())).pDriverPath as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6A),
            "::",
            stringify!(pDriverPath)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_6A>())).pDataFile as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6A),
            "::",
            stringify!(pDataFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_6A>())).pConfigFile as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6A),
            "::",
            stringify!(pConfigFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_6A>())).pHelpFile as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6A),
            "::",
            stringify!(pHelpFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_6A>())).pDependentFiles as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6A),
            "::",
            stringify!(pDependentFiles)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_6A>())).pMonitorName as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6A),
            "::",
            stringify!(pMonitorName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVER_INFO_6A>())).pDefaultDataType as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6A),
            "::",
            stringify!(pDefaultDataType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVER_INFO_6A>())).pszzPreviousNames as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6A),
            "::",
            stringify!(pszzPreviousNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_6A>())).ftDriverDate as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6A),
            "::",
            stringify!(ftDriverDate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVER_INFO_6A>())).dwlDriverVersion as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6A),
            "::",
            stringify!(dwlDriverVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_6A>())).pszMfgName as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6A),
            "::",
            stringify!(pszMfgName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_6A>())).pszOEMUrl as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6A),
            "::",
            stringify!(pszOEMUrl)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_6A>())).pszHardwareID as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6A),
            "::",
            stringify!(pszHardwareID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_6A>())).pszProvider as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6A),
            "::",
            stringify!(pszProvider)
        )
    );
}
pub type DRIVER_INFO_6A = _DRIVER_INFO_6A;
pub type PDRIVER_INFO_6A = *mut _DRIVER_INFO_6A;
pub type LPDRIVER_INFO_6A = *mut _DRIVER_INFO_6A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DRIVER_INFO_6W {
    pub cVersion: DWORD,
    pub pName: LPWSTR,
    pub pEnvironment: LPWSTR,
    pub pDriverPath: LPWSTR,
    pub pDataFile: LPWSTR,
    pub pConfigFile: LPWSTR,
    pub pHelpFile: LPWSTR,
    pub pDependentFiles: LPWSTR,
    pub pMonitorName: LPWSTR,
    pub pDefaultDataType: LPWSTR,
    pub pszzPreviousNames: LPWSTR,
    pub ftDriverDate: FILETIME,
    pub dwlDriverVersion: DWORDLONG,
    pub pszMfgName: LPWSTR,
    pub pszOEMUrl: LPWSTR,
    pub pszHardwareID: LPWSTR,
    pub pszProvider: LPWSTR,
}
#[test]
fn bindgen_test_layout__DRIVER_INFO_6W() {
    assert_eq!(
        ::std::mem::size_of::<_DRIVER_INFO_6W>(),
        136usize,
        concat!("Size of: ", stringify!(_DRIVER_INFO_6W))
    );
    assert_eq!(
        ::std::mem::align_of::<_DRIVER_INFO_6W>(),
        8usize,
        concat!("Alignment of ", stringify!(_DRIVER_INFO_6W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_6W>())).cVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6W),
            "::",
            stringify!(cVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_6W>())).pName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6W),
            "::",
            stringify!(pName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_6W>())).pEnvironment as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6W),
            "::",
            stringify!(pEnvironment)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_6W>())).pDriverPath as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6W),
            "::",
            stringify!(pDriverPath)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_6W>())).pDataFile as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6W),
            "::",
            stringify!(pDataFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_6W>())).pConfigFile as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6W),
            "::",
            stringify!(pConfigFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_6W>())).pHelpFile as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6W),
            "::",
            stringify!(pHelpFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_6W>())).pDependentFiles as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6W),
            "::",
            stringify!(pDependentFiles)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_6W>())).pMonitorName as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6W),
            "::",
            stringify!(pMonitorName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVER_INFO_6W>())).pDefaultDataType as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6W),
            "::",
            stringify!(pDefaultDataType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVER_INFO_6W>())).pszzPreviousNames as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6W),
            "::",
            stringify!(pszzPreviousNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_6W>())).ftDriverDate as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6W),
            "::",
            stringify!(ftDriverDate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVER_INFO_6W>())).dwlDriverVersion as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6W),
            "::",
            stringify!(dwlDriverVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_6W>())).pszMfgName as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6W),
            "::",
            stringify!(pszMfgName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_6W>())).pszOEMUrl as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6W),
            "::",
            stringify!(pszOEMUrl)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_6W>())).pszHardwareID as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6W),
            "::",
            stringify!(pszHardwareID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_6W>())).pszProvider as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_6W),
            "::",
            stringify!(pszProvider)
        )
    );
}
pub type DRIVER_INFO_6W = _DRIVER_INFO_6W;
pub type PDRIVER_INFO_6W = *mut _DRIVER_INFO_6W;
pub type LPDRIVER_INFO_6W = *mut _DRIVER_INFO_6W;
pub type DRIVER_INFO_6 = DRIVER_INFO_6A;
pub type PDRIVER_INFO_6 = PDRIVER_INFO_6A;
pub type LPDRIVER_INFO_6 = LPDRIVER_INFO_6A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DRIVER_INFO_8A {
    pub cVersion: DWORD,
    pub pName: LPSTR,
    pub pEnvironment: LPSTR,
    pub pDriverPath: LPSTR,
    pub pDataFile: LPSTR,
    pub pConfigFile: LPSTR,
    pub pHelpFile: LPSTR,
    pub pDependentFiles: LPSTR,
    pub pMonitorName: LPSTR,
    pub pDefaultDataType: LPSTR,
    pub pszzPreviousNames: LPSTR,
    pub ftDriverDate: FILETIME,
    pub dwlDriverVersion: DWORDLONG,
    pub pszMfgName: LPSTR,
    pub pszOEMUrl: LPSTR,
    pub pszHardwareID: LPSTR,
    pub pszProvider: LPSTR,
    pub pszPrintProcessor: LPSTR,
    pub pszVendorSetup: LPSTR,
    pub pszzColorProfiles: LPSTR,
    pub pszInfPath: LPSTR,
    pub dwPrinterDriverAttributes: DWORD,
    pub pszzCoreDriverDependencies: LPSTR,
    pub ftMinInboxDriverVerDate: FILETIME,
    pub dwlMinInboxDriverVerVersion: DWORDLONG,
}
#[test]
fn bindgen_test_layout__DRIVER_INFO_8A() {
    assert_eq!(
        ::std::mem::size_of::<_DRIVER_INFO_8A>(),
        200usize,
        concat!("Size of: ", stringify!(_DRIVER_INFO_8A))
    );
    assert_eq!(
        ::std::mem::align_of::<_DRIVER_INFO_8A>(),
        8usize,
        concat!("Alignment of ", stringify!(_DRIVER_INFO_8A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_8A>())).cVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8A),
            "::",
            stringify!(cVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_8A>())).pName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8A),
            "::",
            stringify!(pName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_8A>())).pEnvironment as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8A),
            "::",
            stringify!(pEnvironment)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_8A>())).pDriverPath as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8A),
            "::",
            stringify!(pDriverPath)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_8A>())).pDataFile as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8A),
            "::",
            stringify!(pDataFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_8A>())).pConfigFile as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8A),
            "::",
            stringify!(pConfigFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_8A>())).pHelpFile as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8A),
            "::",
            stringify!(pHelpFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_8A>())).pDependentFiles as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8A),
            "::",
            stringify!(pDependentFiles)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_8A>())).pMonitorName as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8A),
            "::",
            stringify!(pMonitorName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVER_INFO_8A>())).pDefaultDataType as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8A),
            "::",
            stringify!(pDefaultDataType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVER_INFO_8A>())).pszzPreviousNames as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8A),
            "::",
            stringify!(pszzPreviousNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_8A>())).ftDriverDate as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8A),
            "::",
            stringify!(ftDriverDate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVER_INFO_8A>())).dwlDriverVersion as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8A),
            "::",
            stringify!(dwlDriverVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_8A>())).pszMfgName as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8A),
            "::",
            stringify!(pszMfgName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_8A>())).pszOEMUrl as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8A),
            "::",
            stringify!(pszOEMUrl)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_8A>())).pszHardwareID as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8A),
            "::",
            stringify!(pszHardwareID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_8A>())).pszProvider as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8A),
            "::",
            stringify!(pszProvider)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVER_INFO_8A>())).pszPrintProcessor as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8A),
            "::",
            stringify!(pszPrintProcessor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_8A>())).pszVendorSetup as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8A),
            "::",
            stringify!(pszVendorSetup)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVER_INFO_8A>())).pszzColorProfiles as *const _ as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8A),
            "::",
            stringify!(pszzColorProfiles)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_8A>())).pszInfPath as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8A),
            "::",
            stringify!(pszInfPath)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVER_INFO_8A>())).dwPrinterDriverAttributes as *const _
                as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8A),
            "::",
            stringify!(dwPrinterDriverAttributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVER_INFO_8A>())).pszzCoreDriverDependencies as *const _
                as usize
        },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8A),
            "::",
            stringify!(pszzCoreDriverDependencies)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVER_INFO_8A>())).ftMinInboxDriverVerDate as *const _ as usize
        },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8A),
            "::",
            stringify!(ftMinInboxDriverVerDate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVER_INFO_8A>())).dwlMinInboxDriverVerVersion as *const _
                as usize
        },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8A),
            "::",
            stringify!(dwlMinInboxDriverVerVersion)
        )
    );
}
pub type DRIVER_INFO_8A = _DRIVER_INFO_8A;
pub type PDRIVER_INFO_8A = *mut _DRIVER_INFO_8A;
pub type LPDRIVER_INFO_8A = *mut _DRIVER_INFO_8A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DRIVER_INFO_8W {
    pub cVersion: DWORD,
    pub pName: LPWSTR,
    pub pEnvironment: LPWSTR,
    pub pDriverPath: LPWSTR,
    pub pDataFile: LPWSTR,
    pub pConfigFile: LPWSTR,
    pub pHelpFile: LPWSTR,
    pub pDependentFiles: LPWSTR,
    pub pMonitorName: LPWSTR,
    pub pDefaultDataType: LPWSTR,
    pub pszzPreviousNames: LPWSTR,
    pub ftDriverDate: FILETIME,
    pub dwlDriverVersion: DWORDLONG,
    pub pszMfgName: LPWSTR,
    pub pszOEMUrl: LPWSTR,
    pub pszHardwareID: LPWSTR,
    pub pszProvider: LPWSTR,
    pub pszPrintProcessor: LPWSTR,
    pub pszVendorSetup: LPWSTR,
    pub pszzColorProfiles: LPWSTR,
    pub pszInfPath: LPWSTR,
    pub dwPrinterDriverAttributes: DWORD,
    pub pszzCoreDriverDependencies: LPWSTR,
    pub ftMinInboxDriverVerDate: FILETIME,
    pub dwlMinInboxDriverVerVersion: DWORDLONG,
}
#[test]
fn bindgen_test_layout__DRIVER_INFO_8W() {
    assert_eq!(
        ::std::mem::size_of::<_DRIVER_INFO_8W>(),
        200usize,
        concat!("Size of: ", stringify!(_DRIVER_INFO_8W))
    );
    assert_eq!(
        ::std::mem::align_of::<_DRIVER_INFO_8W>(),
        8usize,
        concat!("Alignment of ", stringify!(_DRIVER_INFO_8W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_8W>())).cVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8W),
            "::",
            stringify!(cVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_8W>())).pName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8W),
            "::",
            stringify!(pName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_8W>())).pEnvironment as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8W),
            "::",
            stringify!(pEnvironment)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_8W>())).pDriverPath as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8W),
            "::",
            stringify!(pDriverPath)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_8W>())).pDataFile as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8W),
            "::",
            stringify!(pDataFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_8W>())).pConfigFile as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8W),
            "::",
            stringify!(pConfigFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_8W>())).pHelpFile as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8W),
            "::",
            stringify!(pHelpFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_8W>())).pDependentFiles as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8W),
            "::",
            stringify!(pDependentFiles)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_8W>())).pMonitorName as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8W),
            "::",
            stringify!(pMonitorName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVER_INFO_8W>())).pDefaultDataType as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8W),
            "::",
            stringify!(pDefaultDataType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVER_INFO_8W>())).pszzPreviousNames as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8W),
            "::",
            stringify!(pszzPreviousNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_8W>())).ftDriverDate as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8W),
            "::",
            stringify!(ftDriverDate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVER_INFO_8W>())).dwlDriverVersion as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8W),
            "::",
            stringify!(dwlDriverVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_8W>())).pszMfgName as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8W),
            "::",
            stringify!(pszMfgName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_8W>())).pszOEMUrl as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8W),
            "::",
            stringify!(pszOEMUrl)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_8W>())).pszHardwareID as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8W),
            "::",
            stringify!(pszHardwareID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_8W>())).pszProvider as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8W),
            "::",
            stringify!(pszProvider)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVER_INFO_8W>())).pszPrintProcessor as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8W),
            "::",
            stringify!(pszPrintProcessor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_8W>())).pszVendorSetup as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8W),
            "::",
            stringify!(pszVendorSetup)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVER_INFO_8W>())).pszzColorProfiles as *const _ as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8W),
            "::",
            stringify!(pszzColorProfiles)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DRIVER_INFO_8W>())).pszInfPath as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8W),
            "::",
            stringify!(pszInfPath)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVER_INFO_8W>())).dwPrinterDriverAttributes as *const _
                as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8W),
            "::",
            stringify!(dwPrinterDriverAttributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVER_INFO_8W>())).pszzCoreDriverDependencies as *const _
                as usize
        },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8W),
            "::",
            stringify!(pszzCoreDriverDependencies)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVER_INFO_8W>())).ftMinInboxDriverVerDate as *const _ as usize
        },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8W),
            "::",
            stringify!(ftMinInboxDriverVerDate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_DRIVER_INFO_8W>())).dwlMinInboxDriverVerVersion as *const _
                as usize
        },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(_DRIVER_INFO_8W),
            "::",
            stringify!(dwlMinInboxDriverVerVersion)
        )
    );
}
pub type DRIVER_INFO_8W = _DRIVER_INFO_8W;
pub type PDRIVER_INFO_8W = *mut _DRIVER_INFO_8W;
pub type LPDRIVER_INFO_8W = *mut _DRIVER_INFO_8W;
pub type DRIVER_INFO_8 = DRIVER_INFO_8A;
pub type PDRIVER_INFO_8 = PDRIVER_INFO_8A;
pub type LPDRIVER_INFO_8 = LPDRIVER_INFO_8A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DOC_INFO_1A {
    pub pDocName: LPSTR,
    pub pOutputFile: LPSTR,
    pub pDatatype: LPSTR,
}
#[test]
fn bindgen_test_layout__DOC_INFO_1A() {
    assert_eq!(
        ::std::mem::size_of::<_DOC_INFO_1A>(),
        24usize,
        concat!("Size of: ", stringify!(_DOC_INFO_1A))
    );
    assert_eq!(
        ::std::mem::align_of::<_DOC_INFO_1A>(),
        8usize,
        concat!("Alignment of ", stringify!(_DOC_INFO_1A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOC_INFO_1A>())).pDocName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOC_INFO_1A),
            "::",
            stringify!(pDocName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOC_INFO_1A>())).pOutputFile as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOC_INFO_1A),
            "::",
            stringify!(pOutputFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOC_INFO_1A>())).pDatatype as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOC_INFO_1A),
            "::",
            stringify!(pDatatype)
        )
    );
}
pub type DOC_INFO_1A = _DOC_INFO_1A;
pub type PDOC_INFO_1A = *mut _DOC_INFO_1A;
pub type LPDOC_INFO_1A = *mut _DOC_INFO_1A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DOC_INFO_1W {
    pub pDocName: LPWSTR,
    pub pOutputFile: LPWSTR,
    pub pDatatype: LPWSTR,
}
#[test]
fn bindgen_test_layout__DOC_INFO_1W() {
    assert_eq!(
        ::std::mem::size_of::<_DOC_INFO_1W>(),
        24usize,
        concat!("Size of: ", stringify!(_DOC_INFO_1W))
    );
    assert_eq!(
        ::std::mem::align_of::<_DOC_INFO_1W>(),
        8usize,
        concat!("Alignment of ", stringify!(_DOC_INFO_1W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOC_INFO_1W>())).pDocName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOC_INFO_1W),
            "::",
            stringify!(pDocName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOC_INFO_1W>())).pOutputFile as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOC_INFO_1W),
            "::",
            stringify!(pOutputFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOC_INFO_1W>())).pDatatype as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOC_INFO_1W),
            "::",
            stringify!(pDatatype)
        )
    );
}
pub type DOC_INFO_1W = _DOC_INFO_1W;
pub type PDOC_INFO_1W = *mut _DOC_INFO_1W;
pub type LPDOC_INFO_1W = *mut _DOC_INFO_1W;
pub type DOC_INFO_1 = DOC_INFO_1A;
pub type PDOC_INFO_1 = PDOC_INFO_1A;
pub type LPDOC_INFO_1 = LPDOC_INFO_1A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FORM_INFO_1A {
    pub Flags: DWORD,
    pub pName: LPSTR,
    pub Size: SIZEL,
    pub ImageableArea: RECTL,
}
#[test]
fn bindgen_test_layout__FORM_INFO_1A() {
    assert_eq!(
        ::std::mem::size_of::<_FORM_INFO_1A>(),
        40usize,
        concat!("Size of: ", stringify!(_FORM_INFO_1A))
    );
    assert_eq!(
        ::std::mem::align_of::<_FORM_INFO_1A>(),
        8usize,
        concat!("Alignment of ", stringify!(_FORM_INFO_1A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FORM_INFO_1A>())).Flags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORM_INFO_1A),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FORM_INFO_1A>())).pName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORM_INFO_1A),
            "::",
            stringify!(pName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FORM_INFO_1A>())).Size as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORM_INFO_1A),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FORM_INFO_1A>())).ImageableArea as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORM_INFO_1A),
            "::",
            stringify!(ImageableArea)
        )
    );
}
pub type FORM_INFO_1A = _FORM_INFO_1A;
pub type PFORM_INFO_1A = *mut _FORM_INFO_1A;
pub type LPFORM_INFO_1A = *mut _FORM_INFO_1A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FORM_INFO_1W {
    pub Flags: DWORD,
    pub pName: LPWSTR,
    pub Size: SIZEL,
    pub ImageableArea: RECTL,
}
#[test]
fn bindgen_test_layout__FORM_INFO_1W() {
    assert_eq!(
        ::std::mem::size_of::<_FORM_INFO_1W>(),
        40usize,
        concat!("Size of: ", stringify!(_FORM_INFO_1W))
    );
    assert_eq!(
        ::std::mem::align_of::<_FORM_INFO_1W>(),
        8usize,
        concat!("Alignment of ", stringify!(_FORM_INFO_1W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FORM_INFO_1W>())).Flags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORM_INFO_1W),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FORM_INFO_1W>())).pName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORM_INFO_1W),
            "::",
            stringify!(pName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FORM_INFO_1W>())).Size as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORM_INFO_1W),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FORM_INFO_1W>())).ImageableArea as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORM_INFO_1W),
            "::",
            stringify!(ImageableArea)
        )
    );
}
pub type FORM_INFO_1W = _FORM_INFO_1W;
pub type PFORM_INFO_1W = *mut _FORM_INFO_1W;
pub type LPFORM_INFO_1W = *mut _FORM_INFO_1W;
pub type FORM_INFO_1 = FORM_INFO_1A;
pub type PFORM_INFO_1 = PFORM_INFO_1A;
pub type LPFORM_INFO_1 = LPFORM_INFO_1A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FORM_INFO_2A {
    pub Flags: DWORD,
    pub pName: LPCSTR,
    pub Size: SIZEL,
    pub ImageableArea: RECTL,
    pub pKeyword: LPCSTR,
    pub StringType: DWORD,
    pub pMuiDll: LPCSTR,
    pub dwResourceId: DWORD,
    pub pDisplayName: LPCSTR,
    pub wLangId: LANGID,
}
#[test]
fn bindgen_test_layout__FORM_INFO_2A() {
    assert_eq!(
        ::std::mem::size_of::<_FORM_INFO_2A>(),
        88usize,
        concat!("Size of: ", stringify!(_FORM_INFO_2A))
    );
    assert_eq!(
        ::std::mem::align_of::<_FORM_INFO_2A>(),
        8usize,
        concat!("Alignment of ", stringify!(_FORM_INFO_2A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FORM_INFO_2A>())).Flags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORM_INFO_2A),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FORM_INFO_2A>())).pName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORM_INFO_2A),
            "::",
            stringify!(pName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FORM_INFO_2A>())).Size as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORM_INFO_2A),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FORM_INFO_2A>())).ImageableArea as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORM_INFO_2A),
            "::",
            stringify!(ImageableArea)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FORM_INFO_2A>())).pKeyword as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORM_INFO_2A),
            "::",
            stringify!(pKeyword)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FORM_INFO_2A>())).StringType as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORM_INFO_2A),
            "::",
            stringify!(StringType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FORM_INFO_2A>())).pMuiDll as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORM_INFO_2A),
            "::",
            stringify!(pMuiDll)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FORM_INFO_2A>())).dwResourceId as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORM_INFO_2A),
            "::",
            stringify!(dwResourceId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FORM_INFO_2A>())).pDisplayName as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORM_INFO_2A),
            "::",
            stringify!(pDisplayName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FORM_INFO_2A>())).wLangId as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORM_INFO_2A),
            "::",
            stringify!(wLangId)
        )
    );
}
pub type FORM_INFO_2A = _FORM_INFO_2A;
pub type PFORM_INFO_2A = *mut _FORM_INFO_2A;
pub type LPFORM_INFO_2A = *mut _FORM_INFO_2A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _FORM_INFO_2W {
    pub Flags: DWORD,
    pub pName: LPCWSTR,
    pub Size: SIZEL,
    pub ImageableArea: RECTL,
    pub pKeyword: LPCSTR,
    pub StringType: DWORD,
    pub pMuiDll: LPCWSTR,
    pub dwResourceId: DWORD,
    pub pDisplayName: LPCWSTR,
    pub wLangId: LANGID,
}
#[test]
fn bindgen_test_layout__FORM_INFO_2W() {
    assert_eq!(
        ::std::mem::size_of::<_FORM_INFO_2W>(),
        88usize,
        concat!("Size of: ", stringify!(_FORM_INFO_2W))
    );
    assert_eq!(
        ::std::mem::align_of::<_FORM_INFO_2W>(),
        8usize,
        concat!("Alignment of ", stringify!(_FORM_INFO_2W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FORM_INFO_2W>())).Flags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORM_INFO_2W),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FORM_INFO_2W>())).pName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORM_INFO_2W),
            "::",
            stringify!(pName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FORM_INFO_2W>())).Size as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORM_INFO_2W),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FORM_INFO_2W>())).ImageableArea as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORM_INFO_2W),
            "::",
            stringify!(ImageableArea)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FORM_INFO_2W>())).pKeyword as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORM_INFO_2W),
            "::",
            stringify!(pKeyword)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FORM_INFO_2W>())).StringType as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORM_INFO_2W),
            "::",
            stringify!(StringType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FORM_INFO_2W>())).pMuiDll as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORM_INFO_2W),
            "::",
            stringify!(pMuiDll)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FORM_INFO_2W>())).dwResourceId as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORM_INFO_2W),
            "::",
            stringify!(dwResourceId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FORM_INFO_2W>())).pDisplayName as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORM_INFO_2W),
            "::",
            stringify!(pDisplayName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FORM_INFO_2W>())).wLangId as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_FORM_INFO_2W),
            "::",
            stringify!(wLangId)
        )
    );
}
pub type FORM_INFO_2W = _FORM_INFO_2W;
pub type PFORM_INFO_2W = *mut _FORM_INFO_2W;
pub type LPFORM_INFO_2W = *mut _FORM_INFO_2W;
pub type FORM_INFO_2 = FORM_INFO_2A;
pub type PFORM_INFO_2 = PFORM_INFO_2A;
pub type LPFORM_INFO_2 = LPFORM_INFO_2A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DOC_INFO_2A {
    pub pDocName: LPSTR,
    pub pOutputFile: LPSTR,
    pub pDatatype: LPSTR,
    pub dwMode: DWORD,
    pub JobId: DWORD,
}
#[test]
fn bindgen_test_layout__DOC_INFO_2A() {
    assert_eq!(
        ::std::mem::size_of::<_DOC_INFO_2A>(),
        32usize,
        concat!("Size of: ", stringify!(_DOC_INFO_2A))
    );
    assert_eq!(
        ::std::mem::align_of::<_DOC_INFO_2A>(),
        8usize,
        concat!("Alignment of ", stringify!(_DOC_INFO_2A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOC_INFO_2A>())).pDocName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOC_INFO_2A),
            "::",
            stringify!(pDocName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOC_INFO_2A>())).pOutputFile as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOC_INFO_2A),
            "::",
            stringify!(pOutputFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOC_INFO_2A>())).pDatatype as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOC_INFO_2A),
            "::",
            stringify!(pDatatype)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOC_INFO_2A>())).dwMode as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOC_INFO_2A),
            "::",
            stringify!(dwMode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOC_INFO_2A>())).JobId as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOC_INFO_2A),
            "::",
            stringify!(JobId)
        )
    );
}
pub type DOC_INFO_2A = _DOC_INFO_2A;
pub type PDOC_INFO_2A = *mut _DOC_INFO_2A;
pub type LPDOC_INFO_2A = *mut _DOC_INFO_2A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DOC_INFO_2W {
    pub pDocName: LPWSTR,
    pub pOutputFile: LPWSTR,
    pub pDatatype: LPWSTR,
    pub dwMode: DWORD,
    pub JobId: DWORD,
}
#[test]
fn bindgen_test_layout__DOC_INFO_2W() {
    assert_eq!(
        ::std::mem::size_of::<_DOC_INFO_2W>(),
        32usize,
        concat!("Size of: ", stringify!(_DOC_INFO_2W))
    );
    assert_eq!(
        ::std::mem::align_of::<_DOC_INFO_2W>(),
        8usize,
        concat!("Alignment of ", stringify!(_DOC_INFO_2W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOC_INFO_2W>())).pDocName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOC_INFO_2W),
            "::",
            stringify!(pDocName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOC_INFO_2W>())).pOutputFile as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOC_INFO_2W),
            "::",
            stringify!(pOutputFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOC_INFO_2W>())).pDatatype as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOC_INFO_2W),
            "::",
            stringify!(pDatatype)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOC_INFO_2W>())).dwMode as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOC_INFO_2W),
            "::",
            stringify!(dwMode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOC_INFO_2W>())).JobId as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOC_INFO_2W),
            "::",
            stringify!(JobId)
        )
    );
}
pub type DOC_INFO_2W = _DOC_INFO_2W;
pub type PDOC_INFO_2W = *mut _DOC_INFO_2W;
pub type LPDOC_INFO_2W = *mut _DOC_INFO_2W;
pub type DOC_INFO_2 = DOC_INFO_2A;
pub type PDOC_INFO_2 = PDOC_INFO_2A;
pub type LPDOC_INFO_2 = LPDOC_INFO_2A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DOC_INFO_3A {
    pub pDocName: LPSTR,
    pub pOutputFile: LPSTR,
    pub pDatatype: LPSTR,
    pub dwFlags: DWORD,
}
#[test]
fn bindgen_test_layout__DOC_INFO_3A() {
    assert_eq!(
        ::std::mem::size_of::<_DOC_INFO_3A>(),
        32usize,
        concat!("Size of: ", stringify!(_DOC_INFO_3A))
    );
    assert_eq!(
        ::std::mem::align_of::<_DOC_INFO_3A>(),
        8usize,
        concat!("Alignment of ", stringify!(_DOC_INFO_3A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOC_INFO_3A>())).pDocName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOC_INFO_3A),
            "::",
            stringify!(pDocName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOC_INFO_3A>())).pOutputFile as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOC_INFO_3A),
            "::",
            stringify!(pOutputFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOC_INFO_3A>())).pDatatype as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOC_INFO_3A),
            "::",
            stringify!(pDatatype)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOC_INFO_3A>())).dwFlags as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOC_INFO_3A),
            "::",
            stringify!(dwFlags)
        )
    );
}
pub type DOC_INFO_3A = _DOC_INFO_3A;
pub type PDOC_INFO_3A = *mut _DOC_INFO_3A;
pub type LPDOC_INFO_3A = *mut _DOC_INFO_3A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DOC_INFO_3W {
    pub pDocName: LPWSTR,
    pub pOutputFile: LPWSTR,
    pub pDatatype: LPWSTR,
    pub dwFlags: DWORD,
}
#[test]
fn bindgen_test_layout__DOC_INFO_3W() {
    assert_eq!(
        ::std::mem::size_of::<_DOC_INFO_3W>(),
        32usize,
        concat!("Size of: ", stringify!(_DOC_INFO_3W))
    );
    assert_eq!(
        ::std::mem::align_of::<_DOC_INFO_3W>(),
        8usize,
        concat!("Alignment of ", stringify!(_DOC_INFO_3W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOC_INFO_3W>())).pDocName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOC_INFO_3W),
            "::",
            stringify!(pDocName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOC_INFO_3W>())).pOutputFile as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOC_INFO_3W),
            "::",
            stringify!(pOutputFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOC_INFO_3W>())).pDatatype as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOC_INFO_3W),
            "::",
            stringify!(pDatatype)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DOC_INFO_3W>())).dwFlags as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_DOC_INFO_3W),
            "::",
            stringify!(dwFlags)
        )
    );
}
pub type DOC_INFO_3W = _DOC_INFO_3W;
pub type PDOC_INFO_3W = *mut _DOC_INFO_3W;
pub type LPDOC_INFO_3W = *mut _DOC_INFO_3W;
pub type DOC_INFO_3 = DOC_INFO_3A;
pub type PDOC_INFO_3 = PDOC_INFO_3A;
pub type LPDOC_INFO_3 = LPDOC_INFO_3A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRINTPROCESSOR_INFO_1A {
    pub pName: LPSTR,
}
#[test]
fn bindgen_test_layout__PRINTPROCESSOR_INFO_1A() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTPROCESSOR_INFO_1A>(),
        8usize,
        concat!("Size of: ", stringify!(_PRINTPROCESSOR_INFO_1A))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTPROCESSOR_INFO_1A>(),
        8usize,
        concat!("Alignment of ", stringify!(_PRINTPROCESSOR_INFO_1A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTPROCESSOR_INFO_1A>())).pName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTPROCESSOR_INFO_1A),
            "::",
            stringify!(pName)
        )
    );
}
pub type PRINTPROCESSOR_INFO_1A = _PRINTPROCESSOR_INFO_1A;
pub type PPRINTPROCESSOR_INFO_1A = *mut _PRINTPROCESSOR_INFO_1A;
pub type LPPRINTPROCESSOR_INFO_1A = *mut _PRINTPROCESSOR_INFO_1A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRINTPROCESSOR_INFO_1W {
    pub pName: LPWSTR,
}
#[test]
fn bindgen_test_layout__PRINTPROCESSOR_INFO_1W() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTPROCESSOR_INFO_1W>(),
        8usize,
        concat!("Size of: ", stringify!(_PRINTPROCESSOR_INFO_1W))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTPROCESSOR_INFO_1W>(),
        8usize,
        concat!("Alignment of ", stringify!(_PRINTPROCESSOR_INFO_1W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTPROCESSOR_INFO_1W>())).pName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTPROCESSOR_INFO_1W),
            "::",
            stringify!(pName)
        )
    );
}
pub type PRINTPROCESSOR_INFO_1W = _PRINTPROCESSOR_INFO_1W;
pub type PPRINTPROCESSOR_INFO_1W = *mut _PRINTPROCESSOR_INFO_1W;
pub type LPPRINTPROCESSOR_INFO_1W = *mut _PRINTPROCESSOR_INFO_1W;
pub type PRINTPROCESSOR_INFO_1 = PRINTPROCESSOR_INFO_1A;
pub type PPRINTPROCESSOR_INFO_1 = PPRINTPROCESSOR_INFO_1A;
pub type LPPRINTPROCESSOR_INFO_1 = LPPRINTPROCESSOR_INFO_1A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRINTPROCESSOR_CAPS_1 {
    pub dwLevel: DWORD,
    pub dwNupOptions: DWORD,
    pub dwPageOrderFlags: DWORD,
    pub dwNumberOfCopies: DWORD,
}
#[test]
fn bindgen_test_layout__PRINTPROCESSOR_CAPS_1() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTPROCESSOR_CAPS_1>(),
        16usize,
        concat!("Size of: ", stringify!(_PRINTPROCESSOR_CAPS_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTPROCESSOR_CAPS_1>(),
        4usize,
        concat!("Alignment of ", stringify!(_PRINTPROCESSOR_CAPS_1))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTPROCESSOR_CAPS_1>())).dwLevel as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTPROCESSOR_CAPS_1),
            "::",
            stringify!(dwLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTPROCESSOR_CAPS_1>())).dwNupOptions as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTPROCESSOR_CAPS_1),
            "::",
            stringify!(dwNupOptions)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTPROCESSOR_CAPS_1>())).dwPageOrderFlags as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTPROCESSOR_CAPS_1),
            "::",
            stringify!(dwPageOrderFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTPROCESSOR_CAPS_1>())).dwNumberOfCopies as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTPROCESSOR_CAPS_1),
            "::",
            stringify!(dwNumberOfCopies)
        )
    );
}
pub type PRINTPROCESSOR_CAPS_1 = _PRINTPROCESSOR_CAPS_1;
pub type PPRINTPROCESSOR_CAPS_1 = *mut _PRINTPROCESSOR_CAPS_1;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRINTPROCESSOR_CAPS_2 {
    pub dwLevel: DWORD,
    pub dwNupOptions: DWORD,
    pub dwPageOrderFlags: DWORD,
    pub dwNumberOfCopies: DWORD,
    pub dwDuplexHandlingCaps: DWORD,
    pub dwNupDirectionCaps: DWORD,
    pub dwNupBorderCaps: DWORD,
    pub dwBookletHandlingCaps: DWORD,
    pub dwScalingCaps: DWORD,
}
#[test]
fn bindgen_test_layout__PRINTPROCESSOR_CAPS_2() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTPROCESSOR_CAPS_2>(),
        36usize,
        concat!("Size of: ", stringify!(_PRINTPROCESSOR_CAPS_2))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTPROCESSOR_CAPS_2>(),
        4usize,
        concat!("Alignment of ", stringify!(_PRINTPROCESSOR_CAPS_2))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTPROCESSOR_CAPS_2>())).dwLevel as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTPROCESSOR_CAPS_2),
            "::",
            stringify!(dwLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTPROCESSOR_CAPS_2>())).dwNupOptions as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTPROCESSOR_CAPS_2),
            "::",
            stringify!(dwNupOptions)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTPROCESSOR_CAPS_2>())).dwPageOrderFlags as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTPROCESSOR_CAPS_2),
            "::",
            stringify!(dwPageOrderFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTPROCESSOR_CAPS_2>())).dwNumberOfCopies as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTPROCESSOR_CAPS_2),
            "::",
            stringify!(dwNumberOfCopies)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTPROCESSOR_CAPS_2>())).dwDuplexHandlingCaps as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTPROCESSOR_CAPS_2),
            "::",
            stringify!(dwDuplexHandlingCaps)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTPROCESSOR_CAPS_2>())).dwNupDirectionCaps as *const _
                as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTPROCESSOR_CAPS_2),
            "::",
            stringify!(dwNupDirectionCaps)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTPROCESSOR_CAPS_2>())).dwNupBorderCaps as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTPROCESSOR_CAPS_2),
            "::",
            stringify!(dwNupBorderCaps)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTPROCESSOR_CAPS_2>())).dwBookletHandlingCaps as *const _
                as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTPROCESSOR_CAPS_2),
            "::",
            stringify!(dwBookletHandlingCaps)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTPROCESSOR_CAPS_2>())).dwScalingCaps as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTPROCESSOR_CAPS_2),
            "::",
            stringify!(dwScalingCaps)
        )
    );
}
pub type PRINTPROCESSOR_CAPS_2 = _PRINTPROCESSOR_CAPS_2;
pub type PPRINTPROCESSOR_CAPS_2 = *mut _PRINTPROCESSOR_CAPS_2;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PORT_INFO_1A {
    pub pName: LPSTR,
}
#[test]
fn bindgen_test_layout__PORT_INFO_1A() {
    assert_eq!(
        ::std::mem::size_of::<_PORT_INFO_1A>(),
        8usize,
        concat!("Size of: ", stringify!(_PORT_INFO_1A))
    );
    assert_eq!(
        ::std::mem::align_of::<_PORT_INFO_1A>(),
        8usize,
        concat!("Alignment of ", stringify!(_PORT_INFO_1A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PORT_INFO_1A>())).pName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PORT_INFO_1A),
            "::",
            stringify!(pName)
        )
    );
}
pub type PORT_INFO_1A = _PORT_INFO_1A;
pub type PPORT_INFO_1A = *mut _PORT_INFO_1A;
pub type LPPORT_INFO_1A = *mut _PORT_INFO_1A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PORT_INFO_1W {
    pub pName: LPWSTR,
}
#[test]
fn bindgen_test_layout__PORT_INFO_1W() {
    assert_eq!(
        ::std::mem::size_of::<_PORT_INFO_1W>(),
        8usize,
        concat!("Size of: ", stringify!(_PORT_INFO_1W))
    );
    assert_eq!(
        ::std::mem::align_of::<_PORT_INFO_1W>(),
        8usize,
        concat!("Alignment of ", stringify!(_PORT_INFO_1W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PORT_INFO_1W>())).pName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PORT_INFO_1W),
            "::",
            stringify!(pName)
        )
    );
}
pub type PORT_INFO_1W = _PORT_INFO_1W;
pub type PPORT_INFO_1W = *mut _PORT_INFO_1W;
pub type LPPORT_INFO_1W = *mut _PORT_INFO_1W;
pub type PORT_INFO_1 = PORT_INFO_1A;
pub type PPORT_INFO_1 = PPORT_INFO_1A;
pub type LPPORT_INFO_1 = LPPORT_INFO_1A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PORT_INFO_2A {
    pub pPortName: LPSTR,
    pub pMonitorName: LPSTR,
    pub pDescription: LPSTR,
    pub fPortType: DWORD,
    pub Reserved: DWORD,
}
#[test]
fn bindgen_test_layout__PORT_INFO_2A() {
    assert_eq!(
        ::std::mem::size_of::<_PORT_INFO_2A>(),
        32usize,
        concat!("Size of: ", stringify!(_PORT_INFO_2A))
    );
    assert_eq!(
        ::std::mem::align_of::<_PORT_INFO_2A>(),
        8usize,
        concat!("Alignment of ", stringify!(_PORT_INFO_2A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PORT_INFO_2A>())).pPortName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PORT_INFO_2A),
            "::",
            stringify!(pPortName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PORT_INFO_2A>())).pMonitorName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PORT_INFO_2A),
            "::",
            stringify!(pMonitorName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PORT_INFO_2A>())).pDescription as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PORT_INFO_2A),
            "::",
            stringify!(pDescription)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PORT_INFO_2A>())).fPortType as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_PORT_INFO_2A),
            "::",
            stringify!(fPortType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PORT_INFO_2A>())).Reserved as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_PORT_INFO_2A),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type PORT_INFO_2A = _PORT_INFO_2A;
pub type PPORT_INFO_2A = *mut _PORT_INFO_2A;
pub type LPPORT_INFO_2A = *mut _PORT_INFO_2A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PORT_INFO_2W {
    pub pPortName: LPWSTR,
    pub pMonitorName: LPWSTR,
    pub pDescription: LPWSTR,
    pub fPortType: DWORD,
    pub Reserved: DWORD,
}
#[test]
fn bindgen_test_layout__PORT_INFO_2W() {
    assert_eq!(
        ::std::mem::size_of::<_PORT_INFO_2W>(),
        32usize,
        concat!("Size of: ", stringify!(_PORT_INFO_2W))
    );
    assert_eq!(
        ::std::mem::align_of::<_PORT_INFO_2W>(),
        8usize,
        concat!("Alignment of ", stringify!(_PORT_INFO_2W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PORT_INFO_2W>())).pPortName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PORT_INFO_2W),
            "::",
            stringify!(pPortName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PORT_INFO_2W>())).pMonitorName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PORT_INFO_2W),
            "::",
            stringify!(pMonitorName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PORT_INFO_2W>())).pDescription as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PORT_INFO_2W),
            "::",
            stringify!(pDescription)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PORT_INFO_2W>())).fPortType as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_PORT_INFO_2W),
            "::",
            stringify!(fPortType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PORT_INFO_2W>())).Reserved as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_PORT_INFO_2W),
            "::",
            stringify!(Reserved)
        )
    );
}
pub type PORT_INFO_2W = _PORT_INFO_2W;
pub type PPORT_INFO_2W = *mut _PORT_INFO_2W;
pub type LPPORT_INFO_2W = *mut _PORT_INFO_2W;
pub type PORT_INFO_2 = PORT_INFO_2A;
pub type PPORT_INFO_2 = PPORT_INFO_2A;
pub type LPPORT_INFO_2 = LPPORT_INFO_2A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PORT_INFO_3A {
    pub dwStatus: DWORD,
    pub pszStatus: LPSTR,
    pub dwSeverity: DWORD,
}
#[test]
fn bindgen_test_layout__PORT_INFO_3A() {
    assert_eq!(
        ::std::mem::size_of::<_PORT_INFO_3A>(),
        24usize,
        concat!("Size of: ", stringify!(_PORT_INFO_3A))
    );
    assert_eq!(
        ::std::mem::align_of::<_PORT_INFO_3A>(),
        8usize,
        concat!("Alignment of ", stringify!(_PORT_INFO_3A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PORT_INFO_3A>())).dwStatus as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PORT_INFO_3A),
            "::",
            stringify!(dwStatus)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PORT_INFO_3A>())).pszStatus as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PORT_INFO_3A),
            "::",
            stringify!(pszStatus)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PORT_INFO_3A>())).dwSeverity as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PORT_INFO_3A),
            "::",
            stringify!(dwSeverity)
        )
    );
}
pub type PORT_INFO_3A = _PORT_INFO_3A;
pub type PPORT_INFO_3A = *mut _PORT_INFO_3A;
pub type LPPORT_INFO_3A = *mut _PORT_INFO_3A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PORT_INFO_3W {
    pub dwStatus: DWORD,
    pub pszStatus: LPWSTR,
    pub dwSeverity: DWORD,
}
#[test]
fn bindgen_test_layout__PORT_INFO_3W() {
    assert_eq!(
        ::std::mem::size_of::<_PORT_INFO_3W>(),
        24usize,
        concat!("Size of: ", stringify!(_PORT_INFO_3W))
    );
    assert_eq!(
        ::std::mem::align_of::<_PORT_INFO_3W>(),
        8usize,
        concat!("Alignment of ", stringify!(_PORT_INFO_3W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PORT_INFO_3W>())).dwStatus as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PORT_INFO_3W),
            "::",
            stringify!(dwStatus)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PORT_INFO_3W>())).pszStatus as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PORT_INFO_3W),
            "::",
            stringify!(pszStatus)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PORT_INFO_3W>())).dwSeverity as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PORT_INFO_3W),
            "::",
            stringify!(dwSeverity)
        )
    );
}
pub type PORT_INFO_3W = _PORT_INFO_3W;
pub type PPORT_INFO_3W = *mut _PORT_INFO_3W;
pub type LPPORT_INFO_3W = *mut _PORT_INFO_3W;
pub type PORT_INFO_3 = PORT_INFO_3A;
pub type PPORT_INFO_3 = PPORT_INFO_3A;
pub type LPPORT_INFO_3 = LPPORT_INFO_3A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MONITOR_INFO_1A {
    pub pName: LPSTR,
}
#[test]
fn bindgen_test_layout__MONITOR_INFO_1A() {
    assert_eq!(
        ::std::mem::size_of::<_MONITOR_INFO_1A>(),
        8usize,
        concat!("Size of: ", stringify!(_MONITOR_INFO_1A))
    );
    assert_eq!(
        ::std::mem::align_of::<_MONITOR_INFO_1A>(),
        8usize,
        concat!("Alignment of ", stringify!(_MONITOR_INFO_1A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MONITOR_INFO_1A>())).pName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MONITOR_INFO_1A),
            "::",
            stringify!(pName)
        )
    );
}
pub type MONITOR_INFO_1A = _MONITOR_INFO_1A;
pub type PMONITOR_INFO_1A = *mut _MONITOR_INFO_1A;
pub type LPMONITOR_INFO_1A = *mut _MONITOR_INFO_1A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MONITOR_INFO_1W {
    pub pName: LPWSTR,
}
#[test]
fn bindgen_test_layout__MONITOR_INFO_1W() {
    assert_eq!(
        ::std::mem::size_of::<_MONITOR_INFO_1W>(),
        8usize,
        concat!("Size of: ", stringify!(_MONITOR_INFO_1W))
    );
    assert_eq!(
        ::std::mem::align_of::<_MONITOR_INFO_1W>(),
        8usize,
        concat!("Alignment of ", stringify!(_MONITOR_INFO_1W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MONITOR_INFO_1W>())).pName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MONITOR_INFO_1W),
            "::",
            stringify!(pName)
        )
    );
}
pub type MONITOR_INFO_1W = _MONITOR_INFO_1W;
pub type PMONITOR_INFO_1W = *mut _MONITOR_INFO_1W;
pub type LPMONITOR_INFO_1W = *mut _MONITOR_INFO_1W;
pub type MONITOR_INFO_1 = MONITOR_INFO_1A;
pub type PMONITOR_INFO_1 = PMONITOR_INFO_1A;
pub type LPMONITOR_INFO_1 = LPMONITOR_INFO_1A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MONITOR_INFO_2A {
    pub pName: LPSTR,
    pub pEnvironment: LPSTR,
    pub pDLLName: LPSTR,
}
#[test]
fn bindgen_test_layout__MONITOR_INFO_2A() {
    assert_eq!(
        ::std::mem::size_of::<_MONITOR_INFO_2A>(),
        24usize,
        concat!("Size of: ", stringify!(_MONITOR_INFO_2A))
    );
    assert_eq!(
        ::std::mem::align_of::<_MONITOR_INFO_2A>(),
        8usize,
        concat!("Alignment of ", stringify!(_MONITOR_INFO_2A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MONITOR_INFO_2A>())).pName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MONITOR_INFO_2A),
            "::",
            stringify!(pName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MONITOR_INFO_2A>())).pEnvironment as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_MONITOR_INFO_2A),
            "::",
            stringify!(pEnvironment)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MONITOR_INFO_2A>())).pDLLName as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_MONITOR_INFO_2A),
            "::",
            stringify!(pDLLName)
        )
    );
}
pub type MONITOR_INFO_2A = _MONITOR_INFO_2A;
pub type PMONITOR_INFO_2A = *mut _MONITOR_INFO_2A;
pub type LPMONITOR_INFO_2A = *mut _MONITOR_INFO_2A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _MONITOR_INFO_2W {
    pub pName: LPWSTR,
    pub pEnvironment: LPWSTR,
    pub pDLLName: LPWSTR,
}
#[test]
fn bindgen_test_layout__MONITOR_INFO_2W() {
    assert_eq!(
        ::std::mem::size_of::<_MONITOR_INFO_2W>(),
        24usize,
        concat!("Size of: ", stringify!(_MONITOR_INFO_2W))
    );
    assert_eq!(
        ::std::mem::align_of::<_MONITOR_INFO_2W>(),
        8usize,
        concat!("Alignment of ", stringify!(_MONITOR_INFO_2W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MONITOR_INFO_2W>())).pName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MONITOR_INFO_2W),
            "::",
            stringify!(pName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MONITOR_INFO_2W>())).pEnvironment as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_MONITOR_INFO_2W),
            "::",
            stringify!(pEnvironment)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MONITOR_INFO_2W>())).pDLLName as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_MONITOR_INFO_2W),
            "::",
            stringify!(pDLLName)
        )
    );
}
pub type MONITOR_INFO_2W = _MONITOR_INFO_2W;
pub type PMONITOR_INFO_2W = *mut _MONITOR_INFO_2W;
pub type LPMONITOR_INFO_2W = *mut _MONITOR_INFO_2W;
pub type MONITOR_INFO_2 = MONITOR_INFO_2A;
pub type PMONITOR_INFO_2 = PMONITOR_INFO_2A;
pub type LPMONITOR_INFO_2 = LPMONITOR_INFO_2A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DATATYPES_INFO_1A {
    pub pName: LPSTR,
}
#[test]
fn bindgen_test_layout__DATATYPES_INFO_1A() {
    assert_eq!(
        ::std::mem::size_of::<_DATATYPES_INFO_1A>(),
        8usize,
        concat!("Size of: ", stringify!(_DATATYPES_INFO_1A))
    );
    assert_eq!(
        ::std::mem::align_of::<_DATATYPES_INFO_1A>(),
        8usize,
        concat!("Alignment of ", stringify!(_DATATYPES_INFO_1A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DATATYPES_INFO_1A>())).pName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DATATYPES_INFO_1A),
            "::",
            stringify!(pName)
        )
    );
}
pub type DATATYPES_INFO_1A = _DATATYPES_INFO_1A;
pub type PDATATYPES_INFO_1A = *mut _DATATYPES_INFO_1A;
pub type LPDATATYPES_INFO_1A = *mut _DATATYPES_INFO_1A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DATATYPES_INFO_1W {
    pub pName: LPWSTR,
}
#[test]
fn bindgen_test_layout__DATATYPES_INFO_1W() {
    assert_eq!(
        ::std::mem::size_of::<_DATATYPES_INFO_1W>(),
        8usize,
        concat!("Size of: ", stringify!(_DATATYPES_INFO_1W))
    );
    assert_eq!(
        ::std::mem::align_of::<_DATATYPES_INFO_1W>(),
        8usize,
        concat!("Alignment of ", stringify!(_DATATYPES_INFO_1W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_DATATYPES_INFO_1W>())).pName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_DATATYPES_INFO_1W),
            "::",
            stringify!(pName)
        )
    );
}
pub type DATATYPES_INFO_1W = _DATATYPES_INFO_1W;
pub type PDATATYPES_INFO_1W = *mut _DATATYPES_INFO_1W;
pub type LPDATATYPES_INFO_1W = *mut _DATATYPES_INFO_1W;
pub type DATATYPES_INFO_1 = DATATYPES_INFO_1A;
pub type PDATATYPES_INFO_1 = PDATATYPES_INFO_1A;
pub type LPDATATYPES_INFO_1 = LPDATATYPES_INFO_1A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRINTER_DEFAULTSA {
    pub pDatatype: LPSTR,
    pub pDevMode: LPDEVMODEA,
    pub DesiredAccess: ACCESS_MASK,
}
#[test]
fn bindgen_test_layout__PRINTER_DEFAULTSA() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTER_DEFAULTSA>(),
        24usize,
        concat!("Size of: ", stringify!(_PRINTER_DEFAULTSA))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTER_DEFAULTSA>(),
        8usize,
        concat!("Alignment of ", stringify!(_PRINTER_DEFAULTSA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_DEFAULTSA>())).pDatatype as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_DEFAULTSA),
            "::",
            stringify!(pDatatype)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_DEFAULTSA>())).pDevMode as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_DEFAULTSA),
            "::",
            stringify!(pDevMode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_DEFAULTSA>())).DesiredAccess as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_DEFAULTSA),
            "::",
            stringify!(DesiredAccess)
        )
    );
}
pub type PRINTER_DEFAULTSA = _PRINTER_DEFAULTSA;
pub type PPRINTER_DEFAULTSA = *mut _PRINTER_DEFAULTSA;
pub type LPPRINTER_DEFAULTSA = *mut _PRINTER_DEFAULTSA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRINTER_DEFAULTSW {
    pub pDatatype: LPWSTR,
    pub pDevMode: LPDEVMODEW,
    pub DesiredAccess: ACCESS_MASK,
}
#[test]
fn bindgen_test_layout__PRINTER_DEFAULTSW() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTER_DEFAULTSW>(),
        24usize,
        concat!("Size of: ", stringify!(_PRINTER_DEFAULTSW))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTER_DEFAULTSW>(),
        8usize,
        concat!("Alignment of ", stringify!(_PRINTER_DEFAULTSW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_DEFAULTSW>())).pDatatype as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_DEFAULTSW),
            "::",
            stringify!(pDatatype)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_DEFAULTSW>())).pDevMode as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_DEFAULTSW),
            "::",
            stringify!(pDevMode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_DEFAULTSW>())).DesiredAccess as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_DEFAULTSW),
            "::",
            stringify!(DesiredAccess)
        )
    );
}
pub type PRINTER_DEFAULTSW = _PRINTER_DEFAULTSW;
pub type PPRINTER_DEFAULTSW = *mut _PRINTER_DEFAULTSW;
pub type LPPRINTER_DEFAULTSW = *mut _PRINTER_DEFAULTSW;
pub type PRINTER_DEFAULTS = PRINTER_DEFAULTSA;
pub type PPRINTER_DEFAULTS = PPRINTER_DEFAULTSA;
pub type LPPRINTER_DEFAULTS = LPPRINTER_DEFAULTSA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRINTER_ENUM_VALUESA {
    pub pValueName: LPSTR,
    pub cbValueName: DWORD,
    pub dwType: DWORD,
    pub pData: LPBYTE,
    pub cbData: DWORD,
}
#[test]
fn bindgen_test_layout__PRINTER_ENUM_VALUESA() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTER_ENUM_VALUESA>(),
        32usize,
        concat!("Size of: ", stringify!(_PRINTER_ENUM_VALUESA))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTER_ENUM_VALUESA>(),
        8usize,
        concat!("Alignment of ", stringify!(_PRINTER_ENUM_VALUESA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_ENUM_VALUESA>())).pValueName as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_ENUM_VALUESA),
            "::",
            stringify!(pValueName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_ENUM_VALUESA>())).cbValueName as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_ENUM_VALUESA),
            "::",
            stringify!(cbValueName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_ENUM_VALUESA>())).dwType as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_ENUM_VALUESA),
            "::",
            stringify!(dwType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_ENUM_VALUESA>())).pData as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_ENUM_VALUESA),
            "::",
            stringify!(pData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_ENUM_VALUESA>())).cbData as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_ENUM_VALUESA),
            "::",
            stringify!(cbData)
        )
    );
}
pub type PRINTER_ENUM_VALUESA = _PRINTER_ENUM_VALUESA;
pub type PPRINTER_ENUM_VALUESA = *mut _PRINTER_ENUM_VALUESA;
pub type LPPRINTER_ENUM_VALUESA = *mut _PRINTER_ENUM_VALUESA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRINTER_ENUM_VALUESW {
    pub pValueName: LPWSTR,
    pub cbValueName: DWORD,
    pub dwType: DWORD,
    pub pData: LPBYTE,
    pub cbData: DWORD,
}
#[test]
fn bindgen_test_layout__PRINTER_ENUM_VALUESW() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTER_ENUM_VALUESW>(),
        32usize,
        concat!("Size of: ", stringify!(_PRINTER_ENUM_VALUESW))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTER_ENUM_VALUESW>(),
        8usize,
        concat!("Alignment of ", stringify!(_PRINTER_ENUM_VALUESW))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_ENUM_VALUESW>())).pValueName as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_ENUM_VALUESW),
            "::",
            stringify!(pValueName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_ENUM_VALUESW>())).cbValueName as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_ENUM_VALUESW),
            "::",
            stringify!(cbValueName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_ENUM_VALUESW>())).dwType as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_ENUM_VALUESW),
            "::",
            stringify!(dwType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_ENUM_VALUESW>())).pData as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_ENUM_VALUESW),
            "::",
            stringify!(pData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_ENUM_VALUESW>())).cbData as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_ENUM_VALUESW),
            "::",
            stringify!(cbData)
        )
    );
}
pub type PRINTER_ENUM_VALUESW = _PRINTER_ENUM_VALUESW;
pub type PPRINTER_ENUM_VALUESW = *mut _PRINTER_ENUM_VALUESW;
pub type LPPRINTER_ENUM_VALUESW = *mut _PRINTER_ENUM_VALUESW;
pub type PRINTER_ENUM_VALUES = PRINTER_ENUM_VALUESA;
pub type PPRINTER_ENUM_VALUES = PPRINTER_ENUM_VALUESA;
pub type LPPRINTER_ENUM_VALUES = LPPRINTER_ENUM_VALUESA;
extern "C" {
    pub fn EnumPrintersA(
        Flags: DWORD,
        Name: LPSTR,
        Level: DWORD,
        pPrinterEnum: LPBYTE,
        cbBuf: DWORD,
        pcbNeeded: LPDWORD,
        pcReturned: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumPrintersW(
        Flags: DWORD,
        Name: LPWSTR,
        Level: DWORD,
        pPrinterEnum: LPBYTE,
        cbBuf: DWORD,
        pcbNeeded: LPDWORD,
        pcReturned: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetSpoolFileHandle(hPrinter: HANDLE) -> HANDLE;
}
extern "C" {
    pub fn CommitSpoolData(hPrinter: HANDLE, hSpoolFile: HANDLE, cbCommit: DWORD) -> HANDLE;
}
extern "C" {
    pub fn CloseSpoolFileHandle(hPrinter: HANDLE, hSpoolFile: HANDLE) -> BOOL;
}
extern "C" {
    pub fn OpenPrinterA(
        pPrinterName: LPSTR,
        phPrinter: LPHANDLE,
        pDefault: LPPRINTER_DEFAULTSA,
    ) -> BOOL;
}
extern "C" {
    pub fn OpenPrinterW(
        pPrinterName: LPWSTR,
        phPrinter: LPHANDLE,
        pDefault: LPPRINTER_DEFAULTSW,
    ) -> BOOL;
}
extern "C" {
    pub fn ResetPrinterA(hPrinter: HANDLE, pDefault: LPPRINTER_DEFAULTSA) -> BOOL;
}
extern "C" {
    pub fn ResetPrinterW(hPrinter: HANDLE, pDefault: LPPRINTER_DEFAULTSW) -> BOOL;
}
extern "C" {
    pub fn SetJobA(
        hPrinter: HANDLE,
        JobId: DWORD,
        Level: DWORD,
        pJob: LPBYTE,
        Command: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn SetJobW(
        hPrinter: HANDLE,
        JobId: DWORD,
        Level: DWORD,
        pJob: LPBYTE,
        Command: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetJobA(
        hPrinter: HANDLE,
        JobId: DWORD,
        Level: DWORD,
        pJob: LPBYTE,
        cbBuf: DWORD,
        pcbNeeded: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetJobW(
        hPrinter: HANDLE,
        JobId: DWORD,
        Level: DWORD,
        pJob: LPBYTE,
        cbBuf: DWORD,
        pcbNeeded: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumJobsA(
        hPrinter: HANDLE,
        FirstJob: DWORD,
        NoJobs: DWORD,
        Level: DWORD,
        pJob: LPBYTE,
        cbBuf: DWORD,
        pcbNeeded: LPDWORD,
        pcReturned: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumJobsW(
        hPrinter: HANDLE,
        FirstJob: DWORD,
        NoJobs: DWORD,
        Level: DWORD,
        pJob: LPBYTE,
        cbBuf: DWORD,
        pcbNeeded: LPDWORD,
        pcReturned: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn AddPrinterA(pName: LPSTR, Level: DWORD, pPrinter: LPBYTE) -> HANDLE;
}
extern "C" {
    pub fn AddPrinterW(pName: LPWSTR, Level: DWORD, pPrinter: LPBYTE) -> HANDLE;
}
extern "C" {
    pub fn DeletePrinter(hPrinter: HANDLE) -> BOOL;
}
extern "C" {
    pub fn SetPrinterA(hPrinter: HANDLE, Level: DWORD, pPrinter: LPBYTE, Command: DWORD) -> BOOL;
}
extern "C" {
    pub fn SetPrinterW(hPrinter: HANDLE, Level: DWORD, pPrinter: LPBYTE, Command: DWORD) -> BOOL;
}
extern "C" {
    pub fn GetPrinterA(
        hPrinter: HANDLE,
        Level: DWORD,
        pPrinter: LPBYTE,
        cbBuf: DWORD,
        pcbNeeded: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetPrinterW(
        hPrinter: HANDLE,
        Level: DWORD,
        pPrinter: LPBYTE,
        cbBuf: DWORD,
        pcbNeeded: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn AddPrinterDriverA(pName: LPSTR, Level: DWORD, pDriverInfo: LPBYTE) -> BOOL;
}
extern "C" {
    pub fn AddPrinterDriverW(pName: LPWSTR, Level: DWORD, pDriverInfo: LPBYTE) -> BOOL;
}
extern "C" {
    pub fn AddPrinterDriverExA(
        pName: LPSTR,
        Level: DWORD,
        lpbDriverInfo: PBYTE,
        dwFileCopyFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn AddPrinterDriverExW(
        pName: LPWSTR,
        Level: DWORD,
        lpbDriverInfo: PBYTE,
        dwFileCopyFlags: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumPrinterDriversA(
        pName: LPSTR,
        pEnvironment: LPSTR,
        Level: DWORD,
        pDriverInfo: LPBYTE,
        cbBuf: DWORD,
        pcbNeeded: LPDWORD,
        pcReturned: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumPrinterDriversW(
        pName: LPWSTR,
        pEnvironment: LPWSTR,
        Level: DWORD,
        pDriverInfo: LPBYTE,
        cbBuf: DWORD,
        pcbNeeded: LPDWORD,
        pcReturned: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetPrinterDriverA(
        hPrinter: HANDLE,
        pEnvironment: LPSTR,
        Level: DWORD,
        pDriverInfo: LPBYTE,
        cbBuf: DWORD,
        pcbNeeded: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetPrinterDriverW(
        hPrinter: HANDLE,
        pEnvironment: LPWSTR,
        Level: DWORD,
        pDriverInfo: LPBYTE,
        cbBuf: DWORD,
        pcbNeeded: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetPrinterDriverDirectoryA(
        pName: LPSTR,
        pEnvironment: LPSTR,
        Level: DWORD,
        pDriverDirectory: LPBYTE,
        cbBuf: DWORD,
        pcbNeeded: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetPrinterDriverDirectoryW(
        pName: LPWSTR,
        pEnvironment: LPWSTR,
        Level: DWORD,
        pDriverDirectory: LPBYTE,
        cbBuf: DWORD,
        pcbNeeded: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn DeletePrinterDriverA(pName: LPSTR, pEnvironment: LPSTR, pDriverName: LPSTR) -> BOOL;
}
extern "C" {
    pub fn DeletePrinterDriverW(pName: LPWSTR, pEnvironment: LPWSTR, pDriverName: LPWSTR) -> BOOL;
}
extern "C" {
    pub fn DeletePrinterDriverExA(
        pName: LPSTR,
        pEnvironment: LPSTR,
        pDriverName: LPSTR,
        dwDeleteFlag: DWORD,
        dwVersionFlag: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn DeletePrinterDriverExW(
        pName: LPWSTR,
        pEnvironment: LPWSTR,
        pDriverName: LPWSTR,
        dwDeleteFlag: DWORD,
        dwVersionFlag: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn AddPrintProcessorA(
        pName: LPSTR,
        pEnvironment: LPSTR,
        pPathName: LPSTR,
        pPrintProcessorName: LPSTR,
    ) -> BOOL;
}
extern "C" {
    pub fn AddPrintProcessorW(
        pName: LPWSTR,
        pEnvironment: LPWSTR,
        pPathName: LPWSTR,
        pPrintProcessorName: LPWSTR,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumPrintProcessorsA(
        pName: LPSTR,
        pEnvironment: LPSTR,
        Level: DWORD,
        pPrintProcessorInfo: LPBYTE,
        cbBuf: DWORD,
        pcbNeeded: LPDWORD,
        pcReturned: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumPrintProcessorsW(
        pName: LPWSTR,
        pEnvironment: LPWSTR,
        Level: DWORD,
        pPrintProcessorInfo: LPBYTE,
        cbBuf: DWORD,
        pcbNeeded: LPDWORD,
        pcReturned: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetPrintProcessorDirectoryA(
        pName: LPSTR,
        pEnvironment: LPSTR,
        Level: DWORD,
        pPrintProcessorInfo: LPBYTE,
        cbBuf: DWORD,
        pcbNeeded: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetPrintProcessorDirectoryW(
        pName: LPWSTR,
        pEnvironment: LPWSTR,
        Level: DWORD,
        pPrintProcessorInfo: LPBYTE,
        cbBuf: DWORD,
        pcbNeeded: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumPrintProcessorDatatypesA(
        pName: LPSTR,
        pPrintProcessorName: LPSTR,
        Level: DWORD,
        pDatatypes: LPBYTE,
        cbBuf: DWORD,
        pcbNeeded: LPDWORD,
        pcReturned: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumPrintProcessorDatatypesW(
        pName: LPWSTR,
        pPrintProcessorName: LPWSTR,
        Level: DWORD,
        pDatatypes: LPBYTE,
        cbBuf: DWORD,
        pcbNeeded: LPDWORD,
        pcReturned: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn DeletePrintProcessorA(
        pName: LPSTR,
        pEnvironment: LPSTR,
        pPrintProcessorName: LPSTR,
    ) -> BOOL;
}
extern "C" {
    pub fn DeletePrintProcessorW(
        pName: LPWSTR,
        pEnvironment: LPWSTR,
        pPrintProcessorName: LPWSTR,
    ) -> BOOL;
}
extern "C" {
    pub fn StartDocPrinterA(hPrinter: HANDLE, Level: DWORD, pDocInfo: LPBYTE) -> DWORD;
}
extern "C" {
    pub fn StartDocPrinterW(hPrinter: HANDLE, Level: DWORD, pDocInfo: LPBYTE) -> DWORD;
}
extern "C" {
    pub fn StartPagePrinter(hPrinter: HANDLE) -> BOOL;
}
extern "C" {
    pub fn WritePrinter(hPrinter: HANDLE, pBuf: LPVOID, cbBuf: DWORD, pcWritten: LPDWORD) -> BOOL;
}
extern "C" {
    pub fn FlushPrinter(
        hPrinter: HANDLE,
        pBuf: LPVOID,
        cbBuf: DWORD,
        pcWritten: LPDWORD,
        cSleep: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn EndPagePrinter(hPrinter: HANDLE) -> BOOL;
}
extern "C" {
    pub fn AbortPrinter(hPrinter: HANDLE) -> BOOL;
}
extern "C" {
    pub fn ReadPrinter(hPrinter: HANDLE, pBuf: LPVOID, cbBuf: DWORD, pNoBytesRead: LPDWORD)
        -> BOOL;
}
extern "C" {
    pub fn EndDocPrinter(hPrinter: HANDLE) -> BOOL;
}
extern "C" {
    pub fn AddJobA(
        hPrinter: HANDLE,
        Level: DWORD,
        pData: LPBYTE,
        cbBuf: DWORD,
        pcbNeeded: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn AddJobW(
        hPrinter: HANDLE,
        Level: DWORD,
        pData: LPBYTE,
        cbBuf: DWORD,
        pcbNeeded: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn ScheduleJob(hPrinter: HANDLE, JobId: DWORD) -> BOOL;
}
extern "C" {
    pub fn PrinterProperties(hWnd: HWND, hPrinter: HANDLE) -> BOOL;
}
extern "C" {
    pub fn DocumentPropertiesA(
        hWnd: HWND,
        hPrinter: HANDLE,
        pDeviceName: LPSTR,
        pDevModeOutput: PDEVMODEA,
        pDevModeInput: PDEVMODEA,
        fMode: DWORD,
    ) -> LONG;
}
extern "C" {
    pub fn DocumentPropertiesW(
        hWnd: HWND,
        hPrinter: HANDLE,
        pDeviceName: LPWSTR,
        pDevModeOutput: PDEVMODEW,
        pDevModeInput: PDEVMODEW,
        fMode: DWORD,
    ) -> LONG;
}
extern "C" {
    pub fn AdvancedDocumentPropertiesA(
        hWnd: HWND,
        hPrinter: HANDLE,
        pDeviceName: LPSTR,
        pDevModeOutput: PDEVMODEA,
        pDevModeInput: PDEVMODEA,
    ) -> LONG;
}
extern "C" {
    pub fn AdvancedDocumentPropertiesW(
        hWnd: HWND,
        hPrinter: HANDLE,
        pDeviceName: LPWSTR,
        pDevModeOutput: PDEVMODEW,
        pDevModeInput: PDEVMODEW,
    ) -> LONG;
}
extern "C" {
    pub fn ExtDeviceMode(
        hWnd: HWND,
        hInst: HANDLE,
        pDevModeOutput: LPDEVMODEA,
        pDeviceName: LPSTR,
        pPort: LPSTR,
        pDevModeInput: LPDEVMODEA,
        pProfile: LPSTR,
        fMode: DWORD,
    ) -> LONG;
}
extern "C" {
    pub fn GetPrinterDataA(
        hPrinter: HANDLE,
        pValueName: LPSTR,
        pType: LPDWORD,
        pData: LPBYTE,
        nSize: DWORD,
        pcbNeeded: LPDWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn GetPrinterDataW(
        hPrinter: HANDLE,
        pValueName: LPWSTR,
        pType: LPDWORD,
        pData: LPBYTE,
        nSize: DWORD,
        pcbNeeded: LPDWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn GetPrinterDataExA(
        hPrinter: HANDLE,
        pKeyName: LPCSTR,
        pValueName: LPCSTR,
        pType: LPDWORD,
        pData: LPBYTE,
        nSize: DWORD,
        pcbNeeded: LPDWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn GetPrinterDataExW(
        hPrinter: HANDLE,
        pKeyName: LPCWSTR,
        pValueName: LPCWSTR,
        pType: LPDWORD,
        pData: LPBYTE,
        nSize: DWORD,
        pcbNeeded: LPDWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn EnumPrinterDataA(
        hPrinter: HANDLE,
        dwIndex: DWORD,
        pValueName: LPSTR,
        cbValueName: DWORD,
        pcbValueName: LPDWORD,
        pType: LPDWORD,
        pData: LPBYTE,
        cbData: DWORD,
        pcbData: LPDWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn EnumPrinterDataW(
        hPrinter: HANDLE,
        dwIndex: DWORD,
        pValueName: LPWSTR,
        cbValueName: DWORD,
        pcbValueName: LPDWORD,
        pType: LPDWORD,
        pData: LPBYTE,
        cbData: DWORD,
        pcbData: LPDWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn EnumPrinterDataExA(
        hPrinter: HANDLE,
        pKeyName: LPCSTR,
        pEnumValues: LPBYTE,
        cbEnumValues: DWORD,
        pcbEnumValues: LPDWORD,
        pnEnumValues: LPDWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn EnumPrinterDataExW(
        hPrinter: HANDLE,
        pKeyName: LPCWSTR,
        pEnumValues: LPBYTE,
        cbEnumValues: DWORD,
        pcbEnumValues: LPDWORD,
        pnEnumValues: LPDWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn EnumPrinterKeyA(
        hPrinter: HANDLE,
        pKeyName: LPCSTR,
        pSubkey: LPSTR,
        cbSubkey: DWORD,
        pcbSubkey: LPDWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn EnumPrinterKeyW(
        hPrinter: HANDLE,
        pKeyName: LPCWSTR,
        pSubkey: LPWSTR,
        cbSubkey: DWORD,
        pcbSubkey: LPDWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn SetPrinterDataA(
        hPrinter: HANDLE,
        pValueName: LPSTR,
        Type: DWORD,
        pData: LPBYTE,
        cbData: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn SetPrinterDataW(
        hPrinter: HANDLE,
        pValueName: LPWSTR,
        Type: DWORD,
        pData: LPBYTE,
        cbData: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn SetPrinterDataExA(
        hPrinter: HANDLE,
        pKeyName: LPCSTR,
        pValueName: LPCSTR,
        Type: DWORD,
        pData: LPBYTE,
        cbData: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn SetPrinterDataExW(
        hPrinter: HANDLE,
        pKeyName: LPCWSTR,
        pValueName: LPCWSTR,
        Type: DWORD,
        pData: LPBYTE,
        cbData: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn DeletePrinterDataA(hPrinter: HANDLE, pValueName: LPSTR) -> DWORD;
}
extern "C" {
    pub fn DeletePrinterDataW(hPrinter: HANDLE, pValueName: LPWSTR) -> DWORD;
}
extern "C" {
    pub fn DeletePrinterDataExA(hPrinter: HANDLE, pKeyName: LPCSTR, pValueName: LPCSTR) -> DWORD;
}
extern "C" {
    pub fn DeletePrinterDataExW(hPrinter: HANDLE, pKeyName: LPCWSTR, pValueName: LPCWSTR) -> DWORD;
}
extern "C" {
    pub fn DeletePrinterKeyA(hPrinter: HANDLE, pKeyName: LPCSTR) -> DWORD;
}
extern "C" {
    pub fn DeletePrinterKeyW(hPrinter: HANDLE, pKeyName: LPCWSTR) -> DWORD;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRINTER_NOTIFY_OPTIONS_TYPE {
    pub Type: WORD,
    pub Reserved0: WORD,
    pub Reserved1: DWORD,
    pub Reserved2: DWORD,
    pub Count: DWORD,
    pub pFields: PWORD,
}
#[test]
fn bindgen_test_layout__PRINTER_NOTIFY_OPTIONS_TYPE() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTER_NOTIFY_OPTIONS_TYPE>(),
        24usize,
        concat!("Size of: ", stringify!(_PRINTER_NOTIFY_OPTIONS_TYPE))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTER_NOTIFY_OPTIONS_TYPE>(),
        8usize,
        concat!("Alignment of ", stringify!(_PRINTER_NOTIFY_OPTIONS_TYPE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_NOTIFY_OPTIONS_TYPE>())).Type as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_NOTIFY_OPTIONS_TYPE),
            "::",
            stringify!(Type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_NOTIFY_OPTIONS_TYPE>())).Reserved0 as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_NOTIFY_OPTIONS_TYPE),
            "::",
            stringify!(Reserved0)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_NOTIFY_OPTIONS_TYPE>())).Reserved1 as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_NOTIFY_OPTIONS_TYPE),
            "::",
            stringify!(Reserved1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_NOTIFY_OPTIONS_TYPE>())).Reserved2 as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_NOTIFY_OPTIONS_TYPE),
            "::",
            stringify!(Reserved2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_NOTIFY_OPTIONS_TYPE>())).Count as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_NOTIFY_OPTIONS_TYPE),
            "::",
            stringify!(Count)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_NOTIFY_OPTIONS_TYPE>())).pFields as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_NOTIFY_OPTIONS_TYPE),
            "::",
            stringify!(pFields)
        )
    );
}
pub type PRINTER_NOTIFY_OPTIONS_TYPE = _PRINTER_NOTIFY_OPTIONS_TYPE;
pub type PPRINTER_NOTIFY_OPTIONS_TYPE = *mut _PRINTER_NOTIFY_OPTIONS_TYPE;
pub type LPPRINTER_NOTIFY_OPTIONS_TYPE = *mut _PRINTER_NOTIFY_OPTIONS_TYPE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRINTER_NOTIFY_OPTIONS {
    pub Version: DWORD,
    pub Flags: DWORD,
    pub Count: DWORD,
    pub pTypes: PPRINTER_NOTIFY_OPTIONS_TYPE,
}
#[test]
fn bindgen_test_layout__PRINTER_NOTIFY_OPTIONS() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTER_NOTIFY_OPTIONS>(),
        24usize,
        concat!("Size of: ", stringify!(_PRINTER_NOTIFY_OPTIONS))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTER_NOTIFY_OPTIONS>(),
        8usize,
        concat!("Alignment of ", stringify!(_PRINTER_NOTIFY_OPTIONS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_NOTIFY_OPTIONS>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_NOTIFY_OPTIONS),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_NOTIFY_OPTIONS>())).Flags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_NOTIFY_OPTIONS),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_NOTIFY_OPTIONS>())).Count as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_NOTIFY_OPTIONS),
            "::",
            stringify!(Count)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_NOTIFY_OPTIONS>())).pTypes as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_NOTIFY_OPTIONS),
            "::",
            stringify!(pTypes)
        )
    );
}
pub type PRINTER_NOTIFY_OPTIONS = _PRINTER_NOTIFY_OPTIONS;
pub type PPRINTER_NOTIFY_OPTIONS = *mut _PRINTER_NOTIFY_OPTIONS;
pub type LPPRINTER_NOTIFY_OPTIONS = *mut _PRINTER_NOTIFY_OPTIONS;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PRINTER_NOTIFY_INFO_DATA {
    pub Type: WORD,
    pub Field: WORD,
    pub Reserved: DWORD,
    pub Id: DWORD,
    pub NotifyData: _PRINTER_NOTIFY_INFO_DATA__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _PRINTER_NOTIFY_INFO_DATA__bindgen_ty_1 {
    pub adwData: [DWORD; 2usize],
    pub Data: _PRINTER_NOTIFY_INFO_DATA__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: [u64; 2usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRINTER_NOTIFY_INFO_DATA__bindgen_ty_1__bindgen_ty_1 {
    pub cbBuf: DWORD,
    pub pBuf: LPVOID,
}
#[test]
fn bindgen_test_layout__PRINTER_NOTIFY_INFO_DATA__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTER_NOTIFY_INFO_DATA__bindgen_ty_1__bindgen_ty_1>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_PRINTER_NOTIFY_INFO_DATA__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTER_NOTIFY_INFO_DATA__bindgen_ty_1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PRINTER_NOTIFY_INFO_DATA__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_NOTIFY_INFO_DATA__bindgen_ty_1__bindgen_ty_1>())).cbBuf
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_NOTIFY_INFO_DATA__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(cbBuf)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_NOTIFY_INFO_DATA__bindgen_ty_1__bindgen_ty_1>())).pBuf
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_NOTIFY_INFO_DATA__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pBuf)
        )
    );
}
#[test]
fn bindgen_test_layout__PRINTER_NOTIFY_INFO_DATA__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTER_NOTIFY_INFO_DATA__bindgen_ty_1>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(_PRINTER_NOTIFY_INFO_DATA__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTER_NOTIFY_INFO_DATA__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_PRINTER_NOTIFY_INFO_DATA__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_NOTIFY_INFO_DATA__bindgen_ty_1>())).adwData as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_NOTIFY_INFO_DATA__bindgen_ty_1),
            "::",
            stringify!(adwData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_NOTIFY_INFO_DATA__bindgen_ty_1>())).Data as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_NOTIFY_INFO_DATA__bindgen_ty_1),
            "::",
            stringify!(Data)
        )
    );
}
#[test]
fn bindgen_test_layout__PRINTER_NOTIFY_INFO_DATA() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTER_NOTIFY_INFO_DATA>(),
        32usize,
        concat!("Size of: ", stringify!(_PRINTER_NOTIFY_INFO_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTER_NOTIFY_INFO_DATA>(),
        8usize,
        concat!("Alignment of ", stringify!(_PRINTER_NOTIFY_INFO_DATA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_NOTIFY_INFO_DATA>())).Type as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_NOTIFY_INFO_DATA),
            "::",
            stringify!(Type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_NOTIFY_INFO_DATA>())).Field as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_NOTIFY_INFO_DATA),
            "::",
            stringify!(Field)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_NOTIFY_INFO_DATA>())).Reserved as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_NOTIFY_INFO_DATA),
            "::",
            stringify!(Reserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_NOTIFY_INFO_DATA>())).Id as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_NOTIFY_INFO_DATA),
            "::",
            stringify!(Id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_NOTIFY_INFO_DATA>())).NotifyData as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_NOTIFY_INFO_DATA),
            "::",
            stringify!(NotifyData)
        )
    );
}
pub type PRINTER_NOTIFY_INFO_DATA = _PRINTER_NOTIFY_INFO_DATA;
pub type PPRINTER_NOTIFY_INFO_DATA = *mut _PRINTER_NOTIFY_INFO_DATA;
pub type LPPRINTER_NOTIFY_INFO_DATA = *mut _PRINTER_NOTIFY_INFO_DATA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _PRINTER_NOTIFY_INFO {
    pub Version: DWORD,
    pub Flags: DWORD,
    pub Count: DWORD,
    pub aData: [PRINTER_NOTIFY_INFO_DATA; 1usize],
}
#[test]
fn bindgen_test_layout__PRINTER_NOTIFY_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTER_NOTIFY_INFO>(),
        48usize,
        concat!("Size of: ", stringify!(_PRINTER_NOTIFY_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTER_NOTIFY_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_PRINTER_NOTIFY_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_NOTIFY_INFO>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_NOTIFY_INFO),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_NOTIFY_INFO>())).Flags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_NOTIFY_INFO),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_NOTIFY_INFO>())).Count as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_NOTIFY_INFO),
            "::",
            stringify!(Count)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_NOTIFY_INFO>())).aData as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_NOTIFY_INFO),
            "::",
            stringify!(aData)
        )
    );
}
pub type PRINTER_NOTIFY_INFO = _PRINTER_NOTIFY_INFO;
pub type PPRINTER_NOTIFY_INFO = *mut _PRINTER_NOTIFY_INFO;
pub type LPPRINTER_NOTIFY_INFO = *mut _PRINTER_NOTIFY_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _BINARY_CONTAINER {
    pub cbBuf: DWORD,
    pub pData: LPBYTE,
}
#[test]
fn bindgen_test_layout__BINARY_CONTAINER() {
    assert_eq!(
        ::std::mem::size_of::<_BINARY_CONTAINER>(),
        16usize,
        concat!("Size of: ", stringify!(_BINARY_CONTAINER))
    );
    assert_eq!(
        ::std::mem::align_of::<_BINARY_CONTAINER>(),
        8usize,
        concat!("Alignment of ", stringify!(_BINARY_CONTAINER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BINARY_CONTAINER>())).cbBuf as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BINARY_CONTAINER),
            "::",
            stringify!(cbBuf)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BINARY_CONTAINER>())).pData as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_BINARY_CONTAINER),
            "::",
            stringify!(pData)
        )
    );
}
pub type BINARY_CONTAINER = _BINARY_CONTAINER;
pub type PBINARY_CONTAINER = *mut _BINARY_CONTAINER;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _BIDI_DATA {
    pub dwBidiType: DWORD,
    pub u: _BIDI_DATA__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _BIDI_DATA__bindgen_ty_1 {
    pub bData: BOOL,
    pub iData: LONG,
    pub sData: LPWSTR,
    pub fData: FLOAT,
    pub biData: BINARY_CONTAINER,
    _bindgen_union_align: [u64; 2usize],
}
#[test]
fn bindgen_test_layout__BIDI_DATA__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_BIDI_DATA__bindgen_ty_1>(),
        16usize,
        concat!("Size of: ", stringify!(_BIDI_DATA__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_BIDI_DATA__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(_BIDI_DATA__bindgen_ty_1))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BIDI_DATA__bindgen_ty_1>())).bData as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BIDI_DATA__bindgen_ty_1),
            "::",
            stringify!(bData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BIDI_DATA__bindgen_ty_1>())).iData as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BIDI_DATA__bindgen_ty_1),
            "::",
            stringify!(iData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BIDI_DATA__bindgen_ty_1>())).sData as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BIDI_DATA__bindgen_ty_1),
            "::",
            stringify!(sData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BIDI_DATA__bindgen_ty_1>())).fData as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BIDI_DATA__bindgen_ty_1),
            "::",
            stringify!(fData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BIDI_DATA__bindgen_ty_1>())).biData as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BIDI_DATA__bindgen_ty_1),
            "::",
            stringify!(biData)
        )
    );
}
#[test]
fn bindgen_test_layout__BIDI_DATA() {
    assert_eq!(
        ::std::mem::size_of::<_BIDI_DATA>(),
        24usize,
        concat!("Size of: ", stringify!(_BIDI_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<_BIDI_DATA>(),
        8usize,
        concat!("Alignment of ", stringify!(_BIDI_DATA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BIDI_DATA>())).dwBidiType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BIDI_DATA),
            "::",
            stringify!(dwBidiType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BIDI_DATA>())).u as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_BIDI_DATA),
            "::",
            stringify!(u)
        )
    );
}
pub type BIDI_DATA = _BIDI_DATA;
pub type PBIDI_DATA = *mut _BIDI_DATA;
pub type LPBIDI_DATA = *mut _BIDI_DATA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _BIDI_REQUEST_DATA {
    pub dwReqNumber: DWORD,
    pub pSchema: LPWSTR,
    pub data: BIDI_DATA,
}
#[test]
fn bindgen_test_layout__BIDI_REQUEST_DATA() {
    assert_eq!(
        ::std::mem::size_of::<_BIDI_REQUEST_DATA>(),
        40usize,
        concat!("Size of: ", stringify!(_BIDI_REQUEST_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<_BIDI_REQUEST_DATA>(),
        8usize,
        concat!("Alignment of ", stringify!(_BIDI_REQUEST_DATA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BIDI_REQUEST_DATA>())).dwReqNumber as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BIDI_REQUEST_DATA),
            "::",
            stringify!(dwReqNumber)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BIDI_REQUEST_DATA>())).pSchema as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_BIDI_REQUEST_DATA),
            "::",
            stringify!(pSchema)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BIDI_REQUEST_DATA>())).data as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_BIDI_REQUEST_DATA),
            "::",
            stringify!(data)
        )
    );
}
pub type BIDI_REQUEST_DATA = _BIDI_REQUEST_DATA;
pub type PBIDI_REQUEST_DATA = *mut _BIDI_REQUEST_DATA;
pub type LPBIDI_REQUEST_DATA = *mut _BIDI_REQUEST_DATA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _BIDI_REQUEST_CONTAINER {
    pub Version: DWORD,
    pub Flags: DWORD,
    pub Count: DWORD,
    pub aData: [BIDI_REQUEST_DATA; 1usize],
}
#[test]
fn bindgen_test_layout__BIDI_REQUEST_CONTAINER() {
    assert_eq!(
        ::std::mem::size_of::<_BIDI_REQUEST_CONTAINER>(),
        56usize,
        concat!("Size of: ", stringify!(_BIDI_REQUEST_CONTAINER))
    );
    assert_eq!(
        ::std::mem::align_of::<_BIDI_REQUEST_CONTAINER>(),
        8usize,
        concat!("Alignment of ", stringify!(_BIDI_REQUEST_CONTAINER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BIDI_REQUEST_CONTAINER>())).Version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BIDI_REQUEST_CONTAINER),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BIDI_REQUEST_CONTAINER>())).Flags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_BIDI_REQUEST_CONTAINER),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BIDI_REQUEST_CONTAINER>())).Count as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_BIDI_REQUEST_CONTAINER),
            "::",
            stringify!(Count)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BIDI_REQUEST_CONTAINER>())).aData as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_BIDI_REQUEST_CONTAINER),
            "::",
            stringify!(aData)
        )
    );
}
pub type BIDI_REQUEST_CONTAINER = _BIDI_REQUEST_CONTAINER;
pub type PBIDI_REQUEST_CONTAINER = *mut _BIDI_REQUEST_CONTAINER;
pub type LPBIDI_REQUEST_CONTAINER = *mut _BIDI_REQUEST_CONTAINER;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _BIDI_RESPONSE_DATA {
    pub dwResult: DWORD,
    pub dwReqNumber: DWORD,
    pub pSchema: LPWSTR,
    pub data: BIDI_DATA,
}
#[test]
fn bindgen_test_layout__BIDI_RESPONSE_DATA() {
    assert_eq!(
        ::std::mem::size_of::<_BIDI_RESPONSE_DATA>(),
        40usize,
        concat!("Size of: ", stringify!(_BIDI_RESPONSE_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<_BIDI_RESPONSE_DATA>(),
        8usize,
        concat!("Alignment of ", stringify!(_BIDI_RESPONSE_DATA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BIDI_RESPONSE_DATA>())).dwResult as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BIDI_RESPONSE_DATA),
            "::",
            stringify!(dwResult)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BIDI_RESPONSE_DATA>())).dwReqNumber as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_BIDI_RESPONSE_DATA),
            "::",
            stringify!(dwReqNumber)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BIDI_RESPONSE_DATA>())).pSchema as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_BIDI_RESPONSE_DATA),
            "::",
            stringify!(pSchema)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BIDI_RESPONSE_DATA>())).data as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_BIDI_RESPONSE_DATA),
            "::",
            stringify!(data)
        )
    );
}
pub type BIDI_RESPONSE_DATA = _BIDI_RESPONSE_DATA;
pub type PBIDI_RESPONSE_DATA = *mut _BIDI_RESPONSE_DATA;
pub type LPBIDI_RESPONSE_DATA = *mut _BIDI_RESPONSE_DATA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _BIDI_RESPONSE_CONTAINER {
    pub Version: DWORD,
    pub Flags: DWORD,
    pub Count: DWORD,
    pub aData: [BIDI_RESPONSE_DATA; 1usize],
}
#[test]
fn bindgen_test_layout__BIDI_RESPONSE_CONTAINER() {
    assert_eq!(
        ::std::mem::size_of::<_BIDI_RESPONSE_CONTAINER>(),
        56usize,
        concat!("Size of: ", stringify!(_BIDI_RESPONSE_CONTAINER))
    );
    assert_eq!(
        ::std::mem::align_of::<_BIDI_RESPONSE_CONTAINER>(),
        8usize,
        concat!("Alignment of ", stringify!(_BIDI_RESPONSE_CONTAINER))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_BIDI_RESPONSE_CONTAINER>())).Version as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_BIDI_RESPONSE_CONTAINER),
            "::",
            stringify!(Version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BIDI_RESPONSE_CONTAINER>())).Flags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_BIDI_RESPONSE_CONTAINER),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BIDI_RESPONSE_CONTAINER>())).Count as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_BIDI_RESPONSE_CONTAINER),
            "::",
            stringify!(Count)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_BIDI_RESPONSE_CONTAINER>())).aData as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_BIDI_RESPONSE_CONTAINER),
            "::",
            stringify!(aData)
        )
    );
}
pub type BIDI_RESPONSE_CONTAINER = _BIDI_RESPONSE_CONTAINER;
pub type PBIDI_RESPONSE_CONTAINER = *mut _BIDI_RESPONSE_CONTAINER;
pub type LPBIDI_RESPONSE_CONTAINER = *mut _BIDI_RESPONSE_CONTAINER;
pub const BIDI_TYPE_BIDI_NULL: BIDI_TYPE = 0;
pub const BIDI_TYPE_BIDI_INT: BIDI_TYPE = 1;
pub const BIDI_TYPE_BIDI_FLOAT: BIDI_TYPE = 2;
pub const BIDI_TYPE_BIDI_BOOL: BIDI_TYPE = 3;
pub const BIDI_TYPE_BIDI_STRING: BIDI_TYPE = 4;
pub const BIDI_TYPE_BIDI_TEXT: BIDI_TYPE = 5;
pub const BIDI_TYPE_BIDI_ENUM: BIDI_TYPE = 6;
pub const BIDI_TYPE_BIDI_BLOB: BIDI_TYPE = 7;
pub type BIDI_TYPE = ::std::os::raw::c_int;
extern "C" {
    pub fn WaitForPrinterChange(hPrinter: HANDLE, Flags: DWORD) -> DWORD;
}
extern "C" {
    pub fn FindFirstPrinterChangeNotification(
        hPrinter: HANDLE,
        fdwFilter: DWORD,
        fdwOptions: DWORD,
        pPrinterNotifyOptions: PVOID,
    ) -> HANDLE;
}
extern "C" {
    pub fn FindNextPrinterChangeNotification(
        hChange: HANDLE,
        pdwChange: PDWORD,
        pvReserved: LPVOID,
        ppPrinterNotifyInfo: *mut LPVOID,
    ) -> BOOL;
}
extern "C" {
    pub fn FreePrinterNotifyInfo(pPrinterNotifyInfo: PPRINTER_NOTIFY_INFO) -> BOOL;
}
extern "C" {
    pub fn FindClosePrinterChangeNotification(hChange: HANDLE) -> BOOL;
}
extern "C" {
    pub fn PrinterMessageBoxA(
        hPrinter: HANDLE,
        Error: DWORD,
        hWnd: HWND,
        pText: LPSTR,
        pCaption: LPSTR,
        dwType: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn PrinterMessageBoxW(
        hPrinter: HANDLE,
        Error: DWORD,
        hWnd: HWND,
        pText: LPWSTR,
        pCaption: LPWSTR,
        dwType: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn ClosePrinter(hPrinter: HANDLE) -> BOOL;
}
extern "C" {
    pub fn AddFormA(hPrinter: HANDLE, Level: DWORD, pForm: LPBYTE) -> BOOL;
}
extern "C" {
    pub fn AddFormW(hPrinter: HANDLE, Level: DWORD, pForm: LPBYTE) -> BOOL;
}
extern "C" {
    pub fn DeleteFormA(hPrinter: HANDLE, pFormName: LPSTR) -> BOOL;
}
extern "C" {
    pub fn DeleteFormW(hPrinter: HANDLE, pFormName: LPWSTR) -> BOOL;
}
extern "C" {
    pub fn GetFormA(
        hPrinter: HANDLE,
        pFormName: LPSTR,
        Level: DWORD,
        pForm: LPBYTE,
        cbBuf: DWORD,
        pcbNeeded: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetFormW(
        hPrinter: HANDLE,
        pFormName: LPWSTR,
        Level: DWORD,
        pForm: LPBYTE,
        cbBuf: DWORD,
        pcbNeeded: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn SetFormA(hPrinter: HANDLE, pFormName: LPSTR, Level: DWORD, pForm: LPBYTE) -> BOOL;
}
extern "C" {
    pub fn SetFormW(hPrinter: HANDLE, pFormName: LPWSTR, Level: DWORD, pForm: LPBYTE) -> BOOL;
}
extern "C" {
    pub fn EnumFormsA(
        hPrinter: HANDLE,
        Level: DWORD,
        pForm: LPBYTE,
        cbBuf: DWORD,
        pcbNeeded: LPDWORD,
        pcReturned: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumFormsW(
        hPrinter: HANDLE,
        Level: DWORD,
        pForm: LPBYTE,
        cbBuf: DWORD,
        pcbNeeded: LPDWORD,
        pcReturned: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumMonitorsA(
        pName: LPSTR,
        Level: DWORD,
        pMonitor: LPBYTE,
        cbBuf: DWORD,
        pcbNeeded: LPDWORD,
        pcReturned: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumMonitorsW(
        pName: LPWSTR,
        Level: DWORD,
        pMonitor: LPBYTE,
        cbBuf: DWORD,
        pcbNeeded: LPDWORD,
        pcReturned: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn AddMonitorA(pName: LPSTR, Level: DWORD, pMonitors: LPBYTE) -> BOOL;
}
extern "C" {
    pub fn AddMonitorW(pName: LPWSTR, Level: DWORD, pMonitors: LPBYTE) -> BOOL;
}
extern "C" {
    pub fn DeleteMonitorA(pName: LPSTR, pEnvironment: LPSTR, pMonitorName: LPSTR) -> BOOL;
}
extern "C" {
    pub fn DeleteMonitorW(pName: LPWSTR, pEnvironment: LPWSTR, pMonitorName: LPWSTR) -> BOOL;
}
extern "C" {
    pub fn EnumPortsA(
        pName: LPSTR,
        Level: DWORD,
        pPort: LPBYTE,
        cbBuf: DWORD,
        pcbNeeded: LPDWORD,
        pcReturned: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumPortsW(
        pName: LPWSTR,
        Level: DWORD,
        pPort: LPBYTE,
        cbBuf: DWORD,
        pcbNeeded: LPDWORD,
        pcReturned: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn AddPortA(pName: LPSTR, hWnd: HWND, pMonitorName: LPSTR) -> BOOL;
}
extern "C" {
    pub fn AddPortW(pName: LPWSTR, hWnd: HWND, pMonitorName: LPWSTR) -> BOOL;
}
extern "C" {
    pub fn ConfigurePortA(pName: LPSTR, hWnd: HWND, pPortName: LPSTR) -> BOOL;
}
extern "C" {
    pub fn ConfigurePortW(pName: LPWSTR, hWnd: HWND, pPortName: LPWSTR) -> BOOL;
}
extern "C" {
    pub fn DeletePortA(pName: LPSTR, hWnd: HWND, pPortName: LPSTR) -> BOOL;
}
extern "C" {
    pub fn DeletePortW(pName: LPWSTR, hWnd: HWND, pPortName: LPWSTR) -> BOOL;
}
extern "C" {
    pub fn XcvDataW(
        hXcv: HANDLE,
        pszDataName: PCWSTR,
        pInputData: PBYTE,
        cbInputData: DWORD,
        pOutputData: PBYTE,
        cbOutputData: DWORD,
        pcbOutputNeeded: PDWORD,
        pdwStatus: PDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetDefaultPrinterA(pszBuffer: LPSTR, pcchBuffer: LPDWORD) -> BOOL;
}
extern "C" {
    pub fn GetDefaultPrinterW(pszBuffer: LPWSTR, pcchBuffer: LPDWORD) -> BOOL;
}
extern "C" {
    pub fn SetDefaultPrinterA(pszPrinter: LPCSTR) -> BOOL;
}
extern "C" {
    pub fn SetDefaultPrinterW(pszPrinter: LPCWSTR) -> BOOL;
}
extern "C" {
    pub fn SetPortA(pName: LPSTR, pPortName: LPSTR, dwLevel: DWORD, pPortInfo: LPBYTE) -> BOOL;
}
extern "C" {
    pub fn SetPortW(pName: LPWSTR, pPortName: LPWSTR, dwLevel: DWORD, pPortInfo: LPBYTE) -> BOOL;
}
extern "C" {
    pub fn AddPrinterConnectionA(pName: LPSTR) -> BOOL;
}
extern "C" {
    pub fn AddPrinterConnectionW(pName: LPWSTR) -> BOOL;
}
extern "C" {
    pub fn DeletePrinterConnectionA(pName: LPSTR) -> BOOL;
}
extern "C" {
    pub fn DeletePrinterConnectionW(pName: LPWSTR) -> BOOL;
}
extern "C" {
    pub fn ConnectToPrinterDlg(hwnd: HWND, Flags: DWORD) -> HANDLE;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PROVIDOR_INFO_1A {
    pub pName: LPSTR,
    pub pEnvironment: LPSTR,
    pub pDLLName: LPSTR,
}
#[test]
fn bindgen_test_layout__PROVIDOR_INFO_1A() {
    assert_eq!(
        ::std::mem::size_of::<_PROVIDOR_INFO_1A>(),
        24usize,
        concat!("Size of: ", stringify!(_PROVIDOR_INFO_1A))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROVIDOR_INFO_1A>(),
        8usize,
        concat!("Alignment of ", stringify!(_PROVIDOR_INFO_1A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROVIDOR_INFO_1A>())).pName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROVIDOR_INFO_1A),
            "::",
            stringify!(pName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROVIDOR_INFO_1A>())).pEnvironment as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROVIDOR_INFO_1A),
            "::",
            stringify!(pEnvironment)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROVIDOR_INFO_1A>())).pDLLName as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROVIDOR_INFO_1A),
            "::",
            stringify!(pDLLName)
        )
    );
}
pub type PROVIDOR_INFO_1A = _PROVIDOR_INFO_1A;
pub type PPROVIDOR_INFO_1A = *mut _PROVIDOR_INFO_1A;
pub type LPPROVIDOR_INFO_1A = *mut _PROVIDOR_INFO_1A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PROVIDOR_INFO_1W {
    pub pName: LPWSTR,
    pub pEnvironment: LPWSTR,
    pub pDLLName: LPWSTR,
}
#[test]
fn bindgen_test_layout__PROVIDOR_INFO_1W() {
    assert_eq!(
        ::std::mem::size_of::<_PROVIDOR_INFO_1W>(),
        24usize,
        concat!("Size of: ", stringify!(_PROVIDOR_INFO_1W))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROVIDOR_INFO_1W>(),
        8usize,
        concat!("Alignment of ", stringify!(_PROVIDOR_INFO_1W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROVIDOR_INFO_1W>())).pName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROVIDOR_INFO_1W),
            "::",
            stringify!(pName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROVIDOR_INFO_1W>())).pEnvironment as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROVIDOR_INFO_1W),
            "::",
            stringify!(pEnvironment)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROVIDOR_INFO_1W>())).pDLLName as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROVIDOR_INFO_1W),
            "::",
            stringify!(pDLLName)
        )
    );
}
pub type PROVIDOR_INFO_1W = _PROVIDOR_INFO_1W;
pub type PPROVIDOR_INFO_1W = *mut _PROVIDOR_INFO_1W;
pub type LPPROVIDOR_INFO_1W = *mut _PROVIDOR_INFO_1W;
pub type PROVIDOR_INFO_1 = PROVIDOR_INFO_1A;
pub type PPROVIDOR_INFO_1 = PPROVIDOR_INFO_1A;
pub type LPPROVIDOR_INFO_1 = LPPROVIDOR_INFO_1A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PROVIDOR_INFO_2A {
    pub pOrder: LPSTR,
}
#[test]
fn bindgen_test_layout__PROVIDOR_INFO_2A() {
    assert_eq!(
        ::std::mem::size_of::<_PROVIDOR_INFO_2A>(),
        8usize,
        concat!("Size of: ", stringify!(_PROVIDOR_INFO_2A))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROVIDOR_INFO_2A>(),
        8usize,
        concat!("Alignment of ", stringify!(_PROVIDOR_INFO_2A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROVIDOR_INFO_2A>())).pOrder as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROVIDOR_INFO_2A),
            "::",
            stringify!(pOrder)
        )
    );
}
pub type PROVIDOR_INFO_2A = _PROVIDOR_INFO_2A;
pub type PPROVIDOR_INFO_2A = *mut _PROVIDOR_INFO_2A;
pub type LPPROVIDOR_INFO_2A = *mut _PROVIDOR_INFO_2A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PROVIDOR_INFO_2W {
    pub pOrder: LPWSTR,
}
#[test]
fn bindgen_test_layout__PROVIDOR_INFO_2W() {
    assert_eq!(
        ::std::mem::size_of::<_PROVIDOR_INFO_2W>(),
        8usize,
        concat!("Size of: ", stringify!(_PROVIDOR_INFO_2W))
    );
    assert_eq!(
        ::std::mem::align_of::<_PROVIDOR_INFO_2W>(),
        8usize,
        concat!("Alignment of ", stringify!(_PROVIDOR_INFO_2W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PROVIDOR_INFO_2W>())).pOrder as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PROVIDOR_INFO_2W),
            "::",
            stringify!(pOrder)
        )
    );
}
pub type PROVIDOR_INFO_2W = _PROVIDOR_INFO_2W;
pub type PPROVIDOR_INFO_2W = *mut _PROVIDOR_INFO_2W;
pub type LPPROVIDOR_INFO_2W = *mut _PROVIDOR_INFO_2W;
pub type PROVIDOR_INFO_2 = PROVIDOR_INFO_2A;
pub type PPROVIDOR_INFO_2 = PPROVIDOR_INFO_2A;
pub type LPPROVIDOR_INFO_2 = LPPROVIDOR_INFO_2A;
extern "C" {
    pub fn AddPrintProvidorA(pName: LPSTR, Level: DWORD, pProvidorInfo: LPBYTE) -> BOOL;
}
extern "C" {
    pub fn AddPrintProvidorW(pName: LPWSTR, Level: DWORD, pProvidorInfo: LPBYTE) -> BOOL;
}
extern "C" {
    pub fn DeletePrintProvidorA(
        pName: LPSTR,
        pEnvironment: LPSTR,
        pPrintProvidorName: LPSTR,
    ) -> BOOL;
}
extern "C" {
    pub fn DeletePrintProvidorW(
        pName: LPWSTR,
        pEnvironment: LPWSTR,
        pPrintProvidorName: LPWSTR,
    ) -> BOOL;
}
extern "C" {
    pub fn IsValidDevmodeA(pDevmode: PDEVMODEA, DevmodeSize: size_t) -> BOOL;
}
extern "C" {
    pub fn IsValidDevmodeW(pDevmode: PDEVMODEW, DevmodeSize: size_t) -> BOOL;
}
pub const _PRINTER_OPTION_FLAGS_PRINTER_OPTION_NO_CACHE: _PRINTER_OPTION_FLAGS = 1;
pub const _PRINTER_OPTION_FLAGS_PRINTER_OPTION_CACHE: _PRINTER_OPTION_FLAGS = 2;
pub const _PRINTER_OPTION_FLAGS_PRINTER_OPTION_CLIENT_CHANGE: _PRINTER_OPTION_FLAGS = 4;
pub const _PRINTER_OPTION_FLAGS_PRINTER_OPTION_NO_CLIENT_DATA: _PRINTER_OPTION_FLAGS = 8;
pub type _PRINTER_OPTION_FLAGS = ::std::os::raw::c_int;
pub use self::_PRINTER_OPTION_FLAGS as PRINTER_OPTION_FLAGS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRINTER_OPTIONSA {
    pub cbSize: UINT,
    pub dwFlags: DWORD,
}
#[test]
fn bindgen_test_layout__PRINTER_OPTIONSA() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTER_OPTIONSA>(),
        8usize,
        concat!("Size of: ", stringify!(_PRINTER_OPTIONSA))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTER_OPTIONSA>(),
        4usize,
        concat!("Alignment of ", stringify!(_PRINTER_OPTIONSA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_OPTIONSA>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_OPTIONSA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_OPTIONSA>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_OPTIONSA),
            "::",
            stringify!(dwFlags)
        )
    );
}
pub type PRINTER_OPTIONSA = _PRINTER_OPTIONSA;
pub type PPRINTER_OPTIONSA = *mut _PRINTER_OPTIONSA;
pub type LPPRINTER_OPTIONSA = *mut _PRINTER_OPTIONSA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRINTER_OPTIONSW {
    pub cbSize: UINT,
    pub dwFlags: DWORD,
}
#[test]
fn bindgen_test_layout__PRINTER_OPTIONSW() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTER_OPTIONSW>(),
        8usize,
        concat!("Size of: ", stringify!(_PRINTER_OPTIONSW))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTER_OPTIONSW>(),
        4usize,
        concat!("Alignment of ", stringify!(_PRINTER_OPTIONSW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_OPTIONSW>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_OPTIONSW),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_PRINTER_OPTIONSW>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_OPTIONSW),
            "::",
            stringify!(dwFlags)
        )
    );
}
pub type PRINTER_OPTIONSW = _PRINTER_OPTIONSW;
pub type PPRINTER_OPTIONSW = *mut _PRINTER_OPTIONSW;
pub type LPPRINTER_OPTIONSW = *mut _PRINTER_OPTIONSW;
pub type PRINTER_OPTIONS = PRINTER_OPTIONSA;
pub type PPRINTER_OPTIONS = PPRINTER_OPTIONSA;
pub type LPPRINTER_OPTIONS = LPPRINTER_OPTIONSA;
extern "C" {
    pub fn OpenPrinter2A(
        pPrinterName: LPCSTR,
        phPrinter: LPHANDLE,
        pDefault: PPRINTER_DEFAULTSA,
        pOptions: PPRINTER_OPTIONSA,
    ) -> BOOL;
}
extern "C" {
    pub fn OpenPrinter2W(
        pPrinterName: LPCWSTR,
        phPrinter: LPHANDLE,
        pDefault: PPRINTER_DEFAULTSW,
        pOptions: PPRINTER_OPTIONSW,
    ) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRINTER_CONNECTION_INFO_1A {
    pub dwFlags: DWORD,
    pub pszDriverName: LPSTR,
}
#[test]
fn bindgen_test_layout__PRINTER_CONNECTION_INFO_1A() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTER_CONNECTION_INFO_1A>(),
        16usize,
        concat!("Size of: ", stringify!(_PRINTER_CONNECTION_INFO_1A))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTER_CONNECTION_INFO_1A>(),
        8usize,
        concat!("Alignment of ", stringify!(_PRINTER_CONNECTION_INFO_1A))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_CONNECTION_INFO_1A>())).dwFlags as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_CONNECTION_INFO_1A),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_CONNECTION_INFO_1A>())).pszDriverName as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_CONNECTION_INFO_1A),
            "::",
            stringify!(pszDriverName)
        )
    );
}
pub type PRINTER_CONNECTION_INFO_1A = _PRINTER_CONNECTION_INFO_1A;
pub type PPRINTER_CONNECTION_INFO_1A = *mut _PRINTER_CONNECTION_INFO_1A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _PRINTER_CONNECTION_INFO_1W {
    pub dwFlags: DWORD,
    pub pszDriverName: LPWSTR,
}
#[test]
fn bindgen_test_layout__PRINTER_CONNECTION_INFO_1W() {
    assert_eq!(
        ::std::mem::size_of::<_PRINTER_CONNECTION_INFO_1W>(),
        16usize,
        concat!("Size of: ", stringify!(_PRINTER_CONNECTION_INFO_1W))
    );
    assert_eq!(
        ::std::mem::align_of::<_PRINTER_CONNECTION_INFO_1W>(),
        8usize,
        concat!("Alignment of ", stringify!(_PRINTER_CONNECTION_INFO_1W))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_CONNECTION_INFO_1W>())).dwFlags as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_CONNECTION_INFO_1W),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_PRINTER_CONNECTION_INFO_1W>())).pszDriverName as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_PRINTER_CONNECTION_INFO_1W),
            "::",
            stringify!(pszDriverName)
        )
    );
}
pub type PRINTER_CONNECTION_INFO_1W = _PRINTER_CONNECTION_INFO_1W;
pub type PPRINTER_CONNECTION_INFO_1W = *mut _PRINTER_CONNECTION_INFO_1W;
pub type PRINTER_CONNECTION_INFO_1 = PRINTER_CONNECTION_INFO_1A;
pub type PPRINTER_CONNECTION_INFO_1 = PPRINTER_CONNECTION_INFO_1A;
extern "C" {
    pub fn AddPrinterConnection2A(
        hWnd: HWND,
        pszName: LPCSTR,
        dwLevel: DWORD,
        pConnectionInfo: PVOID,
    ) -> BOOL;
}
extern "C" {
    pub fn AddPrinterConnection2W(
        hWnd: HWND,
        pszName: LPCWSTR,
        dwLevel: DWORD,
        pConnectionInfo: PVOID,
    ) -> BOOL;
}
extern "C" {
    pub fn InstallPrinterDriverFromPackageA(
        pszServer: LPCSTR,
        pszInfPath: LPCSTR,
        pszDriverName: LPCSTR,
        pszEnvironment: LPCSTR,
        dwFlags: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn InstallPrinterDriverFromPackageW(
        pszServer: LPCWSTR,
        pszInfPath: LPCWSTR,
        pszDriverName: LPCWSTR,
        pszEnvironment: LPCWSTR,
        dwFlags: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn UploadPrinterDriverPackageA(
        pszServer: LPCSTR,
        pszInfPath: LPCSTR,
        pszEnvironment: LPCSTR,
        dwFlags: DWORD,
        hwnd: HWND,
        pszDestInfPath: LPSTR,
        pcchDestInfPath: PULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn UploadPrinterDriverPackageW(
        pszServer: LPCWSTR,
        pszInfPath: LPCWSTR,
        pszEnvironment: LPCWSTR,
        dwFlags: DWORD,
        hwnd: HWND,
        pszDestInfPath: LPWSTR,
        pcchDestInfPath: PULONG,
    ) -> HRESULT;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CORE_PRINTER_DRIVERA {
    pub CoreDriverGUID: GUID,
    pub ftDriverDate: FILETIME,
    pub dwlDriverVersion: DWORDLONG,
    pub szPackageID: [CHAR; 260usize],
}
#[test]
fn bindgen_test_layout__CORE_PRINTER_DRIVERA() {
    assert_eq!(
        ::std::mem::size_of::<_CORE_PRINTER_DRIVERA>(),
        296usize,
        concat!("Size of: ", stringify!(_CORE_PRINTER_DRIVERA))
    );
    assert_eq!(
        ::std::mem::align_of::<_CORE_PRINTER_DRIVERA>(),
        8usize,
        concat!("Alignment of ", stringify!(_CORE_PRINTER_DRIVERA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CORE_PRINTER_DRIVERA>())).CoreDriverGUID as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CORE_PRINTER_DRIVERA),
            "::",
            stringify!(CoreDriverGUID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CORE_PRINTER_DRIVERA>())).ftDriverDate as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CORE_PRINTER_DRIVERA),
            "::",
            stringify!(ftDriverDate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CORE_PRINTER_DRIVERA>())).dwlDriverVersion as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CORE_PRINTER_DRIVERA),
            "::",
            stringify!(dwlDriverVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CORE_PRINTER_DRIVERA>())).szPackageID as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CORE_PRINTER_DRIVERA),
            "::",
            stringify!(szPackageID)
        )
    );
}
pub type CORE_PRINTER_DRIVERA = _CORE_PRINTER_DRIVERA;
pub type PCORE_PRINTER_DRIVERA = *mut _CORE_PRINTER_DRIVERA;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _CORE_PRINTER_DRIVERW {
    pub CoreDriverGUID: GUID,
    pub ftDriverDate: FILETIME,
    pub dwlDriverVersion: DWORDLONG,
    pub szPackageID: [WCHAR; 260usize],
}
#[test]
fn bindgen_test_layout__CORE_PRINTER_DRIVERW() {
    assert_eq!(
        ::std::mem::size_of::<_CORE_PRINTER_DRIVERW>(),
        552usize,
        concat!("Size of: ", stringify!(_CORE_PRINTER_DRIVERW))
    );
    assert_eq!(
        ::std::mem::align_of::<_CORE_PRINTER_DRIVERW>(),
        8usize,
        concat!("Alignment of ", stringify!(_CORE_PRINTER_DRIVERW))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CORE_PRINTER_DRIVERW>())).CoreDriverGUID as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CORE_PRINTER_DRIVERW),
            "::",
            stringify!(CoreDriverGUID)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CORE_PRINTER_DRIVERW>())).ftDriverDate as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_CORE_PRINTER_DRIVERW),
            "::",
            stringify!(ftDriverDate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CORE_PRINTER_DRIVERW>())).dwlDriverVersion as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_CORE_PRINTER_DRIVERW),
            "::",
            stringify!(dwlDriverVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_CORE_PRINTER_DRIVERW>())).szPackageID as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_CORE_PRINTER_DRIVERW),
            "::",
            stringify!(szPackageID)
        )
    );
}
pub type CORE_PRINTER_DRIVERW = _CORE_PRINTER_DRIVERW;
pub type PCORE_PRINTER_DRIVERW = *mut _CORE_PRINTER_DRIVERW;
pub type CORE_PRINTER_DRIVER = CORE_PRINTER_DRIVERA;
pub type PCORE_PRINTER_DRIVER = PCORE_PRINTER_DRIVERA;
extern "C" {
    pub fn GetCorePrinterDriversA(
        pszServer: LPCSTR,
        pszEnvironment: LPCSTR,
        pszzCoreDriverDependencies: LPCSTR,
        cCorePrinterDrivers: DWORD,
        pCorePrinterDrivers: PCORE_PRINTER_DRIVERA,
    ) -> HRESULT;
}
extern "C" {
    pub fn GetCorePrinterDriversW(
        pszServer: LPCWSTR,
        pszEnvironment: LPCWSTR,
        pszzCoreDriverDependencies: LPCWSTR,
        cCorePrinterDrivers: DWORD,
        pCorePrinterDrivers: PCORE_PRINTER_DRIVERW,
    ) -> HRESULT;
}
extern "C" {
    pub fn CorePrinterDriverInstalledA(
        pszServer: LPCSTR,
        pszEnvironment: LPCSTR,
        CoreDriverGUID: GUID,
        ftDriverDate: FILETIME,
        dwlDriverVersion: DWORDLONG,
        pbDriverInstalled: *mut BOOL,
    ) -> HRESULT;
}
extern "C" {
    pub fn CorePrinterDriverInstalledW(
        pszServer: LPCWSTR,
        pszEnvironment: LPCWSTR,
        CoreDriverGUID: GUID,
        ftDriverDate: FILETIME,
        dwlDriverVersion: DWORDLONG,
        pbDriverInstalled: *mut BOOL,
    ) -> HRESULT;
}
extern "C" {
    pub fn GetPrinterDriverPackagePathA(
        pszServer: LPCSTR,
        pszEnvironment: LPCSTR,
        pszLanguage: LPCSTR,
        pszPackageID: LPCSTR,
        pszDriverPackageCab: LPSTR,
        cchDriverPackageCab: DWORD,
        pcchRequiredSize: LPDWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn GetPrinterDriverPackagePathW(
        pszServer: LPCWSTR,
        pszEnvironment: LPCWSTR,
        pszLanguage: LPCWSTR,
        pszPackageID: LPCWSTR,
        pszDriverPackageCab: LPWSTR,
        cchDriverPackageCab: DWORD,
        pcchRequiredSize: LPDWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn DeletePrinterDriverPackageA(
        pszServer: LPCSTR,
        pszInfPath: LPCSTR,
        pszEnvironment: LPCSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn DeletePrinterDriverPackageW(
        pszServer: LPCWSTR,
        pszInfPath: LPCWSTR,
        pszEnvironment: LPCWSTR,
    ) -> HRESULT;
}
pub const EPrintPropertyType_kPropertyTypeString: EPrintPropertyType = 1;
pub const EPrintPropertyType_kPropertyTypeInt32: EPrintPropertyType = 2;
pub const EPrintPropertyType_kPropertyTypeInt64: EPrintPropertyType = 3;
pub const EPrintPropertyType_kPropertyTypeByte: EPrintPropertyType = 4;
pub const EPrintPropertyType_kPropertyTypeTime: EPrintPropertyType = 5;
pub const EPrintPropertyType_kPropertyTypeDevMode: EPrintPropertyType = 6;
pub const EPrintPropertyType_kPropertyTypeSD: EPrintPropertyType = 7;
pub const EPrintPropertyType_kPropertyTypeNotificationReply: EPrintPropertyType = 8;
pub const EPrintPropertyType_kPropertyTypeNotificationOptions: EPrintPropertyType = 9;
pub const EPrintPropertyType_kPropertyTypeBuffer: EPrintPropertyType = 10;
pub type EPrintPropertyType = ::std::os::raw::c_int;
pub const EPrintXPSJobProgress_kAddingDocumentSequence: EPrintXPSJobProgress = 0;
pub const EPrintXPSJobProgress_kDocumentSequenceAdded: EPrintXPSJobProgress = 1;
pub const EPrintXPSJobProgress_kAddingFixedDocument: EPrintXPSJobProgress = 2;
pub const EPrintXPSJobProgress_kFixedDocumentAdded: EPrintXPSJobProgress = 3;
pub const EPrintXPSJobProgress_kAddingFixedPage: EPrintXPSJobProgress = 4;
pub const EPrintXPSJobProgress_kFixedPageAdded: EPrintXPSJobProgress = 5;
pub const EPrintXPSJobProgress_kResourceAdded: EPrintXPSJobProgress = 6;
pub const EPrintXPSJobProgress_kFontAdded: EPrintXPSJobProgress = 7;
pub const EPrintXPSJobProgress_kImageAdded: EPrintXPSJobProgress = 8;
pub const EPrintXPSJobProgress_kXpsDocumentCommitted: EPrintXPSJobProgress = 9;
pub type EPrintXPSJobProgress = ::std::os::raw::c_int;
pub const EPrintXPSJobOperation_kJobProduction: EPrintXPSJobOperation = 1;
pub const EPrintXPSJobOperation_kJobConsumption: EPrintXPSJobOperation = 2;
pub type EPrintXPSJobOperation = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct PrintPropertyValue {
    pub ePropertyType: EPrintPropertyType,
    pub value: PrintPropertyValue__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union PrintPropertyValue__bindgen_ty_1 {
    pub propertyByte: BYTE,
    pub propertyString: PWSTR,
    pub propertyInt32: LONG,
    pub propertyInt64: LONGLONG,
    pub propertyBlob: PrintPropertyValue__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: [u64; 2usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PrintPropertyValue__bindgen_ty_1__bindgen_ty_1 {
    pub cbBuf: DWORD,
    pub pBuf: LPVOID,
}
#[test]
fn bindgen_test_layout_PrintPropertyValue__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<PrintPropertyValue__bindgen_ty_1__bindgen_ty_1>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(PrintPropertyValue__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<PrintPropertyValue__bindgen_ty_1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(PrintPropertyValue__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PrintPropertyValue__bindgen_ty_1__bindgen_ty_1>())).cbBuf
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PrintPropertyValue__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(cbBuf)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PrintPropertyValue__bindgen_ty_1__bindgen_ty_1>())).pBuf
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(PrintPropertyValue__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pBuf)
        )
    );
}
#[test]
fn bindgen_test_layout_PrintPropertyValue__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<PrintPropertyValue__bindgen_ty_1>(),
        16usize,
        concat!("Size of: ", stringify!(PrintPropertyValue__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<PrintPropertyValue__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(PrintPropertyValue__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PrintPropertyValue__bindgen_ty_1>())).propertyByte as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PrintPropertyValue__bindgen_ty_1),
            "::",
            stringify!(propertyByte)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PrintPropertyValue__bindgen_ty_1>())).propertyString as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PrintPropertyValue__bindgen_ty_1),
            "::",
            stringify!(propertyString)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PrintPropertyValue__bindgen_ty_1>())).propertyInt32 as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PrintPropertyValue__bindgen_ty_1),
            "::",
            stringify!(propertyInt32)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PrintPropertyValue__bindgen_ty_1>())).propertyInt64 as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PrintPropertyValue__bindgen_ty_1),
            "::",
            stringify!(propertyInt64)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PrintPropertyValue__bindgen_ty_1>())).propertyBlob as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PrintPropertyValue__bindgen_ty_1),
            "::",
            stringify!(propertyBlob)
        )
    );
}
#[test]
fn bindgen_test_layout_PrintPropertyValue() {
    assert_eq!(
        ::std::mem::size_of::<PrintPropertyValue>(),
        24usize,
        concat!("Size of: ", stringify!(PrintPropertyValue))
    );
    assert_eq!(
        ::std::mem::align_of::<PrintPropertyValue>(),
        8usize,
        concat!("Alignment of ", stringify!(PrintPropertyValue))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PrintPropertyValue>())).ePropertyType as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PrintPropertyValue),
            "::",
            stringify!(ePropertyType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PrintPropertyValue>())).value as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(PrintPropertyValue),
            "::",
            stringify!(value)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct PrintNamedProperty {
    pub propertyName: *mut WCHAR,
    pub propertyValue: PrintPropertyValue,
}
#[test]
fn bindgen_test_layout_PrintNamedProperty() {
    assert_eq!(
        ::std::mem::size_of::<PrintNamedProperty>(),
        32usize,
        concat!("Size of: ", stringify!(PrintNamedProperty))
    );
    assert_eq!(
        ::std::mem::align_of::<PrintNamedProperty>(),
        8usize,
        concat!("Alignment of ", stringify!(PrintNamedProperty))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PrintNamedProperty>())).propertyName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PrintNamedProperty),
            "::",
            stringify!(propertyName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PrintNamedProperty>())).propertyValue as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(PrintNamedProperty),
            "::",
            stringify!(propertyValue)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PrintPropertiesCollection {
    pub numberOfProperties: ULONG,
    pub propertiesCollection: *mut PrintNamedProperty,
}
#[test]
fn bindgen_test_layout_PrintPropertiesCollection() {
    assert_eq!(
        ::std::mem::size_of::<PrintPropertiesCollection>(),
        16usize,
        concat!("Size of: ", stringify!(PrintPropertiesCollection))
    );
    assert_eq!(
        ::std::mem::align_of::<PrintPropertiesCollection>(),
        8usize,
        concat!("Alignment of ", stringify!(PrintPropertiesCollection))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PrintPropertiesCollection>())).numberOfProperties as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PrintPropertiesCollection),
            "::",
            stringify!(numberOfProperties)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PrintPropertiesCollection>())).propertiesCollection as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(PrintPropertiesCollection),
            "::",
            stringify!(propertiesCollection)
        )
    );
}
extern "C" {
    pub fn ReportJobProcessingProgress(
        printerHandle: HANDLE,
        jobId: ULONG,
        jobOperation: EPrintXPSJobOperation,
        jobProgress: EPrintXPSJobProgress,
    ) -> HRESULT;
}
extern "C" {
    pub fn GetPrinterDriver2A(
        hWnd: HWND,
        hPrinter: HANDLE,
        pEnvironment: LPSTR,
        Level: DWORD,
        pDriverInfo: LPBYTE,
        cbBuf: DWORD,
        pcbNeeded: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetPrinterDriver2W(
        hWnd: HWND,
        hPrinter: HANDLE,
        pEnvironment: LPWSTR,
        Level: DWORD,
        pDriverInfo: LPBYTE,
        cbBuf: DWORD,
        pcbNeeded: LPDWORD,
    ) -> BOOL;
}
pub const PRINT_EXECUTION_CONTEXT_PRINT_EXECUTION_CONTEXT_APPLICATION: PRINT_EXECUTION_CONTEXT = 0;
pub const PRINT_EXECUTION_CONTEXT_PRINT_EXECUTION_CONTEXT_SPOOLER_SERVICE: PRINT_EXECUTION_CONTEXT =
    1;
pub const PRINT_EXECUTION_CONTEXT_PRINT_EXECUTION_CONTEXT_SPOOLER_ISOLATION_HOST:
    PRINT_EXECUTION_CONTEXT = 2;
pub const PRINT_EXECUTION_CONTEXT_PRINT_EXECUTION_CONTEXT_FILTER_PIPELINE: PRINT_EXECUTION_CONTEXT =
    3;
pub const PRINT_EXECUTION_CONTEXT_PRINT_EXECUTION_CONTEXT_WOW64: PRINT_EXECUTION_CONTEXT = 4;
pub type PRINT_EXECUTION_CONTEXT = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct PRINT_EXECUTION_DATA {
    pub context: PRINT_EXECUTION_CONTEXT,
    pub clientAppPID: DWORD,
}
#[test]
fn bindgen_test_layout_PRINT_EXECUTION_DATA() {
    assert_eq!(
        ::std::mem::size_of::<PRINT_EXECUTION_DATA>(),
        8usize,
        concat!("Size of: ", stringify!(PRINT_EXECUTION_DATA))
    );
    assert_eq!(
        ::std::mem::align_of::<PRINT_EXECUTION_DATA>(),
        4usize,
        concat!("Alignment of ", stringify!(PRINT_EXECUTION_DATA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<PRINT_EXECUTION_DATA>())).context as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(PRINT_EXECUTION_DATA),
            "::",
            stringify!(context)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<PRINT_EXECUTION_DATA>())).clientAppPID as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(PRINT_EXECUTION_DATA),
            "::",
            stringify!(clientAppPID)
        )
    );
}
extern "C" {
    pub fn GetPrintExecutionData(pData: *mut PRINT_EXECUTION_DATA) -> BOOL;
}
extern "C" {
    pub fn GetJobNamedPropertyValue(
        hPrinter: HANDLE,
        JobId: DWORD,
        pszName: PCWSTR,
        pValue: *mut PrintPropertyValue,
    ) -> DWORD;
}
extern "C" {
    pub fn FreePrintPropertyValue(pValue: *mut PrintPropertyValue);
}
extern "C" {
    pub fn FreePrintNamedPropertyArray(
        cProperties: DWORD,
        ppProperties: *mut *mut PrintNamedProperty,
    );
}
extern "C" {
    pub fn SetJobNamedProperty(
        hPrinter: HANDLE,
        JobId: DWORD,
        pProperty: *const PrintNamedProperty,
    ) -> DWORD;
}
extern "C" {
    pub fn DeleteJobNamedProperty(hPrinter: HANDLE, JobId: DWORD, pszName: PCWSTR) -> DWORD;
}
extern "C" {
    pub fn EnumJobNamedProperties(
        hPrinter: HANDLE,
        JobId: DWORD,
        pcProperties: *mut DWORD,
        ppProperties: *mut *mut PrintNamedProperty,
    ) -> DWORD;
}
extern "C" {
    pub fn GetPrintOutputInfo(
        hWnd: HWND,
        pszPrinter: PCWSTR,
        phFile: *mut HANDLE,
        ppszOutputFile: *mut PWSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn _calloc_base(_Count: size_t, _Size: size_t) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn calloc(
        _Count: ::std::os::raw::c_ulonglong,
        _Size: ::std::os::raw::c_ulonglong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _callnewh(_Size: size_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _expand(
        _Block: *mut ::std::os::raw::c_void,
        _Size: size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _free_base(_Block: *mut ::std::os::raw::c_void);
}
extern "C" {
    pub fn free(_Block: *mut ::std::os::raw::c_void);
}
extern "C" {
    pub fn _malloc_base(_Size: size_t) -> *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 _msize_base(_Block: *mut ::std::os::raw::c_void) -> size_t;
}
extern "C" {
    pub fn _msize(_Block: *mut ::std::os::raw::c_void) -> size_t;
}
extern "C" {
    pub fn _realloc_base(
        _Block: *mut ::std::os::raw::c_void,
        _Size: size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn realloc(
        _Block: *mut ::std::os::raw::c_void,
        _Size: ::std::os::raw::c_ulonglong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _recalloc_base(
        _Block: *mut ::std::os::raw::c_void,
        _Count: size_t,
        _Size: size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _recalloc(
        _Block: *mut ::std::os::raw::c_void,
        _Count: size_t,
        _Size: size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _aligned_free(_Block: *mut ::std::os::raw::c_void);
}
extern "C" {
    pub fn _aligned_malloc(_Size: size_t, _Alignment: size_t) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _aligned_offset_malloc(
        _Size: size_t,
        _Alignment: size_t,
        _Offset: size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _aligned_msize(
        _Block: *mut ::std::os::raw::c_void,
        _Alignment: size_t,
        _Offset: size_t,
    ) -> size_t;
}
extern "C" {
    pub fn _aligned_offset_realloc(
        _Block: *mut ::std::os::raw::c_void,
        _Size: size_t,
        _Alignment: size_t,
        _Offset: size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _aligned_offset_recalloc(
        _Block: *mut ::std::os::raw::c_void,
        _Count: size_t,
        _Size: size_t,
        _Alignment: size_t,
        _Offset: size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _aligned_realloc(
        _Block: *mut ::std::os::raw::c_void,
        _Size: size_t,
        _Alignment: size_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _aligned_recalloc(
        _Block: *mut ::std::os::raw::c_void,
        _Count: size_t,
        _Size: size_t,
        _Alignment: size_t,
    ) -> *mut ::std::os::raw::c_void;
}
pub type max_align_t = f64;
pub type _CoreCrtSecureSearchSortCompareFunction = ::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,
>;
pub type _CoreCrtNonSecureSearchSortCompareFunction = ::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 bsearch_s(
        _Key: *const ::std::os::raw::c_void,
        _Base: *const ::std::os::raw::c_void,
        _NumOfElements: rsize_t,
        _SizeOfElements: rsize_t,
        _CompareFunction: _CoreCrtSecureSearchSortCompareFunction,
        _Context: *mut ::std::os::raw::c_void,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn qsort_s(
        _Base: *mut ::std::os::raw::c_void,
        _NumOfElements: rsize_t,
        _SizeOfElements: rsize_t,
        _CompareFunction: _CoreCrtSecureSearchSortCompareFunction,
        _Context: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn bsearch(
        _Key: *const ::std::os::raw::c_void,
        _Base: *const ::std::os::raw::c_void,
        _NumOfElements: size_t,
        _SizeOfElements: size_t,
        _CompareFunction: _CoreCrtNonSecureSearchSortCompareFunction,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn qsort(
        _Base: *mut ::std::os::raw::c_void,
        _NumOfElements: size_t,
        _SizeOfElements: size_t,
        _CompareFunction: _CoreCrtNonSecureSearchSortCompareFunction,
    );
}
extern "C" {
    pub fn _lfind_s(
        _Key: *const ::std::os::raw::c_void,
        _Base: *const ::std::os::raw::c_void,
        _NumOfElements: *mut ::std::os::raw::c_uint,
        _SizeOfElements: size_t,
        _CompareFunction: _CoreCrtSecureSearchSortCompareFunction,
        _Context: *mut ::std::os::raw::c_void,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _lfind(
        _Key: *const ::std::os::raw::c_void,
        _Base: *const ::std::os::raw::c_void,
        _NumOfElements: *mut ::std::os::raw::c_uint,
        _SizeOfElements: ::std::os::raw::c_uint,
        _CompareFunction: _CoreCrtNonSecureSearchSortCompareFunction,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _lsearch_s(
        _Key: *const ::std::os::raw::c_void,
        _Base: *mut ::std::os::raw::c_void,
        _NumOfElements: *mut ::std::os::raw::c_uint,
        _SizeOfElements: size_t,
        _CompareFunction: _CoreCrtSecureSearchSortCompareFunction,
        _Context: *mut ::std::os::raw::c_void,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _lsearch(
        _Key: *const ::std::os::raw::c_void,
        _Base: *mut ::std::os::raw::c_void,
        _NumOfElements: *mut ::std::os::raw::c_uint,
        _SizeOfElements: ::std::os::raw::c_uint,
        _CompareFunction: _CoreCrtNonSecureSearchSortCompareFunction,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn lfind(
        _Key: *const ::std::os::raw::c_void,
        _Base: *const ::std::os::raw::c_void,
        _NumOfElements: *mut ::std::os::raw::c_uint,
        _SizeOfElements: ::std::os::raw::c_uint,
        _CompareFunction: _CoreCrtNonSecureSearchSortCompareFunction,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn lsearch(
        _Key: *const ::std::os::raw::c_void,
        _Base: *mut ::std::os::raw::c_void,
        _NumOfElements: *mut ::std::os::raw::c_uint,
        _SizeOfElements: ::std::os::raw::c_uint,
        _CompareFunction: _CoreCrtNonSecureSearchSortCompareFunction,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn _itow_s(
        _Value: ::std::os::raw::c_int,
        _Buffer: *mut wchar_t,
        _BufferCount: size_t,
        _Radix: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _itow(
        _Value: ::std::os::raw::c_int,
        _Buffer: *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn _ltow_s(
        _Value: ::std::os::raw::c_long,
        _Buffer: *mut wchar_t,
        _BufferCount: size_t,
        _Radix: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _ltow(
        _Value: ::std::os::raw::c_long,
        _Buffer: *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn _ultow_s(
        _Value: ::std::os::raw::c_ulong,
        _Buffer: *mut wchar_t,
        _BufferCount: size_t,
        _Radix: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _ultow(
        _Value: ::std::os::raw::c_ulong,
        _Buffer: *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn wcstod(_String: *const wchar_t, _EndPtr: *mut *mut wchar_t) -> f64;
}
extern "C" {
    pub fn _wcstod_l(
        _String: *const wchar_t,
        _EndPtr: *mut *mut wchar_t,
        _Locale: _locale_t,
    ) -> f64;
}
extern "C" {
    pub fn wcstol(
        _String: *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(
        _String: *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 wcstoll(
        _String: *const wchar_t,
        _EndPtr: *mut *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _wcstoll_l(
        _String: *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 wcstoul(
        _String: *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(
        _String: *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 wcstoull(
        _String: *const wchar_t,
        _EndPtr: *mut *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn _wcstoull_l(
        _String: *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 wcstold(_String: *const wchar_t, _EndPtr: *mut *mut wchar_t) -> f64;
}
extern "C" {
    pub fn _wcstold_l(
        _String: *const wchar_t,
        _EndPtr: *mut *mut wchar_t,
        _Locale: _locale_t,
    ) -> f64;
}
extern "C" {
    pub fn wcstof(_String: *const wchar_t, _EndPtr: *mut *mut wchar_t) -> f32;
}
extern "C" {
    pub fn _wcstof_l(
        _String: *const wchar_t,
        _EndPtr: *mut *mut wchar_t,
        _Locale: _locale_t,
    ) -> f32;
}
extern "C" {
    pub fn _wtof(_String: *const wchar_t) -> f64;
}
extern "C" {
    pub fn _wtof_l(_String: *const wchar_t, _Locale: _locale_t) -> f64;
}
extern "C" {
    pub fn _wtoi(_String: *const wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wtoi_l(_String: *const wchar_t, _Locale: _locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _wtol(_String: *const wchar_t) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _wtol_l(_String: *const wchar_t, _Locale: _locale_t) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _wtoll(_String: *const wchar_t) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _wtoll_l(_String: *const wchar_t, _Locale: _locale_t) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _i64tow_s(
        _Value: ::std::os::raw::c_longlong,
        _Buffer: *mut wchar_t,
        _BufferCount: size_t,
        _Radix: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _i64tow(
        _Value: ::std::os::raw::c_longlong,
        _Buffer: *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn _ui64tow_s(
        _Value: ::std::os::raw::c_ulonglong,
        _Buffer: *mut wchar_t,
        _BufferCount: size_t,
        _Radix: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _ui64tow(
        _Value: ::std::os::raw::c_ulonglong,
        _Buffer: *mut wchar_t,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn _wtoi64(_String: *const wchar_t) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _wtoi64_l(_String: *const wchar_t, _Locale: _locale_t) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _wcstoi64(
        _String: *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(
        _String: *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(
        _String: *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(
        _String: *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 _wfullpath(
        _Buffer: *mut wchar_t,
        _Path: *const wchar_t,
        _BufferCount: size_t,
    ) -> *mut wchar_t;
}
extern "C" {
    pub fn _wmakepath_s(
        _Buffer: *mut wchar_t,
        _BufferCount: size_t,
        _Drive: *const wchar_t,
        _Dir: *const wchar_t,
        _Filename: *const wchar_t,
        _Ext: *const wchar_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _wmakepath(
        _Buffer: *mut wchar_t,
        _Drive: *const wchar_t,
        _Dir: *const wchar_t,
        _Filename: *const wchar_t,
        _Ext: *const wchar_t,
    );
}
extern "C" {
    pub fn _wperror(_ErrorMessage: *const 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 _wsplitpath_s(
        _FullPath: *const wchar_t,
        _Drive: *mut wchar_t,
        _DriveCount: size_t,
        _Dir: *mut wchar_t,
        _DirCount: size_t,
        _Filename: *mut wchar_t,
        _FilenameCount: size_t,
        _Ext: *mut wchar_t,
        _ExtCount: size_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _wdupenv_s(
        _Buffer: *mut *mut wchar_t,
        _BufferCount: *mut size_t,
        _VarName: *const wchar_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _wgetenv(_VarName: *const wchar_t) -> *mut wchar_t;
}
extern "C" {
    pub fn _wgetenv_s(
        _RequiredCount: *mut size_t,
        _Buffer: *mut wchar_t,
        _BufferCount: size_t,
        _VarName: *const wchar_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _wputenv(_EnvString: *const wchar_t) -> ::std::os::raw::c_int;
}
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,
        _VarName: *const wchar_t,
        _Buffer: *mut wchar_t,
        _BufferCount: size_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _wsearchenv(
        _Filename: *const wchar_t,
        _VarName: *const wchar_t,
        _ResultPath: *mut wchar_t,
    );
}
extern "C" {
    pub fn _wsystem(_Command: *const wchar_t) -> ::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 exit(_Code: ::std::os::raw::c_int);
}
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 quick_exit(_Code: ::std::os::raw::c_int);
}
extern "C" {
    pub fn abort();
}
extern "C" {
    pub fn _set_abort_behavior(
        _Flags: ::std::os::raw::c_uint,
        _Mask: ::std::os::raw::c_uint,
    ) -> ::std::os::raw::c_uint;
}
pub type _onexit_t = ::std::option::Option<unsafe extern "C" fn() -> ::std::os::raw::c_int>;
extern "C" {
    pub fn atexit(arg1: ::std::option::Option<unsafe extern "C" fn()>) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _onexit(_Func: _onexit_t) -> _onexit_t;
}
extern "C" {
    pub fn at_quick_exit(
        arg1: ::std::option::Option<unsafe extern "C" fn()>,
    ) -> ::std::os::raw::c_int;
}
pub type _purecall_handler = ::std::option::Option<unsafe extern "C" fn()>;
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_purecall_handler(_Handler: _purecall_handler) -> _purecall_handler;
}
extern "C" {
    pub fn _get_purecall_handler() -> _purecall_handler;
}
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 _set_thread_local_invalid_parameter_handler(
        _Handler: _invalid_parameter_handler,
    ) -> _invalid_parameter_handler;
}
extern "C" {
    pub fn _get_thread_local_invalid_parameter_handler() -> _invalid_parameter_handler;
}
extern "C" {
    pub fn _set_error_mode(_Mode: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __sys_errlist() -> *mut *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn __sys_nerr() -> *mut ::std::os::raw::c_int;
}
extern "C" {
    pub fn perror(_ErrMsg: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn __p__pgmptr() -> *mut *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn __p__wpgmptr() -> *mut *mut wchar_t;
}
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;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _div_t {
    pub quot: ::std::os::raw::c_int,
    pub rem: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout__div_t() {
    assert_eq!(
        ::std::mem::size_of::<_div_t>(),
        8usize,
        concat!("Size of: ", stringify!(_div_t))
    );
    assert_eq!(
        ::std::mem::align_of::<_div_t>(),
        4usize,
        concat!("Alignment of ", stringify!(_div_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_div_t>())).quot as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_div_t),
            "::",
            stringify!(quot)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_div_t>())).rem as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_div_t),
            "::",
            stringify!(rem)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__ldiv_t() {
    assert_eq!(
        ::std::mem::size_of::<_ldiv_t>(),
        8usize,
        concat!("Size of: ", stringify!(_ldiv_t))
    );
    assert_eq!(
        ::std::mem::align_of::<_ldiv_t>(),
        4usize,
        concat!("Alignment of ", stringify!(_ldiv_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ldiv_t>())).quot as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ldiv_t),
            "::",
            stringify!(quot)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ldiv_t>())).rem as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ldiv_t),
            "::",
            stringify!(rem)
        )
    );
}
pub type ldiv_t = _ldiv_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,
}
#[test]
fn bindgen_test_layout__lldiv_t() {
    assert_eq!(
        ::std::mem::size_of::<_lldiv_t>(),
        16usize,
        concat!("Size of: ", stringify!(_lldiv_t))
    );
    assert_eq!(
        ::std::mem::align_of::<_lldiv_t>(),
        8usize,
        concat!("Alignment of ", stringify!(_lldiv_t))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_lldiv_t>())).quot as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_lldiv_t),
            "::",
            stringify!(quot)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_lldiv_t>())).rem as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_lldiv_t),
            "::",
            stringify!(rem)
        )
    );
}
pub type lldiv_t = _lldiv_t;
extern "C" {
    pub fn abs(_Number: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn labs(_Number: ::std::os::raw::c_long) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn llabs(_Number: ::std::os::raw::c_longlong) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _abs64(_Number: ::std::os::raw::c_longlong) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _byteswap_ushort(_Number: ::std::os::raw::c_ushort) -> ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn _byteswap_ulong(_Number: ::std::os::raw::c_ulong) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn _byteswap_uint64(_Number: ::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 ldiv(_Numerator: ::std::os::raw::c_long, _Denominator: ::std::os::raw::c_long)
        -> ldiv_t;
}
extern "C" {
    pub fn lldiv(
        _Numerator: ::std::os::raw::c_longlong,
        _Denominator: ::std::os::raw::c_longlong,
    ) -> lldiv_t;
}
extern "C" {
    pub fn _lrotl(
        _Value: ::std::os::raw::c_ulong,
        _Shift: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn _lrotr(
        _Value: ::std::os::raw::c_ulong,
        _Shift: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn srand(_Seed: ::std::os::raw::c_uint);
}
extern "C" {
    pub fn rand() -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _LDOUBLE {
    pub ld: [::std::os::raw::c_uchar; 10usize],
}
#[test]
fn bindgen_test_layout__LDOUBLE() {
    assert_eq!(
        ::std::mem::size_of::<_LDOUBLE>(),
        10usize,
        concat!("Size of: ", stringify!(_LDOUBLE))
    );
    assert_eq!(
        ::std::mem::align_of::<_LDOUBLE>(),
        1usize,
        concat!("Alignment of ", stringify!(_LDOUBLE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_LDOUBLE>())).ld as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_LDOUBLE),
            "::",
            stringify!(ld)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRT_DOUBLE {
    pub x: f64,
}
#[test]
fn bindgen_test_layout__CRT_DOUBLE() {
    assert_eq!(
        ::std::mem::size_of::<_CRT_DOUBLE>(),
        8usize,
        concat!("Size of: ", stringify!(_CRT_DOUBLE))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRT_DOUBLE>(),
        8usize,
        concat!("Alignment of ", stringify!(_CRT_DOUBLE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRT_DOUBLE>())).x as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRT_DOUBLE),
            "::",
            stringify!(x)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _CRT_FLOAT {
    pub f: f32,
}
#[test]
fn bindgen_test_layout__CRT_FLOAT() {
    assert_eq!(
        ::std::mem::size_of::<_CRT_FLOAT>(),
        4usize,
        concat!("Size of: ", stringify!(_CRT_FLOAT))
    );
    assert_eq!(
        ::std::mem::align_of::<_CRT_FLOAT>(),
        4usize,
        concat!("Alignment of ", stringify!(_CRT_FLOAT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_CRT_FLOAT>())).f as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_CRT_FLOAT),
            "::",
            stringify!(f)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _LONGDOUBLE {
    pub x: f64,
}
#[test]
fn bindgen_test_layout__LONGDOUBLE() {
    assert_eq!(
        ::std::mem::size_of::<_LONGDOUBLE>(),
        8usize,
        concat!("Size of: ", stringify!(_LONGDOUBLE))
    );
    assert_eq!(
        ::std::mem::align_of::<_LONGDOUBLE>(),
        8usize,
        concat!("Alignment of ", stringify!(_LONGDOUBLE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_LONGDOUBLE>())).x as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_LONGDOUBLE),
            "::",
            stringify!(x)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _LDBL12 {
    pub ld12: [::std::os::raw::c_uchar; 12usize],
}
#[test]
fn bindgen_test_layout__LDBL12() {
    assert_eq!(
        ::std::mem::size_of::<_LDBL12>(),
        12usize,
        concat!("Size of: ", stringify!(_LDBL12))
    );
    assert_eq!(
        ::std::mem::align_of::<_LDBL12>(),
        1usize,
        concat!("Alignment of ", stringify!(_LDBL12))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_LDBL12>())).ld12 as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_LDBL12),
            "::",
            stringify!(ld12)
        )
    );
}
extern "C" {
    pub fn atof(_String: *const ::std::os::raw::c_char) -> f64;
}
extern "C" {
    pub fn atoi(_String: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn atol(_String: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn atoll(_String: *const ::std::os::raw::c_char) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _atoi64(_String: *const ::std::os::raw::c_char) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn _atof_l(_String: *const ::std::os::raw::c_char, _Locale: _locale_t) -> f64;
}
extern "C" {
    pub fn _atoi_l(
        _String: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _atol_l(
        _String: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn _atoll_l(
        _String: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> ::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 _atoflt(
        _Result: *mut _CRT_FLOAT,
        _String: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _atodbl(
        _Result: *mut _CRT_DOUBLE,
        _String: *mut ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _atoldbl(
        _Result: *mut _LDOUBLE,
        _String: *mut ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _atoflt_l(
        _Result: *mut _CRT_FLOAT,
        _String: *const ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _atodbl_l(
        _Result: *mut _CRT_DOUBLE,
        _String: *mut ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _atoldbl_l(
        _Result: *mut _LDOUBLE,
        _String: *mut ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strtof(
        _String: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
    ) -> f32;
}
extern "C" {
    pub fn _strtof_l(
        _String: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> f32;
}
extern "C" {
    pub fn strtod(
        _String: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
    ) -> f64;
}
extern "C" {
    pub fn _strtod_l(
        _String: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> f64;
}
extern "C" {
    pub fn strtold(
        _String: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
    ) -> f64;
}
extern "C" {
    pub fn _strtold_l(
        _String: *const ::std::os::raw::c_char,
        _EndPtr: *mut *mut ::std::os::raw::c_char,
        _Locale: _locale_t,
    ) -> f64;
}
extern "C" {
    pub fn strtol(
        _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_long;
}
extern "C" {
    pub fn _strtol_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_long;
}
extern "C" {
    pub fn strtoll(
        _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 _strtoll_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 strtoul(
        _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_ulong;
}
extern "C" {
    pub fn _strtoul_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_ulong;
}
extern "C" {
    pub fn strtoull(
        _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 _strtoull_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 _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 _itoa_s(
        _Value: ::std::os::raw::c_int,
        _Buffer: *mut ::std::os::raw::c_char,
        _BufferCount: size_t,
        _Radix: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _itoa(
        _Value: ::std::os::raw::c_int,
        _Buffer: *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _ltoa_s(
        _Value: ::std::os::raw::c_long,
        _Buffer: *mut ::std::os::raw::c_char,
        _BufferCount: size_t,
        _Radix: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _ltoa(
        _Value: ::std::os::raw::c_long,
        _Buffer: *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _ultoa_s(
        _Value: ::std::os::raw::c_ulong,
        _Buffer: *mut ::std::os::raw::c_char,
        _BufferCount: size_t,
        _Radix: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _ultoa(
        _Value: ::std::os::raw::c_ulong,
        _Buffer: *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _i64toa_s(
        _Value: ::std::os::raw::c_longlong,
        _Buffer: *mut ::std::os::raw::c_char,
        _BufferCount: size_t,
        _Radix: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _i64toa(
        _Value: ::std::os::raw::c_longlong,
        _Buffer: *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _ui64toa_s(
        _Value: ::std::os::raw::c_ulonglong,
        _Buffer: *mut ::std::os::raw::c_char,
        _BufferCount: size_t,
        _Radix: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _ui64toa(
        _Value: ::std::os::raw::c_ulonglong,
        _Buffer: *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _ecvt_s(
        _Buffer: *mut ::std::os::raw::c_char,
        _BufferCount: size_t,
        _Value: f64,
        _DigitCount: ::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 _ecvt(
        _Value: f64,
        _DigitCount: ::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_s(
        _Buffer: *mut ::std::os::raw::c_char,
        _BufferCount: size_t,
        _Value: f64,
        _FractionalDigitCount: ::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(
        _Value: f64,
        _FractionalDigitCount: ::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_s(
        _Buffer: *mut ::std::os::raw::c_char,
        _BufferCount: size_t,
        _Value: f64,
        _DigitCount: ::std::os::raw::c_int,
    ) -> errno_t;
}
extern "C" {
    pub fn _gcvt(
        _Value: f64,
        _DigitCount: ::std::os::raw::c_int,
        _Buffer: *mut ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn mblen(_Ch: *const ::std::os::raw::c_char, _MaxCount: size_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _mblen_l(
        _Ch: *const ::std::os::raw::c_char,
        _MaxCount: size_t,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _mbstrlen(_String: *const ::std::os::raw::c_char) -> size_t;
}
extern "C" {
    pub fn _mbstrlen_l(_String: *const ::std::os::raw::c_char, _Locale: _locale_t) -> size_t;
}
extern "C" {
    pub fn _mbstrnlen(_String: *const ::std::os::raw::c_char, _MaxCount: size_t) -> size_t;
}
extern "C" {
    pub fn _mbstrnlen_l(
        _String: *const ::std::os::raw::c_char,
        _MaxCount: size_t,
        _Locale: _locale_t,
    ) -> size_t;
}
extern "C" {
    pub fn mbtowc(
        _DstCh: *mut wchar_t,
        _SrcCh: *const ::std::os::raw::c_char,
        _SrcSizeInBytes: size_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _mbtowc_l(
        _DstCh: *mut wchar_t,
        _SrcCh: *const ::std::os::raw::c_char,
        _SrcSizeInBytes: size_t,
        _Locale: _locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mbstowcs_s(
        _PtNumOfCharConverted: *mut size_t,
        _DstBuf: *mut wchar_t,
        _SizeInWords: size_t,
        _SrcBuf: *const ::std::os::raw::c_char,
        _MaxCount: size_t,
    ) -> errno_t;
}
extern "C" {
    pub fn mbstowcs(
        _Dest: *mut wchar_t,
        _Source: *const ::std::os::raw::c_char,
        _MaxCount: size_t,
    ) -> size_t;
}
extern "C" {
    pub fn _mbstowcs_s_l(
        _PtNumOfCharConverted: *mut size_t,
        _DstBuf: *mut wchar_t,
        _SizeInWords: size_t,
        _SrcBuf: *const ::std::os::raw::c_char,
        _MaxCount: size_t,
        _Locale: _locale_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _mbstowcs_l(
        _Dest: *mut wchar_t,
        _Source: *const ::std::os::raw::c_char,
        _MaxCount: size_t,
        _Locale: _locale_t,
    ) -> size_t;
}
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 wctomb_s(
        _SizeConverted: *mut ::std::os::raw::c_int,
        _MbCh: *mut ::std::os::raw::c_char,
        _SizeInBytes: rsize_t,
        _WCh: wchar_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _wctomb_s_l(
        _SizeConverted: *mut ::std::os::raw::c_int,
        _MbCh: *mut ::std::os::raw::c_char,
        _SizeInBytes: size_t,
        _WCh: wchar_t,
        _Locale: _locale_t,
    ) -> errno_t;
}
extern "C" {
    pub fn wcstombs_s(
        _PtNumOfCharConverted: *mut size_t,
        _Dst: *mut ::std::os::raw::c_char,
        _DstSizeInBytes: size_t,
        _Src: *const wchar_t,
        _MaxCountInBytes: size_t,
    ) -> errno_t;
}
extern "C" {
    pub fn wcstombs(
        _Dest: *mut ::std::os::raw::c_char,
        _Source: *const wchar_t,
        _MaxCount: size_t,
    ) -> size_t;
}
extern "C" {
    pub fn _wcstombs_s_l(
        _PtNumOfCharConverted: *mut size_t,
        _Dst: *mut ::std::os::raw::c_char,
        _DstSizeInBytes: size_t,
        _Src: *const wchar_t,
        _MaxCountInBytes: size_t,
        _Locale: _locale_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _wcstombs_l(
        _Dest: *mut ::std::os::raw::c_char,
        _Source: *const wchar_t,
        _MaxCount: size_t,
        _Locale: _locale_t,
    ) -> size_t;
}
extern "C" {
    pub fn _fullpath(
        _Buffer: *mut ::std::os::raw::c_char,
        _Path: *const ::std::os::raw::c_char,
        _BufferCount: size_t,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _makepath_s(
        _Buffer: *mut ::std::os::raw::c_char,
        _BufferCount: size_t,
        _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 _makepath(
        _Buffer: *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 _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 _splitpath_s(
        _FullPath: *const ::std::os::raw::c_char,
        _Drive: *mut ::std::os::raw::c_char,
        _DriveCount: size_t,
        _Dir: *mut ::std::os::raw::c_char,
        _DirCount: size_t,
        _Filename: *mut ::std::os::raw::c_char,
        _FilenameCount: size_t,
        _Ext: *mut ::std::os::raw::c_char,
        _ExtCount: size_t,
    ) -> errno_t;
}
extern "C" {
    pub fn getenv_s(
        _RequiredCount: *mut size_t,
        _Buffer: *mut ::std::os::raw::c_char,
        _BufferCount: rsize_t,
        _VarName: *const ::std::os::raw::c_char,
    ) -> errno_t;
}
extern "C" {
    pub fn __p___argc() -> *mut ::std::os::raw::c_int;
}
extern "C" {
    pub fn __p___argv() -> *mut *mut *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn __p___wargv() -> *mut *mut *mut wchar_t;
}
extern "C" {
    pub fn __p__environ() -> *mut *mut *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn __p__wenviron() -> *mut *mut *mut wchar_t;
}
extern "C" {
    pub fn getenv(_VarName: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn _dupenv_s(
        _Buffer: *mut *mut ::std::os::raw::c_char,
        _BufferCount: *mut size_t,
        _VarName: *const ::std::os::raw::c_char,
    ) -> errno_t;
}
extern "C" {
    pub fn system(_Command: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _putenv(_EnvString: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
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,
        _VarName: *const ::std::os::raw::c_char,
        _Buffer: *mut ::std::os::raw::c_char,
        _BufferCount: size_t,
    ) -> errno_t;
}
extern "C" {
    pub fn _searchenv(
        _Filename: *const ::std::os::raw::c_char,
        _VarName: *const ::std::os::raw::c_char,
        _Buffer: *mut ::std::os::raw::c_char,
    );
}
extern "C" {
    pub fn _seterrormode(_Mode: ::std::os::raw::c_int);
}
extern "C" {
    pub fn _beep(_Frequency: ::std::os::raw::c_uint, _Duration: ::std::os::raw::c_uint);
}
extern "C" {
    pub fn _sleep(_Duration: ::std::os::raw::c_ulong);
}
extern "C" {
    pub fn ecvt(
        _Value: f64,
        _DigitCount: ::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(
        _Value: f64,
        _FractionalDigitCount: ::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(
        _Value: f64,
        _DigitCount: ::std::os::raw::c_int,
        _DstBuf: *mut ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn itoa(
        _Value: ::std::os::raw::c_int,
        _Buffer: *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn ltoa(
        _Value: ::std::os::raw::c_long,
        _Buffer: *mut ::std::os::raw::c_char,
        _Radix: ::std::os::raw::c_int,
    ) -> *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 ultoa(
        _Value: ::std::os::raw::c_ulong,
        _Buffer: *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 onexit(_Func: _onexit_t) -> _onexit_t;
}
pub const tagREGCLS_REGCLS_SINGLEUSE: tagREGCLS = 0;
pub const tagREGCLS_REGCLS_MULTIPLEUSE: tagREGCLS = 1;
pub const tagREGCLS_REGCLS_MULTI_SEPARATE: tagREGCLS = 2;
pub const tagREGCLS_REGCLS_SUSPENDED: tagREGCLS = 4;
pub const tagREGCLS_REGCLS_SURROGATE: tagREGCLS = 8;
pub const tagREGCLS_REGCLS_AGILE: tagREGCLS = 16;
pub type tagREGCLS = ::std::os::raw::c_int;
pub use self::tagREGCLS as REGCLS;
pub const tagCOINITBASE_COINITBASE_MULTITHREADED: tagCOINITBASE = 0;
pub type tagCOINITBASE = ::std::os::raw::c_int;
pub use self::tagCOINITBASE as COINITBASE;
extern "C" {
    pub static mut __MIDL_itf_unknwnbase_0000_0000_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_unknwnbase_0000_0000_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPUNKNOWN = *mut IUnknown;
extern "C" {
    pub static IID_IUnknown: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IUnknownVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IUnknown,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IUnknown) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IUnknown) -> ULONG>,
}
#[test]
fn bindgen_test_layout_IUnknownVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IUnknownVtbl>(),
        24usize,
        concat!("Size of: ", stringify!(IUnknownVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IUnknownVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IUnknownVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUnknownVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IUnknownVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUnknownVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IUnknownVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUnknownVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IUnknownVtbl),
            "::",
            stringify!(Release)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IUnknown {
    pub lpVtbl: *mut IUnknownVtbl,
}
#[test]
fn bindgen_test_layout_IUnknown() {
    assert_eq!(
        ::std::mem::size_of::<IUnknown>(),
        8usize,
        concat!("Size of: ", stringify!(IUnknown))
    );
    assert_eq!(
        ::std::mem::align_of::<IUnknown>(),
        8usize,
        concat!("Alignment of ", stringify!(IUnknown))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUnknown>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IUnknown),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IUnknown_QueryInterface_Proxy(
        This: *mut IUnknown,
        riid: *const IID,
        ppvObject: *mut *mut ::std::os::raw::c_void,
    ) -> HRESULT;
}
extern "C" {
    pub fn IUnknown_QueryInterface_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn IUnknown_AddRef_Proxy(This: *mut IUnknown) -> ULONG;
}
extern "C" {
    pub fn IUnknown_AddRef_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn IUnknown_Release_Proxy(This: *mut IUnknown) -> ULONG;
}
extern "C" {
    pub fn IUnknown_Release_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub static mut __MIDL_itf_unknwnbase_0000_0001_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_unknwnbase_0000_0001_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_AsyncIUnknown: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AsyncIUnknownVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut AsyncIUnknown,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIUnknown) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIUnknown) -> ULONG>,
    pub Begin_QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(This: *mut AsyncIUnknown, riid: *const IID) -> HRESULT,
    >,
    pub Finish_QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut AsyncIUnknown,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub Begin_AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIUnknown) -> HRESULT>,
    pub Finish_AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIUnknown) -> ULONG>,
    pub Begin_Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIUnknown) -> HRESULT>,
    pub Finish_Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIUnknown) -> ULONG>,
}
#[test]
fn bindgen_test_layout_AsyncIUnknownVtbl() {
    assert_eq!(
        ::std::mem::size_of::<AsyncIUnknownVtbl>(),
        72usize,
        concat!("Size of: ", stringify!(AsyncIUnknownVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<AsyncIUnknownVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(AsyncIUnknownVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIUnknownVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIUnknownVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIUnknownVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIUnknownVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIUnknownVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIUnknownVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIUnknownVtbl>())).Begin_QueryInterface as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIUnknownVtbl),
            "::",
            stringify!(Begin_QueryInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIUnknownVtbl>())).Finish_QueryInterface as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIUnknownVtbl),
            "::",
            stringify!(Finish_QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIUnknownVtbl>())).Begin_AddRef as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIUnknownVtbl),
            "::",
            stringify!(Begin_AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIUnknownVtbl>())).Finish_AddRef as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIUnknownVtbl),
            "::",
            stringify!(Finish_AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIUnknownVtbl>())).Begin_Release as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIUnknownVtbl),
            "::",
            stringify!(Begin_Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIUnknownVtbl>())).Finish_Release as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIUnknownVtbl),
            "::",
            stringify!(Finish_Release)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AsyncIUnknown {
    pub lpVtbl: *mut AsyncIUnknownVtbl,
}
#[test]
fn bindgen_test_layout_AsyncIUnknown() {
    assert_eq!(
        ::std::mem::size_of::<AsyncIUnknown>(),
        8usize,
        concat!("Size of: ", stringify!(AsyncIUnknown))
    );
    assert_eq!(
        ::std::mem::align_of::<AsyncIUnknown>(),
        8usize,
        concat!("Alignment of ", stringify!(AsyncIUnknown))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIUnknown>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIUnknown),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_unknwnbase_0000_0002_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_unknwnbase_0000_0002_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPCLASSFACTORY = *mut IClassFactory;
extern "C" {
    pub static IID_IClassFactory: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IClassFactoryVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IClassFactory,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IClassFactory) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IClassFactory) -> ULONG>,
    pub CreateInstance: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IClassFactory,
            pUnkOuter: *mut IUnknown,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub LockServer: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IClassFactory, fLock: BOOL) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IClassFactoryVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IClassFactoryVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IClassFactoryVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IClassFactoryVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IClassFactoryVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IClassFactoryVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IClassFactoryVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IClassFactoryVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IClassFactoryVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IClassFactoryVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IClassFactoryVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IClassFactoryVtbl>())).CreateInstance as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IClassFactoryVtbl),
            "::",
            stringify!(CreateInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IClassFactoryVtbl>())).LockServer as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IClassFactoryVtbl),
            "::",
            stringify!(LockServer)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IClassFactory {
    pub lpVtbl: *mut IClassFactoryVtbl,
}
#[test]
fn bindgen_test_layout_IClassFactory() {
    assert_eq!(
        ::std::mem::size_of::<IClassFactory>(),
        8usize,
        concat!("Size of: ", stringify!(IClassFactory))
    );
    assert_eq!(
        ::std::mem::align_of::<IClassFactory>(),
        8usize,
        concat!("Alignment of ", stringify!(IClassFactory))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IClassFactory>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IClassFactory),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IClassFactory_RemoteCreateInstance_Proxy(
        This: *mut IClassFactory,
        riid: *const IID,
        ppvObject: *mut *mut IUnknown,
    ) -> HRESULT;
}
extern "C" {
    pub fn IClassFactory_RemoteCreateInstance_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn IClassFactory_RemoteLockServer_Proxy(This: *mut IClassFactory, fLock: BOOL) -> HRESULT;
}
extern "C" {
    pub fn IClassFactory_RemoteLockServer_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub static mut __MIDL_itf_unknwnbase_0000_0003_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_unknwnbase_0000_0003_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub fn IClassFactory_CreateInstance_Proxy(
        This: *mut IClassFactory,
        pUnkOuter: *mut IUnknown,
        riid: *const IID,
        ppvObject: *mut *mut ::std::os::raw::c_void,
    ) -> HRESULT;
}
extern "C" {
    pub fn IClassFactory_CreateInstance_Stub(
        This: *mut IClassFactory,
        riid: *const IID,
        ppvObject: *mut *mut IUnknown,
    ) -> HRESULT;
}
extern "C" {
    pub fn IClassFactory_LockServer_Proxy(This: *mut IClassFactory, fLock: BOOL) -> HRESULT;
}
extern "C" {
    pub fn IClassFactory_LockServer_Stub(This: *mut IClassFactory, fLock: BOOL) -> HRESULT;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IEnumContextProps {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IContext {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IObjContext {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _COSERVERINFO {
    pub dwReserved1: DWORD,
    pub pwszName: LPWSTR,
    pub pAuthInfo: *mut COAUTHINFO,
    pub dwReserved2: DWORD,
}
#[test]
fn bindgen_test_layout__COSERVERINFO() {
    assert_eq!(
        ::std::mem::size_of::<_COSERVERINFO>(),
        32usize,
        concat!("Size of: ", stringify!(_COSERVERINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_COSERVERINFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_COSERVERINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COSERVERINFO>())).dwReserved1 as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_COSERVERINFO),
            "::",
            stringify!(dwReserved1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COSERVERINFO>())).pwszName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_COSERVERINFO),
            "::",
            stringify!(pwszName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COSERVERINFO>())).pAuthInfo as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_COSERVERINFO),
            "::",
            stringify!(pAuthInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_COSERVERINFO>())).dwReserved2 as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_COSERVERINFO),
            "::",
            stringify!(dwReserved2)
        )
    );
}
pub type COSERVERINFO = _COSERVERINFO;
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0000_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0000_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPMARSHAL = *mut IMarshal;
extern "C" {
    pub static IID_IMarshal: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IMarshalVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMarshal,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IMarshal) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IMarshal) -> ULONG>,
    pub GetUnmarshalClass: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMarshal,
            riid: *const IID,
            pv: *mut ::std::os::raw::c_void,
            dwDestContext: DWORD,
            pvDestContext: *mut ::std::os::raw::c_void,
            mshlflags: DWORD,
            pCid: *mut CLSID,
        ) -> HRESULT,
    >,
    pub GetMarshalSizeMax: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMarshal,
            riid: *const IID,
            pv: *mut ::std::os::raw::c_void,
            dwDestContext: DWORD,
            pvDestContext: *mut ::std::os::raw::c_void,
            mshlflags: DWORD,
            pSize: *mut DWORD,
        ) -> HRESULT,
    >,
    pub MarshalInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMarshal,
            pStm: *mut IStream,
            riid: *const IID,
            pv: *mut ::std::os::raw::c_void,
            dwDestContext: DWORD,
            pvDestContext: *mut ::std::os::raw::c_void,
            mshlflags: DWORD,
        ) -> HRESULT,
    >,
    pub UnmarshalInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMarshal,
            pStm: *mut IStream,
            riid: *const IID,
            ppv: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub ReleaseMarshalData: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IMarshal, pStm: *mut IStream) -> HRESULT,
    >,
    pub DisconnectObject: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IMarshal, dwReserved: DWORD) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IMarshalVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IMarshalVtbl>(),
        72usize,
        concat!("Size of: ", stringify!(IMarshalVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IMarshalVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IMarshalVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMarshalVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshalVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMarshalVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshalVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMarshalVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshalVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMarshalVtbl>())).GetUnmarshalClass as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshalVtbl),
            "::",
            stringify!(GetUnmarshalClass)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMarshalVtbl>())).GetMarshalSizeMax as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshalVtbl),
            "::",
            stringify!(GetMarshalSizeMax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMarshalVtbl>())).MarshalInterface as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshalVtbl),
            "::",
            stringify!(MarshalInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMarshalVtbl>())).UnmarshalInterface as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshalVtbl),
            "::",
            stringify!(UnmarshalInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMarshalVtbl>())).ReleaseMarshalData as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshalVtbl),
            "::",
            stringify!(ReleaseMarshalData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMarshalVtbl>())).DisconnectObject as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshalVtbl),
            "::",
            stringify!(DisconnectObject)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IMarshal {
    pub lpVtbl: *mut IMarshalVtbl,
}
#[test]
fn bindgen_test_layout_IMarshal() {
    assert_eq!(
        ::std::mem::size_of::<IMarshal>(),
        8usize,
        concat!("Size of: ", stringify!(IMarshal))
    );
    assert_eq!(
        ::std::mem::align_of::<IMarshal>(),
        8usize,
        concat!("Alignment of ", stringify!(IMarshal))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMarshal>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshal),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_INoMarshal: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct INoMarshalVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut INoMarshal,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut INoMarshal) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut INoMarshal) -> ULONG>,
}
#[test]
fn bindgen_test_layout_INoMarshalVtbl() {
    assert_eq!(
        ::std::mem::size_of::<INoMarshalVtbl>(),
        24usize,
        concat!("Size of: ", stringify!(INoMarshalVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<INoMarshalVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(INoMarshalVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<INoMarshalVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(INoMarshalVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<INoMarshalVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(INoMarshalVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<INoMarshalVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(INoMarshalVtbl),
            "::",
            stringify!(Release)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct INoMarshal {
    pub lpVtbl: *mut INoMarshalVtbl,
}
#[test]
fn bindgen_test_layout_INoMarshal() {
    assert_eq!(
        ::std::mem::size_of::<INoMarshal>(),
        8usize,
        concat!("Size of: ", stringify!(INoMarshal))
    );
    assert_eq!(
        ::std::mem::align_of::<INoMarshal>(),
        8usize,
        concat!("Alignment of ", stringify!(INoMarshal))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<INoMarshal>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(INoMarshal),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IAgileObject: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IAgileObjectVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IAgileObject,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IAgileObject) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IAgileObject) -> ULONG>,
}
#[test]
fn bindgen_test_layout_IAgileObjectVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IAgileObjectVtbl>(),
        24usize,
        concat!("Size of: ", stringify!(IAgileObjectVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IAgileObjectVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IAgileObjectVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAgileObjectVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IAgileObjectVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAgileObjectVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IAgileObjectVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAgileObjectVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IAgileObjectVtbl),
            "::",
            stringify!(Release)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IAgileObject {
    pub lpVtbl: *mut IAgileObjectVtbl,
}
#[test]
fn bindgen_test_layout_IAgileObject() {
    assert_eq!(
        ::std::mem::size_of::<IAgileObject>(),
        8usize,
        concat!("Size of: ", stringify!(IAgileObject))
    );
    assert_eq!(
        ::std::mem::align_of::<IAgileObject>(),
        8usize,
        concat!("Alignment of ", stringify!(IAgileObject))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAgileObject>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IAgileObject),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0003_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0003_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub const tagACTIVATIONTYPE_ACTIVATIONTYPE_UNCATEGORIZED: tagACTIVATIONTYPE = 0;
pub const tagACTIVATIONTYPE_ACTIVATIONTYPE_FROM_MONIKER: tagACTIVATIONTYPE = 1;
pub const tagACTIVATIONTYPE_ACTIVATIONTYPE_FROM_DATA: tagACTIVATIONTYPE = 2;
pub const tagACTIVATIONTYPE_ACTIVATIONTYPE_FROM_STORAGE: tagACTIVATIONTYPE = 4;
pub const tagACTIVATIONTYPE_ACTIVATIONTYPE_FROM_STREAM: tagACTIVATIONTYPE = 8;
pub const tagACTIVATIONTYPE_ACTIVATIONTYPE_FROM_FILE: tagACTIVATIONTYPE = 16;
pub type tagACTIVATIONTYPE = ::std::os::raw::c_int;
pub use self::tagACTIVATIONTYPE as ACTIVATIONTYPE;
extern "C" {
    pub static IID_IActivationFilter: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IActivationFilterVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IActivationFilter,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IActivationFilter) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IActivationFilter) -> ULONG>,
    pub HandleActivation: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IActivationFilter,
            dwActivationType: DWORD,
            rclsid: *const IID,
            pReplacementClsId: *mut CLSID,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IActivationFilterVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IActivationFilterVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IActivationFilterVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IActivationFilterVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IActivationFilterVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IActivationFilterVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IActivationFilterVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IActivationFilterVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IActivationFilterVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IActivationFilterVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IActivationFilterVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IActivationFilterVtbl>())).HandleActivation as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IActivationFilterVtbl),
            "::",
            stringify!(HandleActivation)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IActivationFilter {
    pub lpVtbl: *mut IActivationFilterVtbl,
}
#[test]
fn bindgen_test_layout_IActivationFilter() {
    assert_eq!(
        ::std::mem::size_of::<IActivationFilter>(),
        8usize,
        concat!("Size of: ", stringify!(IActivationFilter))
    );
    assert_eq!(
        ::std::mem::align_of::<IActivationFilter>(),
        8usize,
        concat!("Alignment of ", stringify!(IActivationFilter))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IActivationFilter>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IActivationFilter),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPMARSHAL2 = *mut IMarshal2;
extern "C" {
    pub static IID_IMarshal2: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IMarshal2Vtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMarshal2,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IMarshal2) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IMarshal2) -> ULONG>,
    pub GetUnmarshalClass: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMarshal2,
            riid: *const IID,
            pv: *mut ::std::os::raw::c_void,
            dwDestContext: DWORD,
            pvDestContext: *mut ::std::os::raw::c_void,
            mshlflags: DWORD,
            pCid: *mut CLSID,
        ) -> HRESULT,
    >,
    pub GetMarshalSizeMax: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMarshal2,
            riid: *const IID,
            pv: *mut ::std::os::raw::c_void,
            dwDestContext: DWORD,
            pvDestContext: *mut ::std::os::raw::c_void,
            mshlflags: DWORD,
            pSize: *mut DWORD,
        ) -> HRESULT,
    >,
    pub MarshalInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMarshal2,
            pStm: *mut IStream,
            riid: *const IID,
            pv: *mut ::std::os::raw::c_void,
            dwDestContext: DWORD,
            pvDestContext: *mut ::std::os::raw::c_void,
            mshlflags: DWORD,
        ) -> HRESULT,
    >,
    pub UnmarshalInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMarshal2,
            pStm: *mut IStream,
            riid: *const IID,
            ppv: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub ReleaseMarshalData: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IMarshal2, pStm: *mut IStream) -> HRESULT,
    >,
    pub DisconnectObject: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IMarshal2, dwReserved: DWORD) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IMarshal2Vtbl() {
    assert_eq!(
        ::std::mem::size_of::<IMarshal2Vtbl>(),
        72usize,
        concat!("Size of: ", stringify!(IMarshal2Vtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IMarshal2Vtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IMarshal2Vtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMarshal2Vtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshal2Vtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMarshal2Vtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshal2Vtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMarshal2Vtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshal2Vtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMarshal2Vtbl>())).GetUnmarshalClass as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshal2Vtbl),
            "::",
            stringify!(GetUnmarshalClass)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMarshal2Vtbl>())).GetMarshalSizeMax as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshal2Vtbl),
            "::",
            stringify!(GetMarshalSizeMax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMarshal2Vtbl>())).MarshalInterface as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshal2Vtbl),
            "::",
            stringify!(MarshalInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IMarshal2Vtbl>())).UnmarshalInterface as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshal2Vtbl),
            "::",
            stringify!(UnmarshalInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IMarshal2Vtbl>())).ReleaseMarshalData as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshal2Vtbl),
            "::",
            stringify!(ReleaseMarshalData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMarshal2Vtbl>())).DisconnectObject as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshal2Vtbl),
            "::",
            stringify!(DisconnectObject)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IMarshal2 {
    pub lpVtbl: *mut IMarshal2Vtbl,
}
#[test]
fn bindgen_test_layout_IMarshal2() {
    assert_eq!(
        ::std::mem::size_of::<IMarshal2>(),
        8usize,
        concat!("Size of: ", stringify!(IMarshal2))
    );
    assert_eq!(
        ::std::mem::align_of::<IMarshal2>(),
        8usize,
        concat!("Alignment of ", stringify!(IMarshal2))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMarshal2>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshal2),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPMALLOC = *mut IMalloc;
extern "C" {
    pub static IID_IMalloc: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IMallocVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMalloc,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IMalloc) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IMalloc) -> ULONG>,
    pub Alloc: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IMalloc, cb: SIZE_T) -> *mut ::std::os::raw::c_void,
    >,
    pub Realloc: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMalloc,
            pv: *mut ::std::os::raw::c_void,
            cb: SIZE_T,
        ) -> *mut ::std::os::raw::c_void,
    >,
    pub Free: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IMalloc, pv: *mut ::std::os::raw::c_void),
    >,
    pub GetSize: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IMalloc, pv: *mut ::std::os::raw::c_void) -> SIZE_T,
    >,
    pub DidAlloc: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMalloc,
            pv: *mut ::std::os::raw::c_void,
        ) -> ::std::os::raw::c_int,
    >,
    pub HeapMinimize: ::std::option::Option<unsafe extern "C" fn(This: *mut IMalloc)>,
}
#[test]
fn bindgen_test_layout_IMallocVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IMallocVtbl>(),
        72usize,
        concat!("Size of: ", stringify!(IMallocVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IMallocVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IMallocVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMallocVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IMallocVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMallocVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IMallocVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMallocVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IMallocVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMallocVtbl>())).Alloc as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IMallocVtbl),
            "::",
            stringify!(Alloc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMallocVtbl>())).Realloc as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IMallocVtbl),
            "::",
            stringify!(Realloc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMallocVtbl>())).Free as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IMallocVtbl),
            "::",
            stringify!(Free)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMallocVtbl>())).GetSize as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IMallocVtbl),
            "::",
            stringify!(GetSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMallocVtbl>())).DidAlloc as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IMallocVtbl),
            "::",
            stringify!(DidAlloc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMallocVtbl>())).HeapMinimize as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IMallocVtbl),
            "::",
            stringify!(HeapMinimize)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IMalloc {
    pub lpVtbl: *mut IMallocVtbl,
}
#[test]
fn bindgen_test_layout_IMalloc() {
    assert_eq!(
        ::std::mem::size_of::<IMalloc>(),
        8usize,
        concat!("Size of: ", stringify!(IMalloc))
    );
    assert_eq!(
        ::std::mem::align_of::<IMalloc>(),
        8usize,
        concat!("Alignment of ", stringify!(IMalloc))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMalloc>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IMalloc),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPSTDMARSHALINFO = *mut IStdMarshalInfo;
extern "C" {
    pub static IID_IStdMarshalInfo: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IStdMarshalInfoVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IStdMarshalInfo,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IStdMarshalInfo) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IStdMarshalInfo) -> ULONG>,
    pub GetClassForHandler: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IStdMarshalInfo,
            dwDestContext: DWORD,
            pvDestContext: *mut ::std::os::raw::c_void,
            pClsid: *mut CLSID,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IStdMarshalInfoVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IStdMarshalInfoVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IStdMarshalInfoVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IStdMarshalInfoVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IStdMarshalInfoVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IStdMarshalInfoVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IStdMarshalInfoVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStdMarshalInfoVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IStdMarshalInfoVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStdMarshalInfoVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IStdMarshalInfoVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IStdMarshalInfoVtbl>())).GetClassForHandler as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IStdMarshalInfoVtbl),
            "::",
            stringify!(GetClassForHandler)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IStdMarshalInfo {
    pub lpVtbl: *mut IStdMarshalInfoVtbl,
}
#[test]
fn bindgen_test_layout_IStdMarshalInfo() {
    assert_eq!(
        ::std::mem::size_of::<IStdMarshalInfo>(),
        8usize,
        concat!("Size of: ", stringify!(IStdMarshalInfo))
    );
    assert_eq!(
        ::std::mem::align_of::<IStdMarshalInfo>(),
        8usize,
        concat!("Alignment of ", stringify!(IStdMarshalInfo))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStdMarshalInfo>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IStdMarshalInfo),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPEXTERNALCONNECTION = *mut IExternalConnection;
pub const tagEXTCONN_EXTCONN_STRONG: tagEXTCONN = 1;
pub const tagEXTCONN_EXTCONN_WEAK: tagEXTCONN = 2;
pub const tagEXTCONN_EXTCONN_CALLABLE: tagEXTCONN = 4;
pub type tagEXTCONN = ::std::os::raw::c_int;
pub use self::tagEXTCONN as EXTCONN;
extern "C" {
    pub static IID_IExternalConnection: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IExternalConnectionVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IExternalConnection,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IExternalConnection) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IExternalConnection) -> ULONG>,
    pub AddConnection: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IExternalConnection,
            extconn: DWORD,
            reserved: DWORD,
        ) -> DWORD,
    >,
    pub ReleaseConnection: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IExternalConnection,
            extconn: DWORD,
            reserved: DWORD,
            fLastReleaseCloses: BOOL,
        ) -> DWORD,
    >,
}
#[test]
fn bindgen_test_layout_IExternalConnectionVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IExternalConnectionVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IExternalConnectionVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IExternalConnectionVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IExternalConnectionVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IExternalConnectionVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IExternalConnectionVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IExternalConnectionVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IExternalConnectionVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IExternalConnectionVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IExternalConnectionVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IExternalConnectionVtbl>())).AddConnection as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IExternalConnectionVtbl),
            "::",
            stringify!(AddConnection)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IExternalConnectionVtbl>())).ReleaseConnection as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IExternalConnectionVtbl),
            "::",
            stringify!(ReleaseConnection)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IExternalConnection {
    pub lpVtbl: *mut IExternalConnectionVtbl,
}
#[test]
fn bindgen_test_layout_IExternalConnection() {
    assert_eq!(
        ::std::mem::size_of::<IExternalConnection>(),
        8usize,
        concat!("Size of: ", stringify!(IExternalConnection))
    );
    assert_eq!(
        ::std::mem::align_of::<IExternalConnection>(),
        8usize,
        concat!("Alignment of ", stringify!(IExternalConnection))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IExternalConnection>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IExternalConnection),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPMULTIQI = *mut IMultiQI;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMULTI_QI {
    pub pIID: *const IID,
    pub pItf: *mut IUnknown,
    pub hr: HRESULT,
}
#[test]
fn bindgen_test_layout_tagMULTI_QI() {
    assert_eq!(
        ::std::mem::size_of::<tagMULTI_QI>(),
        24usize,
        concat!("Size of: ", stringify!(tagMULTI_QI))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMULTI_QI>(),
        8usize,
        concat!("Alignment of ", stringify!(tagMULTI_QI))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMULTI_QI>())).pIID as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMULTI_QI),
            "::",
            stringify!(pIID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMULTI_QI>())).pItf as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMULTI_QI),
            "::",
            stringify!(pItf)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMULTI_QI>())).hr as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMULTI_QI),
            "::",
            stringify!(hr)
        )
    );
}
pub type MULTI_QI = tagMULTI_QI;
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0008_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0008_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IMultiQI: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IMultiQIVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMultiQI,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IMultiQI) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IMultiQI) -> ULONG>,
    pub QueryMultipleInterfaces: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IMultiQI, cMQIs: ULONG, pMQIs: *mut MULTI_QI) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IMultiQIVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IMultiQIVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IMultiQIVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IMultiQIVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IMultiQIVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMultiQIVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IMultiQIVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMultiQIVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IMultiQIVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMultiQIVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IMultiQIVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IMultiQIVtbl>())).QueryMultipleInterfaces as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IMultiQIVtbl),
            "::",
            stringify!(QueryMultipleInterfaces)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IMultiQI {
    pub lpVtbl: *mut IMultiQIVtbl,
}
#[test]
fn bindgen_test_layout_IMultiQI() {
    assert_eq!(
        ::std::mem::size_of::<IMultiQI>(),
        8usize,
        concat!("Size of: ", stringify!(IMultiQI))
    );
    assert_eq!(
        ::std::mem::align_of::<IMultiQI>(),
        8usize,
        concat!("Alignment of ", stringify!(IMultiQI))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMultiQI>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IMultiQI),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_AsyncIMultiQI: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AsyncIMultiQIVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut AsyncIMultiQI,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIMultiQI) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIMultiQI) -> ULONG>,
    pub Begin_QueryMultipleInterfaces: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut AsyncIMultiQI,
            cMQIs: ULONG,
            pMQIs: *mut MULTI_QI,
        ) -> HRESULT,
    >,
    pub Finish_QueryMultipleInterfaces: ::std::option::Option<
        unsafe extern "C" fn(This: *mut AsyncIMultiQI, pMQIs: *mut MULTI_QI) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_AsyncIMultiQIVtbl() {
    assert_eq!(
        ::std::mem::size_of::<AsyncIMultiQIVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(AsyncIMultiQIVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<AsyncIMultiQIVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(AsyncIMultiQIVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIMultiQIVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIMultiQIVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIMultiQIVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIMultiQIVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIMultiQIVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIMultiQIVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIMultiQIVtbl>())).Begin_QueryMultipleInterfaces as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIMultiQIVtbl),
            "::",
            stringify!(Begin_QueryMultipleInterfaces)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIMultiQIVtbl>())).Finish_QueryMultipleInterfaces as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIMultiQIVtbl),
            "::",
            stringify!(Finish_QueryMultipleInterfaces)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AsyncIMultiQI {
    pub lpVtbl: *mut AsyncIMultiQIVtbl,
}
#[test]
fn bindgen_test_layout_AsyncIMultiQI() {
    assert_eq!(
        ::std::mem::size_of::<AsyncIMultiQI>(),
        8usize,
        concat!("Size of: ", stringify!(AsyncIMultiQI))
    );
    assert_eq!(
        ::std::mem::align_of::<AsyncIMultiQI>(),
        8usize,
        concat!("Alignment of ", stringify!(AsyncIMultiQI))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIMultiQI>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIMultiQI),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0009_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0009_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IInternalUnknown: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternalUnknownVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternalUnknown,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IInternalUnknown) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IInternalUnknown) -> ULONG>,
    pub QueryInternalInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternalUnknown,
            riid: *const IID,
            ppv: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IInternalUnknownVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IInternalUnknownVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IInternalUnknownVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternalUnknownVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternalUnknownVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternalUnknownVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternalUnknownVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternalUnknownVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternalUnknownVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternalUnknownVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternalUnknownVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternalUnknownVtbl>())).QueryInternalInterface as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternalUnknownVtbl),
            "::",
            stringify!(QueryInternalInterface)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternalUnknown {
    pub lpVtbl: *mut IInternalUnknownVtbl,
}
#[test]
fn bindgen_test_layout_IInternalUnknown() {
    assert_eq!(
        ::std::mem::size_of::<IInternalUnknown>(),
        8usize,
        concat!("Size of: ", stringify!(IInternalUnknown))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternalUnknown>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternalUnknown))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternalUnknown>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternalUnknown),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0010_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0010_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPENUMUNKNOWN = *mut IEnumUnknown;
extern "C" {
    pub static IID_IEnumUnknown: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IEnumUnknownVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IEnumUnknown,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IEnumUnknown) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IEnumUnknown) -> ULONG>,
    pub Next: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IEnumUnknown,
            celt: ULONG,
            rgelt: *mut *mut IUnknown,
            pceltFetched: *mut ULONG,
        ) -> HRESULT,
    >,
    pub Skip: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IEnumUnknown, celt: ULONG) -> HRESULT,
    >,
    pub Reset: ::std::option::Option<unsafe extern "C" fn(This: *mut IEnumUnknown) -> HRESULT>,
    pub Clone: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IEnumUnknown, ppenum: *mut *mut IEnumUnknown) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IEnumUnknownVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IEnumUnknownVtbl>(),
        56usize,
        concat!("Size of: ", stringify!(IEnumUnknownVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IEnumUnknownVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IEnumUnknownVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumUnknownVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumUnknownVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumUnknownVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumUnknownVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumUnknownVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumUnknownVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumUnknownVtbl>())).Next as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumUnknownVtbl),
            "::",
            stringify!(Next)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumUnknownVtbl>())).Skip as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumUnknownVtbl),
            "::",
            stringify!(Skip)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumUnknownVtbl>())).Reset as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumUnknownVtbl),
            "::",
            stringify!(Reset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumUnknownVtbl>())).Clone as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumUnknownVtbl),
            "::",
            stringify!(Clone)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IEnumUnknown {
    pub lpVtbl: *mut IEnumUnknownVtbl,
}
#[test]
fn bindgen_test_layout_IEnumUnknown() {
    assert_eq!(
        ::std::mem::size_of::<IEnumUnknown>(),
        8usize,
        concat!("Size of: ", stringify!(IEnumUnknown))
    );
    assert_eq!(
        ::std::mem::align_of::<IEnumUnknown>(),
        8usize,
        concat!("Alignment of ", stringify!(IEnumUnknown))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumUnknown>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumUnknown),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IEnumUnknown_RemoteNext_Proxy(
        This: *mut IEnumUnknown,
        celt: ULONG,
        rgelt: *mut *mut IUnknown,
        pceltFetched: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IEnumUnknown_RemoteNext_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
pub type LPENUMSTRING = *mut IEnumString;
extern "C" {
    pub static IID_IEnumString: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IEnumStringVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IEnumString,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IEnumString) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IEnumString) -> ULONG>,
    pub Next: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IEnumString,
            celt: ULONG,
            rgelt: *mut LPOLESTR,
            pceltFetched: *mut ULONG,
        ) -> HRESULT,
    >,
    pub Skip:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IEnumString, celt: ULONG) -> HRESULT>,
    pub Reset: ::std::option::Option<unsafe extern "C" fn(This: *mut IEnumString) -> HRESULT>,
    pub Clone: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IEnumString, ppenum: *mut *mut IEnumString) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IEnumStringVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IEnumStringVtbl>(),
        56usize,
        concat!("Size of: ", stringify!(IEnumStringVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IEnumStringVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IEnumStringVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumStringVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumStringVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumStringVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumStringVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumStringVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumStringVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumStringVtbl>())).Next as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumStringVtbl),
            "::",
            stringify!(Next)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumStringVtbl>())).Skip as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumStringVtbl),
            "::",
            stringify!(Skip)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumStringVtbl>())).Reset as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumStringVtbl),
            "::",
            stringify!(Reset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumStringVtbl>())).Clone as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumStringVtbl),
            "::",
            stringify!(Clone)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IEnumString {
    pub lpVtbl: *mut IEnumStringVtbl,
}
#[test]
fn bindgen_test_layout_IEnumString() {
    assert_eq!(
        ::std::mem::size_of::<IEnumString>(),
        8usize,
        concat!("Size of: ", stringify!(IEnumString))
    );
    assert_eq!(
        ::std::mem::align_of::<IEnumString>(),
        8usize,
        concat!("Alignment of ", stringify!(IEnumString))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumString>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumString),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IEnumString_RemoteNext_Proxy(
        This: *mut IEnumString,
        celt: ULONG,
        rgelt: *mut LPOLESTR,
        pceltFetched: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IEnumString_RemoteNext_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub static IID_ISequentialStream: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ISequentialStreamVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ISequentialStream,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut ISequentialStream) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut ISequentialStream) -> ULONG>,
    pub Read: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ISequentialStream,
            pv: *mut ::std::os::raw::c_void,
            cb: ULONG,
            pcbRead: *mut ULONG,
        ) -> HRESULT,
    >,
    pub Write: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ISequentialStream,
            pv: *const ::std::os::raw::c_void,
            cb: ULONG,
            pcbWritten: *mut ULONG,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_ISequentialStreamVtbl() {
    assert_eq!(
        ::std::mem::size_of::<ISequentialStreamVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(ISequentialStreamVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<ISequentialStreamVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(ISequentialStreamVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ISequentialStreamVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ISequentialStreamVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISequentialStreamVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ISequentialStreamVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISequentialStreamVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ISequentialStreamVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISequentialStreamVtbl>())).Read as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ISequentialStreamVtbl),
            "::",
            stringify!(Read)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISequentialStreamVtbl>())).Write as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ISequentialStreamVtbl),
            "::",
            stringify!(Write)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ISequentialStream {
    pub lpVtbl: *mut ISequentialStreamVtbl,
}
#[test]
fn bindgen_test_layout_ISequentialStream() {
    assert_eq!(
        ::std::mem::size_of::<ISequentialStream>(),
        8usize,
        concat!("Size of: ", stringify!(ISequentialStream))
    );
    assert_eq!(
        ::std::mem::align_of::<ISequentialStream>(),
        8usize,
        concat!("Alignment of ", stringify!(ISequentialStream))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISequentialStream>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ISequentialStream),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn ISequentialStream_RemoteRead_Proxy(
        This: *mut ISequentialStream,
        pv: *mut byte,
        cb: ULONG,
        pcbRead: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn ISequentialStream_RemoteRead_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn ISequentialStream_RemoteWrite_Proxy(
        This: *mut ISequentialStream,
        pv: *const byte,
        cb: ULONG,
        pcbWritten: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn ISequentialStream_RemoteWrite_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
pub type LPSTREAM = *mut IStream;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagSTATSTG {
    pub pwcsName: LPOLESTR,
    pub type_: DWORD,
    pub cbSize: ULARGE_INTEGER,
    pub mtime: FILETIME,
    pub ctime: FILETIME,
    pub atime: FILETIME,
    pub grfMode: DWORD,
    pub grfLocksSupported: DWORD,
    pub clsid: CLSID,
    pub grfStateBits: DWORD,
    pub reserved: DWORD,
}
#[test]
fn bindgen_test_layout_tagSTATSTG() {
    assert_eq!(
        ::std::mem::size_of::<tagSTATSTG>(),
        80usize,
        concat!("Size of: ", stringify!(tagSTATSTG))
    );
    assert_eq!(
        ::std::mem::align_of::<tagSTATSTG>(),
        8usize,
        concat!("Alignment of ", stringify!(tagSTATSTG))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTATSTG>())).pwcsName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTATSTG),
            "::",
            stringify!(pwcsName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTATSTG>())).type_ as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTATSTG),
            "::",
            stringify!(type_)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTATSTG>())).cbSize as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTATSTG),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTATSTG>())).mtime as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTATSTG),
            "::",
            stringify!(mtime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTATSTG>())).ctime as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTATSTG),
            "::",
            stringify!(ctime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTATSTG>())).atime as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTATSTG),
            "::",
            stringify!(atime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTATSTG>())).grfMode as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTATSTG),
            "::",
            stringify!(grfMode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTATSTG>())).grfLocksSupported as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTATSTG),
            "::",
            stringify!(grfLocksSupported)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTATSTG>())).clsid as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTATSTG),
            "::",
            stringify!(clsid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTATSTG>())).grfStateBits as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTATSTG),
            "::",
            stringify!(grfStateBits)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTATSTG>())).reserved as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTATSTG),
            "::",
            stringify!(reserved)
        )
    );
}
pub type STATSTG = tagSTATSTG;
pub const tagSTGTY_STGTY_STORAGE: tagSTGTY = 1;
pub const tagSTGTY_STGTY_STREAM: tagSTGTY = 2;
pub const tagSTGTY_STGTY_LOCKBYTES: tagSTGTY = 3;
pub const tagSTGTY_STGTY_PROPERTY: tagSTGTY = 4;
pub type tagSTGTY = ::std::os::raw::c_int;
pub use self::tagSTGTY as STGTY;
pub const tagSTREAM_SEEK_STREAM_SEEK_SET: tagSTREAM_SEEK = 0;
pub const tagSTREAM_SEEK_STREAM_SEEK_CUR: tagSTREAM_SEEK = 1;
pub const tagSTREAM_SEEK_STREAM_SEEK_END: tagSTREAM_SEEK = 2;
pub type tagSTREAM_SEEK = ::std::os::raw::c_int;
pub use self::tagSTREAM_SEEK as STREAM_SEEK;
pub const tagLOCKTYPE_LOCK_WRITE: tagLOCKTYPE = 1;
pub const tagLOCKTYPE_LOCK_EXCLUSIVE: tagLOCKTYPE = 2;
pub const tagLOCKTYPE_LOCK_ONLYONCE: tagLOCKTYPE = 4;
pub type tagLOCKTYPE = ::std::os::raw::c_int;
pub use self::tagLOCKTYPE as LOCKTYPE;
extern "C" {
    pub static IID_IStream: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IStreamVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IStream,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IStream) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IStream) -> ULONG>,
    pub Read: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IStream,
            pv: *mut ::std::os::raw::c_void,
            cb: ULONG,
            pcbRead: *mut ULONG,
        ) -> HRESULT,
    >,
    pub Write: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IStream,
            pv: *const ::std::os::raw::c_void,
            cb: ULONG,
            pcbWritten: *mut ULONG,
        ) -> HRESULT,
    >,
    pub Seek: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IStream,
            dlibMove: LARGE_INTEGER,
            dwOrigin: DWORD,
            plibNewPosition: *mut ULARGE_INTEGER,
        ) -> HRESULT,
    >,
    pub SetSize: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IStream, libNewSize: ULARGE_INTEGER) -> HRESULT,
    >,
    pub CopyTo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IStream,
            pstm: *mut IStream,
            cb: ULARGE_INTEGER,
            pcbRead: *mut ULARGE_INTEGER,
            pcbWritten: *mut ULARGE_INTEGER,
        ) -> HRESULT,
    >,
    pub Commit: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IStream, grfCommitFlags: DWORD) -> HRESULT,
    >,
    pub Revert: ::std::option::Option<unsafe extern "C" fn(This: *mut IStream) -> HRESULT>,
    pub LockRegion: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IStream,
            libOffset: ULARGE_INTEGER,
            cb: ULARGE_INTEGER,
            dwLockType: DWORD,
        ) -> HRESULT,
    >,
    pub UnlockRegion: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IStream,
            libOffset: ULARGE_INTEGER,
            cb: ULARGE_INTEGER,
            dwLockType: DWORD,
        ) -> HRESULT,
    >,
    pub Stat: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IStream,
            pstatstg: *mut STATSTG,
            grfStatFlag: DWORD,
        ) -> HRESULT,
    >,
    pub Clone: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IStream, ppstm: *mut *mut IStream) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IStreamVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IStreamVtbl>(),
        112usize,
        concat!("Size of: ", stringify!(IStreamVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IStreamVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IStreamVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStreamVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IStreamVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStreamVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IStreamVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStreamVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IStreamVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStreamVtbl>())).Read as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IStreamVtbl),
            "::",
            stringify!(Read)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStreamVtbl>())).Write as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IStreamVtbl),
            "::",
            stringify!(Write)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStreamVtbl>())).Seek as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IStreamVtbl),
            "::",
            stringify!(Seek)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStreamVtbl>())).SetSize as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IStreamVtbl),
            "::",
            stringify!(SetSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStreamVtbl>())).CopyTo as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IStreamVtbl),
            "::",
            stringify!(CopyTo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStreamVtbl>())).Commit as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IStreamVtbl),
            "::",
            stringify!(Commit)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStreamVtbl>())).Revert as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IStreamVtbl),
            "::",
            stringify!(Revert)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStreamVtbl>())).LockRegion as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IStreamVtbl),
            "::",
            stringify!(LockRegion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStreamVtbl>())).UnlockRegion as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IStreamVtbl),
            "::",
            stringify!(UnlockRegion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStreamVtbl>())).Stat as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IStreamVtbl),
            "::",
            stringify!(Stat)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStreamVtbl>())).Clone as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IStreamVtbl),
            "::",
            stringify!(Clone)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IStream {
    pub lpVtbl: *mut IStreamVtbl,
}
#[test]
fn bindgen_test_layout_IStream() {
    assert_eq!(
        ::std::mem::size_of::<IStream>(),
        8usize,
        concat!("Size of: ", stringify!(IStream))
    );
    assert_eq!(
        ::std::mem::align_of::<IStream>(),
        8usize,
        concat!("Alignment of ", stringify!(IStream))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStream>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IStream),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IStream_RemoteSeek_Proxy(
        This: *mut IStream,
        dlibMove: LARGE_INTEGER,
        dwOrigin: DWORD,
        plibNewPosition: *mut ULARGE_INTEGER,
    ) -> HRESULT;
}
extern "C" {
    pub fn IStream_RemoteSeek_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn IStream_RemoteCopyTo_Proxy(
        This: *mut IStream,
        pstm: *mut IStream,
        cb: ULARGE_INTEGER,
        pcbRead: *mut ULARGE_INTEGER,
        pcbWritten: *mut ULARGE_INTEGER,
    ) -> HRESULT;
}
extern "C" {
    pub fn IStream_RemoteCopyTo_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
pub type RPCOLEDATAREP = ULONG;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagRPCOLEMESSAGE {
    pub reserved1: *mut ::std::os::raw::c_void,
    pub dataRepresentation: RPCOLEDATAREP,
    pub Buffer: *mut ::std::os::raw::c_void,
    pub cbBuffer: ULONG,
    pub iMethod: ULONG,
    pub reserved2: [*mut ::std::os::raw::c_void; 5usize],
    pub rpcFlags: ULONG,
}
#[test]
fn bindgen_test_layout_tagRPCOLEMESSAGE() {
    assert_eq!(
        ::std::mem::size_of::<tagRPCOLEMESSAGE>(),
        80usize,
        concat!("Size of: ", stringify!(tagRPCOLEMESSAGE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRPCOLEMESSAGE>(),
        8usize,
        concat!("Alignment of ", stringify!(tagRPCOLEMESSAGE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRPCOLEMESSAGE>())).reserved1 as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPCOLEMESSAGE),
            "::",
            stringify!(reserved1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRPCOLEMESSAGE>())).dataRepresentation as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPCOLEMESSAGE),
            "::",
            stringify!(dataRepresentation)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRPCOLEMESSAGE>())).Buffer as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPCOLEMESSAGE),
            "::",
            stringify!(Buffer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRPCOLEMESSAGE>())).cbBuffer as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPCOLEMESSAGE),
            "::",
            stringify!(cbBuffer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRPCOLEMESSAGE>())).iMethod as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPCOLEMESSAGE),
            "::",
            stringify!(iMethod)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRPCOLEMESSAGE>())).reserved2 as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPCOLEMESSAGE),
            "::",
            stringify!(reserved2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRPCOLEMESSAGE>())).rpcFlags as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRPCOLEMESSAGE),
            "::",
            stringify!(rpcFlags)
        )
    );
}
pub type RPCOLEMESSAGE = tagRPCOLEMESSAGE;
pub type PRPCOLEMESSAGE = *mut RPCOLEMESSAGE;
extern "C" {
    pub static IID_IRpcChannelBuffer: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IRpcChannelBufferVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRpcChannelBuffer,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IRpcChannelBuffer) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IRpcChannelBuffer) -> ULONG>,
    pub GetBuffer: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRpcChannelBuffer,
            pMessage: *mut RPCOLEMESSAGE,
            riid: *const IID,
        ) -> HRESULT,
    >,
    pub SendReceive: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRpcChannelBuffer,
            pMessage: *mut RPCOLEMESSAGE,
            pStatus: *mut ULONG,
        ) -> HRESULT,
    >,
    pub FreeBuffer: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IRpcChannelBuffer, pMessage: *mut RPCOLEMESSAGE) -> HRESULT,
    >,
    pub GetDestCtx: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRpcChannelBuffer,
            pdwDestContext: *mut DWORD,
            ppvDestContext: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub IsConnected:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IRpcChannelBuffer) -> HRESULT>,
}
#[test]
fn bindgen_test_layout_IRpcChannelBufferVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IRpcChannelBufferVtbl>(),
        64usize,
        concat!("Size of: ", stringify!(IRpcChannelBufferVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IRpcChannelBufferVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IRpcChannelBufferVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRpcChannelBufferVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBufferVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcChannelBufferVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBufferVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcChannelBufferVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBufferVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcChannelBufferVtbl>())).GetBuffer as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBufferVtbl),
            "::",
            stringify!(GetBuffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRpcChannelBufferVtbl>())).SendReceive as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBufferVtbl),
            "::",
            stringify!(SendReceive)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRpcChannelBufferVtbl>())).FreeBuffer as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBufferVtbl),
            "::",
            stringify!(FreeBuffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRpcChannelBufferVtbl>())).GetDestCtx as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBufferVtbl),
            "::",
            stringify!(GetDestCtx)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRpcChannelBufferVtbl>())).IsConnected as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBufferVtbl),
            "::",
            stringify!(IsConnected)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IRpcChannelBuffer {
    pub lpVtbl: *mut IRpcChannelBufferVtbl,
}
#[test]
fn bindgen_test_layout_IRpcChannelBuffer() {
    assert_eq!(
        ::std::mem::size_of::<IRpcChannelBuffer>(),
        8usize,
        concat!("Size of: ", stringify!(IRpcChannelBuffer))
    );
    assert_eq!(
        ::std::mem::align_of::<IRpcChannelBuffer>(),
        8usize,
        concat!("Alignment of ", stringify!(IRpcChannelBuffer))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcChannelBuffer>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBuffer),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0015_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0015_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IRpcChannelBuffer2: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IRpcChannelBuffer2Vtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRpcChannelBuffer2,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IRpcChannelBuffer2) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IRpcChannelBuffer2) -> ULONG>,
    pub GetBuffer: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRpcChannelBuffer2,
            pMessage: *mut RPCOLEMESSAGE,
            riid: *const IID,
        ) -> HRESULT,
    >,
    pub SendReceive: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRpcChannelBuffer2,
            pMessage: *mut RPCOLEMESSAGE,
            pStatus: *mut ULONG,
        ) -> HRESULT,
    >,
    pub FreeBuffer: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRpcChannelBuffer2,
            pMessage: *mut RPCOLEMESSAGE,
        ) -> HRESULT,
    >,
    pub GetDestCtx: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRpcChannelBuffer2,
            pdwDestContext: *mut DWORD,
            ppvDestContext: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub IsConnected:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IRpcChannelBuffer2) -> HRESULT>,
    pub GetProtocolVersion: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IRpcChannelBuffer2, pdwVersion: *mut DWORD) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IRpcChannelBuffer2Vtbl() {
    assert_eq!(
        ::std::mem::size_of::<IRpcChannelBuffer2Vtbl>(),
        72usize,
        concat!("Size of: ", stringify!(IRpcChannelBuffer2Vtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IRpcChannelBuffer2Vtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IRpcChannelBuffer2Vtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRpcChannelBuffer2Vtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBuffer2Vtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcChannelBuffer2Vtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBuffer2Vtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcChannelBuffer2Vtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBuffer2Vtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRpcChannelBuffer2Vtbl>())).GetBuffer as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBuffer2Vtbl),
            "::",
            stringify!(GetBuffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRpcChannelBuffer2Vtbl>())).SendReceive as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBuffer2Vtbl),
            "::",
            stringify!(SendReceive)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRpcChannelBuffer2Vtbl>())).FreeBuffer as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBuffer2Vtbl),
            "::",
            stringify!(FreeBuffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRpcChannelBuffer2Vtbl>())).GetDestCtx as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBuffer2Vtbl),
            "::",
            stringify!(GetDestCtx)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRpcChannelBuffer2Vtbl>())).IsConnected as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBuffer2Vtbl),
            "::",
            stringify!(IsConnected)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRpcChannelBuffer2Vtbl>())).GetProtocolVersion as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBuffer2Vtbl),
            "::",
            stringify!(GetProtocolVersion)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IRpcChannelBuffer2 {
    pub lpVtbl: *mut IRpcChannelBuffer2Vtbl,
}
#[test]
fn bindgen_test_layout_IRpcChannelBuffer2() {
    assert_eq!(
        ::std::mem::size_of::<IRpcChannelBuffer2>(),
        8usize,
        concat!("Size of: ", stringify!(IRpcChannelBuffer2))
    );
    assert_eq!(
        ::std::mem::align_of::<IRpcChannelBuffer2>(),
        8usize,
        concat!("Alignment of ", stringify!(IRpcChannelBuffer2))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcChannelBuffer2>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBuffer2),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IAsyncRpcChannelBuffer: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IAsyncRpcChannelBufferVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IAsyncRpcChannelBuffer,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IAsyncRpcChannelBuffer) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IAsyncRpcChannelBuffer) -> ULONG>,
    pub GetBuffer: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IAsyncRpcChannelBuffer,
            pMessage: *mut RPCOLEMESSAGE,
            riid: *const IID,
        ) -> HRESULT,
    >,
    pub SendReceive: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IAsyncRpcChannelBuffer,
            pMessage: *mut RPCOLEMESSAGE,
            pStatus: *mut ULONG,
        ) -> HRESULT,
    >,
    pub FreeBuffer: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IAsyncRpcChannelBuffer,
            pMessage: *mut RPCOLEMESSAGE,
        ) -> HRESULT,
    >,
    pub GetDestCtx: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IAsyncRpcChannelBuffer,
            pdwDestContext: *mut DWORD,
            ppvDestContext: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub IsConnected:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IAsyncRpcChannelBuffer) -> HRESULT>,
    pub GetProtocolVersion: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IAsyncRpcChannelBuffer, pdwVersion: *mut DWORD) -> HRESULT,
    >,
    pub Send: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IAsyncRpcChannelBuffer,
            pMsg: *mut RPCOLEMESSAGE,
            pSync: *mut ISynchronize,
            pulStatus: *mut ULONG,
        ) -> HRESULT,
    >,
    pub Receive: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IAsyncRpcChannelBuffer,
            pMsg: *mut RPCOLEMESSAGE,
            pulStatus: *mut ULONG,
        ) -> HRESULT,
    >,
    pub GetDestCtxEx: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IAsyncRpcChannelBuffer,
            pMsg: *mut RPCOLEMESSAGE,
            pdwDestContext: *mut DWORD,
            ppvDestContext: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IAsyncRpcChannelBufferVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IAsyncRpcChannelBufferVtbl>(),
        96usize,
        concat!("Size of: ", stringify!(IAsyncRpcChannelBufferVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IAsyncRpcChannelBufferVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IAsyncRpcChannelBufferVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IAsyncRpcChannelBufferVtbl>())).QueryInterface as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IAsyncRpcChannelBufferVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IAsyncRpcChannelBufferVtbl>())).AddRef as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IAsyncRpcChannelBufferVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IAsyncRpcChannelBufferVtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IAsyncRpcChannelBufferVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IAsyncRpcChannelBufferVtbl>())).GetBuffer as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IAsyncRpcChannelBufferVtbl),
            "::",
            stringify!(GetBuffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IAsyncRpcChannelBufferVtbl>())).SendReceive as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IAsyncRpcChannelBufferVtbl),
            "::",
            stringify!(SendReceive)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IAsyncRpcChannelBufferVtbl>())).FreeBuffer as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IAsyncRpcChannelBufferVtbl),
            "::",
            stringify!(FreeBuffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IAsyncRpcChannelBufferVtbl>())).GetDestCtx as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IAsyncRpcChannelBufferVtbl),
            "::",
            stringify!(GetDestCtx)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IAsyncRpcChannelBufferVtbl>())).IsConnected as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IAsyncRpcChannelBufferVtbl),
            "::",
            stringify!(IsConnected)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IAsyncRpcChannelBufferVtbl>())).GetProtocolVersion as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IAsyncRpcChannelBufferVtbl),
            "::",
            stringify!(GetProtocolVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAsyncRpcChannelBufferVtbl>())).Send as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IAsyncRpcChannelBufferVtbl),
            "::",
            stringify!(Send)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IAsyncRpcChannelBufferVtbl>())).Receive as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IAsyncRpcChannelBufferVtbl),
            "::",
            stringify!(Receive)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IAsyncRpcChannelBufferVtbl>())).GetDestCtxEx as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IAsyncRpcChannelBufferVtbl),
            "::",
            stringify!(GetDestCtxEx)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IAsyncRpcChannelBuffer {
    pub lpVtbl: *mut IAsyncRpcChannelBufferVtbl,
}
#[test]
fn bindgen_test_layout_IAsyncRpcChannelBuffer() {
    assert_eq!(
        ::std::mem::size_of::<IAsyncRpcChannelBuffer>(),
        8usize,
        concat!("Size of: ", stringify!(IAsyncRpcChannelBuffer))
    );
    assert_eq!(
        ::std::mem::align_of::<IAsyncRpcChannelBuffer>(),
        8usize,
        concat!("Alignment of ", stringify!(IAsyncRpcChannelBuffer))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAsyncRpcChannelBuffer>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IAsyncRpcChannelBuffer),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IRpcChannelBuffer3: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IRpcChannelBuffer3Vtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRpcChannelBuffer3,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IRpcChannelBuffer3) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IRpcChannelBuffer3) -> ULONG>,
    pub GetBuffer: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRpcChannelBuffer3,
            pMessage: *mut RPCOLEMESSAGE,
            riid: *const IID,
        ) -> HRESULT,
    >,
    pub SendReceive: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRpcChannelBuffer3,
            pMessage: *mut RPCOLEMESSAGE,
            pStatus: *mut ULONG,
        ) -> HRESULT,
    >,
    pub FreeBuffer: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRpcChannelBuffer3,
            pMessage: *mut RPCOLEMESSAGE,
        ) -> HRESULT,
    >,
    pub GetDestCtx: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRpcChannelBuffer3,
            pdwDestContext: *mut DWORD,
            ppvDestContext: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub IsConnected:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IRpcChannelBuffer3) -> HRESULT>,
    pub GetProtocolVersion: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IRpcChannelBuffer3, pdwVersion: *mut DWORD) -> HRESULT,
    >,
    pub Send: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRpcChannelBuffer3,
            pMsg: *mut RPCOLEMESSAGE,
            pulStatus: *mut ULONG,
        ) -> HRESULT,
    >,
    pub Receive: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRpcChannelBuffer3,
            pMsg: *mut RPCOLEMESSAGE,
            ulSize: ULONG,
            pulStatus: *mut ULONG,
        ) -> HRESULT,
    >,
    pub Cancel: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IRpcChannelBuffer3, pMsg: *mut RPCOLEMESSAGE) -> HRESULT,
    >,
    pub GetCallContext: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRpcChannelBuffer3,
            pMsg: *mut RPCOLEMESSAGE,
            riid: *const IID,
            pInterface: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub GetDestCtxEx: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRpcChannelBuffer3,
            pMsg: *mut RPCOLEMESSAGE,
            pdwDestContext: *mut DWORD,
            ppvDestContext: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub GetState: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRpcChannelBuffer3,
            pMsg: *mut RPCOLEMESSAGE,
            pState: *mut DWORD,
        ) -> HRESULT,
    >,
    pub RegisterAsync: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRpcChannelBuffer3,
            pMsg: *mut RPCOLEMESSAGE,
            pAsyncMgr: *mut IAsyncManager,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IRpcChannelBuffer3Vtbl() {
    assert_eq!(
        ::std::mem::size_of::<IRpcChannelBuffer3Vtbl>(),
        128usize,
        concat!("Size of: ", stringify!(IRpcChannelBuffer3Vtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IRpcChannelBuffer3Vtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IRpcChannelBuffer3Vtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRpcChannelBuffer3Vtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBuffer3Vtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcChannelBuffer3Vtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBuffer3Vtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcChannelBuffer3Vtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBuffer3Vtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRpcChannelBuffer3Vtbl>())).GetBuffer as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBuffer3Vtbl),
            "::",
            stringify!(GetBuffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRpcChannelBuffer3Vtbl>())).SendReceive as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBuffer3Vtbl),
            "::",
            stringify!(SendReceive)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRpcChannelBuffer3Vtbl>())).FreeBuffer as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBuffer3Vtbl),
            "::",
            stringify!(FreeBuffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRpcChannelBuffer3Vtbl>())).GetDestCtx as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBuffer3Vtbl),
            "::",
            stringify!(GetDestCtx)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRpcChannelBuffer3Vtbl>())).IsConnected as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBuffer3Vtbl),
            "::",
            stringify!(IsConnected)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRpcChannelBuffer3Vtbl>())).GetProtocolVersion as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBuffer3Vtbl),
            "::",
            stringify!(GetProtocolVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcChannelBuffer3Vtbl>())).Send as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBuffer3Vtbl),
            "::",
            stringify!(Send)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcChannelBuffer3Vtbl>())).Receive as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBuffer3Vtbl),
            "::",
            stringify!(Receive)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcChannelBuffer3Vtbl>())).Cancel as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBuffer3Vtbl),
            "::",
            stringify!(Cancel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRpcChannelBuffer3Vtbl>())).GetCallContext as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBuffer3Vtbl),
            "::",
            stringify!(GetCallContext)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRpcChannelBuffer3Vtbl>())).GetDestCtxEx as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBuffer3Vtbl),
            "::",
            stringify!(GetDestCtxEx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcChannelBuffer3Vtbl>())).GetState as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBuffer3Vtbl),
            "::",
            stringify!(GetState)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRpcChannelBuffer3Vtbl>())).RegisterAsync as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBuffer3Vtbl),
            "::",
            stringify!(RegisterAsync)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IRpcChannelBuffer3 {
    pub lpVtbl: *mut IRpcChannelBuffer3Vtbl,
}
#[test]
fn bindgen_test_layout_IRpcChannelBuffer3() {
    assert_eq!(
        ::std::mem::size_of::<IRpcChannelBuffer3>(),
        8usize,
        concat!("Size of: ", stringify!(IRpcChannelBuffer3))
    );
    assert_eq!(
        ::std::mem::align_of::<IRpcChannelBuffer3>(),
        8usize,
        concat!("Alignment of ", stringify!(IRpcChannelBuffer3))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcChannelBuffer3>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcChannelBuffer3),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IRpcSyntaxNegotiate: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IRpcSyntaxNegotiateVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRpcSyntaxNegotiate,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IRpcSyntaxNegotiate) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IRpcSyntaxNegotiate) -> ULONG>,
    pub NegotiateSyntax: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IRpcSyntaxNegotiate, pMsg: *mut RPCOLEMESSAGE) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IRpcSyntaxNegotiateVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IRpcSyntaxNegotiateVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IRpcSyntaxNegotiateVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IRpcSyntaxNegotiateVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IRpcSyntaxNegotiateVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRpcSyntaxNegotiateVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcSyntaxNegotiateVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcSyntaxNegotiateVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcSyntaxNegotiateVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcSyntaxNegotiateVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcSyntaxNegotiateVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRpcSyntaxNegotiateVtbl>())).NegotiateSyntax as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcSyntaxNegotiateVtbl),
            "::",
            stringify!(NegotiateSyntax)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IRpcSyntaxNegotiate {
    pub lpVtbl: *mut IRpcSyntaxNegotiateVtbl,
}
#[test]
fn bindgen_test_layout_IRpcSyntaxNegotiate() {
    assert_eq!(
        ::std::mem::size_of::<IRpcSyntaxNegotiate>(),
        8usize,
        concat!("Size of: ", stringify!(IRpcSyntaxNegotiate))
    );
    assert_eq!(
        ::std::mem::align_of::<IRpcSyntaxNegotiate>(),
        8usize,
        concat!("Alignment of ", stringify!(IRpcSyntaxNegotiate))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcSyntaxNegotiate>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcSyntaxNegotiate),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IRpcProxyBuffer: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IRpcProxyBufferVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRpcProxyBuffer,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IRpcProxyBuffer) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IRpcProxyBuffer) -> ULONG>,
    pub Connect: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRpcProxyBuffer,
            pRpcChannelBuffer: *mut IRpcChannelBuffer,
        ) -> HRESULT,
    >,
    pub Disconnect: ::std::option::Option<unsafe extern "C" fn(This: *mut IRpcProxyBuffer)>,
}
#[test]
fn bindgen_test_layout_IRpcProxyBufferVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IRpcProxyBufferVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IRpcProxyBufferVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IRpcProxyBufferVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IRpcProxyBufferVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRpcProxyBufferVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcProxyBufferVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcProxyBufferVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcProxyBufferVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcProxyBufferVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcProxyBufferVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcProxyBufferVtbl>())).Connect as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcProxyBufferVtbl),
            "::",
            stringify!(Connect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcProxyBufferVtbl>())).Disconnect as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcProxyBufferVtbl),
            "::",
            stringify!(Disconnect)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IRpcProxyBuffer {
    pub lpVtbl: *mut IRpcProxyBufferVtbl,
}
#[test]
fn bindgen_test_layout_IRpcProxyBuffer() {
    assert_eq!(
        ::std::mem::size_of::<IRpcProxyBuffer>(),
        8usize,
        concat!("Size of: ", stringify!(IRpcProxyBuffer))
    );
    assert_eq!(
        ::std::mem::align_of::<IRpcProxyBuffer>(),
        8usize,
        concat!("Alignment of ", stringify!(IRpcProxyBuffer))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcProxyBuffer>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcProxyBuffer),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0020_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0020_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IRpcStubBuffer: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IRpcStubBufferVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRpcStubBuffer,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IRpcStubBuffer) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IRpcStubBuffer) -> ULONG>,
    pub Connect: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IRpcStubBuffer, pUnkServer: *mut IUnknown) -> HRESULT,
    >,
    pub Disconnect: ::std::option::Option<unsafe extern "C" fn(This: *mut IRpcStubBuffer)>,
    pub Invoke: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRpcStubBuffer,
            _prpcmsg: *mut RPCOLEMESSAGE,
            _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        ) -> HRESULT,
    >,
    pub IsIIDSupported: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IRpcStubBuffer, riid: *const IID) -> *mut IRpcStubBuffer,
    >,
    pub CountRefs: ::std::option::Option<unsafe extern "C" fn(This: *mut IRpcStubBuffer) -> ULONG>,
    pub DebugServerQueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRpcStubBuffer,
            ppv: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub DebugServerRelease: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IRpcStubBuffer, pv: *mut ::std::os::raw::c_void),
    >,
}
#[test]
fn bindgen_test_layout_IRpcStubBufferVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IRpcStubBufferVtbl>(),
        80usize,
        concat!("Size of: ", stringify!(IRpcStubBufferVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IRpcStubBufferVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IRpcStubBufferVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRpcStubBufferVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcStubBufferVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcStubBufferVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcStubBufferVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcStubBufferVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcStubBufferVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcStubBufferVtbl>())).Connect as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcStubBufferVtbl),
            "::",
            stringify!(Connect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcStubBufferVtbl>())).Disconnect as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcStubBufferVtbl),
            "::",
            stringify!(Disconnect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcStubBufferVtbl>())).Invoke as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcStubBufferVtbl),
            "::",
            stringify!(Invoke)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRpcStubBufferVtbl>())).IsIIDSupported as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcStubBufferVtbl),
            "::",
            stringify!(IsIIDSupported)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcStubBufferVtbl>())).CountRefs as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcStubBufferVtbl),
            "::",
            stringify!(CountRefs)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRpcStubBufferVtbl>())).DebugServerQueryInterface as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcStubBufferVtbl),
            "::",
            stringify!(DebugServerQueryInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRpcStubBufferVtbl>())).DebugServerRelease as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcStubBufferVtbl),
            "::",
            stringify!(DebugServerRelease)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IRpcStubBuffer {
    pub lpVtbl: *mut IRpcStubBufferVtbl,
}
#[test]
fn bindgen_test_layout_IRpcStubBuffer() {
    assert_eq!(
        ::std::mem::size_of::<IRpcStubBuffer>(),
        8usize,
        concat!("Size of: ", stringify!(IRpcStubBuffer))
    );
    assert_eq!(
        ::std::mem::align_of::<IRpcStubBuffer>(),
        8usize,
        concat!("Alignment of ", stringify!(IRpcStubBuffer))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcStubBuffer>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcStubBuffer),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IPSFactoryBuffer: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IPSFactoryBufferVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPSFactoryBuffer,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IPSFactoryBuffer) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IPSFactoryBuffer) -> ULONG>,
    pub CreateProxy: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPSFactoryBuffer,
            pUnkOuter: *mut IUnknown,
            riid: *const IID,
            ppProxy: *mut *mut IRpcProxyBuffer,
            ppv: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub CreateStub: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPSFactoryBuffer,
            riid: *const IID,
            pUnkServer: *mut IUnknown,
            ppStub: *mut *mut IRpcStubBuffer,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IPSFactoryBufferVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IPSFactoryBufferVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IPSFactoryBufferVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IPSFactoryBufferVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IPSFactoryBufferVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IPSFactoryBufferVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IPSFactoryBufferVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPSFactoryBufferVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IPSFactoryBufferVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPSFactoryBufferVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IPSFactoryBufferVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IPSFactoryBufferVtbl>())).CreateProxy as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IPSFactoryBufferVtbl),
            "::",
            stringify!(CreateProxy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPSFactoryBufferVtbl>())).CreateStub as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IPSFactoryBufferVtbl),
            "::",
            stringify!(CreateStub)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IPSFactoryBuffer {
    pub lpVtbl: *mut IPSFactoryBufferVtbl,
}
#[test]
fn bindgen_test_layout_IPSFactoryBuffer() {
    assert_eq!(
        ::std::mem::size_of::<IPSFactoryBuffer>(),
        8usize,
        concat!("Size of: ", stringify!(IPSFactoryBuffer))
    );
    assert_eq!(
        ::std::mem::align_of::<IPSFactoryBuffer>(),
        8usize,
        concat!("Alignment of ", stringify!(IPSFactoryBuffer))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPSFactoryBuffer>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IPSFactoryBuffer),
            "::",
            stringify!(lpVtbl)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct SChannelHookCallInfo {
    pub iid: IID,
    pub cbSize: DWORD,
    pub uCausality: GUID,
    pub dwServerPid: DWORD,
    pub iMethod: DWORD,
    pub pObject: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_SChannelHookCallInfo() {
    assert_eq!(
        ::std::mem::size_of::<SChannelHookCallInfo>(),
        56usize,
        concat!("Size of: ", stringify!(SChannelHookCallInfo))
    );
    assert_eq!(
        ::std::mem::align_of::<SChannelHookCallInfo>(),
        8usize,
        concat!("Alignment of ", stringify!(SChannelHookCallInfo))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SChannelHookCallInfo>())).iid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(SChannelHookCallInfo),
            "::",
            stringify!(iid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SChannelHookCallInfo>())).cbSize as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(SChannelHookCallInfo),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SChannelHookCallInfo>())).uCausality as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(SChannelHookCallInfo),
            "::",
            stringify!(uCausality)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SChannelHookCallInfo>())).dwServerPid as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(SChannelHookCallInfo),
            "::",
            stringify!(dwServerPid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SChannelHookCallInfo>())).iMethod as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(SChannelHookCallInfo),
            "::",
            stringify!(iMethod)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SChannelHookCallInfo>())).pObject as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(SChannelHookCallInfo),
            "::",
            stringify!(pObject)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0022_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0022_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IChannelHook: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IChannelHookVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IChannelHook,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IChannelHook) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IChannelHook) -> ULONG>,
    pub ClientGetSize: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IChannelHook,
            uExtent: *const GUID,
            riid: *const IID,
            pDataSize: *mut ULONG,
        ),
    >,
    pub ClientFillBuffer: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IChannelHook,
            uExtent: *const GUID,
            riid: *const IID,
            pDataSize: *mut ULONG,
            pDataBuffer: *mut ::std::os::raw::c_void,
        ),
    >,
    pub ClientNotify: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IChannelHook,
            uExtent: *const GUID,
            riid: *const IID,
            cbDataSize: ULONG,
            pDataBuffer: *mut ::std::os::raw::c_void,
            lDataRep: DWORD,
            hrFault: HRESULT,
        ),
    >,
    pub ServerNotify: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IChannelHook,
            uExtent: *const GUID,
            riid: *const IID,
            cbDataSize: ULONG,
            pDataBuffer: *mut ::std::os::raw::c_void,
            lDataRep: DWORD,
        ),
    >,
    pub ServerGetSize: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IChannelHook,
            uExtent: *const GUID,
            riid: *const IID,
            hrFault: HRESULT,
            pDataSize: *mut ULONG,
        ),
    >,
    pub ServerFillBuffer: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IChannelHook,
            uExtent: *const GUID,
            riid: *const IID,
            pDataSize: *mut ULONG,
            pDataBuffer: *mut ::std::os::raw::c_void,
            hrFault: HRESULT,
        ),
    >,
}
#[test]
fn bindgen_test_layout_IChannelHookVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IChannelHookVtbl>(),
        72usize,
        concat!("Size of: ", stringify!(IChannelHookVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IChannelHookVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IChannelHookVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IChannelHookVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IChannelHookVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IChannelHookVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IChannelHookVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IChannelHookVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IChannelHookVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IChannelHookVtbl>())).ClientGetSize as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IChannelHookVtbl),
            "::",
            stringify!(ClientGetSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IChannelHookVtbl>())).ClientFillBuffer as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IChannelHookVtbl),
            "::",
            stringify!(ClientFillBuffer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IChannelHookVtbl>())).ClientNotify as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IChannelHookVtbl),
            "::",
            stringify!(ClientNotify)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IChannelHookVtbl>())).ServerNotify as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IChannelHookVtbl),
            "::",
            stringify!(ServerNotify)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IChannelHookVtbl>())).ServerGetSize as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IChannelHookVtbl),
            "::",
            stringify!(ServerGetSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IChannelHookVtbl>())).ServerFillBuffer as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IChannelHookVtbl),
            "::",
            stringify!(ServerFillBuffer)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IChannelHook {
    pub lpVtbl: *mut IChannelHookVtbl,
}
#[test]
fn bindgen_test_layout_IChannelHook() {
    assert_eq!(
        ::std::mem::size_of::<IChannelHook>(),
        8usize,
        concat!("Size of: ", stringify!(IChannelHook))
    );
    assert_eq!(
        ::std::mem::align_of::<IChannelHook>(),
        8usize,
        concat!("Alignment of ", stringify!(IChannelHook))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IChannelHook>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IChannelHook),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0023_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0023_v0_0_s_ifspec: RPC_IF_HANDLE;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagSOLE_AUTHENTICATION_SERVICE {
    pub dwAuthnSvc: DWORD,
    pub dwAuthzSvc: DWORD,
    pub pPrincipalName: *mut OLECHAR,
    pub hr: HRESULT,
}
#[test]
fn bindgen_test_layout_tagSOLE_AUTHENTICATION_SERVICE() {
    assert_eq!(
        ::std::mem::size_of::<tagSOLE_AUTHENTICATION_SERVICE>(),
        24usize,
        concat!("Size of: ", stringify!(tagSOLE_AUTHENTICATION_SERVICE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagSOLE_AUTHENTICATION_SERVICE>(),
        8usize,
        concat!("Alignment of ", stringify!(tagSOLE_AUTHENTICATION_SERVICE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSOLE_AUTHENTICATION_SERVICE>())).dwAuthnSvc as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOLE_AUTHENTICATION_SERVICE),
            "::",
            stringify!(dwAuthnSvc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSOLE_AUTHENTICATION_SERVICE>())).dwAuthzSvc as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOLE_AUTHENTICATION_SERVICE),
            "::",
            stringify!(dwAuthzSvc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSOLE_AUTHENTICATION_SERVICE>())).pPrincipalName as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOLE_AUTHENTICATION_SERVICE),
            "::",
            stringify!(pPrincipalName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSOLE_AUTHENTICATION_SERVICE>())).hr as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOLE_AUTHENTICATION_SERVICE),
            "::",
            stringify!(hr)
        )
    );
}
pub type SOLE_AUTHENTICATION_SERVICE = tagSOLE_AUTHENTICATION_SERVICE;
pub type PSOLE_AUTHENTICATION_SERVICE = *mut SOLE_AUTHENTICATION_SERVICE;
pub const tagEOLE_AUTHENTICATION_CAPABILITIES_EOAC_NONE: tagEOLE_AUTHENTICATION_CAPABILITIES = 0;
pub const tagEOLE_AUTHENTICATION_CAPABILITIES_EOAC_MUTUAL_AUTH:
    tagEOLE_AUTHENTICATION_CAPABILITIES = 1;
pub const tagEOLE_AUTHENTICATION_CAPABILITIES_EOAC_STATIC_CLOAKING:
    tagEOLE_AUTHENTICATION_CAPABILITIES = 32;
pub const tagEOLE_AUTHENTICATION_CAPABILITIES_EOAC_DYNAMIC_CLOAKING:
    tagEOLE_AUTHENTICATION_CAPABILITIES = 64;
pub const tagEOLE_AUTHENTICATION_CAPABILITIES_EOAC_ANY_AUTHORITY:
    tagEOLE_AUTHENTICATION_CAPABILITIES = 128;
pub const tagEOLE_AUTHENTICATION_CAPABILITIES_EOAC_MAKE_FULLSIC:
    tagEOLE_AUTHENTICATION_CAPABILITIES = 256;
pub const tagEOLE_AUTHENTICATION_CAPABILITIES_EOAC_DEFAULT: tagEOLE_AUTHENTICATION_CAPABILITIES =
    2048;
pub const tagEOLE_AUTHENTICATION_CAPABILITIES_EOAC_SECURE_REFS:
    tagEOLE_AUTHENTICATION_CAPABILITIES = 2;
pub const tagEOLE_AUTHENTICATION_CAPABILITIES_EOAC_ACCESS_CONTROL:
    tagEOLE_AUTHENTICATION_CAPABILITIES = 4;
pub const tagEOLE_AUTHENTICATION_CAPABILITIES_EOAC_APPID: tagEOLE_AUTHENTICATION_CAPABILITIES = 8;
pub const tagEOLE_AUTHENTICATION_CAPABILITIES_EOAC_DYNAMIC: tagEOLE_AUTHENTICATION_CAPABILITIES =
    16;
pub const tagEOLE_AUTHENTICATION_CAPABILITIES_EOAC_REQUIRE_FULLSIC:
    tagEOLE_AUTHENTICATION_CAPABILITIES = 512;
pub const tagEOLE_AUTHENTICATION_CAPABILITIES_EOAC_AUTO_IMPERSONATE:
    tagEOLE_AUTHENTICATION_CAPABILITIES = 1024;
pub const tagEOLE_AUTHENTICATION_CAPABILITIES_EOAC_DISABLE_AAA:
    tagEOLE_AUTHENTICATION_CAPABILITIES = 4096;
pub const tagEOLE_AUTHENTICATION_CAPABILITIES_EOAC_NO_CUSTOM_MARSHAL:
    tagEOLE_AUTHENTICATION_CAPABILITIES = 8192;
pub const tagEOLE_AUTHENTICATION_CAPABILITIES_EOAC_RESERVED1: tagEOLE_AUTHENTICATION_CAPABILITIES =
    16384;
pub type tagEOLE_AUTHENTICATION_CAPABILITIES = ::std::os::raw::c_int;
pub use self::tagEOLE_AUTHENTICATION_CAPABILITIES as EOLE_AUTHENTICATION_CAPABILITIES;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagSOLE_AUTHENTICATION_INFO {
    pub dwAuthnSvc: DWORD,
    pub dwAuthzSvc: DWORD,
    pub pAuthInfo: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_tagSOLE_AUTHENTICATION_INFO() {
    assert_eq!(
        ::std::mem::size_of::<tagSOLE_AUTHENTICATION_INFO>(),
        16usize,
        concat!("Size of: ", stringify!(tagSOLE_AUTHENTICATION_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagSOLE_AUTHENTICATION_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(tagSOLE_AUTHENTICATION_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSOLE_AUTHENTICATION_INFO>())).dwAuthnSvc as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOLE_AUTHENTICATION_INFO),
            "::",
            stringify!(dwAuthnSvc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSOLE_AUTHENTICATION_INFO>())).dwAuthzSvc as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOLE_AUTHENTICATION_INFO),
            "::",
            stringify!(dwAuthzSvc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSOLE_AUTHENTICATION_INFO>())).pAuthInfo as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOLE_AUTHENTICATION_INFO),
            "::",
            stringify!(pAuthInfo)
        )
    );
}
pub type SOLE_AUTHENTICATION_INFO = tagSOLE_AUTHENTICATION_INFO;
pub type PSOLE_AUTHENTICATION_INFO = *mut tagSOLE_AUTHENTICATION_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagSOLE_AUTHENTICATION_LIST {
    pub cAuthInfo: DWORD,
    pub aAuthInfo: *mut SOLE_AUTHENTICATION_INFO,
}
#[test]
fn bindgen_test_layout_tagSOLE_AUTHENTICATION_LIST() {
    assert_eq!(
        ::std::mem::size_of::<tagSOLE_AUTHENTICATION_LIST>(),
        16usize,
        concat!("Size of: ", stringify!(tagSOLE_AUTHENTICATION_LIST))
    );
    assert_eq!(
        ::std::mem::align_of::<tagSOLE_AUTHENTICATION_LIST>(),
        8usize,
        concat!("Alignment of ", stringify!(tagSOLE_AUTHENTICATION_LIST))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSOLE_AUTHENTICATION_LIST>())).cAuthInfo as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOLE_AUTHENTICATION_LIST),
            "::",
            stringify!(cAuthInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSOLE_AUTHENTICATION_LIST>())).aAuthInfo as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSOLE_AUTHENTICATION_LIST),
            "::",
            stringify!(aAuthInfo)
        )
    );
}
pub type SOLE_AUTHENTICATION_LIST = tagSOLE_AUTHENTICATION_LIST;
pub type PSOLE_AUTHENTICATION_LIST = *mut tagSOLE_AUTHENTICATION_LIST;
extern "C" {
    pub static IID_IClientSecurity: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IClientSecurityVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IClientSecurity,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IClientSecurity) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IClientSecurity) -> ULONG>,
    pub QueryBlanket: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IClientSecurity,
            pProxy: *mut IUnknown,
            pAuthnSvc: *mut DWORD,
            pAuthzSvc: *mut DWORD,
            pServerPrincName: *mut *mut OLECHAR,
            pAuthnLevel: *mut DWORD,
            pImpLevel: *mut DWORD,
            pAuthInfo: *mut *mut ::std::os::raw::c_void,
            pCapabilites: *mut DWORD,
        ) -> HRESULT,
    >,
    pub SetBlanket: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IClientSecurity,
            pProxy: *mut IUnknown,
            dwAuthnSvc: DWORD,
            dwAuthzSvc: DWORD,
            pServerPrincName: *mut OLECHAR,
            dwAuthnLevel: DWORD,
            dwImpLevel: DWORD,
            pAuthInfo: *mut ::std::os::raw::c_void,
            dwCapabilities: DWORD,
        ) -> HRESULT,
    >,
    pub CopyProxy: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IClientSecurity,
            pProxy: *mut IUnknown,
            ppCopy: *mut *mut IUnknown,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IClientSecurityVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IClientSecurityVtbl>(),
        48usize,
        concat!("Size of: ", stringify!(IClientSecurityVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IClientSecurityVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IClientSecurityVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IClientSecurityVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IClientSecurityVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IClientSecurityVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IClientSecurityVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IClientSecurityVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IClientSecurityVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IClientSecurityVtbl>())).QueryBlanket as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IClientSecurityVtbl),
            "::",
            stringify!(QueryBlanket)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IClientSecurityVtbl>())).SetBlanket as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IClientSecurityVtbl),
            "::",
            stringify!(SetBlanket)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IClientSecurityVtbl>())).CopyProxy as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IClientSecurityVtbl),
            "::",
            stringify!(CopyProxy)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IClientSecurity {
    pub lpVtbl: *mut IClientSecurityVtbl,
}
#[test]
fn bindgen_test_layout_IClientSecurity() {
    assert_eq!(
        ::std::mem::size_of::<IClientSecurity>(),
        8usize,
        concat!("Size of: ", stringify!(IClientSecurity))
    );
    assert_eq!(
        ::std::mem::align_of::<IClientSecurity>(),
        8usize,
        concat!("Alignment of ", stringify!(IClientSecurity))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IClientSecurity>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IClientSecurity),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0024_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0024_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IServerSecurity: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IServerSecurityVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IServerSecurity,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IServerSecurity) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IServerSecurity) -> ULONG>,
    pub QueryBlanket: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IServerSecurity,
            pAuthnSvc: *mut DWORD,
            pAuthzSvc: *mut DWORD,
            pServerPrincName: *mut *mut OLECHAR,
            pAuthnLevel: *mut DWORD,
            pImpLevel: *mut DWORD,
            pPrivs: *mut *mut ::std::os::raw::c_void,
            pCapabilities: *mut DWORD,
        ) -> HRESULT,
    >,
    pub ImpersonateClient:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IServerSecurity) -> HRESULT>,
    pub RevertToSelf:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IServerSecurity) -> HRESULT>,
    pub IsImpersonating:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IServerSecurity) -> BOOL>,
}
#[test]
fn bindgen_test_layout_IServerSecurityVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IServerSecurityVtbl>(),
        56usize,
        concat!("Size of: ", stringify!(IServerSecurityVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IServerSecurityVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IServerSecurityVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IServerSecurityVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IServerSecurityVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IServerSecurityVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IServerSecurityVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IServerSecurityVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IServerSecurityVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IServerSecurityVtbl>())).QueryBlanket as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IServerSecurityVtbl),
            "::",
            stringify!(QueryBlanket)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IServerSecurityVtbl>())).ImpersonateClient as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IServerSecurityVtbl),
            "::",
            stringify!(ImpersonateClient)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IServerSecurityVtbl>())).RevertToSelf as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IServerSecurityVtbl),
            "::",
            stringify!(RevertToSelf)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IServerSecurityVtbl>())).IsImpersonating as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IServerSecurityVtbl),
            "::",
            stringify!(IsImpersonating)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IServerSecurity {
    pub lpVtbl: *mut IServerSecurityVtbl,
}
#[test]
fn bindgen_test_layout_IServerSecurity() {
    assert_eq!(
        ::std::mem::size_of::<IServerSecurity>(),
        8usize,
        concat!("Size of: ", stringify!(IServerSecurity))
    );
    assert_eq!(
        ::std::mem::align_of::<IServerSecurity>(),
        8usize,
        concat!("Alignment of ", stringify!(IServerSecurity))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IServerSecurity>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IServerSecurity),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub const tagRPCOPT_PROPERTIES_COMBND_RPCTIMEOUT: tagRPCOPT_PROPERTIES = 1;
pub const tagRPCOPT_PROPERTIES_COMBND_SERVER_LOCALITY: tagRPCOPT_PROPERTIES = 2;
pub const tagRPCOPT_PROPERTIES_COMBND_RESERVED1: tagRPCOPT_PROPERTIES = 4;
pub const tagRPCOPT_PROPERTIES_COMBND_RESERVED2: tagRPCOPT_PROPERTIES = 5;
pub const tagRPCOPT_PROPERTIES_COMBND_RESERVED3: tagRPCOPT_PROPERTIES = 8;
pub const tagRPCOPT_PROPERTIES_COMBND_RESERVED4: tagRPCOPT_PROPERTIES = 16;
pub type tagRPCOPT_PROPERTIES = ::std::os::raw::c_int;
pub use self::tagRPCOPT_PROPERTIES as RPCOPT_PROPERTIES;
pub const tagRPCOPT_SERVER_LOCALITY_VALUES_SERVER_LOCALITY_PROCESS_LOCAL:
    tagRPCOPT_SERVER_LOCALITY_VALUES = 0;
pub const tagRPCOPT_SERVER_LOCALITY_VALUES_SERVER_LOCALITY_MACHINE_LOCAL:
    tagRPCOPT_SERVER_LOCALITY_VALUES = 1;
pub const tagRPCOPT_SERVER_LOCALITY_VALUES_SERVER_LOCALITY_REMOTE:
    tagRPCOPT_SERVER_LOCALITY_VALUES = 2;
pub type tagRPCOPT_SERVER_LOCALITY_VALUES = ::std::os::raw::c_int;
pub use self::tagRPCOPT_SERVER_LOCALITY_VALUES as RPCOPT_SERVER_LOCALITY_VALUES;
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0025_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0025_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IRpcOptions: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IRpcOptionsVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRpcOptions,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IRpcOptions) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IRpcOptions) -> ULONG>,
    pub Set: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRpcOptions,
            pPrx: *mut IUnknown,
            dwProperty: RPCOPT_PROPERTIES,
            dwValue: ULONG_PTR,
        ) -> HRESULT,
    >,
    pub Query: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRpcOptions,
            pPrx: *mut IUnknown,
            dwProperty: RPCOPT_PROPERTIES,
            pdwValue: *mut ULONG_PTR,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IRpcOptionsVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IRpcOptionsVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IRpcOptionsVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IRpcOptionsVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IRpcOptionsVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcOptionsVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcOptionsVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcOptionsVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcOptionsVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcOptionsVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcOptionsVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcOptionsVtbl>())).Set as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcOptionsVtbl),
            "::",
            stringify!(Set)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcOptionsVtbl>())).Query as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcOptionsVtbl),
            "::",
            stringify!(Query)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IRpcOptions {
    pub lpVtbl: *mut IRpcOptionsVtbl,
}
#[test]
fn bindgen_test_layout_IRpcOptions() {
    assert_eq!(
        ::std::mem::size_of::<IRpcOptions>(),
        8usize,
        concat!("Size of: ", stringify!(IRpcOptions))
    );
    assert_eq!(
        ::std::mem::align_of::<IRpcOptions>(),
        8usize,
        concat!("Alignment of ", stringify!(IRpcOptions))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcOptions>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcOptions),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub const tagGLOBALOPT_PROPERTIES_COMGLB_EXCEPTION_HANDLING: tagGLOBALOPT_PROPERTIES = 1;
pub const tagGLOBALOPT_PROPERTIES_COMGLB_APPID: tagGLOBALOPT_PROPERTIES = 2;
pub const tagGLOBALOPT_PROPERTIES_COMGLB_RPC_THREADPOOL_SETTING: tagGLOBALOPT_PROPERTIES = 3;
pub const tagGLOBALOPT_PROPERTIES_COMGLB_RO_SETTINGS: tagGLOBALOPT_PROPERTIES = 4;
pub const tagGLOBALOPT_PROPERTIES_COMGLB_UNMARSHALING_POLICY: tagGLOBALOPT_PROPERTIES = 5;
pub const tagGLOBALOPT_PROPERTIES_COMGLB_PROPERTIES_RESERVED1: tagGLOBALOPT_PROPERTIES = 6;
pub const tagGLOBALOPT_PROPERTIES_COMGLB_PROPERTIES_RESERVED2: tagGLOBALOPT_PROPERTIES = 7;
pub const tagGLOBALOPT_PROPERTIES_COMGLB_PROPERTIES_RESERVED3: tagGLOBALOPT_PROPERTIES = 8;
pub type tagGLOBALOPT_PROPERTIES = ::std::os::raw::c_int;
pub use self::tagGLOBALOPT_PROPERTIES as GLOBALOPT_PROPERTIES;
pub const tagGLOBALOPT_EH_VALUES_COMGLB_EXCEPTION_HANDLE: tagGLOBALOPT_EH_VALUES = 0;
pub const tagGLOBALOPT_EH_VALUES_COMGLB_EXCEPTION_DONOT_HANDLE_FATAL: tagGLOBALOPT_EH_VALUES = 1;
pub const tagGLOBALOPT_EH_VALUES_COMGLB_EXCEPTION_DONOT_HANDLE: tagGLOBALOPT_EH_VALUES = 1;
pub const tagGLOBALOPT_EH_VALUES_COMGLB_EXCEPTION_DONOT_HANDLE_ANY: tagGLOBALOPT_EH_VALUES = 2;
pub type tagGLOBALOPT_EH_VALUES = ::std::os::raw::c_int;
pub use self::tagGLOBALOPT_EH_VALUES as GLOBALOPT_EH_VALUES;
pub const tagGLOBALOPT_RPCTP_VALUES_COMGLB_RPC_THREADPOOL_SETTING_DEFAULT_POOL:
    tagGLOBALOPT_RPCTP_VALUES = 0;
pub const tagGLOBALOPT_RPCTP_VALUES_COMGLB_RPC_THREADPOOL_SETTING_PRIVATE_POOL:
    tagGLOBALOPT_RPCTP_VALUES = 1;
pub type tagGLOBALOPT_RPCTP_VALUES = ::std::os::raw::c_int;
pub use self::tagGLOBALOPT_RPCTP_VALUES as GLOBALOPT_RPCTP_VALUES;
pub const tagGLOBALOPT_RO_FLAGS_COMGLB_STA_MODALLOOP_REMOVE_TOUCH_MESSAGES: tagGLOBALOPT_RO_FLAGS =
    1;
pub const tagGLOBALOPT_RO_FLAGS_COMGLB_STA_MODALLOOP_SHARED_QUEUE_REMOVE_INPUT_MESSAGES:
    tagGLOBALOPT_RO_FLAGS = 2;
pub const tagGLOBALOPT_RO_FLAGS_COMGLB_STA_MODALLOOP_SHARED_QUEUE_DONOT_REMOVE_INPUT_MESSAGES:
    tagGLOBALOPT_RO_FLAGS = 4;
pub const tagGLOBALOPT_RO_FLAGS_COMGLB_FAST_RUNDOWN: tagGLOBALOPT_RO_FLAGS = 8;
pub const tagGLOBALOPT_RO_FLAGS_COMGLB_RESERVED1: tagGLOBALOPT_RO_FLAGS = 16;
pub const tagGLOBALOPT_RO_FLAGS_COMGLB_RESERVED2: tagGLOBALOPT_RO_FLAGS = 32;
pub const tagGLOBALOPT_RO_FLAGS_COMGLB_RESERVED3: tagGLOBALOPT_RO_FLAGS = 64;
pub const tagGLOBALOPT_RO_FLAGS_COMGLB_STA_MODALLOOP_SHARED_QUEUE_REORDER_POINTER_MESSAGES:
    tagGLOBALOPT_RO_FLAGS = 128;
pub const tagGLOBALOPT_RO_FLAGS_COMGLB_RESERVED4: tagGLOBALOPT_RO_FLAGS = 256;
pub const tagGLOBALOPT_RO_FLAGS_COMGLB_RESERVED5: tagGLOBALOPT_RO_FLAGS = 512;
pub const tagGLOBALOPT_RO_FLAGS_COMGLB_RESERVED6: tagGLOBALOPT_RO_FLAGS = 1024;
pub type tagGLOBALOPT_RO_FLAGS = ::std::os::raw::c_int;
pub use self::tagGLOBALOPT_RO_FLAGS as GLOBALOPT_RO_FLAGS;
pub const tagGLOBALOPT_UNMARSHALING_POLICY_VALUES_COMGLB_UNMARSHALING_POLICY_NORMAL:
    tagGLOBALOPT_UNMARSHALING_POLICY_VALUES = 0;
pub const tagGLOBALOPT_UNMARSHALING_POLICY_VALUES_COMGLB_UNMARSHALING_POLICY_STRONG:
    tagGLOBALOPT_UNMARSHALING_POLICY_VALUES = 1;
pub const tagGLOBALOPT_UNMARSHALING_POLICY_VALUES_COMGLB_UNMARSHALING_POLICY_HYBRID:
    tagGLOBALOPT_UNMARSHALING_POLICY_VALUES = 2;
pub type tagGLOBALOPT_UNMARSHALING_POLICY_VALUES = ::std::os::raw::c_int;
pub use self::tagGLOBALOPT_UNMARSHALING_POLICY_VALUES as GLOBALOPT_UNMARSHALING_POLICY_VALUES;
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0026_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0026_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IGlobalOptions: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IGlobalOptionsVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IGlobalOptions,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IGlobalOptions) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IGlobalOptions) -> ULONG>,
    pub Set: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IGlobalOptions,
            dwProperty: GLOBALOPT_PROPERTIES,
            dwValue: ULONG_PTR,
        ) -> HRESULT,
    >,
    pub Query: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IGlobalOptions,
            dwProperty: GLOBALOPT_PROPERTIES,
            pdwValue: *mut ULONG_PTR,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IGlobalOptionsVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IGlobalOptionsVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IGlobalOptionsVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IGlobalOptionsVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IGlobalOptionsVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IGlobalOptionsVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IGlobalOptionsVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IGlobalOptionsVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IGlobalOptionsVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IGlobalOptionsVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IGlobalOptionsVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IGlobalOptionsVtbl>())).Set as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IGlobalOptionsVtbl),
            "::",
            stringify!(Set)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IGlobalOptionsVtbl>())).Query as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IGlobalOptionsVtbl),
            "::",
            stringify!(Query)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IGlobalOptions {
    pub lpVtbl: *mut IGlobalOptionsVtbl,
}
#[test]
fn bindgen_test_layout_IGlobalOptions() {
    assert_eq!(
        ::std::mem::size_of::<IGlobalOptions>(),
        8usize,
        concat!("Size of: ", stringify!(IGlobalOptions))
    );
    assert_eq!(
        ::std::mem::align_of::<IGlobalOptions>(),
        8usize,
        concat!("Alignment of ", stringify!(IGlobalOptions))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IGlobalOptions>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IGlobalOptions),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0027_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0027_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPSURROGATE = *mut ISurrogate;
extern "C" {
    pub static IID_ISurrogate: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ISurrogateVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ISurrogate,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut ISurrogate) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut ISurrogate) -> ULONG>,
    pub LoadDllServer: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ISurrogate, Clsid: *const IID) -> HRESULT,
    >,
    pub FreeSurrogate:
        ::std::option::Option<unsafe extern "C" fn(This: *mut ISurrogate) -> HRESULT>,
}
#[test]
fn bindgen_test_layout_ISurrogateVtbl() {
    assert_eq!(
        ::std::mem::size_of::<ISurrogateVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(ISurrogateVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<ISurrogateVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(ISurrogateVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISurrogateVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ISurrogateVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISurrogateVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ISurrogateVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISurrogateVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ISurrogateVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISurrogateVtbl>())).LoadDllServer as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ISurrogateVtbl),
            "::",
            stringify!(LoadDllServer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISurrogateVtbl>())).FreeSurrogate as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ISurrogateVtbl),
            "::",
            stringify!(FreeSurrogate)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ISurrogate {
    pub lpVtbl: *mut ISurrogateVtbl,
}
#[test]
fn bindgen_test_layout_ISurrogate() {
    assert_eq!(
        ::std::mem::size_of::<ISurrogate>(),
        8usize,
        concat!("Size of: ", stringify!(ISurrogate))
    );
    assert_eq!(
        ::std::mem::align_of::<ISurrogate>(),
        8usize,
        concat!("Alignment of ", stringify!(ISurrogate))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISurrogate>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ISurrogate),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPGLOBALINTERFACETABLE = *mut IGlobalInterfaceTable;
extern "C" {
    pub static IID_IGlobalInterfaceTable: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IGlobalInterfaceTableVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IGlobalInterfaceTable,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IGlobalInterfaceTable) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IGlobalInterfaceTable) -> ULONG>,
    pub RegisterInterfaceInGlobal: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IGlobalInterfaceTable,
            pUnk: *mut IUnknown,
            riid: *const IID,
            pdwCookie: *mut DWORD,
        ) -> HRESULT,
    >,
    pub RevokeInterfaceFromGlobal: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IGlobalInterfaceTable, dwCookie: DWORD) -> HRESULT,
    >,
    pub GetInterfaceFromGlobal: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IGlobalInterfaceTable,
            dwCookie: DWORD,
            riid: *const IID,
            ppv: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IGlobalInterfaceTableVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IGlobalInterfaceTableVtbl>(),
        48usize,
        concat!("Size of: ", stringify!(IGlobalInterfaceTableVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IGlobalInterfaceTableVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IGlobalInterfaceTableVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IGlobalInterfaceTableVtbl>())).QueryInterface as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IGlobalInterfaceTableVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IGlobalInterfaceTableVtbl>())).AddRef as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IGlobalInterfaceTableVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IGlobalInterfaceTableVtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IGlobalInterfaceTableVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IGlobalInterfaceTableVtbl>())).RegisterInterfaceInGlobal
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IGlobalInterfaceTableVtbl),
            "::",
            stringify!(RegisterInterfaceInGlobal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IGlobalInterfaceTableVtbl>())).RevokeInterfaceFromGlobal
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IGlobalInterfaceTableVtbl),
            "::",
            stringify!(RevokeInterfaceFromGlobal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IGlobalInterfaceTableVtbl>())).GetInterfaceFromGlobal as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IGlobalInterfaceTableVtbl),
            "::",
            stringify!(GetInterfaceFromGlobal)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IGlobalInterfaceTable {
    pub lpVtbl: *mut IGlobalInterfaceTableVtbl,
}
#[test]
fn bindgen_test_layout_IGlobalInterfaceTable() {
    assert_eq!(
        ::std::mem::size_of::<IGlobalInterfaceTable>(),
        8usize,
        concat!("Size of: ", stringify!(IGlobalInterfaceTable))
    );
    assert_eq!(
        ::std::mem::align_of::<IGlobalInterfaceTable>(),
        8usize,
        concat!("Alignment of ", stringify!(IGlobalInterfaceTable))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IGlobalInterfaceTable>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IGlobalInterfaceTable),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0029_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0029_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_ISynchronize: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ISynchronizeVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ISynchronize,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut ISynchronize) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut ISynchronize) -> ULONG>,
    pub Wait: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ISynchronize,
            dwFlags: DWORD,
            dwMilliseconds: DWORD,
        ) -> HRESULT,
    >,
    pub Signal: ::std::option::Option<unsafe extern "C" fn(This: *mut ISynchronize) -> HRESULT>,
    pub Reset: ::std::option::Option<unsafe extern "C" fn(This: *mut ISynchronize) -> HRESULT>,
}
#[test]
fn bindgen_test_layout_ISynchronizeVtbl() {
    assert_eq!(
        ::std::mem::size_of::<ISynchronizeVtbl>(),
        48usize,
        concat!("Size of: ", stringify!(ISynchronizeVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<ISynchronizeVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(ISynchronizeVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISynchronizeVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ISynchronizeVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISynchronizeVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ISynchronizeVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISynchronizeVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ISynchronizeVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISynchronizeVtbl>())).Wait as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ISynchronizeVtbl),
            "::",
            stringify!(Wait)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISynchronizeVtbl>())).Signal as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ISynchronizeVtbl),
            "::",
            stringify!(Signal)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISynchronizeVtbl>())).Reset as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(ISynchronizeVtbl),
            "::",
            stringify!(Reset)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ISynchronize {
    pub lpVtbl: *mut ISynchronizeVtbl,
}
#[test]
fn bindgen_test_layout_ISynchronize() {
    assert_eq!(
        ::std::mem::size_of::<ISynchronize>(),
        8usize,
        concat!("Size of: ", stringify!(ISynchronize))
    );
    assert_eq!(
        ::std::mem::align_of::<ISynchronize>(),
        8usize,
        concat!("Alignment of ", stringify!(ISynchronize))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISynchronize>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ISynchronize),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_ISynchronizeHandle: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ISynchronizeHandleVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ISynchronizeHandle,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut ISynchronizeHandle) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut ISynchronizeHandle) -> ULONG>,
    pub GetHandle: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ISynchronizeHandle, ph: *mut HANDLE) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_ISynchronizeHandleVtbl() {
    assert_eq!(
        ::std::mem::size_of::<ISynchronizeHandleVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(ISynchronizeHandleVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<ISynchronizeHandleVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(ISynchronizeHandleVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ISynchronizeHandleVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ISynchronizeHandleVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISynchronizeHandleVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ISynchronizeHandleVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISynchronizeHandleVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ISynchronizeHandleVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ISynchronizeHandleVtbl>())).GetHandle as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ISynchronizeHandleVtbl),
            "::",
            stringify!(GetHandle)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ISynchronizeHandle {
    pub lpVtbl: *mut ISynchronizeHandleVtbl,
}
#[test]
fn bindgen_test_layout_ISynchronizeHandle() {
    assert_eq!(
        ::std::mem::size_of::<ISynchronizeHandle>(),
        8usize,
        concat!("Size of: ", stringify!(ISynchronizeHandle))
    );
    assert_eq!(
        ::std::mem::align_of::<ISynchronizeHandle>(),
        8usize,
        concat!("Alignment of ", stringify!(ISynchronizeHandle))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISynchronizeHandle>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ISynchronizeHandle),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_ISynchronizeEvent: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ISynchronizeEventVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ISynchronizeEvent,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut ISynchronizeEvent) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut ISynchronizeEvent) -> ULONG>,
    pub GetHandle: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ISynchronizeEvent, ph: *mut HANDLE) -> HRESULT,
    >,
    pub SetEventHandle: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ISynchronizeEvent, ph: *mut HANDLE) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_ISynchronizeEventVtbl() {
    assert_eq!(
        ::std::mem::size_of::<ISynchronizeEventVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(ISynchronizeEventVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<ISynchronizeEventVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(ISynchronizeEventVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ISynchronizeEventVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ISynchronizeEventVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISynchronizeEventVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ISynchronizeEventVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISynchronizeEventVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ISynchronizeEventVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISynchronizeEventVtbl>())).GetHandle as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ISynchronizeEventVtbl),
            "::",
            stringify!(GetHandle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ISynchronizeEventVtbl>())).SetEventHandle as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ISynchronizeEventVtbl),
            "::",
            stringify!(SetEventHandle)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ISynchronizeEvent {
    pub lpVtbl: *mut ISynchronizeEventVtbl,
}
#[test]
fn bindgen_test_layout_ISynchronizeEvent() {
    assert_eq!(
        ::std::mem::size_of::<ISynchronizeEvent>(),
        8usize,
        concat!("Size of: ", stringify!(ISynchronizeEvent))
    );
    assert_eq!(
        ::std::mem::align_of::<ISynchronizeEvent>(),
        8usize,
        concat!("Alignment of ", stringify!(ISynchronizeEvent))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISynchronizeEvent>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ISynchronizeEvent),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_ISynchronizeContainer: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ISynchronizeContainerVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ISynchronizeContainer,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut ISynchronizeContainer) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut ISynchronizeContainer) -> ULONG>,
    pub AddSynchronize: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ISynchronizeContainer, pSync: *mut ISynchronize) -> HRESULT,
    >,
    pub WaitMultiple: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ISynchronizeContainer,
            dwFlags: DWORD,
            dwTimeOut: DWORD,
            ppSync: *mut *mut ISynchronize,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_ISynchronizeContainerVtbl() {
    assert_eq!(
        ::std::mem::size_of::<ISynchronizeContainerVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(ISynchronizeContainerVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<ISynchronizeContainerVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(ISynchronizeContainerVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ISynchronizeContainerVtbl>())).QueryInterface as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ISynchronizeContainerVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ISynchronizeContainerVtbl>())).AddRef as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ISynchronizeContainerVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ISynchronizeContainerVtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ISynchronizeContainerVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ISynchronizeContainerVtbl>())).AddSynchronize as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ISynchronizeContainerVtbl),
            "::",
            stringify!(AddSynchronize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ISynchronizeContainerVtbl>())).WaitMultiple as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ISynchronizeContainerVtbl),
            "::",
            stringify!(WaitMultiple)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ISynchronizeContainer {
    pub lpVtbl: *mut ISynchronizeContainerVtbl,
}
#[test]
fn bindgen_test_layout_ISynchronizeContainer() {
    assert_eq!(
        ::std::mem::size_of::<ISynchronizeContainer>(),
        8usize,
        concat!("Size of: ", stringify!(ISynchronizeContainer))
    );
    assert_eq!(
        ::std::mem::align_of::<ISynchronizeContainer>(),
        8usize,
        concat!("Alignment of ", stringify!(ISynchronizeContainer))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISynchronizeContainer>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ISynchronizeContainer),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_ISynchronizeMutex: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ISynchronizeMutexVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ISynchronizeMutex,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut ISynchronizeMutex) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut ISynchronizeMutex) -> ULONG>,
    pub Wait: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ISynchronizeMutex,
            dwFlags: DWORD,
            dwMilliseconds: DWORD,
        ) -> HRESULT,
    >,
    pub Signal:
        ::std::option::Option<unsafe extern "C" fn(This: *mut ISynchronizeMutex) -> HRESULT>,
    pub Reset: ::std::option::Option<unsafe extern "C" fn(This: *mut ISynchronizeMutex) -> HRESULT>,
    pub ReleaseMutex:
        ::std::option::Option<unsafe extern "C" fn(This: *mut ISynchronizeMutex) -> HRESULT>,
}
#[test]
fn bindgen_test_layout_ISynchronizeMutexVtbl() {
    assert_eq!(
        ::std::mem::size_of::<ISynchronizeMutexVtbl>(),
        56usize,
        concat!("Size of: ", stringify!(ISynchronizeMutexVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<ISynchronizeMutexVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(ISynchronizeMutexVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ISynchronizeMutexVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ISynchronizeMutexVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISynchronizeMutexVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ISynchronizeMutexVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISynchronizeMutexVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ISynchronizeMutexVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISynchronizeMutexVtbl>())).Wait as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ISynchronizeMutexVtbl),
            "::",
            stringify!(Wait)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISynchronizeMutexVtbl>())).Signal as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ISynchronizeMutexVtbl),
            "::",
            stringify!(Signal)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISynchronizeMutexVtbl>())).Reset as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(ISynchronizeMutexVtbl),
            "::",
            stringify!(Reset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ISynchronizeMutexVtbl>())).ReleaseMutex as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(ISynchronizeMutexVtbl),
            "::",
            stringify!(ReleaseMutex)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ISynchronizeMutex {
    pub lpVtbl: *mut ISynchronizeMutexVtbl,
}
#[test]
fn bindgen_test_layout_ISynchronizeMutex() {
    assert_eq!(
        ::std::mem::size_of::<ISynchronizeMutex>(),
        8usize,
        concat!("Size of: ", stringify!(ISynchronizeMutex))
    );
    assert_eq!(
        ::std::mem::align_of::<ISynchronizeMutex>(),
        8usize,
        concat!("Alignment of ", stringify!(ISynchronizeMutex))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISynchronizeMutex>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ISynchronizeMutex),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPCANCELMETHODCALLS = *mut ICancelMethodCalls;
extern "C" {
    pub static IID_ICancelMethodCalls: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ICancelMethodCallsVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICancelMethodCalls,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut ICancelMethodCalls) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut ICancelMethodCalls) -> ULONG>,
    pub Cancel: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICancelMethodCalls, ulSeconds: ULONG) -> HRESULT,
    >,
    pub TestCancel:
        ::std::option::Option<unsafe extern "C" fn(This: *mut ICancelMethodCalls) -> HRESULT>,
}
#[test]
fn bindgen_test_layout_ICancelMethodCallsVtbl() {
    assert_eq!(
        ::std::mem::size_of::<ICancelMethodCallsVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(ICancelMethodCallsVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<ICancelMethodCallsVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(ICancelMethodCallsVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICancelMethodCallsVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ICancelMethodCallsVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICancelMethodCallsVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ICancelMethodCallsVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICancelMethodCallsVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ICancelMethodCallsVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICancelMethodCallsVtbl>())).Cancel as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ICancelMethodCallsVtbl),
            "::",
            stringify!(Cancel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICancelMethodCallsVtbl>())).TestCancel as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ICancelMethodCallsVtbl),
            "::",
            stringify!(TestCancel)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ICancelMethodCalls {
    pub lpVtbl: *mut ICancelMethodCallsVtbl,
}
#[test]
fn bindgen_test_layout_ICancelMethodCalls() {
    assert_eq!(
        ::std::mem::size_of::<ICancelMethodCalls>(),
        8usize,
        concat!("Size of: ", stringify!(ICancelMethodCalls))
    );
    assert_eq!(
        ::std::mem::align_of::<ICancelMethodCalls>(),
        8usize,
        concat!("Alignment of ", stringify!(ICancelMethodCalls))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICancelMethodCalls>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ICancelMethodCalls),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub const tagDCOM_CALL_STATE_DCOM_NONE: tagDCOM_CALL_STATE = 0;
pub const tagDCOM_CALL_STATE_DCOM_CALL_COMPLETE: tagDCOM_CALL_STATE = 1;
pub const tagDCOM_CALL_STATE_DCOM_CALL_CANCELED: tagDCOM_CALL_STATE = 2;
pub type tagDCOM_CALL_STATE = ::std::os::raw::c_int;
pub use self::tagDCOM_CALL_STATE as DCOM_CALL_STATE;
extern "C" {
    pub static IID_IAsyncManager: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IAsyncManagerVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IAsyncManager,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IAsyncManager) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IAsyncManager) -> ULONG>,
    pub CompleteCall: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IAsyncManager, Result: HRESULT) -> HRESULT,
    >,
    pub GetCallContext: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IAsyncManager,
            riid: *const IID,
            pInterface: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub GetState: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IAsyncManager, pulStateFlags: *mut ULONG) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IAsyncManagerVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IAsyncManagerVtbl>(),
        48usize,
        concat!("Size of: ", stringify!(IAsyncManagerVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IAsyncManagerVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IAsyncManagerVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IAsyncManagerVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IAsyncManagerVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAsyncManagerVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IAsyncManagerVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAsyncManagerVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IAsyncManagerVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAsyncManagerVtbl>())).CompleteCall as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IAsyncManagerVtbl),
            "::",
            stringify!(CompleteCall)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IAsyncManagerVtbl>())).GetCallContext as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IAsyncManagerVtbl),
            "::",
            stringify!(GetCallContext)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAsyncManagerVtbl>())).GetState as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IAsyncManagerVtbl),
            "::",
            stringify!(GetState)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IAsyncManager {
    pub lpVtbl: *mut IAsyncManagerVtbl,
}
#[test]
fn bindgen_test_layout_IAsyncManager() {
    assert_eq!(
        ::std::mem::size_of::<IAsyncManager>(),
        8usize,
        concat!("Size of: ", stringify!(IAsyncManager))
    );
    assert_eq!(
        ::std::mem::align_of::<IAsyncManager>(),
        8usize,
        concat!("Alignment of ", stringify!(IAsyncManager))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAsyncManager>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IAsyncManager),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_ICallFactory: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ICallFactoryVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICallFactory,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut ICallFactory) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut ICallFactory) -> ULONG>,
    pub CreateCall: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICallFactory,
            riid: *const IID,
            pCtrlUnk: *mut IUnknown,
            riid2: *const IID,
            ppv: *mut *mut IUnknown,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_ICallFactoryVtbl() {
    assert_eq!(
        ::std::mem::size_of::<ICallFactoryVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(ICallFactoryVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<ICallFactoryVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(ICallFactoryVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICallFactoryVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ICallFactoryVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICallFactoryVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ICallFactoryVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICallFactoryVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ICallFactoryVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICallFactoryVtbl>())).CreateCall as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ICallFactoryVtbl),
            "::",
            stringify!(CreateCall)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ICallFactory {
    pub lpVtbl: *mut ICallFactoryVtbl,
}
#[test]
fn bindgen_test_layout_ICallFactory() {
    assert_eq!(
        ::std::mem::size_of::<ICallFactory>(),
        8usize,
        concat!("Size of: ", stringify!(ICallFactory))
    );
    assert_eq!(
        ::std::mem::align_of::<ICallFactory>(),
        8usize,
        concat!("Alignment of ", stringify!(ICallFactory))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICallFactory>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ICallFactory),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IRpcHelper: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IRpcHelperVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRpcHelper,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IRpcHelper) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IRpcHelper) -> ULONG>,
    pub GetDCOMProtocolVersion: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IRpcHelper, pComVersion: *mut DWORD) -> HRESULT,
    >,
    pub GetIIDFromOBJREF: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRpcHelper,
            pObjRef: *mut ::std::os::raw::c_void,
            piid: *mut *mut IID,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IRpcHelperVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IRpcHelperVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IRpcHelperVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IRpcHelperVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IRpcHelperVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcHelperVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcHelperVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcHelperVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcHelperVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcHelperVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcHelperVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRpcHelperVtbl>())).GetDCOMProtocolVersion as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcHelperVtbl),
            "::",
            stringify!(GetDCOMProtocolVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcHelperVtbl>())).GetIIDFromOBJREF as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcHelperVtbl),
            "::",
            stringify!(GetIIDFromOBJREF)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IRpcHelper {
    pub lpVtbl: *mut IRpcHelperVtbl,
}
#[test]
fn bindgen_test_layout_IRpcHelper() {
    assert_eq!(
        ::std::mem::size_of::<IRpcHelper>(),
        8usize,
        concat!("Size of: ", stringify!(IRpcHelper))
    );
    assert_eq!(
        ::std::mem::align_of::<IRpcHelper>(),
        8usize,
        concat!("Alignment of ", stringify!(IRpcHelper))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRpcHelper>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IRpcHelper),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IReleaseMarshalBuffers: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IReleaseMarshalBuffersVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IReleaseMarshalBuffers,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IReleaseMarshalBuffers) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IReleaseMarshalBuffers) -> ULONG>,
    pub ReleaseMarshalBuffer: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IReleaseMarshalBuffers,
            pMsg: *mut RPCOLEMESSAGE,
            dwFlags: DWORD,
            pChnl: *mut IUnknown,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IReleaseMarshalBuffersVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IReleaseMarshalBuffersVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IReleaseMarshalBuffersVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IReleaseMarshalBuffersVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IReleaseMarshalBuffersVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IReleaseMarshalBuffersVtbl>())).QueryInterface as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IReleaseMarshalBuffersVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IReleaseMarshalBuffersVtbl>())).AddRef as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IReleaseMarshalBuffersVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IReleaseMarshalBuffersVtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IReleaseMarshalBuffersVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IReleaseMarshalBuffersVtbl>())).ReleaseMarshalBuffer as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IReleaseMarshalBuffersVtbl),
            "::",
            stringify!(ReleaseMarshalBuffer)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IReleaseMarshalBuffers {
    pub lpVtbl: *mut IReleaseMarshalBuffersVtbl,
}
#[test]
fn bindgen_test_layout_IReleaseMarshalBuffers() {
    assert_eq!(
        ::std::mem::size_of::<IReleaseMarshalBuffers>(),
        8usize,
        concat!("Size of: ", stringify!(IReleaseMarshalBuffers))
    );
    assert_eq!(
        ::std::mem::align_of::<IReleaseMarshalBuffers>(),
        8usize,
        concat!("Alignment of ", stringify!(IReleaseMarshalBuffers))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IReleaseMarshalBuffers>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IReleaseMarshalBuffers),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IWaitMultiple: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IWaitMultipleVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IWaitMultiple,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IWaitMultiple) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IWaitMultiple) -> ULONG>,
    pub WaitMultiple: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IWaitMultiple,
            timeout: DWORD,
            pSync: *mut *mut ISynchronize,
        ) -> HRESULT,
    >,
    pub AddSynchronize: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IWaitMultiple, pSync: *mut ISynchronize) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IWaitMultipleVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IWaitMultipleVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IWaitMultipleVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IWaitMultipleVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IWaitMultipleVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IWaitMultipleVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IWaitMultipleVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IWaitMultipleVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IWaitMultipleVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IWaitMultipleVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IWaitMultipleVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IWaitMultipleVtbl>())).WaitMultiple as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IWaitMultipleVtbl),
            "::",
            stringify!(WaitMultiple)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IWaitMultipleVtbl>())).AddSynchronize as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IWaitMultipleVtbl),
            "::",
            stringify!(AddSynchronize)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IWaitMultiple {
    pub lpVtbl: *mut IWaitMultipleVtbl,
}
#[test]
fn bindgen_test_layout_IWaitMultiple() {
    assert_eq!(
        ::std::mem::size_of::<IWaitMultiple>(),
        8usize,
        concat!("Size of: ", stringify!(IWaitMultiple))
    );
    assert_eq!(
        ::std::mem::align_of::<IWaitMultiple>(),
        8usize,
        concat!("Alignment of ", stringify!(IWaitMultiple))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IWaitMultiple>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IWaitMultiple),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPADDRTRACKINGCONTROL = *mut IAddrTrackingControl;
extern "C" {
    pub static IID_IAddrTrackingControl: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IAddrTrackingControlVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IAddrTrackingControl,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IAddrTrackingControl) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IAddrTrackingControl) -> ULONG>,
    pub EnableCOMDynamicAddrTracking:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IAddrTrackingControl) -> HRESULT>,
    pub DisableCOMDynamicAddrTracking:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IAddrTrackingControl) -> HRESULT>,
}
#[test]
fn bindgen_test_layout_IAddrTrackingControlVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IAddrTrackingControlVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IAddrTrackingControlVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IAddrTrackingControlVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IAddrTrackingControlVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IAddrTrackingControlVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IAddrTrackingControlVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAddrTrackingControlVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IAddrTrackingControlVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IAddrTrackingControlVtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IAddrTrackingControlVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IAddrTrackingControlVtbl>())).EnableCOMDynamicAddrTracking
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IAddrTrackingControlVtbl),
            "::",
            stringify!(EnableCOMDynamicAddrTracking)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IAddrTrackingControlVtbl>())).DisableCOMDynamicAddrTracking
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IAddrTrackingControlVtbl),
            "::",
            stringify!(DisableCOMDynamicAddrTracking)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IAddrTrackingControl {
    pub lpVtbl: *mut IAddrTrackingControlVtbl,
}
#[test]
fn bindgen_test_layout_IAddrTrackingControl() {
    assert_eq!(
        ::std::mem::size_of::<IAddrTrackingControl>(),
        8usize,
        concat!("Size of: ", stringify!(IAddrTrackingControl))
    );
    assert_eq!(
        ::std::mem::align_of::<IAddrTrackingControl>(),
        8usize,
        concat!("Alignment of ", stringify!(IAddrTrackingControl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAddrTrackingControl>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IAddrTrackingControl),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPADDREXCLUSIONCONTROL = *mut IAddrExclusionControl;
extern "C" {
    pub static IID_IAddrExclusionControl: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IAddrExclusionControlVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IAddrExclusionControl,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IAddrExclusionControl) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IAddrExclusionControl) -> ULONG>,
    pub GetCurrentAddrExclusionList: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IAddrExclusionControl,
            riid: *const IID,
            ppEnumerator: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub UpdateAddrExclusionList: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IAddrExclusionControl,
            pEnumerator: *mut IUnknown,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IAddrExclusionControlVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IAddrExclusionControlVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IAddrExclusionControlVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IAddrExclusionControlVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IAddrExclusionControlVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IAddrExclusionControlVtbl>())).QueryInterface as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IAddrExclusionControlVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IAddrExclusionControlVtbl>())).AddRef as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IAddrExclusionControlVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IAddrExclusionControlVtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IAddrExclusionControlVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IAddrExclusionControlVtbl>())).GetCurrentAddrExclusionList
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IAddrExclusionControlVtbl),
            "::",
            stringify!(GetCurrentAddrExclusionList)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IAddrExclusionControlVtbl>())).UpdateAddrExclusionList
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IAddrExclusionControlVtbl),
            "::",
            stringify!(UpdateAddrExclusionList)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IAddrExclusionControl {
    pub lpVtbl: *mut IAddrExclusionControlVtbl,
}
#[test]
fn bindgen_test_layout_IAddrExclusionControl() {
    assert_eq!(
        ::std::mem::size_of::<IAddrExclusionControl>(),
        8usize,
        concat!("Size of: ", stringify!(IAddrExclusionControl))
    );
    assert_eq!(
        ::std::mem::align_of::<IAddrExclusionControl>(),
        8usize,
        concat!("Alignment of ", stringify!(IAddrExclusionControl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAddrExclusionControl>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IAddrExclusionControl),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IPipeByte: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IPipeByteVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPipeByte,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IPipeByte) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IPipeByte) -> ULONG>,
    pub Pull: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPipeByte,
            buf: *mut BYTE,
            cRequest: ULONG,
            pcReturned: *mut ULONG,
        ) -> HRESULT,
    >,
    pub Push: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IPipeByte, buf: *mut BYTE, cSent: ULONG) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IPipeByteVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IPipeByteVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IPipeByteVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IPipeByteVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IPipeByteVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPipeByteVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IPipeByteVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPipeByteVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IPipeByteVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPipeByteVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IPipeByteVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPipeByteVtbl>())).Pull as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IPipeByteVtbl),
            "::",
            stringify!(Pull)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPipeByteVtbl>())).Push as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IPipeByteVtbl),
            "::",
            stringify!(Push)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IPipeByte {
    pub lpVtbl: *mut IPipeByteVtbl,
}
#[test]
fn bindgen_test_layout_IPipeByte() {
    assert_eq!(
        ::std::mem::size_of::<IPipeByte>(),
        8usize,
        concat!("Size of: ", stringify!(IPipeByte))
    );
    assert_eq!(
        ::std::mem::align_of::<IPipeByte>(),
        8usize,
        concat!("Alignment of ", stringify!(IPipeByte))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPipeByte>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IPipeByte),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_AsyncIPipeByte: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AsyncIPipeByteVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut AsyncIPipeByte,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIPipeByte) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIPipeByte) -> ULONG>,
    pub Begin_Pull: ::std::option::Option<
        unsafe extern "C" fn(This: *mut AsyncIPipeByte, cRequest: ULONG) -> HRESULT,
    >,
    pub Finish_Pull: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut AsyncIPipeByte,
            buf: *mut BYTE,
            pcReturned: *mut ULONG,
        ) -> HRESULT,
    >,
    pub Begin_Push: ::std::option::Option<
        unsafe extern "C" fn(This: *mut AsyncIPipeByte, buf: *mut BYTE, cSent: ULONG) -> HRESULT,
    >,
    pub Finish_Push:
        ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIPipeByte) -> HRESULT>,
}
#[test]
fn bindgen_test_layout_AsyncIPipeByteVtbl() {
    assert_eq!(
        ::std::mem::size_of::<AsyncIPipeByteVtbl>(),
        56usize,
        concat!("Size of: ", stringify!(AsyncIPipeByteVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<AsyncIPipeByteVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(AsyncIPipeByteVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIPipeByteVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIPipeByteVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIPipeByteVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIPipeByteVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIPipeByteVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIPipeByteVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIPipeByteVtbl>())).Begin_Pull as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIPipeByteVtbl),
            "::",
            stringify!(Begin_Pull)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIPipeByteVtbl>())).Finish_Pull as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIPipeByteVtbl),
            "::",
            stringify!(Finish_Pull)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIPipeByteVtbl>())).Begin_Push as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIPipeByteVtbl),
            "::",
            stringify!(Begin_Push)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIPipeByteVtbl>())).Finish_Push as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIPipeByteVtbl),
            "::",
            stringify!(Finish_Push)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AsyncIPipeByte {
    pub lpVtbl: *mut AsyncIPipeByteVtbl,
}
#[test]
fn bindgen_test_layout_AsyncIPipeByte() {
    assert_eq!(
        ::std::mem::size_of::<AsyncIPipeByte>(),
        8usize,
        concat!("Size of: ", stringify!(AsyncIPipeByte))
    );
    assert_eq!(
        ::std::mem::align_of::<AsyncIPipeByte>(),
        8usize,
        concat!("Alignment of ", stringify!(AsyncIPipeByte))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIPipeByte>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIPipeByte),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IPipeLong: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IPipeLongVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPipeLong,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IPipeLong) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IPipeLong) -> ULONG>,
    pub Pull: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPipeLong,
            buf: *mut LONG,
            cRequest: ULONG,
            pcReturned: *mut ULONG,
        ) -> HRESULT,
    >,
    pub Push: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IPipeLong, buf: *mut LONG, cSent: ULONG) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IPipeLongVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IPipeLongVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IPipeLongVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IPipeLongVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IPipeLongVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPipeLongVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IPipeLongVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPipeLongVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IPipeLongVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPipeLongVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IPipeLongVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPipeLongVtbl>())).Pull as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IPipeLongVtbl),
            "::",
            stringify!(Pull)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPipeLongVtbl>())).Push as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IPipeLongVtbl),
            "::",
            stringify!(Push)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IPipeLong {
    pub lpVtbl: *mut IPipeLongVtbl,
}
#[test]
fn bindgen_test_layout_IPipeLong() {
    assert_eq!(
        ::std::mem::size_of::<IPipeLong>(),
        8usize,
        concat!("Size of: ", stringify!(IPipeLong))
    );
    assert_eq!(
        ::std::mem::align_of::<IPipeLong>(),
        8usize,
        concat!("Alignment of ", stringify!(IPipeLong))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPipeLong>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IPipeLong),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_AsyncIPipeLong: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AsyncIPipeLongVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut AsyncIPipeLong,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIPipeLong) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIPipeLong) -> ULONG>,
    pub Begin_Pull: ::std::option::Option<
        unsafe extern "C" fn(This: *mut AsyncIPipeLong, cRequest: ULONG) -> HRESULT,
    >,
    pub Finish_Pull: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut AsyncIPipeLong,
            buf: *mut LONG,
            pcReturned: *mut ULONG,
        ) -> HRESULT,
    >,
    pub Begin_Push: ::std::option::Option<
        unsafe extern "C" fn(This: *mut AsyncIPipeLong, buf: *mut LONG, cSent: ULONG) -> HRESULT,
    >,
    pub Finish_Push:
        ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIPipeLong) -> HRESULT>,
}
#[test]
fn bindgen_test_layout_AsyncIPipeLongVtbl() {
    assert_eq!(
        ::std::mem::size_of::<AsyncIPipeLongVtbl>(),
        56usize,
        concat!("Size of: ", stringify!(AsyncIPipeLongVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<AsyncIPipeLongVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(AsyncIPipeLongVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIPipeLongVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIPipeLongVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIPipeLongVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIPipeLongVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIPipeLongVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIPipeLongVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIPipeLongVtbl>())).Begin_Pull as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIPipeLongVtbl),
            "::",
            stringify!(Begin_Pull)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIPipeLongVtbl>())).Finish_Pull as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIPipeLongVtbl),
            "::",
            stringify!(Finish_Pull)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIPipeLongVtbl>())).Begin_Push as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIPipeLongVtbl),
            "::",
            stringify!(Begin_Push)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIPipeLongVtbl>())).Finish_Push as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIPipeLongVtbl),
            "::",
            stringify!(Finish_Push)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AsyncIPipeLong {
    pub lpVtbl: *mut AsyncIPipeLongVtbl,
}
#[test]
fn bindgen_test_layout_AsyncIPipeLong() {
    assert_eq!(
        ::std::mem::size_of::<AsyncIPipeLong>(),
        8usize,
        concat!("Size of: ", stringify!(AsyncIPipeLong))
    );
    assert_eq!(
        ::std::mem::align_of::<AsyncIPipeLong>(),
        8usize,
        concat!("Alignment of ", stringify!(AsyncIPipeLong))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIPipeLong>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIPipeLong),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IPipeDouble: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IPipeDoubleVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPipeDouble,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IPipeDouble) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IPipeDouble) -> ULONG>,
    pub Pull: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPipeDouble,
            buf: *mut DOUBLE,
            cRequest: ULONG,
            pcReturned: *mut ULONG,
        ) -> HRESULT,
    >,
    pub Push: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IPipeDouble, buf: *mut DOUBLE, cSent: ULONG) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IPipeDoubleVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IPipeDoubleVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IPipeDoubleVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IPipeDoubleVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IPipeDoubleVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPipeDoubleVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IPipeDoubleVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPipeDoubleVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IPipeDoubleVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPipeDoubleVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IPipeDoubleVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPipeDoubleVtbl>())).Pull as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IPipeDoubleVtbl),
            "::",
            stringify!(Pull)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPipeDoubleVtbl>())).Push as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IPipeDoubleVtbl),
            "::",
            stringify!(Push)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IPipeDouble {
    pub lpVtbl: *mut IPipeDoubleVtbl,
}
#[test]
fn bindgen_test_layout_IPipeDouble() {
    assert_eq!(
        ::std::mem::size_of::<IPipeDouble>(),
        8usize,
        concat!("Size of: ", stringify!(IPipeDouble))
    );
    assert_eq!(
        ::std::mem::align_of::<IPipeDouble>(),
        8usize,
        concat!("Alignment of ", stringify!(IPipeDouble))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPipeDouble>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IPipeDouble),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_AsyncIPipeDouble: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AsyncIPipeDoubleVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut AsyncIPipeDouble,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIPipeDouble) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIPipeDouble) -> ULONG>,
    pub Begin_Pull: ::std::option::Option<
        unsafe extern "C" fn(This: *mut AsyncIPipeDouble, cRequest: ULONG) -> HRESULT,
    >,
    pub Finish_Pull: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut AsyncIPipeDouble,
            buf: *mut DOUBLE,
            pcReturned: *mut ULONG,
        ) -> HRESULT,
    >,
    pub Begin_Push: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut AsyncIPipeDouble,
            buf: *mut DOUBLE,
            cSent: ULONG,
        ) -> HRESULT,
    >,
    pub Finish_Push:
        ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIPipeDouble) -> HRESULT>,
}
#[test]
fn bindgen_test_layout_AsyncIPipeDoubleVtbl() {
    assert_eq!(
        ::std::mem::size_of::<AsyncIPipeDoubleVtbl>(),
        56usize,
        concat!("Size of: ", stringify!(AsyncIPipeDoubleVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<AsyncIPipeDoubleVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(AsyncIPipeDoubleVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIPipeDoubleVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIPipeDoubleVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIPipeDoubleVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIPipeDoubleVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIPipeDoubleVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIPipeDoubleVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIPipeDoubleVtbl>())).Begin_Pull as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIPipeDoubleVtbl),
            "::",
            stringify!(Begin_Pull)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIPipeDoubleVtbl>())).Finish_Pull as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIPipeDoubleVtbl),
            "::",
            stringify!(Finish_Pull)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIPipeDoubleVtbl>())).Begin_Push as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIPipeDoubleVtbl),
            "::",
            stringify!(Begin_Push)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIPipeDoubleVtbl>())).Finish_Push as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIPipeDoubleVtbl),
            "::",
            stringify!(Finish_Push)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AsyncIPipeDouble {
    pub lpVtbl: *mut AsyncIPipeDoubleVtbl,
}
#[test]
fn bindgen_test_layout_AsyncIPipeDouble() {
    assert_eq!(
        ::std::mem::size_of::<AsyncIPipeDouble>(),
        8usize,
        concat!("Size of: ", stringify!(AsyncIPipeDouble))
    );
    assert_eq!(
        ::std::mem::align_of::<AsyncIPipeDouble>(),
        8usize,
        concat!("Alignment of ", stringify!(AsyncIPipeDouble))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIPipeDouble>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIPipeDouble),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub const _APTTYPEQUALIFIER_APTTYPEQUALIFIER_NONE: _APTTYPEQUALIFIER = 0;
pub const _APTTYPEQUALIFIER_APTTYPEQUALIFIER_IMPLICIT_MTA: _APTTYPEQUALIFIER = 1;
pub const _APTTYPEQUALIFIER_APTTYPEQUALIFIER_NA_ON_MTA: _APTTYPEQUALIFIER = 2;
pub const _APTTYPEQUALIFIER_APTTYPEQUALIFIER_NA_ON_STA: _APTTYPEQUALIFIER = 3;
pub const _APTTYPEQUALIFIER_APTTYPEQUALIFIER_NA_ON_IMPLICIT_MTA: _APTTYPEQUALIFIER = 4;
pub const _APTTYPEQUALIFIER_APTTYPEQUALIFIER_NA_ON_MAINSTA: _APTTYPEQUALIFIER = 5;
pub const _APTTYPEQUALIFIER_APTTYPEQUALIFIER_APPLICATION_STA: _APTTYPEQUALIFIER = 6;
pub const _APTTYPEQUALIFIER_APTTYPEQUALIFIER_RESERVED_1: _APTTYPEQUALIFIER = 7;
pub type _APTTYPEQUALIFIER = ::std::os::raw::c_int;
pub use self::_APTTYPEQUALIFIER as APTTYPEQUALIFIER;
pub const _APTTYPE_APTTYPE_CURRENT: _APTTYPE = -1;
pub const _APTTYPE_APTTYPE_STA: _APTTYPE = 0;
pub const _APTTYPE_APTTYPE_MTA: _APTTYPE = 1;
pub const _APTTYPE_APTTYPE_NA: _APTTYPE = 2;
pub const _APTTYPE_APTTYPE_MAINSTA: _APTTYPE = 3;
pub type _APTTYPE = ::std::os::raw::c_int;
pub use self::_APTTYPE as APTTYPE;
pub const _THDTYPE_THDTYPE_BLOCKMESSAGES: _THDTYPE = 0;
pub const _THDTYPE_THDTYPE_PROCESSMESSAGES: _THDTYPE = 1;
pub type _THDTYPE = ::std::os::raw::c_int;
pub use self::_THDTYPE as THDTYPE;
pub type APARTMENTID = DWORD;
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0048_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0048_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IComThreadingInfo: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IComThreadingInfoVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IComThreadingInfo,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IComThreadingInfo) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IComThreadingInfo) -> ULONG>,
    pub GetCurrentApartmentType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IComThreadingInfo, pAptType: *mut APTTYPE) -> HRESULT,
    >,
    pub GetCurrentThreadType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IComThreadingInfo, pThreadType: *mut THDTYPE) -> HRESULT,
    >,
    pub GetCurrentLogicalThreadId: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IComThreadingInfo,
            pguidLogicalThreadId: *mut GUID,
        ) -> HRESULT,
    >,
    pub SetCurrentLogicalThreadId: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IComThreadingInfo, rguid: *const GUID) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IComThreadingInfoVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IComThreadingInfoVtbl>(),
        56usize,
        concat!("Size of: ", stringify!(IComThreadingInfoVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IComThreadingInfoVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IComThreadingInfoVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IComThreadingInfoVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IComThreadingInfoVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IComThreadingInfoVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IComThreadingInfoVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IComThreadingInfoVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IComThreadingInfoVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IComThreadingInfoVtbl>())).GetCurrentApartmentType as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IComThreadingInfoVtbl),
            "::",
            stringify!(GetCurrentApartmentType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IComThreadingInfoVtbl>())).GetCurrentThreadType as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IComThreadingInfoVtbl),
            "::",
            stringify!(GetCurrentThreadType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IComThreadingInfoVtbl>())).GetCurrentLogicalThreadId as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IComThreadingInfoVtbl),
            "::",
            stringify!(GetCurrentLogicalThreadId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IComThreadingInfoVtbl>())).SetCurrentLogicalThreadId as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IComThreadingInfoVtbl),
            "::",
            stringify!(SetCurrentLogicalThreadId)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IComThreadingInfo {
    pub lpVtbl: *mut IComThreadingInfoVtbl,
}
#[test]
fn bindgen_test_layout_IComThreadingInfo() {
    assert_eq!(
        ::std::mem::size_of::<IComThreadingInfo>(),
        8usize,
        concat!("Size of: ", stringify!(IComThreadingInfo))
    );
    assert_eq!(
        ::std::mem::align_of::<IComThreadingInfo>(),
        8usize,
        concat!("Alignment of ", stringify!(IComThreadingInfo))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IComThreadingInfo>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IComThreadingInfo),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IProcessInitControl: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IProcessInitControlVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IProcessInitControl,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IProcessInitControl) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IProcessInitControl) -> ULONG>,
    pub ResetInitializerTimeout: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IProcessInitControl, dwSecondsRemaining: DWORD) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IProcessInitControlVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IProcessInitControlVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IProcessInitControlVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IProcessInitControlVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IProcessInitControlVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IProcessInitControlVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IProcessInitControlVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IProcessInitControlVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IProcessInitControlVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IProcessInitControlVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IProcessInitControlVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IProcessInitControlVtbl>())).ResetInitializerTimeout as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IProcessInitControlVtbl),
            "::",
            stringify!(ResetInitializerTimeout)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IProcessInitControl {
    pub lpVtbl: *mut IProcessInitControlVtbl,
}
#[test]
fn bindgen_test_layout_IProcessInitControl() {
    assert_eq!(
        ::std::mem::size_of::<IProcessInitControl>(),
        8usize,
        concat!("Size of: ", stringify!(IProcessInitControl))
    );
    assert_eq!(
        ::std::mem::align_of::<IProcessInitControl>(),
        8usize,
        concat!("Alignment of ", stringify!(IProcessInitControl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IProcessInitControl>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IProcessInitControl),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IFastRundown: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IFastRundownVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IFastRundown,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IFastRundown) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IFastRundown) -> ULONG>,
}
#[test]
fn bindgen_test_layout_IFastRundownVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IFastRundownVtbl>(),
        24usize,
        concat!("Size of: ", stringify!(IFastRundownVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IFastRundownVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IFastRundownVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IFastRundownVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IFastRundownVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IFastRundownVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IFastRundownVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IFastRundownVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IFastRundownVtbl),
            "::",
            stringify!(Release)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IFastRundown {
    pub lpVtbl: *mut IFastRundownVtbl,
}
#[test]
fn bindgen_test_layout_IFastRundown() {
    assert_eq!(
        ::std::mem::size_of::<IFastRundown>(),
        8usize,
        concat!("Size of: ", stringify!(IFastRundown))
    );
    assert_eq!(
        ::std::mem::align_of::<IFastRundown>(),
        8usize,
        concat!("Alignment of ", stringify!(IFastRundown))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IFastRundown>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IFastRundown),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub const CO_MARSHALING_CONTEXT_ATTRIBUTES_CO_MARSHALING_SOURCE_IS_APP_CONTAINER:
    CO_MARSHALING_CONTEXT_ATTRIBUTES = 0;
pub const CO_MARSHALING_CONTEXT_ATTRIBUTES_CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_1:
    CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483648;
pub const CO_MARSHALING_CONTEXT_ATTRIBUTES_CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_2:
    CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483647;
pub const CO_MARSHALING_CONTEXT_ATTRIBUTES_CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_3:
    CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483646;
pub const CO_MARSHALING_CONTEXT_ATTRIBUTES_CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_4:
    CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483645;
pub const CO_MARSHALING_CONTEXT_ATTRIBUTES_CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_5:
    CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483644;
pub const CO_MARSHALING_CONTEXT_ATTRIBUTES_CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_6:
    CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483643;
pub const CO_MARSHALING_CONTEXT_ATTRIBUTES_CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_7:
    CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483642;
pub const CO_MARSHALING_CONTEXT_ATTRIBUTES_CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_8:
    CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483641;
pub const CO_MARSHALING_CONTEXT_ATTRIBUTES_CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_9:
    CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483640;
pub const CO_MARSHALING_CONTEXT_ATTRIBUTES_CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_10:
    CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483639;
pub const CO_MARSHALING_CONTEXT_ATTRIBUTES_CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_11:
    CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483638;
pub const CO_MARSHALING_CONTEXT_ATTRIBUTES_CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_12:
    CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483637;
pub const CO_MARSHALING_CONTEXT_ATTRIBUTES_CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_13:
    CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483636;
pub const CO_MARSHALING_CONTEXT_ATTRIBUTES_CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_14:
    CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483635;
pub const CO_MARSHALING_CONTEXT_ATTRIBUTES_CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_15:
    CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483634;
pub const CO_MARSHALING_CONTEXT_ATTRIBUTES_CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_16:
    CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483633;
pub const CO_MARSHALING_CONTEXT_ATTRIBUTES_CO_MARSHALING_CONTEXT_ATTRIBUTE_RESERVED_17:
    CO_MARSHALING_CONTEXT_ATTRIBUTES = -2147483632;
pub type CO_MARSHALING_CONTEXT_ATTRIBUTES = ::std::os::raw::c_int;
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0051_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0051_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IMarshalingStream: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IMarshalingStreamVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMarshalingStream,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IMarshalingStream) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IMarshalingStream) -> ULONG>,
    pub Read: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMarshalingStream,
            pv: *mut ::std::os::raw::c_void,
            cb: ULONG,
            pcbRead: *mut ULONG,
        ) -> HRESULT,
    >,
    pub Write: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMarshalingStream,
            pv: *const ::std::os::raw::c_void,
            cb: ULONG,
            pcbWritten: *mut ULONG,
        ) -> HRESULT,
    >,
    pub Seek: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMarshalingStream,
            dlibMove: LARGE_INTEGER,
            dwOrigin: DWORD,
            plibNewPosition: *mut ULARGE_INTEGER,
        ) -> HRESULT,
    >,
    pub SetSize: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IMarshalingStream, libNewSize: ULARGE_INTEGER) -> HRESULT,
    >,
    pub CopyTo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMarshalingStream,
            pstm: *mut IStream,
            cb: ULARGE_INTEGER,
            pcbRead: *mut ULARGE_INTEGER,
            pcbWritten: *mut ULARGE_INTEGER,
        ) -> HRESULT,
    >,
    pub Commit: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IMarshalingStream, grfCommitFlags: DWORD) -> HRESULT,
    >,
    pub Revert:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IMarshalingStream) -> HRESULT>,
    pub LockRegion: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMarshalingStream,
            libOffset: ULARGE_INTEGER,
            cb: ULARGE_INTEGER,
            dwLockType: DWORD,
        ) -> HRESULT,
    >,
    pub UnlockRegion: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMarshalingStream,
            libOffset: ULARGE_INTEGER,
            cb: ULARGE_INTEGER,
            dwLockType: DWORD,
        ) -> HRESULT,
    >,
    pub Stat: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMarshalingStream,
            pstatstg: *mut STATSTG,
            grfStatFlag: DWORD,
        ) -> HRESULT,
    >,
    pub Clone: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IMarshalingStream, ppstm: *mut *mut IStream) -> HRESULT,
    >,
    pub GetMarshalingContextAttribute: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMarshalingStream,
            attribute: CO_MARSHALING_CONTEXT_ATTRIBUTES,
            pAttributeValue: *mut ULONG_PTR,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IMarshalingStreamVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IMarshalingStreamVtbl>(),
        120usize,
        concat!("Size of: ", stringify!(IMarshalingStreamVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IMarshalingStreamVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IMarshalingStreamVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IMarshalingStreamVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshalingStreamVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMarshalingStreamVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshalingStreamVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMarshalingStreamVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshalingStreamVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMarshalingStreamVtbl>())).Read as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshalingStreamVtbl),
            "::",
            stringify!(Read)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMarshalingStreamVtbl>())).Write as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshalingStreamVtbl),
            "::",
            stringify!(Write)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMarshalingStreamVtbl>())).Seek as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshalingStreamVtbl),
            "::",
            stringify!(Seek)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMarshalingStreamVtbl>())).SetSize as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshalingStreamVtbl),
            "::",
            stringify!(SetSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMarshalingStreamVtbl>())).CopyTo as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshalingStreamVtbl),
            "::",
            stringify!(CopyTo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMarshalingStreamVtbl>())).Commit as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshalingStreamVtbl),
            "::",
            stringify!(Commit)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMarshalingStreamVtbl>())).Revert as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshalingStreamVtbl),
            "::",
            stringify!(Revert)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IMarshalingStreamVtbl>())).LockRegion as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshalingStreamVtbl),
            "::",
            stringify!(LockRegion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IMarshalingStreamVtbl>())).UnlockRegion as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshalingStreamVtbl),
            "::",
            stringify!(UnlockRegion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMarshalingStreamVtbl>())).Stat as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshalingStreamVtbl),
            "::",
            stringify!(Stat)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMarshalingStreamVtbl>())).Clone as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshalingStreamVtbl),
            "::",
            stringify!(Clone)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IMarshalingStreamVtbl>())).GetMarshalingContextAttribute
                as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshalingStreamVtbl),
            "::",
            stringify!(GetMarshalingContextAttribute)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IMarshalingStream {
    pub lpVtbl: *mut IMarshalingStreamVtbl,
}
#[test]
fn bindgen_test_layout_IMarshalingStream() {
    assert_eq!(
        ::std::mem::size_of::<IMarshalingStream>(),
        8usize,
        concat!("Size of: ", stringify!(IMarshalingStream))
    );
    assert_eq!(
        ::std::mem::align_of::<IMarshalingStream>(),
        8usize,
        concat!("Alignment of ", stringify!(IMarshalingStream))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMarshalingStream>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IMarshalingStream),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0052_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0052_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IAgileReference: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IAgileReferenceVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IAgileReference,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IAgileReference) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IAgileReference) -> ULONG>,
    pub Resolve: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IAgileReference,
            riid: *const IID,
            ppvObjectReference: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IAgileReferenceVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IAgileReferenceVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IAgileReferenceVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IAgileReferenceVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IAgileReferenceVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IAgileReferenceVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IAgileReferenceVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAgileReferenceVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IAgileReferenceVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAgileReferenceVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IAgileReferenceVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAgileReferenceVtbl>())).Resolve as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IAgileReferenceVtbl),
            "::",
            stringify!(Resolve)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IAgileReference {
    pub lpVtbl: *mut IAgileReferenceVtbl,
}
#[test]
fn bindgen_test_layout_IAgileReference() {
    assert_eq!(
        ::std::mem::size_of::<IAgileReference>(),
        8usize,
        concat!("Size of: ", stringify!(IAgileReference))
    );
    assert_eq!(
        ::std::mem::align_of::<IAgileReference>(),
        8usize,
        concat!("Alignment of ", stringify!(IAgileReference))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAgileReference>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IAgileReference),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_ICallbackWithNoReentrancyToApplicationSTA: GUID;
}
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0053_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidlbase_0000_0053_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub fn IEnumUnknown_Next_Proxy(
        This: *mut IEnumUnknown,
        celt: ULONG,
        rgelt: *mut *mut IUnknown,
        pceltFetched: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IEnumUnknown_Next_Stub(
        This: *mut IEnumUnknown,
        celt: ULONG,
        rgelt: *mut *mut IUnknown,
        pceltFetched: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IEnumString_Next_Proxy(
        This: *mut IEnumString,
        celt: ULONG,
        rgelt: *mut LPOLESTR,
        pceltFetched: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IEnumString_Next_Stub(
        This: *mut IEnumString,
        celt: ULONG,
        rgelt: *mut LPOLESTR,
        pceltFetched: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn ISequentialStream_Read_Proxy(
        This: *mut ISequentialStream,
        pv: *mut ::std::os::raw::c_void,
        cb: ULONG,
        pcbRead: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn ISequentialStream_Read_Stub(
        This: *mut ISequentialStream,
        pv: *mut byte,
        cb: ULONG,
        pcbRead: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn ISequentialStream_Write_Proxy(
        This: *mut ISequentialStream,
        pv: *const ::std::os::raw::c_void,
        cb: ULONG,
        pcbWritten: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn ISequentialStream_Write_Stub(
        This: *mut ISequentialStream,
        pv: *const byte,
        cb: ULONG,
        pcbWritten: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IStream_Seek_Proxy(
        This: *mut IStream,
        dlibMove: LARGE_INTEGER,
        dwOrigin: DWORD,
        plibNewPosition: *mut ULARGE_INTEGER,
    ) -> HRESULT;
}
extern "C" {
    pub fn IStream_Seek_Stub(
        This: *mut IStream,
        dlibMove: LARGE_INTEGER,
        dwOrigin: DWORD,
        plibNewPosition: *mut ULARGE_INTEGER,
    ) -> HRESULT;
}
extern "C" {
    pub fn IStream_CopyTo_Proxy(
        This: *mut IStream,
        pstm: *mut IStream,
        cb: ULARGE_INTEGER,
        pcbRead: *mut ULARGE_INTEGER,
        pcbWritten: *mut ULARGE_INTEGER,
    ) -> HRESULT;
}
extern "C" {
    pub fn IStream_CopyTo_Stub(
        This: *mut IStream,
        pstm: *mut IStream,
        cb: ULARGE_INTEGER,
        pcbRead: *mut ULARGE_INTEGER,
        pcbWritten: *mut ULARGE_INTEGER,
    ) -> HRESULT;
}
extern "C" {
    pub static GUID_NULL: IID;
}
extern "C" {
    pub static CATID_MARSHALER: IID;
}
extern "C" {
    pub static IID_IRpcChannel: IID;
}
extern "C" {
    pub static IID_IRpcStub: IID;
}
extern "C" {
    pub static IID_IStubManager: IID;
}
extern "C" {
    pub static IID_IRpcProxy: IID;
}
extern "C" {
    pub static IID_IProxyManager: IID;
}
extern "C" {
    pub static IID_IPSFactory: IID;
}
extern "C" {
    pub static IID_IInternalMoniker: IID;
}
extern "C" {
    pub static IID_IDfReserved1: IID;
}
extern "C" {
    pub static IID_IDfReserved2: IID;
}
extern "C" {
    pub static IID_IDfReserved3: IID;
}
extern "C" {
    pub static CLSID_StdMarshal: CLSID;
}
extern "C" {
    pub static CLSID_AggStdMarshal: CLSID;
}
extern "C" {
    pub static CLSID_StdAsyncActManager: CLSID;
}
extern "C" {
    pub static IID_IStub: IID;
}
extern "C" {
    pub static IID_IProxy: IID;
}
extern "C" {
    pub static IID_IEnumGeneric: IID;
}
extern "C" {
    pub static IID_IEnumHolder: IID;
}
extern "C" {
    pub static IID_IEnumCallback: IID;
}
extern "C" {
    pub static IID_IOleManager: IID;
}
extern "C" {
    pub static IID_IOlePresObj: IID;
}
extern "C" {
    pub static IID_IDebug: IID;
}
extern "C" {
    pub static IID_IDebugStream: IID;
}
extern "C" {
    pub static CLSID_PSGenObject: CLSID;
}
extern "C" {
    pub static CLSID_PSClientSite: CLSID;
}
extern "C" {
    pub static CLSID_PSClassObject: CLSID;
}
extern "C" {
    pub static CLSID_PSInPlaceActive: CLSID;
}
extern "C" {
    pub static CLSID_PSInPlaceFrame: CLSID;
}
extern "C" {
    pub static CLSID_PSDragDrop: CLSID;
}
extern "C" {
    pub static CLSID_PSBindCtx: CLSID;
}
extern "C" {
    pub static CLSID_PSEnumerators: CLSID;
}
extern "C" {
    pub static CLSID_StaticMetafile: CLSID;
}
extern "C" {
    pub static CLSID_StaticDib: CLSID;
}
extern "C" {
    pub static CID_CDfsVolume: CLSID;
}
extern "C" {
    pub static CLSID_DCOMAccessControl: CLSID;
}
extern "C" {
    pub static CLSID_GlobalOptions: CLSID;
}
extern "C" {
    pub static CLSID_StdGlobalInterfaceTable: CLSID;
}
extern "C" {
    pub static CLSID_ComBinding: CLSID;
}
extern "C" {
    pub static CLSID_StdEvent: CLSID;
}
extern "C" {
    pub static CLSID_ManualResetEvent: CLSID;
}
extern "C" {
    pub static CLSID_SynchronizeContainer: CLSID;
}
extern "C" {
    pub static CLSID_AddrControl: CLSID;
}
extern "C" {
    pub static CLSID_ContextSwitcher: CLSID;
}
extern "C" {
    pub static CLSID_CCDFormKrnl: CLSID;
}
extern "C" {
    pub static CLSID_CCDPropertyPage: CLSID;
}
extern "C" {
    pub static CLSID_CCDFormDialog: CLSID;
}
extern "C" {
    pub static CLSID_CCDCommandButton: CLSID;
}
extern "C" {
    pub static CLSID_CCDComboBox: CLSID;
}
extern "C" {
    pub static CLSID_CCDTextBox: CLSID;
}
extern "C" {
    pub static CLSID_CCDCheckBox: CLSID;
}
extern "C" {
    pub static CLSID_CCDLabel: CLSID;
}
extern "C" {
    pub static CLSID_CCDOptionButton: CLSID;
}
extern "C" {
    pub static CLSID_CCDListBox: CLSID;
}
extern "C" {
    pub static CLSID_CCDScrollBar: CLSID;
}
extern "C" {
    pub static CLSID_CCDGroupBox: CLSID;
}
extern "C" {
    pub static CLSID_CCDGeneralPropertyPage: CLSID;
}
extern "C" {
    pub static CLSID_CCDGenericPropertyPage: CLSID;
}
extern "C" {
    pub static CLSID_CCDFontPropertyPage: CLSID;
}
extern "C" {
    pub static CLSID_CCDColorPropertyPage: CLSID;
}
extern "C" {
    pub static CLSID_CCDLabelPropertyPage: CLSID;
}
extern "C" {
    pub static CLSID_CCDCheckBoxPropertyPage: CLSID;
}
extern "C" {
    pub static CLSID_CCDTextBoxPropertyPage: CLSID;
}
extern "C" {
    pub static CLSID_CCDOptionButtonPropertyPage: CLSID;
}
extern "C" {
    pub static CLSID_CCDListBoxPropertyPage: CLSID;
}
extern "C" {
    pub static CLSID_CCDCommandButtonPropertyPage: CLSID;
}
extern "C" {
    pub static CLSID_CCDComboBoxPropertyPage: CLSID;
}
extern "C" {
    pub static CLSID_CCDScrollBarPropertyPage: CLSID;
}
extern "C" {
    pub static CLSID_CCDGroupBoxPropertyPage: CLSID;
}
extern "C" {
    pub static CLSID_CCDXObjectPropertyPage: CLSID;
}
extern "C" {
    pub static CLSID_CStdPropertyFrame: CLSID;
}
extern "C" {
    pub static CLSID_CFormPropertyPage: CLSID;
}
extern "C" {
    pub static CLSID_CGridPropertyPage: CLSID;
}
extern "C" {
    pub static CLSID_CWSJArticlePage: CLSID;
}
extern "C" {
    pub static CLSID_CSystemPage: CLSID;
}
extern "C" {
    pub static CLSID_IdentityUnmarshal: CLSID;
}
extern "C" {
    pub static CLSID_InProcFreeMarshaler: CLSID;
}
extern "C" {
    pub static CLSID_Picture_Metafile: CLSID;
}
extern "C" {
    pub static CLSID_Picture_EnhMetafile: CLSID;
}
extern "C" {
    pub static CLSID_Picture_Dib: CLSID;
}
extern "C" {
    pub static GUID_TRISTATE: GUID;
}
extern "C" {
    pub fn CoGetMalloc(dwMemContext: DWORD, ppMalloc: *mut LPMALLOC) -> HRESULT;
}
extern "C" {
    pub fn CreateStreamOnHGlobal(
        hGlobal: HGLOBAL,
        fDeleteOnRelease: BOOL,
        ppstm: *mut LPSTREAM,
    ) -> HRESULT;
}
extern "C" {
    pub fn GetHGlobalFromStream(pstm: LPSTREAM, phglobal: *mut HGLOBAL) -> HRESULT;
}
extern "C" {
    pub fn CoUninitialize();
}
extern "C" {
    pub fn CoGetCurrentProcess() -> DWORD;
}
extern "C" {
    pub fn CoInitializeEx(pvReserved: LPVOID, dwCoInit: DWORD) -> HRESULT;
}
extern "C" {
    pub fn CoGetCallerTID(lpdwTID: LPDWORD) -> HRESULT;
}
extern "C" {
    pub fn CoGetCurrentLogicalThreadId(pguid: *mut GUID) -> HRESULT;
}
extern "C" {
    pub fn CoGetContextToken(pToken: *mut ULONG_PTR) -> HRESULT;
}
extern "C" {
    pub fn CoGetDefaultContext(
        aptType: APTTYPE,
        riid: *const IID,
        ppv: *mut *mut ::std::os::raw::c_void,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoGetApartmentType(
        pAptType: *mut APTTYPE,
        pAptQualifier: *mut APTTYPEQUALIFIER,
    ) -> HRESULT;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagServerInformation {
    pub dwServerPid: DWORD,
    pub dwServerTid: DWORD,
    pub ui64ServerAddress: UINT64,
}
#[test]
fn bindgen_test_layout_tagServerInformation() {
    assert_eq!(
        ::std::mem::size_of::<tagServerInformation>(),
        16usize,
        concat!("Size of: ", stringify!(tagServerInformation))
    );
    assert_eq!(
        ::std::mem::align_of::<tagServerInformation>(),
        8usize,
        concat!("Alignment of ", stringify!(tagServerInformation))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagServerInformation>())).dwServerPid as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagServerInformation),
            "::",
            stringify!(dwServerPid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagServerInformation>())).dwServerTid as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagServerInformation),
            "::",
            stringify!(dwServerTid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagServerInformation>())).ui64ServerAddress as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagServerInformation),
            "::",
            stringify!(ui64ServerAddress)
        )
    );
}
pub type ServerInformation = tagServerInformation;
pub type PServerInformation = *mut tagServerInformation;
extern "C" {
    pub fn CoDecodeProxy(
        dwClientPid: DWORD,
        ui64ProxyAddress: UINT64,
        pServerInformation: PServerInformation,
    ) -> HRESULT;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CO_MTA_USAGE_COOKIE__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_CO_MTA_USAGE_COOKIE__() {
    assert_eq!(
        ::std::mem::size_of::<CO_MTA_USAGE_COOKIE__>(),
        4usize,
        concat!("Size of: ", stringify!(CO_MTA_USAGE_COOKIE__))
    );
    assert_eq!(
        ::std::mem::align_of::<CO_MTA_USAGE_COOKIE__>(),
        4usize,
        concat!("Alignment of ", stringify!(CO_MTA_USAGE_COOKIE__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<CO_MTA_USAGE_COOKIE__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(CO_MTA_USAGE_COOKIE__),
            "::",
            stringify!(unused)
        )
    );
}
pub type CO_MTA_USAGE_COOKIE = *mut CO_MTA_USAGE_COOKIE__;
extern "C" {
    pub fn CoIncrementMTAUsage(pCookie: *mut CO_MTA_USAGE_COOKIE) -> HRESULT;
}
extern "C" {
    pub fn CoDecrementMTAUsage(Cookie: CO_MTA_USAGE_COOKIE) -> HRESULT;
}
extern "C" {
    pub fn CoAllowUnmarshalerCLSID(clsid: *const IID) -> HRESULT;
}
extern "C" {
    pub fn CoGetObjectContext(riid: *const IID, ppv: *mut LPVOID) -> HRESULT;
}
extern "C" {
    pub fn CoGetClassObject(
        rclsid: *const IID,
        dwClsContext: DWORD,
        pvReserved: LPVOID,
        riid: *const IID,
        ppv: *mut LPVOID,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoRegisterClassObject(
        rclsid: *const IID,
        pUnk: LPUNKNOWN,
        dwClsContext: DWORD,
        flags: DWORD,
        lpdwRegister: LPDWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoRevokeClassObject(dwRegister: DWORD) -> HRESULT;
}
extern "C" {
    pub fn CoResumeClassObjects() -> HRESULT;
}
extern "C" {
    pub fn CoSuspendClassObjects() -> HRESULT;
}
extern "C" {
    pub fn CoAddRefServerProcess() -> ULONG;
}
extern "C" {
    pub fn CoReleaseServerProcess() -> ULONG;
}
extern "C" {
    pub fn CoGetPSClsid(riid: *const IID, pClsid: *mut CLSID) -> HRESULT;
}
extern "C" {
    pub fn CoRegisterPSClsid(riid: *const IID, rclsid: *const IID) -> HRESULT;
}
extern "C" {
    pub fn CoRegisterSurrogate(pSurrogate: LPSURROGATE) -> HRESULT;
}
extern "C" {
    pub fn CoGetMarshalSizeMax(
        pulSize: *mut ULONG,
        riid: *const IID,
        pUnk: LPUNKNOWN,
        dwDestContext: DWORD,
        pvDestContext: LPVOID,
        mshlflags: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoMarshalInterface(
        pStm: LPSTREAM,
        riid: *const IID,
        pUnk: LPUNKNOWN,
        dwDestContext: DWORD,
        pvDestContext: LPVOID,
        mshlflags: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoUnmarshalInterface(pStm: LPSTREAM, riid: *const IID, ppv: *mut LPVOID) -> HRESULT;
}
extern "C" {
    pub fn CoMarshalHresult(pstm: LPSTREAM, hresult: HRESULT) -> HRESULT;
}
extern "C" {
    pub fn CoUnmarshalHresult(pstm: LPSTREAM, phresult: *mut HRESULT) -> HRESULT;
}
extern "C" {
    pub fn CoReleaseMarshalData(pStm: LPSTREAM) -> HRESULT;
}
extern "C" {
    pub fn CoDisconnectObject(pUnk: LPUNKNOWN, dwReserved: DWORD) -> HRESULT;
}
extern "C" {
    pub fn CoLockObjectExternal(pUnk: LPUNKNOWN, fLock: BOOL, fLastUnlockReleases: BOOL)
        -> HRESULT;
}
extern "C" {
    pub fn CoGetStandardMarshal(
        riid: *const IID,
        pUnk: LPUNKNOWN,
        dwDestContext: DWORD,
        pvDestContext: LPVOID,
        mshlflags: DWORD,
        ppMarshal: *mut LPMARSHAL,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoGetStdMarshalEx(
        pUnkOuter: LPUNKNOWN,
        smexflags: DWORD,
        ppUnkInner: *mut LPUNKNOWN,
    ) -> HRESULT;
}
pub const tagSTDMSHLFLAGS_SMEXF_SERVER: tagSTDMSHLFLAGS = 1;
pub const tagSTDMSHLFLAGS_SMEXF_HANDLER: tagSTDMSHLFLAGS = 2;
pub type tagSTDMSHLFLAGS = ::std::os::raw::c_int;
pub use self::tagSTDMSHLFLAGS as STDMSHLFLAGS;
extern "C" {
    pub fn CoIsHandlerConnected(pUnk: LPUNKNOWN) -> BOOL;
}
extern "C" {
    pub fn CoMarshalInterThreadInterfaceInStream(
        riid: *const IID,
        pUnk: LPUNKNOWN,
        ppStm: *mut LPSTREAM,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoGetInterfaceAndReleaseStream(
        pStm: LPSTREAM,
        iid: *const IID,
        ppv: *mut LPVOID,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoCreateFreeThreadedMarshaler(
        punkOuter: LPUNKNOWN,
        ppunkMarshal: *mut LPUNKNOWN,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoFreeUnusedLibraries();
}
extern "C" {
    pub fn CoFreeUnusedLibrariesEx(dwUnloadDelay: DWORD, dwReserved: DWORD);
}
extern "C" {
    pub fn CoDisconnectContext(dwTimeout: DWORD) -> HRESULT;
}
extern "C" {
    pub fn CoInitializeSecurity(
        pSecDesc: PSECURITY_DESCRIPTOR,
        cAuthSvc: LONG,
        asAuthSvc: *mut SOLE_AUTHENTICATION_SERVICE,
        pReserved1: *mut ::std::os::raw::c_void,
        dwAuthnLevel: DWORD,
        dwImpLevel: DWORD,
        pAuthList: *mut ::std::os::raw::c_void,
        dwCapabilities: DWORD,
        pReserved3: *mut ::std::os::raw::c_void,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoGetCallContext(
        riid: *const IID,
        ppInterface: *mut *mut ::std::os::raw::c_void,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoQueryProxyBlanket(
        pProxy: *mut IUnknown,
        pwAuthnSvc: *mut DWORD,
        pAuthzSvc: *mut DWORD,
        pServerPrincName: *mut LPOLESTR,
        pAuthnLevel: *mut DWORD,
        pImpLevel: *mut DWORD,
        pAuthInfo: *mut RPC_AUTH_IDENTITY_HANDLE,
        pCapabilites: *mut DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoSetProxyBlanket(
        pProxy: *mut IUnknown,
        dwAuthnSvc: DWORD,
        dwAuthzSvc: DWORD,
        pServerPrincName: *mut OLECHAR,
        dwAuthnLevel: DWORD,
        dwImpLevel: DWORD,
        pAuthInfo: RPC_AUTH_IDENTITY_HANDLE,
        dwCapabilities: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoCopyProxy(pProxy: *mut IUnknown, ppCopy: *mut *mut IUnknown) -> HRESULT;
}
extern "C" {
    pub fn CoQueryClientBlanket(
        pAuthnSvc: *mut DWORD,
        pAuthzSvc: *mut DWORD,
        pServerPrincName: *mut LPOLESTR,
        pAuthnLevel: *mut DWORD,
        pImpLevel: *mut DWORD,
        pPrivs: *mut RPC_AUTHZ_HANDLE,
        pCapabilities: *mut DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoImpersonateClient() -> HRESULT;
}
extern "C" {
    pub fn CoRevertToSelf() -> HRESULT;
}
extern "C" {
    pub fn CoQueryAuthenticationServices(
        pcAuthSvc: *mut DWORD,
        asAuthSvc: *mut *mut SOLE_AUTHENTICATION_SERVICE,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoSwitchCallContext(
        pNewObject: *mut IUnknown,
        ppOldObject: *mut *mut IUnknown,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoCreateInstance(
        rclsid: *const IID,
        pUnkOuter: LPUNKNOWN,
        dwClsContext: DWORD,
        riid: *const IID,
        ppv: *mut LPVOID,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoCreateInstanceEx(
        Clsid: *const IID,
        punkOuter: *mut IUnknown,
        dwClsCtx: DWORD,
        pServerInfo: *mut COSERVERINFO,
        dwCount: DWORD,
        pResults: *mut MULTI_QI,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoRegisterActivationFilter(pActivationFilter: *mut IActivationFilter) -> HRESULT;
}
extern "C" {
    pub fn CoCreateInstanceFromApp(
        Clsid: *const IID,
        punkOuter: *mut IUnknown,
        dwClsCtx: DWORD,
        reserved: PVOID,
        dwCount: DWORD,
        pResults: *mut MULTI_QI,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoGetCancelObject(
        dwThreadId: DWORD,
        iid: *const IID,
        ppUnk: *mut *mut ::std::os::raw::c_void,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoSetCancelObject(pUnk: *mut IUnknown) -> HRESULT;
}
extern "C" {
    pub fn CoCancelCall(dwThreadId: DWORD, ulTimeout: ULONG) -> HRESULT;
}
extern "C" {
    pub fn CoTestCancel() -> HRESULT;
}
extern "C" {
    pub fn CoEnableCallCancellation(pReserved: LPVOID) -> HRESULT;
}
extern "C" {
    pub fn CoDisableCallCancellation(pReserved: LPVOID) -> HRESULT;
}
extern "C" {
    pub fn StringFromCLSID(rclsid: *const IID, lplpsz: *mut LPOLESTR) -> HRESULT;
}
extern "C" {
    pub fn CLSIDFromString(lpsz: LPCOLESTR, pclsid: LPCLSID) -> HRESULT;
}
extern "C" {
    pub fn StringFromIID(rclsid: *const IID, lplpsz: *mut LPOLESTR) -> HRESULT;
}
extern "C" {
    pub fn IIDFromString(lpsz: LPCOLESTR, lpiid: LPIID) -> HRESULT;
}
extern "C" {
    pub fn ProgIDFromCLSID(clsid: *const IID, lplpszProgID: *mut LPOLESTR) -> HRESULT;
}
extern "C" {
    pub fn CLSIDFromProgID(lpszProgID: LPCOLESTR, lpclsid: LPCLSID) -> HRESULT;
}
extern "C" {
    pub fn StringFromGUID2(
        rguid: *const GUID,
        lpsz: LPOLESTR,
        cchMax: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn CoCreateGuid(pguid: *mut GUID) -> HRESULT;
}
pub type PROPVARIANT = tagPROPVARIANT;
extern "C" {
    pub fn PropVariantCopy(pvarDest: *mut PROPVARIANT, pvarSrc: *const PROPVARIANT) -> HRESULT;
}
extern "C" {
    pub fn PropVariantClear(pvar: *mut PROPVARIANT) -> HRESULT;
}
extern "C" {
    pub fn FreePropVariantArray(cVariants: ULONG, rgvars: *mut PROPVARIANT) -> HRESULT;
}
extern "C" {
    pub fn CoWaitForMultipleHandles(
        dwFlags: DWORD,
        dwTimeout: DWORD,
        cHandles: ULONG,
        pHandles: LPHANDLE,
        lpdwindex: LPDWORD,
    ) -> HRESULT;
}
pub const tagCOWAIT_FLAGS_COWAIT_DEFAULT: tagCOWAIT_FLAGS = 0;
pub const tagCOWAIT_FLAGS_COWAIT_WAITALL: tagCOWAIT_FLAGS = 1;
pub const tagCOWAIT_FLAGS_COWAIT_ALERTABLE: tagCOWAIT_FLAGS = 2;
pub const tagCOWAIT_FLAGS_COWAIT_INPUTAVAILABLE: tagCOWAIT_FLAGS = 4;
pub const tagCOWAIT_FLAGS_COWAIT_DISPATCH_CALLS: tagCOWAIT_FLAGS = 8;
pub const tagCOWAIT_FLAGS_COWAIT_DISPATCH_WINDOW_MESSAGES: tagCOWAIT_FLAGS = 16;
pub type tagCOWAIT_FLAGS = ::std::os::raw::c_int;
pub use self::tagCOWAIT_FLAGS as COWAIT_FLAGS;
pub const CWMO_FLAGS_CWMO_DEFAULT: CWMO_FLAGS = 0;
pub const CWMO_FLAGS_CWMO_DISPATCH_CALLS: CWMO_FLAGS = 1;
pub const CWMO_FLAGS_CWMO_DISPATCH_WINDOW_MESSAGES: CWMO_FLAGS = 2;
pub type CWMO_FLAGS = ::std::os::raw::c_int;
extern "C" {
    pub fn CoWaitForMultipleObjects(
        dwFlags: DWORD,
        dwTimeout: DWORD,
        cHandles: ULONG,
        pHandles: *const HANDLE,
        lpdwindex: LPDWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoGetTreatAsClass(clsidOld: *const IID, pClsidNew: LPCLSID) -> HRESULT;
}
extern "C" {
    pub fn CoInvalidateRemoteMachineBindings(pszMachineName: LPOLESTR) -> HRESULT;
}
pub const AgileReferenceOptions_AGILEREFERENCE_DEFAULT: AgileReferenceOptions = 0;
pub const AgileReferenceOptions_AGILEREFERENCE_DELAYEDMARSHAL: AgileReferenceOptions = 1;
pub type AgileReferenceOptions = ::std::os::raw::c_int;
extern "C" {
    pub fn RoGetAgileReference(
        options: AgileReferenceOptions,
        riid: *const IID,
        pUnk: *mut IUnknown,
        ppAgileReference: *mut *mut IAgileReference,
    ) -> HRESULT;
}
pub type LPFNGETCLASSOBJECT = ::std::option::Option<
    unsafe extern "C" fn(arg1: *const IID, arg2: *const IID, arg3: *mut LPVOID) -> HRESULT,
>;
pub type LPFNCANUNLOADNOW = ::std::option::Option<unsafe extern "C" fn() -> HRESULT>;
extern "C" {
    pub fn DllGetClassObject(rclsid: *const IID, riid: *const IID, ppv: *mut LPVOID) -> HRESULT;
}
extern "C" {
    pub fn DllCanUnloadNow() -> HRESULT;
}
extern "C" {
    pub fn CoTaskMemAlloc(cb: SIZE_T) -> LPVOID;
}
extern "C" {
    pub fn CoTaskMemRealloc(pv: LPVOID, cb: SIZE_T) -> LPVOID;
}
extern "C" {
    pub fn CoTaskMemFree(pv: LPVOID);
}
extern "C" {
    pub fn CoFileTimeNow(lpFileTime: *mut FILETIME) -> HRESULT;
}
extern "C" {
    pub fn CLSIDFromProgIDEx(lpszProgID: LPCOLESTR, lpclsid: LPCLSID) -> HRESULT;
}
extern "C" {
    pub static mut __MIDL_itf_unknwn_0000_0000_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_unknwn_0000_0000_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_unknwn_0000_0001_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_unknwn_0000_0001_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_unknwn_0000_0002_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_unknwn_0000_0002_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_unknwn_0000_0003_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_unknwn_0000_0003_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0053_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0053_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPMALLOCSPY = *mut IMallocSpy;
extern "C" {
    pub static IID_IMallocSpy: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IMallocSpyVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMallocSpy,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IMallocSpy) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IMallocSpy) -> ULONG>,
    pub PreAlloc: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IMallocSpy, cbRequest: SIZE_T) -> SIZE_T,
    >,
    pub PostAlloc: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMallocSpy,
            pActual: *mut ::std::os::raw::c_void,
        ) -> *mut ::std::os::raw::c_void,
    >,
    pub PreFree: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMallocSpy,
            pRequest: *mut ::std::os::raw::c_void,
            fSpyed: BOOL,
        ) -> *mut ::std::os::raw::c_void,
    >,
    pub PostFree: ::std::option::Option<unsafe extern "C" fn(This: *mut IMallocSpy, fSpyed: BOOL)>,
    pub PreRealloc: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMallocSpy,
            pRequest: *mut ::std::os::raw::c_void,
            cbRequest: SIZE_T,
            ppNewRequest: *mut *mut ::std::os::raw::c_void,
            fSpyed: BOOL,
        ) -> SIZE_T,
    >,
    pub PostRealloc: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMallocSpy,
            pActual: *mut ::std::os::raw::c_void,
            fSpyed: BOOL,
        ) -> *mut ::std::os::raw::c_void,
    >,
    pub PreGetSize: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMallocSpy,
            pRequest: *mut ::std::os::raw::c_void,
            fSpyed: BOOL,
        ) -> *mut ::std::os::raw::c_void,
    >,
    pub PostGetSize: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IMallocSpy, cbActual: SIZE_T, fSpyed: BOOL) -> SIZE_T,
    >,
    pub PreDidAlloc: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMallocSpy,
            pRequest: *mut ::std::os::raw::c_void,
            fSpyed: BOOL,
        ) -> *mut ::std::os::raw::c_void,
    >,
    pub PostDidAlloc: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMallocSpy,
            pRequest: *mut ::std::os::raw::c_void,
            fSpyed: BOOL,
            fActual: ::std::os::raw::c_int,
        ) -> ::std::os::raw::c_int,
    >,
    pub PreHeapMinimize: ::std::option::Option<unsafe extern "C" fn(This: *mut IMallocSpy)>,
    pub PostHeapMinimize: ::std::option::Option<unsafe extern "C" fn(This: *mut IMallocSpy)>,
}
#[test]
fn bindgen_test_layout_IMallocSpyVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IMallocSpyVtbl>(),
        120usize,
        concat!("Size of: ", stringify!(IMallocSpyVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IMallocSpyVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IMallocSpyVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMallocSpyVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IMallocSpyVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMallocSpyVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IMallocSpyVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMallocSpyVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IMallocSpyVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMallocSpyVtbl>())).PreAlloc as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IMallocSpyVtbl),
            "::",
            stringify!(PreAlloc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMallocSpyVtbl>())).PostAlloc as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IMallocSpyVtbl),
            "::",
            stringify!(PostAlloc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMallocSpyVtbl>())).PreFree as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IMallocSpyVtbl),
            "::",
            stringify!(PreFree)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMallocSpyVtbl>())).PostFree as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IMallocSpyVtbl),
            "::",
            stringify!(PostFree)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMallocSpyVtbl>())).PreRealloc as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IMallocSpyVtbl),
            "::",
            stringify!(PreRealloc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMallocSpyVtbl>())).PostRealloc as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IMallocSpyVtbl),
            "::",
            stringify!(PostRealloc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMallocSpyVtbl>())).PreGetSize as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IMallocSpyVtbl),
            "::",
            stringify!(PreGetSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMallocSpyVtbl>())).PostGetSize as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IMallocSpyVtbl),
            "::",
            stringify!(PostGetSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMallocSpyVtbl>())).PreDidAlloc as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IMallocSpyVtbl),
            "::",
            stringify!(PreDidAlloc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMallocSpyVtbl>())).PostDidAlloc as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IMallocSpyVtbl),
            "::",
            stringify!(PostDidAlloc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMallocSpyVtbl>())).PreHeapMinimize as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IMallocSpyVtbl),
            "::",
            stringify!(PreHeapMinimize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMallocSpyVtbl>())).PostHeapMinimize as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IMallocSpyVtbl),
            "::",
            stringify!(PostHeapMinimize)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IMallocSpy {
    pub lpVtbl: *mut IMallocSpyVtbl,
}
#[test]
fn bindgen_test_layout_IMallocSpy() {
    assert_eq!(
        ::std::mem::size_of::<IMallocSpy>(),
        8usize,
        concat!("Size of: ", stringify!(IMallocSpy))
    );
    assert_eq!(
        ::std::mem::align_of::<IMallocSpy>(),
        8usize,
        concat!("Alignment of ", stringify!(IMallocSpy))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMallocSpy>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IMallocSpy),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0054_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0054_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPBC = *mut IBindCtx;
pub type LPBINDCTX = *mut IBindCtx;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagBIND_OPTS {
    pub cbStruct: DWORD,
    pub grfFlags: DWORD,
    pub grfMode: DWORD,
    pub dwTickCountDeadline: DWORD,
}
#[test]
fn bindgen_test_layout_tagBIND_OPTS() {
    assert_eq!(
        ::std::mem::size_of::<tagBIND_OPTS>(),
        16usize,
        concat!("Size of: ", stringify!(tagBIND_OPTS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagBIND_OPTS>(),
        4usize,
        concat!("Alignment of ", stringify!(tagBIND_OPTS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBIND_OPTS>())).cbStruct as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBIND_OPTS),
            "::",
            stringify!(cbStruct)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBIND_OPTS>())).grfFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBIND_OPTS),
            "::",
            stringify!(grfFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBIND_OPTS>())).grfMode as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBIND_OPTS),
            "::",
            stringify!(grfMode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagBIND_OPTS>())).dwTickCountDeadline as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBIND_OPTS),
            "::",
            stringify!(dwTickCountDeadline)
        )
    );
}
pub type BIND_OPTS = tagBIND_OPTS;
pub type LPBIND_OPTS = *mut tagBIND_OPTS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagBIND_OPTS2 {
    pub cbStruct: DWORD,
    pub grfFlags: DWORD,
    pub grfMode: DWORD,
    pub dwTickCountDeadline: DWORD,
    pub dwTrackFlags: DWORD,
    pub dwClassContext: DWORD,
    pub locale: LCID,
    pub pServerInfo: *mut COSERVERINFO,
}
#[test]
fn bindgen_test_layout_tagBIND_OPTS2() {
    assert_eq!(
        ::std::mem::size_of::<tagBIND_OPTS2>(),
        40usize,
        concat!("Size of: ", stringify!(tagBIND_OPTS2))
    );
    assert_eq!(
        ::std::mem::align_of::<tagBIND_OPTS2>(),
        8usize,
        concat!("Alignment of ", stringify!(tagBIND_OPTS2))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBIND_OPTS2>())).cbStruct as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBIND_OPTS2),
            "::",
            stringify!(cbStruct)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBIND_OPTS2>())).grfFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBIND_OPTS2),
            "::",
            stringify!(grfFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBIND_OPTS2>())).grfMode as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBIND_OPTS2),
            "::",
            stringify!(grfMode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagBIND_OPTS2>())).dwTickCountDeadline as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBIND_OPTS2),
            "::",
            stringify!(dwTickCountDeadline)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBIND_OPTS2>())).dwTrackFlags as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBIND_OPTS2),
            "::",
            stringify!(dwTrackFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBIND_OPTS2>())).dwClassContext as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBIND_OPTS2),
            "::",
            stringify!(dwClassContext)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBIND_OPTS2>())).locale as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBIND_OPTS2),
            "::",
            stringify!(locale)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBIND_OPTS2>())).pServerInfo as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBIND_OPTS2),
            "::",
            stringify!(pServerInfo)
        )
    );
}
pub type BIND_OPTS2 = tagBIND_OPTS2;
pub type LPBIND_OPTS2 = *mut tagBIND_OPTS2;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagBIND_OPTS3 {
    pub cbStruct: DWORD,
    pub grfFlags: DWORD,
    pub grfMode: DWORD,
    pub dwTickCountDeadline: DWORD,
    pub dwTrackFlags: DWORD,
    pub dwClassContext: DWORD,
    pub locale: LCID,
    pub pServerInfo: *mut COSERVERINFO,
    pub hwnd: HWND,
}
#[test]
fn bindgen_test_layout_tagBIND_OPTS3() {
    assert_eq!(
        ::std::mem::size_of::<tagBIND_OPTS3>(),
        48usize,
        concat!("Size of: ", stringify!(tagBIND_OPTS3))
    );
    assert_eq!(
        ::std::mem::align_of::<tagBIND_OPTS3>(),
        8usize,
        concat!("Alignment of ", stringify!(tagBIND_OPTS3))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBIND_OPTS3>())).cbStruct as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBIND_OPTS3),
            "::",
            stringify!(cbStruct)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBIND_OPTS3>())).grfFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBIND_OPTS3),
            "::",
            stringify!(grfFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBIND_OPTS3>())).grfMode as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBIND_OPTS3),
            "::",
            stringify!(grfMode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagBIND_OPTS3>())).dwTickCountDeadline as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBIND_OPTS3),
            "::",
            stringify!(dwTickCountDeadline)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBIND_OPTS3>())).dwTrackFlags as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBIND_OPTS3),
            "::",
            stringify!(dwTrackFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBIND_OPTS3>())).dwClassContext as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBIND_OPTS3),
            "::",
            stringify!(dwClassContext)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBIND_OPTS3>())).locale as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBIND_OPTS3),
            "::",
            stringify!(locale)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBIND_OPTS3>())).pServerInfo as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBIND_OPTS3),
            "::",
            stringify!(pServerInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBIND_OPTS3>())).hwnd as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBIND_OPTS3),
            "::",
            stringify!(hwnd)
        )
    );
}
pub type BIND_OPTS3 = tagBIND_OPTS3;
pub type LPBIND_OPTS3 = *mut tagBIND_OPTS3;
pub const tagBIND_FLAGS_BIND_MAYBOTHERUSER: tagBIND_FLAGS = 1;
pub const tagBIND_FLAGS_BIND_JUSTTESTEXISTENCE: tagBIND_FLAGS = 2;
pub type tagBIND_FLAGS = ::std::os::raw::c_int;
pub use self::tagBIND_FLAGS as BIND_FLAGS;
extern "C" {
    pub static IID_IBindCtx: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IBindCtxVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IBindCtx,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IBindCtx) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IBindCtx) -> ULONG>,
    pub RegisterObjectBound: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IBindCtx, punk: *mut IUnknown) -> HRESULT,
    >,
    pub RevokeObjectBound: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IBindCtx, punk: *mut IUnknown) -> HRESULT,
    >,
    pub ReleaseBoundObjects:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IBindCtx) -> HRESULT>,
    pub SetBindOptions: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IBindCtx, pbindopts: *mut BIND_OPTS) -> HRESULT,
    >,
    pub GetBindOptions: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IBindCtx, pbindopts: *mut BIND_OPTS) -> HRESULT,
    >,
    pub GetRunningObjectTable: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IBindCtx, pprot: *mut *mut IRunningObjectTable) -> HRESULT,
    >,
    pub RegisterObjectParam: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IBindCtx, pszKey: LPOLESTR, punk: *mut IUnknown) -> HRESULT,
    >,
    pub GetObjectParam: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IBindCtx,
            pszKey: LPOLESTR,
            ppunk: *mut *mut IUnknown,
        ) -> HRESULT,
    >,
    pub EnumObjectParam: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IBindCtx, ppenum: *mut *mut IEnumString) -> HRESULT,
    >,
    pub RevokeObjectParam: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IBindCtx, pszKey: LPOLESTR) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IBindCtxVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IBindCtxVtbl>(),
        104usize,
        concat!("Size of: ", stringify!(IBindCtxVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IBindCtxVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IBindCtxVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindCtxVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindCtxVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindCtxVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindCtxVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindCtxVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindCtxVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindCtxVtbl>())).RegisterObjectBound as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindCtxVtbl),
            "::",
            stringify!(RegisterObjectBound)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindCtxVtbl>())).RevokeObjectBound as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindCtxVtbl),
            "::",
            stringify!(RevokeObjectBound)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindCtxVtbl>())).ReleaseBoundObjects as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindCtxVtbl),
            "::",
            stringify!(ReleaseBoundObjects)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindCtxVtbl>())).SetBindOptions as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindCtxVtbl),
            "::",
            stringify!(SetBindOptions)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindCtxVtbl>())).GetBindOptions as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindCtxVtbl),
            "::",
            stringify!(GetBindOptions)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindCtxVtbl>())).GetRunningObjectTable as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindCtxVtbl),
            "::",
            stringify!(GetRunningObjectTable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindCtxVtbl>())).RegisterObjectParam as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindCtxVtbl),
            "::",
            stringify!(RegisterObjectParam)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindCtxVtbl>())).GetObjectParam as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindCtxVtbl),
            "::",
            stringify!(GetObjectParam)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindCtxVtbl>())).EnumObjectParam as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindCtxVtbl),
            "::",
            stringify!(EnumObjectParam)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindCtxVtbl>())).RevokeObjectParam as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindCtxVtbl),
            "::",
            stringify!(RevokeObjectParam)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IBindCtx {
    pub lpVtbl: *mut IBindCtxVtbl,
}
#[test]
fn bindgen_test_layout_IBindCtx() {
    assert_eq!(
        ::std::mem::size_of::<IBindCtx>(),
        8usize,
        concat!("Size of: ", stringify!(IBindCtx))
    );
    assert_eq!(
        ::std::mem::align_of::<IBindCtx>(),
        8usize,
        concat!("Alignment of ", stringify!(IBindCtx))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindCtx>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindCtx),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IBindCtx_RemoteSetBindOptions_Proxy(
        This: *mut IBindCtx,
        pbindopts: *mut BIND_OPTS2,
    ) -> HRESULT;
}
extern "C" {
    pub fn IBindCtx_RemoteSetBindOptions_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn IBindCtx_RemoteGetBindOptions_Proxy(
        This: *mut IBindCtx,
        pbindopts: *mut BIND_OPTS2,
    ) -> HRESULT;
}
extern "C" {
    pub fn IBindCtx_RemoteGetBindOptions_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
pub type LPENUMMONIKER = *mut IEnumMoniker;
extern "C" {
    pub static IID_IEnumMoniker: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IEnumMonikerVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IEnumMoniker,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IEnumMoniker) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IEnumMoniker) -> ULONG>,
    pub Next: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IEnumMoniker,
            celt: ULONG,
            rgelt: *mut *mut IMoniker,
            pceltFetched: *mut ULONG,
        ) -> HRESULT,
    >,
    pub Skip: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IEnumMoniker, celt: ULONG) -> HRESULT,
    >,
    pub Reset: ::std::option::Option<unsafe extern "C" fn(This: *mut IEnumMoniker) -> HRESULT>,
    pub Clone: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IEnumMoniker, ppenum: *mut *mut IEnumMoniker) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IEnumMonikerVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IEnumMonikerVtbl>(),
        56usize,
        concat!("Size of: ", stringify!(IEnumMonikerVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IEnumMonikerVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IEnumMonikerVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumMonikerVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumMonikerVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumMonikerVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumMonikerVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumMonikerVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumMonikerVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumMonikerVtbl>())).Next as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumMonikerVtbl),
            "::",
            stringify!(Next)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumMonikerVtbl>())).Skip as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumMonikerVtbl),
            "::",
            stringify!(Skip)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumMonikerVtbl>())).Reset as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumMonikerVtbl),
            "::",
            stringify!(Reset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumMonikerVtbl>())).Clone as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumMonikerVtbl),
            "::",
            stringify!(Clone)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IEnumMoniker {
    pub lpVtbl: *mut IEnumMonikerVtbl,
}
#[test]
fn bindgen_test_layout_IEnumMoniker() {
    assert_eq!(
        ::std::mem::size_of::<IEnumMoniker>(),
        8usize,
        concat!("Size of: ", stringify!(IEnumMoniker))
    );
    assert_eq!(
        ::std::mem::align_of::<IEnumMoniker>(),
        8usize,
        concat!("Alignment of ", stringify!(IEnumMoniker))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumMoniker>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumMoniker),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IEnumMoniker_RemoteNext_Proxy(
        This: *mut IEnumMoniker,
        celt: ULONG,
        rgelt: *mut *mut IMoniker,
        pceltFetched: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IEnumMoniker_RemoteNext_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0056_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0056_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPRUNNABLEOBJECT = *mut IRunnableObject;
extern "C" {
    pub static IID_IRunnableObject: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IRunnableObjectVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRunnableObject,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IRunnableObject) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IRunnableObject) -> ULONG>,
    pub GetRunningClass: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IRunnableObject, lpClsid: LPCLSID) -> HRESULT,
    >,
    pub Run: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IRunnableObject, pbc: LPBINDCTX) -> HRESULT,
    >,
    pub IsRunning: ::std::option::Option<unsafe extern "C" fn(This: *mut IRunnableObject) -> BOOL>,
    pub LockRunning: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRunnableObject,
            fLock: BOOL,
            fLastUnlockCloses: BOOL,
        ) -> HRESULT,
    >,
    pub SetContainedObject: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IRunnableObject, fContained: BOOL) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IRunnableObjectVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IRunnableObjectVtbl>(),
        64usize,
        concat!("Size of: ", stringify!(IRunnableObjectVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IRunnableObjectVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IRunnableObjectVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRunnableObjectVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IRunnableObjectVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRunnableObjectVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IRunnableObjectVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRunnableObjectVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IRunnableObjectVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRunnableObjectVtbl>())).GetRunningClass as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IRunnableObjectVtbl),
            "::",
            stringify!(GetRunningClass)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRunnableObjectVtbl>())).Run as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IRunnableObjectVtbl),
            "::",
            stringify!(Run)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRunnableObjectVtbl>())).IsRunning as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IRunnableObjectVtbl),
            "::",
            stringify!(IsRunning)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRunnableObjectVtbl>())).LockRunning as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IRunnableObjectVtbl),
            "::",
            stringify!(LockRunning)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRunnableObjectVtbl>())).SetContainedObject as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IRunnableObjectVtbl),
            "::",
            stringify!(SetContainedObject)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IRunnableObject {
    pub lpVtbl: *mut IRunnableObjectVtbl,
}
#[test]
fn bindgen_test_layout_IRunnableObject() {
    assert_eq!(
        ::std::mem::size_of::<IRunnableObject>(),
        8usize,
        concat!("Size of: ", stringify!(IRunnableObject))
    );
    assert_eq!(
        ::std::mem::align_of::<IRunnableObject>(),
        8usize,
        concat!("Alignment of ", stringify!(IRunnableObject))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRunnableObject>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IRunnableObject),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IRunnableObject_RemoteIsRunning_Proxy(This: *mut IRunnableObject) -> HRESULT;
}
extern "C" {
    pub fn IRunnableObject_RemoteIsRunning_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
pub type LPRUNNINGOBJECTTABLE = *mut IRunningObjectTable;
extern "C" {
    pub static IID_IRunningObjectTable: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IRunningObjectTableVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRunningObjectTable,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IRunningObjectTable) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IRunningObjectTable) -> ULONG>,
    pub Register: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRunningObjectTable,
            grfFlags: DWORD,
            punkObject: *mut IUnknown,
            pmkObjectName: *mut IMoniker,
            pdwRegister: *mut DWORD,
        ) -> HRESULT,
    >,
    pub Revoke: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IRunningObjectTable, dwRegister: DWORD) -> HRESULT,
    >,
    pub IsRunning: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRunningObjectTable,
            pmkObjectName: *mut IMoniker,
        ) -> HRESULT,
    >,
    pub GetObjectA: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRunningObjectTable,
            pmkObjectName: *mut IMoniker,
            ppunkObject: *mut *mut IUnknown,
        ) -> HRESULT,
    >,
    pub NoteChangeTime: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRunningObjectTable,
            dwRegister: DWORD,
            pfiletime: *mut FILETIME,
        ) -> HRESULT,
    >,
    pub GetTimeOfLastChange: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRunningObjectTable,
            pmkObjectName: *mut IMoniker,
            pfiletime: *mut FILETIME,
        ) -> HRESULT,
    >,
    pub EnumRunning: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRunningObjectTable,
            ppenumMoniker: *mut *mut IEnumMoniker,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IRunningObjectTableVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IRunningObjectTableVtbl>(),
        80usize,
        concat!("Size of: ", stringify!(IRunningObjectTableVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IRunningObjectTableVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IRunningObjectTableVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRunningObjectTableVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IRunningObjectTableVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRunningObjectTableVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IRunningObjectTableVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRunningObjectTableVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IRunningObjectTableVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRunningObjectTableVtbl>())).Register as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IRunningObjectTableVtbl),
            "::",
            stringify!(Register)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRunningObjectTableVtbl>())).Revoke as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IRunningObjectTableVtbl),
            "::",
            stringify!(Revoke)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRunningObjectTableVtbl>())).IsRunning as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IRunningObjectTableVtbl),
            "::",
            stringify!(IsRunning)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRunningObjectTableVtbl>())).GetObjectA as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IRunningObjectTableVtbl),
            "::",
            stringify!(GetObjectA)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRunningObjectTableVtbl>())).NoteChangeTime as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IRunningObjectTableVtbl),
            "::",
            stringify!(NoteChangeTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRunningObjectTableVtbl>())).GetTimeOfLastChange as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IRunningObjectTableVtbl),
            "::",
            stringify!(GetTimeOfLastChange)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRunningObjectTableVtbl>())).EnumRunning as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IRunningObjectTableVtbl),
            "::",
            stringify!(EnumRunning)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IRunningObjectTable {
    pub lpVtbl: *mut IRunningObjectTableVtbl,
}
#[test]
fn bindgen_test_layout_IRunningObjectTable() {
    assert_eq!(
        ::std::mem::size_of::<IRunningObjectTable>(),
        8usize,
        concat!("Size of: ", stringify!(IRunningObjectTable))
    );
    assert_eq!(
        ::std::mem::align_of::<IRunningObjectTable>(),
        8usize,
        concat!("Alignment of ", stringify!(IRunningObjectTable))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRunningObjectTable>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IRunningObjectTable),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0058_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0058_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPPERSIST = *mut IPersist;
extern "C" {
    pub static IID_IPersist: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IPersistVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPersist,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IPersist) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IPersist) -> ULONG>,
    pub GetClassID: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IPersist, pClassID: *mut CLSID) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IPersistVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IPersistVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IPersistVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IPersistVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IPersistVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistVtbl>())).GetClassID as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistVtbl),
            "::",
            stringify!(GetClassID)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IPersist {
    pub lpVtbl: *mut IPersistVtbl,
}
#[test]
fn bindgen_test_layout_IPersist() {
    assert_eq!(
        ::std::mem::size_of::<IPersist>(),
        8usize,
        concat!("Size of: ", stringify!(IPersist))
    );
    assert_eq!(
        ::std::mem::align_of::<IPersist>(),
        8usize,
        concat!("Alignment of ", stringify!(IPersist))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersist>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersist),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPPERSISTSTREAM = *mut IPersistStream;
extern "C" {
    pub static IID_IPersistStream: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IPersistStreamVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPersistStream,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IPersistStream) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IPersistStream) -> ULONG>,
    pub GetClassID: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IPersistStream, pClassID: *mut CLSID) -> HRESULT,
    >,
    pub IsDirty: ::std::option::Option<unsafe extern "C" fn(This: *mut IPersistStream) -> HRESULT>,
    pub Load: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IPersistStream, pStm: *mut IStream) -> HRESULT,
    >,
    pub Save: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPersistStream,
            pStm: *mut IStream,
            fClearDirty: BOOL,
        ) -> HRESULT,
    >,
    pub GetSizeMax: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IPersistStream, pcbSize: *mut ULARGE_INTEGER) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IPersistStreamVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IPersistStreamVtbl>(),
        64usize,
        concat!("Size of: ", stringify!(IPersistStreamVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IPersistStreamVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IPersistStreamVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IPersistStreamVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistStreamVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistStreamVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistStreamVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistStreamVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistStreamVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistStreamVtbl>())).GetClassID as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistStreamVtbl),
            "::",
            stringify!(GetClassID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistStreamVtbl>())).IsDirty as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistStreamVtbl),
            "::",
            stringify!(IsDirty)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistStreamVtbl>())).Load as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistStreamVtbl),
            "::",
            stringify!(Load)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistStreamVtbl>())).Save as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistStreamVtbl),
            "::",
            stringify!(Save)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistStreamVtbl>())).GetSizeMax as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistStreamVtbl),
            "::",
            stringify!(GetSizeMax)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IPersistStream {
    pub lpVtbl: *mut IPersistStreamVtbl,
}
#[test]
fn bindgen_test_layout_IPersistStream() {
    assert_eq!(
        ::std::mem::size_of::<IPersistStream>(),
        8usize,
        concat!("Size of: ", stringify!(IPersistStream))
    );
    assert_eq!(
        ::std::mem::align_of::<IPersistStream>(),
        8usize,
        concat!("Alignment of ", stringify!(IPersistStream))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistStream>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistStream),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPMONIKER = *mut IMoniker;
pub const tagMKSYS_MKSYS_NONE: tagMKSYS = 0;
pub const tagMKSYS_MKSYS_GENERICCOMPOSITE: tagMKSYS = 1;
pub const tagMKSYS_MKSYS_FILEMONIKER: tagMKSYS = 2;
pub const tagMKSYS_MKSYS_ANTIMONIKER: tagMKSYS = 3;
pub const tagMKSYS_MKSYS_ITEMMONIKER: tagMKSYS = 4;
pub const tagMKSYS_MKSYS_POINTERMONIKER: tagMKSYS = 5;
pub const tagMKSYS_MKSYS_CLASSMONIKER: tagMKSYS = 7;
pub const tagMKSYS_MKSYS_OBJREFMONIKER: tagMKSYS = 8;
pub const tagMKSYS_MKSYS_SESSIONMONIKER: tagMKSYS = 9;
pub const tagMKSYS_MKSYS_LUAMONIKER: tagMKSYS = 10;
pub type tagMKSYS = ::std::os::raw::c_int;
pub use self::tagMKSYS as MKSYS;
pub const tagMKREDUCE_MKRREDUCE_ONE: tagMKREDUCE = 196608;
pub const tagMKREDUCE_MKRREDUCE_TOUSER: tagMKREDUCE = 131072;
pub const tagMKREDUCE_MKRREDUCE_THROUGHUSER: tagMKREDUCE = 65536;
pub const tagMKREDUCE_MKRREDUCE_ALL: tagMKREDUCE = 0;
pub type tagMKREDUCE = ::std::os::raw::c_int;
pub use self::tagMKREDUCE as MKRREDUCE;
extern "C" {
    pub static IID_IMoniker: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IMonikerVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMoniker,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IMoniker) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IMoniker) -> ULONG>,
    pub GetClassID: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IMoniker, pClassID: *mut CLSID) -> HRESULT,
    >,
    pub IsDirty: ::std::option::Option<unsafe extern "C" fn(This: *mut IMoniker) -> HRESULT>,
    pub Load: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IMoniker, pStm: *mut IStream) -> HRESULT,
    >,
    pub Save: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IMoniker, pStm: *mut IStream, fClearDirty: BOOL) -> HRESULT,
    >,
    pub GetSizeMax: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IMoniker, pcbSize: *mut ULARGE_INTEGER) -> HRESULT,
    >,
    pub BindToObject: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMoniker,
            pbc: *mut IBindCtx,
            pmkToLeft: *mut IMoniker,
            riidResult: *const IID,
            ppvResult: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub BindToStorage: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMoniker,
            pbc: *mut IBindCtx,
            pmkToLeft: *mut IMoniker,
            riid: *const IID,
            ppvObj: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub Reduce: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMoniker,
            pbc: *mut IBindCtx,
            dwReduceHowFar: DWORD,
            ppmkToLeft: *mut *mut IMoniker,
            ppmkReduced: *mut *mut IMoniker,
        ) -> HRESULT,
    >,
    pub ComposeWith: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMoniker,
            pmkRight: *mut IMoniker,
            fOnlyIfNotGeneric: BOOL,
            ppmkComposite: *mut *mut IMoniker,
        ) -> HRESULT,
    >,
    pub Enum: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMoniker,
            fForward: BOOL,
            ppenumMoniker: *mut *mut IEnumMoniker,
        ) -> HRESULT,
    >,
    pub IsEqual: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IMoniker, pmkOtherMoniker: *mut IMoniker) -> HRESULT,
    >,
    pub Hash: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IMoniker, pdwHash: *mut DWORD) -> HRESULT,
    >,
    pub IsRunning: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMoniker,
            pbc: *mut IBindCtx,
            pmkToLeft: *mut IMoniker,
            pmkNewlyRunning: *mut IMoniker,
        ) -> HRESULT,
    >,
    pub GetTimeOfLastChange: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMoniker,
            pbc: *mut IBindCtx,
            pmkToLeft: *mut IMoniker,
            pFileTime: *mut FILETIME,
        ) -> HRESULT,
    >,
    pub Inverse: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IMoniker, ppmk: *mut *mut IMoniker) -> HRESULT,
    >,
    pub CommonPrefixWith: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMoniker,
            pmkOther: *mut IMoniker,
            ppmkPrefix: *mut *mut IMoniker,
        ) -> HRESULT,
    >,
    pub RelativePathTo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMoniker,
            pmkOther: *mut IMoniker,
            ppmkRelPath: *mut *mut IMoniker,
        ) -> HRESULT,
    >,
    pub GetDisplayName: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMoniker,
            pbc: *mut IBindCtx,
            pmkToLeft: *mut IMoniker,
            ppszDisplayName: *mut LPOLESTR,
        ) -> HRESULT,
    >,
    pub ParseDisplayName: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMoniker,
            pbc: *mut IBindCtx,
            pmkToLeft: *mut IMoniker,
            pszDisplayName: LPOLESTR,
            pchEaten: *mut ULONG,
            ppmkOut: *mut *mut IMoniker,
        ) -> HRESULT,
    >,
    pub IsSystemMoniker: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IMoniker, pdwMksys: *mut DWORD) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IMonikerVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IMonikerVtbl>(),
        184usize,
        concat!("Size of: ", stringify!(IMonikerVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IMonikerVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IMonikerVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMonikerVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IMonikerVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMonikerVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IMonikerVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMonikerVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IMonikerVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMonikerVtbl>())).GetClassID as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IMonikerVtbl),
            "::",
            stringify!(GetClassID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMonikerVtbl>())).IsDirty as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IMonikerVtbl),
            "::",
            stringify!(IsDirty)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMonikerVtbl>())).Load as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IMonikerVtbl),
            "::",
            stringify!(Load)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMonikerVtbl>())).Save as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IMonikerVtbl),
            "::",
            stringify!(Save)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMonikerVtbl>())).GetSizeMax as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IMonikerVtbl),
            "::",
            stringify!(GetSizeMax)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMonikerVtbl>())).BindToObject as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IMonikerVtbl),
            "::",
            stringify!(BindToObject)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMonikerVtbl>())).BindToStorage as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IMonikerVtbl),
            "::",
            stringify!(BindToStorage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMonikerVtbl>())).Reduce as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IMonikerVtbl),
            "::",
            stringify!(Reduce)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMonikerVtbl>())).ComposeWith as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IMonikerVtbl),
            "::",
            stringify!(ComposeWith)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMonikerVtbl>())).Enum as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IMonikerVtbl),
            "::",
            stringify!(Enum)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMonikerVtbl>())).IsEqual as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IMonikerVtbl),
            "::",
            stringify!(IsEqual)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMonikerVtbl>())).Hash as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IMonikerVtbl),
            "::",
            stringify!(Hash)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMonikerVtbl>())).IsRunning as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(IMonikerVtbl),
            "::",
            stringify!(IsRunning)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IMonikerVtbl>())).GetTimeOfLastChange as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(IMonikerVtbl),
            "::",
            stringify!(GetTimeOfLastChange)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMonikerVtbl>())).Inverse as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(IMonikerVtbl),
            "::",
            stringify!(Inverse)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMonikerVtbl>())).CommonPrefixWith as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(IMonikerVtbl),
            "::",
            stringify!(CommonPrefixWith)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMonikerVtbl>())).RelativePathTo as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(IMonikerVtbl),
            "::",
            stringify!(RelativePathTo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMonikerVtbl>())).GetDisplayName as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(IMonikerVtbl),
            "::",
            stringify!(GetDisplayName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMonikerVtbl>())).ParseDisplayName as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(IMonikerVtbl),
            "::",
            stringify!(ParseDisplayName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMonikerVtbl>())).IsSystemMoniker as *const _ as usize },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(IMonikerVtbl),
            "::",
            stringify!(IsSystemMoniker)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IMoniker {
    pub lpVtbl: *mut IMonikerVtbl,
}
#[test]
fn bindgen_test_layout_IMoniker() {
    assert_eq!(
        ::std::mem::size_of::<IMoniker>(),
        8usize,
        concat!("Size of: ", stringify!(IMoniker))
    );
    assert_eq!(
        ::std::mem::align_of::<IMoniker>(),
        8usize,
        concat!("Alignment of ", stringify!(IMoniker))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMoniker>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IMoniker),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IMoniker_RemoteBindToObject_Proxy(
        This: *mut IMoniker,
        pbc: *mut IBindCtx,
        pmkToLeft: *mut IMoniker,
        riidResult: *const IID,
        ppvResult: *mut *mut IUnknown,
    ) -> HRESULT;
}
extern "C" {
    pub fn IMoniker_RemoteBindToObject_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn IMoniker_RemoteBindToStorage_Proxy(
        This: *mut IMoniker,
        pbc: *mut IBindCtx,
        pmkToLeft: *mut IMoniker,
        riid: *const IID,
        ppvObj: *mut *mut IUnknown,
    ) -> HRESULT;
}
extern "C" {
    pub fn IMoniker_RemoteBindToStorage_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0061_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0061_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IROTData: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IROTDataVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IROTData,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IROTData) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IROTData) -> ULONG>,
    pub GetComparisonData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IROTData,
            pbData: *mut byte,
            cbMax: ULONG,
            pcbData: *mut ULONG,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IROTDataVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IROTDataVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IROTDataVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IROTDataVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IROTDataVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IROTDataVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IROTDataVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IROTDataVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IROTDataVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IROTDataVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IROTDataVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IROTDataVtbl>())).GetComparisonData as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IROTDataVtbl),
            "::",
            stringify!(GetComparisonData)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IROTData {
    pub lpVtbl: *mut IROTDataVtbl,
}
#[test]
fn bindgen_test_layout_IROTData() {
    assert_eq!(
        ::std::mem::size_of::<IROTData>(),
        8usize,
        concat!("Size of: ", stringify!(IROTData))
    );
    assert_eq!(
        ::std::mem::align_of::<IROTData>(),
        8usize,
        concat!("Alignment of ", stringify!(IROTData))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IROTData>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IROTData),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0062_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0062_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPENUMSTATSTG = *mut IEnumSTATSTG;
extern "C" {
    pub static IID_IEnumSTATSTG: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IEnumSTATSTGVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IEnumSTATSTG,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IEnumSTATSTG) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IEnumSTATSTG) -> ULONG>,
    pub Next: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IEnumSTATSTG,
            celt: ULONG,
            rgelt: *mut STATSTG,
            pceltFetched: *mut ULONG,
        ) -> HRESULT,
    >,
    pub Skip: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IEnumSTATSTG, celt: ULONG) -> HRESULT,
    >,
    pub Reset: ::std::option::Option<unsafe extern "C" fn(This: *mut IEnumSTATSTG) -> HRESULT>,
    pub Clone: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IEnumSTATSTG, ppenum: *mut *mut IEnumSTATSTG) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IEnumSTATSTGVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IEnumSTATSTGVtbl>(),
        56usize,
        concat!("Size of: ", stringify!(IEnumSTATSTGVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IEnumSTATSTGVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IEnumSTATSTGVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumSTATSTGVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumSTATSTGVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumSTATSTGVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumSTATSTGVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumSTATSTGVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumSTATSTGVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumSTATSTGVtbl>())).Next as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumSTATSTGVtbl),
            "::",
            stringify!(Next)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumSTATSTGVtbl>())).Skip as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumSTATSTGVtbl),
            "::",
            stringify!(Skip)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumSTATSTGVtbl>())).Reset as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumSTATSTGVtbl),
            "::",
            stringify!(Reset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumSTATSTGVtbl>())).Clone as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumSTATSTGVtbl),
            "::",
            stringify!(Clone)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IEnumSTATSTG {
    pub lpVtbl: *mut IEnumSTATSTGVtbl,
}
#[test]
fn bindgen_test_layout_IEnumSTATSTG() {
    assert_eq!(
        ::std::mem::size_of::<IEnumSTATSTG>(),
        8usize,
        concat!("Size of: ", stringify!(IEnumSTATSTG))
    );
    assert_eq!(
        ::std::mem::align_of::<IEnumSTATSTG>(),
        8usize,
        concat!("Alignment of ", stringify!(IEnumSTATSTG))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumSTATSTG>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumSTATSTG),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IEnumSTATSTG_RemoteNext_Proxy(
        This: *mut IEnumSTATSTG,
        celt: ULONG,
        rgelt: *mut STATSTG,
        pceltFetched: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IEnumSTATSTG_RemoteNext_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
pub type LPSTORAGE = *mut IStorage;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagRemSNB {
    pub ulCntStr: ULONG,
    pub ulCntChar: ULONG,
    pub rgString: [OLECHAR; 1usize],
}
#[test]
fn bindgen_test_layout_tagRemSNB() {
    assert_eq!(
        ::std::mem::size_of::<tagRemSNB>(),
        12usize,
        concat!("Size of: ", stringify!(tagRemSNB))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRemSNB>(),
        4usize,
        concat!("Alignment of ", stringify!(tagRemSNB))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRemSNB>())).ulCntStr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRemSNB),
            "::",
            stringify!(ulCntStr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRemSNB>())).ulCntChar as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRemSNB),
            "::",
            stringify!(ulCntChar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRemSNB>())).rgString as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRemSNB),
            "::",
            stringify!(rgString)
        )
    );
}
pub type RemSNB = tagRemSNB;
pub type wireSNB = *mut RemSNB;
pub type SNB = *mut LPOLESTR;
extern "C" {
    pub static IID_IStorage: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IStorageVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IStorage,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IStorage) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IStorage) -> ULONG>,
    pub CreateStream: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IStorage,
            pwcsName: *const OLECHAR,
            grfMode: DWORD,
            reserved1: DWORD,
            reserved2: DWORD,
            ppstm: *mut *mut IStream,
        ) -> HRESULT,
    >,
    pub OpenStream: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IStorage,
            pwcsName: *const OLECHAR,
            reserved1: *mut ::std::os::raw::c_void,
            grfMode: DWORD,
            reserved2: DWORD,
            ppstm: *mut *mut IStream,
        ) -> HRESULT,
    >,
    pub CreateStorage: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IStorage,
            pwcsName: *const OLECHAR,
            grfMode: DWORD,
            reserved1: DWORD,
            reserved2: DWORD,
            ppstg: *mut *mut IStorage,
        ) -> HRESULT,
    >,
    pub OpenStorage: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IStorage,
            pwcsName: *const OLECHAR,
            pstgPriority: *mut IStorage,
            grfMode: DWORD,
            snbExclude: SNB,
            reserved: DWORD,
            ppstg: *mut *mut IStorage,
        ) -> HRESULT,
    >,
    pub CopyTo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IStorage,
            ciidExclude: DWORD,
            rgiidExclude: *const IID,
            snbExclude: SNB,
            pstgDest: *mut IStorage,
        ) -> HRESULT,
    >,
    pub MoveElementTo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IStorage,
            pwcsName: *const OLECHAR,
            pstgDest: *mut IStorage,
            pwcsNewName: *const OLECHAR,
            grfFlags: DWORD,
        ) -> HRESULT,
    >,
    pub Commit: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IStorage, grfCommitFlags: DWORD) -> HRESULT,
    >,
    pub Revert: ::std::option::Option<unsafe extern "C" fn(This: *mut IStorage) -> HRESULT>,
    pub EnumElements: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IStorage,
            reserved1: DWORD,
            reserved2: *mut ::std::os::raw::c_void,
            reserved3: DWORD,
            ppenum: *mut *mut IEnumSTATSTG,
        ) -> HRESULT,
    >,
    pub DestroyElement: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IStorage, pwcsName: *const OLECHAR) -> HRESULT,
    >,
    pub RenameElement: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IStorage,
            pwcsOldName: *const OLECHAR,
            pwcsNewName: *const OLECHAR,
        ) -> HRESULT,
    >,
    pub SetElementTimes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IStorage,
            pwcsName: *const OLECHAR,
            pctime: *const FILETIME,
            patime: *const FILETIME,
            pmtime: *const FILETIME,
        ) -> HRESULT,
    >,
    pub SetClass: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IStorage, clsid: *const IID) -> HRESULT,
    >,
    pub SetStateBits: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IStorage, grfStateBits: DWORD, grfMask: DWORD) -> HRESULT,
    >,
    pub Stat: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IStorage,
            pstatstg: *mut STATSTG,
            grfStatFlag: DWORD,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IStorageVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IStorageVtbl>(),
        144usize,
        concat!("Size of: ", stringify!(IStorageVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IStorageVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IStorageVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStorageVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IStorageVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStorageVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IStorageVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStorageVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IStorageVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStorageVtbl>())).CreateStream as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IStorageVtbl),
            "::",
            stringify!(CreateStream)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStorageVtbl>())).OpenStream as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IStorageVtbl),
            "::",
            stringify!(OpenStream)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStorageVtbl>())).CreateStorage as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IStorageVtbl),
            "::",
            stringify!(CreateStorage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStorageVtbl>())).OpenStorage as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IStorageVtbl),
            "::",
            stringify!(OpenStorage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStorageVtbl>())).CopyTo as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IStorageVtbl),
            "::",
            stringify!(CopyTo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStorageVtbl>())).MoveElementTo as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IStorageVtbl),
            "::",
            stringify!(MoveElementTo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStorageVtbl>())).Commit as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IStorageVtbl),
            "::",
            stringify!(Commit)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStorageVtbl>())).Revert as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IStorageVtbl),
            "::",
            stringify!(Revert)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStorageVtbl>())).EnumElements as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IStorageVtbl),
            "::",
            stringify!(EnumElements)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStorageVtbl>())).DestroyElement as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IStorageVtbl),
            "::",
            stringify!(DestroyElement)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStorageVtbl>())).RenameElement as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IStorageVtbl),
            "::",
            stringify!(RenameElement)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStorageVtbl>())).SetElementTimes as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IStorageVtbl),
            "::",
            stringify!(SetElementTimes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStorageVtbl>())).SetClass as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(IStorageVtbl),
            "::",
            stringify!(SetClass)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStorageVtbl>())).SetStateBits as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(IStorageVtbl),
            "::",
            stringify!(SetStateBits)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStorageVtbl>())).Stat as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(IStorageVtbl),
            "::",
            stringify!(Stat)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IStorage {
    pub lpVtbl: *mut IStorageVtbl,
}
#[test]
fn bindgen_test_layout_IStorage() {
    assert_eq!(
        ::std::mem::size_of::<IStorage>(),
        8usize,
        concat!("Size of: ", stringify!(IStorage))
    );
    assert_eq!(
        ::std::mem::align_of::<IStorage>(),
        8usize,
        concat!("Alignment of ", stringify!(IStorage))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IStorage>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IStorage),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IStorage_RemoteOpenStream_Proxy(
        This: *mut IStorage,
        pwcsName: *const OLECHAR,
        cbReserved1: ULONG,
        reserved1: *mut byte,
        grfMode: DWORD,
        reserved2: DWORD,
        ppstm: *mut *mut IStream,
    ) -> HRESULT;
}
extern "C" {
    pub fn IStorage_RemoteOpenStream_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn IStorage_RemoteCopyTo_Proxy(
        This: *mut IStorage,
        ciidExclude: DWORD,
        rgiidExclude: *const IID,
        snbExclude: SNB,
        pstgDest: *mut IStorage,
    ) -> HRESULT;
}
extern "C" {
    pub fn IStorage_RemoteCopyTo_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn IStorage_RemoteEnumElements_Proxy(
        This: *mut IStorage,
        reserved1: DWORD,
        cbReserved2: ULONG,
        reserved2: *mut byte,
        reserved3: DWORD,
        ppenum: *mut *mut IEnumSTATSTG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IStorage_RemoteEnumElements_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0064_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0064_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPPERSISTFILE = *mut IPersistFile;
extern "C" {
    pub static IID_IPersistFile: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IPersistFileVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPersistFile,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IPersistFile) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IPersistFile) -> ULONG>,
    pub GetClassID: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IPersistFile, pClassID: *mut CLSID) -> HRESULT,
    >,
    pub IsDirty: ::std::option::Option<unsafe extern "C" fn(This: *mut IPersistFile) -> HRESULT>,
    pub Load: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPersistFile,
            pszFileName: LPCOLESTR,
            dwMode: DWORD,
        ) -> HRESULT,
    >,
    pub Save: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPersistFile,
            pszFileName: LPCOLESTR,
            fRemember: BOOL,
        ) -> HRESULT,
    >,
    pub SaveCompleted: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IPersistFile, pszFileName: LPCOLESTR) -> HRESULT,
    >,
    pub GetCurFile: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IPersistFile, ppszFileName: *mut LPOLESTR) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IPersistFileVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IPersistFileVtbl>(),
        72usize,
        concat!("Size of: ", stringify!(IPersistFileVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IPersistFileVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IPersistFileVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistFileVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistFileVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistFileVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistFileVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistFileVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistFileVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistFileVtbl>())).GetClassID as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistFileVtbl),
            "::",
            stringify!(GetClassID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistFileVtbl>())).IsDirty as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistFileVtbl),
            "::",
            stringify!(IsDirty)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistFileVtbl>())).Load as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistFileVtbl),
            "::",
            stringify!(Load)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistFileVtbl>())).Save as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistFileVtbl),
            "::",
            stringify!(Save)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistFileVtbl>())).SaveCompleted as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistFileVtbl),
            "::",
            stringify!(SaveCompleted)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistFileVtbl>())).GetCurFile as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistFileVtbl),
            "::",
            stringify!(GetCurFile)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IPersistFile {
    pub lpVtbl: *mut IPersistFileVtbl,
}
#[test]
fn bindgen_test_layout_IPersistFile() {
    assert_eq!(
        ::std::mem::size_of::<IPersistFile>(),
        8usize,
        concat!("Size of: ", stringify!(IPersistFile))
    );
    assert_eq!(
        ::std::mem::align_of::<IPersistFile>(),
        8usize,
        concat!("Alignment of ", stringify!(IPersistFile))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistFile>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistFile),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPPERSISTSTORAGE = *mut IPersistStorage;
extern "C" {
    pub static IID_IPersistStorage: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IPersistStorageVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPersistStorage,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IPersistStorage) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IPersistStorage) -> ULONG>,
    pub GetClassID: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IPersistStorage, pClassID: *mut CLSID) -> HRESULT,
    >,
    pub IsDirty: ::std::option::Option<unsafe extern "C" fn(This: *mut IPersistStorage) -> HRESULT>,
    pub InitNew: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IPersistStorage, pStg: *mut IStorage) -> HRESULT,
    >,
    pub Load: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IPersistStorage, pStg: *mut IStorage) -> HRESULT,
    >,
    pub Save: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPersistStorage,
            pStgSave: *mut IStorage,
            fSameAsLoad: BOOL,
        ) -> HRESULT,
    >,
    pub SaveCompleted: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IPersistStorage, pStgNew: *mut IStorage) -> HRESULT,
    >,
    pub HandsOffStorage:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IPersistStorage) -> HRESULT>,
}
#[test]
fn bindgen_test_layout_IPersistStorageVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IPersistStorageVtbl>(),
        80usize,
        concat!("Size of: ", stringify!(IPersistStorageVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IPersistStorageVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IPersistStorageVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IPersistStorageVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistStorageVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistStorageVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistStorageVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistStorageVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistStorageVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistStorageVtbl>())).GetClassID as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistStorageVtbl),
            "::",
            stringify!(GetClassID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistStorageVtbl>())).IsDirty as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistStorageVtbl),
            "::",
            stringify!(IsDirty)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistStorageVtbl>())).InitNew as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistStorageVtbl),
            "::",
            stringify!(InitNew)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistStorageVtbl>())).Load as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistStorageVtbl),
            "::",
            stringify!(Load)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistStorageVtbl>())).Save as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistStorageVtbl),
            "::",
            stringify!(Save)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IPersistStorageVtbl>())).SaveCompleted as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistStorageVtbl),
            "::",
            stringify!(SaveCompleted)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IPersistStorageVtbl>())).HandsOffStorage as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistStorageVtbl),
            "::",
            stringify!(HandsOffStorage)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IPersistStorage {
    pub lpVtbl: *mut IPersistStorageVtbl,
}
#[test]
fn bindgen_test_layout_IPersistStorage() {
    assert_eq!(
        ::std::mem::size_of::<IPersistStorage>(),
        8usize,
        concat!("Size of: ", stringify!(IPersistStorage))
    );
    assert_eq!(
        ::std::mem::align_of::<IPersistStorage>(),
        8usize,
        concat!("Alignment of ", stringify!(IPersistStorage))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistStorage>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistStorage),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0066_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0066_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPLOCKBYTES = *mut ILockBytes;
extern "C" {
    pub static IID_ILockBytes: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ILockBytesVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ILockBytes,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut ILockBytes) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut ILockBytes) -> ULONG>,
    pub ReadAt: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ILockBytes,
            ulOffset: ULARGE_INTEGER,
            pv: *mut ::std::os::raw::c_void,
            cb: ULONG,
            pcbRead: *mut ULONG,
        ) -> HRESULT,
    >,
    pub WriteAt: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ILockBytes,
            ulOffset: ULARGE_INTEGER,
            pv: *const ::std::os::raw::c_void,
            cb: ULONG,
            pcbWritten: *mut ULONG,
        ) -> HRESULT,
    >,
    pub Flush: ::std::option::Option<unsafe extern "C" fn(This: *mut ILockBytes) -> HRESULT>,
    pub SetSize: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ILockBytes, cb: ULARGE_INTEGER) -> HRESULT,
    >,
    pub LockRegion: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ILockBytes,
            libOffset: ULARGE_INTEGER,
            cb: ULARGE_INTEGER,
            dwLockType: DWORD,
        ) -> HRESULT,
    >,
    pub UnlockRegion: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ILockBytes,
            libOffset: ULARGE_INTEGER,
            cb: ULARGE_INTEGER,
            dwLockType: DWORD,
        ) -> HRESULT,
    >,
    pub Stat: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ILockBytes,
            pstatstg: *mut STATSTG,
            grfStatFlag: DWORD,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_ILockBytesVtbl() {
    assert_eq!(
        ::std::mem::size_of::<ILockBytesVtbl>(),
        80usize,
        concat!("Size of: ", stringify!(ILockBytesVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<ILockBytesVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(ILockBytesVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ILockBytesVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ILockBytesVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ILockBytesVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ILockBytesVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ILockBytesVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ILockBytesVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ILockBytesVtbl>())).ReadAt as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ILockBytesVtbl),
            "::",
            stringify!(ReadAt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ILockBytesVtbl>())).WriteAt as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ILockBytesVtbl),
            "::",
            stringify!(WriteAt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ILockBytesVtbl>())).Flush as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(ILockBytesVtbl),
            "::",
            stringify!(Flush)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ILockBytesVtbl>())).SetSize as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(ILockBytesVtbl),
            "::",
            stringify!(SetSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ILockBytesVtbl>())).LockRegion as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(ILockBytesVtbl),
            "::",
            stringify!(LockRegion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ILockBytesVtbl>())).UnlockRegion as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(ILockBytesVtbl),
            "::",
            stringify!(UnlockRegion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ILockBytesVtbl>())).Stat as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(ILockBytesVtbl),
            "::",
            stringify!(Stat)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ILockBytes {
    pub lpVtbl: *mut ILockBytesVtbl,
}
#[test]
fn bindgen_test_layout_ILockBytes() {
    assert_eq!(
        ::std::mem::size_of::<ILockBytes>(),
        8usize,
        concat!("Size of: ", stringify!(ILockBytes))
    );
    assert_eq!(
        ::std::mem::align_of::<ILockBytes>(),
        8usize,
        concat!("Alignment of ", stringify!(ILockBytes))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ILockBytes>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ILockBytes),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn ILockBytes_RemoteReadAt_Proxy(
        This: *mut ILockBytes,
        ulOffset: ULARGE_INTEGER,
        pv: *mut byte,
        cb: ULONG,
        pcbRead: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn ILockBytes_RemoteReadAt_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn ILockBytes_RemoteWriteAt_Proxy(
        This: *mut ILockBytes,
        ulOffset: ULARGE_INTEGER,
        pv: *const byte,
        cb: ULONG,
        pcbWritten: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn ILockBytes_RemoteWriteAt_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
pub type LPENUMFORMATETC = *mut IEnumFORMATETC;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagDVTARGETDEVICE {
    pub tdSize: DWORD,
    pub tdDriverNameOffset: WORD,
    pub tdDeviceNameOffset: WORD,
    pub tdPortNameOffset: WORD,
    pub tdExtDevmodeOffset: WORD,
    pub tdData: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout_tagDVTARGETDEVICE() {
    assert_eq!(
        ::std::mem::size_of::<tagDVTARGETDEVICE>(),
        16usize,
        concat!("Size of: ", stringify!(tagDVTARGETDEVICE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagDVTARGETDEVICE>(),
        4usize,
        concat!("Alignment of ", stringify!(tagDVTARGETDEVICE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDVTARGETDEVICE>())).tdSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDVTARGETDEVICE),
            "::",
            stringify!(tdSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagDVTARGETDEVICE>())).tdDriverNameOffset as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDVTARGETDEVICE),
            "::",
            stringify!(tdDriverNameOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagDVTARGETDEVICE>())).tdDeviceNameOffset as *const _ as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDVTARGETDEVICE),
            "::",
            stringify!(tdDeviceNameOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagDVTARGETDEVICE>())).tdPortNameOffset as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDVTARGETDEVICE),
            "::",
            stringify!(tdPortNameOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagDVTARGETDEVICE>())).tdExtDevmodeOffset as *const _ as usize
        },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDVTARGETDEVICE),
            "::",
            stringify!(tdExtDevmodeOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDVTARGETDEVICE>())).tdData as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDVTARGETDEVICE),
            "::",
            stringify!(tdData)
        )
    );
}
pub type DVTARGETDEVICE = tagDVTARGETDEVICE;
pub type LPCLIPFORMAT = *mut CLIPFORMAT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagFORMATETC {
    pub cfFormat: CLIPFORMAT,
    pub ptd: *mut DVTARGETDEVICE,
    pub dwAspect: DWORD,
    pub lindex: LONG,
    pub tymed: DWORD,
}
#[test]
fn bindgen_test_layout_tagFORMATETC() {
    assert_eq!(
        ::std::mem::size_of::<tagFORMATETC>(),
        32usize,
        concat!("Size of: ", stringify!(tagFORMATETC))
    );
    assert_eq!(
        ::std::mem::align_of::<tagFORMATETC>(),
        8usize,
        concat!("Alignment of ", stringify!(tagFORMATETC))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFORMATETC>())).cfFormat as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFORMATETC),
            "::",
            stringify!(cfFormat)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFORMATETC>())).ptd as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFORMATETC),
            "::",
            stringify!(ptd)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFORMATETC>())).dwAspect as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFORMATETC),
            "::",
            stringify!(dwAspect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFORMATETC>())).lindex as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFORMATETC),
            "::",
            stringify!(lindex)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFORMATETC>())).tymed as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFORMATETC),
            "::",
            stringify!(tymed)
        )
    );
}
pub type FORMATETC = tagFORMATETC;
pub type LPFORMATETC = *mut tagFORMATETC;
extern "C" {
    pub static IID_IEnumFORMATETC: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IEnumFORMATETCVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IEnumFORMATETC,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IEnumFORMATETC) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IEnumFORMATETC) -> ULONG>,
    pub Next: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IEnumFORMATETC,
            celt: ULONG,
            rgelt: *mut FORMATETC,
            pceltFetched: *mut ULONG,
        ) -> HRESULT,
    >,
    pub Skip: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IEnumFORMATETC, celt: ULONG) -> HRESULT,
    >,
    pub Reset: ::std::option::Option<unsafe extern "C" fn(This: *mut IEnumFORMATETC) -> HRESULT>,
    pub Clone: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IEnumFORMATETC,
            ppenum: *mut *mut IEnumFORMATETC,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IEnumFORMATETCVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IEnumFORMATETCVtbl>(),
        56usize,
        concat!("Size of: ", stringify!(IEnumFORMATETCVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IEnumFORMATETCVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IEnumFORMATETCVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IEnumFORMATETCVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumFORMATETCVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumFORMATETCVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumFORMATETCVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumFORMATETCVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumFORMATETCVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumFORMATETCVtbl>())).Next as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumFORMATETCVtbl),
            "::",
            stringify!(Next)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumFORMATETCVtbl>())).Skip as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumFORMATETCVtbl),
            "::",
            stringify!(Skip)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumFORMATETCVtbl>())).Reset as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumFORMATETCVtbl),
            "::",
            stringify!(Reset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumFORMATETCVtbl>())).Clone as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumFORMATETCVtbl),
            "::",
            stringify!(Clone)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IEnumFORMATETC {
    pub lpVtbl: *mut IEnumFORMATETCVtbl,
}
#[test]
fn bindgen_test_layout_IEnumFORMATETC() {
    assert_eq!(
        ::std::mem::size_of::<IEnumFORMATETC>(),
        8usize,
        concat!("Size of: ", stringify!(IEnumFORMATETC))
    );
    assert_eq!(
        ::std::mem::align_of::<IEnumFORMATETC>(),
        8usize,
        concat!("Alignment of ", stringify!(IEnumFORMATETC))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumFORMATETC>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumFORMATETC),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IEnumFORMATETC_RemoteNext_Proxy(
        This: *mut IEnumFORMATETC,
        celt: ULONG,
        rgelt: *mut FORMATETC,
        pceltFetched: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IEnumFORMATETC_RemoteNext_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
pub type LPENUMSTATDATA = *mut IEnumSTATDATA;
pub const tagADVF_ADVF_NODATA: tagADVF = 1;
pub const tagADVF_ADVF_PRIMEFIRST: tagADVF = 2;
pub const tagADVF_ADVF_ONLYONCE: tagADVF = 4;
pub const tagADVF_ADVF_DATAONSTOP: tagADVF = 64;
pub const tagADVF_ADVFCACHE_NOHANDLER: tagADVF = 8;
pub const tagADVF_ADVFCACHE_FORCEBUILTIN: tagADVF = 16;
pub const tagADVF_ADVFCACHE_ONSAVE: tagADVF = 32;
pub type tagADVF = ::std::os::raw::c_int;
pub use self::tagADVF as ADVF;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagSTATDATA {
    pub formatetc: FORMATETC,
    pub advf: DWORD,
    pub pAdvSink: *mut IAdviseSink,
    pub dwConnection: DWORD,
}
#[test]
fn bindgen_test_layout_tagSTATDATA() {
    assert_eq!(
        ::std::mem::size_of::<tagSTATDATA>(),
        56usize,
        concat!("Size of: ", stringify!(tagSTATDATA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagSTATDATA>(),
        8usize,
        concat!("Alignment of ", stringify!(tagSTATDATA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTATDATA>())).formatetc as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTATDATA),
            "::",
            stringify!(formatetc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTATDATA>())).advf as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTATDATA),
            "::",
            stringify!(advf)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTATDATA>())).pAdvSink as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTATDATA),
            "::",
            stringify!(pAdvSink)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTATDATA>())).dwConnection as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTATDATA),
            "::",
            stringify!(dwConnection)
        )
    );
}
pub type STATDATA = tagSTATDATA;
pub type LPSTATDATA = *mut STATDATA;
extern "C" {
    pub static IID_IEnumSTATDATA: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IEnumSTATDATAVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IEnumSTATDATA,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IEnumSTATDATA) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IEnumSTATDATA) -> ULONG>,
    pub Next: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IEnumSTATDATA,
            celt: ULONG,
            rgelt: *mut STATDATA,
            pceltFetched: *mut ULONG,
        ) -> HRESULT,
    >,
    pub Skip: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IEnumSTATDATA, celt: ULONG) -> HRESULT,
    >,
    pub Reset: ::std::option::Option<unsafe extern "C" fn(This: *mut IEnumSTATDATA) -> HRESULT>,
    pub Clone: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IEnumSTATDATA, ppenum: *mut *mut IEnumSTATDATA) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IEnumSTATDATAVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IEnumSTATDATAVtbl>(),
        56usize,
        concat!("Size of: ", stringify!(IEnumSTATDATAVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IEnumSTATDATAVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IEnumSTATDATAVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IEnumSTATDATAVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumSTATDATAVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumSTATDATAVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumSTATDATAVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumSTATDATAVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumSTATDATAVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumSTATDATAVtbl>())).Next as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumSTATDATAVtbl),
            "::",
            stringify!(Next)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumSTATDATAVtbl>())).Skip as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumSTATDATAVtbl),
            "::",
            stringify!(Skip)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumSTATDATAVtbl>())).Reset as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumSTATDATAVtbl),
            "::",
            stringify!(Reset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumSTATDATAVtbl>())).Clone as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumSTATDATAVtbl),
            "::",
            stringify!(Clone)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IEnumSTATDATA {
    pub lpVtbl: *mut IEnumSTATDATAVtbl,
}
#[test]
fn bindgen_test_layout_IEnumSTATDATA() {
    assert_eq!(
        ::std::mem::size_of::<IEnumSTATDATA>(),
        8usize,
        concat!("Size of: ", stringify!(IEnumSTATDATA))
    );
    assert_eq!(
        ::std::mem::align_of::<IEnumSTATDATA>(),
        8usize,
        concat!("Alignment of ", stringify!(IEnumSTATDATA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumSTATDATA>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumSTATDATA),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IEnumSTATDATA_RemoteNext_Proxy(
        This: *mut IEnumSTATDATA,
        celt: ULONG,
        rgelt: *mut STATDATA,
        pceltFetched: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IEnumSTATDATA_RemoteNext_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
pub type LPROOTSTORAGE = *mut IRootStorage;
extern "C" {
    pub static IID_IRootStorage: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IRootStorageVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRootStorage,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IRootStorage) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IRootStorage) -> ULONG>,
    pub SwitchToFile: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IRootStorage, pszFile: LPOLESTR) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IRootStorageVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IRootStorageVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IRootStorageVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IRootStorageVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IRootStorageVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRootStorageVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IRootStorageVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRootStorageVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IRootStorageVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRootStorageVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IRootStorageVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRootStorageVtbl>())).SwitchToFile as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IRootStorageVtbl),
            "::",
            stringify!(SwitchToFile)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IRootStorage {
    pub lpVtbl: *mut IRootStorageVtbl,
}
#[test]
fn bindgen_test_layout_IRootStorage() {
    assert_eq!(
        ::std::mem::size_of::<IRootStorage>(),
        8usize,
        concat!("Size of: ", stringify!(IRootStorage))
    );
    assert_eq!(
        ::std::mem::align_of::<IRootStorage>(),
        8usize,
        concat!("Alignment of ", stringify!(IRootStorage))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRootStorage>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IRootStorage),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPADVISESINK = *mut IAdviseSink;
pub const tagTYMED_TYMED_HGLOBAL: tagTYMED = 1;
pub const tagTYMED_TYMED_FILE: tagTYMED = 2;
pub const tagTYMED_TYMED_ISTREAM: tagTYMED = 4;
pub const tagTYMED_TYMED_ISTORAGE: tagTYMED = 8;
pub const tagTYMED_TYMED_GDI: tagTYMED = 16;
pub const tagTYMED_TYMED_MFPICT: tagTYMED = 32;
pub const tagTYMED_TYMED_ENHMF: tagTYMED = 64;
pub const tagTYMED_TYMED_NULL: tagTYMED = 0;
pub type tagTYMED = ::std::os::raw::c_int;
pub use self::tagTYMED as TYMED;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagRemSTGMEDIUM {
    pub tymed: DWORD,
    pub dwHandleType: DWORD,
    pub pData: ULONG,
    pub pUnkForRelease: ULONG,
    pub cbData: ULONG,
    pub data: [byte; 1usize],
}
#[test]
fn bindgen_test_layout_tagRemSTGMEDIUM() {
    assert_eq!(
        ::std::mem::size_of::<tagRemSTGMEDIUM>(),
        24usize,
        concat!("Size of: ", stringify!(tagRemSTGMEDIUM))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRemSTGMEDIUM>(),
        4usize,
        concat!("Alignment of ", stringify!(tagRemSTGMEDIUM))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRemSTGMEDIUM>())).tymed as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRemSTGMEDIUM),
            "::",
            stringify!(tymed)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRemSTGMEDIUM>())).dwHandleType as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRemSTGMEDIUM),
            "::",
            stringify!(dwHandleType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRemSTGMEDIUM>())).pData as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRemSTGMEDIUM),
            "::",
            stringify!(pData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRemSTGMEDIUM>())).pUnkForRelease as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRemSTGMEDIUM),
            "::",
            stringify!(pUnkForRelease)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRemSTGMEDIUM>())).cbData as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRemSTGMEDIUM),
            "::",
            stringify!(cbData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRemSTGMEDIUM>())).data as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRemSTGMEDIUM),
            "::",
            stringify!(data)
        )
    );
}
pub type RemSTGMEDIUM = tagRemSTGMEDIUM;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagSTGMEDIUM {
    pub tymed: DWORD,
    pub __bindgen_anon_1: tagSTGMEDIUM__bindgen_ty_1,
    pub pUnkForRelease: *mut IUnknown,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tagSTGMEDIUM__bindgen_ty_1 {
    pub hBitmap: HBITMAP,
    pub hMetaFilePict: HMETAFILEPICT,
    pub hEnhMetaFile: HENHMETAFILE,
    pub hGlobal: HGLOBAL,
    pub lpszFileName: LPOLESTR,
    pub pstm: *mut IStream,
    pub pstg: *mut IStorage,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout_tagSTGMEDIUM__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagSTGMEDIUM__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(tagSTGMEDIUM__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tagSTGMEDIUM__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(tagSTGMEDIUM__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSTGMEDIUM__bindgen_ty_1>())).hBitmap as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTGMEDIUM__bindgen_ty_1),
            "::",
            stringify!(hBitmap)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSTGMEDIUM__bindgen_ty_1>())).hMetaFilePict as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTGMEDIUM__bindgen_ty_1),
            "::",
            stringify!(hMetaFilePict)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSTGMEDIUM__bindgen_ty_1>())).hEnhMetaFile as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTGMEDIUM__bindgen_ty_1),
            "::",
            stringify!(hEnhMetaFile)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSTGMEDIUM__bindgen_ty_1>())).hGlobal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTGMEDIUM__bindgen_ty_1),
            "::",
            stringify!(hGlobal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSTGMEDIUM__bindgen_ty_1>())).lpszFileName as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTGMEDIUM__bindgen_ty_1),
            "::",
            stringify!(lpszFileName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTGMEDIUM__bindgen_ty_1>())).pstm as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTGMEDIUM__bindgen_ty_1),
            "::",
            stringify!(pstm)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTGMEDIUM__bindgen_ty_1>())).pstg as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTGMEDIUM__bindgen_ty_1),
            "::",
            stringify!(pstg)
        )
    );
}
#[test]
fn bindgen_test_layout_tagSTGMEDIUM() {
    assert_eq!(
        ::std::mem::size_of::<tagSTGMEDIUM>(),
        24usize,
        concat!("Size of: ", stringify!(tagSTGMEDIUM))
    );
    assert_eq!(
        ::std::mem::align_of::<tagSTGMEDIUM>(),
        8usize,
        concat!("Alignment of ", stringify!(tagSTGMEDIUM))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTGMEDIUM>())).tymed as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTGMEDIUM),
            "::",
            stringify!(tymed)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTGMEDIUM>())).pUnkForRelease as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTGMEDIUM),
            "::",
            stringify!(pUnkForRelease)
        )
    );
}
pub type uSTGMEDIUM = tagSTGMEDIUM;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _GDI_OBJECT {
    pub ObjectType: DWORD,
    pub u: _GDI_OBJECT___MIDL_IAdviseSink_0002,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _GDI_OBJECT___MIDL_IAdviseSink_0002 {
    pub hBitmap: wireHBITMAP,
    pub hPalette: wireHPALETTE,
    pub hGeneric: wireHGLOBAL,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__GDI_OBJECT___MIDL_IAdviseSink_0002() {
    assert_eq!(
        ::std::mem::size_of::<_GDI_OBJECT___MIDL_IAdviseSink_0002>(),
        8usize,
        concat!("Size of: ", stringify!(_GDI_OBJECT___MIDL_IAdviseSink_0002))
    );
    assert_eq!(
        ::std::mem::align_of::<_GDI_OBJECT___MIDL_IAdviseSink_0002>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_GDI_OBJECT___MIDL_IAdviseSink_0002)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GDI_OBJECT___MIDL_IAdviseSink_0002>())).hBitmap as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_GDI_OBJECT___MIDL_IAdviseSink_0002),
            "::",
            stringify!(hBitmap)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GDI_OBJECT___MIDL_IAdviseSink_0002>())).hPalette as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_GDI_OBJECT___MIDL_IAdviseSink_0002),
            "::",
            stringify!(hPalette)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_GDI_OBJECT___MIDL_IAdviseSink_0002>())).hGeneric as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_GDI_OBJECT___MIDL_IAdviseSink_0002),
            "::",
            stringify!(hGeneric)
        )
    );
}
#[test]
fn bindgen_test_layout__GDI_OBJECT() {
    assert_eq!(
        ::std::mem::size_of::<_GDI_OBJECT>(),
        16usize,
        concat!("Size of: ", stringify!(_GDI_OBJECT))
    );
    assert_eq!(
        ::std::mem::align_of::<_GDI_OBJECT>(),
        8usize,
        concat!("Alignment of ", stringify!(_GDI_OBJECT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GDI_OBJECT>())).ObjectType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_GDI_OBJECT),
            "::",
            stringify!(ObjectType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_GDI_OBJECT>())).u as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_GDI_OBJECT),
            "::",
            stringify!(u)
        )
    );
}
pub type GDI_OBJECT = _GDI_OBJECT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _userSTGMEDIUM {
    pub __bindgen_padding_0: [u64; 2usize],
    pub pUnkForRelease: *mut IUnknown,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _userSTGMEDIUM__STGMEDIUM_UNION {
    pub tymed: DWORD,
    pub u: _userSTGMEDIUM__STGMEDIUM_UNION___MIDL_IAdviseSink_0003,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _userSTGMEDIUM__STGMEDIUM_UNION___MIDL_IAdviseSink_0003 {
    pub hMetaFilePict: wireHMETAFILEPICT,
    pub hHEnhMetaFile: wireHENHMETAFILE,
    pub hGdiHandle: *mut GDI_OBJECT,
    pub hGlobal: wireHGLOBAL,
    pub lpszFileName: LPOLESTR,
    pub pstm: *mut BYTE_BLOB,
    pub pstg: *mut BYTE_BLOB,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout__userSTGMEDIUM__STGMEDIUM_UNION___MIDL_IAdviseSink_0003() {
    assert_eq!(
        ::std::mem::size_of::<_userSTGMEDIUM__STGMEDIUM_UNION___MIDL_IAdviseSink_0003>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_userSTGMEDIUM__STGMEDIUM_UNION___MIDL_IAdviseSink_0003)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_userSTGMEDIUM__STGMEDIUM_UNION___MIDL_IAdviseSink_0003>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_userSTGMEDIUM__STGMEDIUM_UNION___MIDL_IAdviseSink_0003)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_userSTGMEDIUM__STGMEDIUM_UNION___MIDL_IAdviseSink_0003>()))
                .hMetaFilePict as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userSTGMEDIUM__STGMEDIUM_UNION___MIDL_IAdviseSink_0003),
            "::",
            stringify!(hMetaFilePict)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_userSTGMEDIUM__STGMEDIUM_UNION___MIDL_IAdviseSink_0003>()))
                .hHEnhMetaFile as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userSTGMEDIUM__STGMEDIUM_UNION___MIDL_IAdviseSink_0003),
            "::",
            stringify!(hHEnhMetaFile)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_userSTGMEDIUM__STGMEDIUM_UNION___MIDL_IAdviseSink_0003>()))
                .hGdiHandle as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userSTGMEDIUM__STGMEDIUM_UNION___MIDL_IAdviseSink_0003),
            "::",
            stringify!(hGdiHandle)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_userSTGMEDIUM__STGMEDIUM_UNION___MIDL_IAdviseSink_0003>()))
                .hGlobal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userSTGMEDIUM__STGMEDIUM_UNION___MIDL_IAdviseSink_0003),
            "::",
            stringify!(hGlobal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_userSTGMEDIUM__STGMEDIUM_UNION___MIDL_IAdviseSink_0003>()))
                .lpszFileName as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userSTGMEDIUM__STGMEDIUM_UNION___MIDL_IAdviseSink_0003),
            "::",
            stringify!(lpszFileName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_userSTGMEDIUM__STGMEDIUM_UNION___MIDL_IAdviseSink_0003>())).pstm
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userSTGMEDIUM__STGMEDIUM_UNION___MIDL_IAdviseSink_0003),
            "::",
            stringify!(pstm)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_userSTGMEDIUM__STGMEDIUM_UNION___MIDL_IAdviseSink_0003>())).pstg
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userSTGMEDIUM__STGMEDIUM_UNION___MIDL_IAdviseSink_0003),
            "::",
            stringify!(pstg)
        )
    );
}
#[test]
fn bindgen_test_layout__userSTGMEDIUM__STGMEDIUM_UNION() {
    assert_eq!(
        ::std::mem::size_of::<_userSTGMEDIUM__STGMEDIUM_UNION>(),
        16usize,
        concat!("Size of: ", stringify!(_userSTGMEDIUM__STGMEDIUM_UNION))
    );
    assert_eq!(
        ::std::mem::align_of::<_userSTGMEDIUM__STGMEDIUM_UNION>(),
        8usize,
        concat!("Alignment of ", stringify!(_userSTGMEDIUM__STGMEDIUM_UNION))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_userSTGMEDIUM__STGMEDIUM_UNION>())).tymed as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userSTGMEDIUM__STGMEDIUM_UNION),
            "::",
            stringify!(tymed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_userSTGMEDIUM__STGMEDIUM_UNION>())).u as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_userSTGMEDIUM__STGMEDIUM_UNION),
            "::",
            stringify!(u)
        )
    );
}
#[test]
fn bindgen_test_layout__userSTGMEDIUM() {
    assert_eq!(
        ::std::mem::size_of::<_userSTGMEDIUM>(),
        24usize,
        concat!("Size of: ", stringify!(_userSTGMEDIUM))
    );
    assert_eq!(
        ::std::mem::align_of::<_userSTGMEDIUM>(),
        8usize,
        concat!("Alignment of ", stringify!(_userSTGMEDIUM))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_userSTGMEDIUM>())).pUnkForRelease as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_userSTGMEDIUM),
            "::",
            stringify!(pUnkForRelease)
        )
    );
}
pub type userSTGMEDIUM = _userSTGMEDIUM;
pub type wireSTGMEDIUM = *mut userSTGMEDIUM;
pub type STGMEDIUM = uSTGMEDIUM;
pub type wireASYNC_STGMEDIUM = *mut userSTGMEDIUM;
pub type ASYNC_STGMEDIUM = STGMEDIUM;
pub type LPSTGMEDIUM = *mut STGMEDIUM;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _userFLAG_STGMEDIUM {
    pub ContextFlags: LONG,
    pub fPassOwnership: LONG,
    pub Stgmed: userSTGMEDIUM,
}
#[test]
fn bindgen_test_layout__userFLAG_STGMEDIUM() {
    assert_eq!(
        ::std::mem::size_of::<_userFLAG_STGMEDIUM>(),
        32usize,
        concat!("Size of: ", stringify!(_userFLAG_STGMEDIUM))
    );
    assert_eq!(
        ::std::mem::align_of::<_userFLAG_STGMEDIUM>(),
        8usize,
        concat!("Alignment of ", stringify!(_userFLAG_STGMEDIUM))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_userFLAG_STGMEDIUM>())).ContextFlags as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_userFLAG_STGMEDIUM),
            "::",
            stringify!(ContextFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_userFLAG_STGMEDIUM>())).fPassOwnership as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_userFLAG_STGMEDIUM),
            "::",
            stringify!(fPassOwnership)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_userFLAG_STGMEDIUM>())).Stgmed as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_userFLAG_STGMEDIUM),
            "::",
            stringify!(Stgmed)
        )
    );
}
pub type userFLAG_STGMEDIUM = _userFLAG_STGMEDIUM;
pub type wireFLAG_STGMEDIUM = *mut userFLAG_STGMEDIUM;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _FLAG_STGMEDIUM {
    pub ContextFlags: LONG,
    pub fPassOwnership: LONG,
    pub Stgmed: STGMEDIUM,
}
#[test]
fn bindgen_test_layout__FLAG_STGMEDIUM() {
    assert_eq!(
        ::std::mem::size_of::<_FLAG_STGMEDIUM>(),
        32usize,
        concat!("Size of: ", stringify!(_FLAG_STGMEDIUM))
    );
    assert_eq!(
        ::std::mem::align_of::<_FLAG_STGMEDIUM>(),
        8usize,
        concat!("Alignment of ", stringify!(_FLAG_STGMEDIUM))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FLAG_STGMEDIUM>())).ContextFlags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_FLAG_STGMEDIUM),
            "::",
            stringify!(ContextFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FLAG_STGMEDIUM>())).fPassOwnership as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_FLAG_STGMEDIUM),
            "::",
            stringify!(fPassOwnership)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_FLAG_STGMEDIUM>())).Stgmed as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_FLAG_STGMEDIUM),
            "::",
            stringify!(Stgmed)
        )
    );
}
pub type FLAG_STGMEDIUM = _FLAG_STGMEDIUM;
extern "C" {
    pub static IID_IAdviseSink: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IAdviseSinkVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IAdviseSink,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IAdviseSink) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IAdviseSink) -> ULONG>,
    pub OnDataChange: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IAdviseSink,
            pFormatetc: *mut FORMATETC,
            pStgmed: *mut STGMEDIUM,
        ),
    >,
    pub OnViewChange: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IAdviseSink, dwAspect: DWORD, lindex: LONG),
    >,
    pub OnRename:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IAdviseSink, pmk: *mut IMoniker)>,
    pub OnSave: ::std::option::Option<unsafe extern "C" fn(This: *mut IAdviseSink)>,
    pub OnClose: ::std::option::Option<unsafe extern "C" fn(This: *mut IAdviseSink)>,
}
#[test]
fn bindgen_test_layout_IAdviseSinkVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IAdviseSinkVtbl>(),
        64usize,
        concat!("Size of: ", stringify!(IAdviseSinkVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IAdviseSinkVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IAdviseSinkVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAdviseSinkVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IAdviseSinkVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAdviseSinkVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IAdviseSinkVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAdviseSinkVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IAdviseSinkVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAdviseSinkVtbl>())).OnDataChange as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IAdviseSinkVtbl),
            "::",
            stringify!(OnDataChange)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAdviseSinkVtbl>())).OnViewChange as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IAdviseSinkVtbl),
            "::",
            stringify!(OnViewChange)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAdviseSinkVtbl>())).OnRename as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IAdviseSinkVtbl),
            "::",
            stringify!(OnRename)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAdviseSinkVtbl>())).OnSave as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IAdviseSinkVtbl),
            "::",
            stringify!(OnSave)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAdviseSinkVtbl>())).OnClose as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IAdviseSinkVtbl),
            "::",
            stringify!(OnClose)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IAdviseSink {
    pub lpVtbl: *mut IAdviseSinkVtbl,
}
#[test]
fn bindgen_test_layout_IAdviseSink() {
    assert_eq!(
        ::std::mem::size_of::<IAdviseSink>(),
        8usize,
        concat!("Size of: ", stringify!(IAdviseSink))
    );
    assert_eq!(
        ::std::mem::align_of::<IAdviseSink>(),
        8usize,
        concat!("Alignment of ", stringify!(IAdviseSink))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAdviseSink>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IAdviseSink),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IAdviseSink_RemoteOnDataChange_Proxy(
        This: *mut IAdviseSink,
        pFormatetc: *mut FORMATETC,
        pStgmed: *mut ASYNC_STGMEDIUM,
    ) -> HRESULT;
}
extern "C" {
    pub fn IAdviseSink_RemoteOnDataChange_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn IAdviseSink_RemoteOnViewChange_Proxy(
        This: *mut IAdviseSink,
        dwAspect: DWORD,
        lindex: LONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IAdviseSink_RemoteOnViewChange_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn IAdviseSink_RemoteOnRename_Proxy(This: *mut IAdviseSink, pmk: *mut IMoniker) -> HRESULT;
}
extern "C" {
    pub fn IAdviseSink_RemoteOnRename_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn IAdviseSink_RemoteOnSave_Proxy(This: *mut IAdviseSink) -> HRESULT;
}
extern "C" {
    pub fn IAdviseSink_RemoteOnSave_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn IAdviseSink_RemoteOnClose_Proxy(This: *mut IAdviseSink) -> HRESULT;
}
extern "C" {
    pub fn IAdviseSink_RemoteOnClose_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub static IID_AsyncIAdviseSink: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AsyncIAdviseSinkVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut AsyncIAdviseSink,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIAdviseSink) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIAdviseSink) -> ULONG>,
    pub Begin_OnDataChange: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut AsyncIAdviseSink,
            pFormatetc: *mut FORMATETC,
            pStgmed: *mut STGMEDIUM,
        ),
    >,
    pub Finish_OnDataChange:
        ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIAdviseSink)>,
    pub Begin_OnViewChange: ::std::option::Option<
        unsafe extern "C" fn(This: *mut AsyncIAdviseSink, dwAspect: DWORD, lindex: LONG),
    >,
    pub Finish_OnViewChange:
        ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIAdviseSink)>,
    pub Begin_OnRename: ::std::option::Option<
        unsafe extern "C" fn(This: *mut AsyncIAdviseSink, pmk: *mut IMoniker),
    >,
    pub Finish_OnRename: ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIAdviseSink)>,
    pub Begin_OnSave: ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIAdviseSink)>,
    pub Finish_OnSave: ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIAdviseSink)>,
    pub Begin_OnClose: ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIAdviseSink)>,
    pub Finish_OnClose: ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIAdviseSink)>,
}
#[test]
fn bindgen_test_layout_AsyncIAdviseSinkVtbl() {
    assert_eq!(
        ::std::mem::size_of::<AsyncIAdviseSinkVtbl>(),
        104usize,
        concat!("Size of: ", stringify!(AsyncIAdviseSinkVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<AsyncIAdviseSinkVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(AsyncIAdviseSinkVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIAdviseSinkVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIAdviseSinkVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIAdviseSinkVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIAdviseSinkVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIAdviseSinkVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIAdviseSinkVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIAdviseSinkVtbl>())).Begin_OnDataChange as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIAdviseSinkVtbl),
            "::",
            stringify!(Begin_OnDataChange)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIAdviseSinkVtbl>())).Finish_OnDataChange as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIAdviseSinkVtbl),
            "::",
            stringify!(Finish_OnDataChange)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIAdviseSinkVtbl>())).Begin_OnViewChange as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIAdviseSinkVtbl),
            "::",
            stringify!(Begin_OnViewChange)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIAdviseSinkVtbl>())).Finish_OnViewChange as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIAdviseSinkVtbl),
            "::",
            stringify!(Finish_OnViewChange)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIAdviseSinkVtbl>())).Begin_OnRename as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIAdviseSinkVtbl),
            "::",
            stringify!(Begin_OnRename)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIAdviseSinkVtbl>())).Finish_OnRename as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIAdviseSinkVtbl),
            "::",
            stringify!(Finish_OnRename)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIAdviseSinkVtbl>())).Begin_OnSave as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIAdviseSinkVtbl),
            "::",
            stringify!(Begin_OnSave)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIAdviseSinkVtbl>())).Finish_OnSave as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIAdviseSinkVtbl),
            "::",
            stringify!(Finish_OnSave)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIAdviseSinkVtbl>())).Begin_OnClose as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIAdviseSinkVtbl),
            "::",
            stringify!(Begin_OnClose)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIAdviseSinkVtbl>())).Finish_OnClose as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIAdviseSinkVtbl),
            "::",
            stringify!(Finish_OnClose)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AsyncIAdviseSink {
    pub lpVtbl: *mut AsyncIAdviseSinkVtbl,
}
#[test]
fn bindgen_test_layout_AsyncIAdviseSink() {
    assert_eq!(
        ::std::mem::size_of::<AsyncIAdviseSink>(),
        8usize,
        concat!("Size of: ", stringify!(AsyncIAdviseSink))
    );
    assert_eq!(
        ::std::mem::align_of::<AsyncIAdviseSink>(),
        8usize,
        concat!("Alignment of ", stringify!(AsyncIAdviseSink))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIAdviseSink>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIAdviseSink),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn AsyncIAdviseSink_Begin_RemoteOnDataChange_Proxy(
        This: *mut AsyncIAdviseSink,
        pFormatetc: *mut FORMATETC,
        pStgmed: *mut ASYNC_STGMEDIUM,
    ) -> HRESULT;
}
extern "C" {
    pub fn AsyncIAdviseSink_Begin_RemoteOnDataChange_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn AsyncIAdviseSink_Finish_RemoteOnDataChange_Proxy(This: *mut AsyncIAdviseSink)
        -> HRESULT;
}
extern "C" {
    pub fn AsyncIAdviseSink_Finish_RemoteOnDataChange_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn AsyncIAdviseSink_Begin_RemoteOnViewChange_Proxy(
        This: *mut AsyncIAdviseSink,
        dwAspect: DWORD,
        lindex: LONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn AsyncIAdviseSink_Begin_RemoteOnViewChange_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn AsyncIAdviseSink_Finish_RemoteOnViewChange_Proxy(This: *mut AsyncIAdviseSink)
        -> HRESULT;
}
extern "C" {
    pub fn AsyncIAdviseSink_Finish_RemoteOnViewChange_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn AsyncIAdviseSink_Begin_RemoteOnRename_Proxy(
        This: *mut AsyncIAdviseSink,
        pmk: *mut IMoniker,
    ) -> HRESULT;
}
extern "C" {
    pub fn AsyncIAdviseSink_Begin_RemoteOnRename_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn AsyncIAdviseSink_Finish_RemoteOnRename_Proxy(This: *mut AsyncIAdviseSink) -> HRESULT;
}
extern "C" {
    pub fn AsyncIAdviseSink_Finish_RemoteOnRename_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn AsyncIAdviseSink_Begin_RemoteOnSave_Proxy(This: *mut AsyncIAdviseSink) -> HRESULT;
}
extern "C" {
    pub fn AsyncIAdviseSink_Begin_RemoteOnSave_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn AsyncIAdviseSink_Finish_RemoteOnSave_Proxy(This: *mut AsyncIAdviseSink) -> HRESULT;
}
extern "C" {
    pub fn AsyncIAdviseSink_Finish_RemoteOnSave_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn AsyncIAdviseSink_Begin_RemoteOnClose_Proxy(This: *mut AsyncIAdviseSink) -> HRESULT;
}
extern "C" {
    pub fn AsyncIAdviseSink_Begin_RemoteOnClose_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn AsyncIAdviseSink_Finish_RemoteOnClose_Proxy(This: *mut AsyncIAdviseSink) -> HRESULT;
}
extern "C" {
    pub fn AsyncIAdviseSink_Finish_RemoteOnClose_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0071_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0071_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPADVISESINK2 = *mut IAdviseSink2;
extern "C" {
    pub static IID_IAdviseSink2: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IAdviseSink2Vtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IAdviseSink2,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IAdviseSink2) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IAdviseSink2) -> ULONG>,
    pub OnDataChange: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IAdviseSink2,
            pFormatetc: *mut FORMATETC,
            pStgmed: *mut STGMEDIUM,
        ),
    >,
    pub OnViewChange: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IAdviseSink2, dwAspect: DWORD, lindex: LONG),
    >,
    pub OnRename:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IAdviseSink2, pmk: *mut IMoniker)>,
    pub OnSave: ::std::option::Option<unsafe extern "C" fn(This: *mut IAdviseSink2)>,
    pub OnClose: ::std::option::Option<unsafe extern "C" fn(This: *mut IAdviseSink2)>,
    pub OnLinkSrcChange:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IAdviseSink2, pmk: *mut IMoniker)>,
}
#[test]
fn bindgen_test_layout_IAdviseSink2Vtbl() {
    assert_eq!(
        ::std::mem::size_of::<IAdviseSink2Vtbl>(),
        72usize,
        concat!("Size of: ", stringify!(IAdviseSink2Vtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IAdviseSink2Vtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IAdviseSink2Vtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAdviseSink2Vtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IAdviseSink2Vtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAdviseSink2Vtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IAdviseSink2Vtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAdviseSink2Vtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IAdviseSink2Vtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAdviseSink2Vtbl>())).OnDataChange as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IAdviseSink2Vtbl),
            "::",
            stringify!(OnDataChange)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAdviseSink2Vtbl>())).OnViewChange as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IAdviseSink2Vtbl),
            "::",
            stringify!(OnViewChange)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAdviseSink2Vtbl>())).OnRename as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IAdviseSink2Vtbl),
            "::",
            stringify!(OnRename)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAdviseSink2Vtbl>())).OnSave as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IAdviseSink2Vtbl),
            "::",
            stringify!(OnSave)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAdviseSink2Vtbl>())).OnClose as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IAdviseSink2Vtbl),
            "::",
            stringify!(OnClose)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IAdviseSink2Vtbl>())).OnLinkSrcChange as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IAdviseSink2Vtbl),
            "::",
            stringify!(OnLinkSrcChange)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IAdviseSink2 {
    pub lpVtbl: *mut IAdviseSink2Vtbl,
}
#[test]
fn bindgen_test_layout_IAdviseSink2() {
    assert_eq!(
        ::std::mem::size_of::<IAdviseSink2>(),
        8usize,
        concat!("Size of: ", stringify!(IAdviseSink2))
    );
    assert_eq!(
        ::std::mem::align_of::<IAdviseSink2>(),
        8usize,
        concat!("Alignment of ", stringify!(IAdviseSink2))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAdviseSink2>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IAdviseSink2),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IAdviseSink2_RemoteOnLinkSrcChange_Proxy(
        This: *mut IAdviseSink2,
        pmk: *mut IMoniker,
    ) -> HRESULT;
}
extern "C" {
    pub fn IAdviseSink2_RemoteOnLinkSrcChange_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub static IID_AsyncIAdviseSink2: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AsyncIAdviseSink2Vtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut AsyncIAdviseSink2,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIAdviseSink2) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIAdviseSink2) -> ULONG>,
    pub Begin_OnDataChange: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut AsyncIAdviseSink2,
            pFormatetc: *mut FORMATETC,
            pStgmed: *mut STGMEDIUM,
        ),
    >,
    pub Finish_OnDataChange:
        ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIAdviseSink2)>,
    pub Begin_OnViewChange: ::std::option::Option<
        unsafe extern "C" fn(This: *mut AsyncIAdviseSink2, dwAspect: DWORD, lindex: LONG),
    >,
    pub Finish_OnViewChange:
        ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIAdviseSink2)>,
    pub Begin_OnRename: ::std::option::Option<
        unsafe extern "C" fn(This: *mut AsyncIAdviseSink2, pmk: *mut IMoniker),
    >,
    pub Finish_OnRename: ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIAdviseSink2)>,
    pub Begin_OnSave: ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIAdviseSink2)>,
    pub Finish_OnSave: ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIAdviseSink2)>,
    pub Begin_OnClose: ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIAdviseSink2)>,
    pub Finish_OnClose: ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIAdviseSink2)>,
    pub Begin_OnLinkSrcChange: ::std::option::Option<
        unsafe extern "C" fn(This: *mut AsyncIAdviseSink2, pmk: *mut IMoniker),
    >,
    pub Finish_OnLinkSrcChange:
        ::std::option::Option<unsafe extern "C" fn(This: *mut AsyncIAdviseSink2)>,
}
#[test]
fn bindgen_test_layout_AsyncIAdviseSink2Vtbl() {
    assert_eq!(
        ::std::mem::size_of::<AsyncIAdviseSink2Vtbl>(),
        120usize,
        concat!("Size of: ", stringify!(AsyncIAdviseSink2Vtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<AsyncIAdviseSink2Vtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(AsyncIAdviseSink2Vtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIAdviseSink2Vtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIAdviseSink2Vtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIAdviseSink2Vtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIAdviseSink2Vtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIAdviseSink2Vtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIAdviseSink2Vtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIAdviseSink2Vtbl>())).Begin_OnDataChange as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIAdviseSink2Vtbl),
            "::",
            stringify!(Begin_OnDataChange)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIAdviseSink2Vtbl>())).Finish_OnDataChange as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIAdviseSink2Vtbl),
            "::",
            stringify!(Finish_OnDataChange)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIAdviseSink2Vtbl>())).Begin_OnViewChange as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIAdviseSink2Vtbl),
            "::",
            stringify!(Begin_OnViewChange)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIAdviseSink2Vtbl>())).Finish_OnViewChange as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIAdviseSink2Vtbl),
            "::",
            stringify!(Finish_OnViewChange)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIAdviseSink2Vtbl>())).Begin_OnRename as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIAdviseSink2Vtbl),
            "::",
            stringify!(Begin_OnRename)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIAdviseSink2Vtbl>())).Finish_OnRename as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIAdviseSink2Vtbl),
            "::",
            stringify!(Finish_OnRename)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIAdviseSink2Vtbl>())).Begin_OnSave as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIAdviseSink2Vtbl),
            "::",
            stringify!(Begin_OnSave)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIAdviseSink2Vtbl>())).Finish_OnSave as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIAdviseSink2Vtbl),
            "::",
            stringify!(Finish_OnSave)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIAdviseSink2Vtbl>())).Begin_OnClose as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIAdviseSink2Vtbl),
            "::",
            stringify!(Begin_OnClose)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIAdviseSink2Vtbl>())).Finish_OnClose as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIAdviseSink2Vtbl),
            "::",
            stringify!(Finish_OnClose)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIAdviseSink2Vtbl>())).Begin_OnLinkSrcChange as *const _
                as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIAdviseSink2Vtbl),
            "::",
            stringify!(Begin_OnLinkSrcChange)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<AsyncIAdviseSink2Vtbl>())).Finish_OnLinkSrcChange as *const _
                as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIAdviseSink2Vtbl),
            "::",
            stringify!(Finish_OnLinkSrcChange)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AsyncIAdviseSink2 {
    pub lpVtbl: *mut AsyncIAdviseSink2Vtbl,
}
#[test]
fn bindgen_test_layout_AsyncIAdviseSink2() {
    assert_eq!(
        ::std::mem::size_of::<AsyncIAdviseSink2>(),
        8usize,
        concat!("Size of: ", stringify!(AsyncIAdviseSink2))
    );
    assert_eq!(
        ::std::mem::align_of::<AsyncIAdviseSink2>(),
        8usize,
        concat!("Alignment of ", stringify!(AsyncIAdviseSink2))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<AsyncIAdviseSink2>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(AsyncIAdviseSink2),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn AsyncIAdviseSink2_Begin_RemoteOnLinkSrcChange_Proxy(
        This: *mut AsyncIAdviseSink2,
        pmk: *mut IMoniker,
    ) -> HRESULT;
}
extern "C" {
    pub fn AsyncIAdviseSink2_Begin_RemoteOnLinkSrcChange_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn AsyncIAdviseSink2_Finish_RemoteOnLinkSrcChange_Proxy(
        This: *mut AsyncIAdviseSink2,
    ) -> HRESULT;
}
extern "C" {
    pub fn AsyncIAdviseSink2_Finish_RemoteOnLinkSrcChange_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0072_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0072_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPDATAOBJECT = *mut IDataObject;
pub const tagDATADIR_DATADIR_GET: tagDATADIR = 1;
pub const tagDATADIR_DATADIR_SET: tagDATADIR = 2;
pub type tagDATADIR = ::std::os::raw::c_int;
pub use self::tagDATADIR as DATADIR;
extern "C" {
    pub static IID_IDataObject: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IDataObjectVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IDataObject,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IDataObject) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IDataObject) -> ULONG>,
    pub GetData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IDataObject,
            pformatetcIn: *mut FORMATETC,
            pmedium: *mut STGMEDIUM,
        ) -> HRESULT,
    >,
    pub GetDataHere: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IDataObject,
            pformatetc: *mut FORMATETC,
            pmedium: *mut STGMEDIUM,
        ) -> HRESULT,
    >,
    pub QueryGetData: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IDataObject, pformatetc: *mut FORMATETC) -> HRESULT,
    >,
    pub GetCanonicalFormatEtc: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IDataObject,
            pformatectIn: *mut FORMATETC,
            pformatetcOut: *mut FORMATETC,
        ) -> HRESULT,
    >,
    pub SetData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IDataObject,
            pformatetc: *mut FORMATETC,
            pmedium: *mut STGMEDIUM,
            fRelease: BOOL,
        ) -> HRESULT,
    >,
    pub EnumFormatEtc: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IDataObject,
            dwDirection: DWORD,
            ppenumFormatEtc: *mut *mut IEnumFORMATETC,
        ) -> HRESULT,
    >,
    pub DAdvise: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IDataObject,
            pformatetc: *mut FORMATETC,
            advf: DWORD,
            pAdvSink: *mut IAdviseSink,
            pdwConnection: *mut DWORD,
        ) -> HRESULT,
    >,
    pub DUnadvise: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IDataObject, dwConnection: DWORD) -> HRESULT,
    >,
    pub EnumDAdvise: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IDataObject,
            ppenumAdvise: *mut *mut IEnumSTATDATA,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IDataObjectVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IDataObjectVtbl>(),
        96usize,
        concat!("Size of: ", stringify!(IDataObjectVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IDataObjectVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IDataObjectVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDataObjectVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IDataObjectVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDataObjectVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IDataObjectVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDataObjectVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IDataObjectVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDataObjectVtbl>())).GetData as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IDataObjectVtbl),
            "::",
            stringify!(GetData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDataObjectVtbl>())).GetDataHere as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IDataObjectVtbl),
            "::",
            stringify!(GetDataHere)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDataObjectVtbl>())).QueryGetData as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IDataObjectVtbl),
            "::",
            stringify!(QueryGetData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IDataObjectVtbl>())).GetCanonicalFormatEtc as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IDataObjectVtbl),
            "::",
            stringify!(GetCanonicalFormatEtc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDataObjectVtbl>())).SetData as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IDataObjectVtbl),
            "::",
            stringify!(SetData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDataObjectVtbl>())).EnumFormatEtc as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IDataObjectVtbl),
            "::",
            stringify!(EnumFormatEtc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDataObjectVtbl>())).DAdvise as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IDataObjectVtbl),
            "::",
            stringify!(DAdvise)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDataObjectVtbl>())).DUnadvise as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IDataObjectVtbl),
            "::",
            stringify!(DUnadvise)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDataObjectVtbl>())).EnumDAdvise as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IDataObjectVtbl),
            "::",
            stringify!(EnumDAdvise)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IDataObject {
    pub lpVtbl: *mut IDataObjectVtbl,
}
#[test]
fn bindgen_test_layout_IDataObject() {
    assert_eq!(
        ::std::mem::size_of::<IDataObject>(),
        8usize,
        concat!("Size of: ", stringify!(IDataObject))
    );
    assert_eq!(
        ::std::mem::align_of::<IDataObject>(),
        8usize,
        concat!("Alignment of ", stringify!(IDataObject))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDataObject>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IDataObject),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IDataObject_RemoteGetData_Proxy(
        This: *mut IDataObject,
        pformatetcIn: *mut FORMATETC,
        pRemoteMedium: *mut STGMEDIUM,
    ) -> HRESULT;
}
extern "C" {
    pub fn IDataObject_RemoteGetData_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn IDataObject_RemoteGetDataHere_Proxy(
        This: *mut IDataObject,
        pformatetc: *mut FORMATETC,
        pRemoteMedium: *mut STGMEDIUM,
    ) -> HRESULT;
}
extern "C" {
    pub fn IDataObject_RemoteGetDataHere_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn IDataObject_RemoteSetData_Proxy(
        This: *mut IDataObject,
        pformatetc: *mut FORMATETC,
        pmedium: *mut FLAG_STGMEDIUM,
        fRelease: BOOL,
    ) -> HRESULT;
}
extern "C" {
    pub fn IDataObject_RemoteSetData_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0073_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0073_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPDATAADVISEHOLDER = *mut IDataAdviseHolder;
extern "C" {
    pub static IID_IDataAdviseHolder: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IDataAdviseHolderVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IDataAdviseHolder,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IDataAdviseHolder) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IDataAdviseHolder) -> ULONG>,
    pub Advise: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IDataAdviseHolder,
            pDataObject: *mut IDataObject,
            pFetc: *mut FORMATETC,
            advf: DWORD,
            pAdvise: *mut IAdviseSink,
            pdwConnection: *mut DWORD,
        ) -> HRESULT,
    >,
    pub Unadvise: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IDataAdviseHolder, dwConnection: DWORD) -> HRESULT,
    >,
    pub EnumAdvise: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IDataAdviseHolder,
            ppenumAdvise: *mut *mut IEnumSTATDATA,
        ) -> HRESULT,
    >,
    pub SendOnDataChange: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IDataAdviseHolder,
            pDataObject: *mut IDataObject,
            dwReserved: DWORD,
            advf: DWORD,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IDataAdviseHolderVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IDataAdviseHolderVtbl>(),
        56usize,
        concat!("Size of: ", stringify!(IDataAdviseHolderVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IDataAdviseHolderVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IDataAdviseHolderVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IDataAdviseHolderVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IDataAdviseHolderVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDataAdviseHolderVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IDataAdviseHolderVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDataAdviseHolderVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IDataAdviseHolderVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDataAdviseHolderVtbl>())).Advise as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IDataAdviseHolderVtbl),
            "::",
            stringify!(Advise)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDataAdviseHolderVtbl>())).Unadvise as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IDataAdviseHolderVtbl),
            "::",
            stringify!(Unadvise)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IDataAdviseHolderVtbl>())).EnumAdvise as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IDataAdviseHolderVtbl),
            "::",
            stringify!(EnumAdvise)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IDataAdviseHolderVtbl>())).SendOnDataChange as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IDataAdviseHolderVtbl),
            "::",
            stringify!(SendOnDataChange)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IDataAdviseHolder {
    pub lpVtbl: *mut IDataAdviseHolderVtbl,
}
#[test]
fn bindgen_test_layout_IDataAdviseHolder() {
    assert_eq!(
        ::std::mem::size_of::<IDataAdviseHolder>(),
        8usize,
        concat!("Size of: ", stringify!(IDataAdviseHolder))
    );
    assert_eq!(
        ::std::mem::align_of::<IDataAdviseHolder>(),
        8usize,
        concat!("Alignment of ", stringify!(IDataAdviseHolder))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDataAdviseHolder>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IDataAdviseHolder),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPMESSAGEFILTER = *mut IMessageFilter;
pub const tagCALLTYPE_CALLTYPE_TOPLEVEL: tagCALLTYPE = 1;
pub const tagCALLTYPE_CALLTYPE_NESTED: tagCALLTYPE = 2;
pub const tagCALLTYPE_CALLTYPE_ASYNC: tagCALLTYPE = 3;
pub const tagCALLTYPE_CALLTYPE_TOPLEVEL_CALLPENDING: tagCALLTYPE = 4;
pub const tagCALLTYPE_CALLTYPE_ASYNC_CALLPENDING: tagCALLTYPE = 5;
pub type tagCALLTYPE = ::std::os::raw::c_int;
pub use self::tagCALLTYPE as CALLTYPE;
pub const tagSERVERCALL_SERVERCALL_ISHANDLED: tagSERVERCALL = 0;
pub const tagSERVERCALL_SERVERCALL_REJECTED: tagSERVERCALL = 1;
pub const tagSERVERCALL_SERVERCALL_RETRYLATER: tagSERVERCALL = 2;
pub type tagSERVERCALL = ::std::os::raw::c_int;
pub use self::tagSERVERCALL as SERVERCALL;
pub const tagPENDINGTYPE_PENDINGTYPE_TOPLEVEL: tagPENDINGTYPE = 1;
pub const tagPENDINGTYPE_PENDINGTYPE_NESTED: tagPENDINGTYPE = 2;
pub type tagPENDINGTYPE = ::std::os::raw::c_int;
pub use self::tagPENDINGTYPE as PENDINGTYPE;
pub const tagPENDINGMSG_PENDINGMSG_CANCELCALL: tagPENDINGMSG = 0;
pub const tagPENDINGMSG_PENDINGMSG_WAITNOPROCESS: tagPENDINGMSG = 1;
pub const tagPENDINGMSG_PENDINGMSG_WAITDEFPROCESS: tagPENDINGMSG = 2;
pub type tagPENDINGMSG = ::std::os::raw::c_int;
pub use self::tagPENDINGMSG as PENDINGMSG;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagINTERFACEINFO {
    pub pUnk: *mut IUnknown,
    pub iid: IID,
    pub wMethod: WORD,
}
#[test]
fn bindgen_test_layout_tagINTERFACEINFO() {
    assert_eq!(
        ::std::mem::size_of::<tagINTERFACEINFO>(),
        32usize,
        concat!("Size of: ", stringify!(tagINTERFACEINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagINTERFACEINFO>(),
        8usize,
        concat!("Alignment of ", stringify!(tagINTERFACEINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagINTERFACEINFO>())).pUnk as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagINTERFACEINFO),
            "::",
            stringify!(pUnk)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagINTERFACEINFO>())).iid as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagINTERFACEINFO),
            "::",
            stringify!(iid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagINTERFACEINFO>())).wMethod as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagINTERFACEINFO),
            "::",
            stringify!(wMethod)
        )
    );
}
pub type INTERFACEINFO = tagINTERFACEINFO;
pub type LPINTERFACEINFO = *mut tagINTERFACEINFO;
extern "C" {
    pub static IID_IMessageFilter: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IMessageFilterVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMessageFilter,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IMessageFilter) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IMessageFilter) -> ULONG>,
    pub HandleInComingCall: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMessageFilter,
            dwCallType: DWORD,
            htaskCaller: HTASK,
            dwTickCount: DWORD,
            lpInterfaceInfo: LPINTERFACEINFO,
        ) -> DWORD,
    >,
    pub RetryRejectedCall: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMessageFilter,
            htaskCallee: HTASK,
            dwTickCount: DWORD,
            dwRejectType: DWORD,
        ) -> DWORD,
    >,
    pub MessagePending: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMessageFilter,
            htaskCallee: HTASK,
            dwTickCount: DWORD,
            dwPendingType: DWORD,
        ) -> DWORD,
    >,
}
#[test]
fn bindgen_test_layout_IMessageFilterVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IMessageFilterVtbl>(),
        48usize,
        concat!("Size of: ", stringify!(IMessageFilterVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IMessageFilterVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IMessageFilterVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IMessageFilterVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IMessageFilterVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMessageFilterVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IMessageFilterVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMessageFilterVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IMessageFilterVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IMessageFilterVtbl>())).HandleInComingCall as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IMessageFilterVtbl),
            "::",
            stringify!(HandleInComingCall)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IMessageFilterVtbl>())).RetryRejectedCall as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IMessageFilterVtbl),
            "::",
            stringify!(RetryRejectedCall)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IMessageFilterVtbl>())).MessagePending as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IMessageFilterVtbl),
            "::",
            stringify!(MessagePending)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IMessageFilter {
    pub lpVtbl: *mut IMessageFilterVtbl,
}
#[test]
fn bindgen_test_layout_IMessageFilter() {
    assert_eq!(
        ::std::mem::size_of::<IMessageFilter>(),
        8usize,
        concat!("Size of: ", stringify!(IMessageFilter))
    );
    assert_eq!(
        ::std::mem::align_of::<IMessageFilter>(),
        8usize,
        concat!("Alignment of ", stringify!(IMessageFilter))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMessageFilter>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IMessageFilter),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static FMTID_SummaryInformation: FMTID;
}
extern "C" {
    pub static FMTID_DocSummaryInformation: FMTID;
}
extern "C" {
    pub static FMTID_UserDefinedProperties: FMTID;
}
extern "C" {
    pub static FMTID_DiscardableInformation: FMTID;
}
extern "C" {
    pub static FMTID_ImageSummaryInformation: FMTID;
}
extern "C" {
    pub static FMTID_AudioSummaryInformation: FMTID;
}
extern "C" {
    pub static FMTID_VideoSummaryInformation: FMTID;
}
extern "C" {
    pub static FMTID_MediaFileSummaryInformation: FMTID;
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0075_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0075_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IClassActivator: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IClassActivatorVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IClassActivator,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IClassActivator) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IClassActivator) -> ULONG>,
    pub GetClassObject: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IClassActivator,
            rclsid: *const IID,
            dwClassContext: DWORD,
            locale: LCID,
            riid: *const IID,
            ppv: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IClassActivatorVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IClassActivatorVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IClassActivatorVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IClassActivatorVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IClassActivatorVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IClassActivatorVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IClassActivatorVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IClassActivatorVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IClassActivatorVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IClassActivatorVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IClassActivatorVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IClassActivatorVtbl>())).GetClassObject as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IClassActivatorVtbl),
            "::",
            stringify!(GetClassObject)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IClassActivator {
    pub lpVtbl: *mut IClassActivatorVtbl,
}
#[test]
fn bindgen_test_layout_IClassActivator() {
    assert_eq!(
        ::std::mem::size_of::<IClassActivator>(),
        8usize,
        concat!("Size of: ", stringify!(IClassActivator))
    );
    assert_eq!(
        ::std::mem::align_of::<IClassActivator>(),
        8usize,
        concat!("Alignment of ", stringify!(IClassActivator))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IClassActivator>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IClassActivator),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0076_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0076_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IFillLockBytes: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IFillLockBytesVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IFillLockBytes,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IFillLockBytes) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IFillLockBytes) -> ULONG>,
    pub FillAppend: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IFillLockBytes,
            pv: *const ::std::os::raw::c_void,
            cb: ULONG,
            pcbWritten: *mut ULONG,
        ) -> HRESULT,
    >,
    pub FillAt: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IFillLockBytes,
            ulOffset: ULARGE_INTEGER,
            pv: *const ::std::os::raw::c_void,
            cb: ULONG,
            pcbWritten: *mut ULONG,
        ) -> HRESULT,
    >,
    pub SetFillSize: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IFillLockBytes, ulSize: ULARGE_INTEGER) -> HRESULT,
    >,
    pub Terminate: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IFillLockBytes, bCanceled: BOOL) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IFillLockBytesVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IFillLockBytesVtbl>(),
        56usize,
        concat!("Size of: ", stringify!(IFillLockBytesVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IFillLockBytesVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IFillLockBytesVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IFillLockBytesVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IFillLockBytesVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IFillLockBytesVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IFillLockBytesVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IFillLockBytesVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IFillLockBytesVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IFillLockBytesVtbl>())).FillAppend as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IFillLockBytesVtbl),
            "::",
            stringify!(FillAppend)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IFillLockBytesVtbl>())).FillAt as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IFillLockBytesVtbl),
            "::",
            stringify!(FillAt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IFillLockBytesVtbl>())).SetFillSize as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IFillLockBytesVtbl),
            "::",
            stringify!(SetFillSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IFillLockBytesVtbl>())).Terminate as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IFillLockBytesVtbl),
            "::",
            stringify!(Terminate)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IFillLockBytes {
    pub lpVtbl: *mut IFillLockBytesVtbl,
}
#[test]
fn bindgen_test_layout_IFillLockBytes() {
    assert_eq!(
        ::std::mem::size_of::<IFillLockBytes>(),
        8usize,
        concat!("Size of: ", stringify!(IFillLockBytes))
    );
    assert_eq!(
        ::std::mem::align_of::<IFillLockBytes>(),
        8usize,
        concat!("Alignment of ", stringify!(IFillLockBytes))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IFillLockBytes>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IFillLockBytes),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IFillLockBytes_RemoteFillAppend_Proxy(
        This: *mut IFillLockBytes,
        pv: *const byte,
        cb: ULONG,
        pcbWritten: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IFillLockBytes_RemoteFillAppend_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn IFillLockBytes_RemoteFillAt_Proxy(
        This: *mut IFillLockBytes,
        ulOffset: ULARGE_INTEGER,
        pv: *const byte,
        cb: ULONG,
        pcbWritten: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IFillLockBytes_RemoteFillAt_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0077_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0077_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IProgressNotify: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IProgressNotifyVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IProgressNotify,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IProgressNotify) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IProgressNotify) -> ULONG>,
    pub OnProgress: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IProgressNotify,
            dwProgressCurrent: DWORD,
            dwProgressMaximum: DWORD,
            fAccurate: BOOL,
            fOwner: BOOL,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IProgressNotifyVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IProgressNotifyVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IProgressNotifyVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IProgressNotifyVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IProgressNotifyVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IProgressNotifyVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IProgressNotifyVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IProgressNotifyVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IProgressNotifyVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IProgressNotifyVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IProgressNotifyVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IProgressNotifyVtbl>())).OnProgress as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IProgressNotifyVtbl),
            "::",
            stringify!(OnProgress)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IProgressNotify {
    pub lpVtbl: *mut IProgressNotifyVtbl,
}
#[test]
fn bindgen_test_layout_IProgressNotify() {
    assert_eq!(
        ::std::mem::size_of::<IProgressNotify>(),
        8usize,
        concat!("Size of: ", stringify!(IProgressNotify))
    );
    assert_eq!(
        ::std::mem::align_of::<IProgressNotify>(),
        8usize,
        concat!("Alignment of ", stringify!(IProgressNotify))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IProgressNotify>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IProgressNotify),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0078_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0078_v0_0_s_ifspec: RPC_IF_HANDLE;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagStorageLayout {
    pub LayoutType: DWORD,
    pub pwcsElementName: *mut OLECHAR,
    pub cOffset: LARGE_INTEGER,
    pub cBytes: LARGE_INTEGER,
}
#[test]
fn bindgen_test_layout_tagStorageLayout() {
    assert_eq!(
        ::std::mem::size_of::<tagStorageLayout>(),
        32usize,
        concat!("Size of: ", stringify!(tagStorageLayout))
    );
    assert_eq!(
        ::std::mem::align_of::<tagStorageLayout>(),
        8usize,
        concat!("Alignment of ", stringify!(tagStorageLayout))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagStorageLayout>())).LayoutType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagStorageLayout),
            "::",
            stringify!(LayoutType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagStorageLayout>())).pwcsElementName as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagStorageLayout),
            "::",
            stringify!(pwcsElementName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagStorageLayout>())).cOffset as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagStorageLayout),
            "::",
            stringify!(cOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagStorageLayout>())).cBytes as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagStorageLayout),
            "::",
            stringify!(cBytes)
        )
    );
}
pub type StorageLayout = tagStorageLayout;
extern "C" {
    pub static IID_ILayoutStorage: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ILayoutStorageVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ILayoutStorage,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut ILayoutStorage) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut ILayoutStorage) -> ULONG>,
    pub LayoutScript: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ILayoutStorage,
            pStorageLayout: *mut StorageLayout,
            nEntries: DWORD,
            glfInterleavedFlag: DWORD,
        ) -> HRESULT,
    >,
    pub BeginMonitor:
        ::std::option::Option<unsafe extern "C" fn(This: *mut ILayoutStorage) -> HRESULT>,
    pub EndMonitor:
        ::std::option::Option<unsafe extern "C" fn(This: *mut ILayoutStorage) -> HRESULT>,
    pub ReLayoutDocfile: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ILayoutStorage, pwcsNewDfName: *mut OLECHAR) -> HRESULT,
    >,
    pub ReLayoutDocfileOnILockBytes: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ILayoutStorage, pILockBytes: *mut ILockBytes) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_ILayoutStorageVtbl() {
    assert_eq!(
        ::std::mem::size_of::<ILayoutStorageVtbl>(),
        64usize,
        concat!("Size of: ", stringify!(ILayoutStorageVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<ILayoutStorageVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(ILayoutStorageVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ILayoutStorageVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ILayoutStorageVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ILayoutStorageVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ILayoutStorageVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ILayoutStorageVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ILayoutStorageVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ILayoutStorageVtbl>())).LayoutScript as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ILayoutStorageVtbl),
            "::",
            stringify!(LayoutScript)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ILayoutStorageVtbl>())).BeginMonitor as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ILayoutStorageVtbl),
            "::",
            stringify!(BeginMonitor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ILayoutStorageVtbl>())).EndMonitor as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(ILayoutStorageVtbl),
            "::",
            stringify!(EndMonitor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ILayoutStorageVtbl>())).ReLayoutDocfile as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(ILayoutStorageVtbl),
            "::",
            stringify!(ReLayoutDocfile)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ILayoutStorageVtbl>())).ReLayoutDocfileOnILockBytes as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(ILayoutStorageVtbl),
            "::",
            stringify!(ReLayoutDocfileOnILockBytes)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ILayoutStorage {
    pub lpVtbl: *mut ILayoutStorageVtbl,
}
#[test]
fn bindgen_test_layout_ILayoutStorage() {
    assert_eq!(
        ::std::mem::size_of::<ILayoutStorage>(),
        8usize,
        concat!("Size of: ", stringify!(ILayoutStorage))
    );
    assert_eq!(
        ::std::mem::align_of::<ILayoutStorage>(),
        8usize,
        concat!("Alignment of ", stringify!(ILayoutStorage))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ILayoutStorage>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ILayoutStorage),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0079_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0079_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IBlockingLock: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IBlockingLockVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IBlockingLock,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IBlockingLock) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IBlockingLock) -> ULONG>,
    pub Lock: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IBlockingLock, dwTimeout: DWORD) -> HRESULT,
    >,
    pub Unlock: ::std::option::Option<unsafe extern "C" fn(This: *mut IBlockingLock) -> HRESULT>,
}
#[test]
fn bindgen_test_layout_IBlockingLockVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IBlockingLockVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IBlockingLockVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IBlockingLockVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IBlockingLockVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBlockingLockVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IBlockingLockVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBlockingLockVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IBlockingLockVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBlockingLockVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IBlockingLockVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBlockingLockVtbl>())).Lock as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IBlockingLockVtbl),
            "::",
            stringify!(Lock)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBlockingLockVtbl>())).Unlock as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IBlockingLockVtbl),
            "::",
            stringify!(Unlock)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IBlockingLock {
    pub lpVtbl: *mut IBlockingLockVtbl,
}
#[test]
fn bindgen_test_layout_IBlockingLock() {
    assert_eq!(
        ::std::mem::size_of::<IBlockingLock>(),
        8usize,
        concat!("Size of: ", stringify!(IBlockingLock))
    );
    assert_eq!(
        ::std::mem::align_of::<IBlockingLock>(),
        8usize,
        concat!("Alignment of ", stringify!(IBlockingLock))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBlockingLock>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IBlockingLock),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_ITimeAndNoticeControl: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ITimeAndNoticeControlVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITimeAndNoticeControl,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut ITimeAndNoticeControl) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut ITimeAndNoticeControl) -> ULONG>,
    pub SuppressChanges: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ITimeAndNoticeControl, res1: DWORD, res2: DWORD) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_ITimeAndNoticeControlVtbl() {
    assert_eq!(
        ::std::mem::size_of::<ITimeAndNoticeControlVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(ITimeAndNoticeControlVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<ITimeAndNoticeControlVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(ITimeAndNoticeControlVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITimeAndNoticeControlVtbl>())).QueryInterface as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ITimeAndNoticeControlVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITimeAndNoticeControlVtbl>())).AddRef as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ITimeAndNoticeControlVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITimeAndNoticeControlVtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ITimeAndNoticeControlVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITimeAndNoticeControlVtbl>())).SuppressChanges as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ITimeAndNoticeControlVtbl),
            "::",
            stringify!(SuppressChanges)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ITimeAndNoticeControl {
    pub lpVtbl: *mut ITimeAndNoticeControlVtbl,
}
#[test]
fn bindgen_test_layout_ITimeAndNoticeControl() {
    assert_eq!(
        ::std::mem::size_of::<ITimeAndNoticeControl>(),
        8usize,
        concat!("Size of: ", stringify!(ITimeAndNoticeControl))
    );
    assert_eq!(
        ::std::mem::align_of::<ITimeAndNoticeControl>(),
        8usize,
        concat!("Alignment of ", stringify!(ITimeAndNoticeControl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITimeAndNoticeControl>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ITimeAndNoticeControl),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IOplockStorage: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IOplockStorageVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOplockStorage,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IOplockStorage) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IOplockStorage) -> ULONG>,
    pub CreateStorageEx: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOplockStorage,
            pwcsName: LPCWSTR,
            grfMode: DWORD,
            stgfmt: DWORD,
            grfAttrs: DWORD,
            riid: *const IID,
            ppstgOpen: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub OpenStorageEx: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOplockStorage,
            pwcsName: LPCWSTR,
            grfMode: DWORD,
            stgfmt: DWORD,
            grfAttrs: DWORD,
            riid: *const IID,
            ppstgOpen: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IOplockStorageVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IOplockStorageVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IOplockStorageVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IOplockStorageVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IOplockStorageVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOplockStorageVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IOplockStorageVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOplockStorageVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IOplockStorageVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOplockStorageVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IOplockStorageVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOplockStorageVtbl>())).CreateStorageEx as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IOplockStorageVtbl),
            "::",
            stringify!(CreateStorageEx)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOplockStorageVtbl>())).OpenStorageEx as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IOplockStorageVtbl),
            "::",
            stringify!(OpenStorageEx)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IOplockStorage {
    pub lpVtbl: *mut IOplockStorageVtbl,
}
#[test]
fn bindgen_test_layout_IOplockStorage() {
    assert_eq!(
        ::std::mem::size_of::<IOplockStorage>(),
        8usize,
        concat!("Size of: ", stringify!(IOplockStorage))
    );
    assert_eq!(
        ::std::mem::align_of::<IOplockStorage>(),
        8usize,
        concat!("Alignment of ", stringify!(IOplockStorage))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOplockStorage>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IOplockStorage),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0082_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0082_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IDirectWriterLock: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IDirectWriterLockVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IDirectWriterLock,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IDirectWriterLock) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IDirectWriterLock) -> ULONG>,
    pub WaitForWriteAccess: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IDirectWriterLock, dwTimeout: DWORD) -> HRESULT,
    >,
    pub ReleaseWriteAccess:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IDirectWriterLock) -> HRESULT>,
    pub HaveWriteAccess:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IDirectWriterLock) -> HRESULT>,
}
#[test]
fn bindgen_test_layout_IDirectWriterLockVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IDirectWriterLockVtbl>(),
        48usize,
        concat!("Size of: ", stringify!(IDirectWriterLockVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IDirectWriterLockVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IDirectWriterLockVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IDirectWriterLockVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IDirectWriterLockVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDirectWriterLockVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IDirectWriterLockVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDirectWriterLockVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IDirectWriterLockVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IDirectWriterLockVtbl>())).WaitForWriteAccess as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IDirectWriterLockVtbl),
            "::",
            stringify!(WaitForWriteAccess)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IDirectWriterLockVtbl>())).ReleaseWriteAccess as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IDirectWriterLockVtbl),
            "::",
            stringify!(ReleaseWriteAccess)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IDirectWriterLockVtbl>())).HaveWriteAccess as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IDirectWriterLockVtbl),
            "::",
            stringify!(HaveWriteAccess)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IDirectWriterLock {
    pub lpVtbl: *mut IDirectWriterLockVtbl,
}
#[test]
fn bindgen_test_layout_IDirectWriterLock() {
    assert_eq!(
        ::std::mem::size_of::<IDirectWriterLock>(),
        8usize,
        concat!("Size of: ", stringify!(IDirectWriterLock))
    );
    assert_eq!(
        ::std::mem::align_of::<IDirectWriterLock>(),
        8usize,
        concat!("Alignment of ", stringify!(IDirectWriterLock))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDirectWriterLock>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IDirectWriterLock),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0083_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0083_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IUrlMon: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IUrlMonVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IUrlMon,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IUrlMon) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IUrlMon) -> ULONG>,
    pub AsyncGetClassBits: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IUrlMon,
            rclsid: *const IID,
            pszTYPE: LPCWSTR,
            pszExt: LPCWSTR,
            dwFileVersionMS: DWORD,
            dwFileVersionLS: DWORD,
            pszCodeBase: LPCWSTR,
            pbc: *mut IBindCtx,
            dwClassContext: DWORD,
            riid: *const IID,
            flags: DWORD,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IUrlMonVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IUrlMonVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IUrlMonVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IUrlMonVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IUrlMonVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUrlMonVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IUrlMonVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUrlMonVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IUrlMonVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUrlMonVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IUrlMonVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUrlMonVtbl>())).AsyncGetClassBits as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IUrlMonVtbl),
            "::",
            stringify!(AsyncGetClassBits)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IUrlMon {
    pub lpVtbl: *mut IUrlMonVtbl,
}
#[test]
fn bindgen_test_layout_IUrlMon() {
    assert_eq!(
        ::std::mem::size_of::<IUrlMon>(),
        8usize,
        concat!("Size of: ", stringify!(IUrlMon))
    );
    assert_eq!(
        ::std::mem::align_of::<IUrlMon>(),
        8usize,
        concat!("Alignment of ", stringify!(IUrlMon))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUrlMon>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IUrlMon),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IForegroundTransfer: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IForegroundTransferVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IForegroundTransfer,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IForegroundTransfer) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IForegroundTransfer) -> ULONG>,
    pub AllowForegroundTransfer: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IForegroundTransfer,
            lpvReserved: *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IForegroundTransferVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IForegroundTransferVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IForegroundTransferVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IForegroundTransferVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IForegroundTransferVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IForegroundTransferVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IForegroundTransferVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IForegroundTransferVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IForegroundTransferVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IForegroundTransferVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IForegroundTransferVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IForegroundTransferVtbl>())).AllowForegroundTransfer as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IForegroundTransferVtbl),
            "::",
            stringify!(AllowForegroundTransfer)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IForegroundTransfer {
    pub lpVtbl: *mut IForegroundTransferVtbl,
}
#[test]
fn bindgen_test_layout_IForegroundTransfer() {
    assert_eq!(
        ::std::mem::size_of::<IForegroundTransfer>(),
        8usize,
        concat!("Size of: ", stringify!(IForegroundTransfer))
    );
    assert_eq!(
        ::std::mem::align_of::<IForegroundTransfer>(),
        8usize,
        concat!("Alignment of ", stringify!(IForegroundTransfer))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IForegroundTransfer>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IForegroundTransfer),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IThumbnailExtractor: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IThumbnailExtractorVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IThumbnailExtractor,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IThumbnailExtractor) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IThumbnailExtractor) -> ULONG>,
    pub ExtractThumbnail: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IThumbnailExtractor,
            pStg: *mut IStorage,
            ulLength: ULONG,
            ulHeight: ULONG,
            pulOutputLength: *mut ULONG,
            pulOutputHeight: *mut ULONG,
            phOutputBitmap: *mut HBITMAP,
        ) -> HRESULT,
    >,
    pub OnFileUpdated: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IThumbnailExtractor, pStg: *mut IStorage) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IThumbnailExtractorVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IThumbnailExtractorVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IThumbnailExtractorVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IThumbnailExtractorVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IThumbnailExtractorVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IThumbnailExtractorVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IThumbnailExtractorVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IThumbnailExtractorVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IThumbnailExtractorVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IThumbnailExtractorVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IThumbnailExtractorVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IThumbnailExtractorVtbl>())).ExtractThumbnail as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IThumbnailExtractorVtbl),
            "::",
            stringify!(ExtractThumbnail)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IThumbnailExtractorVtbl>())).OnFileUpdated as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IThumbnailExtractorVtbl),
            "::",
            stringify!(OnFileUpdated)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IThumbnailExtractor {
    pub lpVtbl: *mut IThumbnailExtractorVtbl,
}
#[test]
fn bindgen_test_layout_IThumbnailExtractor() {
    assert_eq!(
        ::std::mem::size_of::<IThumbnailExtractor>(),
        8usize,
        concat!("Size of: ", stringify!(IThumbnailExtractor))
    );
    assert_eq!(
        ::std::mem::align_of::<IThumbnailExtractor>(),
        8usize,
        concat!("Alignment of ", stringify!(IThumbnailExtractor))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IThumbnailExtractor>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IThumbnailExtractor),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IDummyHICONIncluder: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IDummyHICONIncluderVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IDummyHICONIncluder,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IDummyHICONIncluder) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IDummyHICONIncluder) -> ULONG>,
    pub Dummy: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IDummyHICONIncluder, h1: HICON, h2: HDC) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IDummyHICONIncluderVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IDummyHICONIncluderVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IDummyHICONIncluderVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IDummyHICONIncluderVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IDummyHICONIncluderVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IDummyHICONIncluderVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IDummyHICONIncluderVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDummyHICONIncluderVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IDummyHICONIncluderVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDummyHICONIncluderVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IDummyHICONIncluderVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDummyHICONIncluderVtbl>())).Dummy as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IDummyHICONIncluderVtbl),
            "::",
            stringify!(Dummy)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IDummyHICONIncluder {
    pub lpVtbl: *mut IDummyHICONIncluderVtbl,
}
#[test]
fn bindgen_test_layout_IDummyHICONIncluder() {
    assert_eq!(
        ::std::mem::size_of::<IDummyHICONIncluder>(),
        8usize,
        concat!("Size of: ", stringify!(IDummyHICONIncluder))
    );
    assert_eq!(
        ::std::mem::align_of::<IDummyHICONIncluder>(),
        8usize,
        concat!("Alignment of ", stringify!(IDummyHICONIncluder))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDummyHICONIncluder>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IDummyHICONIncluder),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub const tagApplicationType_ServerApplication: tagApplicationType = 0;
pub const tagApplicationType_LibraryApplication: tagApplicationType = 1;
pub type tagApplicationType = ::std::os::raw::c_int;
pub use self::tagApplicationType as ApplicationType;
pub const tagShutdownType_IdleShutdown: tagShutdownType = 0;
pub const tagShutdownType_ForcedShutdown: tagShutdownType = 1;
pub type tagShutdownType = ::std::os::raw::c_int;
pub use self::tagShutdownType as ShutdownType;
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0087_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0087_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IProcessLock: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IProcessLockVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IProcessLock,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IProcessLock) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IProcessLock) -> ULONG>,
    pub AddRefOnProcess:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IProcessLock) -> ULONG>,
    pub ReleaseRefOnProcess:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IProcessLock) -> ULONG>,
}
#[test]
fn bindgen_test_layout_IProcessLockVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IProcessLockVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IProcessLockVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IProcessLockVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IProcessLockVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IProcessLockVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IProcessLockVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IProcessLockVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IProcessLockVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IProcessLockVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IProcessLockVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IProcessLockVtbl>())).AddRefOnProcess as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IProcessLockVtbl),
            "::",
            stringify!(AddRefOnProcess)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IProcessLockVtbl>())).ReleaseRefOnProcess as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IProcessLockVtbl),
            "::",
            stringify!(ReleaseRefOnProcess)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IProcessLock {
    pub lpVtbl: *mut IProcessLockVtbl,
}
#[test]
fn bindgen_test_layout_IProcessLock() {
    assert_eq!(
        ::std::mem::size_of::<IProcessLock>(),
        8usize,
        concat!("Size of: ", stringify!(IProcessLock))
    );
    assert_eq!(
        ::std::mem::align_of::<IProcessLock>(),
        8usize,
        concat!("Alignment of ", stringify!(IProcessLock))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IProcessLock>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IProcessLock),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_ISurrogateService: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ISurrogateServiceVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ISurrogateService,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut ISurrogateService) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut ISurrogateService) -> ULONG>,
    pub Init: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ISurrogateService,
            rguidProcessID: *const GUID,
            pProcessLock: *mut IProcessLock,
            pfApplicationAware: *mut BOOL,
        ) -> HRESULT,
    >,
    pub ApplicationLaunch: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ISurrogateService,
            rguidApplID: *const GUID,
            appType: ApplicationType,
        ) -> HRESULT,
    >,
    pub ApplicationFree: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ISurrogateService, rguidApplID: *const GUID) -> HRESULT,
    >,
    pub CatalogRefresh: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ISurrogateService, ulReserved: ULONG) -> HRESULT,
    >,
    pub ProcessShutdown: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ISurrogateService, shutdownType: ShutdownType) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_ISurrogateServiceVtbl() {
    assert_eq!(
        ::std::mem::size_of::<ISurrogateServiceVtbl>(),
        64usize,
        concat!("Size of: ", stringify!(ISurrogateServiceVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<ISurrogateServiceVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(ISurrogateServiceVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ISurrogateServiceVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ISurrogateServiceVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISurrogateServiceVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ISurrogateServiceVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISurrogateServiceVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ISurrogateServiceVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISurrogateServiceVtbl>())).Init as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ISurrogateServiceVtbl),
            "::",
            stringify!(Init)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ISurrogateServiceVtbl>())).ApplicationLaunch as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ISurrogateServiceVtbl),
            "::",
            stringify!(ApplicationLaunch)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ISurrogateServiceVtbl>())).ApplicationFree as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(ISurrogateServiceVtbl),
            "::",
            stringify!(ApplicationFree)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ISurrogateServiceVtbl>())).CatalogRefresh as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(ISurrogateServiceVtbl),
            "::",
            stringify!(CatalogRefresh)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ISurrogateServiceVtbl>())).ProcessShutdown as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(ISurrogateServiceVtbl),
            "::",
            stringify!(ProcessShutdown)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ISurrogateService {
    pub lpVtbl: *mut ISurrogateServiceVtbl,
}
#[test]
fn bindgen_test_layout_ISurrogateService() {
    assert_eq!(
        ::std::mem::size_of::<ISurrogateService>(),
        8usize,
        concat!("Size of: ", stringify!(ISurrogateService))
    );
    assert_eq!(
        ::std::mem::align_of::<ISurrogateService>(),
        8usize,
        concat!("Alignment of ", stringify!(ISurrogateService))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISurrogateService>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ISurrogateService),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0089_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0089_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPINITIALIZESPY = *mut IInitializeSpy;
extern "C" {
    pub static IID_IInitializeSpy: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInitializeSpyVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInitializeSpy,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IInitializeSpy) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IInitializeSpy) -> ULONG>,
    pub PreInitialize: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInitializeSpy,
            dwCoInit: DWORD,
            dwCurThreadAptRefs: DWORD,
        ) -> HRESULT,
    >,
    pub PostInitialize: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInitializeSpy,
            hrCoInit: HRESULT,
            dwCoInit: DWORD,
            dwNewThreadAptRefs: DWORD,
        ) -> HRESULT,
    >,
    pub PreUninitialize: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IInitializeSpy, dwCurThreadAptRefs: DWORD) -> HRESULT,
    >,
    pub PostUninitialize: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IInitializeSpy, dwNewThreadAptRefs: DWORD) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IInitializeSpyVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IInitializeSpyVtbl>(),
        56usize,
        concat!("Size of: ", stringify!(IInitializeSpyVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IInitializeSpyVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IInitializeSpyVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInitializeSpyVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInitializeSpyVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInitializeSpyVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IInitializeSpyVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInitializeSpyVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IInitializeSpyVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInitializeSpyVtbl>())).PreInitialize as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IInitializeSpyVtbl),
            "::",
            stringify!(PreInitialize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInitializeSpyVtbl>())).PostInitialize as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IInitializeSpyVtbl),
            "::",
            stringify!(PostInitialize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInitializeSpyVtbl>())).PreUninitialize as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IInitializeSpyVtbl),
            "::",
            stringify!(PreUninitialize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInitializeSpyVtbl>())).PostUninitialize as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IInitializeSpyVtbl),
            "::",
            stringify!(PostUninitialize)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInitializeSpy {
    pub lpVtbl: *mut IInitializeSpyVtbl,
}
#[test]
fn bindgen_test_layout_IInitializeSpy() {
    assert_eq!(
        ::std::mem::size_of::<IInitializeSpy>(),
        8usize,
        concat!("Size of: ", stringify!(IInitializeSpy))
    );
    assert_eq!(
        ::std::mem::align_of::<IInitializeSpy>(),
        8usize,
        concat!("Alignment of ", stringify!(IInitializeSpy))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInitializeSpy>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInitializeSpy),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0090_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0090_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IApartmentShutdown: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IApartmentShutdownVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IApartmentShutdown,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IApartmentShutdown) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IApartmentShutdown) -> ULONG>,
    pub OnUninitialize: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IApartmentShutdown, ui64ApartmentIdentifier: UINT64),
    >,
}
#[test]
fn bindgen_test_layout_IApartmentShutdownVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IApartmentShutdownVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IApartmentShutdownVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IApartmentShutdownVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IApartmentShutdownVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IApartmentShutdownVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IApartmentShutdownVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IApartmentShutdownVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IApartmentShutdownVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IApartmentShutdownVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IApartmentShutdownVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IApartmentShutdownVtbl>())).OnUninitialize as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IApartmentShutdownVtbl),
            "::",
            stringify!(OnUninitialize)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IApartmentShutdown {
    pub lpVtbl: *mut IApartmentShutdownVtbl,
}
#[test]
fn bindgen_test_layout_IApartmentShutdown() {
    assert_eq!(
        ::std::mem::size_of::<IApartmentShutdown>(),
        8usize,
        concat!("Size of: ", stringify!(IApartmentShutdown))
    );
    assert_eq!(
        ::std::mem::align_of::<IApartmentShutdown>(),
        8usize,
        concat!("Alignment of ", stringify!(IApartmentShutdown))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IApartmentShutdown>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IApartmentShutdown),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0091_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_objidl_0000_0091_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub fn ASYNC_STGMEDIUM_UserSize(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut ASYNC_STGMEDIUM,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn ASYNC_STGMEDIUM_UserMarshal(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut ASYNC_STGMEDIUM,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn ASYNC_STGMEDIUM_UserUnmarshal(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut ASYNC_STGMEDIUM,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn ASYNC_STGMEDIUM_UserFree(arg1: *mut ::std::os::raw::c_ulong, arg2: *mut ASYNC_STGMEDIUM);
}
extern "C" {
    pub fn CLIPFORMAT_UserSize(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut CLIPFORMAT,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn CLIPFORMAT_UserMarshal(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut CLIPFORMAT,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn CLIPFORMAT_UserUnmarshal(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut CLIPFORMAT,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn CLIPFORMAT_UserFree(arg1: *mut ::std::os::raw::c_ulong, arg2: *mut CLIPFORMAT);
}
extern "C" {
    pub fn FLAG_STGMEDIUM_UserSize(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut FLAG_STGMEDIUM,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn FLAG_STGMEDIUM_UserMarshal(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut FLAG_STGMEDIUM,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn FLAG_STGMEDIUM_UserUnmarshal(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut FLAG_STGMEDIUM,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn FLAG_STGMEDIUM_UserFree(arg1: *mut ::std::os::raw::c_ulong, arg2: *mut FLAG_STGMEDIUM);
}
extern "C" {
    pub fn HBITMAP_UserSize(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut HBITMAP,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn HBITMAP_UserMarshal(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut HBITMAP,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn HBITMAP_UserUnmarshal(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut HBITMAP,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn HBITMAP_UserFree(arg1: *mut ::std::os::raw::c_ulong, arg2: *mut HBITMAP);
}
extern "C" {
    pub fn HDC_UserSize(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut HDC,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn HDC_UserMarshal(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut HDC,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn HDC_UserUnmarshal(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut HDC,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn HDC_UserFree(arg1: *mut ::std::os::raw::c_ulong, arg2: *mut HDC);
}
extern "C" {
    pub fn HICON_UserSize(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut HICON,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn HICON_UserMarshal(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut HICON,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn HICON_UserUnmarshal(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut HICON,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn HICON_UserFree(arg1: *mut ::std::os::raw::c_ulong, arg2: *mut HICON);
}
extern "C" {
    pub fn SNB_UserSize(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut SNB,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn SNB_UserMarshal(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut SNB,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn SNB_UserUnmarshal(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut SNB,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn SNB_UserFree(arg1: *mut ::std::os::raw::c_ulong, arg2: *mut SNB);
}
extern "C" {
    pub fn STGMEDIUM_UserSize(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut STGMEDIUM,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn STGMEDIUM_UserMarshal(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut STGMEDIUM,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn STGMEDIUM_UserUnmarshal(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut STGMEDIUM,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn STGMEDIUM_UserFree(arg1: *mut ::std::os::raw::c_ulong, arg2: *mut STGMEDIUM);
}
extern "C" {
    pub fn ASYNC_STGMEDIUM_UserSize64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut ASYNC_STGMEDIUM,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn ASYNC_STGMEDIUM_UserMarshal64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut ASYNC_STGMEDIUM,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn ASYNC_STGMEDIUM_UserUnmarshal64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut ASYNC_STGMEDIUM,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn ASYNC_STGMEDIUM_UserFree64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ASYNC_STGMEDIUM,
    );
}
extern "C" {
    pub fn CLIPFORMAT_UserSize64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut CLIPFORMAT,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn CLIPFORMAT_UserMarshal64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut CLIPFORMAT,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn CLIPFORMAT_UserUnmarshal64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut CLIPFORMAT,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn CLIPFORMAT_UserFree64(arg1: *mut ::std::os::raw::c_ulong, arg2: *mut CLIPFORMAT);
}
extern "C" {
    pub fn FLAG_STGMEDIUM_UserSize64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut FLAG_STGMEDIUM,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn FLAG_STGMEDIUM_UserMarshal64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut FLAG_STGMEDIUM,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn FLAG_STGMEDIUM_UserUnmarshal64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut FLAG_STGMEDIUM,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn FLAG_STGMEDIUM_UserFree64(arg1: *mut ::std::os::raw::c_ulong, arg2: *mut FLAG_STGMEDIUM);
}
extern "C" {
    pub fn HBITMAP_UserSize64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut HBITMAP,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn HBITMAP_UserMarshal64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut HBITMAP,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn HBITMAP_UserUnmarshal64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut HBITMAP,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn HBITMAP_UserFree64(arg1: *mut ::std::os::raw::c_ulong, arg2: *mut HBITMAP);
}
extern "C" {
    pub fn HDC_UserSize64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut HDC,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn HDC_UserMarshal64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut HDC,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn HDC_UserUnmarshal64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut HDC,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn HDC_UserFree64(arg1: *mut ::std::os::raw::c_ulong, arg2: *mut HDC);
}
extern "C" {
    pub fn HICON_UserSize64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut HICON,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn HICON_UserMarshal64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut HICON,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn HICON_UserUnmarshal64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut HICON,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn HICON_UserFree64(arg1: *mut ::std::os::raw::c_ulong, arg2: *mut HICON);
}
extern "C" {
    pub fn SNB_UserSize64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut SNB,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn SNB_UserMarshal64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut SNB,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn SNB_UserUnmarshal64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut SNB,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn SNB_UserFree64(arg1: *mut ::std::os::raw::c_ulong, arg2: *mut SNB);
}
extern "C" {
    pub fn STGMEDIUM_UserSize64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut STGMEDIUM,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn STGMEDIUM_UserMarshal64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut STGMEDIUM,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn STGMEDIUM_UserUnmarshal64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut STGMEDIUM,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn STGMEDIUM_UserFree64(arg1: *mut ::std::os::raw::c_ulong, arg2: *mut STGMEDIUM);
}
extern "C" {
    pub fn IBindCtx_SetBindOptions_Proxy(This: *mut IBindCtx, pbindopts: *mut BIND_OPTS)
        -> HRESULT;
}
extern "C" {
    pub fn IBindCtx_SetBindOptions_Stub(This: *mut IBindCtx, pbindopts: *mut BIND_OPTS2)
        -> HRESULT;
}
extern "C" {
    pub fn IBindCtx_GetBindOptions_Proxy(This: *mut IBindCtx, pbindopts: *mut BIND_OPTS)
        -> HRESULT;
}
extern "C" {
    pub fn IBindCtx_GetBindOptions_Stub(This: *mut IBindCtx, pbindopts: *mut BIND_OPTS2)
        -> HRESULT;
}
extern "C" {
    pub fn IEnumMoniker_Next_Proxy(
        This: *mut IEnumMoniker,
        celt: ULONG,
        rgelt: *mut *mut IMoniker,
        pceltFetched: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IEnumMoniker_Next_Stub(
        This: *mut IEnumMoniker,
        celt: ULONG,
        rgelt: *mut *mut IMoniker,
        pceltFetched: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IRunnableObject_IsRunning_Proxy(This: *mut IRunnableObject) -> BOOL;
}
extern "C" {
    pub fn IRunnableObject_IsRunning_Stub(This: *mut IRunnableObject) -> HRESULT;
}
extern "C" {
    pub fn IMoniker_BindToObject_Proxy(
        This: *mut IMoniker,
        pbc: *mut IBindCtx,
        pmkToLeft: *mut IMoniker,
        riidResult: *const IID,
        ppvResult: *mut *mut ::std::os::raw::c_void,
    ) -> HRESULT;
}
extern "C" {
    pub fn IMoniker_BindToObject_Stub(
        This: *mut IMoniker,
        pbc: *mut IBindCtx,
        pmkToLeft: *mut IMoniker,
        riidResult: *const IID,
        ppvResult: *mut *mut IUnknown,
    ) -> HRESULT;
}
extern "C" {
    pub fn IMoniker_BindToStorage_Proxy(
        This: *mut IMoniker,
        pbc: *mut IBindCtx,
        pmkToLeft: *mut IMoniker,
        riid: *const IID,
        ppvObj: *mut *mut ::std::os::raw::c_void,
    ) -> HRESULT;
}
extern "C" {
    pub fn IMoniker_BindToStorage_Stub(
        This: *mut IMoniker,
        pbc: *mut IBindCtx,
        pmkToLeft: *mut IMoniker,
        riid: *const IID,
        ppvObj: *mut *mut IUnknown,
    ) -> HRESULT;
}
extern "C" {
    pub fn IEnumSTATSTG_Next_Proxy(
        This: *mut IEnumSTATSTG,
        celt: ULONG,
        rgelt: *mut STATSTG,
        pceltFetched: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IEnumSTATSTG_Next_Stub(
        This: *mut IEnumSTATSTG,
        celt: ULONG,
        rgelt: *mut STATSTG,
        pceltFetched: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IStorage_OpenStream_Proxy(
        This: *mut IStorage,
        pwcsName: *const OLECHAR,
        reserved1: *mut ::std::os::raw::c_void,
        grfMode: DWORD,
        reserved2: DWORD,
        ppstm: *mut *mut IStream,
    ) -> HRESULT;
}
extern "C" {
    pub fn IStorage_OpenStream_Stub(
        This: *mut IStorage,
        pwcsName: *const OLECHAR,
        cbReserved1: ULONG,
        reserved1: *mut byte,
        grfMode: DWORD,
        reserved2: DWORD,
        ppstm: *mut *mut IStream,
    ) -> HRESULT;
}
extern "C" {
    pub fn IStorage_CopyTo_Proxy(
        This: *mut IStorage,
        ciidExclude: DWORD,
        rgiidExclude: *const IID,
        snbExclude: SNB,
        pstgDest: *mut IStorage,
    ) -> HRESULT;
}
extern "C" {
    pub fn IStorage_CopyTo_Stub(
        This: *mut IStorage,
        ciidExclude: DWORD,
        rgiidExclude: *const IID,
        snbExclude: SNB,
        pstgDest: *mut IStorage,
    ) -> HRESULT;
}
extern "C" {
    pub fn IStorage_EnumElements_Proxy(
        This: *mut IStorage,
        reserved1: DWORD,
        reserved2: *mut ::std::os::raw::c_void,
        reserved3: DWORD,
        ppenum: *mut *mut IEnumSTATSTG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IStorage_EnumElements_Stub(
        This: *mut IStorage,
        reserved1: DWORD,
        cbReserved2: ULONG,
        reserved2: *mut byte,
        reserved3: DWORD,
        ppenum: *mut *mut IEnumSTATSTG,
    ) -> HRESULT;
}
extern "C" {
    pub fn ILockBytes_ReadAt_Proxy(
        This: *mut ILockBytes,
        ulOffset: ULARGE_INTEGER,
        pv: *mut ::std::os::raw::c_void,
        cb: ULONG,
        pcbRead: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn ILockBytes_ReadAt_Stub(
        This: *mut ILockBytes,
        ulOffset: ULARGE_INTEGER,
        pv: *mut byte,
        cb: ULONG,
        pcbRead: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn ILockBytes_WriteAt_Proxy(
        This: *mut ILockBytes,
        ulOffset: ULARGE_INTEGER,
        pv: *const ::std::os::raw::c_void,
        cb: ULONG,
        pcbWritten: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn ILockBytes_WriteAt_Stub(
        This: *mut ILockBytes,
        ulOffset: ULARGE_INTEGER,
        pv: *const byte,
        cb: ULONG,
        pcbWritten: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IEnumFORMATETC_Next_Proxy(
        This: *mut IEnumFORMATETC,
        celt: ULONG,
        rgelt: *mut FORMATETC,
        pceltFetched: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IEnumFORMATETC_Next_Stub(
        This: *mut IEnumFORMATETC,
        celt: ULONG,
        rgelt: *mut FORMATETC,
        pceltFetched: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IEnumSTATDATA_Next_Proxy(
        This: *mut IEnumSTATDATA,
        celt: ULONG,
        rgelt: *mut STATDATA,
        pceltFetched: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IEnumSTATDATA_Next_Stub(
        This: *mut IEnumSTATDATA,
        celt: ULONG,
        rgelt: *mut STATDATA,
        pceltFetched: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IAdviseSink_OnDataChange_Proxy(
        This: *mut IAdviseSink,
        pFormatetc: *mut FORMATETC,
        pStgmed: *mut STGMEDIUM,
    );
}
extern "C" {
    pub fn IAdviseSink_OnDataChange_Stub(
        This: *mut IAdviseSink,
        pFormatetc: *mut FORMATETC,
        pStgmed: *mut ASYNC_STGMEDIUM,
    ) -> HRESULT;
}
extern "C" {
    pub fn IAdviseSink_OnViewChange_Proxy(This: *mut IAdviseSink, dwAspect: DWORD, lindex: LONG);
}
extern "C" {
    pub fn IAdviseSink_OnViewChange_Stub(
        This: *mut IAdviseSink,
        dwAspect: DWORD,
        lindex: LONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IAdviseSink_OnRename_Proxy(This: *mut IAdviseSink, pmk: *mut IMoniker);
}
extern "C" {
    pub fn IAdviseSink_OnRename_Stub(This: *mut IAdviseSink, pmk: *mut IMoniker) -> HRESULT;
}
extern "C" {
    pub fn IAdviseSink_OnSave_Proxy(This: *mut IAdviseSink);
}
extern "C" {
    pub fn IAdviseSink_OnSave_Stub(This: *mut IAdviseSink) -> HRESULT;
}
extern "C" {
    pub fn IAdviseSink_OnClose_Proxy(This: *mut IAdviseSink);
}
extern "C" {
    pub fn IAdviseSink_OnClose_Stub(This: *mut IAdviseSink) -> HRESULT;
}
extern "C" {
    pub fn AsyncIAdviseSink_Begin_OnDataChange_Proxy(
        This: *mut AsyncIAdviseSink,
        pFormatetc: *mut FORMATETC,
        pStgmed: *mut STGMEDIUM,
    );
}
extern "C" {
    pub fn AsyncIAdviseSink_Begin_OnDataChange_Stub(
        This: *mut AsyncIAdviseSink,
        pFormatetc: *mut FORMATETC,
        pStgmed: *mut ASYNC_STGMEDIUM,
    ) -> HRESULT;
}
extern "C" {
    pub fn AsyncIAdviseSink_Finish_OnDataChange_Proxy(This: *mut AsyncIAdviseSink);
}
extern "C" {
    pub fn AsyncIAdviseSink_Finish_OnDataChange_Stub(This: *mut AsyncIAdviseSink) -> HRESULT;
}
extern "C" {
    pub fn AsyncIAdviseSink_Begin_OnViewChange_Proxy(
        This: *mut AsyncIAdviseSink,
        dwAspect: DWORD,
        lindex: LONG,
    );
}
extern "C" {
    pub fn AsyncIAdviseSink_Begin_OnViewChange_Stub(
        This: *mut AsyncIAdviseSink,
        dwAspect: DWORD,
        lindex: LONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn AsyncIAdviseSink_Finish_OnViewChange_Proxy(This: *mut AsyncIAdviseSink);
}
extern "C" {
    pub fn AsyncIAdviseSink_Finish_OnViewChange_Stub(This: *mut AsyncIAdviseSink) -> HRESULT;
}
extern "C" {
    pub fn AsyncIAdviseSink_Begin_OnRename_Proxy(This: *mut AsyncIAdviseSink, pmk: *mut IMoniker);
}
extern "C" {
    pub fn AsyncIAdviseSink_Begin_OnRename_Stub(
        This: *mut AsyncIAdviseSink,
        pmk: *mut IMoniker,
    ) -> HRESULT;
}
extern "C" {
    pub fn AsyncIAdviseSink_Finish_OnRename_Proxy(This: *mut AsyncIAdviseSink);
}
extern "C" {
    pub fn AsyncIAdviseSink_Finish_OnRename_Stub(This: *mut AsyncIAdviseSink) -> HRESULT;
}
extern "C" {
    pub fn AsyncIAdviseSink_Begin_OnSave_Proxy(This: *mut AsyncIAdviseSink);
}
extern "C" {
    pub fn AsyncIAdviseSink_Begin_OnSave_Stub(This: *mut AsyncIAdviseSink) -> HRESULT;
}
extern "C" {
    pub fn AsyncIAdviseSink_Finish_OnSave_Proxy(This: *mut AsyncIAdviseSink);
}
extern "C" {
    pub fn AsyncIAdviseSink_Finish_OnSave_Stub(This: *mut AsyncIAdviseSink) -> HRESULT;
}
extern "C" {
    pub fn AsyncIAdviseSink_Begin_OnClose_Proxy(This: *mut AsyncIAdviseSink);
}
extern "C" {
    pub fn AsyncIAdviseSink_Begin_OnClose_Stub(This: *mut AsyncIAdviseSink) -> HRESULT;
}
extern "C" {
    pub fn AsyncIAdviseSink_Finish_OnClose_Proxy(This: *mut AsyncIAdviseSink);
}
extern "C" {
    pub fn AsyncIAdviseSink_Finish_OnClose_Stub(This: *mut AsyncIAdviseSink) -> HRESULT;
}
extern "C" {
    pub fn IAdviseSink2_OnLinkSrcChange_Proxy(This: *mut IAdviseSink2, pmk: *mut IMoniker);
}
extern "C" {
    pub fn IAdviseSink2_OnLinkSrcChange_Stub(
        This: *mut IAdviseSink2,
        pmk: *mut IMoniker,
    ) -> HRESULT;
}
extern "C" {
    pub fn AsyncIAdviseSink2_Begin_OnLinkSrcChange_Proxy(
        This: *mut AsyncIAdviseSink2,
        pmk: *mut IMoniker,
    );
}
extern "C" {
    pub fn AsyncIAdviseSink2_Begin_OnLinkSrcChange_Stub(
        This: *mut AsyncIAdviseSink2,
        pmk: *mut IMoniker,
    ) -> HRESULT;
}
extern "C" {
    pub fn AsyncIAdviseSink2_Finish_OnLinkSrcChange_Proxy(This: *mut AsyncIAdviseSink2);
}
extern "C" {
    pub fn AsyncIAdviseSink2_Finish_OnLinkSrcChange_Stub(This: *mut AsyncIAdviseSink2) -> HRESULT;
}
extern "C" {
    pub fn IDataObject_GetData_Proxy(
        This: *mut IDataObject,
        pformatetcIn: *mut FORMATETC,
        pmedium: *mut STGMEDIUM,
    ) -> HRESULT;
}
extern "C" {
    pub fn IDataObject_GetData_Stub(
        This: *mut IDataObject,
        pformatetcIn: *mut FORMATETC,
        pRemoteMedium: *mut STGMEDIUM,
    ) -> HRESULT;
}
extern "C" {
    pub fn IDataObject_GetDataHere_Proxy(
        This: *mut IDataObject,
        pformatetc: *mut FORMATETC,
        pmedium: *mut STGMEDIUM,
    ) -> HRESULT;
}
extern "C" {
    pub fn IDataObject_GetDataHere_Stub(
        This: *mut IDataObject,
        pformatetc: *mut FORMATETC,
        pRemoteMedium: *mut STGMEDIUM,
    ) -> HRESULT;
}
extern "C" {
    pub fn IDataObject_SetData_Proxy(
        This: *mut IDataObject,
        pformatetc: *mut FORMATETC,
        pmedium: *mut STGMEDIUM,
        fRelease: BOOL,
    ) -> HRESULT;
}
extern "C" {
    pub fn IDataObject_SetData_Stub(
        This: *mut IDataObject,
        pformatetc: *mut FORMATETC,
        pmedium: *mut FLAG_STGMEDIUM,
        fRelease: BOOL,
    ) -> HRESULT;
}
extern "C" {
    pub fn IFillLockBytes_FillAppend_Proxy(
        This: *mut IFillLockBytes,
        pv: *const ::std::os::raw::c_void,
        cb: ULONG,
        pcbWritten: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IFillLockBytes_FillAppend_Stub(
        This: *mut IFillLockBytes,
        pv: *const byte,
        cb: ULONG,
        pcbWritten: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IFillLockBytes_FillAt_Proxy(
        This: *mut IFillLockBytes,
        ulOffset: ULARGE_INTEGER,
        pv: *const ::std::os::raw::c_void,
        cb: ULONG,
        pcbWritten: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IFillLockBytes_FillAt_Stub(
        This: *mut IFillLockBytes,
        ulOffset: ULARGE_INTEGER,
        pv: *const byte,
        cb: ULONG,
        pcbWritten: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub static mut __MIDL_itf_oaidl_0000_0000_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_oaidl_0000_0000_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type CURRENCY = CY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagSAFEARRAYBOUND {
    pub cElements: ULONG,
    pub lLbound: LONG,
}
#[test]
fn bindgen_test_layout_tagSAFEARRAYBOUND() {
    assert_eq!(
        ::std::mem::size_of::<tagSAFEARRAYBOUND>(),
        8usize,
        concat!("Size of: ", stringify!(tagSAFEARRAYBOUND))
    );
    assert_eq!(
        ::std::mem::align_of::<tagSAFEARRAYBOUND>(),
        4usize,
        concat!("Alignment of ", stringify!(tagSAFEARRAYBOUND))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSAFEARRAYBOUND>())).cElements as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSAFEARRAYBOUND),
            "::",
            stringify!(cElements)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSAFEARRAYBOUND>())).lLbound as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSAFEARRAYBOUND),
            "::",
            stringify!(lLbound)
        )
    );
}
pub type SAFEARRAYBOUND = tagSAFEARRAYBOUND;
pub type LPSAFEARRAYBOUND = *mut tagSAFEARRAYBOUND;
pub type wireVARIANT = *mut _wireVARIANT;
pub type wireBRECORD = *mut _wireBRECORD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _wireSAFEARR_BSTR {
    pub Size: ULONG,
    pub aBstr: *mut wireBSTR,
}
#[test]
fn bindgen_test_layout__wireSAFEARR_BSTR() {
    assert_eq!(
        ::std::mem::size_of::<_wireSAFEARR_BSTR>(),
        16usize,
        concat!("Size of: ", stringify!(_wireSAFEARR_BSTR))
    );
    assert_eq!(
        ::std::mem::align_of::<_wireSAFEARR_BSTR>(),
        8usize,
        concat!("Alignment of ", stringify!(_wireSAFEARR_BSTR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireSAFEARR_BSTR>())).Size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireSAFEARR_BSTR),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireSAFEARR_BSTR>())).aBstr as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireSAFEARR_BSTR),
            "::",
            stringify!(aBstr)
        )
    );
}
pub type SAFEARR_BSTR = _wireSAFEARR_BSTR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _wireSAFEARR_UNKNOWN {
    pub Size: ULONG,
    pub apUnknown: *mut *mut IUnknown,
}
#[test]
fn bindgen_test_layout__wireSAFEARR_UNKNOWN() {
    assert_eq!(
        ::std::mem::size_of::<_wireSAFEARR_UNKNOWN>(),
        16usize,
        concat!("Size of: ", stringify!(_wireSAFEARR_UNKNOWN))
    );
    assert_eq!(
        ::std::mem::align_of::<_wireSAFEARR_UNKNOWN>(),
        8usize,
        concat!("Alignment of ", stringify!(_wireSAFEARR_UNKNOWN))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireSAFEARR_UNKNOWN>())).Size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireSAFEARR_UNKNOWN),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireSAFEARR_UNKNOWN>())).apUnknown as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireSAFEARR_UNKNOWN),
            "::",
            stringify!(apUnknown)
        )
    );
}
pub type SAFEARR_UNKNOWN = _wireSAFEARR_UNKNOWN;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _wireSAFEARR_DISPATCH {
    pub Size: ULONG,
    pub apDispatch: *mut *mut IDispatch,
}
#[test]
fn bindgen_test_layout__wireSAFEARR_DISPATCH() {
    assert_eq!(
        ::std::mem::size_of::<_wireSAFEARR_DISPATCH>(),
        16usize,
        concat!("Size of: ", stringify!(_wireSAFEARR_DISPATCH))
    );
    assert_eq!(
        ::std::mem::align_of::<_wireSAFEARR_DISPATCH>(),
        8usize,
        concat!("Alignment of ", stringify!(_wireSAFEARR_DISPATCH))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireSAFEARR_DISPATCH>())).Size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireSAFEARR_DISPATCH),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireSAFEARR_DISPATCH>())).apDispatch as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireSAFEARR_DISPATCH),
            "::",
            stringify!(apDispatch)
        )
    );
}
pub type SAFEARR_DISPATCH = _wireSAFEARR_DISPATCH;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _wireSAFEARR_VARIANT {
    pub Size: ULONG,
    pub aVariant: *mut wireVARIANT,
}
#[test]
fn bindgen_test_layout__wireSAFEARR_VARIANT() {
    assert_eq!(
        ::std::mem::size_of::<_wireSAFEARR_VARIANT>(),
        16usize,
        concat!("Size of: ", stringify!(_wireSAFEARR_VARIANT))
    );
    assert_eq!(
        ::std::mem::align_of::<_wireSAFEARR_VARIANT>(),
        8usize,
        concat!("Alignment of ", stringify!(_wireSAFEARR_VARIANT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireSAFEARR_VARIANT>())).Size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireSAFEARR_VARIANT),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireSAFEARR_VARIANT>())).aVariant as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireSAFEARR_VARIANT),
            "::",
            stringify!(aVariant)
        )
    );
}
pub type SAFEARR_VARIANT = _wireSAFEARR_VARIANT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _wireSAFEARR_BRECORD {
    pub Size: ULONG,
    pub aRecord: *mut wireBRECORD,
}
#[test]
fn bindgen_test_layout__wireSAFEARR_BRECORD() {
    assert_eq!(
        ::std::mem::size_of::<_wireSAFEARR_BRECORD>(),
        16usize,
        concat!("Size of: ", stringify!(_wireSAFEARR_BRECORD))
    );
    assert_eq!(
        ::std::mem::align_of::<_wireSAFEARR_BRECORD>(),
        8usize,
        concat!("Alignment of ", stringify!(_wireSAFEARR_BRECORD))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireSAFEARR_BRECORD>())).Size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireSAFEARR_BRECORD),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireSAFEARR_BRECORD>())).aRecord as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireSAFEARR_BRECORD),
            "::",
            stringify!(aRecord)
        )
    );
}
pub type SAFEARR_BRECORD = _wireSAFEARR_BRECORD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _wireSAFEARR_HAVEIID {
    pub Size: ULONG,
    pub apUnknown: *mut *mut IUnknown,
    pub iid: IID,
}
#[test]
fn bindgen_test_layout__wireSAFEARR_HAVEIID() {
    assert_eq!(
        ::std::mem::size_of::<_wireSAFEARR_HAVEIID>(),
        32usize,
        concat!("Size of: ", stringify!(_wireSAFEARR_HAVEIID))
    );
    assert_eq!(
        ::std::mem::align_of::<_wireSAFEARR_HAVEIID>(),
        8usize,
        concat!("Alignment of ", stringify!(_wireSAFEARR_HAVEIID))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireSAFEARR_HAVEIID>())).Size as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireSAFEARR_HAVEIID),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireSAFEARR_HAVEIID>())).apUnknown as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireSAFEARR_HAVEIID),
            "::",
            stringify!(apUnknown)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireSAFEARR_HAVEIID>())).iid as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireSAFEARR_HAVEIID),
            "::",
            stringify!(iid)
        )
    );
}
pub type SAFEARR_HAVEIID = _wireSAFEARR_HAVEIID;
pub const tagSF_TYPE_SF_ERROR: tagSF_TYPE = 10;
pub const tagSF_TYPE_SF_I1: tagSF_TYPE = 16;
pub const tagSF_TYPE_SF_I2: tagSF_TYPE = 2;
pub const tagSF_TYPE_SF_I4: tagSF_TYPE = 3;
pub const tagSF_TYPE_SF_I8: tagSF_TYPE = 20;
pub const tagSF_TYPE_SF_BSTR: tagSF_TYPE = 8;
pub const tagSF_TYPE_SF_UNKNOWN: tagSF_TYPE = 13;
pub const tagSF_TYPE_SF_DISPATCH: tagSF_TYPE = 9;
pub const tagSF_TYPE_SF_VARIANT: tagSF_TYPE = 12;
pub const tagSF_TYPE_SF_RECORD: tagSF_TYPE = 36;
pub const tagSF_TYPE_SF_HAVEIID: tagSF_TYPE = 32781;
pub type tagSF_TYPE = ::std::os::raw::c_int;
pub use self::tagSF_TYPE as SF_TYPE;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _wireSAFEARRAY_UNION {
    pub sfType: ULONG,
    pub u: _wireSAFEARRAY_UNION___MIDL_IOleAutomationTypes_0001,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _wireSAFEARRAY_UNION___MIDL_IOleAutomationTypes_0001 {
    pub BstrStr: SAFEARR_BSTR,
    pub UnknownStr: SAFEARR_UNKNOWN,
    pub DispatchStr: SAFEARR_DISPATCH,
    pub VariantStr: SAFEARR_VARIANT,
    pub RecordStr: SAFEARR_BRECORD,
    pub HaveIidStr: SAFEARR_HAVEIID,
    pub ByteStr: BYTE_SIZEDARR,
    pub WordStr: WORD_SIZEDARR,
    pub LongStr: DWORD_SIZEDARR,
    pub HyperStr: HYPER_SIZEDARR,
    _bindgen_union_align: [u64; 4usize],
}
#[test]
fn bindgen_test_layout__wireSAFEARRAY_UNION___MIDL_IOleAutomationTypes_0001() {
    assert_eq!(
        ::std::mem::size_of::<_wireSAFEARRAY_UNION___MIDL_IOleAutomationTypes_0001>(),
        32usize,
        concat!(
            "Size of: ",
            stringify!(_wireSAFEARRAY_UNION___MIDL_IOleAutomationTypes_0001)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_wireSAFEARRAY_UNION___MIDL_IOleAutomationTypes_0001>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_wireSAFEARRAY_UNION___MIDL_IOleAutomationTypes_0001)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireSAFEARRAY_UNION___MIDL_IOleAutomationTypes_0001>())).BstrStr
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireSAFEARRAY_UNION___MIDL_IOleAutomationTypes_0001),
            "::",
            stringify!(BstrStr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireSAFEARRAY_UNION___MIDL_IOleAutomationTypes_0001>()))
                .UnknownStr as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireSAFEARRAY_UNION___MIDL_IOleAutomationTypes_0001),
            "::",
            stringify!(UnknownStr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireSAFEARRAY_UNION___MIDL_IOleAutomationTypes_0001>()))
                .DispatchStr as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireSAFEARRAY_UNION___MIDL_IOleAutomationTypes_0001),
            "::",
            stringify!(DispatchStr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireSAFEARRAY_UNION___MIDL_IOleAutomationTypes_0001>()))
                .VariantStr as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireSAFEARRAY_UNION___MIDL_IOleAutomationTypes_0001),
            "::",
            stringify!(VariantStr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireSAFEARRAY_UNION___MIDL_IOleAutomationTypes_0001>()))
                .RecordStr as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireSAFEARRAY_UNION___MIDL_IOleAutomationTypes_0001),
            "::",
            stringify!(RecordStr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireSAFEARRAY_UNION___MIDL_IOleAutomationTypes_0001>()))
                .HaveIidStr as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireSAFEARRAY_UNION___MIDL_IOleAutomationTypes_0001),
            "::",
            stringify!(HaveIidStr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireSAFEARRAY_UNION___MIDL_IOleAutomationTypes_0001>())).ByteStr
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireSAFEARRAY_UNION___MIDL_IOleAutomationTypes_0001),
            "::",
            stringify!(ByteStr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireSAFEARRAY_UNION___MIDL_IOleAutomationTypes_0001>())).WordStr
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireSAFEARRAY_UNION___MIDL_IOleAutomationTypes_0001),
            "::",
            stringify!(WordStr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireSAFEARRAY_UNION___MIDL_IOleAutomationTypes_0001>())).LongStr
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireSAFEARRAY_UNION___MIDL_IOleAutomationTypes_0001),
            "::",
            stringify!(LongStr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireSAFEARRAY_UNION___MIDL_IOleAutomationTypes_0001>()))
                .HyperStr as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireSAFEARRAY_UNION___MIDL_IOleAutomationTypes_0001),
            "::",
            stringify!(HyperStr)
        )
    );
}
#[test]
fn bindgen_test_layout__wireSAFEARRAY_UNION() {
    assert_eq!(
        ::std::mem::size_of::<_wireSAFEARRAY_UNION>(),
        40usize,
        concat!("Size of: ", stringify!(_wireSAFEARRAY_UNION))
    );
    assert_eq!(
        ::std::mem::align_of::<_wireSAFEARRAY_UNION>(),
        8usize,
        concat!("Alignment of ", stringify!(_wireSAFEARRAY_UNION))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireSAFEARRAY_UNION>())).sfType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireSAFEARRAY_UNION),
            "::",
            stringify!(sfType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireSAFEARRAY_UNION>())).u as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireSAFEARRAY_UNION),
            "::",
            stringify!(u)
        )
    );
}
pub type SAFEARRAYUNION = _wireSAFEARRAY_UNION;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _wireSAFEARRAY {
    pub cDims: USHORT,
    pub fFeatures: USHORT,
    pub cbElements: ULONG,
    pub cLocks: ULONG,
    pub uArrayStructs: SAFEARRAYUNION,
    pub rgsabound: [SAFEARRAYBOUND; 1usize],
}
#[test]
fn bindgen_test_layout__wireSAFEARRAY() {
    assert_eq!(
        ::std::mem::size_of::<_wireSAFEARRAY>(),
        64usize,
        concat!("Size of: ", stringify!(_wireSAFEARRAY))
    );
    assert_eq!(
        ::std::mem::align_of::<_wireSAFEARRAY>(),
        8usize,
        concat!("Alignment of ", stringify!(_wireSAFEARRAY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireSAFEARRAY>())).cDims as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireSAFEARRAY),
            "::",
            stringify!(cDims)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireSAFEARRAY>())).fFeatures as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireSAFEARRAY),
            "::",
            stringify!(fFeatures)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireSAFEARRAY>())).cbElements as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireSAFEARRAY),
            "::",
            stringify!(cbElements)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireSAFEARRAY>())).cLocks as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireSAFEARRAY),
            "::",
            stringify!(cLocks)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireSAFEARRAY>())).uArrayStructs as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireSAFEARRAY),
            "::",
            stringify!(uArrayStructs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireSAFEARRAY>())).rgsabound as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireSAFEARRAY),
            "::",
            stringify!(rgsabound)
        )
    );
}
pub type wireSAFEARRAY = *mut _wireSAFEARRAY;
pub type wirePSAFEARRAY = *mut wireSAFEARRAY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagSAFEARRAY {
    pub cDims: USHORT,
    pub fFeatures: USHORT,
    pub cbElements: ULONG,
    pub cLocks: ULONG,
    pub pvData: PVOID,
    pub rgsabound: [SAFEARRAYBOUND; 1usize],
}
#[test]
fn bindgen_test_layout_tagSAFEARRAY() {
    assert_eq!(
        ::std::mem::size_of::<tagSAFEARRAY>(),
        32usize,
        concat!("Size of: ", stringify!(tagSAFEARRAY))
    );
    assert_eq!(
        ::std::mem::align_of::<tagSAFEARRAY>(),
        8usize,
        concat!("Alignment of ", stringify!(tagSAFEARRAY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSAFEARRAY>())).cDims as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSAFEARRAY),
            "::",
            stringify!(cDims)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSAFEARRAY>())).fFeatures as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSAFEARRAY),
            "::",
            stringify!(fFeatures)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSAFEARRAY>())).cbElements as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSAFEARRAY),
            "::",
            stringify!(cbElements)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSAFEARRAY>())).cLocks as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSAFEARRAY),
            "::",
            stringify!(cLocks)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSAFEARRAY>())).pvData as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSAFEARRAY),
            "::",
            stringify!(pvData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSAFEARRAY>())).rgsabound as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSAFEARRAY),
            "::",
            stringify!(rgsabound)
        )
    );
}
pub type SAFEARRAY = tagSAFEARRAY;
pub type LPSAFEARRAY = *mut SAFEARRAY;
pub type VARIANT = tagVARIANT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagVARIANT {
    pub __bindgen_anon_1: tagVARIANT__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tagVARIANT__bindgen_ty_1 {
    pub __bindgen_anon_1: tagVARIANT__bindgen_ty_1__bindgen_ty_1,
    pub decVal: DECIMAL,
    _bindgen_union_align: [u64; 3usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagVARIANT__bindgen_ty_1__bindgen_ty_1 {
    pub vt: VARTYPE,
    pub wReserved1: WORD,
    pub wReserved2: WORD,
    pub wReserved3: WORD,
    pub __bindgen_anon_1: tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
    pub llVal: LONGLONG,
    pub lVal: LONG,
    pub bVal: BYTE,
    pub iVal: SHORT,
    pub fltVal: FLOAT,
    pub dblVal: DOUBLE,
    pub boolVal: VARIANT_BOOL,
    pub __OBSOLETE__VARIANT_BOOL: VARIANT_BOOL,
    pub scode: SCODE,
    pub cyVal: CY,
    pub date: DATE,
    pub bstrVal: BSTR,
    pub punkVal: *mut IUnknown,
    pub pdispVal: *mut IDispatch,
    pub parray: *mut SAFEARRAY,
    pub pbVal: *mut BYTE,
    pub piVal: *mut SHORT,
    pub plVal: *mut LONG,
    pub pllVal: *mut LONGLONG,
    pub pfltVal: *mut FLOAT,
    pub pdblVal: *mut DOUBLE,
    pub pboolVal: *mut VARIANT_BOOL,
    pub __OBSOLETE__VARIANT_PBOOL: *mut VARIANT_BOOL,
    pub pscode: *mut SCODE,
    pub pcyVal: *mut CY,
    pub pdate: *mut DATE,
    pub pbstrVal: *mut BSTR,
    pub ppunkVal: *mut *mut IUnknown,
    pub ppdispVal: *mut *mut IDispatch,
    pub pparray: *mut *mut SAFEARRAY,
    pub pvarVal: *mut VARIANT,
    pub byref: PVOID,
    pub cVal: CHAR,
    pub uiVal: USHORT,
    pub ulVal: ULONG,
    pub ullVal: ULONGLONG,
    pub intVal: INT,
    pub uintVal: UINT,
    pub pdecVal: *mut DECIMAL,
    pub pcVal: *mut CHAR,
    pub puiVal: *mut USHORT,
    pub pulVal: *mut ULONG,
    pub pullVal: *mut ULONGLONG,
    pub pintVal: *mut INT,
    pub puintVal: *mut UINT,
    pub __bindgen_anon_1: tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: [u64; 2usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
    pub pvRecord: PVOID,
    pub pRecInfo: *mut IRecordInfo,
}
#[test]
fn bindgen_test_layout_tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>(
        ),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<
                tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
            >()))
            .pvRecord as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pvRecord)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<
                tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
            >()))
            .pRecInfo as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pRecInfo)
        )
    );
}
#[test]
fn bindgen_test_layout_tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).llVal
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(llVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).lVal
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(lVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).bVal
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(bVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).iVal
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(iVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).fltVal
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(fltVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).dblVal
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(dblVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).boolVal
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(boolVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .__OBSOLETE__VARIANT_BOOL as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(__OBSOLETE__VARIANT_BOOL)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).scode
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(scode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).cyVal
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(cyVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).date
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(date)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).bstrVal
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(bstrVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).punkVal
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(punkVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .pdispVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pdispVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).parray
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(parray)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).pbVal
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pbVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).piVal
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(piVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).plVal
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(plVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).pllVal
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pllVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).pfltVal
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pfltVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).pdblVal
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pdblVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .pboolVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pboolVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .__OBSOLETE__VARIANT_PBOOL as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(__OBSOLETE__VARIANT_PBOOL)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).pscode
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pscode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).pcyVal
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pcyVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).pdate
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pdate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .pbstrVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pbstrVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .ppunkVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(ppunkVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .ppdispVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(ppdispVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).pparray
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pparray)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).pvarVal
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pvarVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).byref
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(byref)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).cVal
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(cVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).uiVal
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(uiVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).ulVal
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(ulVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).ullVal
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(ullVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).intVal
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(intVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).uintVal
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(uintVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).pdecVal
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pdecVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).pcVal
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pcVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).puiVal
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(puiVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).pulVal
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pulVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).pullVal
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pullVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).pintVal
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pintVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .puintVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(puintVal)
        )
    );
}
#[test]
fn bindgen_test_layout_tagVARIANT__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagVARIANT__bindgen_ty_1__bindgen_ty_1>(),
        24usize,
        concat!(
            "Size of: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tagVARIANT__bindgen_ty_1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1>())).vt as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(vt)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1>())).wReserved1
                as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(wReserved1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1>())).wReserved2
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(wReserved2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1__bindgen_ty_1>())).wReserved3
                as *const _ as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(wReserved3)
        )
    );
}
#[test]
fn bindgen_test_layout_tagVARIANT__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagVARIANT__bindgen_ty_1>(),
        24usize,
        concat!("Size of: ", stringify!(tagVARIANT__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tagVARIANT__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(tagVARIANT__bindgen_ty_1))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagVARIANT__bindgen_ty_1>())).decVal as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARIANT__bindgen_ty_1),
            "::",
            stringify!(decVal)
        )
    );
}
#[test]
fn bindgen_test_layout_tagVARIANT() {
    assert_eq!(
        ::std::mem::size_of::<tagVARIANT>(),
        24usize,
        concat!("Size of: ", stringify!(tagVARIANT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagVARIANT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagVARIANT))
    );
}
pub type LPVARIANT = *mut VARIANT;
pub type VARIANTARG = VARIANT;
pub type LPVARIANTARG = *mut VARIANT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _wireBRECORD {
    pub fFlags: ULONG,
    pub clSize: ULONG,
    pub pRecInfo: *mut IRecordInfo,
    pub pRecord: *mut byte,
}
#[test]
fn bindgen_test_layout__wireBRECORD() {
    assert_eq!(
        ::std::mem::size_of::<_wireBRECORD>(),
        24usize,
        concat!("Size of: ", stringify!(_wireBRECORD))
    );
    assert_eq!(
        ::std::mem::align_of::<_wireBRECORD>(),
        8usize,
        concat!("Alignment of ", stringify!(_wireBRECORD))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireBRECORD>())).fFlags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireBRECORD),
            "::",
            stringify!(fFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireBRECORD>())).clSize as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireBRECORD),
            "::",
            stringify!(clSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireBRECORD>())).pRecInfo as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireBRECORD),
            "::",
            stringify!(pRecInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireBRECORD>())).pRecord as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireBRECORD),
            "::",
            stringify!(pRecord)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _wireVARIANT {
    pub clSize: DWORD,
    pub rpcReserved: DWORD,
    pub vt: USHORT,
    pub wReserved1: USHORT,
    pub wReserved2: USHORT,
    pub wReserved3: USHORT,
    pub __bindgen_anon_1: _wireVARIANT__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _wireVARIANT__bindgen_ty_1 {
    pub llVal: LONGLONG,
    pub lVal: LONG,
    pub bVal: BYTE,
    pub iVal: SHORT,
    pub fltVal: FLOAT,
    pub dblVal: DOUBLE,
    pub boolVal: VARIANT_BOOL,
    pub scode: SCODE,
    pub cyVal: CY,
    pub date: DATE,
    pub bstrVal: wireBSTR,
    pub punkVal: *mut IUnknown,
    pub pdispVal: *mut IDispatch,
    pub parray: wirePSAFEARRAY,
    pub brecVal: wireBRECORD,
    pub pbVal: *mut BYTE,
    pub piVal: *mut SHORT,
    pub plVal: *mut LONG,
    pub pllVal: *mut LONGLONG,
    pub pfltVal: *mut FLOAT,
    pub pdblVal: *mut DOUBLE,
    pub pboolVal: *mut VARIANT_BOOL,
    pub pscode: *mut SCODE,
    pub pcyVal: *mut CY,
    pub pdate: *mut DATE,
    pub pbstrVal: *mut wireBSTR,
    pub ppunkVal: *mut *mut IUnknown,
    pub ppdispVal: *mut *mut IDispatch,
    pub pparray: *mut wirePSAFEARRAY,
    pub pvarVal: *mut wireVARIANT,
    pub cVal: CHAR,
    pub uiVal: USHORT,
    pub ulVal: ULONG,
    pub ullVal: ULONGLONG,
    pub intVal: INT,
    pub uintVal: UINT,
    pub decVal: DECIMAL,
    pub pdecVal: *mut DECIMAL,
    pub pcVal: *mut CHAR,
    pub puiVal: *mut USHORT,
    pub pulVal: *mut ULONG,
    pub pullVal: *mut ULONGLONG,
    pub pintVal: *mut INT,
    pub puintVal: *mut UINT,
    _bindgen_union_align: [u64; 2usize],
}
#[test]
fn bindgen_test_layout__wireVARIANT__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_wireVARIANT__bindgen_ty_1>(),
        16usize,
        concat!("Size of: ", stringify!(_wireVARIANT__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_wireVARIANT__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(_wireVARIANT__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).llVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(llVal)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).lVal as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(lVal)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).bVal as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(bVal)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).iVal as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(iVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).fltVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(fltVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).dblVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(dblVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).boolVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(boolVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).scode as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(scode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).cyVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(cyVal)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).date as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(date)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).bstrVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(bstrVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).punkVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(punkVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).pdispVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(pdispVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).parray as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(parray)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).brecVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(brecVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).pbVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(pbVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).piVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(piVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).plVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(plVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).pllVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(pllVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).pfltVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(pfltVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).pdblVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(pdblVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).pboolVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(pboolVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).pscode as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(pscode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).pcyVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(pcyVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).pdate as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(pdate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).pbstrVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(pbstrVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).ppunkVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(ppunkVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).ppdispVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(ppdispVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).pparray as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(pparray)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).pvarVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(pvarVal)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).cVal as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(cVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).uiVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(uiVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).ulVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(ulVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).ullVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(ullVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).intVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(intVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).uintVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(uintVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).decVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(decVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).pdecVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(pdecVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).pcVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(pcVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).puiVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(puiVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).pulVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(pulVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).pullVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(pullVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).pintVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(pintVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_wireVARIANT__bindgen_ty_1>())).puintVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT__bindgen_ty_1),
            "::",
            stringify!(puintVal)
        )
    );
}
#[test]
fn bindgen_test_layout__wireVARIANT() {
    assert_eq!(
        ::std::mem::size_of::<_wireVARIANT>(),
        32usize,
        concat!("Size of: ", stringify!(_wireVARIANT))
    );
    assert_eq!(
        ::std::mem::align_of::<_wireVARIANT>(),
        8usize,
        concat!("Alignment of ", stringify!(_wireVARIANT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireVARIANT>())).clSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT),
            "::",
            stringify!(clSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireVARIANT>())).rpcReserved as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT),
            "::",
            stringify!(rpcReserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireVARIANT>())).vt as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT),
            "::",
            stringify!(vt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireVARIANT>())).wReserved1 as *const _ as usize },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT),
            "::",
            stringify!(wReserved1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireVARIANT>())).wReserved2 as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT),
            "::",
            stringify!(wReserved2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_wireVARIANT>())).wReserved3 as *const _ as usize },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(_wireVARIANT),
            "::",
            stringify!(wReserved3)
        )
    );
}
pub type DISPID = LONG;
pub type MEMBERID = DISPID;
pub type HREFTYPE = DWORD;
pub const tagTYPEKIND_TKIND_ENUM: tagTYPEKIND = 0;
pub const tagTYPEKIND_TKIND_RECORD: tagTYPEKIND = 1;
pub const tagTYPEKIND_TKIND_MODULE: tagTYPEKIND = 2;
pub const tagTYPEKIND_TKIND_INTERFACE: tagTYPEKIND = 3;
pub const tagTYPEKIND_TKIND_DISPATCH: tagTYPEKIND = 4;
pub const tagTYPEKIND_TKIND_COCLASS: tagTYPEKIND = 5;
pub const tagTYPEKIND_TKIND_ALIAS: tagTYPEKIND = 6;
pub const tagTYPEKIND_TKIND_UNION: tagTYPEKIND = 7;
pub const tagTYPEKIND_TKIND_MAX: tagTYPEKIND = 8;
pub type tagTYPEKIND = ::std::os::raw::c_int;
pub use self::tagTYPEKIND as TYPEKIND;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagTYPEDESC {
    pub __bindgen_anon_1: tagTYPEDESC__bindgen_ty_1,
    pub vt: VARTYPE,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tagTYPEDESC__bindgen_ty_1 {
    pub lptdesc: *mut tagTYPEDESC,
    pub lpadesc: *mut tagARRAYDESC,
    pub hreftype: HREFTYPE,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout_tagTYPEDESC__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagTYPEDESC__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(tagTYPEDESC__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tagTYPEDESC__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(tagTYPEDESC__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagTYPEDESC__bindgen_ty_1>())).lptdesc as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTYPEDESC__bindgen_ty_1),
            "::",
            stringify!(lptdesc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagTYPEDESC__bindgen_ty_1>())).lpadesc as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTYPEDESC__bindgen_ty_1),
            "::",
            stringify!(lpadesc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagTYPEDESC__bindgen_ty_1>())).hreftype as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTYPEDESC__bindgen_ty_1),
            "::",
            stringify!(hreftype)
        )
    );
}
#[test]
fn bindgen_test_layout_tagTYPEDESC() {
    assert_eq!(
        ::std::mem::size_of::<tagTYPEDESC>(),
        16usize,
        concat!("Size of: ", stringify!(tagTYPEDESC))
    );
    assert_eq!(
        ::std::mem::align_of::<tagTYPEDESC>(),
        8usize,
        concat!("Alignment of ", stringify!(tagTYPEDESC))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTYPEDESC>())).vt as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTYPEDESC),
            "::",
            stringify!(vt)
        )
    );
}
pub type TYPEDESC = tagTYPEDESC;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagARRAYDESC {
    pub tdescElem: TYPEDESC,
    pub cDims: USHORT,
    pub rgbounds: [SAFEARRAYBOUND; 1usize],
}
#[test]
fn bindgen_test_layout_tagARRAYDESC() {
    assert_eq!(
        ::std::mem::size_of::<tagARRAYDESC>(),
        32usize,
        concat!("Size of: ", stringify!(tagARRAYDESC))
    );
    assert_eq!(
        ::std::mem::align_of::<tagARRAYDESC>(),
        8usize,
        concat!("Alignment of ", stringify!(tagARRAYDESC))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagARRAYDESC>())).tdescElem as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagARRAYDESC),
            "::",
            stringify!(tdescElem)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagARRAYDESC>())).cDims as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagARRAYDESC),
            "::",
            stringify!(cDims)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagARRAYDESC>())).rgbounds as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagARRAYDESC),
            "::",
            stringify!(rgbounds)
        )
    );
}
pub type ARRAYDESC = tagARRAYDESC;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagPARAMDESCEX {
    pub cBytes: ULONG,
    pub varDefaultValue: VARIANTARG,
}
#[test]
fn bindgen_test_layout_tagPARAMDESCEX() {
    assert_eq!(
        ::std::mem::size_of::<tagPARAMDESCEX>(),
        32usize,
        concat!("Size of: ", stringify!(tagPARAMDESCEX))
    );
    assert_eq!(
        ::std::mem::align_of::<tagPARAMDESCEX>(),
        8usize,
        concat!("Alignment of ", stringify!(tagPARAMDESCEX))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPARAMDESCEX>())).cBytes as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPARAMDESCEX),
            "::",
            stringify!(cBytes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPARAMDESCEX>())).varDefaultValue as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPARAMDESCEX),
            "::",
            stringify!(varDefaultValue)
        )
    );
}
pub type PARAMDESCEX = tagPARAMDESCEX;
pub type LPPARAMDESCEX = *mut tagPARAMDESCEX;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagPARAMDESC {
    pub pparamdescex: LPPARAMDESCEX,
    pub wParamFlags: USHORT,
}
#[test]
fn bindgen_test_layout_tagPARAMDESC() {
    assert_eq!(
        ::std::mem::size_of::<tagPARAMDESC>(),
        16usize,
        concat!("Size of: ", stringify!(tagPARAMDESC))
    );
    assert_eq!(
        ::std::mem::align_of::<tagPARAMDESC>(),
        8usize,
        concat!("Alignment of ", stringify!(tagPARAMDESC))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPARAMDESC>())).pparamdescex as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPARAMDESC),
            "::",
            stringify!(pparamdescex)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPARAMDESC>())).wParamFlags as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPARAMDESC),
            "::",
            stringify!(wParamFlags)
        )
    );
}
pub type PARAMDESC = tagPARAMDESC;
pub type LPPARAMDESC = *mut tagPARAMDESC;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagIDLDESC {
    pub dwReserved: ULONG_PTR,
    pub wIDLFlags: USHORT,
}
#[test]
fn bindgen_test_layout_tagIDLDESC() {
    assert_eq!(
        ::std::mem::size_of::<tagIDLDESC>(),
        16usize,
        concat!("Size of: ", stringify!(tagIDLDESC))
    );
    assert_eq!(
        ::std::mem::align_of::<tagIDLDESC>(),
        8usize,
        concat!("Alignment of ", stringify!(tagIDLDESC))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagIDLDESC>())).dwReserved as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagIDLDESC),
            "::",
            stringify!(dwReserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagIDLDESC>())).wIDLFlags as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagIDLDESC),
            "::",
            stringify!(wIDLFlags)
        )
    );
}
pub type IDLDESC = tagIDLDESC;
pub type LPIDLDESC = *mut tagIDLDESC;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagELEMDESC {
    pub tdesc: TYPEDESC,
    pub __bindgen_anon_1: tagELEMDESC__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tagELEMDESC__bindgen_ty_1 {
    pub idldesc: IDLDESC,
    pub paramdesc: PARAMDESC,
    _bindgen_union_align: [u64; 2usize],
}
#[test]
fn bindgen_test_layout_tagELEMDESC__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagELEMDESC__bindgen_ty_1>(),
        16usize,
        concat!("Size of: ", stringify!(tagELEMDESC__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tagELEMDESC__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(tagELEMDESC__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagELEMDESC__bindgen_ty_1>())).idldesc as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagELEMDESC__bindgen_ty_1),
            "::",
            stringify!(idldesc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagELEMDESC__bindgen_ty_1>())).paramdesc as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagELEMDESC__bindgen_ty_1),
            "::",
            stringify!(paramdesc)
        )
    );
}
#[test]
fn bindgen_test_layout_tagELEMDESC() {
    assert_eq!(
        ::std::mem::size_of::<tagELEMDESC>(),
        32usize,
        concat!("Size of: ", stringify!(tagELEMDESC))
    );
    assert_eq!(
        ::std::mem::align_of::<tagELEMDESC>(),
        8usize,
        concat!("Alignment of ", stringify!(tagELEMDESC))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagELEMDESC>())).tdesc as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagELEMDESC),
            "::",
            stringify!(tdesc)
        )
    );
}
pub type ELEMDESC = tagELEMDESC;
pub type LPELEMDESC = *mut tagELEMDESC;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagTYPEATTR {
    pub guid: GUID,
    pub lcid: LCID,
    pub dwReserved: DWORD,
    pub memidConstructor: MEMBERID,
    pub memidDestructor: MEMBERID,
    pub lpstrSchema: LPOLESTR,
    pub cbSizeInstance: ULONG,
    pub typekind: TYPEKIND,
    pub cFuncs: WORD,
    pub cVars: WORD,
    pub cImplTypes: WORD,
    pub cbSizeVft: WORD,
    pub cbAlignment: WORD,
    pub wTypeFlags: WORD,
    pub wMajorVerNum: WORD,
    pub wMinorVerNum: WORD,
    pub tdescAlias: TYPEDESC,
    pub idldescType: IDLDESC,
}
#[test]
fn bindgen_test_layout_tagTYPEATTR() {
    assert_eq!(
        ::std::mem::size_of::<tagTYPEATTR>(),
        96usize,
        concat!("Size of: ", stringify!(tagTYPEATTR))
    );
    assert_eq!(
        ::std::mem::align_of::<tagTYPEATTR>(),
        8usize,
        concat!("Alignment of ", stringify!(tagTYPEATTR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTYPEATTR>())).guid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTYPEATTR),
            "::",
            stringify!(guid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTYPEATTR>())).lcid as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTYPEATTR),
            "::",
            stringify!(lcid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTYPEATTR>())).dwReserved as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTYPEATTR),
            "::",
            stringify!(dwReserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTYPEATTR>())).memidConstructor as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTYPEATTR),
            "::",
            stringify!(memidConstructor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTYPEATTR>())).memidDestructor as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTYPEATTR),
            "::",
            stringify!(memidDestructor)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTYPEATTR>())).lpstrSchema as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTYPEATTR),
            "::",
            stringify!(lpstrSchema)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTYPEATTR>())).cbSizeInstance as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTYPEATTR),
            "::",
            stringify!(cbSizeInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTYPEATTR>())).typekind as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTYPEATTR),
            "::",
            stringify!(typekind)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTYPEATTR>())).cFuncs as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTYPEATTR),
            "::",
            stringify!(cFuncs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTYPEATTR>())).cVars as *const _ as usize },
        50usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTYPEATTR),
            "::",
            stringify!(cVars)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTYPEATTR>())).cImplTypes as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTYPEATTR),
            "::",
            stringify!(cImplTypes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTYPEATTR>())).cbSizeVft as *const _ as usize },
        54usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTYPEATTR),
            "::",
            stringify!(cbSizeVft)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTYPEATTR>())).cbAlignment as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTYPEATTR),
            "::",
            stringify!(cbAlignment)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTYPEATTR>())).wTypeFlags as *const _ as usize },
        58usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTYPEATTR),
            "::",
            stringify!(wTypeFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTYPEATTR>())).wMajorVerNum as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTYPEATTR),
            "::",
            stringify!(wMajorVerNum)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTYPEATTR>())).wMinorVerNum as *const _ as usize },
        62usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTYPEATTR),
            "::",
            stringify!(wMinorVerNum)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTYPEATTR>())).tdescAlias as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTYPEATTR),
            "::",
            stringify!(tdescAlias)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTYPEATTR>())).idldescType as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTYPEATTR),
            "::",
            stringify!(idldescType)
        )
    );
}
pub type TYPEATTR = tagTYPEATTR;
pub type LPTYPEATTR = *mut tagTYPEATTR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagDISPPARAMS {
    pub rgvarg: *mut VARIANTARG,
    pub rgdispidNamedArgs: *mut DISPID,
    pub cArgs: UINT,
    pub cNamedArgs: UINT,
}
#[test]
fn bindgen_test_layout_tagDISPPARAMS() {
    assert_eq!(
        ::std::mem::size_of::<tagDISPPARAMS>(),
        24usize,
        concat!("Size of: ", stringify!(tagDISPPARAMS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagDISPPARAMS>(),
        8usize,
        concat!("Alignment of ", stringify!(tagDISPPARAMS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDISPPARAMS>())).rgvarg as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDISPPARAMS),
            "::",
            stringify!(rgvarg)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDISPPARAMS>())).rgdispidNamedArgs as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDISPPARAMS),
            "::",
            stringify!(rgdispidNamedArgs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDISPPARAMS>())).cArgs as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDISPPARAMS),
            "::",
            stringify!(cArgs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDISPPARAMS>())).cNamedArgs as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDISPPARAMS),
            "::",
            stringify!(cNamedArgs)
        )
    );
}
pub type DISPPARAMS = tagDISPPARAMS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagEXCEPINFO {
    pub wCode: WORD,
    pub wReserved: WORD,
    pub bstrSource: BSTR,
    pub bstrDescription: BSTR,
    pub bstrHelpFile: BSTR,
    pub dwHelpContext: DWORD,
    pub pvReserved: PVOID,
    pub pfnDeferredFillIn:
        ::std::option::Option<unsafe extern "C" fn(arg1: *mut tagEXCEPINFO) -> HRESULT>,
    pub scode: SCODE,
}
#[test]
fn bindgen_test_layout_tagEXCEPINFO() {
    assert_eq!(
        ::std::mem::size_of::<tagEXCEPINFO>(),
        64usize,
        concat!("Size of: ", stringify!(tagEXCEPINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<tagEXCEPINFO>(),
        8usize,
        concat!("Alignment of ", stringify!(tagEXCEPINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXCEPINFO>())).wCode as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXCEPINFO),
            "::",
            stringify!(wCode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXCEPINFO>())).wReserved as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXCEPINFO),
            "::",
            stringify!(wReserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXCEPINFO>())).bstrSource as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXCEPINFO),
            "::",
            stringify!(bstrSource)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXCEPINFO>())).bstrDescription as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXCEPINFO),
            "::",
            stringify!(bstrDescription)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXCEPINFO>())).bstrHelpFile as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXCEPINFO),
            "::",
            stringify!(bstrHelpFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXCEPINFO>())).dwHelpContext as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXCEPINFO),
            "::",
            stringify!(dwHelpContext)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXCEPINFO>())).pvReserved as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXCEPINFO),
            "::",
            stringify!(pvReserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXCEPINFO>())).pfnDeferredFillIn as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXCEPINFO),
            "::",
            stringify!(pfnDeferredFillIn)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagEXCEPINFO>())).scode as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagEXCEPINFO),
            "::",
            stringify!(scode)
        )
    );
}
pub type EXCEPINFO = tagEXCEPINFO;
pub type LPEXCEPINFO = *mut tagEXCEPINFO;
pub const tagCALLCONV_CC_FASTCALL: tagCALLCONV = 0;
pub const tagCALLCONV_CC_CDECL: tagCALLCONV = 1;
pub const tagCALLCONV_CC_MSCPASCAL: tagCALLCONV = 2;
pub const tagCALLCONV_CC_PASCAL: tagCALLCONV = 2;
pub const tagCALLCONV_CC_MACPASCAL: tagCALLCONV = 3;
pub const tagCALLCONV_CC_STDCALL: tagCALLCONV = 4;
pub const tagCALLCONV_CC_FPFASTCALL: tagCALLCONV = 5;
pub const tagCALLCONV_CC_SYSCALL: tagCALLCONV = 6;
pub const tagCALLCONV_CC_MPWCDECL: tagCALLCONV = 7;
pub const tagCALLCONV_CC_MPWPASCAL: tagCALLCONV = 8;
pub const tagCALLCONV_CC_MAX: tagCALLCONV = 9;
pub type tagCALLCONV = ::std::os::raw::c_int;
pub use self::tagCALLCONV as CALLCONV;
pub const tagFUNCKIND_FUNC_VIRTUAL: tagFUNCKIND = 0;
pub const tagFUNCKIND_FUNC_PUREVIRTUAL: tagFUNCKIND = 1;
pub const tagFUNCKIND_FUNC_NONVIRTUAL: tagFUNCKIND = 2;
pub const tagFUNCKIND_FUNC_STATIC: tagFUNCKIND = 3;
pub const tagFUNCKIND_FUNC_DISPATCH: tagFUNCKIND = 4;
pub type tagFUNCKIND = ::std::os::raw::c_int;
pub use self::tagFUNCKIND as FUNCKIND;
pub const tagINVOKEKIND_INVOKE_FUNC: tagINVOKEKIND = 1;
pub const tagINVOKEKIND_INVOKE_PROPERTYGET: tagINVOKEKIND = 2;
pub const tagINVOKEKIND_INVOKE_PROPERTYPUT: tagINVOKEKIND = 4;
pub const tagINVOKEKIND_INVOKE_PROPERTYPUTREF: tagINVOKEKIND = 8;
pub type tagINVOKEKIND = ::std::os::raw::c_int;
pub use self::tagINVOKEKIND as INVOKEKIND;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagFUNCDESC {
    pub memid: MEMBERID,
    pub lprgscode: *mut SCODE,
    pub lprgelemdescParam: *mut ELEMDESC,
    pub funckind: FUNCKIND,
    pub invkind: INVOKEKIND,
    pub callconv: CALLCONV,
    pub cParams: SHORT,
    pub cParamsOpt: SHORT,
    pub oVft: SHORT,
    pub cScodes: SHORT,
    pub elemdescFunc: ELEMDESC,
    pub wFuncFlags: WORD,
}
#[test]
fn bindgen_test_layout_tagFUNCDESC() {
    assert_eq!(
        ::std::mem::size_of::<tagFUNCDESC>(),
        88usize,
        concat!("Size of: ", stringify!(tagFUNCDESC))
    );
    assert_eq!(
        ::std::mem::align_of::<tagFUNCDESC>(),
        8usize,
        concat!("Alignment of ", stringify!(tagFUNCDESC))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFUNCDESC>())).memid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFUNCDESC),
            "::",
            stringify!(memid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFUNCDESC>())).lprgscode as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFUNCDESC),
            "::",
            stringify!(lprgscode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFUNCDESC>())).lprgelemdescParam as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFUNCDESC),
            "::",
            stringify!(lprgelemdescParam)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFUNCDESC>())).funckind as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFUNCDESC),
            "::",
            stringify!(funckind)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFUNCDESC>())).invkind as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFUNCDESC),
            "::",
            stringify!(invkind)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFUNCDESC>())).callconv as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFUNCDESC),
            "::",
            stringify!(callconv)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFUNCDESC>())).cParams as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFUNCDESC),
            "::",
            stringify!(cParams)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFUNCDESC>())).cParamsOpt as *const _ as usize },
        38usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFUNCDESC),
            "::",
            stringify!(cParamsOpt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFUNCDESC>())).oVft as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFUNCDESC),
            "::",
            stringify!(oVft)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFUNCDESC>())).cScodes as *const _ as usize },
        42usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFUNCDESC),
            "::",
            stringify!(cScodes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFUNCDESC>())).elemdescFunc as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFUNCDESC),
            "::",
            stringify!(elemdescFunc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFUNCDESC>())).wFuncFlags as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFUNCDESC),
            "::",
            stringify!(wFuncFlags)
        )
    );
}
pub type FUNCDESC = tagFUNCDESC;
pub type LPFUNCDESC = *mut tagFUNCDESC;
pub const tagVARKIND_VAR_PERINSTANCE: tagVARKIND = 0;
pub const tagVARKIND_VAR_STATIC: tagVARKIND = 1;
pub const tagVARKIND_VAR_CONST: tagVARKIND = 2;
pub const tagVARKIND_VAR_DISPATCH: tagVARKIND = 3;
pub type tagVARKIND = ::std::os::raw::c_int;
pub use self::tagVARKIND as VARKIND;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagVARDESC {
    pub memid: MEMBERID,
    pub lpstrSchema: LPOLESTR,
    pub __bindgen_anon_1: tagVARDESC__bindgen_ty_1,
    pub elemdescVar: ELEMDESC,
    pub wVarFlags: WORD,
    pub varkind: VARKIND,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tagVARDESC__bindgen_ty_1 {
    pub oInst: ULONG,
    pub lpvarValue: *mut VARIANT,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout_tagVARDESC__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagVARDESC__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(tagVARDESC__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tagVARDESC__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(tagVARDESC__bindgen_ty_1))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagVARDESC__bindgen_ty_1>())).oInst as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARDESC__bindgen_ty_1),
            "::",
            stringify!(oInst)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagVARDESC__bindgen_ty_1>())).lpvarValue as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARDESC__bindgen_ty_1),
            "::",
            stringify!(lpvarValue)
        )
    );
}
#[test]
fn bindgen_test_layout_tagVARDESC() {
    assert_eq!(
        ::std::mem::size_of::<tagVARDESC>(),
        64usize,
        concat!("Size of: ", stringify!(tagVARDESC))
    );
    assert_eq!(
        ::std::mem::align_of::<tagVARDESC>(),
        8usize,
        concat!("Alignment of ", stringify!(tagVARDESC))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagVARDESC>())).memid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARDESC),
            "::",
            stringify!(memid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagVARDESC>())).lpstrSchema as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARDESC),
            "::",
            stringify!(lpstrSchema)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagVARDESC>())).elemdescVar as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARDESC),
            "::",
            stringify!(elemdescVar)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagVARDESC>())).wVarFlags as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARDESC),
            "::",
            stringify!(wVarFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagVARDESC>())).varkind as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVARDESC),
            "::",
            stringify!(varkind)
        )
    );
}
pub type VARDESC = tagVARDESC;
pub type LPVARDESC = *mut tagVARDESC;
pub const tagTYPEFLAGS_TYPEFLAG_FAPPOBJECT: tagTYPEFLAGS = 1;
pub const tagTYPEFLAGS_TYPEFLAG_FCANCREATE: tagTYPEFLAGS = 2;
pub const tagTYPEFLAGS_TYPEFLAG_FLICENSED: tagTYPEFLAGS = 4;
pub const tagTYPEFLAGS_TYPEFLAG_FPREDECLID: tagTYPEFLAGS = 8;
pub const tagTYPEFLAGS_TYPEFLAG_FHIDDEN: tagTYPEFLAGS = 16;
pub const tagTYPEFLAGS_TYPEFLAG_FCONTROL: tagTYPEFLAGS = 32;
pub const tagTYPEFLAGS_TYPEFLAG_FDUAL: tagTYPEFLAGS = 64;
pub const tagTYPEFLAGS_TYPEFLAG_FNONEXTENSIBLE: tagTYPEFLAGS = 128;
pub const tagTYPEFLAGS_TYPEFLAG_FOLEAUTOMATION: tagTYPEFLAGS = 256;
pub const tagTYPEFLAGS_TYPEFLAG_FRESTRICTED: tagTYPEFLAGS = 512;
pub const tagTYPEFLAGS_TYPEFLAG_FAGGREGATABLE: tagTYPEFLAGS = 1024;
pub const tagTYPEFLAGS_TYPEFLAG_FREPLACEABLE: tagTYPEFLAGS = 2048;
pub const tagTYPEFLAGS_TYPEFLAG_FDISPATCHABLE: tagTYPEFLAGS = 4096;
pub const tagTYPEFLAGS_TYPEFLAG_FREVERSEBIND: tagTYPEFLAGS = 8192;
pub const tagTYPEFLAGS_TYPEFLAG_FPROXY: tagTYPEFLAGS = 16384;
pub type tagTYPEFLAGS = ::std::os::raw::c_int;
pub use self::tagTYPEFLAGS as TYPEFLAGS;
pub const tagFUNCFLAGS_FUNCFLAG_FRESTRICTED: tagFUNCFLAGS = 1;
pub const tagFUNCFLAGS_FUNCFLAG_FSOURCE: tagFUNCFLAGS = 2;
pub const tagFUNCFLAGS_FUNCFLAG_FBINDABLE: tagFUNCFLAGS = 4;
pub const tagFUNCFLAGS_FUNCFLAG_FREQUESTEDIT: tagFUNCFLAGS = 8;
pub const tagFUNCFLAGS_FUNCFLAG_FDISPLAYBIND: tagFUNCFLAGS = 16;
pub const tagFUNCFLAGS_FUNCFLAG_FDEFAULTBIND: tagFUNCFLAGS = 32;
pub const tagFUNCFLAGS_FUNCFLAG_FHIDDEN: tagFUNCFLAGS = 64;
pub const tagFUNCFLAGS_FUNCFLAG_FUSESGETLASTERROR: tagFUNCFLAGS = 128;
pub const tagFUNCFLAGS_FUNCFLAG_FDEFAULTCOLLELEM: tagFUNCFLAGS = 256;
pub const tagFUNCFLAGS_FUNCFLAG_FUIDEFAULT: tagFUNCFLAGS = 512;
pub const tagFUNCFLAGS_FUNCFLAG_FNONBROWSABLE: tagFUNCFLAGS = 1024;
pub const tagFUNCFLAGS_FUNCFLAG_FREPLACEABLE: tagFUNCFLAGS = 2048;
pub const tagFUNCFLAGS_FUNCFLAG_FIMMEDIATEBIND: tagFUNCFLAGS = 4096;
pub type tagFUNCFLAGS = ::std::os::raw::c_int;
pub use self::tagFUNCFLAGS as FUNCFLAGS;
pub const tagVARFLAGS_VARFLAG_FREADONLY: tagVARFLAGS = 1;
pub const tagVARFLAGS_VARFLAG_FSOURCE: tagVARFLAGS = 2;
pub const tagVARFLAGS_VARFLAG_FBINDABLE: tagVARFLAGS = 4;
pub const tagVARFLAGS_VARFLAG_FREQUESTEDIT: tagVARFLAGS = 8;
pub const tagVARFLAGS_VARFLAG_FDISPLAYBIND: tagVARFLAGS = 16;
pub const tagVARFLAGS_VARFLAG_FDEFAULTBIND: tagVARFLAGS = 32;
pub const tagVARFLAGS_VARFLAG_FHIDDEN: tagVARFLAGS = 64;
pub const tagVARFLAGS_VARFLAG_FRESTRICTED: tagVARFLAGS = 128;
pub const tagVARFLAGS_VARFLAG_FDEFAULTCOLLELEM: tagVARFLAGS = 256;
pub const tagVARFLAGS_VARFLAG_FUIDEFAULT: tagVARFLAGS = 512;
pub const tagVARFLAGS_VARFLAG_FNONBROWSABLE: tagVARFLAGS = 1024;
pub const tagVARFLAGS_VARFLAG_FREPLACEABLE: tagVARFLAGS = 2048;
pub const tagVARFLAGS_VARFLAG_FIMMEDIATEBIND: tagVARFLAGS = 4096;
pub type tagVARFLAGS = ::std::os::raw::c_int;
pub use self::tagVARFLAGS as VARFLAGS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCLEANLOCALSTORAGE {
    pub pInterface: *mut IUnknown,
    pub pStorage: PVOID,
    pub flags: DWORD,
}
#[test]
fn bindgen_test_layout_tagCLEANLOCALSTORAGE() {
    assert_eq!(
        ::std::mem::size_of::<tagCLEANLOCALSTORAGE>(),
        24usize,
        concat!("Size of: ", stringify!(tagCLEANLOCALSTORAGE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCLEANLOCALSTORAGE>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCLEANLOCALSTORAGE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCLEANLOCALSTORAGE>())).pInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCLEANLOCALSTORAGE),
            "::",
            stringify!(pInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCLEANLOCALSTORAGE>())).pStorage as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCLEANLOCALSTORAGE),
            "::",
            stringify!(pStorage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCLEANLOCALSTORAGE>())).flags as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCLEANLOCALSTORAGE),
            "::",
            stringify!(flags)
        )
    );
}
pub type CLEANLOCALSTORAGE = tagCLEANLOCALSTORAGE;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagCUSTDATAITEM {
    pub guid: GUID,
    pub varValue: VARIANTARG,
}
#[test]
fn bindgen_test_layout_tagCUSTDATAITEM() {
    assert_eq!(
        ::std::mem::size_of::<tagCUSTDATAITEM>(),
        40usize,
        concat!("Size of: ", stringify!(tagCUSTDATAITEM))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCUSTDATAITEM>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCUSTDATAITEM))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCUSTDATAITEM>())).guid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCUSTDATAITEM),
            "::",
            stringify!(guid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCUSTDATAITEM>())).varValue as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCUSTDATAITEM),
            "::",
            stringify!(varValue)
        )
    );
}
pub type CUSTDATAITEM = tagCUSTDATAITEM;
pub type LPCUSTDATAITEM = *mut tagCUSTDATAITEM;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCUSTDATA {
    pub cCustData: DWORD,
    pub prgCustData: LPCUSTDATAITEM,
}
#[test]
fn bindgen_test_layout_tagCUSTDATA() {
    assert_eq!(
        ::std::mem::size_of::<tagCUSTDATA>(),
        16usize,
        concat!("Size of: ", stringify!(tagCUSTDATA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCUSTDATA>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCUSTDATA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCUSTDATA>())).cCustData as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCUSTDATA),
            "::",
            stringify!(cCustData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCUSTDATA>())).prgCustData as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCUSTDATA),
            "::",
            stringify!(prgCustData)
        )
    );
}
pub type CUSTDATA = tagCUSTDATA;
pub type LPCUSTDATA = *mut tagCUSTDATA;
extern "C" {
    pub static mut IOleAutomationTypes_v1_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut IOleAutomationTypes_v1_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_oaidl_0000_0001_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_oaidl_0000_0001_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPCREATETYPEINFO = *mut ICreateTypeInfo;
extern "C" {
    pub static IID_ICreateTypeInfo: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ICreateTypeInfoVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut ICreateTypeInfo) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut ICreateTypeInfo) -> ULONG>,
    pub SetGuid: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeInfo, guid: *const GUID) -> HRESULT,
    >,
    pub SetTypeFlags: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeInfo, uTypeFlags: UINT) -> HRESULT,
    >,
    pub SetDocString: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeInfo, pStrDoc: LPOLESTR) -> HRESULT,
    >,
    pub SetHelpContext: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeInfo, dwHelpContext: DWORD) -> HRESULT,
    >,
    pub SetVersion: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo,
            wMajorVerNum: WORD,
            wMinorVerNum: WORD,
        ) -> HRESULT,
    >,
    pub AddRefTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo,
            pTInfo: *mut ITypeInfo,
            phRefType: *mut HREFTYPE,
        ) -> HRESULT,
    >,
    pub AddFuncDesc: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo,
            index: UINT,
            pFuncDesc: *mut FUNCDESC,
        ) -> HRESULT,
    >,
    pub AddImplType: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo,
            index: UINT,
            hRefType: HREFTYPE,
        ) -> HRESULT,
    >,
    pub SetImplTypeFlags: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo,
            index: UINT,
            implTypeFlags: INT,
        ) -> HRESULT,
    >,
    pub SetAlignment: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeInfo, cbAlignment: WORD) -> HRESULT,
    >,
    pub SetSchema: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeInfo, pStrSchema: LPOLESTR) -> HRESULT,
    >,
    pub AddVarDesc: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo,
            index: UINT,
            pVarDesc: *mut VARDESC,
        ) -> HRESULT,
    >,
    pub SetFuncAndParamNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo,
            index: UINT,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
        ) -> HRESULT,
    >,
    pub SetVarName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeInfo, index: UINT, szName: LPOLESTR) -> HRESULT,
    >,
    pub SetTypeDescAlias: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeInfo, pTDescAlias: *mut TYPEDESC) -> HRESULT,
    >,
    pub DefineFuncAsDllEntry: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo,
            index: UINT,
            szDllName: LPOLESTR,
            szProcName: LPOLESTR,
        ) -> HRESULT,
    >,
    pub SetFuncDocString: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo,
            index: UINT,
            szDocString: LPOLESTR,
        ) -> HRESULT,
    >,
    pub SetVarDocString: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo,
            index: UINT,
            szDocString: LPOLESTR,
        ) -> HRESULT,
    >,
    pub SetFuncHelpContext: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo,
            index: UINT,
            dwHelpContext: DWORD,
        ) -> HRESULT,
    >,
    pub SetVarHelpContext: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo,
            index: UINT,
            dwHelpContext: DWORD,
        ) -> HRESULT,
    >,
    pub SetMops: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeInfo, index: UINT, bstrMops: BSTR) -> HRESULT,
    >,
    pub SetTypeIdldesc: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeInfo, pIdlDesc: *mut IDLDESC) -> HRESULT,
    >,
    pub LayOut: ::std::option::Option<unsafe extern "C" fn(This: *mut ICreateTypeInfo) -> HRESULT>,
}
#[test]
fn bindgen_test_layout_ICreateTypeInfoVtbl() {
    assert_eq!(
        ::std::mem::size_of::<ICreateTypeInfoVtbl>(),
        208usize,
        concat!("Size of: ", stringify!(ICreateTypeInfoVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<ICreateTypeInfoVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(ICreateTypeInfoVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfoVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfoVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeInfoVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfoVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeInfoVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfoVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeInfoVtbl>())).SetGuid as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfoVtbl),
            "::",
            stringify!(SetGuid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfoVtbl>())).SetTypeFlags as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfoVtbl),
            "::",
            stringify!(SetTypeFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfoVtbl>())).SetDocString as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfoVtbl),
            "::",
            stringify!(SetDocString)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfoVtbl>())).SetHelpContext as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfoVtbl),
            "::",
            stringify!(SetHelpContext)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeInfoVtbl>())).SetVersion as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfoVtbl),
            "::",
            stringify!(SetVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfoVtbl>())).AddRefTypeInfo as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfoVtbl),
            "::",
            stringify!(AddRefTypeInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeInfoVtbl>())).AddFuncDesc as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfoVtbl),
            "::",
            stringify!(AddFuncDesc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeInfoVtbl>())).AddImplType as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfoVtbl),
            "::",
            stringify!(AddImplType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfoVtbl>())).SetImplTypeFlags as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfoVtbl),
            "::",
            stringify!(SetImplTypeFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfoVtbl>())).SetAlignment as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfoVtbl),
            "::",
            stringify!(SetAlignment)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeInfoVtbl>())).SetSchema as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfoVtbl),
            "::",
            stringify!(SetSchema)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeInfoVtbl>())).AddVarDesc as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfoVtbl),
            "::",
            stringify!(AddVarDesc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfoVtbl>())).SetFuncAndParamNames as *const _
                as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfoVtbl),
            "::",
            stringify!(SetFuncAndParamNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeInfoVtbl>())).SetVarName as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfoVtbl),
            "::",
            stringify!(SetVarName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfoVtbl>())).SetTypeDescAlias as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfoVtbl),
            "::",
            stringify!(SetTypeDescAlias)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfoVtbl>())).DefineFuncAsDllEntry as *const _
                as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfoVtbl),
            "::",
            stringify!(DefineFuncAsDllEntry)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfoVtbl>())).SetFuncDocString as *const _ as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfoVtbl),
            "::",
            stringify!(SetFuncDocString)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfoVtbl>())).SetVarDocString as *const _ as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfoVtbl),
            "::",
            stringify!(SetVarDocString)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfoVtbl>())).SetFuncHelpContext as *const _ as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfoVtbl),
            "::",
            stringify!(SetFuncHelpContext)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfoVtbl>())).SetVarHelpContext as *const _ as usize
        },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfoVtbl),
            "::",
            stringify!(SetVarHelpContext)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeInfoVtbl>())).SetMops as *const _ as usize },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfoVtbl),
            "::",
            stringify!(SetMops)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfoVtbl>())).SetTypeIdldesc as *const _ as usize
        },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfoVtbl),
            "::",
            stringify!(SetTypeIdldesc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeInfoVtbl>())).LayOut as *const _ as usize },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfoVtbl),
            "::",
            stringify!(LayOut)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ICreateTypeInfo {
    pub lpVtbl: *mut ICreateTypeInfoVtbl,
}
#[test]
fn bindgen_test_layout_ICreateTypeInfo() {
    assert_eq!(
        ::std::mem::size_of::<ICreateTypeInfo>(),
        8usize,
        concat!("Size of: ", stringify!(ICreateTypeInfo))
    );
    assert_eq!(
        ::std::mem::align_of::<ICreateTypeInfo>(),
        8usize,
        concat!("Alignment of ", stringify!(ICreateTypeInfo))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeInfo>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPCREATETYPEINFO2 = *mut ICreateTypeInfo2;
extern "C" {
    pub static IID_ICreateTypeInfo2: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ICreateTypeInfo2Vtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo2,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut ICreateTypeInfo2) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut ICreateTypeInfo2) -> ULONG>,
    pub SetGuid: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeInfo2, guid: *const GUID) -> HRESULT,
    >,
    pub SetTypeFlags: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeInfo2, uTypeFlags: UINT) -> HRESULT,
    >,
    pub SetDocString: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeInfo2, pStrDoc: LPOLESTR) -> HRESULT,
    >,
    pub SetHelpContext: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeInfo2, dwHelpContext: DWORD) -> HRESULT,
    >,
    pub SetVersion: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo2,
            wMajorVerNum: WORD,
            wMinorVerNum: WORD,
        ) -> HRESULT,
    >,
    pub AddRefTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo2,
            pTInfo: *mut ITypeInfo,
            phRefType: *mut HREFTYPE,
        ) -> HRESULT,
    >,
    pub AddFuncDesc: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo2,
            index: UINT,
            pFuncDesc: *mut FUNCDESC,
        ) -> HRESULT,
    >,
    pub AddImplType: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo2,
            index: UINT,
            hRefType: HREFTYPE,
        ) -> HRESULT,
    >,
    pub SetImplTypeFlags: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo2,
            index: UINT,
            implTypeFlags: INT,
        ) -> HRESULT,
    >,
    pub SetAlignment: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeInfo2, cbAlignment: WORD) -> HRESULT,
    >,
    pub SetSchema: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeInfo2, pStrSchema: LPOLESTR) -> HRESULT,
    >,
    pub AddVarDesc: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo2,
            index: UINT,
            pVarDesc: *mut VARDESC,
        ) -> HRESULT,
    >,
    pub SetFuncAndParamNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo2,
            index: UINT,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
        ) -> HRESULT,
    >,
    pub SetVarName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeInfo2, index: UINT, szName: LPOLESTR) -> HRESULT,
    >,
    pub SetTypeDescAlias: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeInfo2, pTDescAlias: *mut TYPEDESC) -> HRESULT,
    >,
    pub DefineFuncAsDllEntry: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo2,
            index: UINT,
            szDllName: LPOLESTR,
            szProcName: LPOLESTR,
        ) -> HRESULT,
    >,
    pub SetFuncDocString: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo2,
            index: UINT,
            szDocString: LPOLESTR,
        ) -> HRESULT,
    >,
    pub SetVarDocString: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo2,
            index: UINT,
            szDocString: LPOLESTR,
        ) -> HRESULT,
    >,
    pub SetFuncHelpContext: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo2,
            index: UINT,
            dwHelpContext: DWORD,
        ) -> HRESULT,
    >,
    pub SetVarHelpContext: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo2,
            index: UINT,
            dwHelpContext: DWORD,
        ) -> HRESULT,
    >,
    pub SetMops: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeInfo2, index: UINT, bstrMops: BSTR) -> HRESULT,
    >,
    pub SetTypeIdldesc: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeInfo2, pIdlDesc: *mut IDLDESC) -> HRESULT,
    >,
    pub LayOut: ::std::option::Option<unsafe extern "C" fn(This: *mut ICreateTypeInfo2) -> HRESULT>,
    pub DeleteFuncDesc: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeInfo2, index: UINT) -> HRESULT,
    >,
    pub DeleteFuncDescByMemId: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo2,
            memid: MEMBERID,
            invKind: INVOKEKIND,
        ) -> HRESULT,
    >,
    pub DeleteVarDesc: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeInfo2, index: UINT) -> HRESULT,
    >,
    pub DeleteVarDescByMemId: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeInfo2, memid: MEMBERID) -> HRESULT,
    >,
    pub DeleteImplType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeInfo2, index: UINT) -> HRESULT,
    >,
    pub SetCustData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo2,
            guid: *const GUID,
            pVarVal: *mut VARIANT,
        ) -> HRESULT,
    >,
    pub SetFuncCustData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo2,
            index: UINT,
            guid: *const GUID,
            pVarVal: *mut VARIANT,
        ) -> HRESULT,
    >,
    pub SetParamCustData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo2,
            indexFunc: UINT,
            indexParam: UINT,
            guid: *const GUID,
            pVarVal: *mut VARIANT,
        ) -> HRESULT,
    >,
    pub SetVarCustData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo2,
            index: UINT,
            guid: *const GUID,
            pVarVal: *mut VARIANT,
        ) -> HRESULT,
    >,
    pub SetImplTypeCustData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo2,
            index: UINT,
            guid: *const GUID,
            pVarVal: *mut VARIANT,
        ) -> HRESULT,
    >,
    pub SetHelpStringContext: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeInfo2, dwHelpStringContext: ULONG) -> HRESULT,
    >,
    pub SetFuncHelpStringContext: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo2,
            index: UINT,
            dwHelpStringContext: ULONG,
        ) -> HRESULT,
    >,
    pub SetVarHelpStringContext: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeInfo2,
            index: UINT,
            dwHelpStringContext: ULONG,
        ) -> HRESULT,
    >,
    pub Invalidate:
        ::std::option::Option<unsafe extern "C" fn(This: *mut ICreateTypeInfo2) -> HRESULT>,
    pub SetName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeInfo2, szName: LPOLESTR) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_ICreateTypeInfo2Vtbl() {
    assert_eq!(
        ::std::mem::size_of::<ICreateTypeInfo2Vtbl>(),
        328usize,
        concat!("Size of: ", stringify!(ICreateTypeInfo2Vtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<ICreateTypeInfo2Vtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(ICreateTypeInfo2Vtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).SetGuid as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(SetGuid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).SetTypeFlags as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(SetTypeFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).SetDocString as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(SetDocString)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).SetHelpContext as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(SetHelpContext)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).SetVersion as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(SetVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).AddRefTypeInfo as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(AddRefTypeInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).AddFuncDesc as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(AddFuncDesc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).AddImplType as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(AddImplType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).SetImplTypeFlags as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(SetImplTypeFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).SetAlignment as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(SetAlignment)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).SetSchema as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(SetSchema)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).AddVarDesc as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(AddVarDesc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).SetFuncAndParamNames as *const _
                as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(SetFuncAndParamNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).SetVarName as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(SetVarName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).SetTypeDescAlias as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(SetTypeDescAlias)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).DefineFuncAsDllEntry as *const _
                as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(DefineFuncAsDllEntry)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).SetFuncDocString as *const _ as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(SetFuncDocString)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).SetVarDocString as *const _ as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(SetVarDocString)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).SetFuncHelpContext as *const _ as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(SetFuncHelpContext)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).SetVarHelpContext as *const _ as usize
        },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(SetVarHelpContext)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).SetMops as *const _ as usize },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(SetMops)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).SetTypeIdldesc as *const _ as usize
        },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(SetTypeIdldesc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).LayOut as *const _ as usize },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(LayOut)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).DeleteFuncDesc as *const _ as usize
        },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(DeleteFuncDesc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).DeleteFuncDescByMemId as *const _
                as usize
        },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(DeleteFuncDescByMemId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).DeleteVarDesc as *const _ as usize
        },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(DeleteVarDesc)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).DeleteVarDescByMemId as *const _
                as usize
        },
        232usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(DeleteVarDescByMemId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).DeleteImplType as *const _ as usize
        },
        240usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(DeleteImplType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).SetCustData as *const _ as usize
        },
        248usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(SetCustData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).SetFuncCustData as *const _ as usize
        },
        256usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(SetFuncCustData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).SetParamCustData as *const _ as usize
        },
        264usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(SetParamCustData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).SetVarCustData as *const _ as usize
        },
        272usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(SetVarCustData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).SetImplTypeCustData as *const _
                as usize
        },
        280usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(SetImplTypeCustData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).SetHelpStringContext as *const _
                as usize
        },
        288usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(SetHelpStringContext)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).SetFuncHelpStringContext as *const _
                as usize
        },
        296usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(SetFuncHelpStringContext)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).SetVarHelpStringContext as *const _
                as usize
        },
        304usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(SetVarHelpStringContext)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).Invalidate as *const _ as usize },
        312usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(Invalidate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeInfo2Vtbl>())).SetName as *const _ as usize },
        320usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2Vtbl),
            "::",
            stringify!(SetName)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ICreateTypeInfo2 {
    pub lpVtbl: *mut ICreateTypeInfo2Vtbl,
}
#[test]
fn bindgen_test_layout_ICreateTypeInfo2() {
    assert_eq!(
        ::std::mem::size_of::<ICreateTypeInfo2>(),
        8usize,
        concat!("Size of: ", stringify!(ICreateTypeInfo2))
    );
    assert_eq!(
        ::std::mem::align_of::<ICreateTypeInfo2>(),
        8usize,
        concat!("Alignment of ", stringify!(ICreateTypeInfo2))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeInfo2>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeInfo2),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPCREATETYPELIB = *mut ICreateTypeLib;
extern "C" {
    pub static IID_ICreateTypeLib: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ICreateTypeLibVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeLib,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut ICreateTypeLib) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut ICreateTypeLib) -> ULONG>,
    pub CreateTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeLib,
            szName: LPOLESTR,
            tkind: TYPEKIND,
            ppCTInfo: *mut *mut ICreateTypeInfo,
        ) -> HRESULT,
    >,
    pub SetName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeLib, szName: LPOLESTR) -> HRESULT,
    >,
    pub SetVersion: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeLib,
            wMajorVerNum: WORD,
            wMinorVerNum: WORD,
        ) -> HRESULT,
    >,
    pub SetGuid: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeLib, guid: *const GUID) -> HRESULT,
    >,
    pub SetDocString: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeLib, szDoc: LPOLESTR) -> HRESULT,
    >,
    pub SetHelpFileName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeLib, szHelpFileName: LPOLESTR) -> HRESULT,
    >,
    pub SetHelpContext: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeLib, dwHelpContext: DWORD) -> HRESULT,
    >,
    pub SetLcid: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeLib, lcid: LCID) -> HRESULT,
    >,
    pub SetLibFlags: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeLib, uLibFlags: UINT) -> HRESULT,
    >,
    pub SaveAllChanges:
        ::std::option::Option<unsafe extern "C" fn(This: *mut ICreateTypeLib) -> HRESULT>,
}
#[test]
fn bindgen_test_layout_ICreateTypeLibVtbl() {
    assert_eq!(
        ::std::mem::size_of::<ICreateTypeLibVtbl>(),
        104usize,
        concat!("Size of: ", stringify!(ICreateTypeLibVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<ICreateTypeLibVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(ICreateTypeLibVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeLibVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeLibVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeLibVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeLibVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeLibVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeLibVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeLibVtbl>())).CreateTypeInfo as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeLibVtbl),
            "::",
            stringify!(CreateTypeInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeLibVtbl>())).SetName as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeLibVtbl),
            "::",
            stringify!(SetName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeLibVtbl>())).SetVersion as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeLibVtbl),
            "::",
            stringify!(SetVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeLibVtbl>())).SetGuid as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeLibVtbl),
            "::",
            stringify!(SetGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeLibVtbl>())).SetDocString as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeLibVtbl),
            "::",
            stringify!(SetDocString)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeLibVtbl>())).SetHelpFileName as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeLibVtbl),
            "::",
            stringify!(SetHelpFileName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeLibVtbl>())).SetHelpContext as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeLibVtbl),
            "::",
            stringify!(SetHelpContext)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeLibVtbl>())).SetLcid as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeLibVtbl),
            "::",
            stringify!(SetLcid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeLibVtbl>())).SetLibFlags as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeLibVtbl),
            "::",
            stringify!(SetLibFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeLibVtbl>())).SaveAllChanges as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeLibVtbl),
            "::",
            stringify!(SaveAllChanges)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ICreateTypeLib {
    pub lpVtbl: *mut ICreateTypeLibVtbl,
}
#[test]
fn bindgen_test_layout_ICreateTypeLib() {
    assert_eq!(
        ::std::mem::size_of::<ICreateTypeLib>(),
        8usize,
        concat!("Size of: ", stringify!(ICreateTypeLib))
    );
    assert_eq!(
        ::std::mem::align_of::<ICreateTypeLib>(),
        8usize,
        concat!("Alignment of ", stringify!(ICreateTypeLib))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeLib>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeLib),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPCREATETYPELIB2 = *mut ICreateTypeLib2;
extern "C" {
    pub static IID_ICreateTypeLib2: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ICreateTypeLib2Vtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeLib2,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut ICreateTypeLib2) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut ICreateTypeLib2) -> ULONG>,
    pub CreateTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeLib2,
            szName: LPOLESTR,
            tkind: TYPEKIND,
            ppCTInfo: *mut *mut ICreateTypeInfo,
        ) -> HRESULT,
    >,
    pub SetName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeLib2, szName: LPOLESTR) -> HRESULT,
    >,
    pub SetVersion: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeLib2,
            wMajorVerNum: WORD,
            wMinorVerNum: WORD,
        ) -> HRESULT,
    >,
    pub SetGuid: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeLib2, guid: *const GUID) -> HRESULT,
    >,
    pub SetDocString: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeLib2, szDoc: LPOLESTR) -> HRESULT,
    >,
    pub SetHelpFileName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeLib2, szHelpFileName: LPOLESTR) -> HRESULT,
    >,
    pub SetHelpContext: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeLib2, dwHelpContext: DWORD) -> HRESULT,
    >,
    pub SetLcid: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeLib2, lcid: LCID) -> HRESULT,
    >,
    pub SetLibFlags: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeLib2, uLibFlags: UINT) -> HRESULT,
    >,
    pub SaveAllChanges:
        ::std::option::Option<unsafe extern "C" fn(This: *mut ICreateTypeLib2) -> HRESULT>,
    pub DeleteTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeLib2, szName: LPOLESTR) -> HRESULT,
    >,
    pub SetCustData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateTypeLib2,
            guid: *const GUID,
            pVarVal: *mut VARIANT,
        ) -> HRESULT,
    >,
    pub SetHelpStringContext: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeLib2, dwHelpStringContext: ULONG) -> HRESULT,
    >,
    pub SetHelpStringDll: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateTypeLib2, szFileName: LPOLESTR) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_ICreateTypeLib2Vtbl() {
    assert_eq!(
        ::std::mem::size_of::<ICreateTypeLib2Vtbl>(),
        136usize,
        concat!("Size of: ", stringify!(ICreateTypeLib2Vtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<ICreateTypeLib2Vtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(ICreateTypeLib2Vtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeLib2Vtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeLib2Vtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeLib2Vtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeLib2Vtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeLib2Vtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeLib2Vtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeLib2Vtbl>())).CreateTypeInfo as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeLib2Vtbl),
            "::",
            stringify!(CreateTypeInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeLib2Vtbl>())).SetName as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeLib2Vtbl),
            "::",
            stringify!(SetName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeLib2Vtbl>())).SetVersion as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeLib2Vtbl),
            "::",
            stringify!(SetVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeLib2Vtbl>())).SetGuid as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeLib2Vtbl),
            "::",
            stringify!(SetGuid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeLib2Vtbl>())).SetDocString as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeLib2Vtbl),
            "::",
            stringify!(SetDocString)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeLib2Vtbl>())).SetHelpFileName as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeLib2Vtbl),
            "::",
            stringify!(SetHelpFileName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeLib2Vtbl>())).SetHelpContext as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeLib2Vtbl),
            "::",
            stringify!(SetHelpContext)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeLib2Vtbl>())).SetLcid as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeLib2Vtbl),
            "::",
            stringify!(SetLcid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeLib2Vtbl>())).SetLibFlags as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeLib2Vtbl),
            "::",
            stringify!(SetLibFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeLib2Vtbl>())).SaveAllChanges as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeLib2Vtbl),
            "::",
            stringify!(SaveAllChanges)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeLib2Vtbl>())).DeleteTypeInfo as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeLib2Vtbl),
            "::",
            stringify!(DeleteTypeInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeLib2Vtbl>())).SetCustData as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeLib2Vtbl),
            "::",
            stringify!(SetCustData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeLib2Vtbl>())).SetHelpStringContext as *const _
                as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeLib2Vtbl),
            "::",
            stringify!(SetHelpStringContext)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateTypeLib2Vtbl>())).SetHelpStringDll as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeLib2Vtbl),
            "::",
            stringify!(SetHelpStringDll)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ICreateTypeLib2 {
    pub lpVtbl: *mut ICreateTypeLib2Vtbl,
}
#[test]
fn bindgen_test_layout_ICreateTypeLib2() {
    assert_eq!(
        ::std::mem::size_of::<ICreateTypeLib2>(),
        8usize,
        concat!("Size of: ", stringify!(ICreateTypeLib2))
    );
    assert_eq!(
        ::std::mem::align_of::<ICreateTypeLib2>(),
        8usize,
        concat!("Alignment of ", stringify!(ICreateTypeLib2))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateTypeLib2>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateTypeLib2),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_oaidl_0000_0005_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_oaidl_0000_0005_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPDISPATCH = *mut IDispatch;
extern "C" {
    pub static IID_IDispatch: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IDispatchVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IDispatch,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IDispatch) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IDispatch) -> ULONG>,
    pub GetTypeInfoCount: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IDispatch, pctinfo: *mut UINT) -> HRESULT,
    >,
    pub GetTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IDispatch,
            iTInfo: UINT,
            lcid: LCID,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetIDsOfNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IDispatch,
            riid: *const IID,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
            lcid: LCID,
            rgDispId: *mut DISPID,
        ) -> HRESULT,
    >,
    pub Invoke: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IDispatch,
            dispIdMember: DISPID,
            riid: *const IID,
            lcid: LCID,
            wFlags: WORD,
            pDispParams: *mut DISPPARAMS,
            pVarResult: *mut VARIANT,
            pExcepInfo: *mut EXCEPINFO,
            puArgErr: *mut UINT,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IDispatchVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IDispatchVtbl>(),
        56usize,
        concat!("Size of: ", stringify!(IDispatchVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IDispatchVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IDispatchVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDispatchVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IDispatchVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDispatchVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IDispatchVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDispatchVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IDispatchVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDispatchVtbl>())).GetTypeInfoCount as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IDispatchVtbl),
            "::",
            stringify!(GetTypeInfoCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDispatchVtbl>())).GetTypeInfo as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IDispatchVtbl),
            "::",
            stringify!(GetTypeInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDispatchVtbl>())).GetIDsOfNames as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IDispatchVtbl),
            "::",
            stringify!(GetIDsOfNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDispatchVtbl>())).Invoke as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IDispatchVtbl),
            "::",
            stringify!(Invoke)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IDispatch {
    pub lpVtbl: *mut IDispatchVtbl,
}
#[test]
fn bindgen_test_layout_IDispatch() {
    assert_eq!(
        ::std::mem::size_of::<IDispatch>(),
        8usize,
        concat!("Size of: ", stringify!(IDispatch))
    );
    assert_eq!(
        ::std::mem::align_of::<IDispatch>(),
        8usize,
        concat!("Alignment of ", stringify!(IDispatch))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDispatch>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IDispatch),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IDispatch_RemoteInvoke_Proxy(
        This: *mut IDispatch,
        dispIdMember: DISPID,
        riid: *const IID,
        lcid: LCID,
        dwFlags: DWORD,
        pDispParams: *mut DISPPARAMS,
        pVarResult: *mut VARIANT,
        pExcepInfo: *mut EXCEPINFO,
        pArgErr: *mut UINT,
        cVarRef: UINT,
        rgVarRefIdx: *mut UINT,
        rgVarRef: *mut VARIANTARG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IDispatch_RemoteInvoke_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
pub type LPENUMVARIANT = *mut IEnumVARIANT;
extern "C" {
    pub static IID_IEnumVARIANT: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IEnumVARIANTVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IEnumVARIANT,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IEnumVARIANT) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IEnumVARIANT) -> ULONG>,
    pub Next: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IEnumVARIANT,
            celt: ULONG,
            rgVar: *mut VARIANT,
            pCeltFetched: *mut ULONG,
        ) -> HRESULT,
    >,
    pub Skip: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IEnumVARIANT, celt: ULONG) -> HRESULT,
    >,
    pub Reset: ::std::option::Option<unsafe extern "C" fn(This: *mut IEnumVARIANT) -> HRESULT>,
    pub Clone: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IEnumVARIANT, ppEnum: *mut *mut IEnumVARIANT) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IEnumVARIANTVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IEnumVARIANTVtbl>(),
        56usize,
        concat!("Size of: ", stringify!(IEnumVARIANTVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IEnumVARIANTVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IEnumVARIANTVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumVARIANTVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumVARIANTVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumVARIANTVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumVARIANTVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumVARIANTVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumVARIANTVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumVARIANTVtbl>())).Next as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumVARIANTVtbl),
            "::",
            stringify!(Next)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumVARIANTVtbl>())).Skip as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumVARIANTVtbl),
            "::",
            stringify!(Skip)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumVARIANTVtbl>())).Reset as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumVARIANTVtbl),
            "::",
            stringify!(Reset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumVARIANTVtbl>())).Clone as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumVARIANTVtbl),
            "::",
            stringify!(Clone)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IEnumVARIANT {
    pub lpVtbl: *mut IEnumVARIANTVtbl,
}
#[test]
fn bindgen_test_layout_IEnumVARIANT() {
    assert_eq!(
        ::std::mem::size_of::<IEnumVARIANT>(),
        8usize,
        concat!("Size of: ", stringify!(IEnumVARIANT))
    );
    assert_eq!(
        ::std::mem::align_of::<IEnumVARIANT>(),
        8usize,
        concat!("Alignment of ", stringify!(IEnumVARIANT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumVARIANT>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumVARIANT),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IEnumVARIANT_RemoteNext_Proxy(
        This: *mut IEnumVARIANT,
        celt: ULONG,
        rgVar: *mut VARIANT,
        pCeltFetched: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IEnumVARIANT_RemoteNext_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
pub type LPTYPECOMP = *mut ITypeComp;
pub const tagDESCKIND_DESCKIND_NONE: tagDESCKIND = 0;
pub const tagDESCKIND_DESCKIND_FUNCDESC: tagDESCKIND = 1;
pub const tagDESCKIND_DESCKIND_VARDESC: tagDESCKIND = 2;
pub const tagDESCKIND_DESCKIND_TYPECOMP: tagDESCKIND = 3;
pub const tagDESCKIND_DESCKIND_IMPLICITAPPOBJ: tagDESCKIND = 4;
pub const tagDESCKIND_DESCKIND_MAX: tagDESCKIND = 5;
pub type tagDESCKIND = ::std::os::raw::c_int;
pub use self::tagDESCKIND as DESCKIND;
#[repr(C)]
#[derive(Copy, Clone)]
pub union tagBINDPTR {
    pub lpfuncdesc: *mut FUNCDESC,
    pub lpvardesc: *mut VARDESC,
    pub lptcomp: *mut ITypeComp,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout_tagBINDPTR() {
    assert_eq!(
        ::std::mem::size_of::<tagBINDPTR>(),
        8usize,
        concat!("Size of: ", stringify!(tagBINDPTR))
    );
    assert_eq!(
        ::std::mem::align_of::<tagBINDPTR>(),
        8usize,
        concat!("Alignment of ", stringify!(tagBINDPTR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBINDPTR>())).lpfuncdesc as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBINDPTR),
            "::",
            stringify!(lpfuncdesc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBINDPTR>())).lpvardesc as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBINDPTR),
            "::",
            stringify!(lpvardesc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagBINDPTR>())).lptcomp as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagBINDPTR),
            "::",
            stringify!(lptcomp)
        )
    );
}
pub type BINDPTR = tagBINDPTR;
pub type LPBINDPTR = *mut tagBINDPTR;
extern "C" {
    pub static IID_ITypeComp: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ITypeCompVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeComp,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut ITypeComp) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut ITypeComp) -> ULONG>,
    pub Bind: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeComp,
            szName: LPOLESTR,
            lHashVal: ULONG,
            wFlags: WORD,
            ppTInfo: *mut *mut ITypeInfo,
            pDescKind: *mut DESCKIND,
            pBindPtr: *mut BINDPTR,
        ) -> HRESULT,
    >,
    pub BindType: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeComp,
            szName: LPOLESTR,
            lHashVal: ULONG,
            ppTInfo: *mut *mut ITypeInfo,
            ppTComp: *mut *mut ITypeComp,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_ITypeCompVtbl() {
    assert_eq!(
        ::std::mem::size_of::<ITypeCompVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(ITypeCompVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<ITypeCompVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(ITypeCompVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeCompVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeCompVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeCompVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeCompVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeCompVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeCompVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeCompVtbl>())).Bind as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeCompVtbl),
            "::",
            stringify!(Bind)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeCompVtbl>())).BindType as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeCompVtbl),
            "::",
            stringify!(BindType)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ITypeComp {
    pub lpVtbl: *mut ITypeCompVtbl,
}
#[test]
fn bindgen_test_layout_ITypeComp() {
    assert_eq!(
        ::std::mem::size_of::<ITypeComp>(),
        8usize,
        concat!("Size of: ", stringify!(ITypeComp))
    );
    assert_eq!(
        ::std::mem::align_of::<ITypeComp>(),
        8usize,
        concat!("Alignment of ", stringify!(ITypeComp))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeComp>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeComp),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn ITypeComp_RemoteBind_Proxy(
        This: *mut ITypeComp,
        szName: LPOLESTR,
        lHashVal: ULONG,
        wFlags: WORD,
        ppTInfo: *mut *mut ITypeInfo,
        pDescKind: *mut DESCKIND,
        ppFuncDesc: *mut LPFUNCDESC,
        ppVarDesc: *mut LPVARDESC,
        ppTypeComp: *mut *mut ITypeComp,
        pDummy: *mut CLEANLOCALSTORAGE,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeComp_RemoteBind_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn ITypeComp_RemoteBindType_Proxy(
        This: *mut ITypeComp,
        szName: LPOLESTR,
        lHashVal: ULONG,
        ppTInfo: *mut *mut ITypeInfo,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeComp_RemoteBindType_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub static mut __MIDL_itf_oaidl_0000_0008_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_oaidl_0000_0008_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPTYPEINFO = *mut ITypeInfo;
extern "C" {
    pub static IID_ITypeInfo: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ITypeInfoVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut ITypeInfo) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut ITypeInfo) -> ULONG>,
    pub GetTypeAttr: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ITypeInfo, ppTypeAttr: *mut *mut TYPEATTR) -> HRESULT,
    >,
    pub GetTypeComp: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ITypeInfo, ppTComp: *mut *mut ITypeComp) -> HRESULT,
    >,
    pub GetFuncDesc: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo,
            index: UINT,
            ppFuncDesc: *mut *mut FUNCDESC,
        ) -> HRESULT,
    >,
    pub GetVarDesc: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo,
            index: UINT,
            ppVarDesc: *mut *mut VARDESC,
        ) -> HRESULT,
    >,
    pub GetNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo,
            memid: MEMBERID,
            rgBstrNames: *mut BSTR,
            cMaxNames: UINT,
            pcNames: *mut UINT,
        ) -> HRESULT,
    >,
    pub GetRefTypeOfImplType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ITypeInfo, index: UINT, pRefType: *mut HREFTYPE) -> HRESULT,
    >,
    pub GetImplTypeFlags: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo,
            index: UINT,
            pImplTypeFlags: *mut INT,
        ) -> HRESULT,
    >,
    pub GetIDsOfNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
            pMemId: *mut MEMBERID,
        ) -> HRESULT,
    >,
    pub Invoke: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo,
            pvInstance: PVOID,
            memid: MEMBERID,
            wFlags: WORD,
            pDispParams: *mut DISPPARAMS,
            pVarResult: *mut VARIANT,
            pExcepInfo: *mut EXCEPINFO,
            puArgErr: *mut UINT,
        ) -> HRESULT,
    >,
    pub GetDocumentation: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo,
            memid: MEMBERID,
            pBstrName: *mut BSTR,
            pBstrDocString: *mut BSTR,
            pdwHelpContext: *mut DWORD,
            pBstrHelpFile: *mut BSTR,
        ) -> HRESULT,
    >,
    pub GetDllEntry: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo,
            memid: MEMBERID,
            invKind: INVOKEKIND,
            pBstrDllName: *mut BSTR,
            pBstrName: *mut BSTR,
            pwOrdinal: *mut WORD,
        ) -> HRESULT,
    >,
    pub GetRefTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo,
            hRefType: HREFTYPE,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub AddressOfMember: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo,
            memid: MEMBERID,
            invKind: INVOKEKIND,
            ppv: *mut PVOID,
        ) -> HRESULT,
    >,
    pub CreateInstance: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo,
            pUnkOuter: *mut IUnknown,
            riid: *const IID,
            ppvObj: *mut PVOID,
        ) -> HRESULT,
    >,
    pub GetMops: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo,
            memid: MEMBERID,
            pBstrMops: *mut BSTR,
        ) -> HRESULT,
    >,
    pub GetContainingTypeLib: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo,
            ppTLib: *mut *mut ITypeLib,
            pIndex: *mut UINT,
        ) -> HRESULT,
    >,
    pub ReleaseTypeAttr:
        ::std::option::Option<unsafe extern "C" fn(This: *mut ITypeInfo, pTypeAttr: *mut TYPEATTR)>,
    pub ReleaseFuncDesc:
        ::std::option::Option<unsafe extern "C" fn(This: *mut ITypeInfo, pFuncDesc: *mut FUNCDESC)>,
    pub ReleaseVarDesc:
        ::std::option::Option<unsafe extern "C" fn(This: *mut ITypeInfo, pVarDesc: *mut VARDESC)>,
}
#[test]
fn bindgen_test_layout_ITypeInfoVtbl() {
    assert_eq!(
        ::std::mem::size_of::<ITypeInfoVtbl>(),
        176usize,
        concat!("Size of: ", stringify!(ITypeInfoVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<ITypeInfoVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(ITypeInfoVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfoVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfoVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfoVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfoVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfoVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfoVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfoVtbl>())).GetTypeAttr as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfoVtbl),
            "::",
            stringify!(GetTypeAttr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfoVtbl>())).GetTypeComp as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfoVtbl),
            "::",
            stringify!(GetTypeComp)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfoVtbl>())).GetFuncDesc as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfoVtbl),
            "::",
            stringify!(GetFuncDesc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfoVtbl>())).GetVarDesc as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfoVtbl),
            "::",
            stringify!(GetVarDesc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfoVtbl>())).GetNames as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfoVtbl),
            "::",
            stringify!(GetNames)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITypeInfoVtbl>())).GetRefTypeOfImplType as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfoVtbl),
            "::",
            stringify!(GetRefTypeOfImplType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfoVtbl>())).GetImplTypeFlags as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfoVtbl),
            "::",
            stringify!(GetImplTypeFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfoVtbl>())).GetIDsOfNames as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfoVtbl),
            "::",
            stringify!(GetIDsOfNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfoVtbl>())).Invoke as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfoVtbl),
            "::",
            stringify!(Invoke)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfoVtbl>())).GetDocumentation as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfoVtbl),
            "::",
            stringify!(GetDocumentation)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfoVtbl>())).GetDllEntry as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfoVtbl),
            "::",
            stringify!(GetDllEntry)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfoVtbl>())).GetRefTypeInfo as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfoVtbl),
            "::",
            stringify!(GetRefTypeInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfoVtbl>())).AddressOfMember as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfoVtbl),
            "::",
            stringify!(AddressOfMember)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfoVtbl>())).CreateInstance as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfoVtbl),
            "::",
            stringify!(CreateInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfoVtbl>())).GetMops as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfoVtbl),
            "::",
            stringify!(GetMops)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITypeInfoVtbl>())).GetContainingTypeLib as *const _ as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfoVtbl),
            "::",
            stringify!(GetContainingTypeLib)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfoVtbl>())).ReleaseTypeAttr as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfoVtbl),
            "::",
            stringify!(ReleaseTypeAttr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfoVtbl>())).ReleaseFuncDesc as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfoVtbl),
            "::",
            stringify!(ReleaseFuncDesc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfoVtbl>())).ReleaseVarDesc as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfoVtbl),
            "::",
            stringify!(ReleaseVarDesc)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ITypeInfo {
    pub lpVtbl: *mut ITypeInfoVtbl,
}
#[test]
fn bindgen_test_layout_ITypeInfo() {
    assert_eq!(
        ::std::mem::size_of::<ITypeInfo>(),
        8usize,
        concat!("Size of: ", stringify!(ITypeInfo))
    );
    assert_eq!(
        ::std::mem::align_of::<ITypeInfo>(),
        8usize,
        concat!("Alignment of ", stringify!(ITypeInfo))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfo>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn ITypeInfo_RemoteGetTypeAttr_Proxy(
        This: *mut ITypeInfo,
        ppTypeAttr: *mut LPTYPEATTR,
        pDummy: *mut CLEANLOCALSTORAGE,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_RemoteGetTypeAttr_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn ITypeInfo_RemoteGetFuncDesc_Proxy(
        This: *mut ITypeInfo,
        index: UINT,
        ppFuncDesc: *mut LPFUNCDESC,
        pDummy: *mut CLEANLOCALSTORAGE,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_RemoteGetFuncDesc_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn ITypeInfo_RemoteGetVarDesc_Proxy(
        This: *mut ITypeInfo,
        index: UINT,
        ppVarDesc: *mut LPVARDESC,
        pDummy: *mut CLEANLOCALSTORAGE,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_RemoteGetVarDesc_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn ITypeInfo_RemoteGetNames_Proxy(
        This: *mut ITypeInfo,
        memid: MEMBERID,
        rgBstrNames: *mut BSTR,
        cMaxNames: UINT,
        pcNames: *mut UINT,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_RemoteGetNames_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn ITypeInfo_LocalGetIDsOfNames_Proxy(This: *mut ITypeInfo) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_LocalGetIDsOfNames_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn ITypeInfo_LocalInvoke_Proxy(This: *mut ITypeInfo) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_LocalInvoke_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn ITypeInfo_RemoteGetDocumentation_Proxy(
        This: *mut ITypeInfo,
        memid: MEMBERID,
        refPtrFlags: DWORD,
        pBstrName: *mut BSTR,
        pBstrDocString: *mut BSTR,
        pdwHelpContext: *mut DWORD,
        pBstrHelpFile: *mut BSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_RemoteGetDocumentation_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn ITypeInfo_RemoteGetDllEntry_Proxy(
        This: *mut ITypeInfo,
        memid: MEMBERID,
        invKind: INVOKEKIND,
        refPtrFlags: DWORD,
        pBstrDllName: *mut BSTR,
        pBstrName: *mut BSTR,
        pwOrdinal: *mut WORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_RemoteGetDllEntry_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn ITypeInfo_LocalAddressOfMember_Proxy(This: *mut ITypeInfo) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_LocalAddressOfMember_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn ITypeInfo_RemoteCreateInstance_Proxy(
        This: *mut ITypeInfo,
        riid: *const IID,
        ppvObj: *mut *mut IUnknown,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_RemoteCreateInstance_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn ITypeInfo_RemoteGetContainingTypeLib_Proxy(
        This: *mut ITypeInfo,
        ppTLib: *mut *mut ITypeLib,
        pIndex: *mut UINT,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_RemoteGetContainingTypeLib_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn ITypeInfo_LocalReleaseTypeAttr_Proxy(This: *mut ITypeInfo) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_LocalReleaseTypeAttr_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn ITypeInfo_LocalReleaseFuncDesc_Proxy(This: *mut ITypeInfo) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_LocalReleaseFuncDesc_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn ITypeInfo_LocalReleaseVarDesc_Proxy(This: *mut ITypeInfo) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_LocalReleaseVarDesc_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
pub type LPTYPEINFO2 = *mut ITypeInfo2;
extern "C" {
    pub static IID_ITypeInfo2: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ITypeInfo2Vtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo2,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut ITypeInfo2) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut ITypeInfo2) -> ULONG>,
    pub GetTypeAttr: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ITypeInfo2, ppTypeAttr: *mut *mut TYPEATTR) -> HRESULT,
    >,
    pub GetTypeComp: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ITypeInfo2, ppTComp: *mut *mut ITypeComp) -> HRESULT,
    >,
    pub GetFuncDesc: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo2,
            index: UINT,
            ppFuncDesc: *mut *mut FUNCDESC,
        ) -> HRESULT,
    >,
    pub GetVarDesc: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo2,
            index: UINT,
            ppVarDesc: *mut *mut VARDESC,
        ) -> HRESULT,
    >,
    pub GetNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo2,
            memid: MEMBERID,
            rgBstrNames: *mut BSTR,
            cMaxNames: UINT,
            pcNames: *mut UINT,
        ) -> HRESULT,
    >,
    pub GetRefTypeOfImplType: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo2,
            index: UINT,
            pRefType: *mut HREFTYPE,
        ) -> HRESULT,
    >,
    pub GetImplTypeFlags: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo2,
            index: UINT,
            pImplTypeFlags: *mut INT,
        ) -> HRESULT,
    >,
    pub GetIDsOfNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo2,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
            pMemId: *mut MEMBERID,
        ) -> HRESULT,
    >,
    pub Invoke: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo2,
            pvInstance: PVOID,
            memid: MEMBERID,
            wFlags: WORD,
            pDispParams: *mut DISPPARAMS,
            pVarResult: *mut VARIANT,
            pExcepInfo: *mut EXCEPINFO,
            puArgErr: *mut UINT,
        ) -> HRESULT,
    >,
    pub GetDocumentation: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo2,
            memid: MEMBERID,
            pBstrName: *mut BSTR,
            pBstrDocString: *mut BSTR,
            pdwHelpContext: *mut DWORD,
            pBstrHelpFile: *mut BSTR,
        ) -> HRESULT,
    >,
    pub GetDllEntry: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo2,
            memid: MEMBERID,
            invKind: INVOKEKIND,
            pBstrDllName: *mut BSTR,
            pBstrName: *mut BSTR,
            pwOrdinal: *mut WORD,
        ) -> HRESULT,
    >,
    pub GetRefTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo2,
            hRefType: HREFTYPE,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub AddressOfMember: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo2,
            memid: MEMBERID,
            invKind: INVOKEKIND,
            ppv: *mut PVOID,
        ) -> HRESULT,
    >,
    pub CreateInstance: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo2,
            pUnkOuter: *mut IUnknown,
            riid: *const IID,
            ppvObj: *mut PVOID,
        ) -> HRESULT,
    >,
    pub GetMops: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo2,
            memid: MEMBERID,
            pBstrMops: *mut BSTR,
        ) -> HRESULT,
    >,
    pub GetContainingTypeLib: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo2,
            ppTLib: *mut *mut ITypeLib,
            pIndex: *mut UINT,
        ) -> HRESULT,
    >,
    pub ReleaseTypeAttr: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ITypeInfo2, pTypeAttr: *mut TYPEATTR),
    >,
    pub ReleaseFuncDesc: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ITypeInfo2, pFuncDesc: *mut FUNCDESC),
    >,
    pub ReleaseVarDesc:
        ::std::option::Option<unsafe extern "C" fn(This: *mut ITypeInfo2, pVarDesc: *mut VARDESC)>,
    pub GetTypeKind: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ITypeInfo2, pTypeKind: *mut TYPEKIND) -> HRESULT,
    >,
    pub GetTypeFlags: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ITypeInfo2, pTypeFlags: *mut ULONG) -> HRESULT,
    >,
    pub GetFuncIndexOfMemId: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo2,
            memid: MEMBERID,
            invKind: INVOKEKIND,
            pFuncIndex: *mut UINT,
        ) -> HRESULT,
    >,
    pub GetVarIndexOfMemId: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo2,
            memid: MEMBERID,
            pVarIndex: *mut UINT,
        ) -> HRESULT,
    >,
    pub GetCustData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo2,
            guid: *const GUID,
            pVarVal: *mut VARIANT,
        ) -> HRESULT,
    >,
    pub GetFuncCustData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo2,
            index: UINT,
            guid: *const GUID,
            pVarVal: *mut VARIANT,
        ) -> HRESULT,
    >,
    pub GetParamCustData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo2,
            indexFunc: UINT,
            indexParam: UINT,
            guid: *const GUID,
            pVarVal: *mut VARIANT,
        ) -> HRESULT,
    >,
    pub GetVarCustData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo2,
            index: UINT,
            guid: *const GUID,
            pVarVal: *mut VARIANT,
        ) -> HRESULT,
    >,
    pub GetImplTypeCustData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo2,
            index: UINT,
            guid: *const GUID,
            pVarVal: *mut VARIANT,
        ) -> HRESULT,
    >,
    pub GetDocumentation2: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo2,
            memid: MEMBERID,
            lcid: LCID,
            pbstrHelpString: *mut BSTR,
            pdwHelpStringContext: *mut DWORD,
            pbstrHelpStringDll: *mut BSTR,
        ) -> HRESULT,
    >,
    pub GetAllCustData: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ITypeInfo2, pCustData: *mut CUSTDATA) -> HRESULT,
    >,
    pub GetAllFuncCustData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo2,
            index: UINT,
            pCustData: *mut CUSTDATA,
        ) -> HRESULT,
    >,
    pub GetAllParamCustData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo2,
            indexFunc: UINT,
            indexParam: UINT,
            pCustData: *mut CUSTDATA,
        ) -> HRESULT,
    >,
    pub GetAllVarCustData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo2,
            index: UINT,
            pCustData: *mut CUSTDATA,
        ) -> HRESULT,
    >,
    pub GetAllImplTypeCustData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeInfo2,
            index: UINT,
            pCustData: *mut CUSTDATA,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_ITypeInfo2Vtbl() {
    assert_eq!(
        ::std::mem::size_of::<ITypeInfo2Vtbl>(),
        296usize,
        concat!("Size of: ", stringify!(ITypeInfo2Vtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<ITypeInfo2Vtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(ITypeInfo2Vtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).GetTypeAttr as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(GetTypeAttr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).GetTypeComp as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(GetTypeComp)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).GetFuncDesc as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(GetFuncDesc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).GetVarDesc as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(GetVarDesc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).GetNames as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(GetNames)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).GetRefTypeOfImplType as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(GetRefTypeOfImplType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).GetImplTypeFlags as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(GetImplTypeFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).GetIDsOfNames as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(GetIDsOfNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).Invoke as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(Invoke)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).GetDocumentation as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(GetDocumentation)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).GetDllEntry as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(GetDllEntry)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).GetRefTypeInfo as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(GetRefTypeInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).AddressOfMember as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(AddressOfMember)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).CreateInstance as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(CreateInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).GetMops as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(GetMops)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).GetContainingTypeLib as *const _ as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(GetContainingTypeLib)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).ReleaseTypeAttr as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(ReleaseTypeAttr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).ReleaseFuncDesc as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(ReleaseFuncDesc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).ReleaseVarDesc as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(ReleaseVarDesc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).GetTypeKind as *const _ as usize },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(GetTypeKind)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).GetTypeFlags as *const _ as usize },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(GetTypeFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).GetFuncIndexOfMemId as *const _ as usize
        },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(GetFuncIndexOfMemId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).GetVarIndexOfMemId as *const _ as usize
        },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(GetVarIndexOfMemId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).GetCustData as *const _ as usize },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(GetCustData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).GetFuncCustData as *const _ as usize },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(GetFuncCustData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).GetParamCustData as *const _ as usize },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(GetParamCustData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).GetVarCustData as *const _ as usize },
        232usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(GetVarCustData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).GetImplTypeCustData as *const _ as usize
        },
        240usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(GetImplTypeCustData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).GetDocumentation2 as *const _ as usize
        },
        248usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(GetDocumentation2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).GetAllCustData as *const _ as usize },
        256usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(GetAllCustData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).GetAllFuncCustData as *const _ as usize
        },
        264usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(GetAllFuncCustData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).GetAllParamCustData as *const _ as usize
        },
        272usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(GetAllParamCustData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).GetAllVarCustData as *const _ as usize
        },
        280usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(GetAllVarCustData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITypeInfo2Vtbl>())).GetAllImplTypeCustData as *const _ as usize
        },
        288usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2Vtbl),
            "::",
            stringify!(GetAllImplTypeCustData)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ITypeInfo2 {
    pub lpVtbl: *mut ITypeInfo2Vtbl,
}
#[test]
fn bindgen_test_layout_ITypeInfo2() {
    assert_eq!(
        ::std::mem::size_of::<ITypeInfo2>(),
        8usize,
        concat!("Size of: ", stringify!(ITypeInfo2))
    );
    assert_eq!(
        ::std::mem::align_of::<ITypeInfo2>(),
        8usize,
        concat!("Alignment of ", stringify!(ITypeInfo2))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeInfo2>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeInfo2),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn ITypeInfo2_RemoteGetDocumentation2_Proxy(
        This: *mut ITypeInfo2,
        memid: MEMBERID,
        lcid: LCID,
        refPtrFlags: DWORD,
        pbstrHelpString: *mut BSTR,
        pdwHelpStringContext: *mut DWORD,
        pbstrHelpStringDll: *mut BSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo2_RemoteGetDocumentation2_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub static mut __MIDL_itf_oaidl_0000_0010_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_oaidl_0000_0010_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub const tagSYSKIND_SYS_WIN16: tagSYSKIND = 0;
pub const tagSYSKIND_SYS_WIN32: tagSYSKIND = 1;
pub const tagSYSKIND_SYS_MAC: tagSYSKIND = 2;
pub const tagSYSKIND_SYS_WIN64: tagSYSKIND = 3;
pub type tagSYSKIND = ::std::os::raw::c_int;
pub use self::tagSYSKIND as SYSKIND;
pub const tagLIBFLAGS_LIBFLAG_FRESTRICTED: tagLIBFLAGS = 1;
pub const tagLIBFLAGS_LIBFLAG_FCONTROL: tagLIBFLAGS = 2;
pub const tagLIBFLAGS_LIBFLAG_FHIDDEN: tagLIBFLAGS = 4;
pub const tagLIBFLAGS_LIBFLAG_FHASDISKIMAGE: tagLIBFLAGS = 8;
pub type tagLIBFLAGS = ::std::os::raw::c_int;
pub use self::tagLIBFLAGS as LIBFLAGS;
pub type LPTYPELIB = *mut ITypeLib;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagTLIBATTR {
    pub guid: GUID,
    pub lcid: LCID,
    pub syskind: SYSKIND,
    pub wMajorVerNum: WORD,
    pub wMinorVerNum: WORD,
    pub wLibFlags: WORD,
}
#[test]
fn bindgen_test_layout_tagTLIBATTR() {
    assert_eq!(
        ::std::mem::size_of::<tagTLIBATTR>(),
        32usize,
        concat!("Size of: ", stringify!(tagTLIBATTR))
    );
    assert_eq!(
        ::std::mem::align_of::<tagTLIBATTR>(),
        4usize,
        concat!("Alignment of ", stringify!(tagTLIBATTR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTLIBATTR>())).guid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTLIBATTR),
            "::",
            stringify!(guid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTLIBATTR>())).lcid as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTLIBATTR),
            "::",
            stringify!(lcid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTLIBATTR>())).syskind as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTLIBATTR),
            "::",
            stringify!(syskind)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTLIBATTR>())).wMajorVerNum as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTLIBATTR),
            "::",
            stringify!(wMajorVerNum)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTLIBATTR>())).wMinorVerNum as *const _ as usize },
        26usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTLIBATTR),
            "::",
            stringify!(wMinorVerNum)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagTLIBATTR>())).wLibFlags as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagTLIBATTR),
            "::",
            stringify!(wLibFlags)
        )
    );
}
pub type TLIBATTR = tagTLIBATTR;
pub type LPTLIBATTR = *mut tagTLIBATTR;
extern "C" {
    pub static IID_ITypeLib: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ITypeLibVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeLib,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut ITypeLib) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut ITypeLib) -> ULONG>,
    pub GetTypeInfoCount: ::std::option::Option<unsafe extern "C" fn(This: *mut ITypeLib) -> UINT>,
    pub GetTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeLib,
            index: UINT,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetTypeInfoType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ITypeLib, index: UINT, pTKind: *mut TYPEKIND) -> HRESULT,
    >,
    pub GetTypeInfoOfGuid: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeLib,
            guid: *const GUID,
            ppTinfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetLibAttr: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ITypeLib, ppTLibAttr: *mut *mut TLIBATTR) -> HRESULT,
    >,
    pub GetTypeComp: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ITypeLib, ppTComp: *mut *mut ITypeComp) -> HRESULT,
    >,
    pub GetDocumentation: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeLib,
            index: INT,
            pBstrName: *mut BSTR,
            pBstrDocString: *mut BSTR,
            pdwHelpContext: *mut DWORD,
            pBstrHelpFile: *mut BSTR,
        ) -> HRESULT,
    >,
    pub IsName: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeLib,
            szNameBuf: LPOLESTR,
            lHashVal: ULONG,
            pfName: *mut BOOL,
        ) -> HRESULT,
    >,
    pub FindName: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeLib,
            szNameBuf: LPOLESTR,
            lHashVal: ULONG,
            ppTInfo: *mut *mut ITypeInfo,
            rgMemId: *mut MEMBERID,
            pcFound: *mut USHORT,
        ) -> HRESULT,
    >,
    pub ReleaseTLibAttr:
        ::std::option::Option<unsafe extern "C" fn(This: *mut ITypeLib, pTLibAttr: *mut TLIBATTR)>,
}
#[test]
fn bindgen_test_layout_ITypeLibVtbl() {
    assert_eq!(
        ::std::mem::size_of::<ITypeLibVtbl>(),
        104usize,
        concat!("Size of: ", stringify!(ITypeLibVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<ITypeLibVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(ITypeLibVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLibVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLibVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLibVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLibVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLibVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLibVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLibVtbl>())).GetTypeInfoCount as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLibVtbl),
            "::",
            stringify!(GetTypeInfoCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLibVtbl>())).GetTypeInfo as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLibVtbl),
            "::",
            stringify!(GetTypeInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLibVtbl>())).GetTypeInfoType as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLibVtbl),
            "::",
            stringify!(GetTypeInfoType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLibVtbl>())).GetTypeInfoOfGuid as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLibVtbl),
            "::",
            stringify!(GetTypeInfoOfGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLibVtbl>())).GetLibAttr as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLibVtbl),
            "::",
            stringify!(GetLibAttr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLibVtbl>())).GetTypeComp as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLibVtbl),
            "::",
            stringify!(GetTypeComp)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLibVtbl>())).GetDocumentation as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLibVtbl),
            "::",
            stringify!(GetDocumentation)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLibVtbl>())).IsName as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLibVtbl),
            "::",
            stringify!(IsName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLibVtbl>())).FindName as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLibVtbl),
            "::",
            stringify!(FindName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLibVtbl>())).ReleaseTLibAttr as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLibVtbl),
            "::",
            stringify!(ReleaseTLibAttr)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ITypeLib {
    pub lpVtbl: *mut ITypeLibVtbl,
}
#[test]
fn bindgen_test_layout_ITypeLib() {
    assert_eq!(
        ::std::mem::size_of::<ITypeLib>(),
        8usize,
        concat!("Size of: ", stringify!(ITypeLib))
    );
    assert_eq!(
        ::std::mem::align_of::<ITypeLib>(),
        8usize,
        concat!("Alignment of ", stringify!(ITypeLib))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLib>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLib),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn ITypeLib_RemoteGetTypeInfoCount_Proxy(
        This: *mut ITypeLib,
        pcTInfo: *mut UINT,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeLib_RemoteGetTypeInfoCount_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn ITypeLib_RemoteGetLibAttr_Proxy(
        This: *mut ITypeLib,
        ppTLibAttr: *mut LPTLIBATTR,
        pDummy: *mut CLEANLOCALSTORAGE,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeLib_RemoteGetLibAttr_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn ITypeLib_RemoteGetDocumentation_Proxy(
        This: *mut ITypeLib,
        index: INT,
        refPtrFlags: DWORD,
        pBstrName: *mut BSTR,
        pBstrDocString: *mut BSTR,
        pdwHelpContext: *mut DWORD,
        pBstrHelpFile: *mut BSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeLib_RemoteGetDocumentation_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn ITypeLib_RemoteIsName_Proxy(
        This: *mut ITypeLib,
        szNameBuf: LPOLESTR,
        lHashVal: ULONG,
        pfName: *mut BOOL,
        pBstrLibName: *mut BSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeLib_RemoteIsName_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn ITypeLib_RemoteFindName_Proxy(
        This: *mut ITypeLib,
        szNameBuf: LPOLESTR,
        lHashVal: ULONG,
        ppTInfo: *mut *mut ITypeInfo,
        rgMemId: *mut MEMBERID,
        pcFound: *mut USHORT,
        pBstrLibName: *mut BSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeLib_RemoteFindName_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn ITypeLib_LocalReleaseTLibAttr_Proxy(This: *mut ITypeLib) -> HRESULT;
}
extern "C" {
    pub fn ITypeLib_LocalReleaseTLibAttr_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub static mut __MIDL_itf_oaidl_0000_0011_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_oaidl_0000_0011_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPTYPELIB2 = *mut ITypeLib2;
extern "C" {
    pub static IID_ITypeLib2: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ITypeLib2Vtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeLib2,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut ITypeLib2) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut ITypeLib2) -> ULONG>,
    pub GetTypeInfoCount: ::std::option::Option<unsafe extern "C" fn(This: *mut ITypeLib2) -> UINT>,
    pub GetTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeLib2,
            index: UINT,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetTypeInfoType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ITypeLib2, index: UINT, pTKind: *mut TYPEKIND) -> HRESULT,
    >,
    pub GetTypeInfoOfGuid: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeLib2,
            guid: *const GUID,
            ppTinfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetLibAttr: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ITypeLib2, ppTLibAttr: *mut *mut TLIBATTR) -> HRESULT,
    >,
    pub GetTypeComp: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ITypeLib2, ppTComp: *mut *mut ITypeComp) -> HRESULT,
    >,
    pub GetDocumentation: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeLib2,
            index: INT,
            pBstrName: *mut BSTR,
            pBstrDocString: *mut BSTR,
            pdwHelpContext: *mut DWORD,
            pBstrHelpFile: *mut BSTR,
        ) -> HRESULT,
    >,
    pub IsName: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeLib2,
            szNameBuf: LPOLESTR,
            lHashVal: ULONG,
            pfName: *mut BOOL,
        ) -> HRESULT,
    >,
    pub FindName: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeLib2,
            szNameBuf: LPOLESTR,
            lHashVal: ULONG,
            ppTInfo: *mut *mut ITypeInfo,
            rgMemId: *mut MEMBERID,
            pcFound: *mut USHORT,
        ) -> HRESULT,
    >,
    pub ReleaseTLibAttr:
        ::std::option::Option<unsafe extern "C" fn(This: *mut ITypeLib2, pTLibAttr: *mut TLIBATTR)>,
    pub GetCustData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeLib2,
            guid: *const GUID,
            pVarVal: *mut VARIANT,
        ) -> HRESULT,
    >,
    pub GetLibStatistics: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeLib2,
            pcUniqueNames: *mut ULONG,
            pcchUniqueNames: *mut ULONG,
        ) -> HRESULT,
    >,
    pub GetDocumentation2: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeLib2,
            index: INT,
            lcid: LCID,
            pbstrHelpString: *mut BSTR,
            pdwHelpStringContext: *mut DWORD,
            pbstrHelpStringDll: *mut BSTR,
        ) -> HRESULT,
    >,
    pub GetAllCustData: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ITypeLib2, pCustData: *mut CUSTDATA) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_ITypeLib2Vtbl() {
    assert_eq!(
        ::std::mem::size_of::<ITypeLib2Vtbl>(),
        136usize,
        concat!("Size of: ", stringify!(ITypeLib2Vtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<ITypeLib2Vtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(ITypeLib2Vtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLib2Vtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLib2Vtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLib2Vtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLib2Vtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLib2Vtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLib2Vtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLib2Vtbl>())).GetTypeInfoCount as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLib2Vtbl),
            "::",
            stringify!(GetTypeInfoCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLib2Vtbl>())).GetTypeInfo as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLib2Vtbl),
            "::",
            stringify!(GetTypeInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLib2Vtbl>())).GetTypeInfoType as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLib2Vtbl),
            "::",
            stringify!(GetTypeInfoType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLib2Vtbl>())).GetTypeInfoOfGuid as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLib2Vtbl),
            "::",
            stringify!(GetTypeInfoOfGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLib2Vtbl>())).GetLibAttr as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLib2Vtbl),
            "::",
            stringify!(GetLibAttr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLib2Vtbl>())).GetTypeComp as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLib2Vtbl),
            "::",
            stringify!(GetTypeComp)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLib2Vtbl>())).GetDocumentation as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLib2Vtbl),
            "::",
            stringify!(GetDocumentation)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLib2Vtbl>())).IsName as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLib2Vtbl),
            "::",
            stringify!(IsName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLib2Vtbl>())).FindName as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLib2Vtbl),
            "::",
            stringify!(FindName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLib2Vtbl>())).ReleaseTLibAttr as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLib2Vtbl),
            "::",
            stringify!(ReleaseTLibAttr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLib2Vtbl>())).GetCustData as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLib2Vtbl),
            "::",
            stringify!(GetCustData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLib2Vtbl>())).GetLibStatistics as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLib2Vtbl),
            "::",
            stringify!(GetLibStatistics)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLib2Vtbl>())).GetDocumentation2 as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLib2Vtbl),
            "::",
            stringify!(GetDocumentation2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLib2Vtbl>())).GetAllCustData as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLib2Vtbl),
            "::",
            stringify!(GetAllCustData)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ITypeLib2 {
    pub lpVtbl: *mut ITypeLib2Vtbl,
}
#[test]
fn bindgen_test_layout_ITypeLib2() {
    assert_eq!(
        ::std::mem::size_of::<ITypeLib2>(),
        8usize,
        concat!("Size of: ", stringify!(ITypeLib2))
    );
    assert_eq!(
        ::std::mem::align_of::<ITypeLib2>(),
        8usize,
        concat!("Alignment of ", stringify!(ITypeLib2))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLib2>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLib2),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn ITypeLib2_RemoteGetLibStatistics_Proxy(
        This: *mut ITypeLib2,
        pcUniqueNames: *mut ULONG,
        pcchUniqueNames: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeLib2_RemoteGetLibStatistics_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn ITypeLib2_RemoteGetDocumentation2_Proxy(
        This: *mut ITypeLib2,
        index: INT,
        lcid: LCID,
        refPtrFlags: DWORD,
        pbstrHelpString: *mut BSTR,
        pdwHelpStringContext: *mut DWORD,
        pbstrHelpStringDll: *mut BSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeLib2_RemoteGetDocumentation2_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
pub type LPTYPECHANGEEVENTS = *mut ITypeChangeEvents;
pub const tagCHANGEKIND_CHANGEKIND_ADDMEMBER: tagCHANGEKIND = 0;
pub const tagCHANGEKIND_CHANGEKIND_DELETEMEMBER: tagCHANGEKIND = 1;
pub const tagCHANGEKIND_CHANGEKIND_SETNAMES: tagCHANGEKIND = 2;
pub const tagCHANGEKIND_CHANGEKIND_SETDOCUMENTATION: tagCHANGEKIND = 3;
pub const tagCHANGEKIND_CHANGEKIND_GENERAL: tagCHANGEKIND = 4;
pub const tagCHANGEKIND_CHANGEKIND_INVALIDATE: tagCHANGEKIND = 5;
pub const tagCHANGEKIND_CHANGEKIND_CHANGEFAILED: tagCHANGEKIND = 6;
pub const tagCHANGEKIND_CHANGEKIND_MAX: tagCHANGEKIND = 7;
pub type tagCHANGEKIND = ::std::os::raw::c_int;
pub use self::tagCHANGEKIND as CHANGEKIND;
extern "C" {
    pub static IID_ITypeChangeEvents: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ITypeChangeEventsVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeChangeEvents,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut ITypeChangeEvents) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut ITypeChangeEvents) -> ULONG>,
    pub RequestTypeChange: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeChangeEvents,
            changeKind: CHANGEKIND,
            pTInfoBefore: *mut ITypeInfo,
            pStrName: LPOLESTR,
            pfCancel: *mut INT,
        ) -> HRESULT,
    >,
    pub AfterTypeChange: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeChangeEvents,
            changeKind: CHANGEKIND,
            pTInfoAfter: *mut ITypeInfo,
            pStrName: LPOLESTR,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_ITypeChangeEventsVtbl() {
    assert_eq!(
        ::std::mem::size_of::<ITypeChangeEventsVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(ITypeChangeEventsVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<ITypeChangeEventsVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(ITypeChangeEventsVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITypeChangeEventsVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeChangeEventsVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeChangeEventsVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeChangeEventsVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeChangeEventsVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeChangeEventsVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITypeChangeEventsVtbl>())).RequestTypeChange as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeChangeEventsVtbl),
            "::",
            stringify!(RequestTypeChange)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITypeChangeEventsVtbl>())).AfterTypeChange as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeChangeEventsVtbl),
            "::",
            stringify!(AfterTypeChange)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ITypeChangeEvents {
    pub lpVtbl: *mut ITypeChangeEventsVtbl,
}
#[test]
fn bindgen_test_layout_ITypeChangeEvents() {
    assert_eq!(
        ::std::mem::size_of::<ITypeChangeEvents>(),
        8usize,
        concat!("Size of: ", stringify!(ITypeChangeEvents))
    );
    assert_eq!(
        ::std::mem::align_of::<ITypeChangeEvents>(),
        8usize,
        concat!("Alignment of ", stringify!(ITypeChangeEvents))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeChangeEvents>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeChangeEvents),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPERRORINFO = *mut IErrorInfo;
extern "C" {
    pub static IID_IErrorInfo: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IErrorInfoVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IErrorInfo,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IErrorInfo) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IErrorInfo) -> ULONG>,
    pub GetGUID: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IErrorInfo, pGUID: *mut GUID) -> HRESULT,
    >,
    pub GetSource: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IErrorInfo, pBstrSource: *mut BSTR) -> HRESULT,
    >,
    pub GetDescription: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IErrorInfo, pBstrDescription: *mut BSTR) -> HRESULT,
    >,
    pub GetHelpFile: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IErrorInfo, pBstrHelpFile: *mut BSTR) -> HRESULT,
    >,
    pub GetHelpContext: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IErrorInfo, pdwHelpContext: *mut DWORD) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IErrorInfoVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IErrorInfoVtbl>(),
        64usize,
        concat!("Size of: ", stringify!(IErrorInfoVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IErrorInfoVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IErrorInfoVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IErrorInfoVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IErrorInfoVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IErrorInfoVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IErrorInfoVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IErrorInfoVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IErrorInfoVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IErrorInfoVtbl>())).GetGUID as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IErrorInfoVtbl),
            "::",
            stringify!(GetGUID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IErrorInfoVtbl>())).GetSource as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IErrorInfoVtbl),
            "::",
            stringify!(GetSource)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IErrorInfoVtbl>())).GetDescription as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IErrorInfoVtbl),
            "::",
            stringify!(GetDescription)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IErrorInfoVtbl>())).GetHelpFile as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IErrorInfoVtbl),
            "::",
            stringify!(GetHelpFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IErrorInfoVtbl>())).GetHelpContext as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IErrorInfoVtbl),
            "::",
            stringify!(GetHelpContext)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IErrorInfo {
    pub lpVtbl: *mut IErrorInfoVtbl,
}
#[test]
fn bindgen_test_layout_IErrorInfo() {
    assert_eq!(
        ::std::mem::size_of::<IErrorInfo>(),
        8usize,
        concat!("Size of: ", stringify!(IErrorInfo))
    );
    assert_eq!(
        ::std::mem::align_of::<IErrorInfo>(),
        8usize,
        concat!("Alignment of ", stringify!(IErrorInfo))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IErrorInfo>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IErrorInfo),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPCREATEERRORINFO = *mut ICreateErrorInfo;
extern "C" {
    pub static IID_ICreateErrorInfo: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ICreateErrorInfoVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICreateErrorInfo,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut ICreateErrorInfo) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut ICreateErrorInfo) -> ULONG>,
    pub SetGUID: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateErrorInfo, rguid: *const GUID) -> HRESULT,
    >,
    pub SetSource: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateErrorInfo, szSource: LPOLESTR) -> HRESULT,
    >,
    pub SetDescription: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateErrorInfo, szDescription: LPOLESTR) -> HRESULT,
    >,
    pub SetHelpFile: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateErrorInfo, szHelpFile: LPOLESTR) -> HRESULT,
    >,
    pub SetHelpContext: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICreateErrorInfo, dwHelpContext: DWORD) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_ICreateErrorInfoVtbl() {
    assert_eq!(
        ::std::mem::size_of::<ICreateErrorInfoVtbl>(),
        64usize,
        concat!("Size of: ", stringify!(ICreateErrorInfoVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<ICreateErrorInfoVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(ICreateErrorInfoVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateErrorInfoVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateErrorInfoVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateErrorInfoVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateErrorInfoVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateErrorInfoVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateErrorInfoVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateErrorInfoVtbl>())).SetGUID as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateErrorInfoVtbl),
            "::",
            stringify!(SetGUID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateErrorInfoVtbl>())).SetSource as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateErrorInfoVtbl),
            "::",
            stringify!(SetSource)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateErrorInfoVtbl>())).SetDescription as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateErrorInfoVtbl),
            "::",
            stringify!(SetDescription)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateErrorInfoVtbl>())).SetHelpFile as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateErrorInfoVtbl),
            "::",
            stringify!(SetHelpFile)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICreateErrorInfoVtbl>())).SetHelpContext as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateErrorInfoVtbl),
            "::",
            stringify!(SetHelpContext)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ICreateErrorInfo {
    pub lpVtbl: *mut ICreateErrorInfoVtbl,
}
#[test]
fn bindgen_test_layout_ICreateErrorInfo() {
    assert_eq!(
        ::std::mem::size_of::<ICreateErrorInfo>(),
        8usize,
        concat!("Size of: ", stringify!(ICreateErrorInfo))
    );
    assert_eq!(
        ::std::mem::align_of::<ICreateErrorInfo>(),
        8usize,
        concat!("Alignment of ", stringify!(ICreateErrorInfo))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICreateErrorInfo>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ICreateErrorInfo),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPSUPPORTERRORINFO = *mut ISupportErrorInfo;
extern "C" {
    pub static IID_ISupportErrorInfo: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ISupportErrorInfoVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ISupportErrorInfo,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut ISupportErrorInfo) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut ISupportErrorInfo) -> ULONG>,
    pub InterfaceSupportsErrorInfo: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ISupportErrorInfo, riid: *const IID) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_ISupportErrorInfoVtbl() {
    assert_eq!(
        ::std::mem::size_of::<ISupportErrorInfoVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(ISupportErrorInfoVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<ISupportErrorInfoVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(ISupportErrorInfoVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ISupportErrorInfoVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ISupportErrorInfoVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISupportErrorInfoVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ISupportErrorInfoVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISupportErrorInfoVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ISupportErrorInfoVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ISupportErrorInfoVtbl>())).InterfaceSupportsErrorInfo as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ISupportErrorInfoVtbl),
            "::",
            stringify!(InterfaceSupportsErrorInfo)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ISupportErrorInfo {
    pub lpVtbl: *mut ISupportErrorInfoVtbl,
}
#[test]
fn bindgen_test_layout_ISupportErrorInfo() {
    assert_eq!(
        ::std::mem::size_of::<ISupportErrorInfo>(),
        8usize,
        concat!("Size of: ", stringify!(ISupportErrorInfo))
    );
    assert_eq!(
        ::std::mem::align_of::<ISupportErrorInfo>(),
        8usize,
        concat!("Alignment of ", stringify!(ISupportErrorInfo))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISupportErrorInfo>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ISupportErrorInfo),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_ITypeFactory: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ITypeFactoryVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeFactory,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut ITypeFactory) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut ITypeFactory) -> ULONG>,
    pub CreateFromTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeFactory,
            pTypeInfo: *mut ITypeInfo,
            riid: *const IID,
            ppv: *mut *mut IUnknown,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_ITypeFactoryVtbl() {
    assert_eq!(
        ::std::mem::size_of::<ITypeFactoryVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(ITypeFactoryVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<ITypeFactoryVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(ITypeFactoryVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeFactoryVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeFactoryVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeFactoryVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeFactoryVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeFactoryVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeFactoryVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITypeFactoryVtbl>())).CreateFromTypeInfo as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeFactoryVtbl),
            "::",
            stringify!(CreateFromTypeInfo)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ITypeFactory {
    pub lpVtbl: *mut ITypeFactoryVtbl,
}
#[test]
fn bindgen_test_layout_ITypeFactory() {
    assert_eq!(
        ::std::mem::size_of::<ITypeFactory>(),
        8usize,
        concat!("Size of: ", stringify!(ITypeFactory))
    );
    assert_eq!(
        ::std::mem::align_of::<ITypeFactory>(),
        8usize,
        concat!("Alignment of ", stringify!(ITypeFactory))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeFactory>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeFactory),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_ITypeMarshal: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ITypeMarshalVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeMarshal,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut ITypeMarshal) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut ITypeMarshal) -> ULONG>,
    pub Size: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeMarshal,
            pvType: PVOID,
            dwDestContext: DWORD,
            pvDestContext: PVOID,
            pSize: *mut ULONG,
        ) -> HRESULT,
    >,
    pub Marshal: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeMarshal,
            pvType: PVOID,
            dwDestContext: DWORD,
            pvDestContext: PVOID,
            cbBufferLength: ULONG,
            pBuffer: *mut BYTE,
            pcbWritten: *mut ULONG,
        ) -> HRESULT,
    >,
    pub Unmarshal: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeMarshal,
            pvType: PVOID,
            dwFlags: DWORD,
            cbBufferLength: ULONG,
            pBuffer: *mut BYTE,
            pcbRead: *mut ULONG,
        ) -> HRESULT,
    >,
    pub Free: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ITypeMarshal, pvType: PVOID) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_ITypeMarshalVtbl() {
    assert_eq!(
        ::std::mem::size_of::<ITypeMarshalVtbl>(),
        56usize,
        concat!("Size of: ", stringify!(ITypeMarshalVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<ITypeMarshalVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(ITypeMarshalVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeMarshalVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeMarshalVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeMarshalVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeMarshalVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeMarshalVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeMarshalVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeMarshalVtbl>())).Size as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeMarshalVtbl),
            "::",
            stringify!(Size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeMarshalVtbl>())).Marshal as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeMarshalVtbl),
            "::",
            stringify!(Marshal)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeMarshalVtbl>())).Unmarshal as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeMarshalVtbl),
            "::",
            stringify!(Unmarshal)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeMarshalVtbl>())).Free as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeMarshalVtbl),
            "::",
            stringify!(Free)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ITypeMarshal {
    pub lpVtbl: *mut ITypeMarshalVtbl,
}
#[test]
fn bindgen_test_layout_ITypeMarshal() {
    assert_eq!(
        ::std::mem::size_of::<ITypeMarshal>(),
        8usize,
        concat!("Size of: ", stringify!(ITypeMarshal))
    );
    assert_eq!(
        ::std::mem::align_of::<ITypeMarshal>(),
        8usize,
        concat!("Alignment of ", stringify!(ITypeMarshal))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeMarshal>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeMarshal),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPRECORDINFO = *mut IRecordInfo;
extern "C" {
    pub static IID_IRecordInfo: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IRecordInfoVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRecordInfo,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IRecordInfo) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IRecordInfo) -> ULONG>,
    pub RecordInit: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IRecordInfo, pvNew: PVOID) -> HRESULT,
    >,
    pub RecordClear: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IRecordInfo, pvExisting: PVOID) -> HRESULT,
    >,
    pub RecordCopy: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IRecordInfo, pvExisting: PVOID, pvNew: PVOID) -> HRESULT,
    >,
    pub GetGuid: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IRecordInfo, pguid: *mut GUID) -> HRESULT,
    >,
    pub GetName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IRecordInfo, pbstrName: *mut BSTR) -> HRESULT,
    >,
    pub GetSize: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IRecordInfo, pcbSize: *mut ULONG) -> HRESULT,
    >,
    pub GetTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IRecordInfo, ppTypeInfo: *mut *mut ITypeInfo) -> HRESULT,
    >,
    pub GetField: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRecordInfo,
            pvData: PVOID,
            szFieldName: LPCOLESTR,
            pvarField: *mut VARIANT,
        ) -> HRESULT,
    >,
    pub GetFieldNoCopy: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRecordInfo,
            pvData: PVOID,
            szFieldName: LPCOLESTR,
            pvarField: *mut VARIANT,
            ppvDataCArray: *mut PVOID,
        ) -> HRESULT,
    >,
    pub PutField: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRecordInfo,
            wFlags: ULONG,
            pvData: PVOID,
            szFieldName: LPCOLESTR,
            pvarField: *mut VARIANT,
        ) -> HRESULT,
    >,
    pub PutFieldNoCopy: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRecordInfo,
            wFlags: ULONG,
            pvData: PVOID,
            szFieldName: LPCOLESTR,
            pvarField: *mut VARIANT,
        ) -> HRESULT,
    >,
    pub GetFieldNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRecordInfo,
            pcNames: *mut ULONG,
            rgBstrNames: *mut BSTR,
        ) -> HRESULT,
    >,
    pub IsMatchingType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IRecordInfo, pRecordInfo: *mut IRecordInfo) -> BOOL,
    >,
    pub RecordCreate: ::std::option::Option<unsafe extern "C" fn(This: *mut IRecordInfo) -> PVOID>,
    pub RecordCreateCopy: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IRecordInfo,
            pvSource: PVOID,
            ppvDest: *mut PVOID,
        ) -> HRESULT,
    >,
    pub RecordDestroy: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IRecordInfo, pvRecord: PVOID) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IRecordInfoVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IRecordInfoVtbl>(),
        152usize,
        concat!("Size of: ", stringify!(IRecordInfoVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IRecordInfoVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IRecordInfoVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRecordInfoVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IRecordInfoVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRecordInfoVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IRecordInfoVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRecordInfoVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IRecordInfoVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRecordInfoVtbl>())).RecordInit as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IRecordInfoVtbl),
            "::",
            stringify!(RecordInit)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRecordInfoVtbl>())).RecordClear as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IRecordInfoVtbl),
            "::",
            stringify!(RecordClear)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRecordInfoVtbl>())).RecordCopy as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IRecordInfoVtbl),
            "::",
            stringify!(RecordCopy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRecordInfoVtbl>())).GetGuid as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IRecordInfoVtbl),
            "::",
            stringify!(GetGuid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRecordInfoVtbl>())).GetName as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IRecordInfoVtbl),
            "::",
            stringify!(GetName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRecordInfoVtbl>())).GetSize as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IRecordInfoVtbl),
            "::",
            stringify!(GetSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRecordInfoVtbl>())).GetTypeInfo as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IRecordInfoVtbl),
            "::",
            stringify!(GetTypeInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRecordInfoVtbl>())).GetField as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IRecordInfoVtbl),
            "::",
            stringify!(GetField)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRecordInfoVtbl>())).GetFieldNoCopy as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IRecordInfoVtbl),
            "::",
            stringify!(GetFieldNoCopy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRecordInfoVtbl>())).PutField as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IRecordInfoVtbl),
            "::",
            stringify!(PutField)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRecordInfoVtbl>())).PutFieldNoCopy as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IRecordInfoVtbl),
            "::",
            stringify!(PutFieldNoCopy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRecordInfoVtbl>())).GetFieldNames as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IRecordInfoVtbl),
            "::",
            stringify!(GetFieldNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRecordInfoVtbl>())).IsMatchingType as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(IRecordInfoVtbl),
            "::",
            stringify!(IsMatchingType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRecordInfoVtbl>())).RecordCreate as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(IRecordInfoVtbl),
            "::",
            stringify!(RecordCreate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IRecordInfoVtbl>())).RecordCreateCopy as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(IRecordInfoVtbl),
            "::",
            stringify!(RecordCreateCopy)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRecordInfoVtbl>())).RecordDestroy as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(IRecordInfoVtbl),
            "::",
            stringify!(RecordDestroy)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IRecordInfo {
    pub lpVtbl: *mut IRecordInfoVtbl,
}
#[test]
fn bindgen_test_layout_IRecordInfo() {
    assert_eq!(
        ::std::mem::size_of::<IRecordInfo>(),
        8usize,
        concat!("Size of: ", stringify!(IRecordInfo))
    );
    assert_eq!(
        ::std::mem::align_of::<IRecordInfo>(),
        8usize,
        concat!("Alignment of ", stringify!(IRecordInfo))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IRecordInfo>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IRecordInfo),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPERRORLOG = *mut IErrorLog;
extern "C" {
    pub static IID_IErrorLog: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IErrorLogVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IErrorLog,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IErrorLog) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IErrorLog) -> ULONG>,
    pub AddError: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IErrorLog,
            pszPropName: LPCOLESTR,
            pExcepInfo: *mut EXCEPINFO,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IErrorLogVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IErrorLogVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IErrorLogVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IErrorLogVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IErrorLogVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IErrorLogVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IErrorLogVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IErrorLogVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IErrorLogVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IErrorLogVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IErrorLogVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IErrorLogVtbl>())).AddError as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IErrorLogVtbl),
            "::",
            stringify!(AddError)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IErrorLog {
    pub lpVtbl: *mut IErrorLogVtbl,
}
#[test]
fn bindgen_test_layout_IErrorLog() {
    assert_eq!(
        ::std::mem::size_of::<IErrorLog>(),
        8usize,
        concat!("Size of: ", stringify!(IErrorLog))
    );
    assert_eq!(
        ::std::mem::align_of::<IErrorLog>(),
        8usize,
        concat!("Alignment of ", stringify!(IErrorLog))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IErrorLog>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IErrorLog),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPPROPERTYBAG = *mut IPropertyBag;
extern "C" {
    pub static IID_IPropertyBag: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IPropertyBagVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPropertyBag,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IPropertyBag) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IPropertyBag) -> ULONG>,
    pub Read: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPropertyBag,
            pszPropName: LPCOLESTR,
            pVar: *mut VARIANT,
            pErrorLog: *mut IErrorLog,
        ) -> HRESULT,
    >,
    pub Write: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPropertyBag,
            pszPropName: LPCOLESTR,
            pVar: *mut VARIANT,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IPropertyBagVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IPropertyBagVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IPropertyBagVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IPropertyBagVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IPropertyBagVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPropertyBagVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IPropertyBagVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPropertyBagVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IPropertyBagVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPropertyBagVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IPropertyBagVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPropertyBagVtbl>())).Read as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IPropertyBagVtbl),
            "::",
            stringify!(Read)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPropertyBagVtbl>())).Write as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IPropertyBagVtbl),
            "::",
            stringify!(Write)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IPropertyBag {
    pub lpVtbl: *mut IPropertyBagVtbl,
}
#[test]
fn bindgen_test_layout_IPropertyBag() {
    assert_eq!(
        ::std::mem::size_of::<IPropertyBag>(),
        8usize,
        concat!("Size of: ", stringify!(IPropertyBag))
    );
    assert_eq!(
        ::std::mem::align_of::<IPropertyBag>(),
        8usize,
        concat!("Alignment of ", stringify!(IPropertyBag))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPropertyBag>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IPropertyBag),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IPropertyBag_RemoteRead_Proxy(
        This: *mut IPropertyBag,
        pszPropName: LPCOLESTR,
        pVar: *mut VARIANT,
        pErrorLog: *mut IErrorLog,
        varType: DWORD,
        pUnkObj: *mut IUnknown,
    ) -> HRESULT;
}
extern "C" {
    pub fn IPropertyBag_RemoteRead_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub static IID_ITypeLibRegistrationReader: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ITypeLibRegistrationReaderVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeLibRegistrationReader,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut ITypeLibRegistrationReader) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut ITypeLibRegistrationReader) -> ULONG>,
    pub EnumTypeLibRegistrations: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeLibRegistrationReader,
            ppEnumUnknown: *mut *mut IEnumUnknown,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_ITypeLibRegistrationReaderVtbl() {
    assert_eq!(
        ::std::mem::size_of::<ITypeLibRegistrationReaderVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(ITypeLibRegistrationReaderVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<ITypeLibRegistrationReaderVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(ITypeLibRegistrationReaderVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITypeLibRegistrationReaderVtbl>())).QueryInterface as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLibRegistrationReaderVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITypeLibRegistrationReaderVtbl>())).AddRef as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLibRegistrationReaderVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITypeLibRegistrationReaderVtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLibRegistrationReaderVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITypeLibRegistrationReaderVtbl>())).EnumTypeLibRegistrations
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLibRegistrationReaderVtbl),
            "::",
            stringify!(EnumTypeLibRegistrations)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ITypeLibRegistrationReader {
    pub lpVtbl: *mut ITypeLibRegistrationReaderVtbl,
}
#[test]
fn bindgen_test_layout_ITypeLibRegistrationReader() {
    assert_eq!(
        ::std::mem::size_of::<ITypeLibRegistrationReader>(),
        8usize,
        concat!("Size of: ", stringify!(ITypeLibRegistrationReader))
    );
    assert_eq!(
        ::std::mem::align_of::<ITypeLibRegistrationReader>(),
        8usize,
        concat!("Alignment of ", stringify!(ITypeLibRegistrationReader))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITypeLibRegistrationReader>())).lpVtbl as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLibRegistrationReader),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_ITypeLibRegistration: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ITypeLibRegistrationVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ITypeLibRegistration,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut ITypeLibRegistration) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut ITypeLibRegistration) -> ULONG>,
    pub GetGuid: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ITypeLibRegistration, pGuid: *mut GUID) -> HRESULT,
    >,
    pub GetVersion: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ITypeLibRegistration, pVersion: *mut BSTR) -> HRESULT,
    >,
    pub GetLcid: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ITypeLibRegistration, pLcid: *mut LCID) -> HRESULT,
    >,
    pub GetWin32Path: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ITypeLibRegistration, pWin32Path: *mut BSTR) -> HRESULT,
    >,
    pub GetWin64Path: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ITypeLibRegistration, pWin64Path: *mut BSTR) -> HRESULT,
    >,
    pub GetDisplayName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ITypeLibRegistration, pDisplayName: *mut BSTR) -> HRESULT,
    >,
    pub GetFlags: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ITypeLibRegistration, pFlags: *mut DWORD) -> HRESULT,
    >,
    pub GetHelpDir: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ITypeLibRegistration, pHelpDir: *mut BSTR) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_ITypeLibRegistrationVtbl() {
    assert_eq!(
        ::std::mem::size_of::<ITypeLibRegistrationVtbl>(),
        88usize,
        concat!("Size of: ", stringify!(ITypeLibRegistrationVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<ITypeLibRegistrationVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(ITypeLibRegistrationVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITypeLibRegistrationVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLibRegistrationVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLibRegistrationVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLibRegistrationVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITypeLibRegistrationVtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLibRegistrationVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITypeLibRegistrationVtbl>())).GetGuid as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLibRegistrationVtbl),
            "::",
            stringify!(GetGuid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITypeLibRegistrationVtbl>())).GetVersion as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLibRegistrationVtbl),
            "::",
            stringify!(GetVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITypeLibRegistrationVtbl>())).GetLcid as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLibRegistrationVtbl),
            "::",
            stringify!(GetLcid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITypeLibRegistrationVtbl>())).GetWin32Path as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLibRegistrationVtbl),
            "::",
            stringify!(GetWin32Path)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITypeLibRegistrationVtbl>())).GetWin64Path as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLibRegistrationVtbl),
            "::",
            stringify!(GetWin64Path)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITypeLibRegistrationVtbl>())).GetDisplayName as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLibRegistrationVtbl),
            "::",
            stringify!(GetDisplayName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITypeLibRegistrationVtbl>())).GetFlags as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLibRegistrationVtbl),
            "::",
            stringify!(GetFlags)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ITypeLibRegistrationVtbl>())).GetHelpDir as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLibRegistrationVtbl),
            "::",
            stringify!(GetHelpDir)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ITypeLibRegistration {
    pub lpVtbl: *mut ITypeLibRegistrationVtbl,
}
#[test]
fn bindgen_test_layout_ITypeLibRegistration() {
    assert_eq!(
        ::std::mem::size_of::<ITypeLibRegistration>(),
        8usize,
        concat!("Size of: ", stringify!(ITypeLibRegistration))
    );
    assert_eq!(
        ::std::mem::align_of::<ITypeLibRegistration>(),
        8usize,
        concat!("Alignment of ", stringify!(ITypeLibRegistration))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ITypeLibRegistration>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ITypeLibRegistration),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static CLSID_TypeLibRegistrationReader: CLSID;
}
extern "C" {
    pub static mut __MIDL_itf_oaidl_0000_0023_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_oaidl_0000_0023_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub fn BSTR_UserSize(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut BSTR,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn BSTR_UserMarshal(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut BSTR,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn BSTR_UserUnmarshal(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut BSTR,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn BSTR_UserFree(arg1: *mut ::std::os::raw::c_ulong, arg2: *mut BSTR);
}
extern "C" {
    pub fn CLEANLOCALSTORAGE_UserSize(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut CLEANLOCALSTORAGE,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn CLEANLOCALSTORAGE_UserMarshal(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut CLEANLOCALSTORAGE,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn CLEANLOCALSTORAGE_UserUnmarshal(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut CLEANLOCALSTORAGE,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn CLEANLOCALSTORAGE_UserFree(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut CLEANLOCALSTORAGE,
    );
}
extern "C" {
    pub fn VARIANT_UserSize(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut VARIANT,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn VARIANT_UserMarshal(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut VARIANT,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn VARIANT_UserUnmarshal(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut VARIANT,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn VARIANT_UserFree(arg1: *mut ::std::os::raw::c_ulong, arg2: *mut VARIANT);
}
extern "C" {
    pub fn BSTR_UserSize64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut BSTR,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn BSTR_UserMarshal64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut BSTR,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn BSTR_UserUnmarshal64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut BSTR,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn BSTR_UserFree64(arg1: *mut ::std::os::raw::c_ulong, arg2: *mut BSTR);
}
extern "C" {
    pub fn CLEANLOCALSTORAGE_UserSize64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut CLEANLOCALSTORAGE,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn CLEANLOCALSTORAGE_UserMarshal64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut CLEANLOCALSTORAGE,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn CLEANLOCALSTORAGE_UserUnmarshal64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut CLEANLOCALSTORAGE,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn CLEANLOCALSTORAGE_UserFree64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut CLEANLOCALSTORAGE,
    );
}
extern "C" {
    pub fn VARIANT_UserSize64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut VARIANT,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn VARIANT_UserMarshal64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut VARIANT,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn VARIANT_UserUnmarshal64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut VARIANT,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn VARIANT_UserFree64(arg1: *mut ::std::os::raw::c_ulong, arg2: *mut VARIANT);
}
extern "C" {
    pub fn IDispatch_Invoke_Proxy(
        This: *mut IDispatch,
        dispIdMember: DISPID,
        riid: *const IID,
        lcid: LCID,
        wFlags: WORD,
        pDispParams: *mut DISPPARAMS,
        pVarResult: *mut VARIANT,
        pExcepInfo: *mut EXCEPINFO,
        puArgErr: *mut UINT,
    ) -> HRESULT;
}
extern "C" {
    pub fn IDispatch_Invoke_Stub(
        This: *mut IDispatch,
        dispIdMember: DISPID,
        riid: *const IID,
        lcid: LCID,
        dwFlags: DWORD,
        pDispParams: *mut DISPPARAMS,
        pVarResult: *mut VARIANT,
        pExcepInfo: *mut EXCEPINFO,
        pArgErr: *mut UINT,
        cVarRef: UINT,
        rgVarRefIdx: *mut UINT,
        rgVarRef: *mut VARIANTARG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IEnumVARIANT_Next_Proxy(
        This: *mut IEnumVARIANT,
        celt: ULONG,
        rgVar: *mut VARIANT,
        pCeltFetched: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IEnumVARIANT_Next_Stub(
        This: *mut IEnumVARIANT,
        celt: ULONG,
        rgVar: *mut VARIANT,
        pCeltFetched: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeComp_Bind_Proxy(
        This: *mut ITypeComp,
        szName: LPOLESTR,
        lHashVal: ULONG,
        wFlags: WORD,
        ppTInfo: *mut *mut ITypeInfo,
        pDescKind: *mut DESCKIND,
        pBindPtr: *mut BINDPTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeComp_Bind_Stub(
        This: *mut ITypeComp,
        szName: LPOLESTR,
        lHashVal: ULONG,
        wFlags: WORD,
        ppTInfo: *mut *mut ITypeInfo,
        pDescKind: *mut DESCKIND,
        ppFuncDesc: *mut LPFUNCDESC,
        ppVarDesc: *mut LPVARDESC,
        ppTypeComp: *mut *mut ITypeComp,
        pDummy: *mut CLEANLOCALSTORAGE,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeComp_BindType_Proxy(
        This: *mut ITypeComp,
        szName: LPOLESTR,
        lHashVal: ULONG,
        ppTInfo: *mut *mut ITypeInfo,
        ppTComp: *mut *mut ITypeComp,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeComp_BindType_Stub(
        This: *mut ITypeComp,
        szName: LPOLESTR,
        lHashVal: ULONG,
        ppTInfo: *mut *mut ITypeInfo,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_GetTypeAttr_Proxy(
        This: *mut ITypeInfo,
        ppTypeAttr: *mut *mut TYPEATTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_GetTypeAttr_Stub(
        This: *mut ITypeInfo,
        ppTypeAttr: *mut LPTYPEATTR,
        pDummy: *mut CLEANLOCALSTORAGE,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_GetFuncDesc_Proxy(
        This: *mut ITypeInfo,
        index: UINT,
        ppFuncDesc: *mut *mut FUNCDESC,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_GetFuncDesc_Stub(
        This: *mut ITypeInfo,
        index: UINT,
        ppFuncDesc: *mut LPFUNCDESC,
        pDummy: *mut CLEANLOCALSTORAGE,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_GetVarDesc_Proxy(
        This: *mut ITypeInfo,
        index: UINT,
        ppVarDesc: *mut *mut VARDESC,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_GetVarDesc_Stub(
        This: *mut ITypeInfo,
        index: UINT,
        ppVarDesc: *mut LPVARDESC,
        pDummy: *mut CLEANLOCALSTORAGE,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_GetNames_Proxy(
        This: *mut ITypeInfo,
        memid: MEMBERID,
        rgBstrNames: *mut BSTR,
        cMaxNames: UINT,
        pcNames: *mut UINT,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_GetNames_Stub(
        This: *mut ITypeInfo,
        memid: MEMBERID,
        rgBstrNames: *mut BSTR,
        cMaxNames: UINT,
        pcNames: *mut UINT,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_GetIDsOfNames_Proxy(
        This: *mut ITypeInfo,
        rgszNames: *mut LPOLESTR,
        cNames: UINT,
        pMemId: *mut MEMBERID,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_GetIDsOfNames_Stub(This: *mut ITypeInfo) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_Invoke_Proxy(
        This: *mut ITypeInfo,
        pvInstance: PVOID,
        memid: MEMBERID,
        wFlags: WORD,
        pDispParams: *mut DISPPARAMS,
        pVarResult: *mut VARIANT,
        pExcepInfo: *mut EXCEPINFO,
        puArgErr: *mut UINT,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_Invoke_Stub(This: *mut ITypeInfo) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_GetDocumentation_Proxy(
        This: *mut ITypeInfo,
        memid: MEMBERID,
        pBstrName: *mut BSTR,
        pBstrDocString: *mut BSTR,
        pdwHelpContext: *mut DWORD,
        pBstrHelpFile: *mut BSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_GetDocumentation_Stub(
        This: *mut ITypeInfo,
        memid: MEMBERID,
        refPtrFlags: DWORD,
        pBstrName: *mut BSTR,
        pBstrDocString: *mut BSTR,
        pdwHelpContext: *mut DWORD,
        pBstrHelpFile: *mut BSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_GetDllEntry_Proxy(
        This: *mut ITypeInfo,
        memid: MEMBERID,
        invKind: INVOKEKIND,
        pBstrDllName: *mut BSTR,
        pBstrName: *mut BSTR,
        pwOrdinal: *mut WORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_GetDllEntry_Stub(
        This: *mut ITypeInfo,
        memid: MEMBERID,
        invKind: INVOKEKIND,
        refPtrFlags: DWORD,
        pBstrDllName: *mut BSTR,
        pBstrName: *mut BSTR,
        pwOrdinal: *mut WORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_AddressOfMember_Proxy(
        This: *mut ITypeInfo,
        memid: MEMBERID,
        invKind: INVOKEKIND,
        ppv: *mut PVOID,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_AddressOfMember_Stub(This: *mut ITypeInfo) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_CreateInstance_Proxy(
        This: *mut ITypeInfo,
        pUnkOuter: *mut IUnknown,
        riid: *const IID,
        ppvObj: *mut PVOID,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_CreateInstance_Stub(
        This: *mut ITypeInfo,
        riid: *const IID,
        ppvObj: *mut *mut IUnknown,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_GetContainingTypeLib_Proxy(
        This: *mut ITypeInfo,
        ppTLib: *mut *mut ITypeLib,
        pIndex: *mut UINT,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_GetContainingTypeLib_Stub(
        This: *mut ITypeInfo,
        ppTLib: *mut *mut ITypeLib,
        pIndex: *mut UINT,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_ReleaseTypeAttr_Proxy(This: *mut ITypeInfo, pTypeAttr: *mut TYPEATTR);
}
extern "C" {
    pub fn ITypeInfo_ReleaseTypeAttr_Stub(This: *mut ITypeInfo) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_ReleaseFuncDesc_Proxy(This: *mut ITypeInfo, pFuncDesc: *mut FUNCDESC);
}
extern "C" {
    pub fn ITypeInfo_ReleaseFuncDesc_Stub(This: *mut ITypeInfo) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo_ReleaseVarDesc_Proxy(This: *mut ITypeInfo, pVarDesc: *mut VARDESC);
}
extern "C" {
    pub fn ITypeInfo_ReleaseVarDesc_Stub(This: *mut ITypeInfo) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo2_GetDocumentation2_Proxy(
        This: *mut ITypeInfo2,
        memid: MEMBERID,
        lcid: LCID,
        pbstrHelpString: *mut BSTR,
        pdwHelpStringContext: *mut DWORD,
        pbstrHelpStringDll: *mut BSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeInfo2_GetDocumentation2_Stub(
        This: *mut ITypeInfo2,
        memid: MEMBERID,
        lcid: LCID,
        refPtrFlags: DWORD,
        pbstrHelpString: *mut BSTR,
        pdwHelpStringContext: *mut DWORD,
        pbstrHelpStringDll: *mut BSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeLib_GetTypeInfoCount_Proxy(This: *mut ITypeLib) -> UINT;
}
extern "C" {
    pub fn ITypeLib_GetTypeInfoCount_Stub(This: *mut ITypeLib, pcTInfo: *mut UINT) -> HRESULT;
}
extern "C" {
    pub fn ITypeLib_GetLibAttr_Proxy(
        This: *mut ITypeLib,
        ppTLibAttr: *mut *mut TLIBATTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeLib_GetLibAttr_Stub(
        This: *mut ITypeLib,
        ppTLibAttr: *mut LPTLIBATTR,
        pDummy: *mut CLEANLOCALSTORAGE,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeLib_GetDocumentation_Proxy(
        This: *mut ITypeLib,
        index: INT,
        pBstrName: *mut BSTR,
        pBstrDocString: *mut BSTR,
        pdwHelpContext: *mut DWORD,
        pBstrHelpFile: *mut BSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeLib_GetDocumentation_Stub(
        This: *mut ITypeLib,
        index: INT,
        refPtrFlags: DWORD,
        pBstrName: *mut BSTR,
        pBstrDocString: *mut BSTR,
        pdwHelpContext: *mut DWORD,
        pBstrHelpFile: *mut BSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeLib_IsName_Proxy(
        This: *mut ITypeLib,
        szNameBuf: LPOLESTR,
        lHashVal: ULONG,
        pfName: *mut BOOL,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeLib_IsName_Stub(
        This: *mut ITypeLib,
        szNameBuf: LPOLESTR,
        lHashVal: ULONG,
        pfName: *mut BOOL,
        pBstrLibName: *mut BSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeLib_FindName_Proxy(
        This: *mut ITypeLib,
        szNameBuf: LPOLESTR,
        lHashVal: ULONG,
        ppTInfo: *mut *mut ITypeInfo,
        rgMemId: *mut MEMBERID,
        pcFound: *mut USHORT,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeLib_FindName_Stub(
        This: *mut ITypeLib,
        szNameBuf: LPOLESTR,
        lHashVal: ULONG,
        ppTInfo: *mut *mut ITypeInfo,
        rgMemId: *mut MEMBERID,
        pcFound: *mut USHORT,
        pBstrLibName: *mut BSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeLib_ReleaseTLibAttr_Proxy(This: *mut ITypeLib, pTLibAttr: *mut TLIBATTR);
}
extern "C" {
    pub fn ITypeLib_ReleaseTLibAttr_Stub(This: *mut ITypeLib) -> HRESULT;
}
extern "C" {
    pub fn ITypeLib2_GetLibStatistics_Proxy(
        This: *mut ITypeLib2,
        pcUniqueNames: *mut ULONG,
        pcchUniqueNames: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeLib2_GetLibStatistics_Stub(
        This: *mut ITypeLib2,
        pcUniqueNames: *mut ULONG,
        pcchUniqueNames: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeLib2_GetDocumentation2_Proxy(
        This: *mut ITypeLib2,
        index: INT,
        lcid: LCID,
        pbstrHelpString: *mut BSTR,
        pdwHelpStringContext: *mut DWORD,
        pbstrHelpStringDll: *mut BSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn ITypeLib2_GetDocumentation2_Stub(
        This: *mut ITypeLib2,
        index: INT,
        lcid: LCID,
        refPtrFlags: DWORD,
        pbstrHelpString: *mut BSTR,
        pdwHelpStringContext: *mut DWORD,
        pbstrHelpStringDll: *mut BSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn IPropertyBag_Read_Proxy(
        This: *mut IPropertyBag,
        pszPropName: LPCOLESTR,
        pVar: *mut VARIANT,
        pErrorLog: *mut IErrorLog,
    ) -> HRESULT;
}
extern "C" {
    pub fn IPropertyBag_Read_Stub(
        This: *mut IPropertyBag,
        pszPropName: LPCOLESTR,
        pVar: *mut VARIANT,
        pErrorLog: *mut IErrorLog,
        varType: DWORD,
        pUnkObj: *mut IUnknown,
    ) -> HRESULT;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagVersionedStream {
    pub guidVersion: GUID,
    pub pStream: *mut IStream,
}
#[test]
fn bindgen_test_layout_tagVersionedStream() {
    assert_eq!(
        ::std::mem::size_of::<tagVersionedStream>(),
        24usize,
        concat!("Size of: ", stringify!(tagVersionedStream))
    );
    assert_eq!(
        ::std::mem::align_of::<tagVersionedStream>(),
        8usize,
        concat!("Alignment of ", stringify!(tagVersionedStream))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagVersionedStream>())).guidVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVersionedStream),
            "::",
            stringify!(guidVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagVersionedStream>())).pStream as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagVersionedStream),
            "::",
            stringify!(pStream)
        )
    );
}
pub type VERSIONEDSTREAM = tagVersionedStream;
pub type LPVERSIONEDSTREAM = *mut tagVersionedStream;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCAC {
    pub cElems: ULONG,
    pub pElems: *mut CHAR,
}
#[test]
fn bindgen_test_layout_tagCAC() {
    assert_eq!(
        ::std::mem::size_of::<tagCAC>(),
        16usize,
        concat!("Size of: ", stringify!(tagCAC))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCAC>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCAC))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCAC>())).cElems as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCAC),
            "::",
            stringify!(cElems)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCAC>())).pElems as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCAC),
            "::",
            stringify!(pElems)
        )
    );
}
pub type CAC = tagCAC;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCAUB {
    pub cElems: ULONG,
    pub pElems: *mut UCHAR,
}
#[test]
fn bindgen_test_layout_tagCAUB() {
    assert_eq!(
        ::std::mem::size_of::<tagCAUB>(),
        16usize,
        concat!("Size of: ", stringify!(tagCAUB))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCAUB>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCAUB))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCAUB>())).cElems as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCAUB),
            "::",
            stringify!(cElems)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCAUB>())).pElems as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCAUB),
            "::",
            stringify!(pElems)
        )
    );
}
pub type CAUB = tagCAUB;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCAI {
    pub cElems: ULONG,
    pub pElems: *mut SHORT,
}
#[test]
fn bindgen_test_layout_tagCAI() {
    assert_eq!(
        ::std::mem::size_of::<tagCAI>(),
        16usize,
        concat!("Size of: ", stringify!(tagCAI))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCAI>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCAI))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCAI>())).cElems as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCAI),
            "::",
            stringify!(cElems)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCAI>())).pElems as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCAI),
            "::",
            stringify!(pElems)
        )
    );
}
pub type CAI = tagCAI;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCAUI {
    pub cElems: ULONG,
    pub pElems: *mut USHORT,
}
#[test]
fn bindgen_test_layout_tagCAUI() {
    assert_eq!(
        ::std::mem::size_of::<tagCAUI>(),
        16usize,
        concat!("Size of: ", stringify!(tagCAUI))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCAUI>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCAUI))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCAUI>())).cElems as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCAUI),
            "::",
            stringify!(cElems)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCAUI>())).pElems as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCAUI),
            "::",
            stringify!(pElems)
        )
    );
}
pub type CAUI = tagCAUI;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCAL {
    pub cElems: ULONG,
    pub pElems: *mut LONG,
}
#[test]
fn bindgen_test_layout_tagCAL() {
    assert_eq!(
        ::std::mem::size_of::<tagCAL>(),
        16usize,
        concat!("Size of: ", stringify!(tagCAL))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCAL>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCAL))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCAL>())).cElems as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCAL),
            "::",
            stringify!(cElems)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCAL>())).pElems as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCAL),
            "::",
            stringify!(pElems)
        )
    );
}
pub type CAL = tagCAL;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCAUL {
    pub cElems: ULONG,
    pub pElems: *mut ULONG,
}
#[test]
fn bindgen_test_layout_tagCAUL() {
    assert_eq!(
        ::std::mem::size_of::<tagCAUL>(),
        16usize,
        concat!("Size of: ", stringify!(tagCAUL))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCAUL>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCAUL))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCAUL>())).cElems as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCAUL),
            "::",
            stringify!(cElems)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCAUL>())).pElems as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCAUL),
            "::",
            stringify!(pElems)
        )
    );
}
pub type CAUL = tagCAUL;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCAFLT {
    pub cElems: ULONG,
    pub pElems: *mut FLOAT,
}
#[test]
fn bindgen_test_layout_tagCAFLT() {
    assert_eq!(
        ::std::mem::size_of::<tagCAFLT>(),
        16usize,
        concat!("Size of: ", stringify!(tagCAFLT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCAFLT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCAFLT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCAFLT>())).cElems as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCAFLT),
            "::",
            stringify!(cElems)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCAFLT>())).pElems as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCAFLT),
            "::",
            stringify!(pElems)
        )
    );
}
pub type CAFLT = tagCAFLT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCADBL {
    pub cElems: ULONG,
    pub pElems: *mut DOUBLE,
}
#[test]
fn bindgen_test_layout_tagCADBL() {
    assert_eq!(
        ::std::mem::size_of::<tagCADBL>(),
        16usize,
        concat!("Size of: ", stringify!(tagCADBL))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCADBL>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCADBL))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCADBL>())).cElems as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCADBL),
            "::",
            stringify!(cElems)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCADBL>())).pElems as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCADBL),
            "::",
            stringify!(pElems)
        )
    );
}
pub type CADBL = tagCADBL;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCACY {
    pub cElems: ULONG,
    pub pElems: *mut CY,
}
#[test]
fn bindgen_test_layout_tagCACY() {
    assert_eq!(
        ::std::mem::size_of::<tagCACY>(),
        16usize,
        concat!("Size of: ", stringify!(tagCACY))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCACY>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCACY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCACY>())).cElems as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCACY),
            "::",
            stringify!(cElems)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCACY>())).pElems as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCACY),
            "::",
            stringify!(pElems)
        )
    );
}
pub type CACY = tagCACY;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCADATE {
    pub cElems: ULONG,
    pub pElems: *mut DATE,
}
#[test]
fn bindgen_test_layout_tagCADATE() {
    assert_eq!(
        ::std::mem::size_of::<tagCADATE>(),
        16usize,
        concat!("Size of: ", stringify!(tagCADATE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCADATE>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCADATE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCADATE>())).cElems as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCADATE),
            "::",
            stringify!(cElems)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCADATE>())).pElems as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCADATE),
            "::",
            stringify!(pElems)
        )
    );
}
pub type CADATE = tagCADATE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCABSTR {
    pub cElems: ULONG,
    pub pElems: *mut BSTR,
}
#[test]
fn bindgen_test_layout_tagCABSTR() {
    assert_eq!(
        ::std::mem::size_of::<tagCABSTR>(),
        16usize,
        concat!("Size of: ", stringify!(tagCABSTR))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCABSTR>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCABSTR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCABSTR>())).cElems as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCABSTR),
            "::",
            stringify!(cElems)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCABSTR>())).pElems as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCABSTR),
            "::",
            stringify!(pElems)
        )
    );
}
pub type CABSTR = tagCABSTR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCABSTRBLOB {
    pub cElems: ULONG,
    pub pElems: *mut BSTRBLOB,
}
#[test]
fn bindgen_test_layout_tagCABSTRBLOB() {
    assert_eq!(
        ::std::mem::size_of::<tagCABSTRBLOB>(),
        16usize,
        concat!("Size of: ", stringify!(tagCABSTRBLOB))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCABSTRBLOB>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCABSTRBLOB))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCABSTRBLOB>())).cElems as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCABSTRBLOB),
            "::",
            stringify!(cElems)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCABSTRBLOB>())).pElems as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCABSTRBLOB),
            "::",
            stringify!(pElems)
        )
    );
}
pub type CABSTRBLOB = tagCABSTRBLOB;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCABOOL {
    pub cElems: ULONG,
    pub pElems: *mut VARIANT_BOOL,
}
#[test]
fn bindgen_test_layout_tagCABOOL() {
    assert_eq!(
        ::std::mem::size_of::<tagCABOOL>(),
        16usize,
        concat!("Size of: ", stringify!(tagCABOOL))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCABOOL>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCABOOL))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCABOOL>())).cElems as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCABOOL),
            "::",
            stringify!(cElems)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCABOOL>())).pElems as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCABOOL),
            "::",
            stringify!(pElems)
        )
    );
}
pub type CABOOL = tagCABOOL;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCASCODE {
    pub cElems: ULONG,
    pub pElems: *mut SCODE,
}
#[test]
fn bindgen_test_layout_tagCASCODE() {
    assert_eq!(
        ::std::mem::size_of::<tagCASCODE>(),
        16usize,
        concat!("Size of: ", stringify!(tagCASCODE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCASCODE>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCASCODE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCASCODE>())).cElems as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCASCODE),
            "::",
            stringify!(cElems)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCASCODE>())).pElems as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCASCODE),
            "::",
            stringify!(pElems)
        )
    );
}
pub type CASCODE = tagCASCODE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCAPROPVARIANT {
    pub cElems: ULONG,
    pub pElems: *mut PROPVARIANT,
}
#[test]
fn bindgen_test_layout_tagCAPROPVARIANT() {
    assert_eq!(
        ::std::mem::size_of::<tagCAPROPVARIANT>(),
        16usize,
        concat!("Size of: ", stringify!(tagCAPROPVARIANT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCAPROPVARIANT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCAPROPVARIANT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCAPROPVARIANT>())).cElems as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCAPROPVARIANT),
            "::",
            stringify!(cElems)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCAPROPVARIANT>())).pElems as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCAPROPVARIANT),
            "::",
            stringify!(pElems)
        )
    );
}
pub type CAPROPVARIANT = tagCAPROPVARIANT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCAH {
    pub cElems: ULONG,
    pub pElems: *mut LARGE_INTEGER,
}
#[test]
fn bindgen_test_layout_tagCAH() {
    assert_eq!(
        ::std::mem::size_of::<tagCAH>(),
        16usize,
        concat!("Size of: ", stringify!(tagCAH))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCAH>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCAH))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCAH>())).cElems as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCAH),
            "::",
            stringify!(cElems)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCAH>())).pElems as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCAH),
            "::",
            stringify!(pElems)
        )
    );
}
pub type CAH = tagCAH;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCAUH {
    pub cElems: ULONG,
    pub pElems: *mut ULARGE_INTEGER,
}
#[test]
fn bindgen_test_layout_tagCAUH() {
    assert_eq!(
        ::std::mem::size_of::<tagCAUH>(),
        16usize,
        concat!("Size of: ", stringify!(tagCAUH))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCAUH>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCAUH))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCAUH>())).cElems as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCAUH),
            "::",
            stringify!(cElems)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCAUH>())).pElems as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCAUH),
            "::",
            stringify!(pElems)
        )
    );
}
pub type CAUH = tagCAUH;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCALPSTR {
    pub cElems: ULONG,
    pub pElems: *mut LPSTR,
}
#[test]
fn bindgen_test_layout_tagCALPSTR() {
    assert_eq!(
        ::std::mem::size_of::<tagCALPSTR>(),
        16usize,
        concat!("Size of: ", stringify!(tagCALPSTR))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCALPSTR>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCALPSTR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCALPSTR>())).cElems as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCALPSTR),
            "::",
            stringify!(cElems)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCALPSTR>())).pElems as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCALPSTR),
            "::",
            stringify!(pElems)
        )
    );
}
pub type CALPSTR = tagCALPSTR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCALPWSTR {
    pub cElems: ULONG,
    pub pElems: *mut LPWSTR,
}
#[test]
fn bindgen_test_layout_tagCALPWSTR() {
    assert_eq!(
        ::std::mem::size_of::<tagCALPWSTR>(),
        16usize,
        concat!("Size of: ", stringify!(tagCALPWSTR))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCALPWSTR>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCALPWSTR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCALPWSTR>())).cElems as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCALPWSTR),
            "::",
            stringify!(cElems)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCALPWSTR>())).pElems as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCALPWSTR),
            "::",
            stringify!(pElems)
        )
    );
}
pub type CALPWSTR = tagCALPWSTR;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCAFILETIME {
    pub cElems: ULONG,
    pub pElems: *mut FILETIME,
}
#[test]
fn bindgen_test_layout_tagCAFILETIME() {
    assert_eq!(
        ::std::mem::size_of::<tagCAFILETIME>(),
        16usize,
        concat!("Size of: ", stringify!(tagCAFILETIME))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCAFILETIME>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCAFILETIME))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCAFILETIME>())).cElems as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCAFILETIME),
            "::",
            stringify!(cElems)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCAFILETIME>())).pElems as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCAFILETIME),
            "::",
            stringify!(pElems)
        )
    );
}
pub type CAFILETIME = tagCAFILETIME;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCACLIPDATA {
    pub cElems: ULONG,
    pub pElems: *mut CLIPDATA,
}
#[test]
fn bindgen_test_layout_tagCACLIPDATA() {
    assert_eq!(
        ::std::mem::size_of::<tagCACLIPDATA>(),
        16usize,
        concat!("Size of: ", stringify!(tagCACLIPDATA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCACLIPDATA>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCACLIPDATA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCACLIPDATA>())).cElems as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCACLIPDATA),
            "::",
            stringify!(cElems)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCACLIPDATA>())).pElems as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCACLIPDATA),
            "::",
            stringify!(pElems)
        )
    );
}
pub type CACLIPDATA = tagCACLIPDATA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCACLSID {
    pub cElems: ULONG,
    pub pElems: *mut CLSID,
}
#[test]
fn bindgen_test_layout_tagCACLSID() {
    assert_eq!(
        ::std::mem::size_of::<tagCACLSID>(),
        16usize,
        concat!("Size of: ", stringify!(tagCACLSID))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCACLSID>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCACLSID))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCACLSID>())).cElems as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCACLSID),
            "::",
            stringify!(cElems)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCACLSID>())).pElems as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCACLSID),
            "::",
            stringify!(pElems)
        )
    );
}
pub type CACLSID = tagCACLSID;
pub type PROPVAR_PAD1 = WORD;
pub type PROPVAR_PAD2 = WORD;
pub type PROPVAR_PAD3 = WORD;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagPROPVARIANT {
    pub __bindgen_anon_1: tagPROPVARIANT__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tagPROPVARIANT__bindgen_ty_1 {
    pub __bindgen_anon_1: tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1,
    pub decVal: DECIMAL,
    _bindgen_union_align: [u64; 3usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1 {
    pub vt: VARTYPE,
    pub wReserved1: PROPVAR_PAD1,
    pub wReserved2: PROPVAR_PAD2,
    pub wReserved3: PROPVAR_PAD3,
    pub __bindgen_anon_1: tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
    pub cVal: CHAR,
    pub bVal: UCHAR,
    pub iVal: SHORT,
    pub uiVal: USHORT,
    pub lVal: LONG,
    pub ulVal: ULONG,
    pub intVal: INT,
    pub uintVal: UINT,
    pub hVal: LARGE_INTEGER,
    pub uhVal: ULARGE_INTEGER,
    pub fltVal: FLOAT,
    pub dblVal: DOUBLE,
    pub boolVal: VARIANT_BOOL,
    pub __OBSOLETE__VARIANT_BOOL: VARIANT_BOOL,
    pub scode: SCODE,
    pub cyVal: CY,
    pub date: DATE,
    pub filetime: FILETIME,
    pub puuid: *mut CLSID,
    pub pclipdata: *mut CLIPDATA,
    pub bstrVal: BSTR,
    pub bstrblobVal: BSTRBLOB,
    pub blob: BLOB,
    pub pszVal: LPSTR,
    pub pwszVal: LPWSTR,
    pub punkVal: *mut IUnknown,
    pub pdispVal: *mut IDispatch,
    pub pStream: *mut IStream,
    pub pStorage: *mut IStorage,
    pub pVersionedStream: LPVERSIONEDSTREAM,
    pub parray: LPSAFEARRAY,
    pub cac: CAC,
    pub caub: CAUB,
    pub cai: CAI,
    pub caui: CAUI,
    pub cal: CAL,
    pub caul: CAUL,
    pub cah: CAH,
    pub cauh: CAUH,
    pub caflt: CAFLT,
    pub cadbl: CADBL,
    pub cabool: CABOOL,
    pub cascode: CASCODE,
    pub cacy: CACY,
    pub cadate: CADATE,
    pub cafiletime: CAFILETIME,
    pub cauuid: CACLSID,
    pub caclipdata: CACLIPDATA,
    pub cabstr: CABSTR,
    pub cabstrblob: CABSTRBLOB,
    pub calpstr: CALPSTR,
    pub calpwstr: CALPWSTR,
    pub capropvar: CAPROPVARIANT,
    pub pcVal: *mut CHAR,
    pub pbVal: *mut UCHAR,
    pub piVal: *mut SHORT,
    pub puiVal: *mut USHORT,
    pub plVal: *mut LONG,
    pub pulVal: *mut ULONG,
    pub pintVal: *mut INT,
    pub puintVal: *mut UINT,
    pub pfltVal: *mut FLOAT,
    pub pdblVal: *mut DOUBLE,
    pub pboolVal: *mut VARIANT_BOOL,
    pub pdecVal: *mut DECIMAL,
    pub pscode: *mut SCODE,
    pub pcyVal: *mut CY,
    pub pdate: *mut DATE,
    pub pbstrVal: *mut BSTR,
    pub ppunkVal: *mut *mut IUnknown,
    pub ppdispVal: *mut *mut IDispatch,
    pub pparray: *mut LPSAFEARRAY,
    pub pvarVal: *mut PROPVARIANT,
    _bindgen_union_align: [u64; 2usize],
}
#[test]
fn bindgen_test_layout_tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>(),
        16usize,
        concat!(
            "Size of: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .cVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(cVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .bVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(bVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .iVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(iVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .uiVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(uiVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .lVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(lVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .ulVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(ulVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .intVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(intVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .uintVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(uintVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .hVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(hVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .uhVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(uhVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .fltVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(fltVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .dblVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(dblVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .boolVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(boolVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .__OBSOLETE__VARIANT_BOOL as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(__OBSOLETE__VARIANT_BOOL)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .scode as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(scode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .cyVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(cyVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .date as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(date)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .filetime as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(filetime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .puuid as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(puuid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .pclipdata as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pclipdata)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .bstrVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(bstrVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .bstrblobVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(bstrblobVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .blob as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(blob)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .pszVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pszVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .pwszVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pwszVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .punkVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(punkVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .pdispVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pdispVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .pStream as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pStream)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .pStorage as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pStorage)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .pVersionedStream as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pVersionedStream)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .parray as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(parray)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).cac
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(cac)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .caub as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(caub)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).cai
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(cai)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .caui as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(caui)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).cal
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(cal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .caul as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(caul)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>())).cah
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(cah)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .cauh as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(cauh)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .caflt as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(caflt)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .cadbl as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(cadbl)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .cabool as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(cabool)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .cascode as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(cascode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .cacy as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(cacy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .cadate as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(cadate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .cafiletime as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(cafiletime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .cauuid as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(cauuid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .caclipdata as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(caclipdata)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .cabstr as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(cabstr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .cabstrblob as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(cabstrblob)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .calpstr as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(calpstr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .calpwstr as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(calpwstr)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .capropvar as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(capropvar)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .pcVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pcVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .pbVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pbVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .piVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(piVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .puiVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(puiVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .plVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(plVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .pulVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pulVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .pintVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pintVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .puintVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(puintVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .pfltVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pfltVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .pdblVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pdblVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .pboolVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pboolVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .pdecVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pdecVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .pscode as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pscode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .pcyVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pcyVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .pdate as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pdate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .pbstrVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pbstrVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .ppunkVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(ppunkVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .ppdispVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(ppdispVal)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .pparray as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pparray)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>()))
                .pvarVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(pvarVal)
        )
    );
}
#[test]
fn bindgen_test_layout_tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1>(),
        24usize,
        concat!(
            "Size of: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1>())).vt as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(vt)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1>())).wReserved1
                as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(wReserved1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1>())).wReserved2
                as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(wReserved2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1>())).wReserved3
                as *const _ as usize
        },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(wReserved3)
        )
    );
}
#[test]
fn bindgen_test_layout_tagPROPVARIANT__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagPROPVARIANT__bindgen_ty_1>(),
        24usize,
        concat!("Size of: ", stringify!(tagPROPVARIANT__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tagPROPVARIANT__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(tagPROPVARIANT__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPVARIANT__bindgen_ty_1>())).decVal as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPVARIANT__bindgen_ty_1),
            "::",
            stringify!(decVal)
        )
    );
}
#[test]
fn bindgen_test_layout_tagPROPVARIANT() {
    assert_eq!(
        ::std::mem::size_of::<tagPROPVARIANT>(),
        24usize,
        concat!("Size of: ", stringify!(tagPROPVARIANT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagPROPVARIANT>(),
        8usize,
        concat!("Alignment of ", stringify!(tagPROPVARIANT))
    );
}
pub type LPPROPVARIANT = *mut tagPROPVARIANT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagPROPSPEC {
    pub ulKind: ULONG,
    pub __bindgen_anon_1: tagPROPSPEC__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tagPROPSPEC__bindgen_ty_1 {
    pub propid: PROPID,
    pub lpwstr: LPOLESTR,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout_tagPROPSPEC__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagPROPSPEC__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(tagPROPSPEC__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tagPROPSPEC__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(tagPROPSPEC__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPSPEC__bindgen_ty_1>())).propid as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPSPEC__bindgen_ty_1),
            "::",
            stringify!(propid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagPROPSPEC__bindgen_ty_1>())).lpwstr as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPSPEC__bindgen_ty_1),
            "::",
            stringify!(lpwstr)
        )
    );
}
#[test]
fn bindgen_test_layout_tagPROPSPEC() {
    assert_eq!(
        ::std::mem::size_of::<tagPROPSPEC>(),
        16usize,
        concat!("Size of: ", stringify!(tagPROPSPEC))
    );
    assert_eq!(
        ::std::mem::align_of::<tagPROPSPEC>(),
        8usize,
        concat!("Alignment of ", stringify!(tagPROPSPEC))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPROPSPEC>())).ulKind as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPROPSPEC),
            "::",
            stringify!(ulKind)
        )
    );
}
pub type PROPSPEC = tagPROPSPEC;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagSTATPROPSTG {
    pub lpwstrName: LPOLESTR,
    pub propid: PROPID,
    pub vt: VARTYPE,
}
#[test]
fn bindgen_test_layout_tagSTATPROPSTG() {
    assert_eq!(
        ::std::mem::size_of::<tagSTATPROPSTG>(),
        16usize,
        concat!("Size of: ", stringify!(tagSTATPROPSTG))
    );
    assert_eq!(
        ::std::mem::align_of::<tagSTATPROPSTG>(),
        8usize,
        concat!("Alignment of ", stringify!(tagSTATPROPSTG))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTATPROPSTG>())).lpwstrName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTATPROPSTG),
            "::",
            stringify!(lpwstrName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTATPROPSTG>())).propid as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTATPROPSTG),
            "::",
            stringify!(propid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTATPROPSTG>())).vt as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTATPROPSTG),
            "::",
            stringify!(vt)
        )
    );
}
pub type STATPROPSTG = tagSTATPROPSTG;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagSTATPROPSETSTG {
    pub fmtid: FMTID,
    pub clsid: CLSID,
    pub grfFlags: DWORD,
    pub mtime: FILETIME,
    pub ctime: FILETIME,
    pub atime: FILETIME,
    pub dwOSVersion: DWORD,
}
#[test]
fn bindgen_test_layout_tagSTATPROPSETSTG() {
    assert_eq!(
        ::std::mem::size_of::<tagSTATPROPSETSTG>(),
        64usize,
        concat!("Size of: ", stringify!(tagSTATPROPSETSTG))
    );
    assert_eq!(
        ::std::mem::align_of::<tagSTATPROPSETSTG>(),
        4usize,
        concat!("Alignment of ", stringify!(tagSTATPROPSETSTG))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTATPROPSETSTG>())).fmtid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTATPROPSETSTG),
            "::",
            stringify!(fmtid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTATPROPSETSTG>())).clsid as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTATPROPSETSTG),
            "::",
            stringify!(clsid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTATPROPSETSTG>())).grfFlags as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTATPROPSETSTG),
            "::",
            stringify!(grfFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTATPROPSETSTG>())).mtime as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTATPROPSETSTG),
            "::",
            stringify!(mtime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTATPROPSETSTG>())).ctime as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTATPROPSETSTG),
            "::",
            stringify!(ctime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTATPROPSETSTG>())).atime as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTATPROPSETSTG),
            "::",
            stringify!(atime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTATPROPSETSTG>())).dwOSVersion as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTATPROPSETSTG),
            "::",
            stringify!(dwOSVersion)
        )
    );
}
pub type STATPROPSETSTG = tagSTATPROPSETSTG;
extern "C" {
    pub static mut __MIDL_itf_propidlbase_0000_0000_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_propidlbase_0000_0000_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IPropertyStorage: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IPropertyStorageVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPropertyStorage,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IPropertyStorage) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IPropertyStorage) -> ULONG>,
    pub ReadMultiple: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPropertyStorage,
            cpspec: ULONG,
            rgpspec: *const PROPSPEC,
            rgpropvar: *mut PROPVARIANT,
        ) -> HRESULT,
    >,
    pub WriteMultiple: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPropertyStorage,
            cpspec: ULONG,
            rgpspec: *const PROPSPEC,
            rgpropvar: *const PROPVARIANT,
            propidNameFirst: PROPID,
        ) -> HRESULT,
    >,
    pub DeleteMultiple: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPropertyStorage,
            cpspec: ULONG,
            rgpspec: *const PROPSPEC,
        ) -> HRESULT,
    >,
    pub ReadPropertyNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPropertyStorage,
            cpropid: ULONG,
            rgpropid: *const PROPID,
            rglpwstrName: *mut LPOLESTR,
        ) -> HRESULT,
    >,
    pub WritePropertyNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPropertyStorage,
            cpropid: ULONG,
            rgpropid: *const PROPID,
            rglpwstrName: *const LPOLESTR,
        ) -> HRESULT,
    >,
    pub DeletePropertyNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPropertyStorage,
            cpropid: ULONG,
            rgpropid: *const PROPID,
        ) -> HRESULT,
    >,
    pub Commit: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IPropertyStorage, grfCommitFlags: DWORD) -> HRESULT,
    >,
    pub Revert: ::std::option::Option<unsafe extern "C" fn(This: *mut IPropertyStorage) -> HRESULT>,
    pub Enum: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPropertyStorage,
            ppenum: *mut *mut IEnumSTATPROPSTG,
        ) -> HRESULT,
    >,
    pub SetTimes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPropertyStorage,
            pctime: *const FILETIME,
            patime: *const FILETIME,
            pmtime: *const FILETIME,
        ) -> HRESULT,
    >,
    pub SetClass: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IPropertyStorage, clsid: *const IID) -> HRESULT,
    >,
    pub Stat: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPropertyStorage,
            pstatpsstg: *mut STATPROPSETSTG,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IPropertyStorageVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IPropertyStorageVtbl>(),
        120usize,
        concat!("Size of: ", stringify!(IPropertyStorageVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IPropertyStorageVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IPropertyStorageVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IPropertyStorageVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IPropertyStorageVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPropertyStorageVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IPropertyStorageVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPropertyStorageVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IPropertyStorageVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IPropertyStorageVtbl>())).ReadMultiple as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IPropertyStorageVtbl),
            "::",
            stringify!(ReadMultiple)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IPropertyStorageVtbl>())).WriteMultiple as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IPropertyStorageVtbl),
            "::",
            stringify!(WriteMultiple)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IPropertyStorageVtbl>())).DeleteMultiple as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IPropertyStorageVtbl),
            "::",
            stringify!(DeleteMultiple)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IPropertyStorageVtbl>())).ReadPropertyNames as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IPropertyStorageVtbl),
            "::",
            stringify!(ReadPropertyNames)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IPropertyStorageVtbl>())).WritePropertyNames as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IPropertyStorageVtbl),
            "::",
            stringify!(WritePropertyNames)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IPropertyStorageVtbl>())).DeletePropertyNames as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IPropertyStorageVtbl),
            "::",
            stringify!(DeletePropertyNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPropertyStorageVtbl>())).Commit as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IPropertyStorageVtbl),
            "::",
            stringify!(Commit)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPropertyStorageVtbl>())).Revert as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IPropertyStorageVtbl),
            "::",
            stringify!(Revert)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPropertyStorageVtbl>())).Enum as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IPropertyStorageVtbl),
            "::",
            stringify!(Enum)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPropertyStorageVtbl>())).SetTimes as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IPropertyStorageVtbl),
            "::",
            stringify!(SetTimes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPropertyStorageVtbl>())).SetClass as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IPropertyStorageVtbl),
            "::",
            stringify!(SetClass)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPropertyStorageVtbl>())).Stat as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IPropertyStorageVtbl),
            "::",
            stringify!(Stat)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IPropertyStorage {
    pub lpVtbl: *mut IPropertyStorageVtbl,
}
#[test]
fn bindgen_test_layout_IPropertyStorage() {
    assert_eq!(
        ::std::mem::size_of::<IPropertyStorage>(),
        8usize,
        concat!("Size of: ", stringify!(IPropertyStorage))
    );
    assert_eq!(
        ::std::mem::align_of::<IPropertyStorage>(),
        8usize,
        concat!("Alignment of ", stringify!(IPropertyStorage))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPropertyStorage>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IPropertyStorage),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPPROPERTYSETSTORAGE = *mut IPropertySetStorage;
extern "C" {
    pub static IID_IPropertySetStorage: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IPropertySetStorageVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPropertySetStorage,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IPropertySetStorage) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IPropertySetStorage) -> ULONG>,
    pub Create: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPropertySetStorage,
            rfmtid: *const IID,
            pclsid: *const CLSID,
            grfFlags: DWORD,
            grfMode: DWORD,
            ppprstg: *mut *mut IPropertyStorage,
        ) -> HRESULT,
    >,
    pub Open: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPropertySetStorage,
            rfmtid: *const IID,
            grfMode: DWORD,
            ppprstg: *mut *mut IPropertyStorage,
        ) -> HRESULT,
    >,
    pub Delete: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IPropertySetStorage, rfmtid: *const IID) -> HRESULT,
    >,
    pub Enum: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPropertySetStorage,
            ppenum: *mut *mut IEnumSTATPROPSETSTG,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IPropertySetStorageVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IPropertySetStorageVtbl>(),
        56usize,
        concat!("Size of: ", stringify!(IPropertySetStorageVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IPropertySetStorageVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IPropertySetStorageVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IPropertySetStorageVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IPropertySetStorageVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPropertySetStorageVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IPropertySetStorageVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPropertySetStorageVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IPropertySetStorageVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPropertySetStorageVtbl>())).Create as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IPropertySetStorageVtbl),
            "::",
            stringify!(Create)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPropertySetStorageVtbl>())).Open as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IPropertySetStorageVtbl),
            "::",
            stringify!(Open)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPropertySetStorageVtbl>())).Delete as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IPropertySetStorageVtbl),
            "::",
            stringify!(Delete)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPropertySetStorageVtbl>())).Enum as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IPropertySetStorageVtbl),
            "::",
            stringify!(Enum)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IPropertySetStorage {
    pub lpVtbl: *mut IPropertySetStorageVtbl,
}
#[test]
fn bindgen_test_layout_IPropertySetStorage() {
    assert_eq!(
        ::std::mem::size_of::<IPropertySetStorage>(),
        8usize,
        concat!("Size of: ", stringify!(IPropertySetStorage))
    );
    assert_eq!(
        ::std::mem::align_of::<IPropertySetStorage>(),
        8usize,
        concat!("Alignment of ", stringify!(IPropertySetStorage))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPropertySetStorage>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IPropertySetStorage),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPENUMSTATPROPSTG = *mut IEnumSTATPROPSTG;
extern "C" {
    pub static IID_IEnumSTATPROPSTG: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IEnumSTATPROPSTGVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IEnumSTATPROPSTG,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IEnumSTATPROPSTG) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IEnumSTATPROPSTG) -> ULONG>,
    pub Next: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IEnumSTATPROPSTG,
            celt: ULONG,
            rgelt: *mut STATPROPSTG,
            pceltFetched: *mut ULONG,
        ) -> HRESULT,
    >,
    pub Skip: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IEnumSTATPROPSTG, celt: ULONG) -> HRESULT,
    >,
    pub Reset: ::std::option::Option<unsafe extern "C" fn(This: *mut IEnumSTATPROPSTG) -> HRESULT>,
    pub Clone: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IEnumSTATPROPSTG,
            ppenum: *mut *mut IEnumSTATPROPSTG,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IEnumSTATPROPSTGVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IEnumSTATPROPSTGVtbl>(),
        56usize,
        concat!("Size of: ", stringify!(IEnumSTATPROPSTGVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IEnumSTATPROPSTGVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IEnumSTATPROPSTGVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IEnumSTATPROPSTGVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumSTATPROPSTGVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumSTATPROPSTGVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumSTATPROPSTGVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumSTATPROPSTGVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumSTATPROPSTGVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumSTATPROPSTGVtbl>())).Next as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumSTATPROPSTGVtbl),
            "::",
            stringify!(Next)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumSTATPROPSTGVtbl>())).Skip as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumSTATPROPSTGVtbl),
            "::",
            stringify!(Skip)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumSTATPROPSTGVtbl>())).Reset as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumSTATPROPSTGVtbl),
            "::",
            stringify!(Reset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumSTATPROPSTGVtbl>())).Clone as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumSTATPROPSTGVtbl),
            "::",
            stringify!(Clone)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IEnumSTATPROPSTG {
    pub lpVtbl: *mut IEnumSTATPROPSTGVtbl,
}
#[test]
fn bindgen_test_layout_IEnumSTATPROPSTG() {
    assert_eq!(
        ::std::mem::size_of::<IEnumSTATPROPSTG>(),
        8usize,
        concat!("Size of: ", stringify!(IEnumSTATPROPSTG))
    );
    assert_eq!(
        ::std::mem::align_of::<IEnumSTATPROPSTG>(),
        8usize,
        concat!("Alignment of ", stringify!(IEnumSTATPROPSTG))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumSTATPROPSTG>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumSTATPROPSTG),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IEnumSTATPROPSTG_RemoteNext_Proxy(
        This: *mut IEnumSTATPROPSTG,
        celt: ULONG,
        rgelt: *mut STATPROPSTG,
        pceltFetched: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IEnumSTATPROPSTG_RemoteNext_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
pub type LPENUMSTATPROPSETSTG = *mut IEnumSTATPROPSETSTG;
extern "C" {
    pub static IID_IEnumSTATPROPSETSTG: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IEnumSTATPROPSETSTGVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IEnumSTATPROPSETSTG,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IEnumSTATPROPSETSTG) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IEnumSTATPROPSETSTG) -> ULONG>,
    pub Next: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IEnumSTATPROPSETSTG,
            celt: ULONG,
            rgelt: *mut STATPROPSETSTG,
            pceltFetched: *mut ULONG,
        ) -> HRESULT,
    >,
    pub Skip: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IEnumSTATPROPSETSTG, celt: ULONG) -> HRESULT,
    >,
    pub Reset:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IEnumSTATPROPSETSTG) -> HRESULT>,
    pub Clone: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IEnumSTATPROPSETSTG,
            ppenum: *mut *mut IEnumSTATPROPSETSTG,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IEnumSTATPROPSETSTGVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IEnumSTATPROPSETSTGVtbl>(),
        56usize,
        concat!("Size of: ", stringify!(IEnumSTATPROPSETSTGVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IEnumSTATPROPSETSTGVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IEnumSTATPROPSETSTGVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IEnumSTATPROPSETSTGVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumSTATPROPSETSTGVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumSTATPROPSETSTGVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumSTATPROPSETSTGVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumSTATPROPSETSTGVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumSTATPROPSETSTGVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumSTATPROPSETSTGVtbl>())).Next as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumSTATPROPSETSTGVtbl),
            "::",
            stringify!(Next)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumSTATPROPSETSTGVtbl>())).Skip as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumSTATPROPSETSTGVtbl),
            "::",
            stringify!(Skip)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumSTATPROPSETSTGVtbl>())).Reset as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumSTATPROPSETSTGVtbl),
            "::",
            stringify!(Reset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumSTATPROPSETSTGVtbl>())).Clone as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumSTATPROPSETSTGVtbl),
            "::",
            stringify!(Clone)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IEnumSTATPROPSETSTG {
    pub lpVtbl: *mut IEnumSTATPROPSETSTGVtbl,
}
#[test]
fn bindgen_test_layout_IEnumSTATPROPSETSTG() {
    assert_eq!(
        ::std::mem::size_of::<IEnumSTATPROPSETSTG>(),
        8usize,
        concat!("Size of: ", stringify!(IEnumSTATPROPSETSTG))
    );
    assert_eq!(
        ::std::mem::align_of::<IEnumSTATPROPSETSTG>(),
        8usize,
        concat!("Alignment of ", stringify!(IEnumSTATPROPSETSTG))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumSTATPROPSETSTG>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumSTATPROPSETSTG),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IEnumSTATPROPSETSTG_RemoteNext_Proxy(
        This: *mut IEnumSTATPROPSETSTG,
        celt: ULONG,
        rgelt: *mut STATPROPSETSTG,
        pceltFetched: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IEnumSTATPROPSETSTG_RemoteNext_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
pub type LPPROPERTYSTORAGE = *mut IPropertyStorage;
extern "C" {
    pub static mut __MIDL_itf_propidlbase_0000_0004_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_propidlbase_0000_0004_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub fn LPSAFEARRAY_UserSize(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut LPSAFEARRAY,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn LPSAFEARRAY_UserMarshal(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut LPSAFEARRAY,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn LPSAFEARRAY_UserUnmarshal(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut LPSAFEARRAY,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn LPSAFEARRAY_UserFree(arg1: *mut ::std::os::raw::c_ulong, arg2: *mut LPSAFEARRAY);
}
extern "C" {
    pub fn LPSAFEARRAY_UserSize64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut LPSAFEARRAY,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn LPSAFEARRAY_UserMarshal64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut LPSAFEARRAY,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn LPSAFEARRAY_UserUnmarshal64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut LPSAFEARRAY,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn LPSAFEARRAY_UserFree64(arg1: *mut ::std::os::raw::c_ulong, arg2: *mut LPSAFEARRAY);
}
extern "C" {
    pub fn IEnumSTATPROPSTG_Next_Proxy(
        This: *mut IEnumSTATPROPSTG,
        celt: ULONG,
        rgelt: *mut STATPROPSTG,
        pceltFetched: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IEnumSTATPROPSTG_Next_Stub(
        This: *mut IEnumSTATPROPSTG,
        celt: ULONG,
        rgelt: *mut STATPROPSTG,
        pceltFetched: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IEnumSTATPROPSETSTG_Next_Proxy(
        This: *mut IEnumSTATPROPSETSTG,
        celt: ULONG,
        rgelt: *mut STATPROPSETSTG,
        pceltFetched: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IEnumSTATPROPSETSTG_Next_Stub(
        This: *mut IEnumSTATPROPSETSTG,
        celt: ULONG,
        rgelt: *mut STATPROPSETSTG,
        pceltFetched: *mut ULONG,
    ) -> HRESULT;
}
pub type STGFMT = DWORD;
extern "C" {
    pub fn StgCreateDocfile(
        pwcsName: *const WCHAR,
        grfMode: DWORD,
        reserved: DWORD,
        ppstgOpen: *mut *mut IStorage,
    ) -> HRESULT;
}
extern "C" {
    pub fn StgCreateDocfileOnILockBytes(
        plkbyt: *mut ILockBytes,
        grfMode: DWORD,
        reserved: DWORD,
        ppstgOpen: *mut *mut IStorage,
    ) -> HRESULT;
}
extern "C" {
    pub fn StgOpenStorage(
        pwcsName: *const WCHAR,
        pstgPriority: *mut IStorage,
        grfMode: DWORD,
        snbExclude: SNB,
        reserved: DWORD,
        ppstgOpen: *mut *mut IStorage,
    ) -> HRESULT;
}
extern "C" {
    pub fn StgOpenStorageOnILockBytes(
        plkbyt: *mut ILockBytes,
        pstgPriority: *mut IStorage,
        grfMode: DWORD,
        snbExclude: SNB,
        reserved: DWORD,
        ppstgOpen: *mut *mut IStorage,
    ) -> HRESULT;
}
extern "C" {
    pub fn StgIsStorageFile(pwcsName: *const WCHAR) -> HRESULT;
}
extern "C" {
    pub fn StgIsStorageILockBytes(plkbyt: *mut ILockBytes) -> HRESULT;
}
extern "C" {
    pub fn StgSetTimes(
        lpszName: *const WCHAR,
        pctime: *const FILETIME,
        patime: *const FILETIME,
        pmtime: *const FILETIME,
    ) -> HRESULT;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagSTGOPTIONS {
    pub usVersion: USHORT,
    pub reserved: USHORT,
    pub ulSectorSize: ULONG,
    pub pwcsTemplateFile: *const WCHAR,
}
#[test]
fn bindgen_test_layout_tagSTGOPTIONS() {
    assert_eq!(
        ::std::mem::size_of::<tagSTGOPTIONS>(),
        16usize,
        concat!("Size of: ", stringify!(tagSTGOPTIONS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagSTGOPTIONS>(),
        8usize,
        concat!("Alignment of ", stringify!(tagSTGOPTIONS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTGOPTIONS>())).usVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTGOPTIONS),
            "::",
            stringify!(usVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTGOPTIONS>())).reserved as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTGOPTIONS),
            "::",
            stringify!(reserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTGOPTIONS>())).ulSectorSize as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTGOPTIONS),
            "::",
            stringify!(ulSectorSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTGOPTIONS>())).pwcsTemplateFile as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTGOPTIONS),
            "::",
            stringify!(pwcsTemplateFile)
        )
    );
}
pub type STGOPTIONS = tagSTGOPTIONS;
extern "C" {
    pub fn StgCreateStorageEx(
        pwcsName: *const WCHAR,
        grfMode: DWORD,
        stgfmt: DWORD,
        grfAttrs: DWORD,
        pStgOptions: *mut STGOPTIONS,
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        riid: *const IID,
        ppObjectOpen: *mut *mut ::std::os::raw::c_void,
    ) -> HRESULT;
}
extern "C" {
    pub fn StgOpenStorageEx(
        pwcsName: *const WCHAR,
        grfMode: DWORD,
        stgfmt: DWORD,
        grfAttrs: DWORD,
        pStgOptions: *mut STGOPTIONS,
        pSecurityDescriptor: PSECURITY_DESCRIPTOR,
        riid: *const IID,
        ppObjectOpen: *mut *mut ::std::os::raw::c_void,
    ) -> HRESULT;
}
extern "C" {
    pub fn StgCreatePropStg(
        pUnk: *mut IUnknown,
        fmtid: *const IID,
        pclsid: *const CLSID,
        grfFlags: DWORD,
        dwReserved: DWORD,
        ppPropStg: *mut *mut IPropertyStorage,
    ) -> HRESULT;
}
extern "C" {
    pub fn StgOpenPropStg(
        pUnk: *mut IUnknown,
        fmtid: *const IID,
        grfFlags: DWORD,
        dwReserved: DWORD,
        ppPropStg: *mut *mut IPropertyStorage,
    ) -> HRESULT;
}
extern "C" {
    pub fn StgCreatePropSetStg(
        pStorage: *mut IStorage,
        dwReserved: DWORD,
        ppPropSetStg: *mut *mut IPropertySetStorage,
    ) -> HRESULT;
}
extern "C" {
    pub fn FmtIdToPropStgName(pfmtid: *const FMTID, oszName: LPOLESTR) -> HRESULT;
}
extern "C" {
    pub fn PropStgNameToFmtId(oszName: LPOLESTR, pfmtid: *mut FMTID) -> HRESULT;
}
extern "C" {
    pub fn ReadClassStg(pStg: LPSTORAGE, pclsid: *mut CLSID) -> HRESULT;
}
extern "C" {
    pub fn WriteClassStg(pStg: LPSTORAGE, rclsid: *const IID) -> HRESULT;
}
extern "C" {
    pub fn ReadClassStm(pStm: LPSTREAM, pclsid: *mut CLSID) -> HRESULT;
}
extern "C" {
    pub fn WriteClassStm(pStm: LPSTREAM, rclsid: *const IID) -> HRESULT;
}
extern "C" {
    pub fn GetHGlobalFromILockBytes(plkbyt: LPLOCKBYTES, phglobal: *mut HGLOBAL) -> HRESULT;
}
extern "C" {
    pub fn CreateILockBytesOnHGlobal(
        hGlobal: HGLOBAL,
        fDeleteOnRelease: BOOL,
        pplkbyt: *mut LPLOCKBYTES,
    ) -> HRESULT;
}
extern "C" {
    pub fn GetConvertStg(pStg: LPSTORAGE) -> HRESULT;
}
pub const tagCOINIT_COINIT_APARTMENTTHREADED: tagCOINIT = 2;
pub const tagCOINIT_COINIT_MULTITHREADED: tagCOINIT = 0;
pub const tagCOINIT_COINIT_DISABLE_OLE1DDE: tagCOINIT = 4;
pub const tagCOINIT_COINIT_SPEED_OVER_MEMORY: tagCOINIT = 8;
pub type tagCOINIT = ::std::os::raw::c_int;
pub use self::tagCOINIT as COINIT;
extern "C" {
    pub fn CoBuildVersion() -> DWORD;
}
extern "C" {
    pub fn CoInitialize(pvReserved: LPVOID) -> HRESULT;
}
extern "C" {
    pub fn CoRegisterMallocSpy(pMallocSpy: LPMALLOCSPY) -> HRESULT;
}
extern "C" {
    pub fn CoRevokeMallocSpy() -> HRESULT;
}
extern "C" {
    pub fn CoCreateStandardMalloc(memctx: DWORD, ppMalloc: *mut *mut IMalloc) -> HRESULT;
}
extern "C" {
    pub fn CoRegisterInitializeSpy(
        pSpy: *mut IInitializeSpy,
        puliCookie: *mut ULARGE_INTEGER,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoRevokeInitializeSpy(uliCookie: ULARGE_INTEGER) -> HRESULT;
}
pub const tagCOMSD_SD_LAUNCHPERMISSIONS: tagCOMSD = 0;
pub const tagCOMSD_SD_ACCESSPERMISSIONS: tagCOMSD = 1;
pub const tagCOMSD_SD_LAUNCHRESTRICTIONS: tagCOMSD = 2;
pub const tagCOMSD_SD_ACCESSRESTRICTIONS: tagCOMSD = 3;
pub type tagCOMSD = ::std::os::raw::c_int;
pub use self::tagCOMSD as COMSD;
extern "C" {
    pub fn CoGetSystemSecurityPermissions(
        comSDType: COMSD,
        ppSD: *mut PSECURITY_DESCRIPTOR,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoLoadLibrary(lpszLibName: LPOLESTR, bAutoFree: BOOL) -> HINSTANCE;
}
extern "C" {
    pub fn CoFreeLibrary(hInst: HINSTANCE);
}
extern "C" {
    pub fn CoFreeAllLibraries();
}
extern "C" {
    pub fn CoGetInstanceFromFile(
        pServerInfo: *mut COSERVERINFO,
        pClsid: *mut CLSID,
        punkOuter: *mut IUnknown,
        dwClsCtx: DWORD,
        grfMode: DWORD,
        pwszName: *mut OLECHAR,
        dwCount: DWORD,
        pResults: *mut MULTI_QI,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoGetInstanceFromIStorage(
        pServerInfo: *mut COSERVERINFO,
        pClsid: *mut CLSID,
        punkOuter: *mut IUnknown,
        dwClsCtx: DWORD,
        pstg: *mut IStorage,
        dwCount: DWORD,
        pResults: *mut MULTI_QI,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoAllowSetForegroundWindow(pUnk: *mut IUnknown, lpvReserved: LPVOID) -> HRESULT;
}
extern "C" {
    pub fn DcomChannelSetHResult(
        pvReserved: LPVOID,
        pulReserved: *mut ULONG,
        appsHR: HRESULT,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoIsOle1Class(rclsid: *const IID) -> BOOL;
}
extern "C" {
    pub fn CoFileTimeToDosDateTime(
        lpFileTime: *mut FILETIME,
        lpDosDate: LPWORD,
        lpDosTime: LPWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn CoDosDateTimeToFileTime(
        nDosDate: WORD,
        nDosTime: WORD,
        lpFileTime: *mut FILETIME,
    ) -> BOOL;
}
extern "C" {
    pub fn CoRegisterMessageFilter(
        lpMessageFilter: LPMESSAGEFILTER,
        lplpMessageFilter: *mut LPMESSAGEFILTER,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoRegisterChannelHook(
        ExtensionUuid: *const GUID,
        pChannelHook: *mut IChannelHook,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoTreatAsClass(clsidOld: *const IID, clsidNew: *const IID) -> HRESULT;
}
extern "C" {
    pub fn CreateDataAdviseHolder(ppDAHolder: *mut LPDATAADVISEHOLDER) -> HRESULT;
}
extern "C" {
    pub fn CreateDataCache(
        pUnkOuter: LPUNKNOWN,
        rclsid: *const IID,
        iid: *const IID,
        ppv: *mut LPVOID,
    ) -> HRESULT;
}
extern "C" {
    pub fn StgOpenAsyncDocfileOnIFillLockBytes(
        pflb: *mut IFillLockBytes,
        grfMode: DWORD,
        asyncFlags: DWORD,
        ppstgOpen: *mut *mut IStorage,
    ) -> HRESULT;
}
extern "C" {
    pub fn StgGetIFillLockBytesOnILockBytes(
        pilb: *mut ILockBytes,
        ppflb: *mut *mut IFillLockBytes,
    ) -> HRESULT;
}
extern "C" {
    pub fn StgGetIFillLockBytesOnFile(
        pwcsName: *const OLECHAR,
        ppflb: *mut *mut IFillLockBytes,
    ) -> HRESULT;
}
extern "C" {
    pub fn StgOpenLayoutDocfile(
        pwcsDfName: *const OLECHAR,
        grfMode: DWORD,
        reserved: DWORD,
        ppstgOpen: *mut *mut IStorage,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoInstall(
        pbc: *mut IBindCtx,
        dwFlags: DWORD,
        pClassSpec: *mut uCLSSPEC,
        pQuery: *mut QUERYCONTEXT,
        pszCodeBase: LPWSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn BindMoniker(
        pmk: LPMONIKER,
        grfOpt: DWORD,
        iidResult: *const IID,
        ppvResult: *mut LPVOID,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoGetObject(
        pszName: LPCWSTR,
        pBindOptions: *mut BIND_OPTS,
        riid: *const IID,
        ppv: *mut *mut ::std::os::raw::c_void,
    ) -> HRESULT;
}
extern "C" {
    pub fn MkParseDisplayName(
        pbc: LPBC,
        szUserName: LPCOLESTR,
        pchEaten: *mut ULONG,
        ppmk: *mut LPMONIKER,
    ) -> HRESULT;
}
extern "C" {
    pub fn MonikerRelativePathTo(
        pmkSrc: LPMONIKER,
        pmkDest: LPMONIKER,
        ppmkRelPath: *mut LPMONIKER,
        dwReserved: BOOL,
    ) -> HRESULT;
}
extern "C" {
    pub fn MonikerCommonPrefixWith(
        pmkThis: LPMONIKER,
        pmkOther: LPMONIKER,
        ppmkCommon: *mut LPMONIKER,
    ) -> HRESULT;
}
extern "C" {
    pub fn CreateBindCtx(reserved: DWORD, ppbc: *mut LPBC) -> HRESULT;
}
extern "C" {
    pub fn CreateGenericComposite(
        pmkFirst: LPMONIKER,
        pmkRest: LPMONIKER,
        ppmkComposite: *mut LPMONIKER,
    ) -> HRESULT;
}
extern "C" {
    pub fn GetClassFile(szFilename: LPCOLESTR, pclsid: *mut CLSID) -> HRESULT;
}
extern "C" {
    pub fn CreateClassMoniker(rclsid: *const IID, ppmk: *mut LPMONIKER) -> HRESULT;
}
extern "C" {
    pub fn CreateFileMoniker(lpszPathName: LPCOLESTR, ppmk: *mut LPMONIKER) -> HRESULT;
}
extern "C" {
    pub fn CreateItemMoniker(
        lpszDelim: LPCOLESTR,
        lpszItem: LPCOLESTR,
        ppmk: *mut LPMONIKER,
    ) -> HRESULT;
}
extern "C" {
    pub fn CreateAntiMoniker(ppmk: *mut LPMONIKER) -> HRESULT;
}
extern "C" {
    pub fn CreatePointerMoniker(punk: LPUNKNOWN, ppmk: *mut LPMONIKER) -> HRESULT;
}
extern "C" {
    pub fn CreateObjrefMoniker(punk: LPUNKNOWN, ppmk: *mut LPMONIKER) -> HRESULT;
}
extern "C" {
    pub fn GetRunningObjectTable(reserved: DWORD, pprot: *mut LPRUNNINGOBJECTTABLE) -> HRESULT;
}
extern "C" {
    pub static mut __MIDL_itf_oleidl_0000_0000_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_oleidl_0000_0000_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPOLEADVISEHOLDER = *mut IOleAdviseHolder;
extern "C" {
    pub static IID_IOleAdviseHolder: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IOleAdviseHolderVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleAdviseHolder,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IOleAdviseHolder) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IOleAdviseHolder) -> ULONG>,
    pub Advise: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleAdviseHolder,
            pAdvise: *mut IAdviseSink,
            pdwConnection: *mut DWORD,
        ) -> HRESULT,
    >,
    pub Unadvise: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleAdviseHolder, dwConnection: DWORD) -> HRESULT,
    >,
    pub EnumAdvise: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleAdviseHolder,
            ppenumAdvise: *mut *mut IEnumSTATDATA,
        ) -> HRESULT,
    >,
    pub SendOnRename: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleAdviseHolder, pmk: *mut IMoniker) -> HRESULT,
    >,
    pub SendOnSave:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IOleAdviseHolder) -> HRESULT>,
    pub SendOnClose:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IOleAdviseHolder) -> HRESULT>,
}
#[test]
fn bindgen_test_layout_IOleAdviseHolderVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IOleAdviseHolderVtbl>(),
        72usize,
        concat!("Size of: ", stringify!(IOleAdviseHolderVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IOleAdviseHolderVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IOleAdviseHolderVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleAdviseHolderVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleAdviseHolderVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleAdviseHolderVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleAdviseHolderVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleAdviseHolderVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleAdviseHolderVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleAdviseHolderVtbl>())).Advise as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleAdviseHolderVtbl),
            "::",
            stringify!(Advise)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleAdviseHolderVtbl>())).Unadvise as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleAdviseHolderVtbl),
            "::",
            stringify!(Unadvise)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleAdviseHolderVtbl>())).EnumAdvise as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleAdviseHolderVtbl),
            "::",
            stringify!(EnumAdvise)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleAdviseHolderVtbl>())).SendOnRename as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleAdviseHolderVtbl),
            "::",
            stringify!(SendOnRename)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleAdviseHolderVtbl>())).SendOnSave as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleAdviseHolderVtbl),
            "::",
            stringify!(SendOnSave)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleAdviseHolderVtbl>())).SendOnClose as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleAdviseHolderVtbl),
            "::",
            stringify!(SendOnClose)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IOleAdviseHolder {
    pub lpVtbl: *mut IOleAdviseHolderVtbl,
}
#[test]
fn bindgen_test_layout_IOleAdviseHolder() {
    assert_eq!(
        ::std::mem::size_of::<IOleAdviseHolder>(),
        8usize,
        concat!("Size of: ", stringify!(IOleAdviseHolder))
    );
    assert_eq!(
        ::std::mem::align_of::<IOleAdviseHolder>(),
        8usize,
        concat!("Alignment of ", stringify!(IOleAdviseHolder))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleAdviseHolder>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleAdviseHolder),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_oleidl_0000_0001_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_oleidl_0000_0001_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPOLECACHE = *mut IOleCache;
extern "C" {
    pub static IID_IOleCache: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IOleCacheVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleCache,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IOleCache) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IOleCache) -> ULONG>,
    pub Cache: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleCache,
            pformatetc: *mut FORMATETC,
            advf: DWORD,
            pdwConnection: *mut DWORD,
        ) -> HRESULT,
    >,
    pub Uncache: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleCache, dwConnection: DWORD) -> HRESULT,
    >,
    pub EnumCache: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleCache,
            ppenumSTATDATA: *mut *mut IEnumSTATDATA,
        ) -> HRESULT,
    >,
    pub InitCache: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleCache, pDataObject: *mut IDataObject) -> HRESULT,
    >,
    pub SetData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleCache,
            pformatetc: *mut FORMATETC,
            pmedium: *mut STGMEDIUM,
            fRelease: BOOL,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IOleCacheVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IOleCacheVtbl>(),
        64usize,
        concat!("Size of: ", stringify!(IOleCacheVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IOleCacheVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IOleCacheVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleCacheVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleCacheVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleCacheVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleCacheVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleCacheVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleCacheVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleCacheVtbl>())).Cache as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleCacheVtbl),
            "::",
            stringify!(Cache)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleCacheVtbl>())).Uncache as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleCacheVtbl),
            "::",
            stringify!(Uncache)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleCacheVtbl>())).EnumCache as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleCacheVtbl),
            "::",
            stringify!(EnumCache)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleCacheVtbl>())).InitCache as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleCacheVtbl),
            "::",
            stringify!(InitCache)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleCacheVtbl>())).SetData as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleCacheVtbl),
            "::",
            stringify!(SetData)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IOleCache {
    pub lpVtbl: *mut IOleCacheVtbl,
}
#[test]
fn bindgen_test_layout_IOleCache() {
    assert_eq!(
        ::std::mem::size_of::<IOleCache>(),
        8usize,
        concat!("Size of: ", stringify!(IOleCache))
    );
    assert_eq!(
        ::std::mem::align_of::<IOleCache>(),
        8usize,
        concat!("Alignment of ", stringify!(IOleCache))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleCache>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleCache),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPOLECACHE2 = *mut IOleCache2;
pub const tagDISCARDCACHE_DISCARDCACHE_SAVEIFDIRTY: tagDISCARDCACHE = 0;
pub const tagDISCARDCACHE_DISCARDCACHE_NOSAVE: tagDISCARDCACHE = 1;
pub type tagDISCARDCACHE = ::std::os::raw::c_int;
pub use self::tagDISCARDCACHE as DISCARDCACHE;
extern "C" {
    pub static IID_IOleCache2: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IOleCache2Vtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleCache2,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IOleCache2) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IOleCache2) -> ULONG>,
    pub Cache: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleCache2,
            pformatetc: *mut FORMATETC,
            advf: DWORD,
            pdwConnection: *mut DWORD,
        ) -> HRESULT,
    >,
    pub Uncache: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleCache2, dwConnection: DWORD) -> HRESULT,
    >,
    pub EnumCache: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleCache2,
            ppenumSTATDATA: *mut *mut IEnumSTATDATA,
        ) -> HRESULT,
    >,
    pub InitCache: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleCache2, pDataObject: *mut IDataObject) -> HRESULT,
    >,
    pub SetData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleCache2,
            pformatetc: *mut FORMATETC,
            pmedium: *mut STGMEDIUM,
            fRelease: BOOL,
        ) -> HRESULT,
    >,
    pub UpdateCache: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleCache2,
            pDataObject: LPDATAOBJECT,
            grfUpdf: DWORD,
            pReserved: LPVOID,
        ) -> HRESULT,
    >,
    pub DiscardCache: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleCache2, dwDiscardOptions: DWORD) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IOleCache2Vtbl() {
    assert_eq!(
        ::std::mem::size_of::<IOleCache2Vtbl>(),
        80usize,
        concat!("Size of: ", stringify!(IOleCache2Vtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IOleCache2Vtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IOleCache2Vtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleCache2Vtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleCache2Vtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleCache2Vtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleCache2Vtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleCache2Vtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleCache2Vtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleCache2Vtbl>())).Cache as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleCache2Vtbl),
            "::",
            stringify!(Cache)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleCache2Vtbl>())).Uncache as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleCache2Vtbl),
            "::",
            stringify!(Uncache)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleCache2Vtbl>())).EnumCache as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleCache2Vtbl),
            "::",
            stringify!(EnumCache)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleCache2Vtbl>())).InitCache as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleCache2Vtbl),
            "::",
            stringify!(InitCache)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleCache2Vtbl>())).SetData as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleCache2Vtbl),
            "::",
            stringify!(SetData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleCache2Vtbl>())).UpdateCache as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleCache2Vtbl),
            "::",
            stringify!(UpdateCache)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleCache2Vtbl>())).DiscardCache as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleCache2Vtbl),
            "::",
            stringify!(DiscardCache)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IOleCache2 {
    pub lpVtbl: *mut IOleCache2Vtbl,
}
#[test]
fn bindgen_test_layout_IOleCache2() {
    assert_eq!(
        ::std::mem::size_of::<IOleCache2>(),
        8usize,
        concat!("Size of: ", stringify!(IOleCache2))
    );
    assert_eq!(
        ::std::mem::align_of::<IOleCache2>(),
        8usize,
        concat!("Alignment of ", stringify!(IOleCache2))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleCache2>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleCache2),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IOleCache2_RemoteUpdateCache_Proxy(
        This: *mut IOleCache2,
        pDataObject: LPDATAOBJECT,
        grfUpdf: DWORD,
        pReserved: LONG_PTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn IOleCache2_RemoteUpdateCache_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub static mut __MIDL_itf_oleidl_0000_0003_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_oleidl_0000_0003_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPOLECACHECONTROL = *mut IOleCacheControl;
extern "C" {
    pub static IID_IOleCacheControl: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IOleCacheControlVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleCacheControl,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IOleCacheControl) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IOleCacheControl) -> ULONG>,
    pub OnRun: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleCacheControl, pDataObject: LPDATAOBJECT) -> HRESULT,
    >,
    pub OnStop: ::std::option::Option<unsafe extern "C" fn(This: *mut IOleCacheControl) -> HRESULT>,
}
#[test]
fn bindgen_test_layout_IOleCacheControlVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IOleCacheControlVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IOleCacheControlVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IOleCacheControlVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IOleCacheControlVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleCacheControlVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleCacheControlVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleCacheControlVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleCacheControlVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleCacheControlVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleCacheControlVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleCacheControlVtbl>())).OnRun as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleCacheControlVtbl),
            "::",
            stringify!(OnRun)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleCacheControlVtbl>())).OnStop as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleCacheControlVtbl),
            "::",
            stringify!(OnStop)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IOleCacheControl {
    pub lpVtbl: *mut IOleCacheControlVtbl,
}
#[test]
fn bindgen_test_layout_IOleCacheControl() {
    assert_eq!(
        ::std::mem::size_of::<IOleCacheControl>(),
        8usize,
        concat!("Size of: ", stringify!(IOleCacheControl))
    );
    assert_eq!(
        ::std::mem::align_of::<IOleCacheControl>(),
        8usize,
        concat!("Alignment of ", stringify!(IOleCacheControl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleCacheControl>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleCacheControl),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPPARSEDISPLAYNAME = *mut IParseDisplayName;
extern "C" {
    pub static IID_IParseDisplayName: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IParseDisplayNameVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IParseDisplayName,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IParseDisplayName) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IParseDisplayName) -> ULONG>,
    pub ParseDisplayName: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IParseDisplayName,
            pbc: *mut IBindCtx,
            pszDisplayName: LPOLESTR,
            pchEaten: *mut ULONG,
            ppmkOut: *mut *mut IMoniker,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IParseDisplayNameVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IParseDisplayNameVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IParseDisplayNameVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IParseDisplayNameVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IParseDisplayNameVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IParseDisplayNameVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IParseDisplayNameVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IParseDisplayNameVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IParseDisplayNameVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IParseDisplayNameVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IParseDisplayNameVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IParseDisplayNameVtbl>())).ParseDisplayName as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IParseDisplayNameVtbl),
            "::",
            stringify!(ParseDisplayName)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IParseDisplayName {
    pub lpVtbl: *mut IParseDisplayNameVtbl,
}
#[test]
fn bindgen_test_layout_IParseDisplayName() {
    assert_eq!(
        ::std::mem::size_of::<IParseDisplayName>(),
        8usize,
        concat!("Size of: ", stringify!(IParseDisplayName))
    );
    assert_eq!(
        ::std::mem::align_of::<IParseDisplayName>(),
        8usize,
        concat!("Alignment of ", stringify!(IParseDisplayName))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IParseDisplayName>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IParseDisplayName),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPOLECONTAINER = *mut IOleContainer;
extern "C" {
    pub static IID_IOleContainer: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IOleContainerVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleContainer,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IOleContainer) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IOleContainer) -> ULONG>,
    pub ParseDisplayName: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleContainer,
            pbc: *mut IBindCtx,
            pszDisplayName: LPOLESTR,
            pchEaten: *mut ULONG,
            ppmkOut: *mut *mut IMoniker,
        ) -> HRESULT,
    >,
    pub EnumObjects: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleContainer,
            grfFlags: DWORD,
            ppenum: *mut *mut IEnumUnknown,
        ) -> HRESULT,
    >,
    pub LockContainer: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleContainer, fLock: BOOL) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IOleContainerVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IOleContainerVtbl>(),
        48usize,
        concat!("Size of: ", stringify!(IOleContainerVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IOleContainerVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IOleContainerVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleContainerVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleContainerVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleContainerVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleContainerVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleContainerVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleContainerVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleContainerVtbl>())).ParseDisplayName as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleContainerVtbl),
            "::",
            stringify!(ParseDisplayName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleContainerVtbl>())).EnumObjects as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleContainerVtbl),
            "::",
            stringify!(EnumObjects)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleContainerVtbl>())).LockContainer as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleContainerVtbl),
            "::",
            stringify!(LockContainer)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IOleContainer {
    pub lpVtbl: *mut IOleContainerVtbl,
}
#[test]
fn bindgen_test_layout_IOleContainer() {
    assert_eq!(
        ::std::mem::size_of::<IOleContainer>(),
        8usize,
        concat!("Size of: ", stringify!(IOleContainer))
    );
    assert_eq!(
        ::std::mem::align_of::<IOleContainer>(),
        8usize,
        concat!("Alignment of ", stringify!(IOleContainer))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleContainer>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleContainer),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPOLECLIENTSITE = *mut IOleClientSite;
extern "C" {
    pub static IID_IOleClientSite: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IOleClientSiteVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleClientSite,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IOleClientSite) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IOleClientSite) -> ULONG>,
    pub SaveObject:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IOleClientSite) -> HRESULT>,
    pub GetMoniker: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleClientSite,
            dwAssign: DWORD,
            dwWhichMoniker: DWORD,
            ppmk: *mut *mut IMoniker,
        ) -> HRESULT,
    >,
    pub GetContainer: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleClientSite,
            ppContainer: *mut *mut IOleContainer,
        ) -> HRESULT,
    >,
    pub ShowObject:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IOleClientSite) -> HRESULT>,
    pub OnShowWindow: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleClientSite, fShow: BOOL) -> HRESULT,
    >,
    pub RequestNewObjectLayout:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IOleClientSite) -> HRESULT>,
}
#[test]
fn bindgen_test_layout_IOleClientSiteVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IOleClientSiteVtbl>(),
        72usize,
        concat!("Size of: ", stringify!(IOleClientSiteVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IOleClientSiteVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IOleClientSiteVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleClientSiteVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleClientSiteVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleClientSiteVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleClientSiteVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleClientSiteVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleClientSiteVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleClientSiteVtbl>())).SaveObject as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleClientSiteVtbl),
            "::",
            stringify!(SaveObject)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleClientSiteVtbl>())).GetMoniker as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleClientSiteVtbl),
            "::",
            stringify!(GetMoniker)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleClientSiteVtbl>())).GetContainer as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleClientSiteVtbl),
            "::",
            stringify!(GetContainer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleClientSiteVtbl>())).ShowObject as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleClientSiteVtbl),
            "::",
            stringify!(ShowObject)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleClientSiteVtbl>())).OnShowWindow as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleClientSiteVtbl),
            "::",
            stringify!(OnShowWindow)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleClientSiteVtbl>())).RequestNewObjectLayout as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleClientSiteVtbl),
            "::",
            stringify!(RequestNewObjectLayout)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IOleClientSite {
    pub lpVtbl: *mut IOleClientSiteVtbl,
}
#[test]
fn bindgen_test_layout_IOleClientSite() {
    assert_eq!(
        ::std::mem::size_of::<IOleClientSite>(),
        8usize,
        concat!("Size of: ", stringify!(IOleClientSite))
    );
    assert_eq!(
        ::std::mem::align_of::<IOleClientSite>(),
        8usize,
        concat!("Alignment of ", stringify!(IOleClientSite))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleClientSite>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleClientSite),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPOLEOBJECT = *mut IOleObject;
pub const tagOLEGETMONIKER_OLEGETMONIKER_ONLYIFTHERE: tagOLEGETMONIKER = 1;
pub const tagOLEGETMONIKER_OLEGETMONIKER_FORCEASSIGN: tagOLEGETMONIKER = 2;
pub const tagOLEGETMONIKER_OLEGETMONIKER_UNASSIGN: tagOLEGETMONIKER = 3;
pub const tagOLEGETMONIKER_OLEGETMONIKER_TEMPFORUSER: tagOLEGETMONIKER = 4;
pub type tagOLEGETMONIKER = ::std::os::raw::c_int;
pub use self::tagOLEGETMONIKER as OLEGETMONIKER;
pub const tagOLEWHICHMK_OLEWHICHMK_CONTAINER: tagOLEWHICHMK = 1;
pub const tagOLEWHICHMK_OLEWHICHMK_OBJREL: tagOLEWHICHMK = 2;
pub const tagOLEWHICHMK_OLEWHICHMK_OBJFULL: tagOLEWHICHMK = 3;
pub type tagOLEWHICHMK = ::std::os::raw::c_int;
pub use self::tagOLEWHICHMK as OLEWHICHMK;
pub const tagUSERCLASSTYPE_USERCLASSTYPE_FULL: tagUSERCLASSTYPE = 1;
pub const tagUSERCLASSTYPE_USERCLASSTYPE_SHORT: tagUSERCLASSTYPE = 2;
pub const tagUSERCLASSTYPE_USERCLASSTYPE_APPNAME: tagUSERCLASSTYPE = 3;
pub type tagUSERCLASSTYPE = ::std::os::raw::c_int;
pub use self::tagUSERCLASSTYPE as USERCLASSTYPE;
pub const tagOLEMISC_OLEMISC_RECOMPOSEONRESIZE: tagOLEMISC = 1;
pub const tagOLEMISC_OLEMISC_ONLYICONIC: tagOLEMISC = 2;
pub const tagOLEMISC_OLEMISC_INSERTNOTREPLACE: tagOLEMISC = 4;
pub const tagOLEMISC_OLEMISC_STATIC: tagOLEMISC = 8;
pub const tagOLEMISC_OLEMISC_CANTLINKINSIDE: tagOLEMISC = 16;
pub const tagOLEMISC_OLEMISC_CANLINKBYOLE1: tagOLEMISC = 32;
pub const tagOLEMISC_OLEMISC_ISLINKOBJECT: tagOLEMISC = 64;
pub const tagOLEMISC_OLEMISC_INSIDEOUT: tagOLEMISC = 128;
pub const tagOLEMISC_OLEMISC_ACTIVATEWHENVISIBLE: tagOLEMISC = 256;
pub const tagOLEMISC_OLEMISC_RENDERINGISDEVICEINDEPENDENT: tagOLEMISC = 512;
pub const tagOLEMISC_OLEMISC_INVISIBLEATRUNTIME: tagOLEMISC = 1024;
pub const tagOLEMISC_OLEMISC_ALWAYSRUN: tagOLEMISC = 2048;
pub const tagOLEMISC_OLEMISC_ACTSLIKEBUTTON: tagOLEMISC = 4096;
pub const tagOLEMISC_OLEMISC_ACTSLIKELABEL: tagOLEMISC = 8192;
pub const tagOLEMISC_OLEMISC_NOUIACTIVATE: tagOLEMISC = 16384;
pub const tagOLEMISC_OLEMISC_ALIGNABLE: tagOLEMISC = 32768;
pub const tagOLEMISC_OLEMISC_SIMPLEFRAME: tagOLEMISC = 65536;
pub const tagOLEMISC_OLEMISC_SETCLIENTSITEFIRST: tagOLEMISC = 131072;
pub const tagOLEMISC_OLEMISC_IMEMODE: tagOLEMISC = 262144;
pub const tagOLEMISC_OLEMISC_IGNOREACTIVATEWHENVISIBLE: tagOLEMISC = 524288;
pub const tagOLEMISC_OLEMISC_WANTSTOMENUMERGE: tagOLEMISC = 1048576;
pub const tagOLEMISC_OLEMISC_SUPPORTSMULTILEVELUNDO: tagOLEMISC = 2097152;
pub type tagOLEMISC = ::std::os::raw::c_int;
pub use self::tagOLEMISC as OLEMISC;
pub const tagOLECLOSE_OLECLOSE_SAVEIFDIRTY: tagOLECLOSE = 0;
pub const tagOLECLOSE_OLECLOSE_NOSAVE: tagOLECLOSE = 1;
pub const tagOLECLOSE_OLECLOSE_PROMPTSAVE: tagOLECLOSE = 2;
pub type tagOLECLOSE = ::std::os::raw::c_int;
pub use self::tagOLECLOSE as OLECLOSE;
extern "C" {
    pub static IID_IOleObject: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IOleObjectVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleObject,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IOleObject) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IOleObject) -> ULONG>,
    pub SetClientSite: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleObject, pClientSite: *mut IOleClientSite) -> HRESULT,
    >,
    pub GetClientSite: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleObject,
            ppClientSite: *mut *mut IOleClientSite,
        ) -> HRESULT,
    >,
    pub SetHostNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleObject,
            szContainerApp: LPCOLESTR,
            szContainerObj: LPCOLESTR,
        ) -> HRESULT,
    >,
    pub Close: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleObject, dwSaveOption: DWORD) -> HRESULT,
    >,
    pub SetMoniker: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleObject,
            dwWhichMoniker: DWORD,
            pmk: *mut IMoniker,
        ) -> HRESULT,
    >,
    pub GetMoniker: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleObject,
            dwAssign: DWORD,
            dwWhichMoniker: DWORD,
            ppmk: *mut *mut IMoniker,
        ) -> HRESULT,
    >,
    pub InitFromData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleObject,
            pDataObject: *mut IDataObject,
            fCreation: BOOL,
            dwReserved: DWORD,
        ) -> HRESULT,
    >,
    pub GetClipboardData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleObject,
            dwReserved: DWORD,
            ppDataObject: *mut *mut IDataObject,
        ) -> HRESULT,
    >,
    pub DoVerb: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleObject,
            iVerb: LONG,
            lpmsg: LPMSG,
            pActiveSite: *mut IOleClientSite,
            lindex: LONG,
            hwndParent: HWND,
            lprcPosRect: LPCRECT,
        ) -> HRESULT,
    >,
    pub EnumVerbs: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleObject,
            ppEnumOleVerb: *mut *mut IEnumOLEVERB,
        ) -> HRESULT,
    >,
    pub Update: ::std::option::Option<unsafe extern "C" fn(This: *mut IOleObject) -> HRESULT>,
    pub IsUpToDate: ::std::option::Option<unsafe extern "C" fn(This: *mut IOleObject) -> HRESULT>,
    pub GetUserClassID: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleObject, pClsid: *mut CLSID) -> HRESULT,
    >,
    pub GetUserType: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleObject,
            dwFormOfType: DWORD,
            pszUserType: *mut LPOLESTR,
        ) -> HRESULT,
    >,
    pub SetExtent: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleObject,
            dwDrawAspect: DWORD,
            psizel: *mut SIZEL,
        ) -> HRESULT,
    >,
    pub GetExtent: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleObject,
            dwDrawAspect: DWORD,
            psizel: *mut SIZEL,
        ) -> HRESULT,
    >,
    pub Advise: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleObject,
            pAdvSink: *mut IAdviseSink,
            pdwConnection: *mut DWORD,
        ) -> HRESULT,
    >,
    pub Unadvise: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleObject, dwConnection: DWORD) -> HRESULT,
    >,
    pub EnumAdvise: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleObject,
            ppenumAdvise: *mut *mut IEnumSTATDATA,
        ) -> HRESULT,
    >,
    pub GetMiscStatus: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleObject,
            dwAspect: DWORD,
            pdwStatus: *mut DWORD,
        ) -> HRESULT,
    >,
    pub SetColorScheme: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleObject, pLogpal: *mut LOGPALETTE) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IOleObjectVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IOleObjectVtbl>(),
        192usize,
        concat!("Size of: ", stringify!(IOleObjectVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IOleObjectVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IOleObjectVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleObjectVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleObjectVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleObjectVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleObjectVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleObjectVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleObjectVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleObjectVtbl>())).SetClientSite as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleObjectVtbl),
            "::",
            stringify!(SetClientSite)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleObjectVtbl>())).GetClientSite as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleObjectVtbl),
            "::",
            stringify!(GetClientSite)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleObjectVtbl>())).SetHostNames as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleObjectVtbl),
            "::",
            stringify!(SetHostNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleObjectVtbl>())).Close as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleObjectVtbl),
            "::",
            stringify!(Close)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleObjectVtbl>())).SetMoniker as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleObjectVtbl),
            "::",
            stringify!(SetMoniker)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleObjectVtbl>())).GetMoniker as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleObjectVtbl),
            "::",
            stringify!(GetMoniker)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleObjectVtbl>())).InitFromData as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleObjectVtbl),
            "::",
            stringify!(InitFromData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleObjectVtbl>())).GetClipboardData as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleObjectVtbl),
            "::",
            stringify!(GetClipboardData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleObjectVtbl>())).DoVerb as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleObjectVtbl),
            "::",
            stringify!(DoVerb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleObjectVtbl>())).EnumVerbs as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleObjectVtbl),
            "::",
            stringify!(EnumVerbs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleObjectVtbl>())).Update as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleObjectVtbl),
            "::",
            stringify!(Update)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleObjectVtbl>())).IsUpToDate as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleObjectVtbl),
            "::",
            stringify!(IsUpToDate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleObjectVtbl>())).GetUserClassID as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleObjectVtbl),
            "::",
            stringify!(GetUserClassID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleObjectVtbl>())).GetUserType as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleObjectVtbl),
            "::",
            stringify!(GetUserType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleObjectVtbl>())).SetExtent as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleObjectVtbl),
            "::",
            stringify!(SetExtent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleObjectVtbl>())).GetExtent as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleObjectVtbl),
            "::",
            stringify!(GetExtent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleObjectVtbl>())).Advise as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleObjectVtbl),
            "::",
            stringify!(Advise)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleObjectVtbl>())).Unadvise as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleObjectVtbl),
            "::",
            stringify!(Unadvise)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleObjectVtbl>())).EnumAdvise as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleObjectVtbl),
            "::",
            stringify!(EnumAdvise)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleObjectVtbl>())).GetMiscStatus as *const _ as usize },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleObjectVtbl),
            "::",
            stringify!(GetMiscStatus)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleObjectVtbl>())).SetColorScheme as *const _ as usize },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleObjectVtbl),
            "::",
            stringify!(SetColorScheme)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IOleObject {
    pub lpVtbl: *mut IOleObjectVtbl,
}
#[test]
fn bindgen_test_layout_IOleObject() {
    assert_eq!(
        ::std::mem::size_of::<IOleObject>(),
        8usize,
        concat!("Size of: ", stringify!(IOleObject))
    );
    assert_eq!(
        ::std::mem::align_of::<IOleObject>(),
        8usize,
        concat!("Alignment of ", stringify!(IOleObject))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleObject>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleObject),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub const tagOLERENDER_OLERENDER_NONE: tagOLERENDER = 0;
pub const tagOLERENDER_OLERENDER_DRAW: tagOLERENDER = 1;
pub const tagOLERENDER_OLERENDER_FORMAT: tagOLERENDER = 2;
pub const tagOLERENDER_OLERENDER_ASIS: tagOLERENDER = 3;
pub type tagOLERENDER = ::std::os::raw::c_int;
pub use self::tagOLERENDER as OLERENDER;
pub type LPOLERENDER = *mut OLERENDER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagOBJECTDESCRIPTOR {
    pub cbSize: ULONG,
    pub clsid: CLSID,
    pub dwDrawAspect: DWORD,
    pub sizel: SIZEL,
    pub pointl: POINTL,
    pub dwStatus: DWORD,
    pub dwFullUserTypeName: DWORD,
    pub dwSrcOfCopy: DWORD,
}
#[test]
fn bindgen_test_layout_tagOBJECTDESCRIPTOR() {
    assert_eq!(
        ::std::mem::size_of::<tagOBJECTDESCRIPTOR>(),
        52usize,
        concat!("Size of: ", stringify!(tagOBJECTDESCRIPTOR))
    );
    assert_eq!(
        ::std::mem::align_of::<tagOBJECTDESCRIPTOR>(),
        4usize,
        concat!("Alignment of ", stringify!(tagOBJECTDESCRIPTOR))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOBJECTDESCRIPTOR>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOBJECTDESCRIPTOR),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOBJECTDESCRIPTOR>())).clsid as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOBJECTDESCRIPTOR),
            "::",
            stringify!(clsid)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagOBJECTDESCRIPTOR>())).dwDrawAspect as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOBJECTDESCRIPTOR),
            "::",
            stringify!(dwDrawAspect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOBJECTDESCRIPTOR>())).sizel as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOBJECTDESCRIPTOR),
            "::",
            stringify!(sizel)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOBJECTDESCRIPTOR>())).pointl as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOBJECTDESCRIPTOR),
            "::",
            stringify!(pointl)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOBJECTDESCRIPTOR>())).dwStatus as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOBJECTDESCRIPTOR),
            "::",
            stringify!(dwStatus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagOBJECTDESCRIPTOR>())).dwFullUserTypeName as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOBJECTDESCRIPTOR),
            "::",
            stringify!(dwFullUserTypeName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOBJECTDESCRIPTOR>())).dwSrcOfCopy as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOBJECTDESCRIPTOR),
            "::",
            stringify!(dwSrcOfCopy)
        )
    );
}
pub type OBJECTDESCRIPTOR = tagOBJECTDESCRIPTOR;
pub type POBJECTDESCRIPTOR = *mut tagOBJECTDESCRIPTOR;
pub type LPOBJECTDESCRIPTOR = *mut tagOBJECTDESCRIPTOR;
pub type LINKSRCDESCRIPTOR = tagOBJECTDESCRIPTOR;
pub type PLINKSRCDESCRIPTOR = *mut tagOBJECTDESCRIPTOR;
pub type LPLINKSRCDESCRIPTOR = *mut tagOBJECTDESCRIPTOR;
extern "C" {
    pub static mut IOLETypes_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut IOLETypes_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPOLEWINDOW = *mut IOleWindow;
extern "C" {
    pub static IID_IOleWindow: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IOleWindowVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleWindow,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IOleWindow) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IOleWindow) -> ULONG>,
    pub GetWindow: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleWindow, phwnd: *mut HWND) -> HRESULT,
    >,
    pub ContextSensitiveHelp: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleWindow, fEnterMode: BOOL) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IOleWindowVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IOleWindowVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IOleWindowVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IOleWindowVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IOleWindowVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleWindowVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleWindowVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleWindowVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleWindowVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleWindowVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleWindowVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleWindowVtbl>())).GetWindow as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleWindowVtbl),
            "::",
            stringify!(GetWindow)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleWindowVtbl>())).ContextSensitiveHelp as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleWindowVtbl),
            "::",
            stringify!(ContextSensitiveHelp)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IOleWindow {
    pub lpVtbl: *mut IOleWindowVtbl,
}
#[test]
fn bindgen_test_layout_IOleWindow() {
    assert_eq!(
        ::std::mem::size_of::<IOleWindow>(),
        8usize,
        concat!("Size of: ", stringify!(IOleWindow))
    );
    assert_eq!(
        ::std::mem::align_of::<IOleWindow>(),
        8usize,
        concat!("Alignment of ", stringify!(IOleWindow))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleWindow>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleWindow),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPOLELINK = *mut IOleLink;
pub const tagOLEUPDATE_OLEUPDATE_ALWAYS: tagOLEUPDATE = 1;
pub const tagOLEUPDATE_OLEUPDATE_ONCALL: tagOLEUPDATE = 3;
pub type tagOLEUPDATE = ::std::os::raw::c_int;
pub use self::tagOLEUPDATE as OLEUPDATE;
pub type LPOLEUPDATE = *mut OLEUPDATE;
pub type POLEUPDATE = *mut OLEUPDATE;
pub const tagOLELINKBIND_OLELINKBIND_EVENIFCLASSDIFF: tagOLELINKBIND = 1;
pub type tagOLELINKBIND = ::std::os::raw::c_int;
pub use self::tagOLELINKBIND as OLELINKBIND;
extern "C" {
    pub static IID_IOleLink: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IOleLinkVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleLink,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IOleLink) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IOleLink) -> ULONG>,
    pub SetUpdateOptions: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleLink, dwUpdateOpt: DWORD) -> HRESULT,
    >,
    pub GetUpdateOptions: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleLink, pdwUpdateOpt: *mut DWORD) -> HRESULT,
    >,
    pub SetSourceMoniker: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleLink,
            pmk: *mut IMoniker,
            rclsid: *const IID,
        ) -> HRESULT,
    >,
    pub GetSourceMoniker: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleLink, ppmk: *mut *mut IMoniker) -> HRESULT,
    >,
    pub SetSourceDisplayName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleLink, pszStatusText: LPCOLESTR) -> HRESULT,
    >,
    pub GetSourceDisplayName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleLink, ppszDisplayName: *mut LPOLESTR) -> HRESULT,
    >,
    pub BindToSource: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleLink, bindflags: DWORD, pbc: *mut IBindCtx) -> HRESULT,
    >,
    pub BindIfRunning: ::std::option::Option<unsafe extern "C" fn(This: *mut IOleLink) -> HRESULT>,
    pub GetBoundSource: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleLink, ppunk: *mut *mut IUnknown) -> HRESULT,
    >,
    pub UnbindSource: ::std::option::Option<unsafe extern "C" fn(This: *mut IOleLink) -> HRESULT>,
    pub Update: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleLink, pbc: *mut IBindCtx) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IOleLinkVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IOleLinkVtbl>(),
        112usize,
        concat!("Size of: ", stringify!(IOleLinkVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IOleLinkVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IOleLinkVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleLinkVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleLinkVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleLinkVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleLinkVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleLinkVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleLinkVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleLinkVtbl>())).SetUpdateOptions as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleLinkVtbl),
            "::",
            stringify!(SetUpdateOptions)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleLinkVtbl>())).GetUpdateOptions as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleLinkVtbl),
            "::",
            stringify!(GetUpdateOptions)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleLinkVtbl>())).SetSourceMoniker as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleLinkVtbl),
            "::",
            stringify!(SetSourceMoniker)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleLinkVtbl>())).GetSourceMoniker as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleLinkVtbl),
            "::",
            stringify!(GetSourceMoniker)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleLinkVtbl>())).SetSourceDisplayName as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleLinkVtbl),
            "::",
            stringify!(SetSourceDisplayName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleLinkVtbl>())).GetSourceDisplayName as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleLinkVtbl),
            "::",
            stringify!(GetSourceDisplayName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleLinkVtbl>())).BindToSource as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleLinkVtbl),
            "::",
            stringify!(BindToSource)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleLinkVtbl>())).BindIfRunning as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleLinkVtbl),
            "::",
            stringify!(BindIfRunning)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleLinkVtbl>())).GetBoundSource as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleLinkVtbl),
            "::",
            stringify!(GetBoundSource)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleLinkVtbl>())).UnbindSource as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleLinkVtbl),
            "::",
            stringify!(UnbindSource)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleLinkVtbl>())).Update as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleLinkVtbl),
            "::",
            stringify!(Update)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IOleLink {
    pub lpVtbl: *mut IOleLinkVtbl,
}
#[test]
fn bindgen_test_layout_IOleLink() {
    assert_eq!(
        ::std::mem::size_of::<IOleLink>(),
        8usize,
        concat!("Size of: ", stringify!(IOleLink))
    );
    assert_eq!(
        ::std::mem::align_of::<IOleLink>(),
        8usize,
        concat!("Alignment of ", stringify!(IOleLink))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleLink>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleLink),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPOLEITEMCONTAINER = *mut IOleItemContainer;
pub const tagBINDSPEED_BINDSPEED_INDEFINITE: tagBINDSPEED = 1;
pub const tagBINDSPEED_BINDSPEED_MODERATE: tagBINDSPEED = 2;
pub const tagBINDSPEED_BINDSPEED_IMMEDIATE: tagBINDSPEED = 3;
pub type tagBINDSPEED = ::std::os::raw::c_int;
pub use self::tagBINDSPEED as BINDSPEED;
pub const tagOLECONTF_OLECONTF_EMBEDDINGS: tagOLECONTF = 1;
pub const tagOLECONTF_OLECONTF_LINKS: tagOLECONTF = 2;
pub const tagOLECONTF_OLECONTF_OTHERS: tagOLECONTF = 4;
pub const tagOLECONTF_OLECONTF_ONLYUSER: tagOLECONTF = 8;
pub const tagOLECONTF_OLECONTF_ONLYIFRUNNING: tagOLECONTF = 16;
pub type tagOLECONTF = ::std::os::raw::c_int;
pub use self::tagOLECONTF as OLECONTF;
extern "C" {
    pub static IID_IOleItemContainer: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IOleItemContainerVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleItemContainer,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IOleItemContainer) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IOleItemContainer) -> ULONG>,
    pub ParseDisplayName: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleItemContainer,
            pbc: *mut IBindCtx,
            pszDisplayName: LPOLESTR,
            pchEaten: *mut ULONG,
            ppmkOut: *mut *mut IMoniker,
        ) -> HRESULT,
    >,
    pub EnumObjects: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleItemContainer,
            grfFlags: DWORD,
            ppenum: *mut *mut IEnumUnknown,
        ) -> HRESULT,
    >,
    pub LockContainer: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleItemContainer, fLock: BOOL) -> HRESULT,
    >,
    pub GetObjectA: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleItemContainer,
            pszItem: LPOLESTR,
            dwSpeedNeeded: DWORD,
            pbc: *mut IBindCtx,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub GetObjectStorage: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleItemContainer,
            pszItem: LPOLESTR,
            pbc: *mut IBindCtx,
            riid: *const IID,
            ppvStorage: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub IsRunning: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleItemContainer, pszItem: LPOLESTR) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IOleItemContainerVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IOleItemContainerVtbl>(),
        72usize,
        concat!("Size of: ", stringify!(IOleItemContainerVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IOleItemContainerVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IOleItemContainerVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleItemContainerVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleItemContainerVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleItemContainerVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleItemContainerVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleItemContainerVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleItemContainerVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleItemContainerVtbl>())).ParseDisplayName as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleItemContainerVtbl),
            "::",
            stringify!(ParseDisplayName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleItemContainerVtbl>())).EnumObjects as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleItemContainerVtbl),
            "::",
            stringify!(EnumObjects)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleItemContainerVtbl>())).LockContainer as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleItemContainerVtbl),
            "::",
            stringify!(LockContainer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleItemContainerVtbl>())).GetObjectA as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleItemContainerVtbl),
            "::",
            stringify!(GetObjectA)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleItemContainerVtbl>())).GetObjectStorage as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleItemContainerVtbl),
            "::",
            stringify!(GetObjectStorage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleItemContainerVtbl>())).IsRunning as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleItemContainerVtbl),
            "::",
            stringify!(IsRunning)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IOleItemContainer {
    pub lpVtbl: *mut IOleItemContainerVtbl,
}
#[test]
fn bindgen_test_layout_IOleItemContainer() {
    assert_eq!(
        ::std::mem::size_of::<IOleItemContainer>(),
        8usize,
        concat!("Size of: ", stringify!(IOleItemContainer))
    );
    assert_eq!(
        ::std::mem::align_of::<IOleItemContainer>(),
        8usize,
        concat!("Alignment of ", stringify!(IOleItemContainer))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleItemContainer>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleItemContainer),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPOLEINPLACEUIWINDOW = *mut IOleInPlaceUIWindow;
pub type BORDERWIDTHS = RECT;
pub type LPBORDERWIDTHS = LPRECT;
pub type LPCBORDERWIDTHS = LPCRECT;
extern "C" {
    pub static IID_IOleInPlaceUIWindow: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IOleInPlaceUIWindowVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleInPlaceUIWindow,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IOleInPlaceUIWindow) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IOleInPlaceUIWindow) -> ULONG>,
    pub GetWindow: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleInPlaceUIWindow, phwnd: *mut HWND) -> HRESULT,
    >,
    pub ContextSensitiveHelp: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleInPlaceUIWindow, fEnterMode: BOOL) -> HRESULT,
    >,
    pub GetBorder: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleInPlaceUIWindow, lprectBorder: LPRECT) -> HRESULT,
    >,
    pub RequestBorderSpace: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleInPlaceUIWindow,
            pborderwidths: LPCBORDERWIDTHS,
        ) -> HRESULT,
    >,
    pub SetBorderSpace: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleInPlaceUIWindow,
            pborderwidths: LPCBORDERWIDTHS,
        ) -> HRESULT,
    >,
    pub SetActiveObject: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleInPlaceUIWindow,
            pActiveObject: *mut IOleInPlaceActiveObject,
            pszObjName: LPCOLESTR,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IOleInPlaceUIWindowVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IOleInPlaceUIWindowVtbl>(),
        72usize,
        concat!("Size of: ", stringify!(IOleInPlaceUIWindowVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IOleInPlaceUIWindowVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IOleInPlaceUIWindowVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceUIWindowVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceUIWindowVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleInPlaceUIWindowVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceUIWindowVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleInPlaceUIWindowVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceUIWindowVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceUIWindowVtbl>())).GetWindow as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceUIWindowVtbl),
            "::",
            stringify!(GetWindow)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceUIWindowVtbl>())).ContextSensitiveHelp as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceUIWindowVtbl),
            "::",
            stringify!(ContextSensitiveHelp)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceUIWindowVtbl>())).GetBorder as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceUIWindowVtbl),
            "::",
            stringify!(GetBorder)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceUIWindowVtbl>())).RequestBorderSpace as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceUIWindowVtbl),
            "::",
            stringify!(RequestBorderSpace)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceUIWindowVtbl>())).SetBorderSpace as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceUIWindowVtbl),
            "::",
            stringify!(SetBorderSpace)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceUIWindowVtbl>())).SetActiveObject as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceUIWindowVtbl),
            "::",
            stringify!(SetActiveObject)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IOleInPlaceUIWindow {
    pub lpVtbl: *mut IOleInPlaceUIWindowVtbl,
}
#[test]
fn bindgen_test_layout_IOleInPlaceUIWindow() {
    assert_eq!(
        ::std::mem::size_of::<IOleInPlaceUIWindow>(),
        8usize,
        concat!("Size of: ", stringify!(IOleInPlaceUIWindow))
    );
    assert_eq!(
        ::std::mem::align_of::<IOleInPlaceUIWindow>(),
        8usize,
        concat!("Alignment of ", stringify!(IOleInPlaceUIWindow))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleInPlaceUIWindow>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceUIWindow),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPOLEINPLACEACTIVEOBJECT = *mut IOleInPlaceActiveObject;
extern "C" {
    pub static IID_IOleInPlaceActiveObject: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IOleInPlaceActiveObjectVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleInPlaceActiveObject,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IOleInPlaceActiveObject) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IOleInPlaceActiveObject) -> ULONG>,
    pub GetWindow: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleInPlaceActiveObject, phwnd: *mut HWND) -> HRESULT,
    >,
    pub ContextSensitiveHelp: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleInPlaceActiveObject, fEnterMode: BOOL) -> HRESULT,
    >,
    pub TranslateAcceleratorA: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleInPlaceActiveObject, lpmsg: LPMSG) -> HRESULT,
    >,
    pub OnFrameWindowActivate: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleInPlaceActiveObject, fActivate: BOOL) -> HRESULT,
    >,
    pub OnDocWindowActivate: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleInPlaceActiveObject, fActivate: BOOL) -> HRESULT,
    >,
    pub ResizeBorder: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleInPlaceActiveObject,
            prcBorder: LPCRECT,
            pUIWindow: *mut IOleInPlaceUIWindow,
            fFrameWindow: BOOL,
        ) -> HRESULT,
    >,
    pub EnableModeless: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleInPlaceActiveObject, fEnable: BOOL) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IOleInPlaceActiveObjectVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IOleInPlaceActiveObjectVtbl>(),
        80usize,
        concat!("Size of: ", stringify!(IOleInPlaceActiveObjectVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IOleInPlaceActiveObjectVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IOleInPlaceActiveObjectVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceActiveObjectVtbl>())).QueryInterface as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceActiveObjectVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceActiveObjectVtbl>())).AddRef as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceActiveObjectVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceActiveObjectVtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceActiveObjectVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceActiveObjectVtbl>())).GetWindow as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceActiveObjectVtbl),
            "::",
            stringify!(GetWindow)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceActiveObjectVtbl>())).ContextSensitiveHelp as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceActiveObjectVtbl),
            "::",
            stringify!(ContextSensitiveHelp)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceActiveObjectVtbl>())).TranslateAcceleratorA
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceActiveObjectVtbl),
            "::",
            stringify!(TranslateAcceleratorA)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceActiveObjectVtbl>())).OnFrameWindowActivate
                as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceActiveObjectVtbl),
            "::",
            stringify!(OnFrameWindowActivate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceActiveObjectVtbl>())).OnDocWindowActivate as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceActiveObjectVtbl),
            "::",
            stringify!(OnDocWindowActivate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceActiveObjectVtbl>())).ResizeBorder as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceActiveObjectVtbl),
            "::",
            stringify!(ResizeBorder)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceActiveObjectVtbl>())).EnableModeless as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceActiveObjectVtbl),
            "::",
            stringify!(EnableModeless)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IOleInPlaceActiveObject {
    pub lpVtbl: *mut IOleInPlaceActiveObjectVtbl,
}
#[test]
fn bindgen_test_layout_IOleInPlaceActiveObject() {
    assert_eq!(
        ::std::mem::size_of::<IOleInPlaceActiveObject>(),
        8usize,
        concat!("Size of: ", stringify!(IOleInPlaceActiveObject))
    );
    assert_eq!(
        ::std::mem::align_of::<IOleInPlaceActiveObject>(),
        8usize,
        concat!("Alignment of ", stringify!(IOleInPlaceActiveObject))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleInPlaceActiveObject>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceActiveObject),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IOleInPlaceActiveObject_RemoteTranslateAccelerator_Proxy(
        This: *mut IOleInPlaceActiveObject,
    ) -> HRESULT;
}
extern "C" {
    pub fn IOleInPlaceActiveObject_RemoteTranslateAccelerator_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn IOleInPlaceActiveObject_RemoteResizeBorder_Proxy(
        This: *mut IOleInPlaceActiveObject,
        prcBorder: LPCRECT,
        riid: *const IID,
        pUIWindow: *mut IOleInPlaceUIWindow,
        fFrameWindow: BOOL,
    ) -> HRESULT;
}
extern "C" {
    pub fn IOleInPlaceActiveObject_RemoteResizeBorder_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
pub type LPOLEINPLACEFRAME = *mut IOleInPlaceFrame;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagOIFI {
    pub cb: UINT,
    pub fMDIApp: BOOL,
    pub hwndFrame: HWND,
    pub haccel: HACCEL,
    pub cAccelEntries: UINT,
}
#[test]
fn bindgen_test_layout_tagOIFI() {
    assert_eq!(
        ::std::mem::size_of::<tagOIFI>(),
        32usize,
        concat!("Size of: ", stringify!(tagOIFI))
    );
    assert_eq!(
        ::std::mem::align_of::<tagOIFI>(),
        8usize,
        concat!("Alignment of ", stringify!(tagOIFI))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOIFI>())).cb as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOIFI),
            "::",
            stringify!(cb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOIFI>())).fMDIApp as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOIFI),
            "::",
            stringify!(fMDIApp)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOIFI>())).hwndFrame as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOIFI),
            "::",
            stringify!(hwndFrame)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOIFI>())).haccel as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOIFI),
            "::",
            stringify!(haccel)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOIFI>())).cAccelEntries as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOIFI),
            "::",
            stringify!(cAccelEntries)
        )
    );
}
pub type OLEINPLACEFRAMEINFO = tagOIFI;
pub type LPOLEINPLACEFRAMEINFO = *mut tagOIFI;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagOleMenuGroupWidths {
    pub width: [LONG; 6usize],
}
#[test]
fn bindgen_test_layout_tagOleMenuGroupWidths() {
    assert_eq!(
        ::std::mem::size_of::<tagOleMenuGroupWidths>(),
        24usize,
        concat!("Size of: ", stringify!(tagOleMenuGroupWidths))
    );
    assert_eq!(
        ::std::mem::align_of::<tagOleMenuGroupWidths>(),
        4usize,
        concat!("Alignment of ", stringify!(tagOleMenuGroupWidths))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOleMenuGroupWidths>())).width as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOleMenuGroupWidths),
            "::",
            stringify!(width)
        )
    );
}
pub type OLEMENUGROUPWIDTHS = tagOleMenuGroupWidths;
pub type LPOLEMENUGROUPWIDTHS = *mut tagOleMenuGroupWidths;
pub type HOLEMENU = HGLOBAL;
extern "C" {
    pub static IID_IOleInPlaceFrame: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IOleInPlaceFrameVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleInPlaceFrame,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IOleInPlaceFrame) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IOleInPlaceFrame) -> ULONG>,
    pub GetWindow: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleInPlaceFrame, phwnd: *mut HWND) -> HRESULT,
    >,
    pub ContextSensitiveHelp: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleInPlaceFrame, fEnterMode: BOOL) -> HRESULT,
    >,
    pub GetBorder: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleInPlaceFrame, lprectBorder: LPRECT) -> HRESULT,
    >,
    pub RequestBorderSpace: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleInPlaceFrame,
            pborderwidths: LPCBORDERWIDTHS,
        ) -> HRESULT,
    >,
    pub SetBorderSpace: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleInPlaceFrame,
            pborderwidths: LPCBORDERWIDTHS,
        ) -> HRESULT,
    >,
    pub SetActiveObject: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleInPlaceFrame,
            pActiveObject: *mut IOleInPlaceActiveObject,
            pszObjName: LPCOLESTR,
        ) -> HRESULT,
    >,
    pub InsertMenus: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleInPlaceFrame,
            hmenuShared: HMENU,
            lpMenuWidths: LPOLEMENUGROUPWIDTHS,
        ) -> HRESULT,
    >,
    pub SetMenu: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleInPlaceFrame,
            hmenuShared: HMENU,
            holemenu: HOLEMENU,
            hwndActiveObject: HWND,
        ) -> HRESULT,
    >,
    pub RemoveMenus: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleInPlaceFrame, hmenuShared: HMENU) -> HRESULT,
    >,
    pub SetStatusText: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleInPlaceFrame, pszStatusText: LPCOLESTR) -> HRESULT,
    >,
    pub EnableModeless: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleInPlaceFrame, fEnable: BOOL) -> HRESULT,
    >,
    pub TranslateAcceleratorA: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleInPlaceFrame, lpmsg: LPMSG, wID: WORD) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IOleInPlaceFrameVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IOleInPlaceFrameVtbl>(),
        120usize,
        concat!("Size of: ", stringify!(IOleInPlaceFrameVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IOleInPlaceFrameVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IOleInPlaceFrameVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceFrameVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceFrameVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleInPlaceFrameVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceFrameVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleInPlaceFrameVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceFrameVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleInPlaceFrameVtbl>())).GetWindow as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceFrameVtbl),
            "::",
            stringify!(GetWindow)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceFrameVtbl>())).ContextSensitiveHelp as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceFrameVtbl),
            "::",
            stringify!(ContextSensitiveHelp)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleInPlaceFrameVtbl>())).GetBorder as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceFrameVtbl),
            "::",
            stringify!(GetBorder)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceFrameVtbl>())).RequestBorderSpace as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceFrameVtbl),
            "::",
            stringify!(RequestBorderSpace)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceFrameVtbl>())).SetBorderSpace as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceFrameVtbl),
            "::",
            stringify!(SetBorderSpace)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceFrameVtbl>())).SetActiveObject as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceFrameVtbl),
            "::",
            stringify!(SetActiveObject)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceFrameVtbl>())).InsertMenus as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceFrameVtbl),
            "::",
            stringify!(InsertMenus)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleInPlaceFrameVtbl>())).SetMenu as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceFrameVtbl),
            "::",
            stringify!(SetMenu)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceFrameVtbl>())).RemoveMenus as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceFrameVtbl),
            "::",
            stringify!(RemoveMenus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceFrameVtbl>())).SetStatusText as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceFrameVtbl),
            "::",
            stringify!(SetStatusText)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceFrameVtbl>())).EnableModeless as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceFrameVtbl),
            "::",
            stringify!(EnableModeless)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceFrameVtbl>())).TranslateAcceleratorA as *const _
                as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceFrameVtbl),
            "::",
            stringify!(TranslateAcceleratorA)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IOleInPlaceFrame {
    pub lpVtbl: *mut IOleInPlaceFrameVtbl,
}
#[test]
fn bindgen_test_layout_IOleInPlaceFrame() {
    assert_eq!(
        ::std::mem::size_of::<IOleInPlaceFrame>(),
        8usize,
        concat!("Size of: ", stringify!(IOleInPlaceFrame))
    );
    assert_eq!(
        ::std::mem::align_of::<IOleInPlaceFrame>(),
        8usize,
        concat!("Alignment of ", stringify!(IOleInPlaceFrame))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleInPlaceFrame>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceFrame),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPOLEINPLACEOBJECT = *mut IOleInPlaceObject;
extern "C" {
    pub static IID_IOleInPlaceObject: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IOleInPlaceObjectVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleInPlaceObject,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IOleInPlaceObject) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IOleInPlaceObject) -> ULONG>,
    pub GetWindow: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleInPlaceObject, phwnd: *mut HWND) -> HRESULT,
    >,
    pub ContextSensitiveHelp: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleInPlaceObject, fEnterMode: BOOL) -> HRESULT,
    >,
    pub InPlaceDeactivate:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IOleInPlaceObject) -> HRESULT>,
    pub UIDeactivate:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IOleInPlaceObject) -> HRESULT>,
    pub SetObjectRects: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleInPlaceObject,
            lprcPosRect: LPCRECT,
            lprcClipRect: LPCRECT,
        ) -> HRESULT,
    >,
    pub ReactivateAndUndo:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IOleInPlaceObject) -> HRESULT>,
}
#[test]
fn bindgen_test_layout_IOleInPlaceObjectVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IOleInPlaceObjectVtbl>(),
        72usize,
        concat!("Size of: ", stringify!(IOleInPlaceObjectVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IOleInPlaceObjectVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IOleInPlaceObjectVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceObjectVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceObjectVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleInPlaceObjectVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceObjectVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleInPlaceObjectVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceObjectVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleInPlaceObjectVtbl>())).GetWindow as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceObjectVtbl),
            "::",
            stringify!(GetWindow)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceObjectVtbl>())).ContextSensitiveHelp as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceObjectVtbl),
            "::",
            stringify!(ContextSensitiveHelp)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceObjectVtbl>())).InPlaceDeactivate as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceObjectVtbl),
            "::",
            stringify!(InPlaceDeactivate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceObjectVtbl>())).UIDeactivate as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceObjectVtbl),
            "::",
            stringify!(UIDeactivate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceObjectVtbl>())).SetObjectRects as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceObjectVtbl),
            "::",
            stringify!(SetObjectRects)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceObjectVtbl>())).ReactivateAndUndo as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceObjectVtbl),
            "::",
            stringify!(ReactivateAndUndo)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IOleInPlaceObject {
    pub lpVtbl: *mut IOleInPlaceObjectVtbl,
}
#[test]
fn bindgen_test_layout_IOleInPlaceObject() {
    assert_eq!(
        ::std::mem::size_of::<IOleInPlaceObject>(),
        8usize,
        concat!("Size of: ", stringify!(IOleInPlaceObject))
    );
    assert_eq!(
        ::std::mem::align_of::<IOleInPlaceObject>(),
        8usize,
        concat!("Alignment of ", stringify!(IOleInPlaceObject))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleInPlaceObject>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceObject),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPOLEINPLACESITE = *mut IOleInPlaceSite;
extern "C" {
    pub static IID_IOleInPlaceSite: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IOleInPlaceSiteVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleInPlaceSite,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IOleInPlaceSite) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IOleInPlaceSite) -> ULONG>,
    pub GetWindow: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleInPlaceSite, phwnd: *mut HWND) -> HRESULT,
    >,
    pub ContextSensitiveHelp: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleInPlaceSite, fEnterMode: BOOL) -> HRESULT,
    >,
    pub CanInPlaceActivate:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IOleInPlaceSite) -> HRESULT>,
    pub OnInPlaceActivate:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IOleInPlaceSite) -> HRESULT>,
    pub OnUIActivate:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IOleInPlaceSite) -> HRESULT>,
    pub GetWindowContext: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IOleInPlaceSite,
            ppFrame: *mut *mut IOleInPlaceFrame,
            ppDoc: *mut *mut IOleInPlaceUIWindow,
            lprcPosRect: LPRECT,
            lprcClipRect: LPRECT,
            lpFrameInfo: LPOLEINPLACEFRAMEINFO,
        ) -> HRESULT,
    >,
    pub Scroll: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleInPlaceSite, scrollExtant: SIZE) -> HRESULT,
    >,
    pub OnUIDeactivate: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleInPlaceSite, fUndoable: BOOL) -> HRESULT,
    >,
    pub OnInPlaceDeactivate:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IOleInPlaceSite) -> HRESULT>,
    pub DiscardUndoState:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IOleInPlaceSite) -> HRESULT>,
    pub DeactivateAndUndo:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IOleInPlaceSite) -> HRESULT>,
    pub OnPosRectChange: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IOleInPlaceSite, lprcPosRect: LPCRECT) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IOleInPlaceSiteVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IOleInPlaceSiteVtbl>(),
        120usize,
        concat!("Size of: ", stringify!(IOleInPlaceSiteVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IOleInPlaceSiteVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IOleInPlaceSiteVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceSiteVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceSiteVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleInPlaceSiteVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceSiteVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleInPlaceSiteVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceSiteVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleInPlaceSiteVtbl>())).GetWindow as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceSiteVtbl),
            "::",
            stringify!(GetWindow)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceSiteVtbl>())).ContextSensitiveHelp as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceSiteVtbl),
            "::",
            stringify!(ContextSensitiveHelp)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceSiteVtbl>())).CanInPlaceActivate as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceSiteVtbl),
            "::",
            stringify!(CanInPlaceActivate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceSiteVtbl>())).OnInPlaceActivate as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceSiteVtbl),
            "::",
            stringify!(OnInPlaceActivate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceSiteVtbl>())).OnUIActivate as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceSiteVtbl),
            "::",
            stringify!(OnUIActivate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceSiteVtbl>())).GetWindowContext as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceSiteVtbl),
            "::",
            stringify!(GetWindowContext)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleInPlaceSiteVtbl>())).Scroll as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceSiteVtbl),
            "::",
            stringify!(Scroll)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceSiteVtbl>())).OnUIDeactivate as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceSiteVtbl),
            "::",
            stringify!(OnUIDeactivate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceSiteVtbl>())).OnInPlaceDeactivate as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceSiteVtbl),
            "::",
            stringify!(OnInPlaceDeactivate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceSiteVtbl>())).DiscardUndoState as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceSiteVtbl),
            "::",
            stringify!(DiscardUndoState)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceSiteVtbl>())).DeactivateAndUndo as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceSiteVtbl),
            "::",
            stringify!(DeactivateAndUndo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IOleInPlaceSiteVtbl>())).OnPosRectChange as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceSiteVtbl),
            "::",
            stringify!(OnPosRectChange)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IOleInPlaceSite {
    pub lpVtbl: *mut IOleInPlaceSiteVtbl,
}
#[test]
fn bindgen_test_layout_IOleInPlaceSite() {
    assert_eq!(
        ::std::mem::size_of::<IOleInPlaceSite>(),
        8usize,
        concat!("Size of: ", stringify!(IOleInPlaceSite))
    );
    assert_eq!(
        ::std::mem::align_of::<IOleInPlaceSite>(),
        8usize,
        concat!("Alignment of ", stringify!(IOleInPlaceSite))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IOleInPlaceSite>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IOleInPlaceSite),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IContinue: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IContinueVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IContinue,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IContinue) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IContinue) -> ULONG>,
    pub FContinue: ::std::option::Option<unsafe extern "C" fn(This: *mut IContinue) -> HRESULT>,
}
#[test]
fn bindgen_test_layout_IContinueVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IContinueVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IContinueVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IContinueVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IContinueVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IContinueVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IContinueVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IContinueVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IContinueVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IContinueVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IContinueVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IContinueVtbl>())).FContinue as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IContinueVtbl),
            "::",
            stringify!(FContinue)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IContinue {
    pub lpVtbl: *mut IContinueVtbl,
}
#[test]
fn bindgen_test_layout_IContinue() {
    assert_eq!(
        ::std::mem::size_of::<IContinue>(),
        8usize,
        concat!("Size of: ", stringify!(IContinue))
    );
    assert_eq!(
        ::std::mem::align_of::<IContinue>(),
        8usize,
        concat!("Alignment of ", stringify!(IContinue))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IContinue>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IContinue),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPVIEWOBJECT = *mut IViewObject;
extern "C" {
    pub static IID_IViewObject: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IViewObjectVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IViewObject,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IViewObject) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IViewObject) -> ULONG>,
    pub Draw: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IViewObject,
            dwDrawAspect: DWORD,
            lindex: LONG,
            pvAspect: *mut ::std::os::raw::c_void,
            ptd: *mut DVTARGETDEVICE,
            hdcTargetDev: HDC,
            hdcDraw: HDC,
            lprcBounds: LPCRECTL,
            lprcWBounds: LPCRECTL,
            pfnContinue: ::std::option::Option<unsafe extern "C" fn(dwContinue: ULONG_PTR) -> BOOL>,
            dwContinue: ULONG_PTR,
        ) -> HRESULT,
    >,
    pub GetColorSet: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IViewObject,
            dwDrawAspect: DWORD,
            lindex: LONG,
            pvAspect: *mut ::std::os::raw::c_void,
            ptd: *mut DVTARGETDEVICE,
            hicTargetDev: HDC,
            ppColorSet: *mut *mut LOGPALETTE,
        ) -> HRESULT,
    >,
    pub Freeze: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IViewObject,
            dwDrawAspect: DWORD,
            lindex: LONG,
            pvAspect: *mut ::std::os::raw::c_void,
            pdwFreeze: *mut DWORD,
        ) -> HRESULT,
    >,
    pub Unfreeze: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IViewObject, dwFreeze: DWORD) -> HRESULT,
    >,
    pub SetAdvise: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IViewObject,
            aspects: DWORD,
            advf: DWORD,
            pAdvSink: *mut IAdviseSink,
        ) -> HRESULT,
    >,
    pub GetAdvise: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IViewObject,
            pAspects: *mut DWORD,
            pAdvf: *mut DWORD,
            ppAdvSink: *mut *mut IAdviseSink,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IViewObjectVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IViewObjectVtbl>(),
        72usize,
        concat!("Size of: ", stringify!(IViewObjectVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IViewObjectVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IViewObjectVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IViewObjectVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IViewObjectVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IViewObjectVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IViewObjectVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IViewObjectVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IViewObjectVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IViewObjectVtbl>())).Draw as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IViewObjectVtbl),
            "::",
            stringify!(Draw)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IViewObjectVtbl>())).GetColorSet as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IViewObjectVtbl),
            "::",
            stringify!(GetColorSet)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IViewObjectVtbl>())).Freeze as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IViewObjectVtbl),
            "::",
            stringify!(Freeze)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IViewObjectVtbl>())).Unfreeze as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IViewObjectVtbl),
            "::",
            stringify!(Unfreeze)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IViewObjectVtbl>())).SetAdvise as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IViewObjectVtbl),
            "::",
            stringify!(SetAdvise)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IViewObjectVtbl>())).GetAdvise as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IViewObjectVtbl),
            "::",
            stringify!(GetAdvise)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IViewObject {
    pub lpVtbl: *mut IViewObjectVtbl,
}
#[test]
fn bindgen_test_layout_IViewObject() {
    assert_eq!(
        ::std::mem::size_of::<IViewObject>(),
        8usize,
        concat!("Size of: ", stringify!(IViewObject))
    );
    assert_eq!(
        ::std::mem::align_of::<IViewObject>(),
        8usize,
        concat!("Alignment of ", stringify!(IViewObject))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IViewObject>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IViewObject),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IViewObject_RemoteDraw_Proxy(
        This: *mut IViewObject,
        dwDrawAspect: DWORD,
        lindex: LONG,
        pvAspect: ULONG_PTR,
        ptd: *mut DVTARGETDEVICE,
        hdcTargetDev: HDC,
        hdcDraw: HDC,
        lprcBounds: LPCRECTL,
        lprcWBounds: LPCRECTL,
        pContinue: *mut IContinue,
    ) -> HRESULT;
}
extern "C" {
    pub fn IViewObject_RemoteDraw_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn IViewObject_RemoteGetColorSet_Proxy(
        This: *mut IViewObject,
        dwDrawAspect: DWORD,
        lindex: LONG,
        pvAspect: ULONG_PTR,
        ptd: *mut DVTARGETDEVICE,
        hicTargetDev: ULONG_PTR,
        ppColorSet: *mut *mut LOGPALETTE,
    ) -> HRESULT;
}
extern "C" {
    pub fn IViewObject_RemoteGetColorSet_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn IViewObject_RemoteFreeze_Proxy(
        This: *mut IViewObject,
        dwDrawAspect: DWORD,
        lindex: LONG,
        pvAspect: ULONG_PTR,
        pdwFreeze: *mut DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn IViewObject_RemoteFreeze_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn IViewObject_RemoteGetAdvise_Proxy(
        This: *mut IViewObject,
        pAspects: *mut DWORD,
        pAdvf: *mut DWORD,
        ppAdvSink: *mut *mut IAdviseSink,
    ) -> HRESULT;
}
extern "C" {
    pub fn IViewObject_RemoteGetAdvise_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
pub type LPVIEWOBJECT2 = *mut IViewObject2;
extern "C" {
    pub static IID_IViewObject2: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IViewObject2Vtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IViewObject2,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IViewObject2) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IViewObject2) -> ULONG>,
    pub Draw: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IViewObject2,
            dwDrawAspect: DWORD,
            lindex: LONG,
            pvAspect: *mut ::std::os::raw::c_void,
            ptd: *mut DVTARGETDEVICE,
            hdcTargetDev: HDC,
            hdcDraw: HDC,
            lprcBounds: LPCRECTL,
            lprcWBounds: LPCRECTL,
            pfnContinue: ::std::option::Option<unsafe extern "C" fn(dwContinue: ULONG_PTR) -> BOOL>,
            dwContinue: ULONG_PTR,
        ) -> HRESULT,
    >,
    pub GetColorSet: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IViewObject2,
            dwDrawAspect: DWORD,
            lindex: LONG,
            pvAspect: *mut ::std::os::raw::c_void,
            ptd: *mut DVTARGETDEVICE,
            hicTargetDev: HDC,
            ppColorSet: *mut *mut LOGPALETTE,
        ) -> HRESULT,
    >,
    pub Freeze: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IViewObject2,
            dwDrawAspect: DWORD,
            lindex: LONG,
            pvAspect: *mut ::std::os::raw::c_void,
            pdwFreeze: *mut DWORD,
        ) -> HRESULT,
    >,
    pub Unfreeze: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IViewObject2, dwFreeze: DWORD) -> HRESULT,
    >,
    pub SetAdvise: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IViewObject2,
            aspects: DWORD,
            advf: DWORD,
            pAdvSink: *mut IAdviseSink,
        ) -> HRESULT,
    >,
    pub GetAdvise: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IViewObject2,
            pAspects: *mut DWORD,
            pAdvf: *mut DWORD,
            ppAdvSink: *mut *mut IAdviseSink,
        ) -> HRESULT,
    >,
    pub GetExtent: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IViewObject2,
            dwDrawAspect: DWORD,
            lindex: LONG,
            ptd: *mut DVTARGETDEVICE,
            lpsizel: LPSIZEL,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IViewObject2Vtbl() {
    assert_eq!(
        ::std::mem::size_of::<IViewObject2Vtbl>(),
        80usize,
        concat!("Size of: ", stringify!(IViewObject2Vtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IViewObject2Vtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IViewObject2Vtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IViewObject2Vtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IViewObject2Vtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IViewObject2Vtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IViewObject2Vtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IViewObject2Vtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IViewObject2Vtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IViewObject2Vtbl>())).Draw as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IViewObject2Vtbl),
            "::",
            stringify!(Draw)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IViewObject2Vtbl>())).GetColorSet as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IViewObject2Vtbl),
            "::",
            stringify!(GetColorSet)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IViewObject2Vtbl>())).Freeze as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IViewObject2Vtbl),
            "::",
            stringify!(Freeze)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IViewObject2Vtbl>())).Unfreeze as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IViewObject2Vtbl),
            "::",
            stringify!(Unfreeze)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IViewObject2Vtbl>())).SetAdvise as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IViewObject2Vtbl),
            "::",
            stringify!(SetAdvise)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IViewObject2Vtbl>())).GetAdvise as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IViewObject2Vtbl),
            "::",
            stringify!(GetAdvise)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IViewObject2Vtbl>())).GetExtent as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IViewObject2Vtbl),
            "::",
            stringify!(GetExtent)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IViewObject2 {
    pub lpVtbl: *mut IViewObject2Vtbl,
}
#[test]
fn bindgen_test_layout_IViewObject2() {
    assert_eq!(
        ::std::mem::size_of::<IViewObject2>(),
        8usize,
        concat!("Size of: ", stringify!(IViewObject2))
    );
    assert_eq!(
        ::std::mem::align_of::<IViewObject2>(),
        8usize,
        concat!("Alignment of ", stringify!(IViewObject2))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IViewObject2>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IViewObject2),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPDROPSOURCE = *mut IDropSource;
extern "C" {
    pub static IID_IDropSource: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IDropSourceVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IDropSource,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IDropSource) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IDropSource) -> ULONG>,
    pub QueryContinueDrag: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IDropSource,
            fEscapePressed: BOOL,
            grfKeyState: DWORD,
        ) -> HRESULT,
    >,
    pub GiveFeedback: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IDropSource, dwEffect: DWORD) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IDropSourceVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IDropSourceVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IDropSourceVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IDropSourceVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IDropSourceVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDropSourceVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IDropSourceVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDropSourceVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IDropSourceVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDropSourceVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IDropSourceVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IDropSourceVtbl>())).QueryContinueDrag as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IDropSourceVtbl),
            "::",
            stringify!(QueryContinueDrag)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDropSourceVtbl>())).GiveFeedback as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IDropSourceVtbl),
            "::",
            stringify!(GiveFeedback)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IDropSource {
    pub lpVtbl: *mut IDropSourceVtbl,
}
#[test]
fn bindgen_test_layout_IDropSource() {
    assert_eq!(
        ::std::mem::size_of::<IDropSource>(),
        8usize,
        concat!("Size of: ", stringify!(IDropSource))
    );
    assert_eq!(
        ::std::mem::align_of::<IDropSource>(),
        8usize,
        concat!("Alignment of ", stringify!(IDropSource))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDropSource>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IDropSource),
            "::",
            stringify!(lpVtbl)
        )
    );
}
pub type LPDROPTARGET = *mut IDropTarget;
extern "C" {
    pub static IID_IDropTarget: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IDropTargetVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IDropTarget,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IDropTarget) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IDropTarget) -> ULONG>,
    pub DragEnter: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IDropTarget,
            pDataObj: *mut IDataObject,
            grfKeyState: DWORD,
            pt: POINTL,
            pdwEffect: *mut DWORD,
        ) -> HRESULT,
    >,
    pub DragOver: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IDropTarget,
            grfKeyState: DWORD,
            pt: POINTL,
            pdwEffect: *mut DWORD,
        ) -> HRESULT,
    >,
    pub DragLeave: ::std::option::Option<unsafe extern "C" fn(This: *mut IDropTarget) -> HRESULT>,
    pub Drop: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IDropTarget,
            pDataObj: *mut IDataObject,
            grfKeyState: DWORD,
            pt: POINTL,
            pdwEffect: *mut DWORD,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IDropTargetVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IDropTargetVtbl>(),
        56usize,
        concat!("Size of: ", stringify!(IDropTargetVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IDropTargetVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IDropTargetVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDropTargetVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IDropTargetVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDropTargetVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IDropTargetVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDropTargetVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IDropTargetVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDropTargetVtbl>())).DragEnter as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IDropTargetVtbl),
            "::",
            stringify!(DragEnter)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDropTargetVtbl>())).DragOver as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IDropTargetVtbl),
            "::",
            stringify!(DragOver)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDropTargetVtbl>())).DragLeave as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IDropTargetVtbl),
            "::",
            stringify!(DragLeave)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDropTargetVtbl>())).Drop as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IDropTargetVtbl),
            "::",
            stringify!(Drop)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IDropTarget {
    pub lpVtbl: *mut IDropTargetVtbl,
}
#[test]
fn bindgen_test_layout_IDropTarget() {
    assert_eq!(
        ::std::mem::size_of::<IDropTarget>(),
        8usize,
        concat!("Size of: ", stringify!(IDropTarget))
    );
    assert_eq!(
        ::std::mem::align_of::<IDropTarget>(),
        8usize,
        concat!("Alignment of ", stringify!(IDropTarget))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDropTarget>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IDropTarget),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IDropSourceNotify: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IDropSourceNotifyVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IDropSourceNotify,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IDropSourceNotify) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IDropSourceNotify) -> ULONG>,
    pub DragEnterTarget: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IDropSourceNotify, hwndTarget: HWND) -> HRESULT,
    >,
    pub DragLeaveTarget:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IDropSourceNotify) -> HRESULT>,
}
#[test]
fn bindgen_test_layout_IDropSourceNotifyVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IDropSourceNotifyVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IDropSourceNotifyVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IDropSourceNotifyVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IDropSourceNotifyVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IDropSourceNotifyVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IDropSourceNotifyVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDropSourceNotifyVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IDropSourceNotifyVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDropSourceNotifyVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IDropSourceNotifyVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IDropSourceNotifyVtbl>())).DragEnterTarget as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IDropSourceNotifyVtbl),
            "::",
            stringify!(DragEnterTarget)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IDropSourceNotifyVtbl>())).DragLeaveTarget as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IDropSourceNotifyVtbl),
            "::",
            stringify!(DragLeaveTarget)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IDropSourceNotify {
    pub lpVtbl: *mut IDropSourceNotifyVtbl,
}
#[test]
fn bindgen_test_layout_IDropSourceNotify() {
    assert_eq!(
        ::std::mem::size_of::<IDropSourceNotify>(),
        8usize,
        concat!("Size of: ", stringify!(IDropSourceNotify))
    );
    assert_eq!(
        ::std::mem::align_of::<IDropSourceNotify>(),
        8usize,
        concat!("Alignment of ", stringify!(IDropSourceNotify))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDropSourceNotify>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IDropSourceNotify),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IEnterpriseDropTarget: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IEnterpriseDropTargetVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IEnterpriseDropTarget,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IEnterpriseDropTarget) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IEnterpriseDropTarget) -> ULONG>,
    pub SetDropSourceEnterpriseId: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IEnterpriseDropTarget, identity: LPCWSTR) -> HRESULT,
    >,
    pub IsEvaluatingEdpPolicy: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IEnterpriseDropTarget, value: *mut BOOL) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IEnterpriseDropTargetVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IEnterpriseDropTargetVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IEnterpriseDropTargetVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IEnterpriseDropTargetVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IEnterpriseDropTargetVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IEnterpriseDropTargetVtbl>())).QueryInterface as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnterpriseDropTargetVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IEnterpriseDropTargetVtbl>())).AddRef as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnterpriseDropTargetVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IEnterpriseDropTargetVtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnterpriseDropTargetVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IEnterpriseDropTargetVtbl>())).SetDropSourceEnterpriseId
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnterpriseDropTargetVtbl),
            "::",
            stringify!(SetDropSourceEnterpriseId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IEnterpriseDropTargetVtbl>())).IsEvaluatingEdpPolicy as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnterpriseDropTargetVtbl),
            "::",
            stringify!(IsEvaluatingEdpPolicy)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IEnterpriseDropTarget {
    pub lpVtbl: *mut IEnterpriseDropTargetVtbl,
}
#[test]
fn bindgen_test_layout_IEnterpriseDropTarget() {
    assert_eq!(
        ::std::mem::size_of::<IEnterpriseDropTarget>(),
        8usize,
        concat!("Size of: ", stringify!(IEnterpriseDropTarget))
    );
    assert_eq!(
        ::std::mem::align_of::<IEnterpriseDropTarget>(),
        8usize,
        concat!("Alignment of ", stringify!(IEnterpriseDropTarget))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnterpriseDropTarget>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnterpriseDropTarget),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_oleidl_0000_0024_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_oleidl_0000_0024_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPENUMOLEVERB = *mut IEnumOLEVERB;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagOLEVERB {
    pub lVerb: LONG,
    pub lpszVerbName: LPOLESTR,
    pub fuFlags: DWORD,
    pub grfAttribs: DWORD,
}
#[test]
fn bindgen_test_layout_tagOLEVERB() {
    assert_eq!(
        ::std::mem::size_of::<tagOLEVERB>(),
        24usize,
        concat!("Size of: ", stringify!(tagOLEVERB))
    );
    assert_eq!(
        ::std::mem::align_of::<tagOLEVERB>(),
        8usize,
        concat!("Alignment of ", stringify!(tagOLEVERB))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOLEVERB>())).lVerb as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOLEVERB),
            "::",
            stringify!(lVerb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOLEVERB>())).lpszVerbName as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOLEVERB),
            "::",
            stringify!(lpszVerbName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOLEVERB>())).fuFlags as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOLEVERB),
            "::",
            stringify!(fuFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOLEVERB>())).grfAttribs as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOLEVERB),
            "::",
            stringify!(grfAttribs)
        )
    );
}
pub type OLEVERB = tagOLEVERB;
pub type LPOLEVERB = *mut tagOLEVERB;
pub const tagOLEVERBATTRIB_OLEVERBATTRIB_NEVERDIRTIES: tagOLEVERBATTRIB = 1;
pub const tagOLEVERBATTRIB_OLEVERBATTRIB_ONCONTAINERMENU: tagOLEVERBATTRIB = 2;
pub type tagOLEVERBATTRIB = ::std::os::raw::c_int;
pub use self::tagOLEVERBATTRIB as OLEVERBATTRIB;
extern "C" {
    pub static IID_IEnumOLEVERB: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IEnumOLEVERBVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IEnumOLEVERB,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IEnumOLEVERB) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IEnumOLEVERB) -> ULONG>,
    pub Next: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IEnumOLEVERB,
            celt: ULONG,
            rgelt: LPOLEVERB,
            pceltFetched: *mut ULONG,
        ) -> HRESULT,
    >,
    pub Skip: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IEnumOLEVERB, celt: ULONG) -> HRESULT,
    >,
    pub Reset: ::std::option::Option<unsafe extern "C" fn(This: *mut IEnumOLEVERB) -> HRESULT>,
    pub Clone: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IEnumOLEVERB, ppenum: *mut *mut IEnumOLEVERB) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IEnumOLEVERBVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IEnumOLEVERBVtbl>(),
        56usize,
        concat!("Size of: ", stringify!(IEnumOLEVERBVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IEnumOLEVERBVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IEnumOLEVERBVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumOLEVERBVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumOLEVERBVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumOLEVERBVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumOLEVERBVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumOLEVERBVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumOLEVERBVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumOLEVERBVtbl>())).Next as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumOLEVERBVtbl),
            "::",
            stringify!(Next)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumOLEVERBVtbl>())).Skip as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumOLEVERBVtbl),
            "::",
            stringify!(Skip)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumOLEVERBVtbl>())).Reset as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumOLEVERBVtbl),
            "::",
            stringify!(Reset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumOLEVERBVtbl>())).Clone as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumOLEVERBVtbl),
            "::",
            stringify!(Clone)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IEnumOLEVERB {
    pub lpVtbl: *mut IEnumOLEVERBVtbl,
}
#[test]
fn bindgen_test_layout_IEnumOLEVERB() {
    assert_eq!(
        ::std::mem::size_of::<IEnumOLEVERB>(),
        8usize,
        concat!("Size of: ", stringify!(IEnumOLEVERB))
    );
    assert_eq!(
        ::std::mem::align_of::<IEnumOLEVERB>(),
        8usize,
        concat!("Alignment of ", stringify!(IEnumOLEVERB))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEnumOLEVERB>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IEnumOLEVERB),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IEnumOLEVERB_RemoteNext_Proxy(
        This: *mut IEnumOLEVERB,
        celt: ULONG,
        rgelt: LPOLEVERB,
        pceltFetched: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IEnumOLEVERB_RemoteNext_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub static mut __MIDL_itf_oleidl_0000_0025_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_oleidl_0000_0025_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub fn HACCEL_UserSize(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut HACCEL,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn HACCEL_UserMarshal(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut HACCEL,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn HACCEL_UserUnmarshal(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut HACCEL,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn HACCEL_UserFree(arg1: *mut ::std::os::raw::c_ulong, arg2: *mut HACCEL);
}
extern "C" {
    pub fn HGLOBAL_UserSize(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut HGLOBAL,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn HGLOBAL_UserMarshal(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut HGLOBAL,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn HGLOBAL_UserUnmarshal(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut HGLOBAL,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn HGLOBAL_UserFree(arg1: *mut ::std::os::raw::c_ulong, arg2: *mut HGLOBAL);
}
extern "C" {
    pub fn HMENU_UserSize(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut HMENU,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn HMENU_UserMarshal(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut HMENU,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn HMENU_UserUnmarshal(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut HMENU,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn HMENU_UserFree(arg1: *mut ::std::os::raw::c_ulong, arg2: *mut HMENU);
}
extern "C" {
    pub fn HWND_UserSize(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut HWND,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn HWND_UserMarshal(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut HWND,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn HWND_UserUnmarshal(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut HWND,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn HWND_UserFree(arg1: *mut ::std::os::raw::c_ulong, arg2: *mut HWND);
}
extern "C" {
    pub fn HACCEL_UserSize64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut HACCEL,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn HACCEL_UserMarshal64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut HACCEL,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn HACCEL_UserUnmarshal64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut HACCEL,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn HACCEL_UserFree64(arg1: *mut ::std::os::raw::c_ulong, arg2: *mut HACCEL);
}
extern "C" {
    pub fn HGLOBAL_UserSize64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut HGLOBAL,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn HGLOBAL_UserMarshal64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut HGLOBAL,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn HGLOBAL_UserUnmarshal64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut HGLOBAL,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn HGLOBAL_UserFree64(arg1: *mut ::std::os::raw::c_ulong, arg2: *mut HGLOBAL);
}
extern "C" {
    pub fn HMENU_UserSize64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut HMENU,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn HMENU_UserMarshal64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut HMENU,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn HMENU_UserUnmarshal64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut HMENU,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn HMENU_UserFree64(arg1: *mut ::std::os::raw::c_ulong, arg2: *mut HMENU);
}
extern "C" {
    pub fn HWND_UserSize64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: ::std::os::raw::c_ulong,
        arg3: *mut HWND,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn HWND_UserMarshal64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut HWND,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn HWND_UserUnmarshal64(
        arg1: *mut ::std::os::raw::c_ulong,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: *mut HWND,
    ) -> *mut ::std::os::raw::c_uchar;
}
extern "C" {
    pub fn HWND_UserFree64(arg1: *mut ::std::os::raw::c_ulong, arg2: *mut HWND);
}
extern "C" {
    pub fn IOleCache2_UpdateCache_Proxy(
        This: *mut IOleCache2,
        pDataObject: LPDATAOBJECT,
        grfUpdf: DWORD,
        pReserved: LPVOID,
    ) -> HRESULT;
}
extern "C" {
    pub fn IOleCache2_UpdateCache_Stub(
        This: *mut IOleCache2,
        pDataObject: LPDATAOBJECT,
        grfUpdf: DWORD,
        pReserved: LONG_PTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn IOleInPlaceActiveObject_TranslateAccelerator_Proxy(
        This: *mut IOleInPlaceActiveObject,
        lpmsg: LPMSG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IOleInPlaceActiveObject_TranslateAccelerator_Stub(
        This: *mut IOleInPlaceActiveObject,
    ) -> HRESULT;
}
extern "C" {
    pub fn IOleInPlaceActiveObject_ResizeBorder_Proxy(
        This: *mut IOleInPlaceActiveObject,
        prcBorder: LPCRECT,
        pUIWindow: *mut IOleInPlaceUIWindow,
        fFrameWindow: BOOL,
    ) -> HRESULT;
}
extern "C" {
    pub fn IOleInPlaceActiveObject_ResizeBorder_Stub(
        This: *mut IOleInPlaceActiveObject,
        prcBorder: LPCRECT,
        riid: *const IID,
        pUIWindow: *mut IOleInPlaceUIWindow,
        fFrameWindow: BOOL,
    ) -> HRESULT;
}
extern "C" {
    pub fn IViewObject_Draw_Proxy(
        This: *mut IViewObject,
        dwDrawAspect: DWORD,
        lindex: LONG,
        pvAspect: *mut ::std::os::raw::c_void,
        ptd: *mut DVTARGETDEVICE,
        hdcTargetDev: HDC,
        hdcDraw: HDC,
        lprcBounds: LPCRECTL,
        lprcWBounds: LPCRECTL,
        pfnContinue: ::std::option::Option<unsafe extern "C" fn(dwContinue: ULONG_PTR) -> BOOL>,
        dwContinue: ULONG_PTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn IViewObject_Draw_Stub(
        This: *mut IViewObject,
        dwDrawAspect: DWORD,
        lindex: LONG,
        pvAspect: ULONG_PTR,
        ptd: *mut DVTARGETDEVICE,
        hdcTargetDev: HDC,
        hdcDraw: HDC,
        lprcBounds: LPCRECTL,
        lprcWBounds: LPCRECTL,
        pContinue: *mut IContinue,
    ) -> HRESULT;
}
extern "C" {
    pub fn IViewObject_GetColorSet_Proxy(
        This: *mut IViewObject,
        dwDrawAspect: DWORD,
        lindex: LONG,
        pvAspect: *mut ::std::os::raw::c_void,
        ptd: *mut DVTARGETDEVICE,
        hicTargetDev: HDC,
        ppColorSet: *mut *mut LOGPALETTE,
    ) -> HRESULT;
}
extern "C" {
    pub fn IViewObject_GetColorSet_Stub(
        This: *mut IViewObject,
        dwDrawAspect: DWORD,
        lindex: LONG,
        pvAspect: ULONG_PTR,
        ptd: *mut DVTARGETDEVICE,
        hicTargetDev: ULONG_PTR,
        ppColorSet: *mut *mut LOGPALETTE,
    ) -> HRESULT;
}
extern "C" {
    pub fn IViewObject_Freeze_Proxy(
        This: *mut IViewObject,
        dwDrawAspect: DWORD,
        lindex: LONG,
        pvAspect: *mut ::std::os::raw::c_void,
        pdwFreeze: *mut DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn IViewObject_Freeze_Stub(
        This: *mut IViewObject,
        dwDrawAspect: DWORD,
        lindex: LONG,
        pvAspect: ULONG_PTR,
        pdwFreeze: *mut DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn IViewObject_GetAdvise_Proxy(
        This: *mut IViewObject,
        pAspects: *mut DWORD,
        pAdvf: *mut DWORD,
        ppAdvSink: *mut *mut IAdviseSink,
    ) -> HRESULT;
}
extern "C" {
    pub fn IViewObject_GetAdvise_Stub(
        This: *mut IViewObject,
        pAspects: *mut DWORD,
        pAdvf: *mut DWORD,
        ppAdvSink: *mut *mut IAdviseSink,
    ) -> HRESULT;
}
extern "C" {
    pub fn IEnumOLEVERB_Next_Proxy(
        This: *mut IEnumOLEVERB,
        celt: ULONG,
        rgelt: LPOLEVERB,
        pceltFetched: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn IEnumOLEVERB_Next_Stub(
        This: *mut IEnumOLEVERB,
        celt: ULONG,
        rgelt: LPOLEVERB,
        pceltFetched: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub static mut __MIDL_itf_servprov_0000_0000_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_servprov_0000_0000_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPSERVICEPROVIDER = *mut IServiceProvider;
extern "C" {
    pub static IID_IServiceProvider: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IServiceProviderVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IServiceProvider,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IServiceProvider) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IServiceProvider) -> ULONG>,
    pub QueryService: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IServiceProvider,
            guidService: *const GUID,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IServiceProviderVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IServiceProviderVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IServiceProviderVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IServiceProviderVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IServiceProviderVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IServiceProviderVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IServiceProviderVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IServiceProviderVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IServiceProviderVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IServiceProviderVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IServiceProviderVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IServiceProviderVtbl>())).QueryService as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IServiceProviderVtbl),
            "::",
            stringify!(QueryService)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IServiceProvider {
    pub lpVtbl: *mut IServiceProviderVtbl,
}
#[test]
fn bindgen_test_layout_IServiceProvider() {
    assert_eq!(
        ::std::mem::size_of::<IServiceProvider>(),
        8usize,
        concat!("Size of: ", stringify!(IServiceProvider))
    );
    assert_eq!(
        ::std::mem::align_of::<IServiceProvider>(),
        8usize,
        concat!("Alignment of ", stringify!(IServiceProvider))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IServiceProvider>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IServiceProvider),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IServiceProvider_RemoteQueryService_Proxy(
        This: *mut IServiceProvider,
        guidService: *const GUID,
        riid: *const IID,
        ppvObject: *mut *mut IUnknown,
    ) -> HRESULT;
}
extern "C" {
    pub fn IServiceProvider_RemoteQueryService_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub static mut __MIDL_itf_servprov_0000_0001_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_servprov_0000_0001_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub fn IServiceProvider_QueryService_Proxy(
        This: *mut IServiceProvider,
        guidService: *const GUID,
        riid: *const IID,
        ppvObject: *mut *mut ::std::os::raw::c_void,
    ) -> HRESULT;
}
extern "C" {
    pub fn IServiceProvider_QueryService_Stub(
        This: *mut IServiceProvider,
        guidService: *const GUID,
        riid: *const IID,
        ppvObject: *mut *mut IUnknown,
    ) -> HRESULT;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct DOMDocument {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct DOMFreeThreadedDocument {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct XMLHTTPRequest {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct XMLDSOControl {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct XMLDocument {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _xml_error {
    pub _nLine: ::std::os::raw::c_uint,
    pub _pchBuf: BSTR,
    pub _cchBuf: ::std::os::raw::c_uint,
    pub _ich: ::std::os::raw::c_uint,
    pub _pszFound: BSTR,
    pub _pszExpected: BSTR,
    pub _reserved1: DWORD,
    pub _reserved2: DWORD,
}
#[test]
fn bindgen_test_layout__xml_error() {
    assert_eq!(
        ::std::mem::size_of::<_xml_error>(),
        48usize,
        concat!("Size of: ", stringify!(_xml_error))
    );
    assert_eq!(
        ::std::mem::align_of::<_xml_error>(),
        8usize,
        concat!("Alignment of ", stringify!(_xml_error))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_xml_error>()))._nLine as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_xml_error),
            "::",
            stringify!(_nLine)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_xml_error>()))._pchBuf as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_xml_error),
            "::",
            stringify!(_pchBuf)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_xml_error>()))._cchBuf as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_xml_error),
            "::",
            stringify!(_cchBuf)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_xml_error>()))._ich as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_xml_error),
            "::",
            stringify!(_ich)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_xml_error>()))._pszFound as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_xml_error),
            "::",
            stringify!(_pszFound)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_xml_error>()))._pszExpected as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_xml_error),
            "::",
            stringify!(_pszExpected)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_xml_error>()))._reserved1 as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_xml_error),
            "::",
            stringify!(_reserved1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_xml_error>()))._reserved2 as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_xml_error),
            "::",
            stringify!(_reserved2)
        )
    );
}
pub type XML_ERROR = _xml_error;
extern "C" {
    pub static mut __MIDL_itf_msxml_0000_0000_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_msxml_0000_0000_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub const tagDOMNodeType_NODE_INVALID: tagDOMNodeType = 0;
pub const tagDOMNodeType_NODE_ELEMENT: tagDOMNodeType = 1;
pub const tagDOMNodeType_NODE_ATTRIBUTE: tagDOMNodeType = 2;
pub const tagDOMNodeType_NODE_TEXT: tagDOMNodeType = 3;
pub const tagDOMNodeType_NODE_CDATA_SECTION: tagDOMNodeType = 4;
pub const tagDOMNodeType_NODE_ENTITY_REFERENCE: tagDOMNodeType = 5;
pub const tagDOMNodeType_NODE_ENTITY: tagDOMNodeType = 6;
pub const tagDOMNodeType_NODE_PROCESSING_INSTRUCTION: tagDOMNodeType = 7;
pub const tagDOMNodeType_NODE_COMMENT: tagDOMNodeType = 8;
pub const tagDOMNodeType_NODE_DOCUMENT: tagDOMNodeType = 9;
pub const tagDOMNodeType_NODE_DOCUMENT_TYPE: tagDOMNodeType = 10;
pub const tagDOMNodeType_NODE_DOCUMENT_FRAGMENT: tagDOMNodeType = 11;
pub const tagDOMNodeType_NODE_NOTATION: tagDOMNodeType = 12;
pub type tagDOMNodeType = ::std::os::raw::c_int;
pub use self::tagDOMNodeType as DOMNodeType;
pub const tagXMLEMEM_TYPE_XMLELEMTYPE_ELEMENT: tagXMLEMEM_TYPE = 0;
pub const tagXMLEMEM_TYPE_XMLELEMTYPE_TEXT: tagXMLEMEM_TYPE = 1;
pub const tagXMLEMEM_TYPE_XMLELEMTYPE_COMMENT: tagXMLEMEM_TYPE = 2;
pub const tagXMLEMEM_TYPE_XMLELEMTYPE_DOCUMENT: tagXMLEMEM_TYPE = 3;
pub const tagXMLEMEM_TYPE_XMLELEMTYPE_DTD: tagXMLEMEM_TYPE = 4;
pub const tagXMLEMEM_TYPE_XMLELEMTYPE_PI: tagXMLEMEM_TYPE = 5;
pub const tagXMLEMEM_TYPE_XMLELEMTYPE_OTHER: tagXMLEMEM_TYPE = 6;
pub type tagXMLEMEM_TYPE = ::std::os::raw::c_int;
pub use self::tagXMLEMEM_TYPE as XMLELEM_TYPE;
extern "C" {
    pub static LIBID_MSXML: IID;
}
extern "C" {
    pub static IID_IXMLDOMImplementation: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMImplementationVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMImplementation,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMImplementation) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMImplementation) -> ULONG>,
    pub GetTypeInfoCount: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMImplementation, pctinfo: *mut UINT) -> HRESULT,
    >,
    pub GetTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMImplementation,
            iTInfo: UINT,
            lcid: LCID,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetIDsOfNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMImplementation,
            riid: *const IID,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
            lcid: LCID,
            rgDispId: *mut DISPID,
        ) -> HRESULT,
    >,
    pub Invoke: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMImplementation,
            dispIdMember: DISPID,
            riid: *const IID,
            lcid: LCID,
            wFlags: WORD,
            pDispParams: *mut DISPPARAMS,
            pVarResult: *mut VARIANT,
            pExcepInfo: *mut EXCEPINFO,
            puArgErr: *mut UINT,
        ) -> HRESULT,
    >,
    pub hasFeature: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMImplementation,
            feature: BSTR,
            version: BSTR,
            hasFeature: *mut VARIANT_BOOL,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IXMLDOMImplementationVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMImplementationVtbl>(),
        64usize,
        concat!("Size of: ", stringify!(IXMLDOMImplementationVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMImplementationVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMImplementationVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMImplementationVtbl>())).QueryInterface as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMImplementationVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMImplementationVtbl>())).AddRef as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMImplementationVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMImplementationVtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMImplementationVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMImplementationVtbl>())).GetTypeInfoCount as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMImplementationVtbl),
            "::",
            stringify!(GetTypeInfoCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMImplementationVtbl>())).GetTypeInfo as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMImplementationVtbl),
            "::",
            stringify!(GetTypeInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMImplementationVtbl>())).GetIDsOfNames as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMImplementationVtbl),
            "::",
            stringify!(GetIDsOfNames)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMImplementationVtbl>())).Invoke as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMImplementationVtbl),
            "::",
            stringify!(Invoke)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMImplementationVtbl>())).hasFeature as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMImplementationVtbl),
            "::",
            stringify!(hasFeature)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMImplementation {
    pub lpVtbl: *mut IXMLDOMImplementationVtbl,
}
#[test]
fn bindgen_test_layout_IXMLDOMImplementation() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMImplementation>(),
        8usize,
        concat!("Size of: ", stringify!(IXMLDOMImplementation))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMImplementation>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMImplementation))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMImplementation>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMImplementation),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IXMLDOMNode: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMNodeVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNode,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMNode) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMNode) -> ULONG>,
    pub GetTypeInfoCount: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNode, pctinfo: *mut UINT) -> HRESULT,
    >,
    pub GetTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNode,
            iTInfo: UINT,
            lcid: LCID,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetIDsOfNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNode,
            riid: *const IID,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
            lcid: LCID,
            rgDispId: *mut DISPID,
        ) -> HRESULT,
    >,
    pub Invoke: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNode,
            dispIdMember: DISPID,
            riid: *const IID,
            lcid: LCID,
            wFlags: WORD,
            pDispParams: *mut DISPPARAMS,
            pVarResult: *mut VARIANT,
            pExcepInfo: *mut EXCEPINFO,
            puArgErr: *mut UINT,
        ) -> HRESULT,
    >,
    pub get_nodeName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNode, name: *mut BSTR) -> HRESULT,
    >,
    pub get_nodeValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNode, value: *mut VARIANT) -> HRESULT,
    >,
    pub put_nodeValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNode, value: VARIANT) -> HRESULT,
    >,
    pub get_nodeType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNode, type_: *mut DOMNodeType) -> HRESULT,
    >,
    pub get_parentNode: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNode, parent: *mut *mut IXMLDOMNode) -> HRESULT,
    >,
    pub get_childNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNode,
            childList: *mut *mut IXMLDOMNodeList,
        ) -> HRESULT,
    >,
    pub get_firstChild: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNode, firstChild: *mut *mut IXMLDOMNode) -> HRESULT,
    >,
    pub get_lastChild: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNode, lastChild: *mut *mut IXMLDOMNode) -> HRESULT,
    >,
    pub get_previousSibling: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNode,
            previousSibling: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nextSibling: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNode, nextSibling: *mut *mut IXMLDOMNode) -> HRESULT,
    >,
    pub get_attributes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNode,
            attributeMap: *mut *mut IXMLDOMNamedNodeMap,
        ) -> HRESULT,
    >,
    pub insertBefore: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNode,
            newChild: *mut IXMLDOMNode,
            refChild: VARIANT,
            outNewChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub replaceChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNode,
            newChild: *mut IXMLDOMNode,
            oldChild: *mut IXMLDOMNode,
            outOldChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub removeChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNode,
            childNode: *mut IXMLDOMNode,
            oldChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub appendChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNode,
            newChild: *mut IXMLDOMNode,
            outNewChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub hasChildNodes: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNode, hasChild: *mut VARIANT_BOOL) -> HRESULT,
    >,
    pub get_ownerDocument: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNode,
            XMLDOMDocument: *mut *mut IXMLDOMDocument,
        ) -> HRESULT,
    >,
    pub cloneNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNode,
            deep: VARIANT_BOOL,
            cloneRoot: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nodeTypeString: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNode, nodeType: *mut BSTR) -> HRESULT,
    >,
    pub get_text: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNode, text: *mut BSTR) -> HRESULT,
    >,
    pub put_text:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMNode, text: BSTR) -> HRESULT>,
    pub get_specified: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNode, isSpecified: *mut VARIANT_BOOL) -> HRESULT,
    >,
    pub get_definition: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNode,
            definitionNode: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nodeTypedValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNode, typedValue: *mut VARIANT) -> HRESULT,
    >,
    pub put_nodeTypedValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNode, typedValue: VARIANT) -> HRESULT,
    >,
    pub get_dataType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNode, dataTypeName: *mut VARIANT) -> HRESULT,
    >,
    pub put_dataType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNode, dataTypeName: BSTR) -> HRESULT,
    >,
    pub get_xml: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNode, xmlString: *mut BSTR) -> HRESULT,
    >,
    pub transformNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNode,
            stylesheet: *mut IXMLDOMNode,
            xmlString: *mut BSTR,
        ) -> HRESULT,
    >,
    pub selectNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNode,
            queryString: BSTR,
            resultList: *mut *mut IXMLDOMNodeList,
        ) -> HRESULT,
    >,
    pub selectSingleNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNode,
            queryString: BSTR,
            resultNode: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_parsed: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNode, isParsed: *mut VARIANT_BOOL) -> HRESULT,
    >,
    pub get_namespaceURI: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNode, namespaceURI: *mut BSTR) -> HRESULT,
    >,
    pub get_prefix: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNode, prefixString: *mut BSTR) -> HRESULT,
    >,
    pub get_baseName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNode, nameString: *mut BSTR) -> HRESULT,
    >,
    pub transformNodeToObject: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNode,
            stylesheet: *mut IXMLDOMNode,
            outputObject: VARIANT,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IXMLDOMNodeVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMNodeVtbl>(),
        344usize,
        concat!("Size of: ", stringify!(IXMLDOMNodeVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMNodeVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMNodeVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).GetTypeInfoCount as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(GetTypeInfoCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).GetTypeInfo as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(GetTypeInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).GetIDsOfNames as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(GetIDsOfNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).Invoke as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(Invoke)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).get_nodeName as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(get_nodeName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).get_nodeValue as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(get_nodeValue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).put_nodeValue as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(put_nodeValue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).get_nodeType as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(get_nodeType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).get_parentNode as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(get_parentNode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).get_childNodes as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(get_childNodes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).get_firstChild as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(get_firstChild)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).get_lastChild as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(get_lastChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).get_previousSibling as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(get_previousSibling)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).get_nextSibling as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(get_nextSibling)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).get_attributes as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(get_attributes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).insertBefore as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(insertBefore)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).replaceChild as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(replaceChild)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).removeChild as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(removeChild)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).appendChild as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(appendChild)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).hasChildNodes as *const _ as usize },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(hasChildNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).get_ownerDocument as *const _ as usize
        },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(get_ownerDocument)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).cloneNode as *const _ as usize },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(cloneNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).get_nodeTypeString as *const _ as usize
        },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(get_nodeTypeString)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).get_text as *const _ as usize },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(get_text)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).put_text as *const _ as usize },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(put_text)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).get_specified as *const _ as usize },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(get_specified)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).get_definition as *const _ as usize },
        232usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(get_definition)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).get_nodeTypedValue as *const _ as usize
        },
        240usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(get_nodeTypedValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).put_nodeTypedValue as *const _ as usize
        },
        248usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(put_nodeTypedValue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).get_dataType as *const _ as usize },
        256usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(get_dataType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).put_dataType as *const _ as usize },
        264usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(put_dataType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).get_xml as *const _ as usize },
        272usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(get_xml)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).transformNode as *const _ as usize },
        280usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(transformNode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).selectNodes as *const _ as usize },
        288usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(selectNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).selectSingleNode as *const _ as usize
        },
        296usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(selectSingleNode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).get_parsed as *const _ as usize },
        304usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(get_parsed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).get_namespaceURI as *const _ as usize
        },
        312usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(get_namespaceURI)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).get_prefix as *const _ as usize },
        320usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(get_prefix)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).get_baseName as *const _ as usize },
        328usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(get_baseName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNodeVtbl>())).transformNodeToObject as *const _ as usize
        },
        336usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeVtbl),
            "::",
            stringify!(transformNodeToObject)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMNode {
    pub lpVtbl: *mut IXMLDOMNodeVtbl,
}
#[test]
fn bindgen_test_layout_IXMLDOMNode() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMNode>(),
        8usize,
        concat!("Size of: ", stringify!(IXMLDOMNode))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMNode>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMNode))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNode>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNode),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IXMLDOMDocumentFragment: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMDocumentFragmentVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentFragment,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMDocumentFragment) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMDocumentFragment) -> ULONG>,
    pub GetTypeInfoCount: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocumentFragment, pctinfo: *mut UINT) -> HRESULT,
    >,
    pub GetTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentFragment,
            iTInfo: UINT,
            lcid: LCID,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetIDsOfNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentFragment,
            riid: *const IID,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
            lcid: LCID,
            rgDispId: *mut DISPID,
        ) -> HRESULT,
    >,
    pub Invoke: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentFragment,
            dispIdMember: DISPID,
            riid: *const IID,
            lcid: LCID,
            wFlags: WORD,
            pDispParams: *mut DISPPARAMS,
            pVarResult: *mut VARIANT,
            pExcepInfo: *mut EXCEPINFO,
            puArgErr: *mut UINT,
        ) -> HRESULT,
    >,
    pub get_nodeName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocumentFragment, name: *mut BSTR) -> HRESULT,
    >,
    pub get_nodeValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocumentFragment, value: *mut VARIANT) -> HRESULT,
    >,
    pub put_nodeValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocumentFragment, value: VARIANT) -> HRESULT,
    >,
    pub get_nodeType: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentFragment,
            type_: *mut DOMNodeType,
        ) -> HRESULT,
    >,
    pub get_parentNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentFragment,
            parent: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_childNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentFragment,
            childList: *mut *mut IXMLDOMNodeList,
        ) -> HRESULT,
    >,
    pub get_firstChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentFragment,
            firstChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_lastChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentFragment,
            lastChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_previousSibling: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentFragment,
            previousSibling: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nextSibling: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentFragment,
            nextSibling: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_attributes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentFragment,
            attributeMap: *mut *mut IXMLDOMNamedNodeMap,
        ) -> HRESULT,
    >,
    pub insertBefore: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentFragment,
            newChild: *mut IXMLDOMNode,
            refChild: VARIANT,
            outNewChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub replaceChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentFragment,
            newChild: *mut IXMLDOMNode,
            oldChild: *mut IXMLDOMNode,
            outOldChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub removeChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentFragment,
            childNode: *mut IXMLDOMNode,
            oldChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub appendChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentFragment,
            newChild: *mut IXMLDOMNode,
            outNewChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub hasChildNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentFragment,
            hasChild: *mut VARIANT_BOOL,
        ) -> HRESULT,
    >,
    pub get_ownerDocument: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentFragment,
            XMLDOMDocument: *mut *mut IXMLDOMDocument,
        ) -> HRESULT,
    >,
    pub cloneNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentFragment,
            deep: VARIANT_BOOL,
            cloneRoot: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nodeTypeString: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocumentFragment, nodeType: *mut BSTR) -> HRESULT,
    >,
    pub get_text: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocumentFragment, text: *mut BSTR) -> HRESULT,
    >,
    pub put_text: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocumentFragment, text: BSTR) -> HRESULT,
    >,
    pub get_specified: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentFragment,
            isSpecified: *mut VARIANT_BOOL,
        ) -> HRESULT,
    >,
    pub get_definition: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentFragment,
            definitionNode: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nodeTypedValue: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentFragment,
            typedValue: *mut VARIANT,
        ) -> HRESULT,
    >,
    pub put_nodeTypedValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocumentFragment, typedValue: VARIANT) -> HRESULT,
    >,
    pub get_dataType: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentFragment,
            dataTypeName: *mut VARIANT,
        ) -> HRESULT,
    >,
    pub put_dataType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocumentFragment, dataTypeName: BSTR) -> HRESULT,
    >,
    pub get_xml: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocumentFragment, xmlString: *mut BSTR) -> HRESULT,
    >,
    pub transformNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentFragment,
            stylesheet: *mut IXMLDOMNode,
            xmlString: *mut BSTR,
        ) -> HRESULT,
    >,
    pub selectNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentFragment,
            queryString: BSTR,
            resultList: *mut *mut IXMLDOMNodeList,
        ) -> HRESULT,
    >,
    pub selectSingleNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentFragment,
            queryString: BSTR,
            resultNode: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_parsed: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentFragment,
            isParsed: *mut VARIANT_BOOL,
        ) -> HRESULT,
    >,
    pub get_namespaceURI: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentFragment,
            namespaceURI: *mut BSTR,
        ) -> HRESULT,
    >,
    pub get_prefix: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentFragment,
            prefixString: *mut BSTR,
        ) -> HRESULT,
    >,
    pub get_baseName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocumentFragment, nameString: *mut BSTR) -> HRESULT,
    >,
    pub transformNodeToObject: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentFragment,
            stylesheet: *mut IXMLDOMNode,
            outputObject: VARIANT,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IXMLDOMDocumentFragmentVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMDocumentFragmentVtbl>(),
        344usize,
        concat!("Size of: ", stringify!(IXMLDOMDocumentFragmentVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMDocumentFragmentVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMDocumentFragmentVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).QueryInterface as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).AddRef as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).GetTypeInfoCount as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(GetTypeInfoCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).GetTypeInfo as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(GetTypeInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).GetIDsOfNames as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(GetIDsOfNames)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).Invoke as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(Invoke)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).get_nodeName as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(get_nodeName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).get_nodeValue as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(get_nodeValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).put_nodeValue as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(put_nodeValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).get_nodeType as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(get_nodeType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).get_parentNode as *const _
                as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(get_parentNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).get_childNodes as *const _
                as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(get_childNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).get_firstChild as *const _
                as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(get_firstChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).get_lastChild as *const _
                as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(get_lastChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).get_previousSibling as *const _
                as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(get_previousSibling)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).get_nextSibling as *const _
                as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(get_nextSibling)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).get_attributes as *const _
                as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(get_attributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).insertBefore as *const _
                as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(insertBefore)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).replaceChild as *const _
                as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(replaceChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).removeChild as *const _ as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(removeChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).appendChild as *const _ as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(appendChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).hasChildNodes as *const _
                as usize
        },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(hasChildNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).get_ownerDocument as *const _
                as usize
        },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(get_ownerDocument)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).cloneNode as *const _ as usize
        },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(cloneNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).get_nodeTypeString as *const _
                as usize
        },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(get_nodeTypeString)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).get_text as *const _ as usize
        },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(get_text)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).put_text as *const _ as usize
        },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(put_text)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).get_specified as *const _
                as usize
        },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(get_specified)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).get_definition as *const _
                as usize
        },
        232usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(get_definition)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).get_nodeTypedValue as *const _
                as usize
        },
        240usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(get_nodeTypedValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).put_nodeTypedValue as *const _
                as usize
        },
        248usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(put_nodeTypedValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).get_dataType as *const _
                as usize
        },
        256usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(get_dataType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).put_dataType as *const _
                as usize
        },
        264usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(put_dataType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).get_xml as *const _ as usize
        },
        272usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(get_xml)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).transformNode as *const _
                as usize
        },
        280usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(transformNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).selectNodes as *const _ as usize
        },
        288usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(selectNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).selectSingleNode as *const _
                as usize
        },
        296usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(selectSingleNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).get_parsed as *const _ as usize
        },
        304usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(get_parsed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).get_namespaceURI as *const _
                as usize
        },
        312usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(get_namespaceURI)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).get_prefix as *const _ as usize
        },
        320usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(get_prefix)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).get_baseName as *const _
                as usize
        },
        328usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(get_baseName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentFragmentVtbl>())).transformNodeToObject
                as *const _ as usize
        },
        336usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragmentVtbl),
            "::",
            stringify!(transformNodeToObject)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMDocumentFragment {
    pub lpVtbl: *mut IXMLDOMDocumentFragmentVtbl,
}
#[test]
fn bindgen_test_layout_IXMLDOMDocumentFragment() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMDocumentFragment>(),
        8usize,
        concat!("Size of: ", stringify!(IXMLDOMDocumentFragment))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMDocumentFragment>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMDocumentFragment))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMDocumentFragment>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentFragment),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IXMLDOMDocument: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMDocumentVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMDocument) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMDocument) -> ULONG>,
    pub GetTypeInfoCount: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocument, pctinfo: *mut UINT) -> HRESULT,
    >,
    pub GetTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            iTInfo: UINT,
            lcid: LCID,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetIDsOfNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            riid: *const IID,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
            lcid: LCID,
            rgDispId: *mut DISPID,
        ) -> HRESULT,
    >,
    pub Invoke: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            dispIdMember: DISPID,
            riid: *const IID,
            lcid: LCID,
            wFlags: WORD,
            pDispParams: *mut DISPPARAMS,
            pVarResult: *mut VARIANT,
            pExcepInfo: *mut EXCEPINFO,
            puArgErr: *mut UINT,
        ) -> HRESULT,
    >,
    pub get_nodeName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocument, name: *mut BSTR) -> HRESULT,
    >,
    pub get_nodeValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocument, value: *mut VARIANT) -> HRESULT,
    >,
    pub put_nodeValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocument, value: VARIANT) -> HRESULT,
    >,
    pub get_nodeType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocument, type_: *mut DOMNodeType) -> HRESULT,
    >,
    pub get_parentNode: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocument, parent: *mut *mut IXMLDOMNode) -> HRESULT,
    >,
    pub get_childNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            childList: *mut *mut IXMLDOMNodeList,
        ) -> HRESULT,
    >,
    pub get_firstChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            firstChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_lastChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            lastChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_previousSibling: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            previousSibling: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nextSibling: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            nextSibling: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_attributes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            attributeMap: *mut *mut IXMLDOMNamedNodeMap,
        ) -> HRESULT,
    >,
    pub insertBefore: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            newChild: *mut IXMLDOMNode,
            refChild: VARIANT,
            outNewChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub replaceChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            newChild: *mut IXMLDOMNode,
            oldChild: *mut IXMLDOMNode,
            outOldChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub removeChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            childNode: *mut IXMLDOMNode,
            oldChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub appendChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            newChild: *mut IXMLDOMNode,
            outNewChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub hasChildNodes: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocument, hasChild: *mut VARIANT_BOOL) -> HRESULT,
    >,
    pub get_ownerDocument: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            XMLDOMDocument: *mut *mut IXMLDOMDocument,
        ) -> HRESULT,
    >,
    pub cloneNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            deep: VARIANT_BOOL,
            cloneRoot: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nodeTypeString: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocument, nodeType: *mut BSTR) -> HRESULT,
    >,
    pub get_text: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocument, text: *mut BSTR) -> HRESULT,
    >,
    pub put_text: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocument, text: BSTR) -> HRESULT,
    >,
    pub get_specified: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocument, isSpecified: *mut VARIANT_BOOL) -> HRESULT,
    >,
    pub get_definition: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            definitionNode: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nodeTypedValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocument, typedValue: *mut VARIANT) -> HRESULT,
    >,
    pub put_nodeTypedValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocument, typedValue: VARIANT) -> HRESULT,
    >,
    pub get_dataType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocument, dataTypeName: *mut VARIANT) -> HRESULT,
    >,
    pub put_dataType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocument, dataTypeName: BSTR) -> HRESULT,
    >,
    pub get_xml: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocument, xmlString: *mut BSTR) -> HRESULT,
    >,
    pub transformNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            stylesheet: *mut IXMLDOMNode,
            xmlString: *mut BSTR,
        ) -> HRESULT,
    >,
    pub selectNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            queryString: BSTR,
            resultList: *mut *mut IXMLDOMNodeList,
        ) -> HRESULT,
    >,
    pub selectSingleNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            queryString: BSTR,
            resultNode: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_parsed: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocument, isParsed: *mut VARIANT_BOOL) -> HRESULT,
    >,
    pub get_namespaceURI: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocument, namespaceURI: *mut BSTR) -> HRESULT,
    >,
    pub get_prefix: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocument, prefixString: *mut BSTR) -> HRESULT,
    >,
    pub get_baseName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocument, nameString: *mut BSTR) -> HRESULT,
    >,
    pub transformNodeToObject: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            stylesheet: *mut IXMLDOMNode,
            outputObject: VARIANT,
        ) -> HRESULT,
    >,
    pub get_doctype: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            documentType: *mut *mut IXMLDOMDocumentType,
        ) -> HRESULT,
    >,
    pub get_implementation: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            impl_: *mut *mut IXMLDOMImplementation,
        ) -> HRESULT,
    >,
    pub get_documentElement: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            DOMElement: *mut *mut IXMLDOMElement,
        ) -> HRESULT,
    >,
    pub putref_documentElement: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            DOMElement: *mut IXMLDOMElement,
        ) -> HRESULT,
    >,
    pub createElement: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            tagName: BSTR,
            element: *mut *mut IXMLDOMElement,
        ) -> HRESULT,
    >,
    pub createDocumentFragment: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            docFrag: *mut *mut IXMLDOMDocumentFragment,
        ) -> HRESULT,
    >,
    pub createTextNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            data: BSTR,
            text: *mut *mut IXMLDOMText,
        ) -> HRESULT,
    >,
    pub createComment: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            data: BSTR,
            comment: *mut *mut IXMLDOMComment,
        ) -> HRESULT,
    >,
    pub createCDATASection: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            data: BSTR,
            cdata: *mut *mut IXMLDOMCDATASection,
        ) -> HRESULT,
    >,
    pub createProcessingInstruction: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            target: BSTR,
            data: BSTR,
            pi: *mut *mut IXMLDOMProcessingInstruction,
        ) -> HRESULT,
    >,
    pub createAttribute: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            name: BSTR,
            attribute: *mut *mut IXMLDOMAttribute,
        ) -> HRESULT,
    >,
    pub createEntityReference: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            name: BSTR,
            entityRef: *mut *mut IXMLDOMEntityReference,
        ) -> HRESULT,
    >,
    pub getElementsByTagName: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            tagName: BSTR,
            resultList: *mut *mut IXMLDOMNodeList,
        ) -> HRESULT,
    >,
    pub createNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            Type: VARIANT,
            name: BSTR,
            namespaceURI: BSTR,
            node: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub nodeFromID: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            idString: BSTR,
            node: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub load: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            xmlSource: VARIANT,
            isSuccessful: *mut VARIANT_BOOL,
        ) -> HRESULT,
    >,
    pub get_readyState: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            value: *mut ::std::os::raw::c_long,
        ) -> HRESULT,
    >,
    pub get_parseError: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            errorObj: *mut *mut IXMLDOMParseError,
        ) -> HRESULT,
    >,
    pub get_url: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocument, urlString: *mut BSTR) -> HRESULT,
    >,
    pub get_async: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocument, isAsync: *mut VARIANT_BOOL) -> HRESULT,
    >,
    pub put_async: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocument, isAsync: VARIANT_BOOL) -> HRESULT,
    >,
    pub abort: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMDocument) -> HRESULT>,
    pub loadXML: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            bstrXML: BSTR,
            isSuccessful: *mut VARIANT_BOOL,
        ) -> HRESULT,
    >,
    pub save: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocument, destination: VARIANT) -> HRESULT,
    >,
    pub get_validateOnParse: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            isValidating: *mut VARIANT_BOOL,
        ) -> HRESULT,
    >,
    pub put_validateOnParse: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocument, isValidating: VARIANT_BOOL) -> HRESULT,
    >,
    pub get_resolveExternals: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocument, isResolving: *mut VARIANT_BOOL) -> HRESULT,
    >,
    pub put_resolveExternals: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocument, isResolving: VARIANT_BOOL) -> HRESULT,
    >,
    pub get_preserveWhiteSpace: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocument,
            isPreserving: *mut VARIANT_BOOL,
        ) -> HRESULT,
    >,
    pub put_preserveWhiteSpace: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocument, isPreserving: VARIANT_BOOL) -> HRESULT,
    >,
    pub put_onreadystatechange: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocument, readystatechangeSink: VARIANT) -> HRESULT,
    >,
    pub put_ondataavailable: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocument, ondataavailableSink: VARIANT) -> HRESULT,
    >,
    pub put_ontransformnode: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocument, ontransformnodeSink: VARIANT) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IXMLDOMDocumentVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMDocumentVtbl>(),
        608usize,
        concat!("Size of: ", stringify!(IXMLDOMDocumentVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMDocumentVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMDocumentVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).GetTypeInfoCount as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(GetTypeInfoCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).GetTypeInfo as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(GetTypeInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).GetIDsOfNames as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(GetIDsOfNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).Invoke as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(Invoke)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).get_nodeName as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(get_nodeName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).get_nodeValue as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(get_nodeValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).put_nodeValue as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(put_nodeValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).get_nodeType as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(get_nodeType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).get_parentNode as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(get_parentNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).get_childNodes as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(get_childNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).get_firstChild as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(get_firstChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).get_lastChild as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(get_lastChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).get_previousSibling as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(get_previousSibling)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).get_nextSibling as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(get_nextSibling)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).get_attributes as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(get_attributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).insertBefore as *const _ as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(insertBefore)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).replaceChild as *const _ as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(replaceChild)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).removeChild as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(removeChild)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).appendChild as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(appendChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).hasChildNodes as *const _ as usize
        },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(hasChildNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).get_ownerDocument as *const _ as usize
        },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(get_ownerDocument)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).cloneNode as *const _ as usize },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(cloneNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).get_nodeTypeString as *const _ as usize
        },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(get_nodeTypeString)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).get_text as *const _ as usize },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(get_text)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).put_text as *const _ as usize },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(put_text)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).get_specified as *const _ as usize
        },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(get_specified)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).get_definition as *const _ as usize
        },
        232usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(get_definition)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).get_nodeTypedValue as *const _ as usize
        },
        240usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(get_nodeTypedValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).put_nodeTypedValue as *const _ as usize
        },
        248usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(put_nodeTypedValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).get_dataType as *const _ as usize
        },
        256usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(get_dataType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).put_dataType as *const _ as usize
        },
        264usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(put_dataType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).get_xml as *const _ as usize },
        272usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(get_xml)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).transformNode as *const _ as usize
        },
        280usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(transformNode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).selectNodes as *const _ as usize },
        288usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(selectNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).selectSingleNode as *const _ as usize
        },
        296usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(selectSingleNode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).get_parsed as *const _ as usize },
        304usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(get_parsed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).get_namespaceURI as *const _ as usize
        },
        312usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(get_namespaceURI)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).get_prefix as *const _ as usize },
        320usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(get_prefix)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).get_baseName as *const _ as usize
        },
        328usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(get_baseName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).transformNodeToObject as *const _
                as usize
        },
        336usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(transformNodeToObject)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).get_doctype as *const _ as usize },
        344usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(get_doctype)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).get_implementation as *const _ as usize
        },
        352usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(get_implementation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).get_documentElement as *const _ as usize
        },
        360usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(get_documentElement)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).putref_documentElement as *const _
                as usize
        },
        368usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(putref_documentElement)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).createElement as *const _ as usize
        },
        376usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(createElement)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).createDocumentFragment as *const _
                as usize
        },
        384usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(createDocumentFragment)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).createTextNode as *const _ as usize
        },
        392usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(createTextNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).createComment as *const _ as usize
        },
        400usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(createComment)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).createCDATASection as *const _ as usize
        },
        408usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(createCDATASection)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).createProcessingInstruction as *const _
                as usize
        },
        416usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(createProcessingInstruction)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).createAttribute as *const _ as usize
        },
        424usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(createAttribute)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).createEntityReference as *const _
                as usize
        },
        432usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(createEntityReference)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).getElementsByTagName as *const _
                as usize
        },
        440usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(getElementsByTagName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).createNode as *const _ as usize },
        448usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(createNode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).nodeFromID as *const _ as usize },
        456usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(nodeFromID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).load as *const _ as usize },
        464usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(load)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).get_readyState as *const _ as usize
        },
        472usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(get_readyState)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).get_parseError as *const _ as usize
        },
        480usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(get_parseError)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).get_url as *const _ as usize },
        488usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(get_url)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).get_async as *const _ as usize },
        496usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(get_async)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).put_async as *const _ as usize },
        504usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(put_async)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).abort as *const _ as usize },
        512usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(abort)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).loadXML as *const _ as usize },
        520usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(loadXML)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).save as *const _ as usize },
        528usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(save)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).get_validateOnParse as *const _ as usize
        },
        536usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(get_validateOnParse)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).put_validateOnParse as *const _ as usize
        },
        544usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(put_validateOnParse)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).get_resolveExternals as *const _
                as usize
        },
        552usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(get_resolveExternals)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).put_resolveExternals as *const _
                as usize
        },
        560usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(put_resolveExternals)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).get_preserveWhiteSpace as *const _
                as usize
        },
        568usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(get_preserveWhiteSpace)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).put_preserveWhiteSpace as *const _
                as usize
        },
        576usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(put_preserveWhiteSpace)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).put_onreadystatechange as *const _
                as usize
        },
        584usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(put_onreadystatechange)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).put_ondataavailable as *const _ as usize
        },
        592usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(put_ondataavailable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentVtbl>())).put_ontransformnode as *const _ as usize
        },
        600usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentVtbl),
            "::",
            stringify!(put_ontransformnode)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMDocument {
    pub lpVtbl: *mut IXMLDOMDocumentVtbl,
}
#[test]
fn bindgen_test_layout_IXMLDOMDocument() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMDocument>(),
        8usize,
        concat!("Size of: ", stringify!(IXMLDOMDocument))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMDocument>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMDocument))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMDocument>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocument),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IXMLDOMNodeList: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMNodeListVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNodeList,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMNodeList) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMNodeList) -> ULONG>,
    pub GetTypeInfoCount: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNodeList, pctinfo: *mut UINT) -> HRESULT,
    >,
    pub GetTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNodeList,
            iTInfo: UINT,
            lcid: LCID,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetIDsOfNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNodeList,
            riid: *const IID,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
            lcid: LCID,
            rgDispId: *mut DISPID,
        ) -> HRESULT,
    >,
    pub Invoke: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNodeList,
            dispIdMember: DISPID,
            riid: *const IID,
            lcid: LCID,
            wFlags: WORD,
            pDispParams: *mut DISPPARAMS,
            pVarResult: *mut VARIANT,
            pExcepInfo: *mut EXCEPINFO,
            puArgErr: *mut UINT,
        ) -> HRESULT,
    >,
    pub get_item: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNodeList,
            index: ::std::os::raw::c_long,
            listItem: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_length: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNodeList,
            listLength: *mut ::std::os::raw::c_long,
        ) -> HRESULT,
    >,
    pub nextNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNodeList,
            nextItem: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub reset: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMNodeList) -> HRESULT>,
    pub get__newEnum: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNodeList, ppUnk: *mut *mut IUnknown) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IXMLDOMNodeListVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMNodeListVtbl>(),
        96usize,
        concat!("Size of: ", stringify!(IXMLDOMNodeListVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMNodeListVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMNodeListVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNodeListVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeListVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeListVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeListVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeListVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeListVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNodeListVtbl>())).GetTypeInfoCount as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeListVtbl),
            "::",
            stringify!(GetTypeInfoCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeListVtbl>())).GetTypeInfo as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeListVtbl),
            "::",
            stringify!(GetTypeInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNodeListVtbl>())).GetIDsOfNames as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeListVtbl),
            "::",
            stringify!(GetIDsOfNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeListVtbl>())).Invoke as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeListVtbl),
            "::",
            stringify!(Invoke)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeListVtbl>())).get_item as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeListVtbl),
            "::",
            stringify!(get_item)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeListVtbl>())).get_length as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeListVtbl),
            "::",
            stringify!(get_length)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeListVtbl>())).nextNode as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeListVtbl),
            "::",
            stringify!(nextNode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeListVtbl>())).reset as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeListVtbl),
            "::",
            stringify!(reset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNodeListVtbl>())).get__newEnum as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeListVtbl),
            "::",
            stringify!(get__newEnum)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMNodeList {
    pub lpVtbl: *mut IXMLDOMNodeListVtbl,
}
#[test]
fn bindgen_test_layout_IXMLDOMNodeList() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMNodeList>(),
        8usize,
        concat!("Size of: ", stringify!(IXMLDOMNodeList))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMNodeList>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMNodeList))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNodeList>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNodeList),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IXMLDOMNamedNodeMap: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMNamedNodeMapVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNamedNodeMap,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMNamedNodeMap) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMNamedNodeMap) -> ULONG>,
    pub GetTypeInfoCount: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNamedNodeMap, pctinfo: *mut UINT) -> HRESULT,
    >,
    pub GetTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNamedNodeMap,
            iTInfo: UINT,
            lcid: LCID,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetIDsOfNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNamedNodeMap,
            riid: *const IID,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
            lcid: LCID,
            rgDispId: *mut DISPID,
        ) -> HRESULT,
    >,
    pub Invoke: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNamedNodeMap,
            dispIdMember: DISPID,
            riid: *const IID,
            lcid: LCID,
            wFlags: WORD,
            pDispParams: *mut DISPPARAMS,
            pVarResult: *mut VARIANT,
            pExcepInfo: *mut EXCEPINFO,
            puArgErr: *mut UINT,
        ) -> HRESULT,
    >,
    pub getNamedItem: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNamedNodeMap,
            name: BSTR,
            namedItem: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub setNamedItem: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNamedNodeMap,
            newItem: *mut IXMLDOMNode,
            nameItem: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub removeNamedItem: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNamedNodeMap,
            name: BSTR,
            namedItem: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_item: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNamedNodeMap,
            index: ::std::os::raw::c_long,
            listItem: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_length: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNamedNodeMap,
            listLength: *mut ::std::os::raw::c_long,
        ) -> HRESULT,
    >,
    pub getQualifiedItem: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNamedNodeMap,
            baseName: BSTR,
            namespaceURI: BSTR,
            qualifiedItem: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub removeQualifiedItem: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNamedNodeMap,
            baseName: BSTR,
            namespaceURI: BSTR,
            qualifiedItem: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub nextNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNamedNodeMap,
            nextItem: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub reset:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMNamedNodeMap) -> HRESULT>,
    pub get__newEnum: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNamedNodeMap, ppUnk: *mut *mut IUnknown) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IXMLDOMNamedNodeMapVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMNamedNodeMapVtbl>(),
        136usize,
        concat!("Size of: ", stringify!(IXMLDOMNamedNodeMapVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMNamedNodeMapVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMNamedNodeMapVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNamedNodeMapVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNamedNodeMapVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNamedNodeMapVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNamedNodeMapVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNamedNodeMapVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNamedNodeMapVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNamedNodeMapVtbl>())).GetTypeInfoCount as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNamedNodeMapVtbl),
            "::",
            stringify!(GetTypeInfoCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNamedNodeMapVtbl>())).GetTypeInfo as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNamedNodeMapVtbl),
            "::",
            stringify!(GetTypeInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNamedNodeMapVtbl>())).GetIDsOfNames as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNamedNodeMapVtbl),
            "::",
            stringify!(GetIDsOfNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNamedNodeMapVtbl>())).Invoke as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNamedNodeMapVtbl),
            "::",
            stringify!(Invoke)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNamedNodeMapVtbl>())).getNamedItem as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNamedNodeMapVtbl),
            "::",
            stringify!(getNamedItem)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNamedNodeMapVtbl>())).setNamedItem as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNamedNodeMapVtbl),
            "::",
            stringify!(setNamedItem)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNamedNodeMapVtbl>())).removeNamedItem as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNamedNodeMapVtbl),
            "::",
            stringify!(removeNamedItem)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNamedNodeMapVtbl>())).get_item as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNamedNodeMapVtbl),
            "::",
            stringify!(get_item)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNamedNodeMapVtbl>())).get_length as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNamedNodeMapVtbl),
            "::",
            stringify!(get_length)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNamedNodeMapVtbl>())).getQualifiedItem as *const _
                as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNamedNodeMapVtbl),
            "::",
            stringify!(getQualifiedItem)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNamedNodeMapVtbl>())).removeQualifiedItem as *const _
                as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNamedNodeMapVtbl),
            "::",
            stringify!(removeQualifiedItem)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNamedNodeMapVtbl>())).nextNode as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNamedNodeMapVtbl),
            "::",
            stringify!(nextNode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNamedNodeMapVtbl>())).reset as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNamedNodeMapVtbl),
            "::",
            stringify!(reset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNamedNodeMapVtbl>())).get__newEnum as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNamedNodeMapVtbl),
            "::",
            stringify!(get__newEnum)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMNamedNodeMap {
    pub lpVtbl: *mut IXMLDOMNamedNodeMapVtbl,
}
#[test]
fn bindgen_test_layout_IXMLDOMNamedNodeMap() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMNamedNodeMap>(),
        8usize,
        concat!("Size of: ", stringify!(IXMLDOMNamedNodeMap))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMNamedNodeMap>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMNamedNodeMap))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNamedNodeMap>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNamedNodeMap),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IXMLDOMCharacterData: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMCharacterDataVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCharacterData,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMCharacterData) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMCharacterData) -> ULONG>,
    pub GetTypeInfoCount: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCharacterData, pctinfo: *mut UINT) -> HRESULT,
    >,
    pub GetTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCharacterData,
            iTInfo: UINT,
            lcid: LCID,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetIDsOfNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCharacterData,
            riid: *const IID,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
            lcid: LCID,
            rgDispId: *mut DISPID,
        ) -> HRESULT,
    >,
    pub Invoke: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCharacterData,
            dispIdMember: DISPID,
            riid: *const IID,
            lcid: LCID,
            wFlags: WORD,
            pDispParams: *mut DISPPARAMS,
            pVarResult: *mut VARIANT,
            pExcepInfo: *mut EXCEPINFO,
            puArgErr: *mut UINT,
        ) -> HRESULT,
    >,
    pub get_nodeName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCharacterData, name: *mut BSTR) -> HRESULT,
    >,
    pub get_nodeValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCharacterData, value: *mut VARIANT) -> HRESULT,
    >,
    pub put_nodeValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCharacterData, value: VARIANT) -> HRESULT,
    >,
    pub get_nodeType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCharacterData, type_: *mut DOMNodeType) -> HRESULT,
    >,
    pub get_parentNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCharacterData,
            parent: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_childNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCharacterData,
            childList: *mut *mut IXMLDOMNodeList,
        ) -> HRESULT,
    >,
    pub get_firstChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCharacterData,
            firstChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_lastChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCharacterData,
            lastChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_previousSibling: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCharacterData,
            previousSibling: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nextSibling: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCharacterData,
            nextSibling: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_attributes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCharacterData,
            attributeMap: *mut *mut IXMLDOMNamedNodeMap,
        ) -> HRESULT,
    >,
    pub insertBefore: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCharacterData,
            newChild: *mut IXMLDOMNode,
            refChild: VARIANT,
            outNewChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub replaceChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCharacterData,
            newChild: *mut IXMLDOMNode,
            oldChild: *mut IXMLDOMNode,
            outOldChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub removeChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCharacterData,
            childNode: *mut IXMLDOMNode,
            oldChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub appendChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCharacterData,
            newChild: *mut IXMLDOMNode,
            outNewChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub hasChildNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCharacterData,
            hasChild: *mut VARIANT_BOOL,
        ) -> HRESULT,
    >,
    pub get_ownerDocument: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCharacterData,
            XMLDOMDocument: *mut *mut IXMLDOMDocument,
        ) -> HRESULT,
    >,
    pub cloneNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCharacterData,
            deep: VARIANT_BOOL,
            cloneRoot: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nodeTypeString: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCharacterData, nodeType: *mut BSTR) -> HRESULT,
    >,
    pub get_text: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCharacterData, text: *mut BSTR) -> HRESULT,
    >,
    pub put_text: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCharacterData, text: BSTR) -> HRESULT,
    >,
    pub get_specified: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCharacterData,
            isSpecified: *mut VARIANT_BOOL,
        ) -> HRESULT,
    >,
    pub get_definition: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCharacterData,
            definitionNode: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nodeTypedValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCharacterData, typedValue: *mut VARIANT) -> HRESULT,
    >,
    pub put_nodeTypedValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCharacterData, typedValue: VARIANT) -> HRESULT,
    >,
    pub get_dataType: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCharacterData,
            dataTypeName: *mut VARIANT,
        ) -> HRESULT,
    >,
    pub put_dataType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCharacterData, dataTypeName: BSTR) -> HRESULT,
    >,
    pub get_xml: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCharacterData, xmlString: *mut BSTR) -> HRESULT,
    >,
    pub transformNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCharacterData,
            stylesheet: *mut IXMLDOMNode,
            xmlString: *mut BSTR,
        ) -> HRESULT,
    >,
    pub selectNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCharacterData,
            queryString: BSTR,
            resultList: *mut *mut IXMLDOMNodeList,
        ) -> HRESULT,
    >,
    pub selectSingleNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCharacterData,
            queryString: BSTR,
            resultNode: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_parsed: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCharacterData,
            isParsed: *mut VARIANT_BOOL,
        ) -> HRESULT,
    >,
    pub get_namespaceURI: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCharacterData, namespaceURI: *mut BSTR) -> HRESULT,
    >,
    pub get_prefix: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCharacterData, prefixString: *mut BSTR) -> HRESULT,
    >,
    pub get_baseName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCharacterData, nameString: *mut BSTR) -> HRESULT,
    >,
    pub transformNodeToObject: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCharacterData,
            stylesheet: *mut IXMLDOMNode,
            outputObject: VARIANT,
        ) -> HRESULT,
    >,
    pub get_data: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCharacterData, data: *mut BSTR) -> HRESULT,
    >,
    pub put_data: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCharacterData, data: BSTR) -> HRESULT,
    >,
    pub get_length: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCharacterData,
            dataLength: *mut ::std::os::raw::c_long,
        ) -> HRESULT,
    >,
    pub substringData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCharacterData,
            offset: ::std::os::raw::c_long,
            count: ::std::os::raw::c_long,
            data: *mut BSTR,
        ) -> HRESULT,
    >,
    pub appendData: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCharacterData, data: BSTR) -> HRESULT,
    >,
    pub insertData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCharacterData,
            offset: ::std::os::raw::c_long,
            data: BSTR,
        ) -> HRESULT,
    >,
    pub deleteData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCharacterData,
            offset: ::std::os::raw::c_long,
            count: ::std::os::raw::c_long,
        ) -> HRESULT,
    >,
    pub replaceData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCharacterData,
            offset: ::std::os::raw::c_long,
            count: ::std::os::raw::c_long,
            data: BSTR,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IXMLDOMCharacterDataVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMCharacterDataVtbl>(),
        408usize,
        concat!("Size of: ", stringify!(IXMLDOMCharacterDataVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMCharacterDataVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMCharacterDataVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).GetTypeInfoCount as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(GetTypeInfoCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).GetTypeInfo as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(GetTypeInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).GetIDsOfNames as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(GetIDsOfNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).Invoke as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(Invoke)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).get_nodeName as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(get_nodeName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).get_nodeValue as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(get_nodeValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).put_nodeValue as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(put_nodeValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).get_nodeType as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(get_nodeType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).get_parentNode as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(get_parentNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).get_childNodes as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(get_childNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).get_firstChild as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(get_firstChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).get_lastChild as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(get_lastChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).get_previousSibling as *const _
                as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(get_previousSibling)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).get_nextSibling as *const _
                as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(get_nextSibling)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).get_attributes as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(get_attributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).insertBefore as *const _ as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(insertBefore)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).replaceChild as *const _ as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(replaceChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).removeChild as *const _ as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(removeChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).appendChild as *const _ as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(appendChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).hasChildNodes as *const _ as usize
        },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(hasChildNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).get_ownerDocument as *const _
                as usize
        },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(get_ownerDocument)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).cloneNode as *const _ as usize
        },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(cloneNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).get_nodeTypeString as *const _
                as usize
        },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(get_nodeTypeString)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).get_text as *const _ as usize
        },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(get_text)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).put_text as *const _ as usize
        },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(put_text)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).get_specified as *const _ as usize
        },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(get_specified)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).get_definition as *const _ as usize
        },
        232usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(get_definition)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).get_nodeTypedValue as *const _
                as usize
        },
        240usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(get_nodeTypedValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).put_nodeTypedValue as *const _
                as usize
        },
        248usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(put_nodeTypedValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).get_dataType as *const _ as usize
        },
        256usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(get_dataType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).put_dataType as *const _ as usize
        },
        264usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(put_dataType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).get_xml as *const _ as usize
        },
        272usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(get_xml)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).transformNode as *const _ as usize
        },
        280usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(transformNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).selectNodes as *const _ as usize
        },
        288usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(selectNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).selectSingleNode as *const _
                as usize
        },
        296usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(selectSingleNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).get_parsed as *const _ as usize
        },
        304usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(get_parsed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).get_namespaceURI as *const _
                as usize
        },
        312usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(get_namespaceURI)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).get_prefix as *const _ as usize
        },
        320usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(get_prefix)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).get_baseName as *const _ as usize
        },
        328usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(get_baseName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).transformNodeToObject as *const _
                as usize
        },
        336usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(transformNodeToObject)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).get_data as *const _ as usize
        },
        344usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(get_data)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).put_data as *const _ as usize
        },
        352usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(put_data)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).get_length as *const _ as usize
        },
        360usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(get_length)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).substringData as *const _ as usize
        },
        368usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(substringData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).appendData as *const _ as usize
        },
        376usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(appendData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).insertData as *const _ as usize
        },
        384usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(insertData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).deleteData as *const _ as usize
        },
        392usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(deleteData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCharacterDataVtbl>())).replaceData as *const _ as usize
        },
        400usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterDataVtbl),
            "::",
            stringify!(replaceData)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMCharacterData {
    pub lpVtbl: *mut IXMLDOMCharacterDataVtbl,
}
#[test]
fn bindgen_test_layout_IXMLDOMCharacterData() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMCharacterData>(),
        8usize,
        concat!("Size of: ", stringify!(IXMLDOMCharacterData))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMCharacterData>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMCharacterData))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCharacterData>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCharacterData),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IXMLDOMAttribute: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMAttributeVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMAttribute,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMAttribute) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMAttribute) -> ULONG>,
    pub GetTypeInfoCount: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMAttribute, pctinfo: *mut UINT) -> HRESULT,
    >,
    pub GetTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMAttribute,
            iTInfo: UINT,
            lcid: LCID,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetIDsOfNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMAttribute,
            riid: *const IID,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
            lcid: LCID,
            rgDispId: *mut DISPID,
        ) -> HRESULT,
    >,
    pub Invoke: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMAttribute,
            dispIdMember: DISPID,
            riid: *const IID,
            lcid: LCID,
            wFlags: WORD,
            pDispParams: *mut DISPPARAMS,
            pVarResult: *mut VARIANT,
            pExcepInfo: *mut EXCEPINFO,
            puArgErr: *mut UINT,
        ) -> HRESULT,
    >,
    pub get_nodeName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMAttribute, name: *mut BSTR) -> HRESULT,
    >,
    pub get_nodeValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMAttribute, value: *mut VARIANT) -> HRESULT,
    >,
    pub put_nodeValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMAttribute, value: VARIANT) -> HRESULT,
    >,
    pub get_nodeType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMAttribute, type_: *mut DOMNodeType) -> HRESULT,
    >,
    pub get_parentNode: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMAttribute, parent: *mut *mut IXMLDOMNode) -> HRESULT,
    >,
    pub get_childNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMAttribute,
            childList: *mut *mut IXMLDOMNodeList,
        ) -> HRESULT,
    >,
    pub get_firstChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMAttribute,
            firstChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_lastChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMAttribute,
            lastChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_previousSibling: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMAttribute,
            previousSibling: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nextSibling: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMAttribute,
            nextSibling: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_attributes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMAttribute,
            attributeMap: *mut *mut IXMLDOMNamedNodeMap,
        ) -> HRESULT,
    >,
    pub insertBefore: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMAttribute,
            newChild: *mut IXMLDOMNode,
            refChild: VARIANT,
            outNewChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub replaceChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMAttribute,
            newChild: *mut IXMLDOMNode,
            oldChild: *mut IXMLDOMNode,
            outOldChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub removeChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMAttribute,
            childNode: *mut IXMLDOMNode,
            oldChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub appendChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMAttribute,
            newChild: *mut IXMLDOMNode,
            outNewChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub hasChildNodes: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMAttribute, hasChild: *mut VARIANT_BOOL) -> HRESULT,
    >,
    pub get_ownerDocument: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMAttribute,
            XMLDOMDocument: *mut *mut IXMLDOMDocument,
        ) -> HRESULT,
    >,
    pub cloneNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMAttribute,
            deep: VARIANT_BOOL,
            cloneRoot: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nodeTypeString: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMAttribute, nodeType: *mut BSTR) -> HRESULT,
    >,
    pub get_text: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMAttribute, text: *mut BSTR) -> HRESULT,
    >,
    pub put_text: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMAttribute, text: BSTR) -> HRESULT,
    >,
    pub get_specified: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMAttribute,
            isSpecified: *mut VARIANT_BOOL,
        ) -> HRESULT,
    >,
    pub get_definition: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMAttribute,
            definitionNode: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nodeTypedValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMAttribute, typedValue: *mut VARIANT) -> HRESULT,
    >,
    pub put_nodeTypedValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMAttribute, typedValue: VARIANT) -> HRESULT,
    >,
    pub get_dataType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMAttribute, dataTypeName: *mut VARIANT) -> HRESULT,
    >,
    pub put_dataType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMAttribute, dataTypeName: BSTR) -> HRESULT,
    >,
    pub get_xml: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMAttribute, xmlString: *mut BSTR) -> HRESULT,
    >,
    pub transformNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMAttribute,
            stylesheet: *mut IXMLDOMNode,
            xmlString: *mut BSTR,
        ) -> HRESULT,
    >,
    pub selectNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMAttribute,
            queryString: BSTR,
            resultList: *mut *mut IXMLDOMNodeList,
        ) -> HRESULT,
    >,
    pub selectSingleNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMAttribute,
            queryString: BSTR,
            resultNode: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_parsed: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMAttribute, isParsed: *mut VARIANT_BOOL) -> HRESULT,
    >,
    pub get_namespaceURI: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMAttribute, namespaceURI: *mut BSTR) -> HRESULT,
    >,
    pub get_prefix: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMAttribute, prefixString: *mut BSTR) -> HRESULT,
    >,
    pub get_baseName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMAttribute, nameString: *mut BSTR) -> HRESULT,
    >,
    pub transformNodeToObject: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMAttribute,
            stylesheet: *mut IXMLDOMNode,
            outputObject: VARIANT,
        ) -> HRESULT,
    >,
    pub get_name: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMAttribute, attributeName: *mut BSTR) -> HRESULT,
    >,
    pub get_value: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMAttribute, attributeValue: *mut VARIANT) -> HRESULT,
    >,
    pub put_value: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMAttribute, attributeValue: VARIANT) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IXMLDOMAttributeVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMAttributeVtbl>(),
        368usize,
        concat!("Size of: ", stringify!(IXMLDOMAttributeVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMAttributeVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMAttributeVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).GetTypeInfoCount as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(GetTypeInfoCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).GetTypeInfo as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(GetTypeInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).GetIDsOfNames as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(GetIDsOfNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).Invoke as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(Invoke)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).get_nodeName as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(get_nodeName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).get_nodeValue as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(get_nodeValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).put_nodeValue as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(put_nodeValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).get_nodeType as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(get_nodeType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).get_parentNode as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(get_parentNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).get_childNodes as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(get_childNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).get_firstChild as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(get_firstChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).get_lastChild as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(get_lastChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).get_previousSibling as *const _
                as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(get_previousSibling)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).get_nextSibling as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(get_nextSibling)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).get_attributes as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(get_attributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).insertBefore as *const _ as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(insertBefore)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).replaceChild as *const _ as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(replaceChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).removeChild as *const _ as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(removeChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).appendChild as *const _ as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(appendChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).hasChildNodes as *const _ as usize
        },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(hasChildNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).get_ownerDocument as *const _ as usize
        },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(get_ownerDocument)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).cloneNode as *const _ as usize },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(cloneNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).get_nodeTypeString as *const _ as usize
        },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(get_nodeTypeString)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).get_text as *const _ as usize },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(get_text)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).put_text as *const _ as usize },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(put_text)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).get_specified as *const _ as usize
        },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(get_specified)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).get_definition as *const _ as usize
        },
        232usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(get_definition)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).get_nodeTypedValue as *const _ as usize
        },
        240usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(get_nodeTypedValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).put_nodeTypedValue as *const _ as usize
        },
        248usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(put_nodeTypedValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).get_dataType as *const _ as usize
        },
        256usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(get_dataType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).put_dataType as *const _ as usize
        },
        264usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(put_dataType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).get_xml as *const _ as usize },
        272usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(get_xml)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).transformNode as *const _ as usize
        },
        280usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(transformNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).selectNodes as *const _ as usize
        },
        288usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(selectNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).selectSingleNode as *const _ as usize
        },
        296usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(selectSingleNode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).get_parsed as *const _ as usize },
        304usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(get_parsed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).get_namespaceURI as *const _ as usize
        },
        312usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(get_namespaceURI)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).get_prefix as *const _ as usize },
        320usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(get_prefix)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).get_baseName as *const _ as usize
        },
        328usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(get_baseName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).transformNodeToObject as *const _
                as usize
        },
        336usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(transformNodeToObject)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).get_name as *const _ as usize },
        344usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(get_name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).get_value as *const _ as usize },
        352usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(get_value)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMAttributeVtbl>())).put_value as *const _ as usize },
        360usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttributeVtbl),
            "::",
            stringify!(put_value)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMAttribute {
    pub lpVtbl: *mut IXMLDOMAttributeVtbl,
}
#[test]
fn bindgen_test_layout_IXMLDOMAttribute() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMAttribute>(),
        8usize,
        concat!("Size of: ", stringify!(IXMLDOMAttribute))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMAttribute>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMAttribute))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMAttribute>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMAttribute),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IXMLDOMElement: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMElementVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMElement,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMElement) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMElement) -> ULONG>,
    pub GetTypeInfoCount: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMElement, pctinfo: *mut UINT) -> HRESULT,
    >,
    pub GetTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMElement,
            iTInfo: UINT,
            lcid: LCID,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetIDsOfNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMElement,
            riid: *const IID,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
            lcid: LCID,
            rgDispId: *mut DISPID,
        ) -> HRESULT,
    >,
    pub Invoke: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMElement,
            dispIdMember: DISPID,
            riid: *const IID,
            lcid: LCID,
            wFlags: WORD,
            pDispParams: *mut DISPPARAMS,
            pVarResult: *mut VARIANT,
            pExcepInfo: *mut EXCEPINFO,
            puArgErr: *mut UINT,
        ) -> HRESULT,
    >,
    pub get_nodeName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMElement, name: *mut BSTR) -> HRESULT,
    >,
    pub get_nodeValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMElement, value: *mut VARIANT) -> HRESULT,
    >,
    pub put_nodeValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMElement, value: VARIANT) -> HRESULT,
    >,
    pub get_nodeType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMElement, type_: *mut DOMNodeType) -> HRESULT,
    >,
    pub get_parentNode: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMElement, parent: *mut *mut IXMLDOMNode) -> HRESULT,
    >,
    pub get_childNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMElement,
            childList: *mut *mut IXMLDOMNodeList,
        ) -> HRESULT,
    >,
    pub get_firstChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMElement,
            firstChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_lastChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMElement,
            lastChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_previousSibling: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMElement,
            previousSibling: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nextSibling: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMElement,
            nextSibling: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_attributes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMElement,
            attributeMap: *mut *mut IXMLDOMNamedNodeMap,
        ) -> HRESULT,
    >,
    pub insertBefore: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMElement,
            newChild: *mut IXMLDOMNode,
            refChild: VARIANT,
            outNewChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub replaceChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMElement,
            newChild: *mut IXMLDOMNode,
            oldChild: *mut IXMLDOMNode,
            outOldChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub removeChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMElement,
            childNode: *mut IXMLDOMNode,
            oldChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub appendChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMElement,
            newChild: *mut IXMLDOMNode,
            outNewChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub hasChildNodes: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMElement, hasChild: *mut VARIANT_BOOL) -> HRESULT,
    >,
    pub get_ownerDocument: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMElement,
            XMLDOMDocument: *mut *mut IXMLDOMDocument,
        ) -> HRESULT,
    >,
    pub cloneNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMElement,
            deep: VARIANT_BOOL,
            cloneRoot: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nodeTypeString: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMElement, nodeType: *mut BSTR) -> HRESULT,
    >,
    pub get_text: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMElement, text: *mut BSTR) -> HRESULT,
    >,
    pub put_text: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMElement, text: BSTR) -> HRESULT,
    >,
    pub get_specified: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMElement, isSpecified: *mut VARIANT_BOOL) -> HRESULT,
    >,
    pub get_definition: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMElement,
            definitionNode: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nodeTypedValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMElement, typedValue: *mut VARIANT) -> HRESULT,
    >,
    pub put_nodeTypedValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMElement, typedValue: VARIANT) -> HRESULT,
    >,
    pub get_dataType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMElement, dataTypeName: *mut VARIANT) -> HRESULT,
    >,
    pub put_dataType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMElement, dataTypeName: BSTR) -> HRESULT,
    >,
    pub get_xml: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMElement, xmlString: *mut BSTR) -> HRESULT,
    >,
    pub transformNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMElement,
            stylesheet: *mut IXMLDOMNode,
            xmlString: *mut BSTR,
        ) -> HRESULT,
    >,
    pub selectNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMElement,
            queryString: BSTR,
            resultList: *mut *mut IXMLDOMNodeList,
        ) -> HRESULT,
    >,
    pub selectSingleNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMElement,
            queryString: BSTR,
            resultNode: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_parsed: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMElement, isParsed: *mut VARIANT_BOOL) -> HRESULT,
    >,
    pub get_namespaceURI: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMElement, namespaceURI: *mut BSTR) -> HRESULT,
    >,
    pub get_prefix: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMElement, prefixString: *mut BSTR) -> HRESULT,
    >,
    pub get_baseName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMElement, nameString: *mut BSTR) -> HRESULT,
    >,
    pub transformNodeToObject: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMElement,
            stylesheet: *mut IXMLDOMNode,
            outputObject: VARIANT,
        ) -> HRESULT,
    >,
    pub get_tagName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMElement, tagName: *mut BSTR) -> HRESULT,
    >,
    pub getAttribute: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMElement, name: BSTR, value: *mut VARIANT) -> HRESULT,
    >,
    pub setAttribute: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMElement, name: BSTR, value: VARIANT) -> HRESULT,
    >,
    pub removeAttribute: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMElement, name: BSTR) -> HRESULT,
    >,
    pub getAttributeNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMElement,
            name: BSTR,
            attributeNode: *mut *mut IXMLDOMAttribute,
        ) -> HRESULT,
    >,
    pub setAttributeNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMElement,
            DOMAttribute: *mut IXMLDOMAttribute,
            attributeNode: *mut *mut IXMLDOMAttribute,
        ) -> HRESULT,
    >,
    pub removeAttributeNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMElement,
            DOMAttribute: *mut IXMLDOMAttribute,
            attributeNode: *mut *mut IXMLDOMAttribute,
        ) -> HRESULT,
    >,
    pub getElementsByTagName: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMElement,
            tagName: BSTR,
            resultList: *mut *mut IXMLDOMNodeList,
        ) -> HRESULT,
    >,
    pub normalize:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMElement) -> HRESULT>,
}
#[test]
fn bindgen_test_layout_IXMLDOMElementVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMElementVtbl>(),
        416usize,
        concat!("Size of: ", stringify!(IXMLDOMElementVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMElementVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMElementVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).GetTypeInfoCount as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(GetTypeInfoCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).GetTypeInfo as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(GetTypeInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).GetIDsOfNames as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(GetIDsOfNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).Invoke as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(Invoke)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).get_nodeName as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(get_nodeName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).get_nodeValue as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(get_nodeValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).put_nodeValue as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(put_nodeValue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).get_nodeType as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(get_nodeType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).get_parentNode as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(get_parentNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).get_childNodes as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(get_childNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).get_firstChild as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(get_firstChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).get_lastChild as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(get_lastChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).get_previousSibling as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(get_previousSibling)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).get_nextSibling as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(get_nextSibling)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).get_attributes as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(get_attributes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).insertBefore as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(insertBefore)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).replaceChild as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(replaceChild)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).removeChild as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(removeChild)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).appendChild as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(appendChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).hasChildNodes as *const _ as usize
        },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(hasChildNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).get_ownerDocument as *const _ as usize
        },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(get_ownerDocument)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).cloneNode as *const _ as usize },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(cloneNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).get_nodeTypeString as *const _ as usize
        },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(get_nodeTypeString)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).get_text as *const _ as usize },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(get_text)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).put_text as *const _ as usize },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(put_text)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).get_specified as *const _ as usize
        },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(get_specified)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).get_definition as *const _ as usize
        },
        232usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(get_definition)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).get_nodeTypedValue as *const _ as usize
        },
        240usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(get_nodeTypedValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).put_nodeTypedValue as *const _ as usize
        },
        248usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(put_nodeTypedValue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).get_dataType as *const _ as usize },
        256usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(get_dataType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).put_dataType as *const _ as usize },
        264usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(put_dataType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).get_xml as *const _ as usize },
        272usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(get_xml)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).transformNode as *const _ as usize
        },
        280usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(transformNode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).selectNodes as *const _ as usize },
        288usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(selectNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).selectSingleNode as *const _ as usize
        },
        296usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(selectSingleNode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).get_parsed as *const _ as usize },
        304usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(get_parsed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).get_namespaceURI as *const _ as usize
        },
        312usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(get_namespaceURI)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).get_prefix as *const _ as usize },
        320usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(get_prefix)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).get_baseName as *const _ as usize },
        328usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(get_baseName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).transformNodeToObject as *const _
                as usize
        },
        336usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(transformNodeToObject)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).get_tagName as *const _ as usize },
        344usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(get_tagName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).getAttribute as *const _ as usize },
        352usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(getAttribute)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).setAttribute as *const _ as usize },
        360usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(setAttribute)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).removeAttribute as *const _ as usize
        },
        368usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(removeAttribute)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).getAttributeNode as *const _ as usize
        },
        376usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(getAttributeNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).setAttributeNode as *const _ as usize
        },
        384usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(setAttributeNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).removeAttributeNode as *const _ as usize
        },
        392usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(removeAttributeNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).getElementsByTagName as *const _ as usize
        },
        400usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(getElementsByTagName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMElementVtbl>())).normalize as *const _ as usize },
        408usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElementVtbl),
            "::",
            stringify!(normalize)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMElement {
    pub lpVtbl: *mut IXMLDOMElementVtbl,
}
#[test]
fn bindgen_test_layout_IXMLDOMElement() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMElement>(),
        8usize,
        concat!("Size of: ", stringify!(IXMLDOMElement))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMElement>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMElement))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMElement>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMElement),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IXMLDOMText: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMTextVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMText,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMText) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMText) -> ULONG>,
    pub GetTypeInfoCount: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMText, pctinfo: *mut UINT) -> HRESULT,
    >,
    pub GetTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMText,
            iTInfo: UINT,
            lcid: LCID,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetIDsOfNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMText,
            riid: *const IID,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
            lcid: LCID,
            rgDispId: *mut DISPID,
        ) -> HRESULT,
    >,
    pub Invoke: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMText,
            dispIdMember: DISPID,
            riid: *const IID,
            lcid: LCID,
            wFlags: WORD,
            pDispParams: *mut DISPPARAMS,
            pVarResult: *mut VARIANT,
            pExcepInfo: *mut EXCEPINFO,
            puArgErr: *mut UINT,
        ) -> HRESULT,
    >,
    pub get_nodeName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMText, name: *mut BSTR) -> HRESULT,
    >,
    pub get_nodeValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMText, value: *mut VARIANT) -> HRESULT,
    >,
    pub put_nodeValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMText, value: VARIANT) -> HRESULT,
    >,
    pub get_nodeType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMText, type_: *mut DOMNodeType) -> HRESULT,
    >,
    pub get_parentNode: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMText, parent: *mut *mut IXMLDOMNode) -> HRESULT,
    >,
    pub get_childNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMText,
            childList: *mut *mut IXMLDOMNodeList,
        ) -> HRESULT,
    >,
    pub get_firstChild: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMText, firstChild: *mut *mut IXMLDOMNode) -> HRESULT,
    >,
    pub get_lastChild: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMText, lastChild: *mut *mut IXMLDOMNode) -> HRESULT,
    >,
    pub get_previousSibling: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMText,
            previousSibling: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nextSibling: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMText, nextSibling: *mut *mut IXMLDOMNode) -> HRESULT,
    >,
    pub get_attributes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMText,
            attributeMap: *mut *mut IXMLDOMNamedNodeMap,
        ) -> HRESULT,
    >,
    pub insertBefore: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMText,
            newChild: *mut IXMLDOMNode,
            refChild: VARIANT,
            outNewChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub replaceChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMText,
            newChild: *mut IXMLDOMNode,
            oldChild: *mut IXMLDOMNode,
            outOldChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub removeChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMText,
            childNode: *mut IXMLDOMNode,
            oldChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub appendChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMText,
            newChild: *mut IXMLDOMNode,
            outNewChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub hasChildNodes: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMText, hasChild: *mut VARIANT_BOOL) -> HRESULT,
    >,
    pub get_ownerDocument: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMText,
            XMLDOMDocument: *mut *mut IXMLDOMDocument,
        ) -> HRESULT,
    >,
    pub cloneNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMText,
            deep: VARIANT_BOOL,
            cloneRoot: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nodeTypeString: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMText, nodeType: *mut BSTR) -> HRESULT,
    >,
    pub get_text: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMText, text: *mut BSTR) -> HRESULT,
    >,
    pub put_text:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMText, text: BSTR) -> HRESULT>,
    pub get_specified: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMText, isSpecified: *mut VARIANT_BOOL) -> HRESULT,
    >,
    pub get_definition: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMText,
            definitionNode: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nodeTypedValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMText, typedValue: *mut VARIANT) -> HRESULT,
    >,
    pub put_nodeTypedValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMText, typedValue: VARIANT) -> HRESULT,
    >,
    pub get_dataType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMText, dataTypeName: *mut VARIANT) -> HRESULT,
    >,
    pub put_dataType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMText, dataTypeName: BSTR) -> HRESULT,
    >,
    pub get_xml: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMText, xmlString: *mut BSTR) -> HRESULT,
    >,
    pub transformNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMText,
            stylesheet: *mut IXMLDOMNode,
            xmlString: *mut BSTR,
        ) -> HRESULT,
    >,
    pub selectNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMText,
            queryString: BSTR,
            resultList: *mut *mut IXMLDOMNodeList,
        ) -> HRESULT,
    >,
    pub selectSingleNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMText,
            queryString: BSTR,
            resultNode: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_parsed: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMText, isParsed: *mut VARIANT_BOOL) -> HRESULT,
    >,
    pub get_namespaceURI: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMText, namespaceURI: *mut BSTR) -> HRESULT,
    >,
    pub get_prefix: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMText, prefixString: *mut BSTR) -> HRESULT,
    >,
    pub get_baseName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMText, nameString: *mut BSTR) -> HRESULT,
    >,
    pub transformNodeToObject: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMText,
            stylesheet: *mut IXMLDOMNode,
            outputObject: VARIANT,
        ) -> HRESULT,
    >,
    pub get_data: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMText, data: *mut BSTR) -> HRESULT,
    >,
    pub put_data:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMText, data: BSTR) -> HRESULT>,
    pub get_length: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMText,
            dataLength: *mut ::std::os::raw::c_long,
        ) -> HRESULT,
    >,
    pub substringData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMText,
            offset: ::std::os::raw::c_long,
            count: ::std::os::raw::c_long,
            data: *mut BSTR,
        ) -> HRESULT,
    >,
    pub appendData:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMText, data: BSTR) -> HRESULT>,
    pub insertData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMText,
            offset: ::std::os::raw::c_long,
            data: BSTR,
        ) -> HRESULT,
    >,
    pub deleteData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMText,
            offset: ::std::os::raw::c_long,
            count: ::std::os::raw::c_long,
        ) -> HRESULT,
    >,
    pub replaceData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMText,
            offset: ::std::os::raw::c_long,
            count: ::std::os::raw::c_long,
            data: BSTR,
        ) -> HRESULT,
    >,
    pub splitText: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMText,
            offset: ::std::os::raw::c_long,
            rightHandTextNode: *mut *mut IXMLDOMText,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IXMLDOMTextVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMTextVtbl>(),
        416usize,
        concat!("Size of: ", stringify!(IXMLDOMTextVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMTextVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMTextVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).GetTypeInfoCount as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(GetTypeInfoCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).GetTypeInfo as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(GetTypeInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).GetIDsOfNames as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(GetIDsOfNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).Invoke as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(Invoke)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).get_nodeName as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(get_nodeName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).get_nodeValue as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(get_nodeValue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).put_nodeValue as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(put_nodeValue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).get_nodeType as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(get_nodeType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).get_parentNode as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(get_parentNode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).get_childNodes as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(get_childNodes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).get_firstChild as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(get_firstChild)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).get_lastChild as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(get_lastChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).get_previousSibling as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(get_previousSibling)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).get_nextSibling as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(get_nextSibling)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).get_attributes as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(get_attributes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).insertBefore as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(insertBefore)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).replaceChild as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(replaceChild)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).removeChild as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(removeChild)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).appendChild as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(appendChild)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).hasChildNodes as *const _ as usize },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(hasChildNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).get_ownerDocument as *const _ as usize
        },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(get_ownerDocument)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).cloneNode as *const _ as usize },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(cloneNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).get_nodeTypeString as *const _ as usize
        },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(get_nodeTypeString)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).get_text as *const _ as usize },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(get_text)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).put_text as *const _ as usize },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(put_text)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).get_specified as *const _ as usize },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(get_specified)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).get_definition as *const _ as usize },
        232usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(get_definition)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).get_nodeTypedValue as *const _ as usize
        },
        240usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(get_nodeTypedValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).put_nodeTypedValue as *const _ as usize
        },
        248usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(put_nodeTypedValue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).get_dataType as *const _ as usize },
        256usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(get_dataType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).put_dataType as *const _ as usize },
        264usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(put_dataType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).get_xml as *const _ as usize },
        272usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(get_xml)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).transformNode as *const _ as usize },
        280usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(transformNode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).selectNodes as *const _ as usize },
        288usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(selectNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).selectSingleNode as *const _ as usize
        },
        296usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(selectSingleNode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).get_parsed as *const _ as usize },
        304usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(get_parsed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).get_namespaceURI as *const _ as usize
        },
        312usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(get_namespaceURI)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).get_prefix as *const _ as usize },
        320usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(get_prefix)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).get_baseName as *const _ as usize },
        328usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(get_baseName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).transformNodeToObject as *const _ as usize
        },
        336usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(transformNodeToObject)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).get_data as *const _ as usize },
        344usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(get_data)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).put_data as *const _ as usize },
        352usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(put_data)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).get_length as *const _ as usize },
        360usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(get_length)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).substringData as *const _ as usize },
        368usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(substringData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).appendData as *const _ as usize },
        376usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(appendData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).insertData as *const _ as usize },
        384usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(insertData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).deleteData as *const _ as usize },
        392usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(deleteData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).replaceData as *const _ as usize },
        400usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(replaceData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMTextVtbl>())).splitText as *const _ as usize },
        408usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMTextVtbl),
            "::",
            stringify!(splitText)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMText {
    pub lpVtbl: *mut IXMLDOMTextVtbl,
}
#[test]
fn bindgen_test_layout_IXMLDOMText() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMText>(),
        8usize,
        concat!("Size of: ", stringify!(IXMLDOMText))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMText>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMText))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMText>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMText),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IXMLDOMComment: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMCommentVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMComment,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMComment) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMComment) -> ULONG>,
    pub GetTypeInfoCount: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMComment, pctinfo: *mut UINT) -> HRESULT,
    >,
    pub GetTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMComment,
            iTInfo: UINT,
            lcid: LCID,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetIDsOfNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMComment,
            riid: *const IID,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
            lcid: LCID,
            rgDispId: *mut DISPID,
        ) -> HRESULT,
    >,
    pub Invoke: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMComment,
            dispIdMember: DISPID,
            riid: *const IID,
            lcid: LCID,
            wFlags: WORD,
            pDispParams: *mut DISPPARAMS,
            pVarResult: *mut VARIANT,
            pExcepInfo: *mut EXCEPINFO,
            puArgErr: *mut UINT,
        ) -> HRESULT,
    >,
    pub get_nodeName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMComment, name: *mut BSTR) -> HRESULT,
    >,
    pub get_nodeValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMComment, value: *mut VARIANT) -> HRESULT,
    >,
    pub put_nodeValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMComment, value: VARIANT) -> HRESULT,
    >,
    pub get_nodeType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMComment, type_: *mut DOMNodeType) -> HRESULT,
    >,
    pub get_parentNode: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMComment, parent: *mut *mut IXMLDOMNode) -> HRESULT,
    >,
    pub get_childNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMComment,
            childList: *mut *mut IXMLDOMNodeList,
        ) -> HRESULT,
    >,
    pub get_firstChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMComment,
            firstChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_lastChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMComment,
            lastChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_previousSibling: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMComment,
            previousSibling: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nextSibling: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMComment,
            nextSibling: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_attributes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMComment,
            attributeMap: *mut *mut IXMLDOMNamedNodeMap,
        ) -> HRESULT,
    >,
    pub insertBefore: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMComment,
            newChild: *mut IXMLDOMNode,
            refChild: VARIANT,
            outNewChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub replaceChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMComment,
            newChild: *mut IXMLDOMNode,
            oldChild: *mut IXMLDOMNode,
            outOldChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub removeChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMComment,
            childNode: *mut IXMLDOMNode,
            oldChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub appendChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMComment,
            newChild: *mut IXMLDOMNode,
            outNewChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub hasChildNodes: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMComment, hasChild: *mut VARIANT_BOOL) -> HRESULT,
    >,
    pub get_ownerDocument: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMComment,
            XMLDOMDocument: *mut *mut IXMLDOMDocument,
        ) -> HRESULT,
    >,
    pub cloneNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMComment,
            deep: VARIANT_BOOL,
            cloneRoot: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nodeTypeString: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMComment, nodeType: *mut BSTR) -> HRESULT,
    >,
    pub get_text: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMComment, text: *mut BSTR) -> HRESULT,
    >,
    pub put_text: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMComment, text: BSTR) -> HRESULT,
    >,
    pub get_specified: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMComment, isSpecified: *mut VARIANT_BOOL) -> HRESULT,
    >,
    pub get_definition: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMComment,
            definitionNode: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nodeTypedValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMComment, typedValue: *mut VARIANT) -> HRESULT,
    >,
    pub put_nodeTypedValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMComment, typedValue: VARIANT) -> HRESULT,
    >,
    pub get_dataType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMComment, dataTypeName: *mut VARIANT) -> HRESULT,
    >,
    pub put_dataType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMComment, dataTypeName: BSTR) -> HRESULT,
    >,
    pub get_xml: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMComment, xmlString: *mut BSTR) -> HRESULT,
    >,
    pub transformNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMComment,
            stylesheet: *mut IXMLDOMNode,
            xmlString: *mut BSTR,
        ) -> HRESULT,
    >,
    pub selectNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMComment,
            queryString: BSTR,
            resultList: *mut *mut IXMLDOMNodeList,
        ) -> HRESULT,
    >,
    pub selectSingleNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMComment,
            queryString: BSTR,
            resultNode: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_parsed: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMComment, isParsed: *mut VARIANT_BOOL) -> HRESULT,
    >,
    pub get_namespaceURI: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMComment, namespaceURI: *mut BSTR) -> HRESULT,
    >,
    pub get_prefix: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMComment, prefixString: *mut BSTR) -> HRESULT,
    >,
    pub get_baseName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMComment, nameString: *mut BSTR) -> HRESULT,
    >,
    pub transformNodeToObject: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMComment,
            stylesheet: *mut IXMLDOMNode,
            outputObject: VARIANT,
        ) -> HRESULT,
    >,
    pub get_data: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMComment, data: *mut BSTR) -> HRESULT,
    >,
    pub put_data: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMComment, data: BSTR) -> HRESULT,
    >,
    pub get_length: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMComment,
            dataLength: *mut ::std::os::raw::c_long,
        ) -> HRESULT,
    >,
    pub substringData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMComment,
            offset: ::std::os::raw::c_long,
            count: ::std::os::raw::c_long,
            data: *mut BSTR,
        ) -> HRESULT,
    >,
    pub appendData: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMComment, data: BSTR) -> HRESULT,
    >,
    pub insertData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMComment,
            offset: ::std::os::raw::c_long,
            data: BSTR,
        ) -> HRESULT,
    >,
    pub deleteData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMComment,
            offset: ::std::os::raw::c_long,
            count: ::std::os::raw::c_long,
        ) -> HRESULT,
    >,
    pub replaceData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMComment,
            offset: ::std::os::raw::c_long,
            count: ::std::os::raw::c_long,
            data: BSTR,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IXMLDOMCommentVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMCommentVtbl>(),
        408usize,
        concat!("Size of: ", stringify!(IXMLDOMCommentVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMCommentVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMCommentVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).GetTypeInfoCount as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(GetTypeInfoCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).GetTypeInfo as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(GetTypeInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).GetIDsOfNames as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(GetIDsOfNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).Invoke as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(Invoke)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).get_nodeName as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(get_nodeName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).get_nodeValue as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(get_nodeValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).put_nodeValue as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(put_nodeValue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).get_nodeType as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(get_nodeType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).get_parentNode as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(get_parentNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).get_childNodes as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(get_childNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).get_firstChild as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(get_firstChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).get_lastChild as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(get_lastChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).get_previousSibling as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(get_previousSibling)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).get_nextSibling as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(get_nextSibling)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).get_attributes as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(get_attributes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).insertBefore as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(insertBefore)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).replaceChild as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(replaceChild)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).removeChild as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(removeChild)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).appendChild as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(appendChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).hasChildNodes as *const _ as usize
        },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(hasChildNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).get_ownerDocument as *const _ as usize
        },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(get_ownerDocument)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).cloneNode as *const _ as usize },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(cloneNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).get_nodeTypeString as *const _ as usize
        },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(get_nodeTypeString)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).get_text as *const _ as usize },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(get_text)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).put_text as *const _ as usize },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(put_text)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).get_specified as *const _ as usize
        },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(get_specified)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).get_definition as *const _ as usize
        },
        232usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(get_definition)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).get_nodeTypedValue as *const _ as usize
        },
        240usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(get_nodeTypedValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).put_nodeTypedValue as *const _ as usize
        },
        248usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(put_nodeTypedValue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).get_dataType as *const _ as usize },
        256usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(get_dataType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).put_dataType as *const _ as usize },
        264usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(put_dataType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).get_xml as *const _ as usize },
        272usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(get_xml)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).transformNode as *const _ as usize
        },
        280usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(transformNode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).selectNodes as *const _ as usize },
        288usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(selectNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).selectSingleNode as *const _ as usize
        },
        296usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(selectSingleNode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).get_parsed as *const _ as usize },
        304usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(get_parsed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).get_namespaceURI as *const _ as usize
        },
        312usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(get_namespaceURI)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).get_prefix as *const _ as usize },
        320usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(get_prefix)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).get_baseName as *const _ as usize },
        328usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(get_baseName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).transformNodeToObject as *const _
                as usize
        },
        336usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(transformNodeToObject)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).get_data as *const _ as usize },
        344usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(get_data)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).put_data as *const _ as usize },
        352usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(put_data)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).get_length as *const _ as usize },
        360usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(get_length)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).substringData as *const _ as usize
        },
        368usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(substringData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).appendData as *const _ as usize },
        376usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(appendData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).insertData as *const _ as usize },
        384usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(insertData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).deleteData as *const _ as usize },
        392usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(deleteData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCommentVtbl>())).replaceData as *const _ as usize },
        400usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCommentVtbl),
            "::",
            stringify!(replaceData)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMComment {
    pub lpVtbl: *mut IXMLDOMCommentVtbl,
}
#[test]
fn bindgen_test_layout_IXMLDOMComment() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMComment>(),
        8usize,
        concat!("Size of: ", stringify!(IXMLDOMComment))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMComment>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMComment))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMComment>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMComment),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IXMLDOMProcessingInstruction: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMProcessingInstructionVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMProcessingInstruction) -> ULONG,
    >,
    pub Release: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMProcessingInstruction) -> ULONG,
    >,
    pub GetTypeInfoCount: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            pctinfo: *mut UINT,
        ) -> HRESULT,
    >,
    pub GetTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            iTInfo: UINT,
            lcid: LCID,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetIDsOfNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            riid: *const IID,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
            lcid: LCID,
            rgDispId: *mut DISPID,
        ) -> HRESULT,
    >,
    pub Invoke: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            dispIdMember: DISPID,
            riid: *const IID,
            lcid: LCID,
            wFlags: WORD,
            pDispParams: *mut DISPPARAMS,
            pVarResult: *mut VARIANT,
            pExcepInfo: *mut EXCEPINFO,
            puArgErr: *mut UINT,
        ) -> HRESULT,
    >,
    pub get_nodeName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMProcessingInstruction, name: *mut BSTR) -> HRESULT,
    >,
    pub get_nodeValue: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            value: *mut VARIANT,
        ) -> HRESULT,
    >,
    pub put_nodeValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMProcessingInstruction, value: VARIANT) -> HRESULT,
    >,
    pub get_nodeType: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            type_: *mut DOMNodeType,
        ) -> HRESULT,
    >,
    pub get_parentNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            parent: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_childNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            childList: *mut *mut IXMLDOMNodeList,
        ) -> HRESULT,
    >,
    pub get_firstChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            firstChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_lastChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            lastChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_previousSibling: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            previousSibling: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nextSibling: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            nextSibling: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_attributes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            attributeMap: *mut *mut IXMLDOMNamedNodeMap,
        ) -> HRESULT,
    >,
    pub insertBefore: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            newChild: *mut IXMLDOMNode,
            refChild: VARIANT,
            outNewChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub replaceChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            newChild: *mut IXMLDOMNode,
            oldChild: *mut IXMLDOMNode,
            outOldChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub removeChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            childNode: *mut IXMLDOMNode,
            oldChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub appendChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            newChild: *mut IXMLDOMNode,
            outNewChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub hasChildNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            hasChild: *mut VARIANT_BOOL,
        ) -> HRESULT,
    >,
    pub get_ownerDocument: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            XMLDOMDocument: *mut *mut IXMLDOMDocument,
        ) -> HRESULT,
    >,
    pub cloneNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            deep: VARIANT_BOOL,
            cloneRoot: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nodeTypeString: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            nodeType: *mut BSTR,
        ) -> HRESULT,
    >,
    pub get_text: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMProcessingInstruction, text: *mut BSTR) -> HRESULT,
    >,
    pub put_text: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMProcessingInstruction, text: BSTR) -> HRESULT,
    >,
    pub get_specified: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            isSpecified: *mut VARIANT_BOOL,
        ) -> HRESULT,
    >,
    pub get_definition: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            definitionNode: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nodeTypedValue: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            typedValue: *mut VARIANT,
        ) -> HRESULT,
    >,
    pub put_nodeTypedValue: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            typedValue: VARIANT,
        ) -> HRESULT,
    >,
    pub get_dataType: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            dataTypeName: *mut VARIANT,
        ) -> HRESULT,
    >,
    pub put_dataType: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            dataTypeName: BSTR,
        ) -> HRESULT,
    >,
    pub get_xml: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            xmlString: *mut BSTR,
        ) -> HRESULT,
    >,
    pub transformNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            stylesheet: *mut IXMLDOMNode,
            xmlString: *mut BSTR,
        ) -> HRESULT,
    >,
    pub selectNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            queryString: BSTR,
            resultList: *mut *mut IXMLDOMNodeList,
        ) -> HRESULT,
    >,
    pub selectSingleNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            queryString: BSTR,
            resultNode: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_parsed: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            isParsed: *mut VARIANT_BOOL,
        ) -> HRESULT,
    >,
    pub get_namespaceURI: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            namespaceURI: *mut BSTR,
        ) -> HRESULT,
    >,
    pub get_prefix: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            prefixString: *mut BSTR,
        ) -> HRESULT,
    >,
    pub get_baseName: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            nameString: *mut BSTR,
        ) -> HRESULT,
    >,
    pub transformNodeToObject: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMProcessingInstruction,
            stylesheet: *mut IXMLDOMNode,
            outputObject: VARIANT,
        ) -> HRESULT,
    >,
    pub get_target: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMProcessingInstruction, name: *mut BSTR) -> HRESULT,
    >,
    pub get_data: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMProcessingInstruction, value: *mut BSTR) -> HRESULT,
    >,
    pub put_data: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMProcessingInstruction, value: BSTR) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IXMLDOMProcessingInstructionVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMProcessingInstructionVtbl>(),
        368usize,
        concat!("Size of: ", stringify!(IXMLDOMProcessingInstructionVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMProcessingInstructionVtbl>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(IXMLDOMProcessingInstructionVtbl)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).QueryInterface as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).AddRef as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).Release as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).GetTypeInfoCount
                as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(GetTypeInfoCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).GetTypeInfo as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(GetTypeInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).GetIDsOfNames as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(GetIDsOfNames)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).Invoke as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(Invoke)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).get_nodeName as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(get_nodeName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).get_nodeValue as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(get_nodeValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).put_nodeValue as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(put_nodeValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).get_nodeType as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(get_nodeType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).get_parentNode as *const _
                as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(get_parentNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).get_childNodes as *const _
                as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(get_childNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).get_firstChild as *const _
                as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(get_firstChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).get_lastChild as *const _
                as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(get_lastChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).get_previousSibling
                as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(get_previousSibling)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).get_nextSibling as *const _
                as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(get_nextSibling)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).get_attributes as *const _
                as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(get_attributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).insertBefore as *const _
                as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(insertBefore)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).replaceChild as *const _
                as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(replaceChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).removeChild as *const _
                as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(removeChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).appendChild as *const _
                as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(appendChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).hasChildNodes as *const _
                as usize
        },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(hasChildNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).get_ownerDocument
                as *const _ as usize
        },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(get_ownerDocument)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).cloneNode as *const _
                as usize
        },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(cloneNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).get_nodeTypeString
                as *const _ as usize
        },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(get_nodeTypeString)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).get_text as *const _
                as usize
        },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(get_text)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).put_text as *const _
                as usize
        },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(put_text)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).get_specified as *const _
                as usize
        },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(get_specified)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).get_definition as *const _
                as usize
        },
        232usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(get_definition)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).get_nodeTypedValue
                as *const _ as usize
        },
        240usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(get_nodeTypedValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).put_nodeTypedValue
                as *const _ as usize
        },
        248usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(put_nodeTypedValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).get_dataType as *const _
                as usize
        },
        256usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(get_dataType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).put_dataType as *const _
                as usize
        },
        264usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(put_dataType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).get_xml as *const _
                as usize
        },
        272usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(get_xml)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).transformNode as *const _
                as usize
        },
        280usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(transformNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).selectNodes as *const _
                as usize
        },
        288usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(selectNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).selectSingleNode
                as *const _ as usize
        },
        296usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(selectSingleNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).get_parsed as *const _
                as usize
        },
        304usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(get_parsed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).get_namespaceURI
                as *const _ as usize
        },
        312usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(get_namespaceURI)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).get_prefix as *const _
                as usize
        },
        320usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(get_prefix)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).get_baseName as *const _
                as usize
        },
        328usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(get_baseName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).transformNodeToObject
                as *const _ as usize
        },
        336usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(transformNodeToObject)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).get_target as *const _
                as usize
        },
        344usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(get_target)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).get_data as *const _
                as usize
        },
        352usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(get_data)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstructionVtbl>())).put_data as *const _
                as usize
        },
        360usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstructionVtbl),
            "::",
            stringify!(put_data)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMProcessingInstruction {
    pub lpVtbl: *mut IXMLDOMProcessingInstructionVtbl,
}
#[test]
fn bindgen_test_layout_IXMLDOMProcessingInstruction() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMProcessingInstruction>(),
        8usize,
        concat!("Size of: ", stringify!(IXMLDOMProcessingInstruction))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMProcessingInstruction>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMProcessingInstruction))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMProcessingInstruction>())).lpVtbl as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMProcessingInstruction),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IXMLDOMCDATASection: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMCDATASectionVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCDATASection,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMCDATASection) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMCDATASection) -> ULONG>,
    pub GetTypeInfoCount: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCDATASection, pctinfo: *mut UINT) -> HRESULT,
    >,
    pub GetTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCDATASection,
            iTInfo: UINT,
            lcid: LCID,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetIDsOfNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCDATASection,
            riid: *const IID,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
            lcid: LCID,
            rgDispId: *mut DISPID,
        ) -> HRESULT,
    >,
    pub Invoke: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCDATASection,
            dispIdMember: DISPID,
            riid: *const IID,
            lcid: LCID,
            wFlags: WORD,
            pDispParams: *mut DISPPARAMS,
            pVarResult: *mut VARIANT,
            pExcepInfo: *mut EXCEPINFO,
            puArgErr: *mut UINT,
        ) -> HRESULT,
    >,
    pub get_nodeName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCDATASection, name: *mut BSTR) -> HRESULT,
    >,
    pub get_nodeValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCDATASection, value: *mut VARIANT) -> HRESULT,
    >,
    pub put_nodeValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCDATASection, value: VARIANT) -> HRESULT,
    >,
    pub get_nodeType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCDATASection, type_: *mut DOMNodeType) -> HRESULT,
    >,
    pub get_parentNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCDATASection,
            parent: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_childNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCDATASection,
            childList: *mut *mut IXMLDOMNodeList,
        ) -> HRESULT,
    >,
    pub get_firstChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCDATASection,
            firstChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_lastChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCDATASection,
            lastChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_previousSibling: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCDATASection,
            previousSibling: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nextSibling: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCDATASection,
            nextSibling: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_attributes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCDATASection,
            attributeMap: *mut *mut IXMLDOMNamedNodeMap,
        ) -> HRESULT,
    >,
    pub insertBefore: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCDATASection,
            newChild: *mut IXMLDOMNode,
            refChild: VARIANT,
            outNewChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub replaceChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCDATASection,
            newChild: *mut IXMLDOMNode,
            oldChild: *mut IXMLDOMNode,
            outOldChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub removeChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCDATASection,
            childNode: *mut IXMLDOMNode,
            oldChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub appendChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCDATASection,
            newChild: *mut IXMLDOMNode,
            outNewChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub hasChildNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCDATASection,
            hasChild: *mut VARIANT_BOOL,
        ) -> HRESULT,
    >,
    pub get_ownerDocument: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCDATASection,
            XMLDOMDocument: *mut *mut IXMLDOMDocument,
        ) -> HRESULT,
    >,
    pub cloneNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCDATASection,
            deep: VARIANT_BOOL,
            cloneRoot: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nodeTypeString: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCDATASection, nodeType: *mut BSTR) -> HRESULT,
    >,
    pub get_text: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCDATASection, text: *mut BSTR) -> HRESULT,
    >,
    pub put_text: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCDATASection, text: BSTR) -> HRESULT,
    >,
    pub get_specified: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCDATASection,
            isSpecified: *mut VARIANT_BOOL,
        ) -> HRESULT,
    >,
    pub get_definition: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCDATASection,
            definitionNode: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nodeTypedValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCDATASection, typedValue: *mut VARIANT) -> HRESULT,
    >,
    pub put_nodeTypedValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCDATASection, typedValue: VARIANT) -> HRESULT,
    >,
    pub get_dataType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCDATASection, dataTypeName: *mut VARIANT) -> HRESULT,
    >,
    pub put_dataType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCDATASection, dataTypeName: BSTR) -> HRESULT,
    >,
    pub get_xml: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCDATASection, xmlString: *mut BSTR) -> HRESULT,
    >,
    pub transformNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCDATASection,
            stylesheet: *mut IXMLDOMNode,
            xmlString: *mut BSTR,
        ) -> HRESULT,
    >,
    pub selectNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCDATASection,
            queryString: BSTR,
            resultList: *mut *mut IXMLDOMNodeList,
        ) -> HRESULT,
    >,
    pub selectSingleNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCDATASection,
            queryString: BSTR,
            resultNode: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_parsed: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCDATASection,
            isParsed: *mut VARIANT_BOOL,
        ) -> HRESULT,
    >,
    pub get_namespaceURI: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCDATASection, namespaceURI: *mut BSTR) -> HRESULT,
    >,
    pub get_prefix: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCDATASection, prefixString: *mut BSTR) -> HRESULT,
    >,
    pub get_baseName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCDATASection, nameString: *mut BSTR) -> HRESULT,
    >,
    pub transformNodeToObject: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCDATASection,
            stylesheet: *mut IXMLDOMNode,
            outputObject: VARIANT,
        ) -> HRESULT,
    >,
    pub get_data: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCDATASection, data: *mut BSTR) -> HRESULT,
    >,
    pub put_data: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCDATASection, data: BSTR) -> HRESULT,
    >,
    pub get_length: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCDATASection,
            dataLength: *mut ::std::os::raw::c_long,
        ) -> HRESULT,
    >,
    pub substringData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCDATASection,
            offset: ::std::os::raw::c_long,
            count: ::std::os::raw::c_long,
            data: *mut BSTR,
        ) -> HRESULT,
    >,
    pub appendData: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMCDATASection, data: BSTR) -> HRESULT,
    >,
    pub insertData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCDATASection,
            offset: ::std::os::raw::c_long,
            data: BSTR,
        ) -> HRESULT,
    >,
    pub deleteData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCDATASection,
            offset: ::std::os::raw::c_long,
            count: ::std::os::raw::c_long,
        ) -> HRESULT,
    >,
    pub replaceData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCDATASection,
            offset: ::std::os::raw::c_long,
            count: ::std::os::raw::c_long,
            data: BSTR,
        ) -> HRESULT,
    >,
    pub splitText: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMCDATASection,
            offset: ::std::os::raw::c_long,
            rightHandTextNode: *mut *mut IXMLDOMText,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IXMLDOMCDATASectionVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMCDATASectionVtbl>(),
        416usize,
        concat!("Size of: ", stringify!(IXMLDOMCDATASectionVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMCDATASectionVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMCDATASectionVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).GetTypeInfoCount as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(GetTypeInfoCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).GetTypeInfo as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(GetTypeInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).GetIDsOfNames as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(GetIDsOfNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).Invoke as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(Invoke)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).get_nodeName as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(get_nodeName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).get_nodeValue as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(get_nodeValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).put_nodeValue as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(put_nodeValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).get_nodeType as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(get_nodeType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).get_parentNode as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(get_parentNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).get_childNodes as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(get_childNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).get_firstChild as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(get_firstChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).get_lastChild as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(get_lastChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).get_previousSibling as *const _
                as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(get_previousSibling)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).get_nextSibling as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(get_nextSibling)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).get_attributes as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(get_attributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).insertBefore as *const _ as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(insertBefore)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).replaceChild as *const _ as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(replaceChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).removeChild as *const _ as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(removeChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).appendChild as *const _ as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(appendChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).hasChildNodes as *const _ as usize
        },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(hasChildNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).get_ownerDocument as *const _
                as usize
        },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(get_ownerDocument)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).cloneNode as *const _ as usize
        },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(cloneNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).get_nodeTypeString as *const _
                as usize
        },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(get_nodeTypeString)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).get_text as *const _ as usize
        },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(get_text)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).put_text as *const _ as usize
        },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(put_text)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).get_specified as *const _ as usize
        },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(get_specified)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).get_definition as *const _ as usize
        },
        232usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(get_definition)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).get_nodeTypedValue as *const _
                as usize
        },
        240usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(get_nodeTypedValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).put_nodeTypedValue as *const _
                as usize
        },
        248usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(put_nodeTypedValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).get_dataType as *const _ as usize
        },
        256usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(get_dataType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).put_dataType as *const _ as usize
        },
        264usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(put_dataType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).get_xml as *const _ as usize },
        272usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(get_xml)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).transformNode as *const _ as usize
        },
        280usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(transformNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).selectNodes as *const _ as usize
        },
        288usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(selectNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).selectSingleNode as *const _
                as usize
        },
        296usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(selectSingleNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).get_parsed as *const _ as usize
        },
        304usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(get_parsed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).get_namespaceURI as *const _
                as usize
        },
        312usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(get_namespaceURI)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).get_prefix as *const _ as usize
        },
        320usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(get_prefix)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).get_baseName as *const _ as usize
        },
        328usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(get_baseName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).transformNodeToObject as *const _
                as usize
        },
        336usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(transformNodeToObject)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).get_data as *const _ as usize
        },
        344usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(get_data)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).put_data as *const _ as usize
        },
        352usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(put_data)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).get_length as *const _ as usize
        },
        360usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(get_length)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).substringData as *const _ as usize
        },
        368usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(substringData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).appendData as *const _ as usize
        },
        376usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(appendData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).insertData as *const _ as usize
        },
        384usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(insertData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).deleteData as *const _ as usize
        },
        392usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(deleteData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).replaceData as *const _ as usize
        },
        400usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(replaceData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMCDATASectionVtbl>())).splitText as *const _ as usize
        },
        408usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASectionVtbl),
            "::",
            stringify!(splitText)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMCDATASection {
    pub lpVtbl: *mut IXMLDOMCDATASectionVtbl,
}
#[test]
fn bindgen_test_layout_IXMLDOMCDATASection() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMCDATASection>(),
        8usize,
        concat!("Size of: ", stringify!(IXMLDOMCDATASection))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMCDATASection>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMCDATASection))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMCDATASection>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMCDATASection),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IXMLDOMDocumentType: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMDocumentTypeVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentType,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMDocumentType) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMDocumentType) -> ULONG>,
    pub GetTypeInfoCount: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocumentType, pctinfo: *mut UINT) -> HRESULT,
    >,
    pub GetTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentType,
            iTInfo: UINT,
            lcid: LCID,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetIDsOfNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentType,
            riid: *const IID,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
            lcid: LCID,
            rgDispId: *mut DISPID,
        ) -> HRESULT,
    >,
    pub Invoke: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentType,
            dispIdMember: DISPID,
            riid: *const IID,
            lcid: LCID,
            wFlags: WORD,
            pDispParams: *mut DISPPARAMS,
            pVarResult: *mut VARIANT,
            pExcepInfo: *mut EXCEPINFO,
            puArgErr: *mut UINT,
        ) -> HRESULT,
    >,
    pub get_nodeName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocumentType, name: *mut BSTR) -> HRESULT,
    >,
    pub get_nodeValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocumentType, value: *mut VARIANT) -> HRESULT,
    >,
    pub put_nodeValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocumentType, value: VARIANT) -> HRESULT,
    >,
    pub get_nodeType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocumentType, type_: *mut DOMNodeType) -> HRESULT,
    >,
    pub get_parentNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentType,
            parent: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_childNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentType,
            childList: *mut *mut IXMLDOMNodeList,
        ) -> HRESULT,
    >,
    pub get_firstChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentType,
            firstChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_lastChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentType,
            lastChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_previousSibling: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentType,
            previousSibling: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nextSibling: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentType,
            nextSibling: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_attributes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentType,
            attributeMap: *mut *mut IXMLDOMNamedNodeMap,
        ) -> HRESULT,
    >,
    pub insertBefore: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentType,
            newChild: *mut IXMLDOMNode,
            refChild: VARIANT,
            outNewChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub replaceChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentType,
            newChild: *mut IXMLDOMNode,
            oldChild: *mut IXMLDOMNode,
            outOldChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub removeChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentType,
            childNode: *mut IXMLDOMNode,
            oldChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub appendChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentType,
            newChild: *mut IXMLDOMNode,
            outNewChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub hasChildNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentType,
            hasChild: *mut VARIANT_BOOL,
        ) -> HRESULT,
    >,
    pub get_ownerDocument: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentType,
            XMLDOMDocument: *mut *mut IXMLDOMDocument,
        ) -> HRESULT,
    >,
    pub cloneNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentType,
            deep: VARIANT_BOOL,
            cloneRoot: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nodeTypeString: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocumentType, nodeType: *mut BSTR) -> HRESULT,
    >,
    pub get_text: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocumentType, text: *mut BSTR) -> HRESULT,
    >,
    pub put_text: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocumentType, text: BSTR) -> HRESULT,
    >,
    pub get_specified: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentType,
            isSpecified: *mut VARIANT_BOOL,
        ) -> HRESULT,
    >,
    pub get_definition: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentType,
            definitionNode: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nodeTypedValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocumentType, typedValue: *mut VARIANT) -> HRESULT,
    >,
    pub put_nodeTypedValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocumentType, typedValue: VARIANT) -> HRESULT,
    >,
    pub get_dataType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocumentType, dataTypeName: *mut VARIANT) -> HRESULT,
    >,
    pub put_dataType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocumentType, dataTypeName: BSTR) -> HRESULT,
    >,
    pub get_xml: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocumentType, xmlString: *mut BSTR) -> HRESULT,
    >,
    pub transformNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentType,
            stylesheet: *mut IXMLDOMNode,
            xmlString: *mut BSTR,
        ) -> HRESULT,
    >,
    pub selectNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentType,
            queryString: BSTR,
            resultList: *mut *mut IXMLDOMNodeList,
        ) -> HRESULT,
    >,
    pub selectSingleNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentType,
            queryString: BSTR,
            resultNode: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_parsed: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentType,
            isParsed: *mut VARIANT_BOOL,
        ) -> HRESULT,
    >,
    pub get_namespaceURI: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocumentType, namespaceURI: *mut BSTR) -> HRESULT,
    >,
    pub get_prefix: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocumentType, prefixString: *mut BSTR) -> HRESULT,
    >,
    pub get_baseName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocumentType, nameString: *mut BSTR) -> HRESULT,
    >,
    pub transformNodeToObject: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentType,
            stylesheet: *mut IXMLDOMNode,
            outputObject: VARIANT,
        ) -> HRESULT,
    >,
    pub get_name: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMDocumentType, rootName: *mut BSTR) -> HRESULT,
    >,
    pub get_entities: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentType,
            entityMap: *mut *mut IXMLDOMNamedNodeMap,
        ) -> HRESULT,
    >,
    pub get_notations: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMDocumentType,
            notationMap: *mut *mut IXMLDOMNamedNodeMap,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IXMLDOMDocumentTypeVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMDocumentTypeVtbl>(),
        368usize,
        concat!("Size of: ", stringify!(IXMLDOMDocumentTypeVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMDocumentTypeVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMDocumentTypeVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).GetTypeInfoCount as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(GetTypeInfoCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).GetTypeInfo as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(GetTypeInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).GetIDsOfNames as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(GetIDsOfNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).Invoke as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(Invoke)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).get_nodeName as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(get_nodeName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).get_nodeValue as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(get_nodeValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).put_nodeValue as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(put_nodeValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).get_nodeType as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(get_nodeType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).get_parentNode as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(get_parentNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).get_childNodes as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(get_childNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).get_firstChild as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(get_firstChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).get_lastChild as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(get_lastChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).get_previousSibling as *const _
                as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(get_previousSibling)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).get_nextSibling as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(get_nextSibling)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).get_attributes as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(get_attributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).insertBefore as *const _ as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(insertBefore)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).replaceChild as *const _ as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(replaceChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).removeChild as *const _ as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(removeChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).appendChild as *const _ as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(appendChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).hasChildNodes as *const _ as usize
        },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(hasChildNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).get_ownerDocument as *const _
                as usize
        },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(get_ownerDocument)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).cloneNode as *const _ as usize
        },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(cloneNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).get_nodeTypeString as *const _
                as usize
        },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(get_nodeTypeString)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).get_text as *const _ as usize
        },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(get_text)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).put_text as *const _ as usize
        },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(put_text)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).get_specified as *const _ as usize
        },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(get_specified)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).get_definition as *const _ as usize
        },
        232usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(get_definition)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).get_nodeTypedValue as *const _
                as usize
        },
        240usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(get_nodeTypedValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).put_nodeTypedValue as *const _
                as usize
        },
        248usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(put_nodeTypedValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).get_dataType as *const _ as usize
        },
        256usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(get_dataType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).put_dataType as *const _ as usize
        },
        264usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(put_dataType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).get_xml as *const _ as usize },
        272usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(get_xml)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).transformNode as *const _ as usize
        },
        280usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(transformNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).selectNodes as *const _ as usize
        },
        288usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(selectNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).selectSingleNode as *const _
                as usize
        },
        296usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(selectSingleNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).get_parsed as *const _ as usize
        },
        304usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(get_parsed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).get_namespaceURI as *const _
                as usize
        },
        312usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(get_namespaceURI)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).get_prefix as *const _ as usize
        },
        320usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(get_prefix)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).get_baseName as *const _ as usize
        },
        328usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(get_baseName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).transformNodeToObject as *const _
                as usize
        },
        336usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(transformNodeToObject)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).get_name as *const _ as usize
        },
        344usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(get_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).get_entities as *const _ as usize
        },
        352usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(get_entities)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMDocumentTypeVtbl>())).get_notations as *const _ as usize
        },
        360usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentTypeVtbl),
            "::",
            stringify!(get_notations)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMDocumentType {
    pub lpVtbl: *mut IXMLDOMDocumentTypeVtbl,
}
#[test]
fn bindgen_test_layout_IXMLDOMDocumentType() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMDocumentType>(),
        8usize,
        concat!("Size of: ", stringify!(IXMLDOMDocumentType))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMDocumentType>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMDocumentType))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMDocumentType>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMDocumentType),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IXMLDOMNotation: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMNotationVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNotation,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMNotation) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMNotation) -> ULONG>,
    pub GetTypeInfoCount: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNotation, pctinfo: *mut UINT) -> HRESULT,
    >,
    pub GetTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNotation,
            iTInfo: UINT,
            lcid: LCID,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetIDsOfNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNotation,
            riid: *const IID,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
            lcid: LCID,
            rgDispId: *mut DISPID,
        ) -> HRESULT,
    >,
    pub Invoke: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNotation,
            dispIdMember: DISPID,
            riid: *const IID,
            lcid: LCID,
            wFlags: WORD,
            pDispParams: *mut DISPPARAMS,
            pVarResult: *mut VARIANT,
            pExcepInfo: *mut EXCEPINFO,
            puArgErr: *mut UINT,
        ) -> HRESULT,
    >,
    pub get_nodeName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNotation, name: *mut BSTR) -> HRESULT,
    >,
    pub get_nodeValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNotation, value: *mut VARIANT) -> HRESULT,
    >,
    pub put_nodeValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNotation, value: VARIANT) -> HRESULT,
    >,
    pub get_nodeType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNotation, type_: *mut DOMNodeType) -> HRESULT,
    >,
    pub get_parentNode: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNotation, parent: *mut *mut IXMLDOMNode) -> HRESULT,
    >,
    pub get_childNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNotation,
            childList: *mut *mut IXMLDOMNodeList,
        ) -> HRESULT,
    >,
    pub get_firstChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNotation,
            firstChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_lastChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNotation,
            lastChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_previousSibling: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNotation,
            previousSibling: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nextSibling: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNotation,
            nextSibling: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_attributes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNotation,
            attributeMap: *mut *mut IXMLDOMNamedNodeMap,
        ) -> HRESULT,
    >,
    pub insertBefore: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNotation,
            newChild: *mut IXMLDOMNode,
            refChild: VARIANT,
            outNewChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub replaceChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNotation,
            newChild: *mut IXMLDOMNode,
            oldChild: *mut IXMLDOMNode,
            outOldChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub removeChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNotation,
            childNode: *mut IXMLDOMNode,
            oldChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub appendChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNotation,
            newChild: *mut IXMLDOMNode,
            outNewChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub hasChildNodes: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNotation, hasChild: *mut VARIANT_BOOL) -> HRESULT,
    >,
    pub get_ownerDocument: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNotation,
            XMLDOMDocument: *mut *mut IXMLDOMDocument,
        ) -> HRESULT,
    >,
    pub cloneNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNotation,
            deep: VARIANT_BOOL,
            cloneRoot: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nodeTypeString: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNotation, nodeType: *mut BSTR) -> HRESULT,
    >,
    pub get_text: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNotation, text: *mut BSTR) -> HRESULT,
    >,
    pub put_text: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNotation, text: BSTR) -> HRESULT,
    >,
    pub get_specified: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNotation, isSpecified: *mut VARIANT_BOOL) -> HRESULT,
    >,
    pub get_definition: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNotation,
            definitionNode: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nodeTypedValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNotation, typedValue: *mut VARIANT) -> HRESULT,
    >,
    pub put_nodeTypedValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNotation, typedValue: VARIANT) -> HRESULT,
    >,
    pub get_dataType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNotation, dataTypeName: *mut VARIANT) -> HRESULT,
    >,
    pub put_dataType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNotation, dataTypeName: BSTR) -> HRESULT,
    >,
    pub get_xml: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNotation, xmlString: *mut BSTR) -> HRESULT,
    >,
    pub transformNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNotation,
            stylesheet: *mut IXMLDOMNode,
            xmlString: *mut BSTR,
        ) -> HRESULT,
    >,
    pub selectNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNotation,
            queryString: BSTR,
            resultList: *mut *mut IXMLDOMNodeList,
        ) -> HRESULT,
    >,
    pub selectSingleNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNotation,
            queryString: BSTR,
            resultNode: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_parsed: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNotation, isParsed: *mut VARIANT_BOOL) -> HRESULT,
    >,
    pub get_namespaceURI: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNotation, namespaceURI: *mut BSTR) -> HRESULT,
    >,
    pub get_prefix: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNotation, prefixString: *mut BSTR) -> HRESULT,
    >,
    pub get_baseName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNotation, nameString: *mut BSTR) -> HRESULT,
    >,
    pub transformNodeToObject: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMNotation,
            stylesheet: *mut IXMLDOMNode,
            outputObject: VARIANT,
        ) -> HRESULT,
    >,
    pub get_publicId: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNotation, publicID: *mut VARIANT) -> HRESULT,
    >,
    pub get_systemId: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMNotation, systemID: *mut VARIANT) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IXMLDOMNotationVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMNotationVtbl>(),
        360usize,
        concat!("Size of: ", stringify!(IXMLDOMNotationVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMNotationVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMNotationVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).GetTypeInfoCount as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(GetTypeInfoCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).GetTypeInfo as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(GetTypeInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).GetIDsOfNames as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(GetIDsOfNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).Invoke as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(Invoke)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).get_nodeName as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(get_nodeName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).get_nodeValue as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(get_nodeValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).put_nodeValue as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(put_nodeValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).get_nodeType as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(get_nodeType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).get_parentNode as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(get_parentNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).get_childNodes as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(get_childNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).get_firstChild as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(get_firstChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).get_lastChild as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(get_lastChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).get_previousSibling as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(get_previousSibling)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).get_nextSibling as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(get_nextSibling)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).get_attributes as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(get_attributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).insertBefore as *const _ as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(insertBefore)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).replaceChild as *const _ as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(replaceChild)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).removeChild as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(removeChild)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).appendChild as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(appendChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).hasChildNodes as *const _ as usize
        },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(hasChildNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).get_ownerDocument as *const _ as usize
        },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(get_ownerDocument)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).cloneNode as *const _ as usize },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(cloneNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).get_nodeTypeString as *const _ as usize
        },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(get_nodeTypeString)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).get_text as *const _ as usize },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(get_text)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).put_text as *const _ as usize },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(put_text)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).get_specified as *const _ as usize
        },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(get_specified)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).get_definition as *const _ as usize
        },
        232usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(get_definition)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).get_nodeTypedValue as *const _ as usize
        },
        240usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(get_nodeTypedValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).put_nodeTypedValue as *const _ as usize
        },
        248usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(put_nodeTypedValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).get_dataType as *const _ as usize
        },
        256usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(get_dataType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).put_dataType as *const _ as usize
        },
        264usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(put_dataType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).get_xml as *const _ as usize },
        272usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(get_xml)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).transformNode as *const _ as usize
        },
        280usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(transformNode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).selectNodes as *const _ as usize },
        288usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(selectNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).selectSingleNode as *const _ as usize
        },
        296usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(selectSingleNode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).get_parsed as *const _ as usize },
        304usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(get_parsed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).get_namespaceURI as *const _ as usize
        },
        312usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(get_namespaceURI)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).get_prefix as *const _ as usize },
        320usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(get_prefix)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).get_baseName as *const _ as usize
        },
        328usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(get_baseName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).transformNodeToObject as *const _
                as usize
        },
        336usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(transformNodeToObject)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).get_publicId as *const _ as usize
        },
        344usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(get_publicId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMNotationVtbl>())).get_systemId as *const _ as usize
        },
        352usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotationVtbl),
            "::",
            stringify!(get_systemId)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMNotation {
    pub lpVtbl: *mut IXMLDOMNotationVtbl,
}
#[test]
fn bindgen_test_layout_IXMLDOMNotation() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMNotation>(),
        8usize,
        concat!("Size of: ", stringify!(IXMLDOMNotation))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMNotation>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMNotation))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMNotation>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMNotation),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IXMLDOMEntity: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMEntityVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntity,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMEntity) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMEntity) -> ULONG>,
    pub GetTypeInfoCount: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntity, pctinfo: *mut UINT) -> HRESULT,
    >,
    pub GetTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntity,
            iTInfo: UINT,
            lcid: LCID,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetIDsOfNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntity,
            riid: *const IID,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
            lcid: LCID,
            rgDispId: *mut DISPID,
        ) -> HRESULT,
    >,
    pub Invoke: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntity,
            dispIdMember: DISPID,
            riid: *const IID,
            lcid: LCID,
            wFlags: WORD,
            pDispParams: *mut DISPPARAMS,
            pVarResult: *mut VARIANT,
            pExcepInfo: *mut EXCEPINFO,
            puArgErr: *mut UINT,
        ) -> HRESULT,
    >,
    pub get_nodeName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntity, name: *mut BSTR) -> HRESULT,
    >,
    pub get_nodeValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntity, value: *mut VARIANT) -> HRESULT,
    >,
    pub put_nodeValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntity, value: VARIANT) -> HRESULT,
    >,
    pub get_nodeType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntity, type_: *mut DOMNodeType) -> HRESULT,
    >,
    pub get_parentNode: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntity, parent: *mut *mut IXMLDOMNode) -> HRESULT,
    >,
    pub get_childNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntity,
            childList: *mut *mut IXMLDOMNodeList,
        ) -> HRESULT,
    >,
    pub get_firstChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntity,
            firstChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_lastChild: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntity, lastChild: *mut *mut IXMLDOMNode) -> HRESULT,
    >,
    pub get_previousSibling: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntity,
            previousSibling: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nextSibling: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntity,
            nextSibling: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_attributes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntity,
            attributeMap: *mut *mut IXMLDOMNamedNodeMap,
        ) -> HRESULT,
    >,
    pub insertBefore: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntity,
            newChild: *mut IXMLDOMNode,
            refChild: VARIANT,
            outNewChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub replaceChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntity,
            newChild: *mut IXMLDOMNode,
            oldChild: *mut IXMLDOMNode,
            outOldChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub removeChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntity,
            childNode: *mut IXMLDOMNode,
            oldChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub appendChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntity,
            newChild: *mut IXMLDOMNode,
            outNewChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub hasChildNodes: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntity, hasChild: *mut VARIANT_BOOL) -> HRESULT,
    >,
    pub get_ownerDocument: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntity,
            XMLDOMDocument: *mut *mut IXMLDOMDocument,
        ) -> HRESULT,
    >,
    pub cloneNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntity,
            deep: VARIANT_BOOL,
            cloneRoot: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nodeTypeString: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntity, nodeType: *mut BSTR) -> HRESULT,
    >,
    pub get_text: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntity, text: *mut BSTR) -> HRESULT,
    >,
    pub put_text: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntity, text: BSTR) -> HRESULT,
    >,
    pub get_specified: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntity, isSpecified: *mut VARIANT_BOOL) -> HRESULT,
    >,
    pub get_definition: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntity,
            definitionNode: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nodeTypedValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntity, typedValue: *mut VARIANT) -> HRESULT,
    >,
    pub put_nodeTypedValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntity, typedValue: VARIANT) -> HRESULT,
    >,
    pub get_dataType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntity, dataTypeName: *mut VARIANT) -> HRESULT,
    >,
    pub put_dataType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntity, dataTypeName: BSTR) -> HRESULT,
    >,
    pub get_xml: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntity, xmlString: *mut BSTR) -> HRESULT,
    >,
    pub transformNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntity,
            stylesheet: *mut IXMLDOMNode,
            xmlString: *mut BSTR,
        ) -> HRESULT,
    >,
    pub selectNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntity,
            queryString: BSTR,
            resultList: *mut *mut IXMLDOMNodeList,
        ) -> HRESULT,
    >,
    pub selectSingleNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntity,
            queryString: BSTR,
            resultNode: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_parsed: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntity, isParsed: *mut VARIANT_BOOL) -> HRESULT,
    >,
    pub get_namespaceURI: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntity, namespaceURI: *mut BSTR) -> HRESULT,
    >,
    pub get_prefix: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntity, prefixString: *mut BSTR) -> HRESULT,
    >,
    pub get_baseName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntity, nameString: *mut BSTR) -> HRESULT,
    >,
    pub transformNodeToObject: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntity,
            stylesheet: *mut IXMLDOMNode,
            outputObject: VARIANT,
        ) -> HRESULT,
    >,
    pub get_publicId: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntity, publicID: *mut VARIANT) -> HRESULT,
    >,
    pub get_systemId: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntity, systemID: *mut VARIANT) -> HRESULT,
    >,
    pub get_notationName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntity, name: *mut BSTR) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IXMLDOMEntityVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMEntityVtbl>(),
        368usize,
        concat!("Size of: ", stringify!(IXMLDOMEntityVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMEntityVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMEntityVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).GetTypeInfoCount as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(GetTypeInfoCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).GetTypeInfo as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(GetTypeInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).GetIDsOfNames as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(GetIDsOfNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).Invoke as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(Invoke)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).get_nodeName as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(get_nodeName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).get_nodeValue as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(get_nodeValue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).put_nodeValue as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(put_nodeValue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).get_nodeType as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(get_nodeType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).get_parentNode as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(get_parentNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).get_childNodes as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(get_childNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).get_firstChild as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(get_firstChild)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).get_lastChild as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(get_lastChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).get_previousSibling as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(get_previousSibling)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).get_nextSibling as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(get_nextSibling)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).get_attributes as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(get_attributes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).insertBefore as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(insertBefore)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).replaceChild as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(replaceChild)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).removeChild as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(removeChild)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).appendChild as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(appendChild)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).hasChildNodes as *const _ as usize },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(hasChildNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).get_ownerDocument as *const _ as usize
        },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(get_ownerDocument)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).cloneNode as *const _ as usize },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(cloneNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).get_nodeTypeString as *const _ as usize
        },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(get_nodeTypeString)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).get_text as *const _ as usize },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(get_text)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).put_text as *const _ as usize },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(put_text)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).get_specified as *const _ as usize },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(get_specified)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).get_definition as *const _ as usize
        },
        232usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(get_definition)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).get_nodeTypedValue as *const _ as usize
        },
        240usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(get_nodeTypedValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).put_nodeTypedValue as *const _ as usize
        },
        248usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(put_nodeTypedValue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).get_dataType as *const _ as usize },
        256usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(get_dataType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).put_dataType as *const _ as usize },
        264usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(put_dataType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).get_xml as *const _ as usize },
        272usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(get_xml)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).transformNode as *const _ as usize },
        280usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(transformNode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).selectNodes as *const _ as usize },
        288usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(selectNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).selectSingleNode as *const _ as usize
        },
        296usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(selectSingleNode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).get_parsed as *const _ as usize },
        304usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(get_parsed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).get_namespaceURI as *const _ as usize
        },
        312usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(get_namespaceURI)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).get_prefix as *const _ as usize },
        320usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(get_prefix)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).get_baseName as *const _ as usize },
        328usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(get_baseName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).transformNodeToObject as *const _ as usize
        },
        336usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(transformNodeToObject)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).get_publicId as *const _ as usize },
        344usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(get_publicId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).get_systemId as *const _ as usize },
        352usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(get_systemId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityVtbl>())).get_notationName as *const _ as usize
        },
        360usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityVtbl),
            "::",
            stringify!(get_notationName)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMEntity {
    pub lpVtbl: *mut IXMLDOMEntityVtbl,
}
#[test]
fn bindgen_test_layout_IXMLDOMEntity() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMEntity>(),
        8usize,
        concat!("Size of: ", stringify!(IXMLDOMEntity))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMEntity>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMEntity))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMEntity>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntity),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IXMLDOMEntityReference: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMEntityReferenceVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntityReference,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMEntityReference) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMEntityReference) -> ULONG>,
    pub GetTypeInfoCount: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntityReference, pctinfo: *mut UINT) -> HRESULT,
    >,
    pub GetTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntityReference,
            iTInfo: UINT,
            lcid: LCID,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetIDsOfNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntityReference,
            riid: *const IID,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
            lcid: LCID,
            rgDispId: *mut DISPID,
        ) -> HRESULT,
    >,
    pub Invoke: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntityReference,
            dispIdMember: DISPID,
            riid: *const IID,
            lcid: LCID,
            wFlags: WORD,
            pDispParams: *mut DISPPARAMS,
            pVarResult: *mut VARIANT,
            pExcepInfo: *mut EXCEPINFO,
            puArgErr: *mut UINT,
        ) -> HRESULT,
    >,
    pub get_nodeName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntityReference, name: *mut BSTR) -> HRESULT,
    >,
    pub get_nodeValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntityReference, value: *mut VARIANT) -> HRESULT,
    >,
    pub put_nodeValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntityReference, value: VARIANT) -> HRESULT,
    >,
    pub get_nodeType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntityReference, type_: *mut DOMNodeType) -> HRESULT,
    >,
    pub get_parentNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntityReference,
            parent: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_childNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntityReference,
            childList: *mut *mut IXMLDOMNodeList,
        ) -> HRESULT,
    >,
    pub get_firstChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntityReference,
            firstChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_lastChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntityReference,
            lastChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_previousSibling: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntityReference,
            previousSibling: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nextSibling: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntityReference,
            nextSibling: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_attributes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntityReference,
            attributeMap: *mut *mut IXMLDOMNamedNodeMap,
        ) -> HRESULT,
    >,
    pub insertBefore: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntityReference,
            newChild: *mut IXMLDOMNode,
            refChild: VARIANT,
            outNewChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub replaceChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntityReference,
            newChild: *mut IXMLDOMNode,
            oldChild: *mut IXMLDOMNode,
            outOldChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub removeChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntityReference,
            childNode: *mut IXMLDOMNode,
            oldChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub appendChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntityReference,
            newChild: *mut IXMLDOMNode,
            outNewChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub hasChildNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntityReference,
            hasChild: *mut VARIANT_BOOL,
        ) -> HRESULT,
    >,
    pub get_ownerDocument: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntityReference,
            XMLDOMDocument: *mut *mut IXMLDOMDocument,
        ) -> HRESULT,
    >,
    pub cloneNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntityReference,
            deep: VARIANT_BOOL,
            cloneRoot: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nodeTypeString: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntityReference, nodeType: *mut BSTR) -> HRESULT,
    >,
    pub get_text: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntityReference, text: *mut BSTR) -> HRESULT,
    >,
    pub put_text: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntityReference, text: BSTR) -> HRESULT,
    >,
    pub get_specified: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntityReference,
            isSpecified: *mut VARIANT_BOOL,
        ) -> HRESULT,
    >,
    pub get_definition: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntityReference,
            definitionNode: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nodeTypedValue: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntityReference,
            typedValue: *mut VARIANT,
        ) -> HRESULT,
    >,
    pub put_nodeTypedValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntityReference, typedValue: VARIANT) -> HRESULT,
    >,
    pub get_dataType: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntityReference,
            dataTypeName: *mut VARIANT,
        ) -> HRESULT,
    >,
    pub put_dataType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntityReference, dataTypeName: BSTR) -> HRESULT,
    >,
    pub get_xml: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntityReference, xmlString: *mut BSTR) -> HRESULT,
    >,
    pub transformNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntityReference,
            stylesheet: *mut IXMLDOMNode,
            xmlString: *mut BSTR,
        ) -> HRESULT,
    >,
    pub selectNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntityReference,
            queryString: BSTR,
            resultList: *mut *mut IXMLDOMNodeList,
        ) -> HRESULT,
    >,
    pub selectSingleNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntityReference,
            queryString: BSTR,
            resultNode: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_parsed: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntityReference,
            isParsed: *mut VARIANT_BOOL,
        ) -> HRESULT,
    >,
    pub get_namespaceURI: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntityReference, namespaceURI: *mut BSTR) -> HRESULT,
    >,
    pub get_prefix: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntityReference, prefixString: *mut BSTR) -> HRESULT,
    >,
    pub get_baseName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMEntityReference, nameString: *mut BSTR) -> HRESULT,
    >,
    pub transformNodeToObject: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMEntityReference,
            stylesheet: *mut IXMLDOMNode,
            outputObject: VARIANT,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IXMLDOMEntityReferenceVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMEntityReferenceVtbl>(),
        344usize,
        concat!("Size of: ", stringify!(IXMLDOMEntityReferenceVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMEntityReferenceVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMEntityReferenceVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).QueryInterface as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).AddRef as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).GetTypeInfoCount as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(GetTypeInfoCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).GetTypeInfo as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(GetTypeInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).GetIDsOfNames as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(GetIDsOfNames)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).Invoke as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(Invoke)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).get_nodeName as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(get_nodeName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).get_nodeValue as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(get_nodeValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).put_nodeValue as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(put_nodeValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).get_nodeType as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(get_nodeType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).get_parentNode as *const _
                as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(get_parentNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).get_childNodes as *const _
                as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(get_childNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).get_firstChild as *const _
                as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(get_firstChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).get_lastChild as *const _
                as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(get_lastChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).get_previousSibling as *const _
                as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(get_previousSibling)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).get_nextSibling as *const _
                as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(get_nextSibling)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).get_attributes as *const _
                as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(get_attributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).insertBefore as *const _ as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(insertBefore)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).replaceChild as *const _ as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(replaceChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).removeChild as *const _ as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(removeChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).appendChild as *const _ as usize
        },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(appendChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).hasChildNodes as *const _
                as usize
        },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(hasChildNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).get_ownerDocument as *const _
                as usize
        },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(get_ownerDocument)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).cloneNode as *const _ as usize
        },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(cloneNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).get_nodeTypeString as *const _
                as usize
        },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(get_nodeTypeString)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).get_text as *const _ as usize
        },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(get_text)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).put_text as *const _ as usize
        },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(put_text)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).get_specified as *const _
                as usize
        },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(get_specified)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).get_definition as *const _
                as usize
        },
        232usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(get_definition)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).get_nodeTypedValue as *const _
                as usize
        },
        240usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(get_nodeTypedValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).put_nodeTypedValue as *const _
                as usize
        },
        248usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(put_nodeTypedValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).get_dataType as *const _ as usize
        },
        256usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(get_dataType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).put_dataType as *const _ as usize
        },
        264usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(put_dataType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).get_xml as *const _ as usize
        },
        272usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(get_xml)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).transformNode as *const _
                as usize
        },
        280usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(transformNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).selectNodes as *const _ as usize
        },
        288usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(selectNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).selectSingleNode as *const _
                as usize
        },
        296usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(selectSingleNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).get_parsed as *const _ as usize
        },
        304usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(get_parsed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).get_namespaceURI as *const _
                as usize
        },
        312usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(get_namespaceURI)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).get_prefix as *const _ as usize
        },
        320usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(get_prefix)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).get_baseName as *const _ as usize
        },
        328usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(get_baseName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMEntityReferenceVtbl>())).transformNodeToObject as *const _
                as usize
        },
        336usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReferenceVtbl),
            "::",
            stringify!(transformNodeToObject)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMEntityReference {
    pub lpVtbl: *mut IXMLDOMEntityReferenceVtbl,
}
#[test]
fn bindgen_test_layout_IXMLDOMEntityReference() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMEntityReference>(),
        8usize,
        concat!("Size of: ", stringify!(IXMLDOMEntityReference))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMEntityReference>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMEntityReference))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMEntityReference>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMEntityReference),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IXMLDOMParseError: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMParseErrorVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMParseError,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMParseError) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDOMParseError) -> ULONG>,
    pub GetTypeInfoCount: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMParseError, pctinfo: *mut UINT) -> HRESULT,
    >,
    pub GetTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMParseError,
            iTInfo: UINT,
            lcid: LCID,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetIDsOfNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMParseError,
            riid: *const IID,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
            lcid: LCID,
            rgDispId: *mut DISPID,
        ) -> HRESULT,
    >,
    pub Invoke: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMParseError,
            dispIdMember: DISPID,
            riid: *const IID,
            lcid: LCID,
            wFlags: WORD,
            pDispParams: *mut DISPPARAMS,
            pVarResult: *mut VARIANT,
            pExcepInfo: *mut EXCEPINFO,
            puArgErr: *mut UINT,
        ) -> HRESULT,
    >,
    pub get_errorCode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMParseError,
            errorCode: *mut ::std::os::raw::c_long,
        ) -> HRESULT,
    >,
    pub get_url: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMParseError, urlString: *mut BSTR) -> HRESULT,
    >,
    pub get_reason: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMParseError, reasonString: *mut BSTR) -> HRESULT,
    >,
    pub get_srcText: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDOMParseError, sourceString: *mut BSTR) -> HRESULT,
    >,
    pub get_line: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMParseError,
            lineNumber: *mut ::std::os::raw::c_long,
        ) -> HRESULT,
    >,
    pub get_linepos: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMParseError,
            linePosition: *mut ::std::os::raw::c_long,
        ) -> HRESULT,
    >,
    pub get_filepos: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDOMParseError,
            filePosition: *mut ::std::os::raw::c_long,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IXMLDOMParseErrorVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMParseErrorVtbl>(),
        112usize,
        concat!("Size of: ", stringify!(IXMLDOMParseErrorVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMParseErrorVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMParseErrorVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMParseErrorVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMParseErrorVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMParseErrorVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMParseErrorVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMParseErrorVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMParseErrorVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMParseErrorVtbl>())).GetTypeInfoCount as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMParseErrorVtbl),
            "::",
            stringify!(GetTypeInfoCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMParseErrorVtbl>())).GetTypeInfo as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMParseErrorVtbl),
            "::",
            stringify!(GetTypeInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMParseErrorVtbl>())).GetIDsOfNames as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMParseErrorVtbl),
            "::",
            stringify!(GetIDsOfNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMParseErrorVtbl>())).Invoke as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMParseErrorVtbl),
            "::",
            stringify!(Invoke)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMParseErrorVtbl>())).get_errorCode as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMParseErrorVtbl),
            "::",
            stringify!(get_errorCode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMParseErrorVtbl>())).get_url as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMParseErrorVtbl),
            "::",
            stringify!(get_url)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMParseErrorVtbl>())).get_reason as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMParseErrorVtbl),
            "::",
            stringify!(get_reason)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMParseErrorVtbl>())).get_srcText as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMParseErrorVtbl),
            "::",
            stringify!(get_srcText)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMParseErrorVtbl>())).get_line as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMParseErrorVtbl),
            "::",
            stringify!(get_line)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMParseErrorVtbl>())).get_linepos as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMParseErrorVtbl),
            "::",
            stringify!(get_linepos)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDOMParseErrorVtbl>())).get_filepos as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMParseErrorVtbl),
            "::",
            stringify!(get_filepos)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDOMParseError {
    pub lpVtbl: *mut IXMLDOMParseErrorVtbl,
}
#[test]
fn bindgen_test_layout_IXMLDOMParseError() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDOMParseError>(),
        8usize,
        concat!("Size of: ", stringify!(IXMLDOMParseError))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDOMParseError>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDOMParseError))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDOMParseError>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDOMParseError),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IXTLRuntime: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXTLRuntimeVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXTLRuntime,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IXTLRuntime) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IXTLRuntime) -> ULONG>,
    pub GetTypeInfoCount: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXTLRuntime, pctinfo: *mut UINT) -> HRESULT,
    >,
    pub GetTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXTLRuntime,
            iTInfo: UINT,
            lcid: LCID,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetIDsOfNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXTLRuntime,
            riid: *const IID,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
            lcid: LCID,
            rgDispId: *mut DISPID,
        ) -> HRESULT,
    >,
    pub Invoke: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXTLRuntime,
            dispIdMember: DISPID,
            riid: *const IID,
            lcid: LCID,
            wFlags: WORD,
            pDispParams: *mut DISPPARAMS,
            pVarResult: *mut VARIANT,
            pExcepInfo: *mut EXCEPINFO,
            puArgErr: *mut UINT,
        ) -> HRESULT,
    >,
    pub get_nodeName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXTLRuntime, name: *mut BSTR) -> HRESULT,
    >,
    pub get_nodeValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXTLRuntime, value: *mut VARIANT) -> HRESULT,
    >,
    pub put_nodeValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXTLRuntime, value: VARIANT) -> HRESULT,
    >,
    pub get_nodeType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXTLRuntime, type_: *mut DOMNodeType) -> HRESULT,
    >,
    pub get_parentNode: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXTLRuntime, parent: *mut *mut IXMLDOMNode) -> HRESULT,
    >,
    pub get_childNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXTLRuntime,
            childList: *mut *mut IXMLDOMNodeList,
        ) -> HRESULT,
    >,
    pub get_firstChild: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXTLRuntime, firstChild: *mut *mut IXMLDOMNode) -> HRESULT,
    >,
    pub get_lastChild: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXTLRuntime, lastChild: *mut *mut IXMLDOMNode) -> HRESULT,
    >,
    pub get_previousSibling: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXTLRuntime,
            previousSibling: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nextSibling: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXTLRuntime, nextSibling: *mut *mut IXMLDOMNode) -> HRESULT,
    >,
    pub get_attributes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXTLRuntime,
            attributeMap: *mut *mut IXMLDOMNamedNodeMap,
        ) -> HRESULT,
    >,
    pub insertBefore: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXTLRuntime,
            newChild: *mut IXMLDOMNode,
            refChild: VARIANT,
            outNewChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub replaceChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXTLRuntime,
            newChild: *mut IXMLDOMNode,
            oldChild: *mut IXMLDOMNode,
            outOldChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub removeChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXTLRuntime,
            childNode: *mut IXMLDOMNode,
            oldChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub appendChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXTLRuntime,
            newChild: *mut IXMLDOMNode,
            outNewChild: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub hasChildNodes: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXTLRuntime, hasChild: *mut VARIANT_BOOL) -> HRESULT,
    >,
    pub get_ownerDocument: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXTLRuntime,
            XMLDOMDocument: *mut *mut IXMLDOMDocument,
        ) -> HRESULT,
    >,
    pub cloneNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXTLRuntime,
            deep: VARIANT_BOOL,
            cloneRoot: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nodeTypeString: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXTLRuntime, nodeType: *mut BSTR) -> HRESULT,
    >,
    pub get_text: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXTLRuntime, text: *mut BSTR) -> HRESULT,
    >,
    pub put_text:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IXTLRuntime, text: BSTR) -> HRESULT>,
    pub get_specified: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXTLRuntime, isSpecified: *mut VARIANT_BOOL) -> HRESULT,
    >,
    pub get_definition: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXTLRuntime,
            definitionNode: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_nodeTypedValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXTLRuntime, typedValue: *mut VARIANT) -> HRESULT,
    >,
    pub put_nodeTypedValue: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXTLRuntime, typedValue: VARIANT) -> HRESULT,
    >,
    pub get_dataType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXTLRuntime, dataTypeName: *mut VARIANT) -> HRESULT,
    >,
    pub put_dataType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXTLRuntime, dataTypeName: BSTR) -> HRESULT,
    >,
    pub get_xml: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXTLRuntime, xmlString: *mut BSTR) -> HRESULT,
    >,
    pub transformNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXTLRuntime,
            stylesheet: *mut IXMLDOMNode,
            xmlString: *mut BSTR,
        ) -> HRESULT,
    >,
    pub selectNodes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXTLRuntime,
            queryString: BSTR,
            resultList: *mut *mut IXMLDOMNodeList,
        ) -> HRESULT,
    >,
    pub selectSingleNode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXTLRuntime,
            queryString: BSTR,
            resultNode: *mut *mut IXMLDOMNode,
        ) -> HRESULT,
    >,
    pub get_parsed: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXTLRuntime, isParsed: *mut VARIANT_BOOL) -> HRESULT,
    >,
    pub get_namespaceURI: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXTLRuntime, namespaceURI: *mut BSTR) -> HRESULT,
    >,
    pub get_prefix: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXTLRuntime, prefixString: *mut BSTR) -> HRESULT,
    >,
    pub get_baseName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXTLRuntime, nameString: *mut BSTR) -> HRESULT,
    >,
    pub transformNodeToObject: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXTLRuntime,
            stylesheet: *mut IXMLDOMNode,
            outputObject: VARIANT,
        ) -> HRESULT,
    >,
    pub uniqueID: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXTLRuntime,
            pNode: *mut IXMLDOMNode,
            pID: *mut ::std::os::raw::c_long,
        ) -> HRESULT,
    >,
    pub depth: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXTLRuntime,
            pNode: *mut IXMLDOMNode,
            pDepth: *mut ::std::os::raw::c_long,
        ) -> HRESULT,
    >,
    pub childNumber: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXTLRuntime,
            pNode: *mut IXMLDOMNode,
            pNumber: *mut ::std::os::raw::c_long,
        ) -> HRESULT,
    >,
    pub ancestorChildNumber: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXTLRuntime,
            bstrNodeName: BSTR,
            pNode: *mut IXMLDOMNode,
            pNumber: *mut ::std::os::raw::c_long,
        ) -> HRESULT,
    >,
    pub absoluteChildNumber: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXTLRuntime,
            pNode: *mut IXMLDOMNode,
            pNumber: *mut ::std::os::raw::c_long,
        ) -> HRESULT,
    >,
    pub formatIndex: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXTLRuntime,
            lIndex: ::std::os::raw::c_long,
            bstrFormat: BSTR,
            pbstrFormattedString: *mut BSTR,
        ) -> HRESULT,
    >,
    pub formatNumber: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXTLRuntime,
            dblNumber: f64,
            bstrFormat: BSTR,
            pbstrFormattedString: *mut BSTR,
        ) -> HRESULT,
    >,
    pub formatDate: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXTLRuntime,
            varDate: VARIANT,
            bstrFormat: BSTR,
            varDestLocale: VARIANT,
            pbstrFormattedString: *mut BSTR,
        ) -> HRESULT,
    >,
    pub formatTime: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXTLRuntime,
            varTime: VARIANT,
            bstrFormat: BSTR,
            varDestLocale: VARIANT,
            pbstrFormattedString: *mut BSTR,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IXTLRuntimeVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IXTLRuntimeVtbl>(),
        416usize,
        concat!("Size of: ", stringify!(IXTLRuntimeVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IXTLRuntimeVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IXTLRuntimeVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).GetTypeInfoCount as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(GetTypeInfoCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).GetTypeInfo as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(GetTypeInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).GetIDsOfNames as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(GetIDsOfNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).Invoke as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(Invoke)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).get_nodeName as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(get_nodeName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).get_nodeValue as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(get_nodeValue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).put_nodeValue as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(put_nodeValue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).get_nodeType as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(get_nodeType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).get_parentNode as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(get_parentNode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).get_childNodes as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(get_childNodes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).get_firstChild as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(get_firstChild)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).get_lastChild as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(get_lastChild)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).get_previousSibling as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(get_previousSibling)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).get_nextSibling as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(get_nextSibling)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).get_attributes as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(get_attributes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).insertBefore as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(insertBefore)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).replaceChild as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(replaceChild)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).removeChild as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(removeChild)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).appendChild as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(appendChild)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).hasChildNodes as *const _ as usize },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(hasChildNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).get_ownerDocument as *const _ as usize
        },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(get_ownerDocument)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).cloneNode as *const _ as usize },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(cloneNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).get_nodeTypeString as *const _ as usize
        },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(get_nodeTypeString)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).get_text as *const _ as usize },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(get_text)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).put_text as *const _ as usize },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(put_text)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).get_specified as *const _ as usize },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(get_specified)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).get_definition as *const _ as usize },
        232usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(get_definition)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).get_nodeTypedValue as *const _ as usize
        },
        240usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(get_nodeTypedValue)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).put_nodeTypedValue as *const _ as usize
        },
        248usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(put_nodeTypedValue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).get_dataType as *const _ as usize },
        256usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(get_dataType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).put_dataType as *const _ as usize },
        264usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(put_dataType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).get_xml as *const _ as usize },
        272usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(get_xml)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).transformNode as *const _ as usize },
        280usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(transformNode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).selectNodes as *const _ as usize },
        288usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(selectNodes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).selectSingleNode as *const _ as usize
        },
        296usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(selectSingleNode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).get_parsed as *const _ as usize },
        304usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(get_parsed)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).get_namespaceURI as *const _ as usize
        },
        312usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(get_namespaceURI)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).get_prefix as *const _ as usize },
        320usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(get_prefix)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).get_baseName as *const _ as usize },
        328usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(get_baseName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).transformNodeToObject as *const _ as usize
        },
        336usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(transformNodeToObject)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).uniqueID as *const _ as usize },
        344usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(uniqueID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).depth as *const _ as usize },
        352usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(depth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).childNumber as *const _ as usize },
        360usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(childNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).ancestorChildNumber as *const _ as usize
        },
        368usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(ancestorChildNumber)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).absoluteChildNumber as *const _ as usize
        },
        376usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(absoluteChildNumber)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).formatIndex as *const _ as usize },
        384usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(formatIndex)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).formatNumber as *const _ as usize },
        392usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(formatNumber)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).formatDate as *const _ as usize },
        400usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(formatDate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntimeVtbl>())).formatTime as *const _ as usize },
        408usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntimeVtbl),
            "::",
            stringify!(formatTime)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXTLRuntime {
    pub lpVtbl: *mut IXTLRuntimeVtbl,
}
#[test]
fn bindgen_test_layout_IXTLRuntime() {
    assert_eq!(
        ::std::mem::size_of::<IXTLRuntime>(),
        8usize,
        concat!("Size of: ", stringify!(IXTLRuntime))
    );
    assert_eq!(
        ::std::mem::align_of::<IXTLRuntime>(),
        8usize,
        concat!("Alignment of ", stringify!(IXTLRuntime))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXTLRuntime>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXTLRuntime),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static DIID_XMLDOMDocumentEvents: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct XMLDOMDocumentEventsVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut XMLDOMDocumentEvents,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut XMLDOMDocumentEvents) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut XMLDOMDocumentEvents) -> ULONG>,
    pub GetTypeInfoCount: ::std::option::Option<
        unsafe extern "C" fn(This: *mut XMLDOMDocumentEvents, pctinfo: *mut UINT) -> HRESULT,
    >,
    pub GetTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut XMLDOMDocumentEvents,
            iTInfo: UINT,
            lcid: LCID,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetIDsOfNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut XMLDOMDocumentEvents,
            riid: *const IID,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
            lcid: LCID,
            rgDispId: *mut DISPID,
        ) -> HRESULT,
    >,
    pub Invoke: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut XMLDOMDocumentEvents,
            dispIdMember: DISPID,
            riid: *const IID,
            lcid: LCID,
            wFlags: WORD,
            pDispParams: *mut DISPPARAMS,
            pVarResult: *mut VARIANT,
            pExcepInfo: *mut EXCEPINFO,
            puArgErr: *mut UINT,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_XMLDOMDocumentEventsVtbl() {
    assert_eq!(
        ::std::mem::size_of::<XMLDOMDocumentEventsVtbl>(),
        56usize,
        concat!("Size of: ", stringify!(XMLDOMDocumentEventsVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<XMLDOMDocumentEventsVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(XMLDOMDocumentEventsVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<XMLDOMDocumentEventsVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(XMLDOMDocumentEventsVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<XMLDOMDocumentEventsVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(XMLDOMDocumentEventsVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<XMLDOMDocumentEventsVtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(XMLDOMDocumentEventsVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<XMLDOMDocumentEventsVtbl>())).GetTypeInfoCount as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(XMLDOMDocumentEventsVtbl),
            "::",
            stringify!(GetTypeInfoCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<XMLDOMDocumentEventsVtbl>())).GetTypeInfo as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(XMLDOMDocumentEventsVtbl),
            "::",
            stringify!(GetTypeInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<XMLDOMDocumentEventsVtbl>())).GetIDsOfNames as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(XMLDOMDocumentEventsVtbl),
            "::",
            stringify!(GetIDsOfNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<XMLDOMDocumentEventsVtbl>())).Invoke as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(XMLDOMDocumentEventsVtbl),
            "::",
            stringify!(Invoke)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct XMLDOMDocumentEvents {
    pub lpVtbl: *mut XMLDOMDocumentEventsVtbl,
}
#[test]
fn bindgen_test_layout_XMLDOMDocumentEvents() {
    assert_eq!(
        ::std::mem::size_of::<XMLDOMDocumentEvents>(),
        8usize,
        concat!("Size of: ", stringify!(XMLDOMDocumentEvents))
    );
    assert_eq!(
        ::std::mem::align_of::<XMLDOMDocumentEvents>(),
        8usize,
        concat!("Alignment of ", stringify!(XMLDOMDocumentEvents))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<XMLDOMDocumentEvents>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(XMLDOMDocumentEvents),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static CLSID_DOMDocument: CLSID;
}
extern "C" {
    pub static CLSID_DOMFreeThreadedDocument: CLSID;
}
extern "C" {
    pub static IID_IXMLHttpRequest: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLHttpRequestVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLHttpRequest,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLHttpRequest) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLHttpRequest) -> ULONG>,
    pub GetTypeInfoCount: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLHttpRequest, pctinfo: *mut UINT) -> HRESULT,
    >,
    pub GetTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLHttpRequest,
            iTInfo: UINT,
            lcid: LCID,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetIDsOfNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLHttpRequest,
            riid: *const IID,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
            lcid: LCID,
            rgDispId: *mut DISPID,
        ) -> HRESULT,
    >,
    pub Invoke: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLHttpRequest,
            dispIdMember: DISPID,
            riid: *const IID,
            lcid: LCID,
            wFlags: WORD,
            pDispParams: *mut DISPPARAMS,
            pVarResult: *mut VARIANT,
            pExcepInfo: *mut EXCEPINFO,
            puArgErr: *mut UINT,
        ) -> HRESULT,
    >,
    pub open: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLHttpRequest,
            bstrMethod: BSTR,
            bstrUrl: BSTR,
            varAsync: VARIANT,
            bstrUser: VARIANT,
            bstrPassword: VARIANT,
        ) -> HRESULT,
    >,
    pub setRequestHeader: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLHttpRequest,
            bstrHeader: BSTR,
            bstrValue: BSTR,
        ) -> HRESULT,
    >,
    pub getResponseHeader: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLHttpRequest,
            bstrHeader: BSTR,
            pbstrValue: *mut BSTR,
        ) -> HRESULT,
    >,
    pub getAllResponseHeaders: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLHttpRequest, pbstrHeaders: *mut BSTR) -> HRESULT,
    >,
    pub send: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLHttpRequest, varBody: VARIANT) -> HRESULT,
    >,
    pub abort: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLHttpRequest) -> HRESULT>,
    pub get_status: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLHttpRequest,
            plStatus: *mut ::std::os::raw::c_long,
        ) -> HRESULT,
    >,
    pub get_statusText: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLHttpRequest, pbstrStatus: *mut BSTR) -> HRESULT,
    >,
    pub get_responseXML: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLHttpRequest, ppBody: *mut *mut IDispatch) -> HRESULT,
    >,
    pub get_responseText: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLHttpRequest, pbstrBody: *mut BSTR) -> HRESULT,
    >,
    pub get_responseBody: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLHttpRequest, pvarBody: *mut VARIANT) -> HRESULT,
    >,
    pub get_responseStream: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLHttpRequest, pvarBody: *mut VARIANT) -> HRESULT,
    >,
    pub get_readyState: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLHttpRequest,
            plState: *mut ::std::os::raw::c_long,
        ) -> HRESULT,
    >,
    pub put_onreadystatechange: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLHttpRequest,
            pReadyStateSink: *mut IDispatch,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IXMLHttpRequestVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IXMLHttpRequestVtbl>(),
        168usize,
        concat!("Size of: ", stringify!(IXMLHttpRequestVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLHttpRequestVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLHttpRequestVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLHttpRequestVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLHttpRequestVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLHttpRequestVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLHttpRequestVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLHttpRequestVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLHttpRequestVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLHttpRequestVtbl>())).GetTypeInfoCount as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLHttpRequestVtbl),
            "::",
            stringify!(GetTypeInfoCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLHttpRequestVtbl>())).GetTypeInfo as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLHttpRequestVtbl),
            "::",
            stringify!(GetTypeInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLHttpRequestVtbl>())).GetIDsOfNames as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLHttpRequestVtbl),
            "::",
            stringify!(GetIDsOfNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLHttpRequestVtbl>())).Invoke as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLHttpRequestVtbl),
            "::",
            stringify!(Invoke)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLHttpRequestVtbl>())).open as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLHttpRequestVtbl),
            "::",
            stringify!(open)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLHttpRequestVtbl>())).setRequestHeader as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLHttpRequestVtbl),
            "::",
            stringify!(setRequestHeader)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLHttpRequestVtbl>())).getResponseHeader as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLHttpRequestVtbl),
            "::",
            stringify!(getResponseHeader)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLHttpRequestVtbl>())).getAllResponseHeaders as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLHttpRequestVtbl),
            "::",
            stringify!(getAllResponseHeaders)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLHttpRequestVtbl>())).send as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLHttpRequestVtbl),
            "::",
            stringify!(send)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLHttpRequestVtbl>())).abort as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLHttpRequestVtbl),
            "::",
            stringify!(abort)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLHttpRequestVtbl>())).get_status as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLHttpRequestVtbl),
            "::",
            stringify!(get_status)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLHttpRequestVtbl>())).get_statusText as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLHttpRequestVtbl),
            "::",
            stringify!(get_statusText)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLHttpRequestVtbl>())).get_responseXML as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLHttpRequestVtbl),
            "::",
            stringify!(get_responseXML)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLHttpRequestVtbl>())).get_responseText as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLHttpRequestVtbl),
            "::",
            stringify!(get_responseText)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLHttpRequestVtbl>())).get_responseBody as *const _ as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLHttpRequestVtbl),
            "::",
            stringify!(get_responseBody)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLHttpRequestVtbl>())).get_responseStream as *const _ as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLHttpRequestVtbl),
            "::",
            stringify!(get_responseStream)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLHttpRequestVtbl>())).get_readyState as *const _ as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLHttpRequestVtbl),
            "::",
            stringify!(get_readyState)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLHttpRequestVtbl>())).put_onreadystatechange as *const _
                as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLHttpRequestVtbl),
            "::",
            stringify!(put_onreadystatechange)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLHttpRequest {
    pub lpVtbl: *mut IXMLHttpRequestVtbl,
}
#[test]
fn bindgen_test_layout_IXMLHttpRequest() {
    assert_eq!(
        ::std::mem::size_of::<IXMLHttpRequest>(),
        8usize,
        concat!("Size of: ", stringify!(IXMLHttpRequest))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLHttpRequest>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLHttpRequest))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLHttpRequest>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLHttpRequest),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static CLSID_XMLHTTPRequest: CLSID;
}
extern "C" {
    pub static IID_IXMLDSOControl: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDSOControlVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDSOControl,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDSOControl) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDSOControl) -> ULONG>,
    pub GetTypeInfoCount: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDSOControl, pctinfo: *mut UINT) -> HRESULT,
    >,
    pub GetTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDSOControl,
            iTInfo: UINT,
            lcid: LCID,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetIDsOfNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDSOControl,
            riid: *const IID,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
            lcid: LCID,
            rgDispId: *mut DISPID,
        ) -> HRESULT,
    >,
    pub Invoke: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDSOControl,
            dispIdMember: DISPID,
            riid: *const IID,
            lcid: LCID,
            wFlags: WORD,
            pDispParams: *mut DISPPARAMS,
            pVarResult: *mut VARIANT,
            pExcepInfo: *mut EXCEPINFO,
            puArgErr: *mut UINT,
        ) -> HRESULT,
    >,
    pub get_XMLDocument: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDSOControl,
            ppDoc: *mut *mut IXMLDOMDocument,
        ) -> HRESULT,
    >,
    pub put_XMLDocument: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDSOControl, ppDoc: *mut IXMLDOMDocument) -> HRESULT,
    >,
    pub get_JavaDSOCompatible: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDSOControl, fJavaDSOCompatible: *mut BOOL) -> HRESULT,
    >,
    pub put_JavaDSOCompatible: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDSOControl, fJavaDSOCompatible: BOOL) -> HRESULT,
    >,
    pub get_readyState: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDSOControl,
            state: *mut ::std::os::raw::c_long,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IXMLDSOControlVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDSOControlVtbl>(),
        96usize,
        concat!("Size of: ", stringify!(IXMLDSOControlVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDSOControlVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDSOControlVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDSOControlVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDSOControlVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDSOControlVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDSOControlVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDSOControlVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDSOControlVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDSOControlVtbl>())).GetTypeInfoCount as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDSOControlVtbl),
            "::",
            stringify!(GetTypeInfoCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDSOControlVtbl>())).GetTypeInfo as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDSOControlVtbl),
            "::",
            stringify!(GetTypeInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDSOControlVtbl>())).GetIDsOfNames as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDSOControlVtbl),
            "::",
            stringify!(GetIDsOfNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDSOControlVtbl>())).Invoke as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDSOControlVtbl),
            "::",
            stringify!(Invoke)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDSOControlVtbl>())).get_XMLDocument as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDSOControlVtbl),
            "::",
            stringify!(get_XMLDocument)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDSOControlVtbl>())).put_XMLDocument as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDSOControlVtbl),
            "::",
            stringify!(put_XMLDocument)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDSOControlVtbl>())).get_JavaDSOCompatible as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDSOControlVtbl),
            "::",
            stringify!(get_JavaDSOCompatible)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDSOControlVtbl>())).put_JavaDSOCompatible as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDSOControlVtbl),
            "::",
            stringify!(put_JavaDSOCompatible)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDSOControlVtbl>())).get_readyState as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDSOControlVtbl),
            "::",
            stringify!(get_readyState)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDSOControl {
    pub lpVtbl: *mut IXMLDSOControlVtbl,
}
#[test]
fn bindgen_test_layout_IXMLDSOControl() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDSOControl>(),
        8usize,
        concat!("Size of: ", stringify!(IXMLDSOControl))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDSOControl>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDSOControl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDSOControl>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDSOControl),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static CLSID_XMLDSOControl: CLSID;
}
extern "C" {
    pub static IID_IXMLElementCollection: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLElementCollectionVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLElementCollection,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLElementCollection) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLElementCollection) -> ULONG>,
    pub GetTypeInfoCount: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLElementCollection, pctinfo: *mut UINT) -> HRESULT,
    >,
    pub GetTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLElementCollection,
            iTInfo: UINT,
            lcid: LCID,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetIDsOfNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLElementCollection,
            riid: *const IID,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
            lcid: LCID,
            rgDispId: *mut DISPID,
        ) -> HRESULT,
    >,
    pub Invoke: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLElementCollection,
            dispIdMember: DISPID,
            riid: *const IID,
            lcid: LCID,
            wFlags: WORD,
            pDispParams: *mut DISPPARAMS,
            pVarResult: *mut VARIANT,
            pExcepInfo: *mut EXCEPINFO,
            puArgErr: *mut UINT,
        ) -> HRESULT,
    >,
    pub put_length: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLElementCollection,
            v: ::std::os::raw::c_long,
        ) -> HRESULT,
    >,
    pub get_length: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLElementCollection,
            p: *mut ::std::os::raw::c_long,
        ) -> HRESULT,
    >,
    pub get__newEnum: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLElementCollection,
            ppUnk: *mut *mut IUnknown,
        ) -> HRESULT,
    >,
    pub item: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLElementCollection,
            var1: VARIANT,
            var2: VARIANT,
            ppDisp: *mut *mut IDispatch,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IXMLElementCollectionVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IXMLElementCollectionVtbl>(),
        88usize,
        concat!("Size of: ", stringify!(IXMLElementCollectionVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLElementCollectionVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLElementCollectionVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLElementCollectionVtbl>())).QueryInterface as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElementCollectionVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLElementCollectionVtbl>())).AddRef as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElementCollectionVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLElementCollectionVtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElementCollectionVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLElementCollectionVtbl>())).GetTypeInfoCount as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElementCollectionVtbl),
            "::",
            stringify!(GetTypeInfoCount)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLElementCollectionVtbl>())).GetTypeInfo as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElementCollectionVtbl),
            "::",
            stringify!(GetTypeInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLElementCollectionVtbl>())).GetIDsOfNames as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElementCollectionVtbl),
            "::",
            stringify!(GetIDsOfNames)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLElementCollectionVtbl>())).Invoke as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElementCollectionVtbl),
            "::",
            stringify!(Invoke)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLElementCollectionVtbl>())).put_length as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElementCollectionVtbl),
            "::",
            stringify!(put_length)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLElementCollectionVtbl>())).get_length as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElementCollectionVtbl),
            "::",
            stringify!(get_length)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLElementCollectionVtbl>())).get__newEnum as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElementCollectionVtbl),
            "::",
            stringify!(get__newEnum)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElementCollectionVtbl>())).item as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElementCollectionVtbl),
            "::",
            stringify!(item)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLElementCollection {
    pub lpVtbl: *mut IXMLElementCollectionVtbl,
}
#[test]
fn bindgen_test_layout_IXMLElementCollection() {
    assert_eq!(
        ::std::mem::size_of::<IXMLElementCollection>(),
        8usize,
        concat!("Size of: ", stringify!(IXMLElementCollection))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLElementCollection>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLElementCollection))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElementCollection>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElementCollection),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IXMLDocument: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDocumentVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDocument,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDocument) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDocument) -> ULONG>,
    pub GetTypeInfoCount: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDocument, pctinfo: *mut UINT) -> HRESULT,
    >,
    pub GetTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDocument,
            iTInfo: UINT,
            lcid: LCID,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetIDsOfNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDocument,
            riid: *const IID,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
            lcid: LCID,
            rgDispId: *mut DISPID,
        ) -> HRESULT,
    >,
    pub Invoke: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDocument,
            dispIdMember: DISPID,
            riid: *const IID,
            lcid: LCID,
            wFlags: WORD,
            pDispParams: *mut DISPPARAMS,
            pVarResult: *mut VARIANT,
            pExcepInfo: *mut EXCEPINFO,
            puArgErr: *mut UINT,
        ) -> HRESULT,
    >,
    pub get_root: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDocument, p: *mut *mut IXMLElement) -> HRESULT,
    >,
    pub get_fileSize: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDocument, p: *mut BSTR) -> HRESULT,
    >,
    pub get_fileModifiedDate: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDocument, p: *mut BSTR) -> HRESULT,
    >,
    pub get_fileUpdatedDate: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDocument, p: *mut BSTR) -> HRESULT,
    >,
    pub get_URL: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDocument, p: *mut BSTR) -> HRESULT,
    >,
    pub put_URL:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDocument, p: BSTR) -> HRESULT>,
    pub get_mimeType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDocument, p: *mut BSTR) -> HRESULT,
    >,
    pub get_readyState: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDocument, pl: *mut ::std::os::raw::c_long) -> HRESULT,
    >,
    pub get_charset: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDocument, p: *mut BSTR) -> HRESULT,
    >,
    pub put_charset:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDocument, p: BSTR) -> HRESULT>,
    pub get_version: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDocument, p: *mut BSTR) -> HRESULT,
    >,
    pub get_doctype: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDocument, p: *mut BSTR) -> HRESULT,
    >,
    pub get_dtdURL: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDocument, p: *mut BSTR) -> HRESULT,
    >,
    pub createElement: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDocument,
            vType: VARIANT,
            var1: VARIANT,
            ppElem: *mut *mut IXMLElement,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IXMLDocumentVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDocumentVtbl>(),
        168usize,
        concat!("Size of: ", stringify!(IXMLDocumentVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDocumentVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDocumentVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocumentVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocumentVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocumentVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocumentVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocumentVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocumentVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDocumentVtbl>())).GetTypeInfoCount as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocumentVtbl),
            "::",
            stringify!(GetTypeInfoCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocumentVtbl>())).GetTypeInfo as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocumentVtbl),
            "::",
            stringify!(GetTypeInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocumentVtbl>())).GetIDsOfNames as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocumentVtbl),
            "::",
            stringify!(GetIDsOfNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocumentVtbl>())).Invoke as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocumentVtbl),
            "::",
            stringify!(Invoke)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocumentVtbl>())).get_root as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocumentVtbl),
            "::",
            stringify!(get_root)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocumentVtbl>())).get_fileSize as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocumentVtbl),
            "::",
            stringify!(get_fileSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDocumentVtbl>())).get_fileModifiedDate as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocumentVtbl),
            "::",
            stringify!(get_fileModifiedDate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDocumentVtbl>())).get_fileUpdatedDate as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocumentVtbl),
            "::",
            stringify!(get_fileUpdatedDate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocumentVtbl>())).get_URL as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocumentVtbl),
            "::",
            stringify!(get_URL)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocumentVtbl>())).put_URL as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocumentVtbl),
            "::",
            stringify!(put_URL)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocumentVtbl>())).get_mimeType as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocumentVtbl),
            "::",
            stringify!(get_mimeType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocumentVtbl>())).get_readyState as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocumentVtbl),
            "::",
            stringify!(get_readyState)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocumentVtbl>())).get_charset as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocumentVtbl),
            "::",
            stringify!(get_charset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocumentVtbl>())).put_charset as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocumentVtbl),
            "::",
            stringify!(put_charset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocumentVtbl>())).get_version as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocumentVtbl),
            "::",
            stringify!(get_version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocumentVtbl>())).get_doctype as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocumentVtbl),
            "::",
            stringify!(get_doctype)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocumentVtbl>())).get_dtdURL as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocumentVtbl),
            "::",
            stringify!(get_dtdURL)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocumentVtbl>())).createElement as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocumentVtbl),
            "::",
            stringify!(createElement)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDocument {
    pub lpVtbl: *mut IXMLDocumentVtbl,
}
#[test]
fn bindgen_test_layout_IXMLDocument() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDocument>(),
        8usize,
        concat!("Size of: ", stringify!(IXMLDocument))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDocument>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDocument))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocument>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocument),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IXMLDocument2: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDocument2Vtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDocument2,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDocument2) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDocument2) -> ULONG>,
    pub GetTypeInfoCount: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDocument2, pctinfo: *mut UINT) -> HRESULT,
    >,
    pub GetTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDocument2,
            iTInfo: UINT,
            lcid: LCID,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetIDsOfNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDocument2,
            riid: *const IID,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
            lcid: LCID,
            rgDispId: *mut DISPID,
        ) -> HRESULT,
    >,
    pub Invoke: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDocument2,
            dispIdMember: DISPID,
            riid: *const IID,
            lcid: LCID,
            wFlags: WORD,
            pDispParams: *mut DISPPARAMS,
            pVarResult: *mut VARIANT,
            pExcepInfo: *mut EXCEPINFO,
            puArgErr: *mut UINT,
        ) -> HRESULT,
    >,
    pub get_root: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDocument2, p: *mut *mut IXMLElement2) -> HRESULT,
    >,
    pub get_fileSize: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDocument2, p: *mut BSTR) -> HRESULT,
    >,
    pub get_fileModifiedDate: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDocument2, p: *mut BSTR) -> HRESULT,
    >,
    pub get_fileUpdatedDate: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDocument2, p: *mut BSTR) -> HRESULT,
    >,
    pub get_URL: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDocument2, p: *mut BSTR) -> HRESULT,
    >,
    pub put_URL:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDocument2, p: BSTR) -> HRESULT>,
    pub get_mimeType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDocument2, p: *mut BSTR) -> HRESULT,
    >,
    pub get_readyState: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDocument2, pl: *mut ::std::os::raw::c_long) -> HRESULT,
    >,
    pub get_charset: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDocument2, p: *mut BSTR) -> HRESULT,
    >,
    pub put_charset:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLDocument2, p: BSTR) -> HRESULT>,
    pub get_version: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDocument2, p: *mut BSTR) -> HRESULT,
    >,
    pub get_doctype: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDocument2, p: *mut BSTR) -> HRESULT,
    >,
    pub get_dtdURL: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDocument2, p: *mut BSTR) -> HRESULT,
    >,
    pub createElement: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLDocument2,
            vType: VARIANT,
            var1: VARIANT,
            ppElem: *mut *mut IXMLElement2,
        ) -> HRESULT,
    >,
    pub get_async: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDocument2, pf: *mut VARIANT_BOOL) -> HRESULT,
    >,
    pub put_async: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLDocument2, f: VARIANT_BOOL) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IXMLDocument2Vtbl() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDocument2Vtbl>(),
        184usize,
        concat!("Size of: ", stringify!(IXMLDocument2Vtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDocument2Vtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDocument2Vtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDocument2Vtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocument2Vtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocument2Vtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocument2Vtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocument2Vtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocument2Vtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDocument2Vtbl>())).GetTypeInfoCount as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocument2Vtbl),
            "::",
            stringify!(GetTypeInfoCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocument2Vtbl>())).GetTypeInfo as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocument2Vtbl),
            "::",
            stringify!(GetTypeInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocument2Vtbl>())).GetIDsOfNames as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocument2Vtbl),
            "::",
            stringify!(GetIDsOfNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocument2Vtbl>())).Invoke as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocument2Vtbl),
            "::",
            stringify!(Invoke)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocument2Vtbl>())).get_root as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocument2Vtbl),
            "::",
            stringify!(get_root)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocument2Vtbl>())).get_fileSize as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocument2Vtbl),
            "::",
            stringify!(get_fileSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDocument2Vtbl>())).get_fileModifiedDate as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocument2Vtbl),
            "::",
            stringify!(get_fileModifiedDate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDocument2Vtbl>())).get_fileUpdatedDate as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocument2Vtbl),
            "::",
            stringify!(get_fileUpdatedDate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocument2Vtbl>())).get_URL as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocument2Vtbl),
            "::",
            stringify!(get_URL)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocument2Vtbl>())).put_URL as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocument2Vtbl),
            "::",
            stringify!(put_URL)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocument2Vtbl>())).get_mimeType as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocument2Vtbl),
            "::",
            stringify!(get_mimeType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLDocument2Vtbl>())).get_readyState as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocument2Vtbl),
            "::",
            stringify!(get_readyState)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocument2Vtbl>())).get_charset as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocument2Vtbl),
            "::",
            stringify!(get_charset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocument2Vtbl>())).put_charset as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocument2Vtbl),
            "::",
            stringify!(put_charset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocument2Vtbl>())).get_version as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocument2Vtbl),
            "::",
            stringify!(get_version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocument2Vtbl>())).get_doctype as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocument2Vtbl),
            "::",
            stringify!(get_doctype)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocument2Vtbl>())).get_dtdURL as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocument2Vtbl),
            "::",
            stringify!(get_dtdURL)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocument2Vtbl>())).createElement as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocument2Vtbl),
            "::",
            stringify!(createElement)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocument2Vtbl>())).get_async as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocument2Vtbl),
            "::",
            stringify!(get_async)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocument2Vtbl>())).put_async as *const _ as usize },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocument2Vtbl),
            "::",
            stringify!(put_async)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLDocument2 {
    pub lpVtbl: *mut IXMLDocument2Vtbl,
}
#[test]
fn bindgen_test_layout_IXMLDocument2() {
    assert_eq!(
        ::std::mem::size_of::<IXMLDocument2>(),
        8usize,
        concat!("Size of: ", stringify!(IXMLDocument2))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLDocument2>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLDocument2))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLDocument2>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLDocument2),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IXMLElement: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLElementVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLElement,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLElement) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLElement) -> ULONG>,
    pub GetTypeInfoCount: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLElement, pctinfo: *mut UINT) -> HRESULT,
    >,
    pub GetTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLElement,
            iTInfo: UINT,
            lcid: LCID,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetIDsOfNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLElement,
            riid: *const IID,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
            lcid: LCID,
            rgDispId: *mut DISPID,
        ) -> HRESULT,
    >,
    pub Invoke: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLElement,
            dispIdMember: DISPID,
            riid: *const IID,
            lcid: LCID,
            wFlags: WORD,
            pDispParams: *mut DISPPARAMS,
            pVarResult: *mut VARIANT,
            pExcepInfo: *mut EXCEPINFO,
            puArgErr: *mut UINT,
        ) -> HRESULT,
    >,
    pub get_tagName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLElement, p: *mut BSTR) -> HRESULT,
    >,
    pub put_tagName:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLElement, p: BSTR) -> HRESULT>,
    pub get_parent: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLElement, ppParent: *mut *mut IXMLElement) -> HRESULT,
    >,
    pub setAttribute: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLElement,
            strPropertyName: BSTR,
            PropertyValue: VARIANT,
        ) -> HRESULT,
    >,
    pub getAttribute: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLElement,
            strPropertyName: BSTR,
            PropertyValue: *mut VARIANT,
        ) -> HRESULT,
    >,
    pub removeAttribute: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLElement, strPropertyName: BSTR) -> HRESULT,
    >,
    pub get_children: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLElement,
            pp: *mut *mut IXMLElementCollection,
        ) -> HRESULT,
    >,
    pub get_type: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLElement,
            plType: *mut ::std::os::raw::c_long,
        ) -> HRESULT,
    >,
    pub get_text: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLElement, p: *mut BSTR) -> HRESULT,
    >,
    pub put_text:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLElement, p: BSTR) -> HRESULT>,
    pub addChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLElement,
            pChildElem: *mut IXMLElement,
            lIndex: ::std::os::raw::c_long,
            lReserved: ::std::os::raw::c_long,
        ) -> HRESULT,
    >,
    pub removeChild: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLElement, pChildElem: *mut IXMLElement) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IXMLElementVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IXMLElementVtbl>(),
        152usize,
        concat!("Size of: ", stringify!(IXMLElementVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLElementVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLElementVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElementVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElementVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElementVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElementVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElementVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElementVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLElementVtbl>())).GetTypeInfoCount as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElementVtbl),
            "::",
            stringify!(GetTypeInfoCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElementVtbl>())).GetTypeInfo as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElementVtbl),
            "::",
            stringify!(GetTypeInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElementVtbl>())).GetIDsOfNames as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElementVtbl),
            "::",
            stringify!(GetIDsOfNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElementVtbl>())).Invoke as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElementVtbl),
            "::",
            stringify!(Invoke)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElementVtbl>())).get_tagName as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElementVtbl),
            "::",
            stringify!(get_tagName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElementVtbl>())).put_tagName as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElementVtbl),
            "::",
            stringify!(put_tagName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElementVtbl>())).get_parent as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElementVtbl),
            "::",
            stringify!(get_parent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElementVtbl>())).setAttribute as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElementVtbl),
            "::",
            stringify!(setAttribute)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElementVtbl>())).getAttribute as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElementVtbl),
            "::",
            stringify!(getAttribute)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElementVtbl>())).removeAttribute as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElementVtbl),
            "::",
            stringify!(removeAttribute)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElementVtbl>())).get_children as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElementVtbl),
            "::",
            stringify!(get_children)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElementVtbl>())).get_type as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElementVtbl),
            "::",
            stringify!(get_type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElementVtbl>())).get_text as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElementVtbl),
            "::",
            stringify!(get_text)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElementVtbl>())).put_text as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElementVtbl),
            "::",
            stringify!(put_text)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElementVtbl>())).addChild as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElementVtbl),
            "::",
            stringify!(addChild)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElementVtbl>())).removeChild as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElementVtbl),
            "::",
            stringify!(removeChild)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLElement {
    pub lpVtbl: *mut IXMLElementVtbl,
}
#[test]
fn bindgen_test_layout_IXMLElement() {
    assert_eq!(
        ::std::mem::size_of::<IXMLElement>(),
        8usize,
        concat!("Size of: ", stringify!(IXMLElement))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLElement>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLElement))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElement>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElement),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IXMLElement2: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLElement2Vtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLElement2,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLElement2) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLElement2) -> ULONG>,
    pub GetTypeInfoCount: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLElement2, pctinfo: *mut UINT) -> HRESULT,
    >,
    pub GetTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLElement2,
            iTInfo: UINT,
            lcid: LCID,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetIDsOfNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLElement2,
            riid: *const IID,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
            lcid: LCID,
            rgDispId: *mut DISPID,
        ) -> HRESULT,
    >,
    pub Invoke: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLElement2,
            dispIdMember: DISPID,
            riid: *const IID,
            lcid: LCID,
            wFlags: WORD,
            pDispParams: *mut DISPPARAMS,
            pVarResult: *mut VARIANT,
            pExcepInfo: *mut EXCEPINFO,
            puArgErr: *mut UINT,
        ) -> HRESULT,
    >,
    pub get_tagName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLElement2, p: *mut BSTR) -> HRESULT,
    >,
    pub put_tagName:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLElement2, p: BSTR) -> HRESULT>,
    pub get_parent: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLElement2, ppParent: *mut *mut IXMLElement2) -> HRESULT,
    >,
    pub setAttribute: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLElement2,
            strPropertyName: BSTR,
            PropertyValue: VARIANT,
        ) -> HRESULT,
    >,
    pub getAttribute: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLElement2,
            strPropertyName: BSTR,
            PropertyValue: *mut VARIANT,
        ) -> HRESULT,
    >,
    pub removeAttribute: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLElement2, strPropertyName: BSTR) -> HRESULT,
    >,
    pub get_children: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLElement2,
            pp: *mut *mut IXMLElementCollection,
        ) -> HRESULT,
    >,
    pub get_type: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLElement2,
            plType: *mut ::std::os::raw::c_long,
        ) -> HRESULT,
    >,
    pub get_text: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLElement2, p: *mut BSTR) -> HRESULT,
    >,
    pub put_text:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLElement2, p: BSTR) -> HRESULT>,
    pub addChild: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLElement2,
            pChildElem: *mut IXMLElement2,
            lIndex: ::std::os::raw::c_long,
            lReserved: ::std::os::raw::c_long,
        ) -> HRESULT,
    >,
    pub removeChild: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLElement2, pChildElem: *mut IXMLElement2) -> HRESULT,
    >,
    pub get_attributes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLElement2,
            pp: *mut *mut IXMLElementCollection,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IXMLElement2Vtbl() {
    assert_eq!(
        ::std::mem::size_of::<IXMLElement2Vtbl>(),
        160usize,
        concat!("Size of: ", stringify!(IXMLElement2Vtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLElement2Vtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLElement2Vtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElement2Vtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElement2Vtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElement2Vtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElement2Vtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElement2Vtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElement2Vtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLElement2Vtbl>())).GetTypeInfoCount as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElement2Vtbl),
            "::",
            stringify!(GetTypeInfoCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElement2Vtbl>())).GetTypeInfo as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElement2Vtbl),
            "::",
            stringify!(GetTypeInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElement2Vtbl>())).GetIDsOfNames as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElement2Vtbl),
            "::",
            stringify!(GetIDsOfNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElement2Vtbl>())).Invoke as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElement2Vtbl),
            "::",
            stringify!(Invoke)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElement2Vtbl>())).get_tagName as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElement2Vtbl),
            "::",
            stringify!(get_tagName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElement2Vtbl>())).put_tagName as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElement2Vtbl),
            "::",
            stringify!(put_tagName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElement2Vtbl>())).get_parent as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElement2Vtbl),
            "::",
            stringify!(get_parent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElement2Vtbl>())).setAttribute as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElement2Vtbl),
            "::",
            stringify!(setAttribute)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElement2Vtbl>())).getAttribute as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElement2Vtbl),
            "::",
            stringify!(getAttribute)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLElement2Vtbl>())).removeAttribute as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElement2Vtbl),
            "::",
            stringify!(removeAttribute)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElement2Vtbl>())).get_children as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElement2Vtbl),
            "::",
            stringify!(get_children)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElement2Vtbl>())).get_type as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElement2Vtbl),
            "::",
            stringify!(get_type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElement2Vtbl>())).get_text as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElement2Vtbl),
            "::",
            stringify!(get_text)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElement2Vtbl>())).put_text as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElement2Vtbl),
            "::",
            stringify!(put_text)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElement2Vtbl>())).addChild as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElement2Vtbl),
            "::",
            stringify!(addChild)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElement2Vtbl>())).removeChild as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElement2Vtbl),
            "::",
            stringify!(removeChild)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElement2Vtbl>())).get_attributes as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElement2Vtbl),
            "::",
            stringify!(get_attributes)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLElement2 {
    pub lpVtbl: *mut IXMLElement2Vtbl,
}
#[test]
fn bindgen_test_layout_IXMLElement2() {
    assert_eq!(
        ::std::mem::size_of::<IXMLElement2>(),
        8usize,
        concat!("Size of: ", stringify!(IXMLElement2))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLElement2>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLElement2))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLElement2>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLElement2),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IXMLAttribute: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLAttributeVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLAttribute,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLAttribute) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLAttribute) -> ULONG>,
    pub GetTypeInfoCount: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLAttribute, pctinfo: *mut UINT) -> HRESULT,
    >,
    pub GetTypeInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLAttribute,
            iTInfo: UINT,
            lcid: LCID,
            ppTInfo: *mut *mut ITypeInfo,
        ) -> HRESULT,
    >,
    pub GetIDsOfNames: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLAttribute,
            riid: *const IID,
            rgszNames: *mut LPOLESTR,
            cNames: UINT,
            lcid: LCID,
            rgDispId: *mut DISPID,
        ) -> HRESULT,
    >,
    pub Invoke: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLAttribute,
            dispIdMember: DISPID,
            riid: *const IID,
            lcid: LCID,
            wFlags: WORD,
            pDispParams: *mut DISPPARAMS,
            pVarResult: *mut VARIANT,
            pExcepInfo: *mut EXCEPINFO,
            puArgErr: *mut UINT,
        ) -> HRESULT,
    >,
    pub get_name: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLAttribute, n: *mut BSTR) -> HRESULT,
    >,
    pub get_value: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLAttribute, v: *mut BSTR) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IXMLAttributeVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IXMLAttributeVtbl>(),
        72usize,
        concat!("Size of: ", stringify!(IXMLAttributeVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLAttributeVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLAttributeVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLAttributeVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLAttributeVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLAttributeVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLAttributeVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLAttributeVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLAttributeVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IXMLAttributeVtbl>())).GetTypeInfoCount as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLAttributeVtbl),
            "::",
            stringify!(GetTypeInfoCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLAttributeVtbl>())).GetTypeInfo as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLAttributeVtbl),
            "::",
            stringify!(GetTypeInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLAttributeVtbl>())).GetIDsOfNames as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLAttributeVtbl),
            "::",
            stringify!(GetIDsOfNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLAttributeVtbl>())).Invoke as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLAttributeVtbl),
            "::",
            stringify!(Invoke)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLAttributeVtbl>())).get_name as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLAttributeVtbl),
            "::",
            stringify!(get_name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLAttributeVtbl>())).get_value as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLAttributeVtbl),
            "::",
            stringify!(get_value)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLAttribute {
    pub lpVtbl: *mut IXMLAttributeVtbl,
}
#[test]
fn bindgen_test_layout_IXMLAttribute() {
    assert_eq!(
        ::std::mem::size_of::<IXMLAttribute>(),
        8usize,
        concat!("Size of: ", stringify!(IXMLAttribute))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLAttribute>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLAttribute))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLAttribute>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLAttribute),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IXMLError: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLErrorVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IXMLError,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLError) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IXMLError) -> ULONG>,
    pub GetErrorInfo: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IXMLError, pErrorReturn: *mut XML_ERROR) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IXMLErrorVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IXMLErrorVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IXMLErrorVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLErrorVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLErrorVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLErrorVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLErrorVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLErrorVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLErrorVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLErrorVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLErrorVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLErrorVtbl>())).GetErrorInfo as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLErrorVtbl),
            "::",
            stringify!(GetErrorInfo)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IXMLError {
    pub lpVtbl: *mut IXMLErrorVtbl,
}
#[test]
fn bindgen_test_layout_IXMLError() {
    assert_eq!(
        ::std::mem::size_of::<IXMLError>(),
        8usize,
        concat!("Size of: ", stringify!(IXMLError))
    );
    assert_eq!(
        ::std::mem::align_of::<IXMLError>(),
        8usize,
        concat!("Alignment of ", stringify!(IXMLError))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IXMLError>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IXMLError),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static CLSID_XMLDocument: CLSID;
}
extern "C" {
    pub static mut __MIDL_itf_msxml_0000_0001_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_msxml_0000_0001_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static CLSID_SBS_StdURLMoniker: IID;
}
extern "C" {
    pub static CLSID_SBS_HttpProtocol: IID;
}
extern "C" {
    pub static CLSID_SBS_FtpProtocol: IID;
}
extern "C" {
    pub static CLSID_SBS_GopherProtocol: IID;
}
extern "C" {
    pub static CLSID_SBS_HttpSProtocol: IID;
}
extern "C" {
    pub static CLSID_SBS_FileProtocol: IID;
}
extern "C" {
    pub static CLSID_SBS_MkProtocol: IID;
}
extern "C" {
    pub static CLSID_SBS_UrlMkBindCtx: IID;
}
extern "C" {
    pub static CLSID_SBS_SoftDistExt: IID;
}
extern "C" {
    pub static CLSID_SBS_CdlProtocol: IID;
}
extern "C" {
    pub static CLSID_SBS_ClassInstallFilter: IID;
}
extern "C" {
    pub static CLSID_SBS_InternetSecurityManager: IID;
}
extern "C" {
    pub static CLSID_SBS_InternetZoneManager: IID;
}
extern "C" {
    pub static IID_IAsyncMoniker: IID;
}
extern "C" {
    pub static CLSID_StdURLMoniker: IID;
}
extern "C" {
    pub static CLSID_HttpProtocol: IID;
}
extern "C" {
    pub static CLSID_FtpProtocol: IID;
}
extern "C" {
    pub static CLSID_GopherProtocol: IID;
}
extern "C" {
    pub static CLSID_HttpSProtocol: IID;
}
extern "C" {
    pub static CLSID_FileProtocol: IID;
}
extern "C" {
    pub static CLSID_ResProtocol: IID;
}
extern "C" {
    pub static CLSID_AboutProtocol: IID;
}
extern "C" {
    pub static CLSID_JSProtocol: IID;
}
extern "C" {
    pub static CLSID_MailtoProtocol: IID;
}
extern "C" {
    pub static CLSID_IE4_PROTOCOLS: IID;
}
extern "C" {
    pub static CLSID_MkProtocol: IID;
}
extern "C" {
    pub static CLSID_StdURLProtocol: IID;
}
extern "C" {
    pub static CLSID_TBAuthProtocol: IID;
}
extern "C" {
    pub static CLSID_UrlMkBindCtx: IID;
}
extern "C" {
    pub static CLSID_CdlProtocol: IID;
}
extern "C" {
    pub static CLSID_ClassInstallFilter: IID;
}
extern "C" {
    pub static IID_IAsyncBindCtx: IID;
}
extern "C" {
    pub fn CreateURLMoniker(pMkCtx: LPMONIKER, szURL: LPCWSTR, ppmk: *mut LPMONIKER) -> HRESULT;
}
extern "C" {
    pub fn CreateURLMonikerEx(
        pMkCtx: LPMONIKER,
        szURL: LPCWSTR,
        ppmk: *mut LPMONIKER,
        dwFlags: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn GetClassURL(szURL: LPCWSTR, pClsID: *mut CLSID) -> HRESULT;
}
extern "C" {
    pub fn CreateAsyncBindCtx(
        reserved: DWORD,
        pBSCb: *mut IBindStatusCallback,
        pEFetc: *mut IEnumFORMATETC,
        ppBC: *mut *mut IBindCtx,
    ) -> HRESULT;
}
extern "C" {
    pub fn CreateURLMonikerEx2(
        pMkCtx: LPMONIKER,
        pUri: *mut IUri,
        ppmk: *mut LPMONIKER,
        dwFlags: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn CreateAsyncBindCtxEx(
        pbc: *mut IBindCtx,
        dwOptions: DWORD,
        pBSCb: *mut IBindStatusCallback,
        pEnum: *mut IEnumFORMATETC,
        ppBC: *mut *mut IBindCtx,
        reserved: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn MkParseDisplayNameEx(
        pbc: *mut IBindCtx,
        szDisplayName: LPCWSTR,
        pchEaten: *mut ULONG,
        ppmk: *mut LPMONIKER,
    ) -> HRESULT;
}
extern "C" {
    pub fn RegisterBindStatusCallback(
        pBC: LPBC,
        pBSCb: *mut IBindStatusCallback,
        ppBSCBPrev: *mut *mut IBindStatusCallback,
        dwReserved: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn RevokeBindStatusCallback(pBC: LPBC, pBSCb: *mut IBindStatusCallback) -> HRESULT;
}
extern "C" {
    pub fn GetClassFileOrMime(
        pBC: LPBC,
        szFilename: LPCWSTR,
        pBuffer: LPVOID,
        cbSize: DWORD,
        szMime: LPCWSTR,
        dwReserved: DWORD,
        pclsid: *mut CLSID,
    ) -> HRESULT;
}
extern "C" {
    pub fn IsValidURL(pBC: LPBC, szURL: LPCWSTR, dwReserved: DWORD) -> HRESULT;
}
extern "C" {
    pub fn CoGetClassObjectFromURL(
        rCLASSID: *const IID,
        szCODE: LPCWSTR,
        dwFileVersionMS: DWORD,
        dwFileVersionLS: DWORD,
        szTYPE: LPCWSTR,
        pBindCtx: LPBINDCTX,
        dwClsContext: DWORD,
        pvReserved: LPVOID,
        riid: *const IID,
        ppv: *mut LPVOID,
    ) -> HRESULT;
}
extern "C" {
    pub fn IEInstallScope(pdwScope: LPDWORD) -> HRESULT;
}
extern "C" {
    pub fn FaultInIEFeature(
        hWnd: HWND,
        pClassSpec: *mut uCLSSPEC,
        pQuery: *mut QUERYCONTEXT,
        dwFlags: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn GetComponentIDFromCLSSPEC(
        pClassspec: *mut uCLSSPEC,
        ppszComponentID: *mut LPSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn IsAsyncMoniker(pmk: *mut IMoniker) -> HRESULT;
}
extern "C" {
    pub fn CreateURLBinding(
        lpszUrl: LPCWSTR,
        pbc: *mut IBindCtx,
        ppBdg: *mut *mut IBinding,
    ) -> HRESULT;
}
extern "C" {
    pub fn RegisterMediaTypes(
        ctypes: UINT,
        rgszTypes: *const LPCSTR,
        rgcfTypes: *mut CLIPFORMAT,
    ) -> HRESULT;
}
extern "C" {
    pub fn FindMediaType(rgszTypes: LPCSTR, rgcfTypes: *mut CLIPFORMAT) -> HRESULT;
}
extern "C" {
    pub fn CreateFormatEnumerator(
        cfmtetc: UINT,
        rgfmtetc: *mut FORMATETC,
        ppenumfmtetc: *mut *mut IEnumFORMATETC,
    ) -> HRESULT;
}
extern "C" {
    pub fn RegisterFormatEnumerator(
        pBC: LPBC,
        pEFetc: *mut IEnumFORMATETC,
        reserved: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn RevokeFormatEnumerator(pBC: LPBC, pEFetc: *mut IEnumFORMATETC) -> HRESULT;
}
extern "C" {
    pub fn RegisterMediaTypeClass(
        pBC: LPBC,
        ctypes: UINT,
        rgszTypes: *const LPCSTR,
        rgclsID: *mut CLSID,
        reserved: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn FindMediaTypeClass(
        pBC: LPBC,
        szType: LPCSTR,
        pclsID: *mut CLSID,
        reserved: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn UrlMkSetSessionOption(
        dwOption: DWORD,
        pBuffer: LPVOID,
        dwBufferLength: DWORD,
        dwReserved: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn UrlMkGetSessionOption(
        dwOption: DWORD,
        pBuffer: LPVOID,
        dwBufferLength: DWORD,
        pdwBufferLengthOut: *mut DWORD,
        dwReserved: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn FindMimeFromData(
        pBC: LPBC,
        pwzUrl: LPCWSTR,
        pBuffer: LPVOID,
        cbSize: DWORD,
        pwzMimeProposed: LPCWSTR,
        dwMimeFlags: DWORD,
        ppwzMimeOut: *mut LPWSTR,
        dwReserved: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn ObtainUserAgentString(dwOption: DWORD, pszUAOut: LPSTR, cbSize: *mut DWORD) -> HRESULT;
}
extern "C" {
    pub fn CompareSecurityIds(
        pbSecurityId1: *mut BYTE,
        dwLen1: DWORD,
        pbSecurityId2: *mut BYTE,
        dwLen2: DWORD,
        dwReserved: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn CompatFlagsFromClsid(
        pclsid: *mut CLSID,
        pdwCompatFlags: LPDWORD,
        pdwMiscStatusFlags: LPDWORD,
    ) -> HRESULT;
}
pub const IEObjectType_IE_EPM_OBJECT_EVENT: IEObjectType = 0;
pub const IEObjectType_IE_EPM_OBJECT_MUTEX: IEObjectType = 1;
pub const IEObjectType_IE_EPM_OBJECT_SEMAPHORE: IEObjectType = 2;
pub const IEObjectType_IE_EPM_OBJECT_SHARED_MEMORY: IEObjectType = 3;
pub const IEObjectType_IE_EPM_OBJECT_WAITABLE_TIMER: IEObjectType = 4;
pub const IEObjectType_IE_EPM_OBJECT_FILE: IEObjectType = 5;
pub const IEObjectType_IE_EPM_OBJECT_NAMED_PIPE: IEObjectType = 6;
pub const IEObjectType_IE_EPM_OBJECT_REGISTRY: IEObjectType = 7;
pub type IEObjectType = ::std::os::raw::c_int;
extern "C" {
    pub fn SetAccessForIEAppContainer(
        hObject: HANDLE,
        ieObjectType: IEObjectType,
        dwAccessMask: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0000_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0000_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPPERSISTMONIKER = *mut IPersistMoniker;
extern "C" {
    pub static IID_IPersistMoniker: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IPersistMonikerVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPersistMoniker,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IPersistMoniker) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IPersistMoniker) -> ULONG>,
    pub GetClassID: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IPersistMoniker, pClassID: *mut CLSID) -> HRESULT,
    >,
    pub IsDirty: ::std::option::Option<unsafe extern "C" fn(This: *mut IPersistMoniker) -> HRESULT>,
    pub Load: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPersistMoniker,
            fFullyAvailable: BOOL,
            pimkName: *mut IMoniker,
            pibc: LPBC,
            grfMode: DWORD,
        ) -> HRESULT,
    >,
    pub Save: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPersistMoniker,
            pimkName: *mut IMoniker,
            pbc: LPBC,
            fRemember: BOOL,
        ) -> HRESULT,
    >,
    pub SaveCompleted: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPersistMoniker,
            pimkName: *mut IMoniker,
            pibc: LPBC,
        ) -> HRESULT,
    >,
    pub GetCurMoniker: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IPersistMoniker, ppimkName: *mut *mut IMoniker) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IPersistMonikerVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IPersistMonikerVtbl>(),
        72usize,
        concat!("Size of: ", stringify!(IPersistMonikerVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IPersistMonikerVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IPersistMonikerVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IPersistMonikerVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistMonikerVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistMonikerVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistMonikerVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistMonikerVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistMonikerVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistMonikerVtbl>())).GetClassID as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistMonikerVtbl),
            "::",
            stringify!(GetClassID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistMonikerVtbl>())).IsDirty as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistMonikerVtbl),
            "::",
            stringify!(IsDirty)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistMonikerVtbl>())).Load as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistMonikerVtbl),
            "::",
            stringify!(Load)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistMonikerVtbl>())).Save as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistMonikerVtbl),
            "::",
            stringify!(Save)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IPersistMonikerVtbl>())).SaveCompleted as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistMonikerVtbl),
            "::",
            stringify!(SaveCompleted)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IPersistMonikerVtbl>())).GetCurMoniker as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistMonikerVtbl),
            "::",
            stringify!(GetCurMoniker)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IPersistMoniker {
    pub lpVtbl: *mut IPersistMonikerVtbl,
}
#[test]
fn bindgen_test_layout_IPersistMoniker() {
    assert_eq!(
        ::std::mem::size_of::<IPersistMoniker>(),
        8usize,
        concat!("Size of: ", stringify!(IPersistMoniker))
    );
    assert_eq!(
        ::std::mem::align_of::<IPersistMoniker>(),
        8usize,
        concat!("Alignment of ", stringify!(IPersistMoniker))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPersistMoniker>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IPersistMoniker),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0001_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0001_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPMONIKERPROP = *mut IMonikerProp;
pub const __MIDL_IMonikerProp_0001_MIMETYPEPROP: __MIDL_IMonikerProp_0001 = 0;
pub const __MIDL_IMonikerProp_0001_USE_SRC_URL: __MIDL_IMonikerProp_0001 = 1;
pub const __MIDL_IMonikerProp_0001_CLASSIDPROP: __MIDL_IMonikerProp_0001 = 2;
pub const __MIDL_IMonikerProp_0001_TRUSTEDDOWNLOADPROP: __MIDL_IMonikerProp_0001 = 3;
pub const __MIDL_IMonikerProp_0001_POPUPLEVELPROP: __MIDL_IMonikerProp_0001 = 4;
pub type __MIDL_IMonikerProp_0001 = ::std::os::raw::c_int;
pub use self::__MIDL_IMonikerProp_0001 as MONIKERPROPERTY;
extern "C" {
    pub static IID_IMonikerProp: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IMonikerPropVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMonikerProp,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IMonikerProp) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IMonikerProp) -> ULONG>,
    pub PutProperty: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IMonikerProp,
            mkp: MONIKERPROPERTY,
            val: LPCWSTR,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IMonikerPropVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IMonikerPropVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IMonikerPropVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IMonikerPropVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IMonikerPropVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMonikerPropVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IMonikerPropVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMonikerPropVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IMonikerPropVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMonikerPropVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IMonikerPropVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMonikerPropVtbl>())).PutProperty as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IMonikerPropVtbl),
            "::",
            stringify!(PutProperty)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IMonikerProp {
    pub lpVtbl: *mut IMonikerPropVtbl,
}
#[test]
fn bindgen_test_layout_IMonikerProp() {
    assert_eq!(
        ::std::mem::size_of::<IMonikerProp>(),
        8usize,
        concat!("Size of: ", stringify!(IMonikerProp))
    );
    assert_eq!(
        ::std::mem::align_of::<IMonikerProp>(),
        8usize,
        concat!("Alignment of ", stringify!(IMonikerProp))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IMonikerProp>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IMonikerProp),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0002_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0002_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPBINDPROTOCOL = *mut IBindProtocol;
extern "C" {
    pub static IID_IBindProtocol: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IBindProtocolVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IBindProtocol,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IBindProtocol) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IBindProtocol) -> ULONG>,
    pub CreateBinding: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IBindProtocol,
            szUrl: LPCWSTR,
            pbc: *mut IBindCtx,
            ppb: *mut *mut IBinding,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IBindProtocolVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IBindProtocolVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IBindProtocolVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IBindProtocolVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IBindProtocolVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindProtocolVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindProtocolVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindProtocolVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindProtocolVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindProtocolVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindProtocolVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindProtocolVtbl>())).CreateBinding as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindProtocolVtbl),
            "::",
            stringify!(CreateBinding)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IBindProtocol {
    pub lpVtbl: *mut IBindProtocolVtbl,
}
#[test]
fn bindgen_test_layout_IBindProtocol() {
    assert_eq!(
        ::std::mem::size_of::<IBindProtocol>(),
        8usize,
        concat!("Size of: ", stringify!(IBindProtocol))
    );
    assert_eq!(
        ::std::mem::align_of::<IBindProtocol>(),
        8usize,
        concat!("Alignment of ", stringify!(IBindProtocol))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindProtocol>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindProtocol),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0003_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0003_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPBINDING = *mut IBinding;
extern "C" {
    pub static IID_IBinding: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IBindingVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IBinding,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IBinding) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IBinding) -> ULONG>,
    pub Abort: ::std::option::Option<unsafe extern "C" fn(This: *mut IBinding) -> HRESULT>,
    pub Suspend: ::std::option::Option<unsafe extern "C" fn(This: *mut IBinding) -> HRESULT>,
    pub Resume: ::std::option::Option<unsafe extern "C" fn(This: *mut IBinding) -> HRESULT>,
    pub SetPriority: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IBinding, nPriority: LONG) -> HRESULT,
    >,
    pub GetPriority: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IBinding, pnPriority: *mut LONG) -> HRESULT,
    >,
    pub GetBindResult: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IBinding,
            pclsidProtocol: *mut CLSID,
            pdwResult: *mut DWORD,
            pszResult: *mut LPOLESTR,
            pdwReserved: *mut DWORD,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IBindingVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IBindingVtbl>(),
        72usize,
        concat!("Size of: ", stringify!(IBindingVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IBindingVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IBindingVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindingVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindingVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindingVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindingVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindingVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindingVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindingVtbl>())).Abort as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindingVtbl),
            "::",
            stringify!(Abort)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindingVtbl>())).Suspend as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindingVtbl),
            "::",
            stringify!(Suspend)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindingVtbl>())).Resume as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindingVtbl),
            "::",
            stringify!(Resume)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindingVtbl>())).SetPriority as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindingVtbl),
            "::",
            stringify!(SetPriority)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindingVtbl>())).GetPriority as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindingVtbl),
            "::",
            stringify!(GetPriority)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindingVtbl>())).GetBindResult as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindingVtbl),
            "::",
            stringify!(GetBindResult)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IBinding {
    pub lpVtbl: *mut IBindingVtbl,
}
#[test]
fn bindgen_test_layout_IBinding() {
    assert_eq!(
        ::std::mem::size_of::<IBinding>(),
        8usize,
        concat!("Size of: ", stringify!(IBinding))
    );
    assert_eq!(
        ::std::mem::align_of::<IBinding>(),
        8usize,
        concat!("Alignment of ", stringify!(IBinding))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBinding>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IBinding),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IBinding_RemoteGetBindResult_Proxy(
        This: *mut IBinding,
        pclsidProtocol: *mut CLSID,
        pdwResult: *mut DWORD,
        pszResult: *mut LPOLESTR,
        dwReserved: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn IBinding_RemoteGetBindResult_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0004_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0004_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPBINDSTATUSCALLBACK = *mut IBindStatusCallback;
pub const __MIDL_IBindStatusCallback_0001_BINDVERB_GET: __MIDL_IBindStatusCallback_0001 = 0;
pub const __MIDL_IBindStatusCallback_0001_BINDVERB_POST: __MIDL_IBindStatusCallback_0001 = 1;
pub const __MIDL_IBindStatusCallback_0001_BINDVERB_PUT: __MIDL_IBindStatusCallback_0001 = 2;
pub const __MIDL_IBindStatusCallback_0001_BINDVERB_CUSTOM: __MIDL_IBindStatusCallback_0001 = 3;
pub const __MIDL_IBindStatusCallback_0001_BINDVERB_RESERVED1: __MIDL_IBindStatusCallback_0001 = 4;
pub type __MIDL_IBindStatusCallback_0001 = ::std::os::raw::c_int;
pub use self::__MIDL_IBindStatusCallback_0001 as BINDVERB;
pub const __MIDL_IBindStatusCallback_0002_BINDINFOF_URLENCODESTGMEDDATA:
    __MIDL_IBindStatusCallback_0002 = 1;
pub const __MIDL_IBindStatusCallback_0002_BINDINFOF_URLENCODEDEXTRAINFO:
    __MIDL_IBindStatusCallback_0002 = 2;
pub type __MIDL_IBindStatusCallback_0002 = ::std::os::raw::c_int;
pub use self::__MIDL_IBindStatusCallback_0002 as BINDINFOF;
pub const __MIDL_IBindStatusCallback_0003_BINDF_ASYNCHRONOUS: __MIDL_IBindStatusCallback_0003 = 1;
pub const __MIDL_IBindStatusCallback_0003_BINDF_ASYNCSTORAGE: __MIDL_IBindStatusCallback_0003 = 2;
pub const __MIDL_IBindStatusCallback_0003_BINDF_NOPROGRESSIVERENDERING:
    __MIDL_IBindStatusCallback_0003 = 4;
pub const __MIDL_IBindStatusCallback_0003_BINDF_OFFLINEOPERATION: __MIDL_IBindStatusCallback_0003 =
    8;
pub const __MIDL_IBindStatusCallback_0003_BINDF_GETNEWESTVERSION: __MIDL_IBindStatusCallback_0003 =
    16;
pub const __MIDL_IBindStatusCallback_0003_BINDF_NOWRITECACHE: __MIDL_IBindStatusCallback_0003 = 32;
pub const __MIDL_IBindStatusCallback_0003_BINDF_NEEDFILE: __MIDL_IBindStatusCallback_0003 = 64;
pub const __MIDL_IBindStatusCallback_0003_BINDF_PULLDATA: __MIDL_IBindStatusCallback_0003 = 128;
pub const __MIDL_IBindStatusCallback_0003_BINDF_IGNORESECURITYPROBLEM:
    __MIDL_IBindStatusCallback_0003 = 256;
pub const __MIDL_IBindStatusCallback_0003_BINDF_RESYNCHRONIZE: __MIDL_IBindStatusCallback_0003 =
    512;
pub const __MIDL_IBindStatusCallback_0003_BINDF_HYPERLINK: __MIDL_IBindStatusCallback_0003 = 1024;
pub const __MIDL_IBindStatusCallback_0003_BINDF_NO_UI: __MIDL_IBindStatusCallback_0003 = 2048;
pub const __MIDL_IBindStatusCallback_0003_BINDF_SILENTOPERATION: __MIDL_IBindStatusCallback_0003 =
    4096;
pub const __MIDL_IBindStatusCallback_0003_BINDF_PRAGMA_NO_CACHE: __MIDL_IBindStatusCallback_0003 =
    8192;
pub const __MIDL_IBindStatusCallback_0003_BINDF_GETCLASSOBJECT: __MIDL_IBindStatusCallback_0003 =
    16384;
pub const __MIDL_IBindStatusCallback_0003_BINDF_RESERVED_1: __MIDL_IBindStatusCallback_0003 = 32768;
pub const __MIDL_IBindStatusCallback_0003_BINDF_FREE_THREADED: __MIDL_IBindStatusCallback_0003 =
    65536;
pub const __MIDL_IBindStatusCallback_0003_BINDF_DIRECT_READ: __MIDL_IBindStatusCallback_0003 =
    131072;
pub const __MIDL_IBindStatusCallback_0003_BINDF_FORMS_SUBMIT: __MIDL_IBindStatusCallback_0003 =
    262144;
pub const __MIDL_IBindStatusCallback_0003_BINDF_GETFROMCACHE_IF_NET_FAIL:
    __MIDL_IBindStatusCallback_0003 = 524288;
pub const __MIDL_IBindStatusCallback_0003_BINDF_FROMURLMON: __MIDL_IBindStatusCallback_0003 =
    1048576;
pub const __MIDL_IBindStatusCallback_0003_BINDF_FWD_BACK: __MIDL_IBindStatusCallback_0003 = 2097152;
pub const __MIDL_IBindStatusCallback_0003_BINDF_PREFERDEFAULTHANDLER:
    __MIDL_IBindStatusCallback_0003 = 4194304;
pub const __MIDL_IBindStatusCallback_0003_BINDF_ENFORCERESTRICTED: __MIDL_IBindStatusCallback_0003 =
    8388608;
pub const __MIDL_IBindStatusCallback_0003_BINDF_RESERVED_2: __MIDL_IBindStatusCallback_0003 =
    -2147483648;
pub const __MIDL_IBindStatusCallback_0003_BINDF_RESERVED_3: __MIDL_IBindStatusCallback_0003 =
    16777216;
pub const __MIDL_IBindStatusCallback_0003_BINDF_RESERVED_4: __MIDL_IBindStatusCallback_0003 =
    33554432;
pub const __MIDL_IBindStatusCallback_0003_BINDF_RESERVED_5: __MIDL_IBindStatusCallback_0003 =
    67108864;
pub const __MIDL_IBindStatusCallback_0003_BINDF_RESERVED_6: __MIDL_IBindStatusCallback_0003 =
    134217728;
pub const __MIDL_IBindStatusCallback_0003_BINDF_RESERVED_7: __MIDL_IBindStatusCallback_0003 =
    1073741824;
pub const __MIDL_IBindStatusCallback_0003_BINDF_RESERVED_8: __MIDL_IBindStatusCallback_0003 =
    536870912;
pub type __MIDL_IBindStatusCallback_0003 = ::std::os::raw::c_int;
pub use self::__MIDL_IBindStatusCallback_0003 as BINDF;
pub const __MIDL_IBindStatusCallback_0004_URL_ENCODING_NONE: __MIDL_IBindStatusCallback_0004 = 0;
pub const __MIDL_IBindStatusCallback_0004_URL_ENCODING_ENABLE_UTF8:
    __MIDL_IBindStatusCallback_0004 = 268435456;
pub const __MIDL_IBindStatusCallback_0004_URL_ENCODING_DISABLE_UTF8:
    __MIDL_IBindStatusCallback_0004 = 536870912;
pub type __MIDL_IBindStatusCallback_0004 = ::std::os::raw::c_int;
pub use self::__MIDL_IBindStatusCallback_0004 as URL_ENCODING;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _tagBINDINFO {
    pub cbSize: ULONG,
    pub szExtraInfo: LPWSTR,
    pub stgmedData: STGMEDIUM,
    pub grfBindInfoF: DWORD,
    pub dwBindVerb: DWORD,
    pub szCustomVerb: LPWSTR,
    pub cbstgmedData: DWORD,
    pub dwOptions: DWORD,
    pub dwOptionsFlags: DWORD,
    pub dwCodePage: DWORD,
    pub securityAttributes: SECURITY_ATTRIBUTES,
    pub iid: IID,
    pub pUnk: *mut IUnknown,
    pub dwReserved: DWORD,
}
#[test]
fn bindgen_test_layout__tagBINDINFO() {
    assert_eq!(
        ::std::mem::size_of::<_tagBINDINFO>(),
        128usize,
        concat!("Size of: ", stringify!(_tagBINDINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_tagBINDINFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_tagBINDINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagBINDINFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagBINDINFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagBINDINFO>())).szExtraInfo as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagBINDINFO),
            "::",
            stringify!(szExtraInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagBINDINFO>())).stgmedData as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagBINDINFO),
            "::",
            stringify!(stgmedData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagBINDINFO>())).grfBindInfoF as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagBINDINFO),
            "::",
            stringify!(grfBindInfoF)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagBINDINFO>())).dwBindVerb as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagBINDINFO),
            "::",
            stringify!(dwBindVerb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagBINDINFO>())).szCustomVerb as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagBINDINFO),
            "::",
            stringify!(szCustomVerb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagBINDINFO>())).cbstgmedData as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagBINDINFO),
            "::",
            stringify!(cbstgmedData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagBINDINFO>())).dwOptions as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagBINDINFO),
            "::",
            stringify!(dwOptions)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagBINDINFO>())).dwOptionsFlags as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagBINDINFO),
            "::",
            stringify!(dwOptionsFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagBINDINFO>())).dwCodePage as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagBINDINFO),
            "::",
            stringify!(dwCodePage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagBINDINFO>())).securityAttributes as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagBINDINFO),
            "::",
            stringify!(securityAttributes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagBINDINFO>())).iid as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagBINDINFO),
            "::",
            stringify!(iid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagBINDINFO>())).pUnk as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagBINDINFO),
            "::",
            stringify!(pUnk)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagBINDINFO>())).dwReserved as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagBINDINFO),
            "::",
            stringify!(dwReserved)
        )
    );
}
pub type BINDINFO = _tagBINDINFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _REMSECURITY_ATTRIBUTES {
    pub nLength: DWORD,
    pub lpSecurityDescriptor: DWORD,
    pub bInheritHandle: BOOL,
}
#[test]
fn bindgen_test_layout__REMSECURITY_ATTRIBUTES() {
    assert_eq!(
        ::std::mem::size_of::<_REMSECURITY_ATTRIBUTES>(),
        12usize,
        concat!("Size of: ", stringify!(_REMSECURITY_ATTRIBUTES))
    );
    assert_eq!(
        ::std::mem::align_of::<_REMSECURITY_ATTRIBUTES>(),
        4usize,
        concat!("Alignment of ", stringify!(_REMSECURITY_ATTRIBUTES))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_REMSECURITY_ATTRIBUTES>())).nLength as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_REMSECURITY_ATTRIBUTES),
            "::",
            stringify!(nLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REMSECURITY_ATTRIBUTES>())).lpSecurityDescriptor as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_REMSECURITY_ATTRIBUTES),
            "::",
            stringify!(lpSecurityDescriptor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_REMSECURITY_ATTRIBUTES>())).bInheritHandle as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_REMSECURITY_ATTRIBUTES),
            "::",
            stringify!(bInheritHandle)
        )
    );
}
pub type REMSECURITY_ATTRIBUTES = _REMSECURITY_ATTRIBUTES;
pub type PREMSECURITY_ATTRIBUTES = *mut _REMSECURITY_ATTRIBUTES;
pub type LPREMSECURITY_ATTRIBUTES = *mut _REMSECURITY_ATTRIBUTES;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _tagRemBINDINFO {
    pub cbSize: ULONG,
    pub szExtraInfo: LPWSTR,
    pub grfBindInfoF: DWORD,
    pub dwBindVerb: DWORD,
    pub szCustomVerb: LPWSTR,
    pub cbstgmedData: DWORD,
    pub dwOptions: DWORD,
    pub dwOptionsFlags: DWORD,
    pub dwCodePage: DWORD,
    pub securityAttributes: REMSECURITY_ATTRIBUTES,
    pub iid: IID,
    pub pUnk: *mut IUnknown,
    pub dwReserved: DWORD,
}
#[test]
fn bindgen_test_layout__tagRemBINDINFO() {
    assert_eq!(
        ::std::mem::size_of::<_tagRemBINDINFO>(),
        96usize,
        concat!("Size of: ", stringify!(_tagRemBINDINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_tagRemBINDINFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_tagRemBINDINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagRemBINDINFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagRemBINDINFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagRemBINDINFO>())).szExtraInfo as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagRemBINDINFO),
            "::",
            stringify!(szExtraInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagRemBINDINFO>())).grfBindInfoF as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagRemBINDINFO),
            "::",
            stringify!(grfBindInfoF)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagRemBINDINFO>())).dwBindVerb as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagRemBINDINFO),
            "::",
            stringify!(dwBindVerb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagRemBINDINFO>())).szCustomVerb as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagRemBINDINFO),
            "::",
            stringify!(szCustomVerb)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagRemBINDINFO>())).cbstgmedData as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagRemBINDINFO),
            "::",
            stringify!(cbstgmedData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagRemBINDINFO>())).dwOptions as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagRemBINDINFO),
            "::",
            stringify!(dwOptions)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagRemBINDINFO>())).dwOptionsFlags as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagRemBINDINFO),
            "::",
            stringify!(dwOptionsFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagRemBINDINFO>())).dwCodePage as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagRemBINDINFO),
            "::",
            stringify!(dwCodePage)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_tagRemBINDINFO>())).securityAttributes as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagRemBINDINFO),
            "::",
            stringify!(securityAttributes)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagRemBINDINFO>())).iid as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagRemBINDINFO),
            "::",
            stringify!(iid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagRemBINDINFO>())).pUnk as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagRemBINDINFO),
            "::",
            stringify!(pUnk)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagRemBINDINFO>())).dwReserved as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagRemBINDINFO),
            "::",
            stringify!(dwReserved)
        )
    );
}
pub type RemBINDINFO = _tagRemBINDINFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagRemFORMATETC {
    pub cfFormat: DWORD,
    pub ptd: DWORD,
    pub dwAspect: DWORD,
    pub lindex: LONG,
    pub tymed: DWORD,
}
#[test]
fn bindgen_test_layout_tagRemFORMATETC() {
    assert_eq!(
        ::std::mem::size_of::<tagRemFORMATETC>(),
        20usize,
        concat!("Size of: ", stringify!(tagRemFORMATETC))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRemFORMATETC>(),
        4usize,
        concat!("Alignment of ", stringify!(tagRemFORMATETC))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRemFORMATETC>())).cfFormat as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRemFORMATETC),
            "::",
            stringify!(cfFormat)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRemFORMATETC>())).ptd as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRemFORMATETC),
            "::",
            stringify!(ptd)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRemFORMATETC>())).dwAspect as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRemFORMATETC),
            "::",
            stringify!(dwAspect)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRemFORMATETC>())).lindex as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRemFORMATETC),
            "::",
            stringify!(lindex)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRemFORMATETC>())).tymed as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRemFORMATETC),
            "::",
            stringify!(tymed)
        )
    );
}
pub type RemFORMATETC = tagRemFORMATETC;
pub type LPREMFORMATETC = *mut tagRemFORMATETC;
pub const __MIDL_IBindStatusCallback_0005_BINDINFO_OPTIONS_WININETFLAG:
    __MIDL_IBindStatusCallback_0005 = 65536;
pub const __MIDL_IBindStatusCallback_0005_BINDINFO_OPTIONS_ENABLE_UTF8:
    __MIDL_IBindStatusCallback_0005 = 131072;
pub const __MIDL_IBindStatusCallback_0005_BINDINFO_OPTIONS_DISABLE_UTF8:
    __MIDL_IBindStatusCallback_0005 = 262144;
pub const __MIDL_IBindStatusCallback_0005_BINDINFO_OPTIONS_USE_IE_ENCODING:
    __MIDL_IBindStatusCallback_0005 = 524288;
pub const __MIDL_IBindStatusCallback_0005_BINDINFO_OPTIONS_BINDTOOBJECT:
    __MIDL_IBindStatusCallback_0005 = 1048576;
pub const __MIDL_IBindStatusCallback_0005_BINDINFO_OPTIONS_SECURITYOPTOUT:
    __MIDL_IBindStatusCallback_0005 = 2097152;
pub const __MIDL_IBindStatusCallback_0005_BINDINFO_OPTIONS_IGNOREMIMETEXTPLAIN:
    __MIDL_IBindStatusCallback_0005 = 4194304;
pub const __MIDL_IBindStatusCallback_0005_BINDINFO_OPTIONS_USEBINDSTRINGCREDS:
    __MIDL_IBindStatusCallback_0005 = 8388608;
pub const __MIDL_IBindStatusCallback_0005_BINDINFO_OPTIONS_IGNOREHTTPHTTPSREDIRECTS:
    __MIDL_IBindStatusCallback_0005 = 16777216;
pub const __MIDL_IBindStatusCallback_0005_BINDINFO_OPTIONS_IGNORE_SSLERRORS_ONCE:
    __MIDL_IBindStatusCallback_0005 = 33554432;
pub const __MIDL_IBindStatusCallback_0005_BINDINFO_WPC_DOWNLOADBLOCKED:
    __MIDL_IBindStatusCallback_0005 = 134217728;
pub const __MIDL_IBindStatusCallback_0005_BINDINFO_WPC_LOGGING_ENABLED:
    __MIDL_IBindStatusCallback_0005 = 268435456;
pub const __MIDL_IBindStatusCallback_0005_BINDINFO_OPTIONS_ALLOWCONNECTDATA:
    __MIDL_IBindStatusCallback_0005 = 536870912;
pub const __MIDL_IBindStatusCallback_0005_BINDINFO_OPTIONS_DISABLEAUTOREDIRECTS:
    __MIDL_IBindStatusCallback_0005 = 1073741824;
pub const __MIDL_IBindStatusCallback_0005_BINDINFO_OPTIONS_SHDOCVW_NAVIGATE:
    __MIDL_IBindStatusCallback_0005 = -2147483648;
pub type __MIDL_IBindStatusCallback_0005 = ::std::os::raw::c_int;
pub use self::__MIDL_IBindStatusCallback_0005 as BINDINFO_OPTIONS;
pub const __MIDL_IBindStatusCallback_0006_BSCF_FIRSTDATANOTIFICATION:
    __MIDL_IBindStatusCallback_0006 = 1;
pub const __MIDL_IBindStatusCallback_0006_BSCF_INTERMEDIATEDATANOTIFICATION:
    __MIDL_IBindStatusCallback_0006 = 2;
pub const __MIDL_IBindStatusCallback_0006_BSCF_LASTDATANOTIFICATION:
    __MIDL_IBindStatusCallback_0006 = 4;
pub const __MIDL_IBindStatusCallback_0006_BSCF_DATAFULLYAVAILABLE: __MIDL_IBindStatusCallback_0006 =
    8;
pub const __MIDL_IBindStatusCallback_0006_BSCF_AVAILABLEDATASIZEUNKNOWN:
    __MIDL_IBindStatusCallback_0006 = 16;
pub const __MIDL_IBindStatusCallback_0006_BSCF_SKIPDRAINDATAFORFILEURLS:
    __MIDL_IBindStatusCallback_0006 = 32;
pub const __MIDL_IBindStatusCallback_0006_BSCF_64BITLENGTHDOWNLOAD:
    __MIDL_IBindStatusCallback_0006 = 64;
pub type __MIDL_IBindStatusCallback_0006 = ::std::os::raw::c_int;
pub use self::__MIDL_IBindStatusCallback_0006 as BSCF;
pub const tagBINDSTATUS_BINDSTATUS_FINDINGRESOURCE: tagBINDSTATUS = 1;
pub const tagBINDSTATUS_BINDSTATUS_CONNECTING: tagBINDSTATUS = 2;
pub const tagBINDSTATUS_BINDSTATUS_REDIRECTING: tagBINDSTATUS = 3;
pub const tagBINDSTATUS_BINDSTATUS_BEGINDOWNLOADDATA: tagBINDSTATUS = 4;
pub const tagBINDSTATUS_BINDSTATUS_DOWNLOADINGDATA: tagBINDSTATUS = 5;
pub const tagBINDSTATUS_BINDSTATUS_ENDDOWNLOADDATA: tagBINDSTATUS = 6;
pub const tagBINDSTATUS_BINDSTATUS_BEGINDOWNLOADCOMPONENTS: tagBINDSTATUS = 7;
pub const tagBINDSTATUS_BINDSTATUS_INSTALLINGCOMPONENTS: tagBINDSTATUS = 8;
pub const tagBINDSTATUS_BINDSTATUS_ENDDOWNLOADCOMPONENTS: tagBINDSTATUS = 9;
pub const tagBINDSTATUS_BINDSTATUS_USINGCACHEDCOPY: tagBINDSTATUS = 10;
pub const tagBINDSTATUS_BINDSTATUS_SENDINGREQUEST: tagBINDSTATUS = 11;
pub const tagBINDSTATUS_BINDSTATUS_CLASSIDAVAILABLE: tagBINDSTATUS = 12;
pub const tagBINDSTATUS_BINDSTATUS_MIMETYPEAVAILABLE: tagBINDSTATUS = 13;
pub const tagBINDSTATUS_BINDSTATUS_CACHEFILENAMEAVAILABLE: tagBINDSTATUS = 14;
pub const tagBINDSTATUS_BINDSTATUS_BEGINSYNCOPERATION: tagBINDSTATUS = 15;
pub const tagBINDSTATUS_BINDSTATUS_ENDSYNCOPERATION: tagBINDSTATUS = 16;
pub const tagBINDSTATUS_BINDSTATUS_BEGINUPLOADDATA: tagBINDSTATUS = 17;
pub const tagBINDSTATUS_BINDSTATUS_UPLOADINGDATA: tagBINDSTATUS = 18;
pub const tagBINDSTATUS_BINDSTATUS_ENDUPLOADDATA: tagBINDSTATUS = 19;
pub const tagBINDSTATUS_BINDSTATUS_PROTOCOLCLASSID: tagBINDSTATUS = 20;
pub const tagBINDSTATUS_BINDSTATUS_ENCODING: tagBINDSTATUS = 21;
pub const tagBINDSTATUS_BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE: tagBINDSTATUS = 22;
pub const tagBINDSTATUS_BINDSTATUS_CLASSINSTALLLOCATION: tagBINDSTATUS = 23;
pub const tagBINDSTATUS_BINDSTATUS_DECODING: tagBINDSTATUS = 24;
pub const tagBINDSTATUS_BINDSTATUS_LOADINGMIMEHANDLER: tagBINDSTATUS = 25;
pub const tagBINDSTATUS_BINDSTATUS_CONTENTDISPOSITIONATTACH: tagBINDSTATUS = 26;
pub const tagBINDSTATUS_BINDSTATUS_FILTERREPORTMIMETYPE: tagBINDSTATUS = 27;
pub const tagBINDSTATUS_BINDSTATUS_CLSIDCANINSTANTIATE: tagBINDSTATUS = 28;
pub const tagBINDSTATUS_BINDSTATUS_IUNKNOWNAVAILABLE: tagBINDSTATUS = 29;
pub const tagBINDSTATUS_BINDSTATUS_DIRECTBIND: tagBINDSTATUS = 30;
pub const tagBINDSTATUS_BINDSTATUS_RAWMIMETYPE: tagBINDSTATUS = 31;
pub const tagBINDSTATUS_BINDSTATUS_PROXYDETECTING: tagBINDSTATUS = 32;
pub const tagBINDSTATUS_BINDSTATUS_ACCEPTRANGES: tagBINDSTATUS = 33;
pub const tagBINDSTATUS_BINDSTATUS_COOKIE_SENT: tagBINDSTATUS = 34;
pub const tagBINDSTATUS_BINDSTATUS_COMPACT_POLICY_RECEIVED: tagBINDSTATUS = 35;
pub const tagBINDSTATUS_BINDSTATUS_COOKIE_SUPPRESSED: tagBINDSTATUS = 36;
pub const tagBINDSTATUS_BINDSTATUS_COOKIE_STATE_UNKNOWN: tagBINDSTATUS = 37;
pub const tagBINDSTATUS_BINDSTATUS_COOKIE_STATE_ACCEPT: tagBINDSTATUS = 38;
pub const tagBINDSTATUS_BINDSTATUS_COOKIE_STATE_REJECT: tagBINDSTATUS = 39;
pub const tagBINDSTATUS_BINDSTATUS_COOKIE_STATE_PROMPT: tagBINDSTATUS = 40;
pub const tagBINDSTATUS_BINDSTATUS_COOKIE_STATE_LEASH: tagBINDSTATUS = 41;
pub const tagBINDSTATUS_BINDSTATUS_COOKIE_STATE_DOWNGRADE: tagBINDSTATUS = 42;
pub const tagBINDSTATUS_BINDSTATUS_POLICY_HREF: tagBINDSTATUS = 43;
pub const tagBINDSTATUS_BINDSTATUS_P3P_HEADER: tagBINDSTATUS = 44;
pub const tagBINDSTATUS_BINDSTATUS_SESSION_COOKIE_RECEIVED: tagBINDSTATUS = 45;
pub const tagBINDSTATUS_BINDSTATUS_PERSISTENT_COOKIE_RECEIVED: tagBINDSTATUS = 46;
pub const tagBINDSTATUS_BINDSTATUS_SESSION_COOKIES_ALLOWED: tagBINDSTATUS = 47;
pub const tagBINDSTATUS_BINDSTATUS_CACHECONTROL: tagBINDSTATUS = 48;
pub const tagBINDSTATUS_BINDSTATUS_CONTENTDISPOSITIONFILENAME: tagBINDSTATUS = 49;
pub const tagBINDSTATUS_BINDSTATUS_MIMETEXTPLAINMISMATCH: tagBINDSTATUS = 50;
pub const tagBINDSTATUS_BINDSTATUS_PUBLISHERAVAILABLE: tagBINDSTATUS = 51;
pub const tagBINDSTATUS_BINDSTATUS_DISPLAYNAMEAVAILABLE: tagBINDSTATUS = 52;
pub const tagBINDSTATUS_BINDSTATUS_SSLUX_NAVBLOCKED: tagBINDSTATUS = 53;
pub const tagBINDSTATUS_BINDSTATUS_SERVER_MIMETYPEAVAILABLE: tagBINDSTATUS = 54;
pub const tagBINDSTATUS_BINDSTATUS_SNIFFED_CLASSIDAVAILABLE: tagBINDSTATUS = 55;
pub const tagBINDSTATUS_BINDSTATUS_64BIT_PROGRESS: tagBINDSTATUS = 56;
pub const tagBINDSTATUS_BINDSTATUS_LAST: tagBINDSTATUS = 56;
pub const tagBINDSTATUS_BINDSTATUS_RESERVED_0: tagBINDSTATUS = 57;
pub const tagBINDSTATUS_BINDSTATUS_RESERVED_1: tagBINDSTATUS = 58;
pub const tagBINDSTATUS_BINDSTATUS_RESERVED_2: tagBINDSTATUS = 59;
pub const tagBINDSTATUS_BINDSTATUS_RESERVED_3: tagBINDSTATUS = 60;
pub const tagBINDSTATUS_BINDSTATUS_RESERVED_4: tagBINDSTATUS = 61;
pub const tagBINDSTATUS_BINDSTATUS_RESERVED_5: tagBINDSTATUS = 62;
pub const tagBINDSTATUS_BINDSTATUS_RESERVED_6: tagBINDSTATUS = 63;
pub const tagBINDSTATUS_BINDSTATUS_RESERVED_7: tagBINDSTATUS = 64;
pub const tagBINDSTATUS_BINDSTATUS_RESERVED_8: tagBINDSTATUS = 65;
pub const tagBINDSTATUS_BINDSTATUS_RESERVED_9: tagBINDSTATUS = 66;
pub const tagBINDSTATUS_BINDSTATUS_RESERVED_A: tagBINDSTATUS = 67;
pub const tagBINDSTATUS_BINDSTATUS_RESERVED_B: tagBINDSTATUS = 68;
pub const tagBINDSTATUS_BINDSTATUS_RESERVED_C: tagBINDSTATUS = 69;
pub const tagBINDSTATUS_BINDSTATUS_RESERVED_D: tagBINDSTATUS = 70;
pub const tagBINDSTATUS_BINDSTATUS_RESERVED_E: tagBINDSTATUS = 71;
pub const tagBINDSTATUS_BINDSTATUS_RESERVED_F: tagBINDSTATUS = 72;
pub const tagBINDSTATUS_BINDSTATUS_RESERVED_10: tagBINDSTATUS = 73;
pub const tagBINDSTATUS_BINDSTATUS_RESERVED_11: tagBINDSTATUS = 74;
pub const tagBINDSTATUS_BINDSTATUS_RESERVED_12: tagBINDSTATUS = 75;
pub const tagBINDSTATUS_BINDSTATUS_RESERVED_13: tagBINDSTATUS = 76;
pub const tagBINDSTATUS_BINDSTATUS_LAST_PRIVATE: tagBINDSTATUS = 76;
pub type tagBINDSTATUS = ::std::os::raw::c_int;
pub use self::tagBINDSTATUS as BINDSTATUS;
extern "C" {
    pub static IID_IBindStatusCallback: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IBindStatusCallbackVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IBindStatusCallback,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IBindStatusCallback) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IBindStatusCallback) -> ULONG>,
    pub OnStartBinding: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IBindStatusCallback,
            dwReserved: DWORD,
            pib: *mut IBinding,
        ) -> HRESULT,
    >,
    pub GetPriority: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IBindStatusCallback, pnPriority: *mut LONG) -> HRESULT,
    >,
    pub OnLowResource: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IBindStatusCallback, reserved: DWORD) -> HRESULT,
    >,
    pub OnProgress: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IBindStatusCallback,
            ulProgress: ULONG,
            ulProgressMax: ULONG,
            ulStatusCode: ULONG,
            szStatusText: LPCWSTR,
        ) -> HRESULT,
    >,
    pub OnStopBinding: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IBindStatusCallback,
            hresult: HRESULT,
            szError: LPCWSTR,
        ) -> HRESULT,
    >,
    pub GetBindInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IBindStatusCallback,
            grfBINDF: *mut DWORD,
            pbindinfo: *mut BINDINFO,
        ) -> HRESULT,
    >,
    pub OnDataAvailable: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IBindStatusCallback,
            grfBSCF: DWORD,
            dwSize: DWORD,
            pformatetc: *mut FORMATETC,
            pstgmed: *mut STGMEDIUM,
        ) -> HRESULT,
    >,
    pub OnObjectAvailable: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IBindStatusCallback,
            riid: *const IID,
            punk: *mut IUnknown,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IBindStatusCallbackVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IBindStatusCallbackVtbl>(),
        88usize,
        concat!("Size of: ", stringify!(IBindStatusCallbackVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IBindStatusCallbackVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IBindStatusCallbackVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindStatusCallbackVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindStatusCallbackVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindStatusCallbackVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindStatusCallbackVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindStatusCallbackVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindStatusCallbackVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindStatusCallbackVtbl>())).OnStartBinding as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindStatusCallbackVtbl),
            "::",
            stringify!(OnStartBinding)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindStatusCallbackVtbl>())).GetPriority as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindStatusCallbackVtbl),
            "::",
            stringify!(GetPriority)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindStatusCallbackVtbl>())).OnLowResource as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindStatusCallbackVtbl),
            "::",
            stringify!(OnLowResource)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindStatusCallbackVtbl>())).OnProgress as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindStatusCallbackVtbl),
            "::",
            stringify!(OnProgress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindStatusCallbackVtbl>())).OnStopBinding as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindStatusCallbackVtbl),
            "::",
            stringify!(OnStopBinding)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindStatusCallbackVtbl>())).GetBindInfo as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindStatusCallbackVtbl),
            "::",
            stringify!(GetBindInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindStatusCallbackVtbl>())).OnDataAvailable as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindStatusCallbackVtbl),
            "::",
            stringify!(OnDataAvailable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindStatusCallbackVtbl>())).OnObjectAvailable as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindStatusCallbackVtbl),
            "::",
            stringify!(OnObjectAvailable)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IBindStatusCallback {
    pub lpVtbl: *mut IBindStatusCallbackVtbl,
}
#[test]
fn bindgen_test_layout_IBindStatusCallback() {
    assert_eq!(
        ::std::mem::size_of::<IBindStatusCallback>(),
        8usize,
        concat!("Size of: ", stringify!(IBindStatusCallback))
    );
    assert_eq!(
        ::std::mem::align_of::<IBindStatusCallback>(),
        8usize,
        concat!("Alignment of ", stringify!(IBindStatusCallback))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindStatusCallback>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindStatusCallback),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IBindStatusCallback_RemoteGetBindInfo_Proxy(
        This: *mut IBindStatusCallback,
        grfBINDF: *mut DWORD,
        pbindinfo: *mut RemBINDINFO,
        pstgmed: *mut RemSTGMEDIUM,
    ) -> HRESULT;
}
extern "C" {
    pub fn IBindStatusCallback_RemoteGetBindInfo_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn IBindStatusCallback_RemoteOnDataAvailable_Proxy(
        This: *mut IBindStatusCallback,
        grfBSCF: DWORD,
        dwSize: DWORD,
        pformatetc: *mut RemFORMATETC,
        pstgmed: *mut RemSTGMEDIUM,
    ) -> HRESULT;
}
extern "C" {
    pub fn IBindStatusCallback_RemoteOnDataAvailable_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0005_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0005_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPBINDSTATUSCALLBACKEX = *mut IBindStatusCallbackEx;
pub const __MIDL_IBindStatusCallbackEx_0001_BINDF2_DISABLEBASICOVERHTTP:
    __MIDL_IBindStatusCallbackEx_0001 = 1;
pub const __MIDL_IBindStatusCallbackEx_0001_BINDF2_DISABLEAUTOCOOKIEHANDLING:
    __MIDL_IBindStatusCallbackEx_0001 = 2;
pub const __MIDL_IBindStatusCallbackEx_0001_BINDF2_READ_DATA_GREATER_THAN_4GB:
    __MIDL_IBindStatusCallbackEx_0001 = 4;
pub const __MIDL_IBindStatusCallbackEx_0001_BINDF2_DISABLE_HTTP_REDIRECT_XSECURITYID:
    __MIDL_IBindStatusCallbackEx_0001 = 8;
pub const __MIDL_IBindStatusCallbackEx_0001_BINDF2_SETDOWNLOADMODE:
    __MIDL_IBindStatusCallbackEx_0001 = 32;
pub const __MIDL_IBindStatusCallbackEx_0001_BINDF2_DISABLE_HTTP_REDIRECT_CACHING:
    __MIDL_IBindStatusCallbackEx_0001 = 64;
pub const __MIDL_IBindStatusCallbackEx_0001_BINDF2_KEEP_CALLBACK_MODULE_LOADED:
    __MIDL_IBindStatusCallbackEx_0001 = 128;
pub const __MIDL_IBindStatusCallbackEx_0001_BINDF2_ALLOW_PROXY_CRED_PROMPT:
    __MIDL_IBindStatusCallbackEx_0001 = 256;
pub const __MIDL_IBindStatusCallbackEx_0001_BINDF2_RESERVED_17: __MIDL_IBindStatusCallbackEx_0001 =
    512;
pub const __MIDL_IBindStatusCallbackEx_0001_BINDF2_RESERVED_16: __MIDL_IBindStatusCallbackEx_0001 =
    1024;
pub const __MIDL_IBindStatusCallbackEx_0001_BINDF2_RESERVED_15: __MIDL_IBindStatusCallbackEx_0001 =
    2048;
pub const __MIDL_IBindStatusCallbackEx_0001_BINDF2_RESERVED_14: __MIDL_IBindStatusCallbackEx_0001 =
    4096;
pub const __MIDL_IBindStatusCallbackEx_0001_BINDF2_RESERVED_13: __MIDL_IBindStatusCallbackEx_0001 =
    8192;
pub const __MIDL_IBindStatusCallbackEx_0001_BINDF2_RESERVED_12: __MIDL_IBindStatusCallbackEx_0001 =
    16384;
pub const __MIDL_IBindStatusCallbackEx_0001_BINDF2_RESERVED_11: __MIDL_IBindStatusCallbackEx_0001 =
    32768;
pub const __MIDL_IBindStatusCallbackEx_0001_BINDF2_RESERVED_10: __MIDL_IBindStatusCallbackEx_0001 =
    65536;
pub const __MIDL_IBindStatusCallbackEx_0001_BINDF2_RESERVED_F: __MIDL_IBindStatusCallbackEx_0001 =
    131072;
pub const __MIDL_IBindStatusCallbackEx_0001_BINDF2_RESERVED_E: __MIDL_IBindStatusCallbackEx_0001 =
    262144;
pub const __MIDL_IBindStatusCallbackEx_0001_BINDF2_RESERVED_D: __MIDL_IBindStatusCallbackEx_0001 =
    524288;
pub const __MIDL_IBindStatusCallbackEx_0001_BINDF2_RESERVED_C: __MIDL_IBindStatusCallbackEx_0001 =
    1048576;
pub const __MIDL_IBindStatusCallbackEx_0001_BINDF2_RESERVED_B: __MIDL_IBindStatusCallbackEx_0001 =
    2097152;
pub const __MIDL_IBindStatusCallbackEx_0001_BINDF2_RESERVED_A: __MIDL_IBindStatusCallbackEx_0001 =
    4194304;
pub const __MIDL_IBindStatusCallbackEx_0001_BINDF2_RESERVED_9: __MIDL_IBindStatusCallbackEx_0001 =
    8388608;
pub const __MIDL_IBindStatusCallbackEx_0001_BINDF2_RESERVED_8: __MIDL_IBindStatusCallbackEx_0001 =
    16777216;
pub const __MIDL_IBindStatusCallbackEx_0001_BINDF2_RESERVED_7: __MIDL_IBindStatusCallbackEx_0001 =
    33554432;
pub const __MIDL_IBindStatusCallbackEx_0001_BINDF2_RESERVED_6: __MIDL_IBindStatusCallbackEx_0001 =
    67108864;
pub const __MIDL_IBindStatusCallbackEx_0001_BINDF2_RESERVED_5: __MIDL_IBindStatusCallbackEx_0001 =
    134217728;
pub const __MIDL_IBindStatusCallbackEx_0001_BINDF2_RESERVED_4: __MIDL_IBindStatusCallbackEx_0001 =
    268435456;
pub const __MIDL_IBindStatusCallbackEx_0001_BINDF2_RESERVED_3: __MIDL_IBindStatusCallbackEx_0001 =
    536870912;
pub const __MIDL_IBindStatusCallbackEx_0001_BINDF2_RESERVED_2: __MIDL_IBindStatusCallbackEx_0001 =
    1073741824;
pub const __MIDL_IBindStatusCallbackEx_0001_BINDF2_RESERVED_1: __MIDL_IBindStatusCallbackEx_0001 =
    -2147483648;
pub type __MIDL_IBindStatusCallbackEx_0001 = ::std::os::raw::c_int;
pub use self::__MIDL_IBindStatusCallbackEx_0001 as BINDF2;
extern "C" {
    pub static IID_IBindStatusCallbackEx: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IBindStatusCallbackExVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IBindStatusCallbackEx,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IBindStatusCallbackEx) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IBindStatusCallbackEx) -> ULONG>,
    pub OnStartBinding: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IBindStatusCallbackEx,
            dwReserved: DWORD,
            pib: *mut IBinding,
        ) -> HRESULT,
    >,
    pub GetPriority: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IBindStatusCallbackEx, pnPriority: *mut LONG) -> HRESULT,
    >,
    pub OnLowResource: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IBindStatusCallbackEx, reserved: DWORD) -> HRESULT,
    >,
    pub OnProgress: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IBindStatusCallbackEx,
            ulProgress: ULONG,
            ulProgressMax: ULONG,
            ulStatusCode: ULONG,
            szStatusText: LPCWSTR,
        ) -> HRESULT,
    >,
    pub OnStopBinding: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IBindStatusCallbackEx,
            hresult: HRESULT,
            szError: LPCWSTR,
        ) -> HRESULT,
    >,
    pub GetBindInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IBindStatusCallbackEx,
            grfBINDF: *mut DWORD,
            pbindinfo: *mut BINDINFO,
        ) -> HRESULT,
    >,
    pub OnDataAvailable: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IBindStatusCallbackEx,
            grfBSCF: DWORD,
            dwSize: DWORD,
            pformatetc: *mut FORMATETC,
            pstgmed: *mut STGMEDIUM,
        ) -> HRESULT,
    >,
    pub OnObjectAvailable: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IBindStatusCallbackEx,
            riid: *const IID,
            punk: *mut IUnknown,
        ) -> HRESULT,
    >,
    pub GetBindInfoEx: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IBindStatusCallbackEx,
            grfBINDF: *mut DWORD,
            pbindinfo: *mut BINDINFO,
            grfBINDF2: *mut DWORD,
            pdwReserved: *mut DWORD,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IBindStatusCallbackExVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IBindStatusCallbackExVtbl>(),
        96usize,
        concat!("Size of: ", stringify!(IBindStatusCallbackExVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IBindStatusCallbackExVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IBindStatusCallbackExVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindStatusCallbackExVtbl>())).QueryInterface as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindStatusCallbackExVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindStatusCallbackExVtbl>())).AddRef as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindStatusCallbackExVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindStatusCallbackExVtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindStatusCallbackExVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindStatusCallbackExVtbl>())).OnStartBinding as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindStatusCallbackExVtbl),
            "::",
            stringify!(OnStartBinding)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindStatusCallbackExVtbl>())).GetPriority as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindStatusCallbackExVtbl),
            "::",
            stringify!(GetPriority)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindStatusCallbackExVtbl>())).OnLowResource as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindStatusCallbackExVtbl),
            "::",
            stringify!(OnLowResource)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindStatusCallbackExVtbl>())).OnProgress as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindStatusCallbackExVtbl),
            "::",
            stringify!(OnProgress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindStatusCallbackExVtbl>())).OnStopBinding as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindStatusCallbackExVtbl),
            "::",
            stringify!(OnStopBinding)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindStatusCallbackExVtbl>())).GetBindInfo as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindStatusCallbackExVtbl),
            "::",
            stringify!(GetBindInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindStatusCallbackExVtbl>())).OnDataAvailable as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindStatusCallbackExVtbl),
            "::",
            stringify!(OnDataAvailable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindStatusCallbackExVtbl>())).OnObjectAvailable as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindStatusCallbackExVtbl),
            "::",
            stringify!(OnObjectAvailable)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindStatusCallbackExVtbl>())).GetBindInfoEx as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindStatusCallbackExVtbl),
            "::",
            stringify!(GetBindInfoEx)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IBindStatusCallbackEx {
    pub lpVtbl: *mut IBindStatusCallbackExVtbl,
}
#[test]
fn bindgen_test_layout_IBindStatusCallbackEx() {
    assert_eq!(
        ::std::mem::size_of::<IBindStatusCallbackEx>(),
        8usize,
        concat!("Size of: ", stringify!(IBindStatusCallbackEx))
    );
    assert_eq!(
        ::std::mem::align_of::<IBindStatusCallbackEx>(),
        8usize,
        concat!("Alignment of ", stringify!(IBindStatusCallbackEx))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindStatusCallbackEx>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindStatusCallbackEx),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IBindStatusCallbackEx_RemoteGetBindInfoEx_Proxy(
        This: *mut IBindStatusCallbackEx,
        grfBINDF: *mut DWORD,
        pbindinfo: *mut RemBINDINFO,
        pstgmed: *mut RemSTGMEDIUM,
        grfBINDF2: *mut DWORD,
        pdwReserved: *mut DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn IBindStatusCallbackEx_RemoteGetBindInfoEx_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0006_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0006_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPAUTHENTICATION = *mut IAuthenticate;
extern "C" {
    pub static IID_IAuthenticate: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IAuthenticateVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IAuthenticate,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IAuthenticate) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IAuthenticate) -> ULONG>,
    pub Authenticate: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IAuthenticate,
            phwnd: *mut HWND,
            pszUsername: *mut LPWSTR,
            pszPassword: *mut LPWSTR,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IAuthenticateVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IAuthenticateVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IAuthenticateVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IAuthenticateVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IAuthenticateVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IAuthenticateVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IAuthenticateVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAuthenticateVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IAuthenticateVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAuthenticateVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IAuthenticateVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAuthenticateVtbl>())).Authenticate as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IAuthenticateVtbl),
            "::",
            stringify!(Authenticate)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IAuthenticate {
    pub lpVtbl: *mut IAuthenticateVtbl,
}
#[test]
fn bindgen_test_layout_IAuthenticate() {
    assert_eq!(
        ::std::mem::size_of::<IAuthenticate>(),
        8usize,
        concat!("Size of: ", stringify!(IAuthenticate))
    );
    assert_eq!(
        ::std::mem::align_of::<IAuthenticate>(),
        8usize,
        concat!("Alignment of ", stringify!(IAuthenticate))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAuthenticate>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IAuthenticate),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0007_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0007_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPAUTHENTICATIONEX = *mut IAuthenticateEx;
pub const __MIDL_IAuthenticateEx_0001_AUTHENTICATEF_PROXY: __MIDL_IAuthenticateEx_0001 = 1;
pub const __MIDL_IAuthenticateEx_0001_AUTHENTICATEF_BASIC: __MIDL_IAuthenticateEx_0001 = 2;
pub const __MIDL_IAuthenticateEx_0001_AUTHENTICATEF_HTTP: __MIDL_IAuthenticateEx_0001 = 4;
pub type __MIDL_IAuthenticateEx_0001 = ::std::os::raw::c_int;
pub use self::__MIDL_IAuthenticateEx_0001 as AUTHENTICATEF;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _tagAUTHENTICATEINFO {
    pub dwFlags: DWORD,
    pub dwReserved: DWORD,
}
#[test]
fn bindgen_test_layout__tagAUTHENTICATEINFO() {
    assert_eq!(
        ::std::mem::size_of::<_tagAUTHENTICATEINFO>(),
        8usize,
        concat!("Size of: ", stringify!(_tagAUTHENTICATEINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_tagAUTHENTICATEINFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_tagAUTHENTICATEINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagAUTHENTICATEINFO>())).dwFlags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagAUTHENTICATEINFO),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagAUTHENTICATEINFO>())).dwReserved as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagAUTHENTICATEINFO),
            "::",
            stringify!(dwReserved)
        )
    );
}
pub type AUTHENTICATEINFO = _tagAUTHENTICATEINFO;
extern "C" {
    pub static IID_IAuthenticateEx: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IAuthenticateExVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IAuthenticateEx,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IAuthenticateEx) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IAuthenticateEx) -> ULONG>,
    pub Authenticate: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IAuthenticateEx,
            phwnd: *mut HWND,
            pszUsername: *mut LPWSTR,
            pszPassword: *mut LPWSTR,
        ) -> HRESULT,
    >,
    pub AuthenticateEx: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IAuthenticateEx,
            phwnd: *mut HWND,
            pszUsername: *mut LPWSTR,
            pszPassword: *mut LPWSTR,
            pauthinfo: *mut AUTHENTICATEINFO,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IAuthenticateExVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IAuthenticateExVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IAuthenticateExVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IAuthenticateExVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IAuthenticateExVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IAuthenticateExVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IAuthenticateExVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAuthenticateExVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IAuthenticateExVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAuthenticateExVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IAuthenticateExVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IAuthenticateExVtbl>())).Authenticate as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IAuthenticateExVtbl),
            "::",
            stringify!(Authenticate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IAuthenticateExVtbl>())).AuthenticateEx as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IAuthenticateExVtbl),
            "::",
            stringify!(AuthenticateEx)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IAuthenticateEx {
    pub lpVtbl: *mut IAuthenticateExVtbl,
}
#[test]
fn bindgen_test_layout_IAuthenticateEx() {
    assert_eq!(
        ::std::mem::size_of::<IAuthenticateEx>(),
        8usize,
        concat!("Size of: ", stringify!(IAuthenticateEx))
    );
    assert_eq!(
        ::std::mem::align_of::<IAuthenticateEx>(),
        8usize,
        concat!("Alignment of ", stringify!(IAuthenticateEx))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IAuthenticateEx>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IAuthenticateEx),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0008_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0008_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPHTTPNEGOTIATE = *mut IHttpNegotiate;
extern "C" {
    pub static IID_IHttpNegotiate: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IHttpNegotiateVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IHttpNegotiate,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IHttpNegotiate) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IHttpNegotiate) -> ULONG>,
    pub BeginningTransaction: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IHttpNegotiate,
            szURL: LPCWSTR,
            szHeaders: LPCWSTR,
            dwReserved: DWORD,
            pszAdditionalHeaders: *mut LPWSTR,
        ) -> HRESULT,
    >,
    pub OnResponse: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IHttpNegotiate,
            dwResponseCode: DWORD,
            szResponseHeaders: LPCWSTR,
            szRequestHeaders: LPCWSTR,
            pszAdditionalRequestHeaders: *mut LPWSTR,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IHttpNegotiateVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IHttpNegotiateVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IHttpNegotiateVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IHttpNegotiateVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IHttpNegotiateVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IHttpNegotiateVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IHttpNegotiateVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IHttpNegotiateVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IHttpNegotiateVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IHttpNegotiateVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IHttpNegotiateVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IHttpNegotiateVtbl>())).BeginningTransaction as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IHttpNegotiateVtbl),
            "::",
            stringify!(BeginningTransaction)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IHttpNegotiateVtbl>())).OnResponse as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IHttpNegotiateVtbl),
            "::",
            stringify!(OnResponse)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IHttpNegotiate {
    pub lpVtbl: *mut IHttpNegotiateVtbl,
}
#[test]
fn bindgen_test_layout_IHttpNegotiate() {
    assert_eq!(
        ::std::mem::size_of::<IHttpNegotiate>(),
        8usize,
        concat!("Size of: ", stringify!(IHttpNegotiate))
    );
    assert_eq!(
        ::std::mem::align_of::<IHttpNegotiate>(),
        8usize,
        concat!("Alignment of ", stringify!(IHttpNegotiate))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IHttpNegotiate>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IHttpNegotiate),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0009_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0009_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPHTTPNEGOTIATE2 = *mut IHttpNegotiate2;
extern "C" {
    pub static IID_IHttpNegotiate2: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IHttpNegotiate2Vtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IHttpNegotiate2,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IHttpNegotiate2) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IHttpNegotiate2) -> ULONG>,
    pub BeginningTransaction: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IHttpNegotiate2,
            szURL: LPCWSTR,
            szHeaders: LPCWSTR,
            dwReserved: DWORD,
            pszAdditionalHeaders: *mut LPWSTR,
        ) -> HRESULT,
    >,
    pub OnResponse: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IHttpNegotiate2,
            dwResponseCode: DWORD,
            szResponseHeaders: LPCWSTR,
            szRequestHeaders: LPCWSTR,
            pszAdditionalRequestHeaders: *mut LPWSTR,
        ) -> HRESULT,
    >,
    pub GetRootSecurityId: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IHttpNegotiate2,
            pbSecurityId: *mut BYTE,
            pcbSecurityId: *mut DWORD,
            dwReserved: DWORD_PTR,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IHttpNegotiate2Vtbl() {
    assert_eq!(
        ::std::mem::size_of::<IHttpNegotiate2Vtbl>(),
        48usize,
        concat!("Size of: ", stringify!(IHttpNegotiate2Vtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IHttpNegotiate2Vtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IHttpNegotiate2Vtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IHttpNegotiate2Vtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IHttpNegotiate2Vtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IHttpNegotiate2Vtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IHttpNegotiate2Vtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IHttpNegotiate2Vtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IHttpNegotiate2Vtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IHttpNegotiate2Vtbl>())).BeginningTransaction as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IHttpNegotiate2Vtbl),
            "::",
            stringify!(BeginningTransaction)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IHttpNegotiate2Vtbl>())).OnResponse as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IHttpNegotiate2Vtbl),
            "::",
            stringify!(OnResponse)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IHttpNegotiate2Vtbl>())).GetRootSecurityId as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IHttpNegotiate2Vtbl),
            "::",
            stringify!(GetRootSecurityId)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IHttpNegotiate2 {
    pub lpVtbl: *mut IHttpNegotiate2Vtbl,
}
#[test]
fn bindgen_test_layout_IHttpNegotiate2() {
    assert_eq!(
        ::std::mem::size_of::<IHttpNegotiate2>(),
        8usize,
        concat!("Size of: ", stringify!(IHttpNegotiate2))
    );
    assert_eq!(
        ::std::mem::align_of::<IHttpNegotiate2>(),
        8usize,
        concat!("Alignment of ", stringify!(IHttpNegotiate2))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IHttpNegotiate2>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IHttpNegotiate2),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0010_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0010_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPHTTPNEGOTIATE3 = *mut IHttpNegotiate3;
extern "C" {
    pub static IID_IHttpNegotiate3: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IHttpNegotiate3Vtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IHttpNegotiate3,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IHttpNegotiate3) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IHttpNegotiate3) -> ULONG>,
    pub BeginningTransaction: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IHttpNegotiate3,
            szURL: LPCWSTR,
            szHeaders: LPCWSTR,
            dwReserved: DWORD,
            pszAdditionalHeaders: *mut LPWSTR,
        ) -> HRESULT,
    >,
    pub OnResponse: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IHttpNegotiate3,
            dwResponseCode: DWORD,
            szResponseHeaders: LPCWSTR,
            szRequestHeaders: LPCWSTR,
            pszAdditionalRequestHeaders: *mut LPWSTR,
        ) -> HRESULT,
    >,
    pub GetRootSecurityId: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IHttpNegotiate3,
            pbSecurityId: *mut BYTE,
            pcbSecurityId: *mut DWORD,
            dwReserved: DWORD_PTR,
        ) -> HRESULT,
    >,
    pub GetSerializedClientCertContext: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IHttpNegotiate3,
            ppbCert: *mut *mut BYTE,
            pcbCert: *mut DWORD,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IHttpNegotiate3Vtbl() {
    assert_eq!(
        ::std::mem::size_of::<IHttpNegotiate3Vtbl>(),
        56usize,
        concat!("Size of: ", stringify!(IHttpNegotiate3Vtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IHttpNegotiate3Vtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IHttpNegotiate3Vtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IHttpNegotiate3Vtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IHttpNegotiate3Vtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IHttpNegotiate3Vtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IHttpNegotiate3Vtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IHttpNegotiate3Vtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IHttpNegotiate3Vtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IHttpNegotiate3Vtbl>())).BeginningTransaction as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IHttpNegotiate3Vtbl),
            "::",
            stringify!(BeginningTransaction)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IHttpNegotiate3Vtbl>())).OnResponse as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IHttpNegotiate3Vtbl),
            "::",
            stringify!(OnResponse)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IHttpNegotiate3Vtbl>())).GetRootSecurityId as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IHttpNegotiate3Vtbl),
            "::",
            stringify!(GetRootSecurityId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IHttpNegotiate3Vtbl>())).GetSerializedClientCertContext
                as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IHttpNegotiate3Vtbl),
            "::",
            stringify!(GetSerializedClientCertContext)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IHttpNegotiate3 {
    pub lpVtbl: *mut IHttpNegotiate3Vtbl,
}
#[test]
fn bindgen_test_layout_IHttpNegotiate3() {
    assert_eq!(
        ::std::mem::size_of::<IHttpNegotiate3>(),
        8usize,
        concat!("Size of: ", stringify!(IHttpNegotiate3))
    );
    assert_eq!(
        ::std::mem::align_of::<IHttpNegotiate3>(),
        8usize,
        concat!("Alignment of ", stringify!(IHttpNegotiate3))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IHttpNegotiate3>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IHttpNegotiate3),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0011_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0011_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPWININETFILESTREAM = *mut IWinInetFileStream;
extern "C" {
    pub static IID_IWinInetFileStream: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IWinInetFileStreamVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IWinInetFileStream,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IWinInetFileStream) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IWinInetFileStream) -> ULONG>,
    pub SetHandleForUnlock: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IWinInetFileStream,
            hWinInetLockHandle: DWORD_PTR,
            dwReserved: DWORD_PTR,
        ) -> HRESULT,
    >,
    pub SetDeleteFile: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IWinInetFileStream, dwReserved: DWORD_PTR) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IWinInetFileStreamVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IWinInetFileStreamVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IWinInetFileStreamVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IWinInetFileStreamVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IWinInetFileStreamVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IWinInetFileStreamVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetFileStreamVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IWinInetFileStreamVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetFileStreamVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IWinInetFileStreamVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetFileStreamVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IWinInetFileStreamVtbl>())).SetHandleForUnlock as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetFileStreamVtbl),
            "::",
            stringify!(SetHandleForUnlock)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IWinInetFileStreamVtbl>())).SetDeleteFile as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetFileStreamVtbl),
            "::",
            stringify!(SetDeleteFile)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IWinInetFileStream {
    pub lpVtbl: *mut IWinInetFileStreamVtbl,
}
#[test]
fn bindgen_test_layout_IWinInetFileStream() {
    assert_eq!(
        ::std::mem::size_of::<IWinInetFileStream>(),
        8usize,
        concat!("Size of: ", stringify!(IWinInetFileStream))
    );
    assert_eq!(
        ::std::mem::align_of::<IWinInetFileStream>(),
        8usize,
        concat!("Alignment of ", stringify!(IWinInetFileStream))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IWinInetFileStream>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetFileStream),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0012_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0012_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPWINDOWFORBINDINGUI = *mut IWindowForBindingUI;
extern "C" {
    pub static IID_IWindowForBindingUI: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IWindowForBindingUIVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IWindowForBindingUI,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IWindowForBindingUI) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IWindowForBindingUI) -> ULONG>,
    pub GetWindow: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IWindowForBindingUI,
            rguidReason: *const GUID,
            phwnd: *mut HWND,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IWindowForBindingUIVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IWindowForBindingUIVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IWindowForBindingUIVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IWindowForBindingUIVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IWindowForBindingUIVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IWindowForBindingUIVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IWindowForBindingUIVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IWindowForBindingUIVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IWindowForBindingUIVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IWindowForBindingUIVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IWindowForBindingUIVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IWindowForBindingUIVtbl>())).GetWindow as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IWindowForBindingUIVtbl),
            "::",
            stringify!(GetWindow)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IWindowForBindingUI {
    pub lpVtbl: *mut IWindowForBindingUIVtbl,
}
#[test]
fn bindgen_test_layout_IWindowForBindingUI() {
    assert_eq!(
        ::std::mem::size_of::<IWindowForBindingUI>(),
        8usize,
        concat!("Size of: ", stringify!(IWindowForBindingUI))
    );
    assert_eq!(
        ::std::mem::align_of::<IWindowForBindingUI>(),
        8usize,
        concat!("Alignment of ", stringify!(IWindowForBindingUI))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IWindowForBindingUI>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IWindowForBindingUI),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0013_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0013_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPCODEINSTALL = *mut ICodeInstall;
pub const __MIDL_ICodeInstall_0001_CIP_DISK_FULL: __MIDL_ICodeInstall_0001 = 0;
pub const __MIDL_ICodeInstall_0001_CIP_ACCESS_DENIED: __MIDL_ICodeInstall_0001 = 1;
pub const __MIDL_ICodeInstall_0001_CIP_NEWER_VERSION_EXISTS: __MIDL_ICodeInstall_0001 = 2;
pub const __MIDL_ICodeInstall_0001_CIP_OLDER_VERSION_EXISTS: __MIDL_ICodeInstall_0001 = 3;
pub const __MIDL_ICodeInstall_0001_CIP_NAME_CONFLICT: __MIDL_ICodeInstall_0001 = 4;
pub const __MIDL_ICodeInstall_0001_CIP_TRUST_VERIFICATION_COMPONENT_MISSING:
    __MIDL_ICodeInstall_0001 = 5;
pub const __MIDL_ICodeInstall_0001_CIP_EXE_SELF_REGISTERATION_TIMEOUT: __MIDL_ICodeInstall_0001 = 6;
pub const __MIDL_ICodeInstall_0001_CIP_UNSAFE_TO_ABORT: __MIDL_ICodeInstall_0001 = 7;
pub const __MIDL_ICodeInstall_0001_CIP_NEED_REBOOT: __MIDL_ICodeInstall_0001 = 8;
pub const __MIDL_ICodeInstall_0001_CIP_NEED_REBOOT_UI_PERMISSION: __MIDL_ICodeInstall_0001 = 9;
pub type __MIDL_ICodeInstall_0001 = ::std::os::raw::c_int;
pub use self::__MIDL_ICodeInstall_0001 as CIP_STATUS;
extern "C" {
    pub static IID_ICodeInstall: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ICodeInstallVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICodeInstall,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut ICodeInstall) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut ICodeInstall) -> ULONG>,
    pub GetWindow: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICodeInstall,
            rguidReason: *const GUID,
            phwnd: *mut HWND,
        ) -> HRESULT,
    >,
    pub OnCodeInstallProblem: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICodeInstall,
            ulStatusCode: ULONG,
            szDestination: LPCWSTR,
            szSource: LPCWSTR,
            dwReserved: DWORD,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_ICodeInstallVtbl() {
    assert_eq!(
        ::std::mem::size_of::<ICodeInstallVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(ICodeInstallVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<ICodeInstallVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(ICodeInstallVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICodeInstallVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ICodeInstallVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICodeInstallVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ICodeInstallVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICodeInstallVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ICodeInstallVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICodeInstallVtbl>())).GetWindow as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ICodeInstallVtbl),
            "::",
            stringify!(GetWindow)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICodeInstallVtbl>())).OnCodeInstallProblem as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ICodeInstallVtbl),
            "::",
            stringify!(OnCodeInstallProblem)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ICodeInstall {
    pub lpVtbl: *mut ICodeInstallVtbl,
}
#[test]
fn bindgen_test_layout_ICodeInstall() {
    assert_eq!(
        ::std::mem::size_of::<ICodeInstall>(),
        8usize,
        concat!("Size of: ", stringify!(ICodeInstall))
    );
    assert_eq!(
        ::std::mem::align_of::<ICodeInstall>(),
        8usize,
        concat!("Alignment of ", stringify!(ICodeInstall))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICodeInstall>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ICodeInstall),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0014_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0014_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub const __MIDL_IUri_0001_Uri_PROPERTY_ABSOLUTE_URI: __MIDL_IUri_0001 = 0;
pub const __MIDL_IUri_0001_Uri_PROPERTY_STRING_START: __MIDL_IUri_0001 = 0;
pub const __MIDL_IUri_0001_Uri_PROPERTY_AUTHORITY: __MIDL_IUri_0001 = 1;
pub const __MIDL_IUri_0001_Uri_PROPERTY_DISPLAY_URI: __MIDL_IUri_0001 = 2;
pub const __MIDL_IUri_0001_Uri_PROPERTY_DOMAIN: __MIDL_IUri_0001 = 3;
pub const __MIDL_IUri_0001_Uri_PROPERTY_EXTENSION: __MIDL_IUri_0001 = 4;
pub const __MIDL_IUri_0001_Uri_PROPERTY_FRAGMENT: __MIDL_IUri_0001 = 5;
pub const __MIDL_IUri_0001_Uri_PROPERTY_HOST: __MIDL_IUri_0001 = 6;
pub const __MIDL_IUri_0001_Uri_PROPERTY_PASSWORD: __MIDL_IUri_0001 = 7;
pub const __MIDL_IUri_0001_Uri_PROPERTY_PATH: __MIDL_IUri_0001 = 8;
pub const __MIDL_IUri_0001_Uri_PROPERTY_PATH_AND_QUERY: __MIDL_IUri_0001 = 9;
pub const __MIDL_IUri_0001_Uri_PROPERTY_QUERY: __MIDL_IUri_0001 = 10;
pub const __MIDL_IUri_0001_Uri_PROPERTY_RAW_URI: __MIDL_IUri_0001 = 11;
pub const __MIDL_IUri_0001_Uri_PROPERTY_SCHEME_NAME: __MIDL_IUri_0001 = 12;
pub const __MIDL_IUri_0001_Uri_PROPERTY_USER_INFO: __MIDL_IUri_0001 = 13;
pub const __MIDL_IUri_0001_Uri_PROPERTY_USER_NAME: __MIDL_IUri_0001 = 14;
pub const __MIDL_IUri_0001_Uri_PROPERTY_STRING_LAST: __MIDL_IUri_0001 = 14;
pub const __MIDL_IUri_0001_Uri_PROPERTY_HOST_TYPE: __MIDL_IUri_0001 = 15;
pub const __MIDL_IUri_0001_Uri_PROPERTY_DWORD_START: __MIDL_IUri_0001 = 15;
pub const __MIDL_IUri_0001_Uri_PROPERTY_PORT: __MIDL_IUri_0001 = 16;
pub const __MIDL_IUri_0001_Uri_PROPERTY_SCHEME: __MIDL_IUri_0001 = 17;
pub const __MIDL_IUri_0001_Uri_PROPERTY_ZONE: __MIDL_IUri_0001 = 18;
pub const __MIDL_IUri_0001_Uri_PROPERTY_DWORD_LAST: __MIDL_IUri_0001 = 18;
pub type __MIDL_IUri_0001 = ::std::os::raw::c_int;
pub use self::__MIDL_IUri_0001 as Uri_PROPERTY;
pub const __MIDL_IUri_0002_Uri_HOST_UNKNOWN: __MIDL_IUri_0002 = 0;
pub const __MIDL_IUri_0002_Uri_HOST_DNS: __MIDL_IUri_0002 = 1;
pub const __MIDL_IUri_0002_Uri_HOST_IPV4: __MIDL_IUri_0002 = 2;
pub const __MIDL_IUri_0002_Uri_HOST_IPV6: __MIDL_IUri_0002 = 3;
pub const __MIDL_IUri_0002_Uri_HOST_IDN: __MIDL_IUri_0002 = 4;
pub type __MIDL_IUri_0002 = ::std::os::raw::c_int;
pub use self::__MIDL_IUri_0002 as Uri_HOST_TYPE;
extern "C" {
    pub static IID_IUri: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IUriVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IUri,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IUri) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IUri) -> ULONG>,
    pub GetPropertyBSTR: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IUri,
            uriProp: Uri_PROPERTY,
            pbstrProperty: *mut BSTR,
            dwFlags: DWORD,
        ) -> HRESULT,
    >,
    pub GetPropertyLength: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IUri,
            uriProp: Uri_PROPERTY,
            pcchProperty: *mut DWORD,
            dwFlags: DWORD,
        ) -> HRESULT,
    >,
    pub GetPropertyDWORD: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IUri,
            uriProp: Uri_PROPERTY,
            pdwProperty: *mut DWORD,
            dwFlags: DWORD,
        ) -> HRESULT,
    >,
    pub HasProperty: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IUri,
            uriProp: Uri_PROPERTY,
            pfHasProperty: *mut BOOL,
        ) -> HRESULT,
    >,
    pub GetAbsoluteUri: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUri, pbstrAbsoluteUri: *mut BSTR) -> HRESULT,
    >,
    pub GetAuthority: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUri, pbstrAuthority: *mut BSTR) -> HRESULT,
    >,
    pub GetDisplayUri: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUri, pbstrDisplayString: *mut BSTR) -> HRESULT,
    >,
    pub GetDomain: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUri, pbstrDomain: *mut BSTR) -> HRESULT,
    >,
    pub GetExtension: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUri, pbstrExtension: *mut BSTR) -> HRESULT,
    >,
    pub GetFragment: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUri, pbstrFragment: *mut BSTR) -> HRESULT,
    >,
    pub GetHost: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUri, pbstrHost: *mut BSTR) -> HRESULT,
    >,
    pub GetPassword: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUri, pbstrPassword: *mut BSTR) -> HRESULT,
    >,
    pub GetPath: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUri, pbstrPath: *mut BSTR) -> HRESULT,
    >,
    pub GetPathAndQuery: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUri, pbstrPathAndQuery: *mut BSTR) -> HRESULT,
    >,
    pub GetQuery: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUri, pbstrQuery: *mut BSTR) -> HRESULT,
    >,
    pub GetRawUri: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUri, pbstrRawUri: *mut BSTR) -> HRESULT,
    >,
    pub GetSchemeName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUri, pbstrSchemeName: *mut BSTR) -> HRESULT,
    >,
    pub GetUserInfo: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUri, pbstrUserInfo: *mut BSTR) -> HRESULT,
    >,
    pub GetUserNameA: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUri, pbstrUserName: *mut BSTR) -> HRESULT,
    >,
    pub GetHostType: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUri, pdwHostType: *mut DWORD) -> HRESULT,
    >,
    pub GetPort: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUri, pdwPort: *mut DWORD) -> HRESULT,
    >,
    pub GetScheme: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUri, pdwScheme: *mut DWORD) -> HRESULT,
    >,
    pub GetZone: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUri, pdwZone: *mut DWORD) -> HRESULT,
    >,
    pub GetProperties:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IUri, pdwFlags: LPDWORD) -> HRESULT>,
    pub IsEqual: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUri, pUri: *mut IUri, pfEqual: *mut BOOL) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IUriVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IUriVtbl>(),
        224usize,
        concat!("Size of: ", stringify!(IUriVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IUriVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IUriVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriVtbl>())).GetPropertyBSTR as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriVtbl),
            "::",
            stringify!(GetPropertyBSTR)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriVtbl>())).GetPropertyLength as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriVtbl),
            "::",
            stringify!(GetPropertyLength)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriVtbl>())).GetPropertyDWORD as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriVtbl),
            "::",
            stringify!(GetPropertyDWORD)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriVtbl>())).HasProperty as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriVtbl),
            "::",
            stringify!(HasProperty)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriVtbl>())).GetAbsoluteUri as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriVtbl),
            "::",
            stringify!(GetAbsoluteUri)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriVtbl>())).GetAuthority as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriVtbl),
            "::",
            stringify!(GetAuthority)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriVtbl>())).GetDisplayUri as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriVtbl),
            "::",
            stringify!(GetDisplayUri)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriVtbl>())).GetDomain as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriVtbl),
            "::",
            stringify!(GetDomain)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriVtbl>())).GetExtension as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriVtbl),
            "::",
            stringify!(GetExtension)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriVtbl>())).GetFragment as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriVtbl),
            "::",
            stringify!(GetFragment)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriVtbl>())).GetHost as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriVtbl),
            "::",
            stringify!(GetHost)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriVtbl>())).GetPassword as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriVtbl),
            "::",
            stringify!(GetPassword)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriVtbl>())).GetPath as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriVtbl),
            "::",
            stringify!(GetPath)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriVtbl>())).GetPathAndQuery as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriVtbl),
            "::",
            stringify!(GetPathAndQuery)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriVtbl>())).GetQuery as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriVtbl),
            "::",
            stringify!(GetQuery)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriVtbl>())).GetRawUri as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriVtbl),
            "::",
            stringify!(GetRawUri)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriVtbl>())).GetSchemeName as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriVtbl),
            "::",
            stringify!(GetSchemeName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriVtbl>())).GetUserInfo as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriVtbl),
            "::",
            stringify!(GetUserInfo)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriVtbl>())).GetUserNameA as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriVtbl),
            "::",
            stringify!(GetUserNameA)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriVtbl>())).GetHostType as *const _ as usize },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriVtbl),
            "::",
            stringify!(GetHostType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriVtbl>())).GetPort as *const _ as usize },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriVtbl),
            "::",
            stringify!(GetPort)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriVtbl>())).GetScheme as *const _ as usize },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriVtbl),
            "::",
            stringify!(GetScheme)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriVtbl>())).GetZone as *const _ as usize },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriVtbl),
            "::",
            stringify!(GetZone)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriVtbl>())).GetProperties as *const _ as usize },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriVtbl),
            "::",
            stringify!(GetProperties)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriVtbl>())).IsEqual as *const _ as usize },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriVtbl),
            "::",
            stringify!(IsEqual)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IUri {
    pub lpVtbl: *mut IUriVtbl,
}
#[test]
fn bindgen_test_layout_IUri() {
    assert_eq!(
        ::std::mem::size_of::<IUri>(),
        8usize,
        concat!("Size of: ", stringify!(IUri))
    );
    assert_eq!(
        ::std::mem::align_of::<IUri>(),
        8usize,
        concat!("Alignment of ", stringify!(IUri))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUri>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IUri),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn CreateUri(
        pwzURI: LPCWSTR,
        dwFlags: DWORD,
        dwReserved: DWORD_PTR,
        ppURI: *mut *mut IUri,
    ) -> HRESULT;
}
extern "C" {
    pub fn CreateUriWithFragment(
        pwzURI: LPCWSTR,
        pwzFragment: LPCWSTR,
        dwFlags: DWORD,
        dwReserved: DWORD_PTR,
        ppURI: *mut *mut IUri,
    ) -> HRESULT;
}
extern "C" {
    pub fn CreateUriFromMultiByteString(
        pszANSIInputUri: LPCSTR,
        dwEncodingFlags: DWORD,
        dwCodePage: DWORD,
        dwCreateFlags: DWORD,
        dwReserved: DWORD_PTR,
        ppUri: *mut *mut IUri,
    ) -> HRESULT;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0015_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0015_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IUriContainer: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IUriContainerVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IUriContainer,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IUriContainer) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IUriContainer) -> ULONG>,
    pub GetIUri: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUriContainer, ppIUri: *mut *mut IUri) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IUriContainerVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IUriContainerVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IUriContainerVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IUriContainerVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IUriContainerVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IUriContainerVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriContainerVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriContainerVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriContainerVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriContainerVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriContainerVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriContainerVtbl>())).GetIUri as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriContainerVtbl),
            "::",
            stringify!(GetIUri)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IUriContainer {
    pub lpVtbl: *mut IUriContainerVtbl,
}
#[test]
fn bindgen_test_layout_IUriContainer() {
    assert_eq!(
        ::std::mem::size_of::<IUriContainer>(),
        8usize,
        concat!("Size of: ", stringify!(IUriContainer))
    );
    assert_eq!(
        ::std::mem::align_of::<IUriContainer>(),
        8usize,
        concat!("Alignment of ", stringify!(IUriContainer))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriContainer>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriContainer),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IUriBuilder: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IUriBuilderVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IUriBuilder,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IUriBuilder) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IUriBuilder) -> ULONG>,
    pub CreateUriSimple: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IUriBuilder,
            dwAllowEncodingPropertyMask: DWORD,
            dwReserved: DWORD_PTR,
            ppIUri: *mut *mut IUri,
        ) -> HRESULT,
    >,
    pub CreateUri: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IUriBuilder,
            dwCreateFlags: DWORD,
            dwAllowEncodingPropertyMask: DWORD,
            dwReserved: DWORD_PTR,
            ppIUri: *mut *mut IUri,
        ) -> HRESULT,
    >,
    pub CreateUriWithFlags: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IUriBuilder,
            dwCreateFlags: DWORD,
            dwUriBuilderFlags: DWORD,
            dwAllowEncodingPropertyMask: DWORD,
            dwReserved: DWORD_PTR,
            ppIUri: *mut *mut IUri,
        ) -> HRESULT,
    >,
    pub GetIUri: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUriBuilder, ppIUri: *mut *mut IUri) -> HRESULT,
    >,
    pub SetIUri: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUriBuilder, pIUri: *mut IUri) -> HRESULT,
    >,
    pub GetFragment: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IUriBuilder,
            pcchFragment: *mut DWORD,
            ppwzFragment: *mut LPCWSTR,
        ) -> HRESULT,
    >,
    pub GetHost: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IUriBuilder,
            pcchHost: *mut DWORD,
            ppwzHost: *mut LPCWSTR,
        ) -> HRESULT,
    >,
    pub GetPassword: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IUriBuilder,
            pcchPassword: *mut DWORD,
            ppwzPassword: *mut LPCWSTR,
        ) -> HRESULT,
    >,
    pub GetPath: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IUriBuilder,
            pcchPath: *mut DWORD,
            ppwzPath: *mut LPCWSTR,
        ) -> HRESULT,
    >,
    pub GetPort: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IUriBuilder,
            pfHasPort: *mut BOOL,
            pdwPort: *mut DWORD,
        ) -> HRESULT,
    >,
    pub GetQuery: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IUriBuilder,
            pcchQuery: *mut DWORD,
            ppwzQuery: *mut LPCWSTR,
        ) -> HRESULT,
    >,
    pub GetSchemeName: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IUriBuilder,
            pcchSchemeName: *mut DWORD,
            ppwzSchemeName: *mut LPCWSTR,
        ) -> HRESULT,
    >,
    pub GetUserNameA: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IUriBuilder,
            pcchUserName: *mut DWORD,
            ppwzUserName: *mut LPCWSTR,
        ) -> HRESULT,
    >,
    pub SetFragment: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUriBuilder, pwzNewValue: LPCWSTR) -> HRESULT,
    >,
    pub SetHost: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUriBuilder, pwzNewValue: LPCWSTR) -> HRESULT,
    >,
    pub SetPassword: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUriBuilder, pwzNewValue: LPCWSTR) -> HRESULT,
    >,
    pub SetPath: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUriBuilder, pwzNewValue: LPCWSTR) -> HRESULT,
    >,
    pub SetPortA: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUriBuilder, fHasPort: BOOL, dwNewValue: DWORD) -> HRESULT,
    >,
    pub SetQuery: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUriBuilder, pwzNewValue: LPCWSTR) -> HRESULT,
    >,
    pub SetSchemeName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUriBuilder, pwzNewValue: LPCWSTR) -> HRESULT,
    >,
    pub SetUserName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUriBuilder, pwzNewValue: LPCWSTR) -> HRESULT,
    >,
    pub RemoveProperties: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUriBuilder, dwPropertyMask: DWORD) -> HRESULT,
    >,
    pub HasBeenModified: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IUriBuilder, pfModified: *mut BOOL) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IUriBuilderVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IUriBuilderVtbl>(),
        208usize,
        concat!("Size of: ", stringify!(IUriBuilderVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IUriBuilderVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IUriBuilderVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriBuilderVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilderVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriBuilderVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilderVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriBuilderVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilderVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriBuilderVtbl>())).CreateUriSimple as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilderVtbl),
            "::",
            stringify!(CreateUriSimple)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriBuilderVtbl>())).CreateUri as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilderVtbl),
            "::",
            stringify!(CreateUri)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IUriBuilderVtbl>())).CreateUriWithFlags as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilderVtbl),
            "::",
            stringify!(CreateUriWithFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriBuilderVtbl>())).GetIUri as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilderVtbl),
            "::",
            stringify!(GetIUri)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriBuilderVtbl>())).SetIUri as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilderVtbl),
            "::",
            stringify!(SetIUri)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriBuilderVtbl>())).GetFragment as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilderVtbl),
            "::",
            stringify!(GetFragment)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriBuilderVtbl>())).GetHost as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilderVtbl),
            "::",
            stringify!(GetHost)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriBuilderVtbl>())).GetPassword as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilderVtbl),
            "::",
            stringify!(GetPassword)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriBuilderVtbl>())).GetPath as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilderVtbl),
            "::",
            stringify!(GetPath)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriBuilderVtbl>())).GetPort as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilderVtbl),
            "::",
            stringify!(GetPort)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriBuilderVtbl>())).GetQuery as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilderVtbl),
            "::",
            stringify!(GetQuery)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriBuilderVtbl>())).GetSchemeName as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilderVtbl),
            "::",
            stringify!(GetSchemeName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriBuilderVtbl>())).GetUserNameA as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilderVtbl),
            "::",
            stringify!(GetUserNameA)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriBuilderVtbl>())).SetFragment as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilderVtbl),
            "::",
            stringify!(SetFragment)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriBuilderVtbl>())).SetHost as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilderVtbl),
            "::",
            stringify!(SetHost)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriBuilderVtbl>())).SetPassword as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilderVtbl),
            "::",
            stringify!(SetPassword)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriBuilderVtbl>())).SetPath as *const _ as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilderVtbl),
            "::",
            stringify!(SetPath)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriBuilderVtbl>())).SetPortA as *const _ as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilderVtbl),
            "::",
            stringify!(SetPortA)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriBuilderVtbl>())).SetQuery as *const _ as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilderVtbl),
            "::",
            stringify!(SetQuery)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriBuilderVtbl>())).SetSchemeName as *const _ as usize },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilderVtbl),
            "::",
            stringify!(SetSchemeName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriBuilderVtbl>())).SetUserName as *const _ as usize },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilderVtbl),
            "::",
            stringify!(SetUserName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IUriBuilderVtbl>())).RemoveProperties as *const _ as usize
        },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilderVtbl),
            "::",
            stringify!(RemoveProperties)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriBuilderVtbl>())).HasBeenModified as *const _ as usize },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilderVtbl),
            "::",
            stringify!(HasBeenModified)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IUriBuilder {
    pub lpVtbl: *mut IUriBuilderVtbl,
}
#[test]
fn bindgen_test_layout_IUriBuilder() {
    assert_eq!(
        ::std::mem::size_of::<IUriBuilder>(),
        8usize,
        concat!("Size of: ", stringify!(IUriBuilder))
    );
    assert_eq!(
        ::std::mem::align_of::<IUriBuilder>(),
        8usize,
        concat!("Alignment of ", stringify!(IUriBuilder))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriBuilder>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilder),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static IID_IUriBuilderFactory: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IUriBuilderFactoryVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IUriBuilderFactory,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IUriBuilderFactory) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IUriBuilderFactory) -> ULONG>,
    pub CreateIUriBuilder: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IUriBuilderFactory,
            dwFlags: DWORD,
            dwReserved: DWORD_PTR,
            ppIUriBuilder: *mut *mut IUriBuilder,
        ) -> HRESULT,
    >,
    pub CreateInitializedIUriBuilder: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IUriBuilderFactory,
            dwFlags: DWORD,
            dwReserved: DWORD_PTR,
            ppIUriBuilder: *mut *mut IUriBuilder,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IUriBuilderFactoryVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IUriBuilderFactoryVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IUriBuilderFactoryVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IUriBuilderFactoryVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IUriBuilderFactoryVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IUriBuilderFactoryVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilderFactoryVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriBuilderFactoryVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilderFactoryVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriBuilderFactoryVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilderFactoryVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IUriBuilderFactoryVtbl>())).CreateIUriBuilder as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilderFactoryVtbl),
            "::",
            stringify!(CreateIUriBuilder)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IUriBuilderFactoryVtbl>())).CreateInitializedIUriBuilder
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilderFactoryVtbl),
            "::",
            stringify!(CreateInitializedIUriBuilder)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IUriBuilderFactory {
    pub lpVtbl: *mut IUriBuilderFactoryVtbl,
}
#[test]
fn bindgen_test_layout_IUriBuilderFactory() {
    assert_eq!(
        ::std::mem::size_of::<IUriBuilderFactory>(),
        8usize,
        concat!("Size of: ", stringify!(IUriBuilderFactory))
    );
    assert_eq!(
        ::std::mem::align_of::<IUriBuilderFactory>(),
        8usize,
        concat!("Alignment of ", stringify!(IUriBuilderFactory))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IUriBuilderFactory>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IUriBuilderFactory),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn CreateIUriBuilder(
        pIUri: *mut IUri,
        dwFlags: DWORD,
        dwReserved: DWORD_PTR,
        ppIUriBuilder: *mut *mut IUriBuilder,
    ) -> HRESULT;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0018_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0018_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPWININETINFO = *mut IWinInetInfo;
extern "C" {
    pub static IID_IWinInetInfo: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IWinInetInfoVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IWinInetInfo,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IWinInetInfo) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IWinInetInfo) -> ULONG>,
    pub QueryOption: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IWinInetInfo,
            dwOption: DWORD,
            pBuffer: LPVOID,
            pcbBuf: *mut DWORD,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IWinInetInfoVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IWinInetInfoVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IWinInetInfoVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IWinInetInfoVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IWinInetInfoVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IWinInetInfoVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetInfoVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IWinInetInfoVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetInfoVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IWinInetInfoVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetInfoVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IWinInetInfoVtbl>())).QueryOption as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetInfoVtbl),
            "::",
            stringify!(QueryOption)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IWinInetInfo {
    pub lpVtbl: *mut IWinInetInfoVtbl,
}
#[test]
fn bindgen_test_layout_IWinInetInfo() {
    assert_eq!(
        ::std::mem::size_of::<IWinInetInfo>(),
        8usize,
        concat!("Size of: ", stringify!(IWinInetInfo))
    );
    assert_eq!(
        ::std::mem::align_of::<IWinInetInfo>(),
        8usize,
        concat!("Alignment of ", stringify!(IWinInetInfo))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IWinInetInfo>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetInfo),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IWinInetInfo_RemoteQueryOption_Proxy(
        This: *mut IWinInetInfo,
        dwOption: DWORD,
        pBuffer: *mut BYTE,
        pcbBuf: *mut DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn IWinInetInfo_RemoteQueryOption_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0019_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0019_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPHTTPSECURITY = *mut IHttpSecurity;
extern "C" {
    pub static IID_IHttpSecurity: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IHttpSecurityVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IHttpSecurity,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IHttpSecurity) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IHttpSecurity) -> ULONG>,
    pub GetWindow: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IHttpSecurity,
            rguidReason: *const GUID,
            phwnd: *mut HWND,
        ) -> HRESULT,
    >,
    pub OnSecurityProblem: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IHttpSecurity, dwProblem: DWORD) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IHttpSecurityVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IHttpSecurityVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IHttpSecurityVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IHttpSecurityVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IHttpSecurityVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IHttpSecurityVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IHttpSecurityVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IHttpSecurityVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IHttpSecurityVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IHttpSecurityVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IHttpSecurityVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IHttpSecurityVtbl>())).GetWindow as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IHttpSecurityVtbl),
            "::",
            stringify!(GetWindow)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IHttpSecurityVtbl>())).OnSecurityProblem as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IHttpSecurityVtbl),
            "::",
            stringify!(OnSecurityProblem)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IHttpSecurity {
    pub lpVtbl: *mut IHttpSecurityVtbl,
}
#[test]
fn bindgen_test_layout_IHttpSecurity() {
    assert_eq!(
        ::std::mem::size_of::<IHttpSecurity>(),
        8usize,
        concat!("Size of: ", stringify!(IHttpSecurity))
    );
    assert_eq!(
        ::std::mem::align_of::<IHttpSecurity>(),
        8usize,
        concat!("Alignment of ", stringify!(IHttpSecurity))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IHttpSecurity>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IHttpSecurity),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0020_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0020_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPWININETHTTPINFO = *mut IWinInetHttpInfo;
extern "C" {
    pub static IID_IWinInetHttpInfo: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IWinInetHttpInfoVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IWinInetHttpInfo,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IWinInetHttpInfo) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IWinInetHttpInfo) -> ULONG>,
    pub QueryOption: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IWinInetHttpInfo,
            dwOption: DWORD,
            pBuffer: LPVOID,
            pcbBuf: *mut DWORD,
        ) -> HRESULT,
    >,
    pub QueryInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IWinInetHttpInfo,
            dwOption: DWORD,
            pBuffer: LPVOID,
            pcbBuf: *mut DWORD,
            pdwFlags: *mut DWORD,
            pdwReserved: *mut DWORD,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IWinInetHttpInfoVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IWinInetHttpInfoVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IWinInetHttpInfoVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IWinInetHttpInfoVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IWinInetHttpInfoVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IWinInetHttpInfoVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetHttpInfoVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IWinInetHttpInfoVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetHttpInfoVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IWinInetHttpInfoVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetHttpInfoVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IWinInetHttpInfoVtbl>())).QueryOption as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetHttpInfoVtbl),
            "::",
            stringify!(QueryOption)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IWinInetHttpInfoVtbl>())).QueryInfo as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetHttpInfoVtbl),
            "::",
            stringify!(QueryInfo)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IWinInetHttpInfo {
    pub lpVtbl: *mut IWinInetHttpInfoVtbl,
}
#[test]
fn bindgen_test_layout_IWinInetHttpInfo() {
    assert_eq!(
        ::std::mem::size_of::<IWinInetHttpInfo>(),
        8usize,
        concat!("Size of: ", stringify!(IWinInetHttpInfo))
    );
    assert_eq!(
        ::std::mem::align_of::<IWinInetHttpInfo>(),
        8usize,
        concat!("Alignment of ", stringify!(IWinInetHttpInfo))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IWinInetHttpInfo>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetHttpInfo),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IWinInetHttpInfo_RemoteQueryInfo_Proxy(
        This: *mut IWinInetHttpInfo,
        dwOption: DWORD,
        pBuffer: *mut BYTE,
        pcbBuf: *mut DWORD,
        pdwFlags: *mut DWORD,
        pdwReserved: *mut DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn IWinInetHttpInfo_RemoteQueryInfo_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0021_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0021_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IWinInetHttpTimeouts: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IWinInetHttpTimeoutsVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IWinInetHttpTimeouts,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IWinInetHttpTimeouts) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IWinInetHttpTimeouts) -> ULONG>,
    pub GetRequestTimeouts: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IWinInetHttpTimeouts,
            pdwConnectTimeout: *mut DWORD,
            pdwSendTimeout: *mut DWORD,
            pdwReceiveTimeout: *mut DWORD,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IWinInetHttpTimeoutsVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IWinInetHttpTimeoutsVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IWinInetHttpTimeoutsVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IWinInetHttpTimeoutsVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IWinInetHttpTimeoutsVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IWinInetHttpTimeoutsVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetHttpTimeoutsVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IWinInetHttpTimeoutsVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetHttpTimeoutsVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IWinInetHttpTimeoutsVtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetHttpTimeoutsVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IWinInetHttpTimeoutsVtbl>())).GetRequestTimeouts as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetHttpTimeoutsVtbl),
            "::",
            stringify!(GetRequestTimeouts)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IWinInetHttpTimeouts {
    pub lpVtbl: *mut IWinInetHttpTimeoutsVtbl,
}
#[test]
fn bindgen_test_layout_IWinInetHttpTimeouts() {
    assert_eq!(
        ::std::mem::size_of::<IWinInetHttpTimeouts>(),
        8usize,
        concat!("Size of: ", stringify!(IWinInetHttpTimeouts))
    );
    assert_eq!(
        ::std::mem::align_of::<IWinInetHttpTimeouts>(),
        8usize,
        concat!("Alignment of ", stringify!(IWinInetHttpTimeouts))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IWinInetHttpTimeouts>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetHttpTimeouts),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0022_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0022_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPWININETCACHEHINTS = *mut IWinInetCacheHints;
extern "C" {
    pub static IID_IWinInetCacheHints: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IWinInetCacheHintsVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IWinInetCacheHints,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IWinInetCacheHints) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IWinInetCacheHints) -> ULONG>,
    pub SetCacheExtension: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IWinInetCacheHints,
            pwzExt: LPCWSTR,
            pszCacheFile: LPVOID,
            pcbCacheFile: *mut DWORD,
            pdwWinInetError: *mut DWORD,
            pdwReserved: *mut DWORD,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IWinInetCacheHintsVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IWinInetCacheHintsVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IWinInetCacheHintsVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IWinInetCacheHintsVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IWinInetCacheHintsVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IWinInetCacheHintsVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetCacheHintsVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IWinInetCacheHintsVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetCacheHintsVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IWinInetCacheHintsVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetCacheHintsVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IWinInetCacheHintsVtbl>())).SetCacheExtension as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetCacheHintsVtbl),
            "::",
            stringify!(SetCacheExtension)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IWinInetCacheHints {
    pub lpVtbl: *mut IWinInetCacheHintsVtbl,
}
#[test]
fn bindgen_test_layout_IWinInetCacheHints() {
    assert_eq!(
        ::std::mem::size_of::<IWinInetCacheHints>(),
        8usize,
        concat!("Size of: ", stringify!(IWinInetCacheHints))
    );
    assert_eq!(
        ::std::mem::align_of::<IWinInetCacheHints>(),
        8usize,
        concat!("Alignment of ", stringify!(IWinInetCacheHints))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IWinInetCacheHints>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetCacheHints),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0023_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0023_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPWININETCACHEHINTS2 = *mut IWinInetCacheHints2;
extern "C" {
    pub static IID_IWinInetCacheHints2: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IWinInetCacheHints2Vtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IWinInetCacheHints2,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IWinInetCacheHints2) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IWinInetCacheHints2) -> ULONG>,
    pub SetCacheExtension: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IWinInetCacheHints2,
            pwzExt: LPCWSTR,
            pszCacheFile: LPVOID,
            pcbCacheFile: *mut DWORD,
            pdwWinInetError: *mut DWORD,
            pdwReserved: *mut DWORD,
        ) -> HRESULT,
    >,
    pub SetCacheExtension2: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IWinInetCacheHints2,
            pwzExt: LPCWSTR,
            pwzCacheFile: *mut WCHAR,
            pcchCacheFile: *mut DWORD,
            pdwWinInetError: *mut DWORD,
            pdwReserved: *mut DWORD,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IWinInetCacheHints2Vtbl() {
    assert_eq!(
        ::std::mem::size_of::<IWinInetCacheHints2Vtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IWinInetCacheHints2Vtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IWinInetCacheHints2Vtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IWinInetCacheHints2Vtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IWinInetCacheHints2Vtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetCacheHints2Vtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IWinInetCacheHints2Vtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetCacheHints2Vtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IWinInetCacheHints2Vtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetCacheHints2Vtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IWinInetCacheHints2Vtbl>())).SetCacheExtension as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetCacheHints2Vtbl),
            "::",
            stringify!(SetCacheExtension)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IWinInetCacheHints2Vtbl>())).SetCacheExtension2 as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetCacheHints2Vtbl),
            "::",
            stringify!(SetCacheExtension2)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IWinInetCacheHints2 {
    pub lpVtbl: *mut IWinInetCacheHints2Vtbl,
}
#[test]
fn bindgen_test_layout_IWinInetCacheHints2() {
    assert_eq!(
        ::std::mem::size_of::<IWinInetCacheHints2>(),
        8usize,
        concat!("Size of: ", stringify!(IWinInetCacheHints2))
    );
    assert_eq!(
        ::std::mem::align_of::<IWinInetCacheHints2>(),
        8usize,
        concat!("Alignment of ", stringify!(IWinInetCacheHints2))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IWinInetCacheHints2>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IWinInetCacheHints2),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static SID_BindHost: GUID;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0024_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0024_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPBINDHOST = *mut IBindHost;
extern "C" {
    pub static IID_IBindHost: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IBindHostVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IBindHost,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IBindHost) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IBindHost) -> ULONG>,
    pub CreateMoniker: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IBindHost,
            szName: LPOLESTR,
            pBC: *mut IBindCtx,
            ppmk: *mut *mut IMoniker,
            dwReserved: DWORD,
        ) -> HRESULT,
    >,
    pub MonikerBindToStorage: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IBindHost,
            pMk: *mut IMoniker,
            pBC: *mut IBindCtx,
            pBSC: *mut IBindStatusCallback,
            riid: *const IID,
            ppvObj: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub MonikerBindToObject: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IBindHost,
            pMk: *mut IMoniker,
            pBC: *mut IBindCtx,
            pBSC: *mut IBindStatusCallback,
            riid: *const IID,
            ppvObj: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IBindHostVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IBindHostVtbl>(),
        48usize,
        concat!("Size of: ", stringify!(IBindHostVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IBindHostVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IBindHostVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindHostVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindHostVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindHostVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindHostVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindHostVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindHostVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindHostVtbl>())).CreateMoniker as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindHostVtbl),
            "::",
            stringify!(CreateMoniker)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindHostVtbl>())).MonikerBindToStorage as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindHostVtbl),
            "::",
            stringify!(MonikerBindToStorage)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindHostVtbl>())).MonikerBindToObject as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindHostVtbl),
            "::",
            stringify!(MonikerBindToObject)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IBindHost {
    pub lpVtbl: *mut IBindHostVtbl,
}
#[test]
fn bindgen_test_layout_IBindHost() {
    assert_eq!(
        ::std::mem::size_of::<IBindHost>(),
        8usize,
        concat!("Size of: ", stringify!(IBindHost))
    );
    assert_eq!(
        ::std::mem::align_of::<IBindHost>(),
        8usize,
        concat!("Alignment of ", stringify!(IBindHost))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindHost>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindHost),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IBindHost_RemoteMonikerBindToStorage_Proxy(
        This: *mut IBindHost,
        pMk: *mut IMoniker,
        pBC: *mut IBindCtx,
        pBSC: *mut IBindStatusCallback,
        riid: *const IID,
        ppvObj: *mut *mut IUnknown,
    ) -> HRESULT;
}
extern "C" {
    pub fn IBindHost_RemoteMonikerBindToStorage_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn IBindHost_RemoteMonikerBindToObject_Proxy(
        This: *mut IBindHost,
        pMk: *mut IMoniker,
        pBC: *mut IBindCtx,
        pBSC: *mut IBindStatusCallback,
        riid: *const IID,
        ppvObj: *mut *mut IUnknown,
    ) -> HRESULT;
}
extern "C" {
    pub fn IBindHost_RemoteMonikerBindToObject_Stub(
        This: *mut IRpcStubBuffer,
        _pRpcChannelBuffer: *mut IRpcChannelBuffer,
        _pRpcMessage: PRPC_MESSAGE,
        _pdwStubPhase: *mut DWORD,
    );
}
extern "C" {
    pub fn HlinkSimpleNavigateToString(
        szTarget: LPCWSTR,
        szLocation: LPCWSTR,
        szTargetFrameName: LPCWSTR,
        pUnk: *mut IUnknown,
        pbc: *mut IBindCtx,
        arg1: *mut IBindStatusCallback,
        grfHLNF: DWORD,
        dwReserved: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn HlinkSimpleNavigateToMoniker(
        pmkTarget: *mut IMoniker,
        szLocation: LPCWSTR,
        szTargetFrameName: LPCWSTR,
        pUnk: *mut IUnknown,
        pbc: *mut IBindCtx,
        arg1: *mut IBindStatusCallback,
        grfHLNF: DWORD,
        dwReserved: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn URLOpenStreamA(
        arg1: LPUNKNOWN,
        arg2: LPCSTR,
        arg3: DWORD,
        arg4: LPBINDSTATUSCALLBACK,
    ) -> HRESULT;
}
extern "C" {
    pub fn URLOpenStreamW(
        arg1: LPUNKNOWN,
        arg2: LPCWSTR,
        arg3: DWORD,
        arg4: LPBINDSTATUSCALLBACK,
    ) -> HRESULT;
}
extern "C" {
    pub fn URLOpenPullStreamA(
        arg1: LPUNKNOWN,
        arg2: LPCSTR,
        arg3: DWORD,
        arg4: LPBINDSTATUSCALLBACK,
    ) -> HRESULT;
}
extern "C" {
    pub fn URLOpenPullStreamW(
        arg1: LPUNKNOWN,
        arg2: LPCWSTR,
        arg3: DWORD,
        arg4: LPBINDSTATUSCALLBACK,
    ) -> HRESULT;
}
extern "C" {
    pub fn URLDownloadToFileA(
        arg1: LPUNKNOWN,
        arg2: LPCSTR,
        arg3: LPCSTR,
        arg4: DWORD,
        arg5: LPBINDSTATUSCALLBACK,
    ) -> HRESULT;
}
extern "C" {
    pub fn URLDownloadToFileW(
        arg1: LPUNKNOWN,
        arg2: LPCWSTR,
        arg3: LPCWSTR,
        arg4: DWORD,
        arg5: LPBINDSTATUSCALLBACK,
    ) -> HRESULT;
}
extern "C" {
    pub fn URLDownloadToCacheFileA(
        arg1: LPUNKNOWN,
        arg2: LPCSTR,
        arg3: LPSTR,
        cchFileName: DWORD,
        arg4: DWORD,
        arg5: LPBINDSTATUSCALLBACK,
    ) -> HRESULT;
}
extern "C" {
    pub fn URLDownloadToCacheFileW(
        arg1: LPUNKNOWN,
        arg2: LPCWSTR,
        arg3: LPWSTR,
        cchFileName: DWORD,
        arg4: DWORD,
        arg5: LPBINDSTATUSCALLBACK,
    ) -> HRESULT;
}
extern "C" {
    pub fn URLOpenBlockingStreamA(
        arg1: LPUNKNOWN,
        arg2: LPCSTR,
        arg3: *mut LPSTREAM,
        arg4: DWORD,
        arg5: LPBINDSTATUSCALLBACK,
    ) -> HRESULT;
}
extern "C" {
    pub fn URLOpenBlockingStreamW(
        arg1: LPUNKNOWN,
        arg2: LPCWSTR,
        arg3: *mut LPSTREAM,
        arg4: DWORD,
        arg5: LPBINDSTATUSCALLBACK,
    ) -> HRESULT;
}
extern "C" {
    pub fn HlinkGoBack(pUnk: *mut IUnknown) -> HRESULT;
}
extern "C" {
    pub fn HlinkGoForward(pUnk: *mut IUnknown) -> HRESULT;
}
extern "C" {
    pub fn HlinkNavigateString(pUnk: *mut IUnknown, szTarget: LPCWSTR) -> HRESULT;
}
extern "C" {
    pub fn HlinkNavigateMoniker(pUnk: *mut IUnknown, pmkTarget: *mut IMoniker) -> HRESULT;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0025_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0025_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPIINTERNET = *mut IInternet;
extern "C" {
    pub static IID_IInternet: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternet,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IInternet) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IInternet) -> ULONG>,
}
#[test]
fn bindgen_test_layout_IInternetVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IInternetVtbl>(),
        24usize,
        concat!("Size of: ", stringify!(IInternetVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetVtbl),
            "::",
            stringify!(Release)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternet {
    pub lpVtbl: *mut IInternetVtbl,
}
#[test]
fn bindgen_test_layout_IInternet() {
    assert_eq!(
        ::std::mem::size_of::<IInternet>(),
        8usize,
        concat!("Size of: ", stringify!(IInternet))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternet>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternet))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternet>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternet),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0026_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0026_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPIINTERNETBINDINFO = *mut IInternetBindInfo;
pub const tagBINDSTRING_BINDSTRING_HEADERS: tagBINDSTRING = 1;
pub const tagBINDSTRING_BINDSTRING_ACCEPT_MIMES: tagBINDSTRING = 2;
pub const tagBINDSTRING_BINDSTRING_EXTRA_URL: tagBINDSTRING = 3;
pub const tagBINDSTRING_BINDSTRING_LANGUAGE: tagBINDSTRING = 4;
pub const tagBINDSTRING_BINDSTRING_USERNAME: tagBINDSTRING = 5;
pub const tagBINDSTRING_BINDSTRING_PASSWORD: tagBINDSTRING = 6;
pub const tagBINDSTRING_BINDSTRING_UA_PIXELS: tagBINDSTRING = 7;
pub const tagBINDSTRING_BINDSTRING_UA_COLOR: tagBINDSTRING = 8;
pub const tagBINDSTRING_BINDSTRING_OS: tagBINDSTRING = 9;
pub const tagBINDSTRING_BINDSTRING_USER_AGENT: tagBINDSTRING = 10;
pub const tagBINDSTRING_BINDSTRING_ACCEPT_ENCODINGS: tagBINDSTRING = 11;
pub const tagBINDSTRING_BINDSTRING_POST_COOKIE: tagBINDSTRING = 12;
pub const tagBINDSTRING_BINDSTRING_POST_DATA_MIME: tagBINDSTRING = 13;
pub const tagBINDSTRING_BINDSTRING_URL: tagBINDSTRING = 14;
pub const tagBINDSTRING_BINDSTRING_IID: tagBINDSTRING = 15;
pub const tagBINDSTRING_BINDSTRING_FLAG_BIND_TO_OBJECT: tagBINDSTRING = 16;
pub const tagBINDSTRING_BINDSTRING_PTR_BIND_CONTEXT: tagBINDSTRING = 17;
pub const tagBINDSTRING_BINDSTRING_XDR_ORIGIN: tagBINDSTRING = 18;
pub const tagBINDSTRING_BINDSTRING_DOWNLOADPATH: tagBINDSTRING = 19;
pub const tagBINDSTRING_BINDSTRING_ROOTDOC_URL: tagBINDSTRING = 20;
pub const tagBINDSTRING_BINDSTRING_INITIAL_FILENAME: tagBINDSTRING = 21;
pub const tagBINDSTRING_BINDSTRING_PROXY_USERNAME: tagBINDSTRING = 22;
pub const tagBINDSTRING_BINDSTRING_PROXY_PASSWORD: tagBINDSTRING = 23;
pub const tagBINDSTRING_BINDSTRING_ENTERPRISE_ID: tagBINDSTRING = 24;
pub const tagBINDSTRING_BINDSTRING_DOC_URL: tagBINDSTRING = 25;
pub const tagBINDSTRING_BINDSTRING_SAMESITE_COOKIE_LEVEL: tagBINDSTRING = 26;
pub type tagBINDSTRING = ::std::os::raw::c_int;
pub use self::tagBINDSTRING as BINDSTRING;
extern "C" {
    pub static IID_IInternetBindInfo: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetBindInfoVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetBindInfo,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetBindInfo) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetBindInfo) -> ULONG>,
    pub GetBindInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetBindInfo,
            grfBINDF: *mut DWORD,
            pbindinfo: *mut BINDINFO,
        ) -> HRESULT,
    >,
    pub GetBindString: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetBindInfo,
            ulStringType: ULONG,
            ppwzStr: *mut LPOLESTR,
            cEl: ULONG,
            pcElFetched: *mut ULONG,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IInternetBindInfoVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IInternetBindInfoVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IInternetBindInfoVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetBindInfoVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetBindInfoVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetBindInfoVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetBindInfoVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetBindInfoVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetBindInfoVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetBindInfoVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetBindInfoVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetBindInfoVtbl>())).GetBindInfo as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetBindInfoVtbl),
            "::",
            stringify!(GetBindInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetBindInfoVtbl>())).GetBindString as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetBindInfoVtbl),
            "::",
            stringify!(GetBindString)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetBindInfo {
    pub lpVtbl: *mut IInternetBindInfoVtbl,
}
#[test]
fn bindgen_test_layout_IInternetBindInfo() {
    assert_eq!(
        ::std::mem::size_of::<IInternetBindInfo>(),
        8usize,
        concat!("Size of: ", stringify!(IInternetBindInfo))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetBindInfo>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetBindInfo))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetBindInfo>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetBindInfo),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0027_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0027_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPIINTERNETBINDINFOEX = *mut IInternetBindInfoEx;
extern "C" {
    pub static IID_IInternetBindInfoEx: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetBindInfoExVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetBindInfoEx,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetBindInfoEx) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetBindInfoEx) -> ULONG>,
    pub GetBindInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetBindInfoEx,
            grfBINDF: *mut DWORD,
            pbindinfo: *mut BINDINFO,
        ) -> HRESULT,
    >,
    pub GetBindString: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetBindInfoEx,
            ulStringType: ULONG,
            ppwzStr: *mut LPOLESTR,
            cEl: ULONG,
            pcElFetched: *mut ULONG,
        ) -> HRESULT,
    >,
    pub GetBindInfoEx: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetBindInfoEx,
            grfBINDF: *mut DWORD,
            pbindinfo: *mut BINDINFO,
            grfBINDF2: *mut DWORD,
            pdwReserved: *mut DWORD,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IInternetBindInfoExVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IInternetBindInfoExVtbl>(),
        48usize,
        concat!("Size of: ", stringify!(IInternetBindInfoExVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetBindInfoExVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetBindInfoExVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetBindInfoExVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetBindInfoExVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetBindInfoExVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetBindInfoExVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetBindInfoExVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetBindInfoExVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetBindInfoExVtbl>())).GetBindInfo as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetBindInfoExVtbl),
            "::",
            stringify!(GetBindInfo)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetBindInfoExVtbl>())).GetBindString as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetBindInfoExVtbl),
            "::",
            stringify!(GetBindString)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetBindInfoExVtbl>())).GetBindInfoEx as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetBindInfoExVtbl),
            "::",
            stringify!(GetBindInfoEx)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetBindInfoEx {
    pub lpVtbl: *mut IInternetBindInfoExVtbl,
}
#[test]
fn bindgen_test_layout_IInternetBindInfoEx() {
    assert_eq!(
        ::std::mem::size_of::<IInternetBindInfoEx>(),
        8usize,
        concat!("Size of: ", stringify!(IInternetBindInfoEx))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetBindInfoEx>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetBindInfoEx))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetBindInfoEx>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetBindInfoEx),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0028_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0028_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPIINTERNETPROTOCOLROOT = *mut IInternetProtocolRoot;
pub const _tagPI_FLAGS_PI_PARSE_URL: _tagPI_FLAGS = 1;
pub const _tagPI_FLAGS_PI_FILTER_MODE: _tagPI_FLAGS = 2;
pub const _tagPI_FLAGS_PI_FORCE_ASYNC: _tagPI_FLAGS = 4;
pub const _tagPI_FLAGS_PI_USE_WORKERTHREAD: _tagPI_FLAGS = 8;
pub const _tagPI_FLAGS_PI_MIMEVERIFICATION: _tagPI_FLAGS = 16;
pub const _tagPI_FLAGS_PI_CLSIDLOOKUP: _tagPI_FLAGS = 32;
pub const _tagPI_FLAGS_PI_DATAPROGRESS: _tagPI_FLAGS = 64;
pub const _tagPI_FLAGS_PI_SYNCHRONOUS: _tagPI_FLAGS = 128;
pub const _tagPI_FLAGS_PI_APARTMENTTHREADED: _tagPI_FLAGS = 256;
pub const _tagPI_FLAGS_PI_CLASSINSTALL: _tagPI_FLAGS = 512;
pub const _tagPI_FLAGS_PI_PASSONBINDCTX: _tagPI_FLAGS = 8192;
pub const _tagPI_FLAGS_PI_NOMIMEHANDLER: _tagPI_FLAGS = 32768;
pub const _tagPI_FLAGS_PI_LOADAPPDIRECT: _tagPI_FLAGS = 16384;
pub const _tagPI_FLAGS_PD_FORCE_SWITCH: _tagPI_FLAGS = 65536;
pub const _tagPI_FLAGS_PI_PREFERDEFAULTHANDLER: _tagPI_FLAGS = 131072;
pub type _tagPI_FLAGS = ::std::os::raw::c_int;
pub use self::_tagPI_FLAGS as PI_FLAGS;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _tagPROTOCOLDATA {
    pub grfFlags: DWORD,
    pub dwState: DWORD,
    pub pData: LPVOID,
    pub cbData: ULONG,
}
#[test]
fn bindgen_test_layout__tagPROTOCOLDATA() {
    assert_eq!(
        ::std::mem::size_of::<_tagPROTOCOLDATA>(),
        24usize,
        concat!("Size of: ", stringify!(_tagPROTOCOLDATA))
    );
    assert_eq!(
        ::std::mem::align_of::<_tagPROTOCOLDATA>(),
        8usize,
        concat!("Alignment of ", stringify!(_tagPROTOCOLDATA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagPROTOCOLDATA>())).grfFlags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagPROTOCOLDATA),
            "::",
            stringify!(grfFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagPROTOCOLDATA>())).dwState as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagPROTOCOLDATA),
            "::",
            stringify!(dwState)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagPROTOCOLDATA>())).pData as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagPROTOCOLDATA),
            "::",
            stringify!(pData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagPROTOCOLDATA>())).cbData as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagPROTOCOLDATA),
            "::",
            stringify!(cbData)
        )
    );
}
pub type PROTOCOLDATA = _tagPROTOCOLDATA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _tagStartParam {
    pub iid: IID,
    pub pIBindCtx: *mut IBindCtx,
    pub pItf: *mut IUnknown,
}
#[test]
fn bindgen_test_layout__tagStartParam() {
    assert_eq!(
        ::std::mem::size_of::<_tagStartParam>(),
        32usize,
        concat!("Size of: ", stringify!(_tagStartParam))
    );
    assert_eq!(
        ::std::mem::align_of::<_tagStartParam>(),
        8usize,
        concat!("Alignment of ", stringify!(_tagStartParam))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagStartParam>())).iid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagStartParam),
            "::",
            stringify!(iid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagStartParam>())).pIBindCtx as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagStartParam),
            "::",
            stringify!(pIBindCtx)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagStartParam>())).pItf as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagStartParam),
            "::",
            stringify!(pItf)
        )
    );
}
pub type StartParam = _tagStartParam;
extern "C" {
    pub static IID_IInternetProtocolRoot: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetProtocolRootVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetProtocolRoot,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetProtocolRoot) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetProtocolRoot) -> ULONG>,
    pub Start: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetProtocolRoot,
            szUrl: LPCWSTR,
            pOIProtSink: *mut IInternetProtocolSink,
            pOIBindInfo: *mut IInternetBindInfo,
            grfPI: DWORD,
            dwReserved: HANDLE_PTR,
        ) -> HRESULT,
    >,
    pub Continue: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetProtocolRoot,
            pProtocolData: *mut PROTOCOLDATA,
        ) -> HRESULT,
    >,
    pub Abort: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetProtocolRoot,
            hrReason: HRESULT,
            dwOptions: DWORD,
        ) -> HRESULT,
    >,
    pub Terminate: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IInternetProtocolRoot, dwOptions: DWORD) -> HRESULT,
    >,
    pub Suspend:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetProtocolRoot) -> HRESULT>,
    pub Resume:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetProtocolRoot) -> HRESULT>,
}
#[test]
fn bindgen_test_layout_IInternetProtocolRootVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IInternetProtocolRootVtbl>(),
        72usize,
        concat!("Size of: ", stringify!(IInternetProtocolRootVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetProtocolRootVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetProtocolRootVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolRootVtbl>())).QueryInterface as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolRootVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolRootVtbl>())).AddRef as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolRootVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolRootVtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolRootVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetProtocolRootVtbl>())).Start as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolRootVtbl),
            "::",
            stringify!(Start)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolRootVtbl>())).Continue as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolRootVtbl),
            "::",
            stringify!(Continue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetProtocolRootVtbl>())).Abort as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolRootVtbl),
            "::",
            stringify!(Abort)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolRootVtbl>())).Terminate as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolRootVtbl),
            "::",
            stringify!(Terminate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolRootVtbl>())).Suspend as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolRootVtbl),
            "::",
            stringify!(Suspend)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolRootVtbl>())).Resume as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolRootVtbl),
            "::",
            stringify!(Resume)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetProtocolRoot {
    pub lpVtbl: *mut IInternetProtocolRootVtbl,
}
#[test]
fn bindgen_test_layout_IInternetProtocolRoot() {
    assert_eq!(
        ::std::mem::size_of::<IInternetProtocolRoot>(),
        8usize,
        concat!("Size of: ", stringify!(IInternetProtocolRoot))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetProtocolRoot>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetProtocolRoot))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetProtocolRoot>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolRoot),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0029_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0029_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPIINTERNETPROTOCOL = *mut IInternetProtocol;
extern "C" {
    pub static IID_IInternetProtocol: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetProtocolVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetProtocol,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetProtocol) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetProtocol) -> ULONG>,
    pub Start: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetProtocol,
            szUrl: LPCWSTR,
            pOIProtSink: *mut IInternetProtocolSink,
            pOIBindInfo: *mut IInternetBindInfo,
            grfPI: DWORD,
            dwReserved: HANDLE_PTR,
        ) -> HRESULT,
    >,
    pub Continue: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetProtocol,
            pProtocolData: *mut PROTOCOLDATA,
        ) -> HRESULT,
    >,
    pub Abort: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetProtocol,
            hrReason: HRESULT,
            dwOptions: DWORD,
        ) -> HRESULT,
    >,
    pub Terminate: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IInternetProtocol, dwOptions: DWORD) -> HRESULT,
    >,
    pub Suspend:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetProtocol) -> HRESULT>,
    pub Resume:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetProtocol) -> HRESULT>,
    pub Read: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetProtocol,
            pv: *mut ::std::os::raw::c_void,
            cb: ULONG,
            pcbRead: *mut ULONG,
        ) -> HRESULT,
    >,
    pub Seek: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetProtocol,
            dlibMove: LARGE_INTEGER,
            dwOrigin: DWORD,
            plibNewPosition: *mut ULARGE_INTEGER,
        ) -> HRESULT,
    >,
    pub LockRequest: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IInternetProtocol, dwOptions: DWORD) -> HRESULT,
    >,
    pub UnlockRequest:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetProtocol) -> HRESULT>,
}
#[test]
fn bindgen_test_layout_IInternetProtocolVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IInternetProtocolVtbl>(),
        104usize,
        concat!("Size of: ", stringify!(IInternetProtocolVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetProtocolVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetProtocolVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetProtocolVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetProtocolVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetProtocolVtbl>())).Start as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolVtbl),
            "::",
            stringify!(Start)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetProtocolVtbl>())).Continue as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolVtbl),
            "::",
            stringify!(Continue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetProtocolVtbl>())).Abort as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolVtbl),
            "::",
            stringify!(Abort)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetProtocolVtbl>())).Terminate as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolVtbl),
            "::",
            stringify!(Terminate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetProtocolVtbl>())).Suspend as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolVtbl),
            "::",
            stringify!(Suspend)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetProtocolVtbl>())).Resume as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolVtbl),
            "::",
            stringify!(Resume)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetProtocolVtbl>())).Read as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolVtbl),
            "::",
            stringify!(Read)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetProtocolVtbl>())).Seek as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolVtbl),
            "::",
            stringify!(Seek)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolVtbl>())).LockRequest as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolVtbl),
            "::",
            stringify!(LockRequest)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolVtbl>())).UnlockRequest as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolVtbl),
            "::",
            stringify!(UnlockRequest)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetProtocol {
    pub lpVtbl: *mut IInternetProtocolVtbl,
}
#[test]
fn bindgen_test_layout_IInternetProtocol() {
    assert_eq!(
        ::std::mem::size_of::<IInternetProtocol>(),
        8usize,
        concat!("Size of: ", stringify!(IInternetProtocol))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetProtocol>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetProtocol))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetProtocol>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocol),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0030_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0030_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IInternetProtocolEx: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetProtocolExVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetProtocolEx,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetProtocolEx) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetProtocolEx) -> ULONG>,
    pub Start: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetProtocolEx,
            szUrl: LPCWSTR,
            pOIProtSink: *mut IInternetProtocolSink,
            pOIBindInfo: *mut IInternetBindInfo,
            grfPI: DWORD,
            dwReserved: HANDLE_PTR,
        ) -> HRESULT,
    >,
    pub Continue: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetProtocolEx,
            pProtocolData: *mut PROTOCOLDATA,
        ) -> HRESULT,
    >,
    pub Abort: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetProtocolEx,
            hrReason: HRESULT,
            dwOptions: DWORD,
        ) -> HRESULT,
    >,
    pub Terminate: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IInternetProtocolEx, dwOptions: DWORD) -> HRESULT,
    >,
    pub Suspend:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetProtocolEx) -> HRESULT>,
    pub Resume:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetProtocolEx) -> HRESULT>,
    pub Read: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetProtocolEx,
            pv: *mut ::std::os::raw::c_void,
            cb: ULONG,
            pcbRead: *mut ULONG,
        ) -> HRESULT,
    >,
    pub Seek: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetProtocolEx,
            dlibMove: LARGE_INTEGER,
            dwOrigin: DWORD,
            plibNewPosition: *mut ULARGE_INTEGER,
        ) -> HRESULT,
    >,
    pub LockRequest: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IInternetProtocolEx, dwOptions: DWORD) -> HRESULT,
    >,
    pub UnlockRequest:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetProtocolEx) -> HRESULT>,
    pub StartEx: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetProtocolEx,
            pUri: *mut IUri,
            pOIProtSink: *mut IInternetProtocolSink,
            pOIBindInfo: *mut IInternetBindInfo,
            grfPI: DWORD,
            dwReserved: HANDLE_PTR,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IInternetProtocolExVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IInternetProtocolExVtbl>(),
        112usize,
        concat!("Size of: ", stringify!(IInternetProtocolExVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetProtocolExVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetProtocolExVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolExVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolExVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetProtocolExVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolExVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetProtocolExVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolExVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetProtocolExVtbl>())).Start as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolExVtbl),
            "::",
            stringify!(Start)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolExVtbl>())).Continue as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolExVtbl),
            "::",
            stringify!(Continue)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetProtocolExVtbl>())).Abort as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolExVtbl),
            "::",
            stringify!(Abort)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolExVtbl>())).Terminate as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolExVtbl),
            "::",
            stringify!(Terminate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetProtocolExVtbl>())).Suspend as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolExVtbl),
            "::",
            stringify!(Suspend)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetProtocolExVtbl>())).Resume as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolExVtbl),
            "::",
            stringify!(Resume)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetProtocolExVtbl>())).Read as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolExVtbl),
            "::",
            stringify!(Read)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetProtocolExVtbl>())).Seek as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolExVtbl),
            "::",
            stringify!(Seek)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolExVtbl>())).LockRequest as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolExVtbl),
            "::",
            stringify!(LockRequest)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolExVtbl>())).UnlockRequest as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolExVtbl),
            "::",
            stringify!(UnlockRequest)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetProtocolExVtbl>())).StartEx as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolExVtbl),
            "::",
            stringify!(StartEx)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetProtocolEx {
    pub lpVtbl: *mut IInternetProtocolExVtbl,
}
#[test]
fn bindgen_test_layout_IInternetProtocolEx() {
    assert_eq!(
        ::std::mem::size_of::<IInternetProtocolEx>(),
        8usize,
        concat!("Size of: ", stringify!(IInternetProtocolEx))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetProtocolEx>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetProtocolEx))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetProtocolEx>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolEx),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0031_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0031_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPIINTERNETPROTOCOLSINK = *mut IInternetProtocolSink;
extern "C" {
    pub static IID_IInternetProtocolSink: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetProtocolSinkVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetProtocolSink,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetProtocolSink) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetProtocolSink) -> ULONG>,
    pub Switch: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetProtocolSink,
            pProtocolData: *mut PROTOCOLDATA,
        ) -> HRESULT,
    >,
    pub ReportProgress: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetProtocolSink,
            ulStatusCode: ULONG,
            szStatusText: LPCWSTR,
        ) -> HRESULT,
    >,
    pub ReportData: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetProtocolSink,
            grfBSCF: DWORD,
            ulProgress: ULONG,
            ulProgressMax: ULONG,
        ) -> HRESULT,
    >,
    pub ReportResult: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetProtocolSink,
            hrResult: HRESULT,
            dwError: DWORD,
            szResult: LPCWSTR,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IInternetProtocolSinkVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IInternetProtocolSinkVtbl>(),
        56usize,
        concat!("Size of: ", stringify!(IInternetProtocolSinkVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetProtocolSinkVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetProtocolSinkVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolSinkVtbl>())).QueryInterface as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolSinkVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolSinkVtbl>())).AddRef as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolSinkVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolSinkVtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolSinkVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolSinkVtbl>())).Switch as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolSinkVtbl),
            "::",
            stringify!(Switch)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolSinkVtbl>())).ReportProgress as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolSinkVtbl),
            "::",
            stringify!(ReportProgress)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolSinkVtbl>())).ReportData as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolSinkVtbl),
            "::",
            stringify!(ReportData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolSinkVtbl>())).ReportResult as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolSinkVtbl),
            "::",
            stringify!(ReportResult)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetProtocolSink {
    pub lpVtbl: *mut IInternetProtocolSinkVtbl,
}
#[test]
fn bindgen_test_layout_IInternetProtocolSink() {
    assert_eq!(
        ::std::mem::size_of::<IInternetProtocolSink>(),
        8usize,
        concat!("Size of: ", stringify!(IInternetProtocolSink))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetProtocolSink>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetProtocolSink))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetProtocolSink>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolSink),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0032_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0032_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPIINTERNETPROTOCOLSINKStackable = *mut IInternetProtocolSinkStackable;
extern "C" {
    pub static IID_IInternetProtocolSinkStackable: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetProtocolSinkStackableVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetProtocolSinkStackable,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IInternetProtocolSinkStackable) -> ULONG,
    >,
    pub Release: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IInternetProtocolSinkStackable) -> ULONG,
    >,
    pub SwitchSink: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetProtocolSinkStackable,
            pOIProtSink: *mut IInternetProtocolSink,
        ) -> HRESULT,
    >,
    pub CommitSwitch: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IInternetProtocolSinkStackable) -> HRESULT,
    >,
    pub RollbackSwitch: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IInternetProtocolSinkStackable) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IInternetProtocolSinkStackableVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IInternetProtocolSinkStackableVtbl>(),
        48usize,
        concat!("Size of: ", stringify!(IInternetProtocolSinkStackableVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetProtocolSinkStackableVtbl>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(IInternetProtocolSinkStackableVtbl)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolSinkStackableVtbl>())).QueryInterface
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolSinkStackableVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolSinkStackableVtbl>())).AddRef as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolSinkStackableVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolSinkStackableVtbl>())).Release as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolSinkStackableVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolSinkStackableVtbl>())).SwitchSink as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolSinkStackableVtbl),
            "::",
            stringify!(SwitchSink)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolSinkStackableVtbl>())).CommitSwitch as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolSinkStackableVtbl),
            "::",
            stringify!(CommitSwitch)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolSinkStackableVtbl>())).RollbackSwitch
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolSinkStackableVtbl),
            "::",
            stringify!(RollbackSwitch)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetProtocolSinkStackable {
    pub lpVtbl: *mut IInternetProtocolSinkStackableVtbl,
}
#[test]
fn bindgen_test_layout_IInternetProtocolSinkStackable() {
    assert_eq!(
        ::std::mem::size_of::<IInternetProtocolSinkStackable>(),
        8usize,
        concat!("Size of: ", stringify!(IInternetProtocolSinkStackable))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetProtocolSinkStackable>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetProtocolSinkStackable))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolSinkStackable>())).lpVtbl as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolSinkStackable),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0033_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0033_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPIINTERNETSESSION = *mut IInternetSession;
pub const _tagOIBDG_FLAGS_OIBDG_APARTMENTTHREADED: _tagOIBDG_FLAGS = 256;
pub const _tagOIBDG_FLAGS_OIBDG_DATAONLY: _tagOIBDG_FLAGS = 4096;
pub type _tagOIBDG_FLAGS = ::std::os::raw::c_int;
pub use self::_tagOIBDG_FLAGS as OIBDG_FLAGS;
extern "C" {
    pub static IID_IInternetSession: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetSessionVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSession,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetSession) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetSession) -> ULONG>,
    pub RegisterNameSpace: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSession,
            pCF: *mut IClassFactory,
            rclsid: *const IID,
            pwzProtocol: LPCWSTR,
            cPatterns: ULONG,
            ppwzPatterns: *const LPCWSTR,
            dwReserved: DWORD,
        ) -> HRESULT,
    >,
    pub UnregisterNameSpace: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSession,
            pCF: *mut IClassFactory,
            pszProtocol: LPCWSTR,
        ) -> HRESULT,
    >,
    pub RegisterMimeFilter: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSession,
            pCF: *mut IClassFactory,
            rclsid: *const IID,
            pwzType: LPCWSTR,
        ) -> HRESULT,
    >,
    pub UnregisterMimeFilter: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSession,
            pCF: *mut IClassFactory,
            pwzType: LPCWSTR,
        ) -> HRESULT,
    >,
    pub CreateBinding: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSession,
            pBC: LPBC,
            szUrl: LPCWSTR,
            pUnkOuter: *mut IUnknown,
            ppUnk: *mut *mut IUnknown,
            ppOInetProt: *mut *mut IInternetProtocol,
            dwOption: DWORD,
        ) -> HRESULT,
    >,
    pub SetSessionOption: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSession,
            dwOption: DWORD,
            pBuffer: LPVOID,
            dwBufferLength: DWORD,
            dwReserved: DWORD,
        ) -> HRESULT,
    >,
    pub GetSessionOption: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSession,
            dwOption: DWORD,
            pBuffer: LPVOID,
            pdwBufferLength: *mut DWORD,
            dwReserved: DWORD,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IInternetSessionVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IInternetSessionVtbl>(),
        80usize,
        concat!("Size of: ", stringify!(IInternetSessionVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetSessionVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetSessionVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSessionVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSessionVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetSessionVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSessionVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetSessionVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSessionVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSessionVtbl>())).RegisterNameSpace as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSessionVtbl),
            "::",
            stringify!(RegisterNameSpace)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSessionVtbl>())).UnregisterNameSpace as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSessionVtbl),
            "::",
            stringify!(UnregisterNameSpace)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSessionVtbl>())).RegisterMimeFilter as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSessionVtbl),
            "::",
            stringify!(RegisterMimeFilter)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSessionVtbl>())).UnregisterMimeFilter as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSessionVtbl),
            "::",
            stringify!(UnregisterMimeFilter)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSessionVtbl>())).CreateBinding as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSessionVtbl),
            "::",
            stringify!(CreateBinding)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSessionVtbl>())).SetSessionOption as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSessionVtbl),
            "::",
            stringify!(SetSessionOption)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSessionVtbl>())).GetSessionOption as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSessionVtbl),
            "::",
            stringify!(GetSessionOption)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetSession {
    pub lpVtbl: *mut IInternetSessionVtbl,
}
#[test]
fn bindgen_test_layout_IInternetSession() {
    assert_eq!(
        ::std::mem::size_of::<IInternetSession>(),
        8usize,
        concat!("Size of: ", stringify!(IInternetSession))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetSession>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetSession))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetSession>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSession),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0034_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0034_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPIINTERNETTHREADSWITCH = *mut IInternetThreadSwitch;
extern "C" {
    pub static IID_IInternetThreadSwitch: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetThreadSwitchVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetThreadSwitch,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetThreadSwitch) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetThreadSwitch) -> ULONG>,
    pub Prepare:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetThreadSwitch) -> HRESULT>,
    pub Continue:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetThreadSwitch) -> HRESULT>,
}
#[test]
fn bindgen_test_layout_IInternetThreadSwitchVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IInternetThreadSwitchVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IInternetThreadSwitchVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetThreadSwitchVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetThreadSwitchVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetThreadSwitchVtbl>())).QueryInterface as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetThreadSwitchVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetThreadSwitchVtbl>())).AddRef as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetThreadSwitchVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetThreadSwitchVtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetThreadSwitchVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetThreadSwitchVtbl>())).Prepare as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetThreadSwitchVtbl),
            "::",
            stringify!(Prepare)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetThreadSwitchVtbl>())).Continue as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetThreadSwitchVtbl),
            "::",
            stringify!(Continue)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetThreadSwitch {
    pub lpVtbl: *mut IInternetThreadSwitchVtbl,
}
#[test]
fn bindgen_test_layout_IInternetThreadSwitch() {
    assert_eq!(
        ::std::mem::size_of::<IInternetThreadSwitch>(),
        8usize,
        concat!("Size of: ", stringify!(IInternetThreadSwitch))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetThreadSwitch>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetThreadSwitch))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetThreadSwitch>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetThreadSwitch),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0035_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0035_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPIINTERNETPRIORITY = *mut IInternetPriority;
extern "C" {
    pub static IID_IInternetPriority: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetPriorityVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetPriority,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetPriority) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetPriority) -> ULONG>,
    pub SetPriority: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IInternetPriority, nPriority: LONG) -> HRESULT,
    >,
    pub GetPriority: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IInternetPriority, pnPriority: *mut LONG) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IInternetPriorityVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IInternetPriorityVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IInternetPriorityVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetPriorityVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetPriorityVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetPriorityVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetPriorityVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetPriorityVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetPriorityVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetPriorityVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetPriorityVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetPriorityVtbl>())).SetPriority as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetPriorityVtbl),
            "::",
            stringify!(SetPriority)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetPriorityVtbl>())).GetPriority as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetPriorityVtbl),
            "::",
            stringify!(GetPriority)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetPriority {
    pub lpVtbl: *mut IInternetPriorityVtbl,
}
#[test]
fn bindgen_test_layout_IInternetPriority() {
    assert_eq!(
        ::std::mem::size_of::<IInternetPriority>(),
        8usize,
        concat!("Size of: ", stringify!(IInternetPriority))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetPriority>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetPriority))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetPriority>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetPriority),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0036_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0036_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPIINTERNETPROTOCOLINFO = *mut IInternetProtocolInfo;
pub const _tagPARSEACTION_PARSE_CANONICALIZE: _tagPARSEACTION = 1;
pub const _tagPARSEACTION_PARSE_FRIENDLY: _tagPARSEACTION = 2;
pub const _tagPARSEACTION_PARSE_SECURITY_URL: _tagPARSEACTION = 3;
pub const _tagPARSEACTION_PARSE_ROOTDOCUMENT: _tagPARSEACTION = 4;
pub const _tagPARSEACTION_PARSE_DOCUMENT: _tagPARSEACTION = 5;
pub const _tagPARSEACTION_PARSE_ANCHOR: _tagPARSEACTION = 6;
pub const _tagPARSEACTION_PARSE_ENCODE_IS_UNESCAPE: _tagPARSEACTION = 7;
pub const _tagPARSEACTION_PARSE_DECODE_IS_ESCAPE: _tagPARSEACTION = 8;
pub const _tagPARSEACTION_PARSE_PATH_FROM_URL: _tagPARSEACTION = 9;
pub const _tagPARSEACTION_PARSE_URL_FROM_PATH: _tagPARSEACTION = 10;
pub const _tagPARSEACTION_PARSE_MIME: _tagPARSEACTION = 11;
pub const _tagPARSEACTION_PARSE_SERVER: _tagPARSEACTION = 12;
pub const _tagPARSEACTION_PARSE_SCHEMA: _tagPARSEACTION = 13;
pub const _tagPARSEACTION_PARSE_SITE: _tagPARSEACTION = 14;
pub const _tagPARSEACTION_PARSE_DOMAIN: _tagPARSEACTION = 15;
pub const _tagPARSEACTION_PARSE_LOCATION: _tagPARSEACTION = 16;
pub const _tagPARSEACTION_PARSE_SECURITY_DOMAIN: _tagPARSEACTION = 17;
pub const _tagPARSEACTION_PARSE_ESCAPE: _tagPARSEACTION = 18;
pub const _tagPARSEACTION_PARSE_UNESCAPE: _tagPARSEACTION = 19;
pub type _tagPARSEACTION = ::std::os::raw::c_int;
pub use self::_tagPARSEACTION as PARSEACTION;
pub const _tagPSUACTION_PSU_DEFAULT: _tagPSUACTION = 1;
pub const _tagPSUACTION_PSU_SECURITY_URL_ONLY: _tagPSUACTION = 2;
pub type _tagPSUACTION = ::std::os::raw::c_int;
pub use self::_tagPSUACTION as PSUACTION;
pub const _tagQUERYOPTION_QUERY_EXPIRATION_DATE: _tagQUERYOPTION = 1;
pub const _tagQUERYOPTION_QUERY_TIME_OF_LAST_CHANGE: _tagQUERYOPTION = 2;
pub const _tagQUERYOPTION_QUERY_CONTENT_ENCODING: _tagQUERYOPTION = 3;
pub const _tagQUERYOPTION_QUERY_CONTENT_TYPE: _tagQUERYOPTION = 4;
pub const _tagQUERYOPTION_QUERY_REFRESH: _tagQUERYOPTION = 5;
pub const _tagQUERYOPTION_QUERY_RECOMBINE: _tagQUERYOPTION = 6;
pub const _tagQUERYOPTION_QUERY_CAN_NAVIGATE: _tagQUERYOPTION = 7;
pub const _tagQUERYOPTION_QUERY_USES_NETWORK: _tagQUERYOPTION = 8;
pub const _tagQUERYOPTION_QUERY_IS_CACHED: _tagQUERYOPTION = 9;
pub const _tagQUERYOPTION_QUERY_IS_INSTALLEDENTRY: _tagQUERYOPTION = 10;
pub const _tagQUERYOPTION_QUERY_IS_CACHED_OR_MAPPED: _tagQUERYOPTION = 11;
pub const _tagQUERYOPTION_QUERY_USES_CACHE: _tagQUERYOPTION = 12;
pub const _tagQUERYOPTION_QUERY_IS_SECURE: _tagQUERYOPTION = 13;
pub const _tagQUERYOPTION_QUERY_IS_SAFE: _tagQUERYOPTION = 14;
pub const _tagQUERYOPTION_QUERY_USES_HISTORYFOLDER: _tagQUERYOPTION = 15;
pub const _tagQUERYOPTION_QUERY_IS_CACHED_AND_USABLE_OFFLINE: _tagQUERYOPTION = 16;
pub type _tagQUERYOPTION = ::std::os::raw::c_int;
pub use self::_tagQUERYOPTION as QUERYOPTION;
extern "C" {
    pub static IID_IInternetProtocolInfo: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetProtocolInfoVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetProtocolInfo,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetProtocolInfo) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetProtocolInfo) -> ULONG>,
    pub ParseUrl: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetProtocolInfo,
            pwzUrl: LPCWSTR,
            ParseAction: PARSEACTION,
            dwParseFlags: DWORD,
            pwzResult: LPWSTR,
            cchResult: DWORD,
            pcchResult: *mut DWORD,
            dwReserved: DWORD,
        ) -> HRESULT,
    >,
    pub CombineUrl: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetProtocolInfo,
            pwzBaseUrl: LPCWSTR,
            pwzRelativeUrl: LPCWSTR,
            dwCombineFlags: DWORD,
            pwzResult: LPWSTR,
            cchResult: DWORD,
            pcchResult: *mut DWORD,
            dwReserved: DWORD,
        ) -> HRESULT,
    >,
    pub CompareUrl: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetProtocolInfo,
            pwzUrl1: LPCWSTR,
            pwzUrl2: LPCWSTR,
            dwCompareFlags: DWORD,
        ) -> HRESULT,
    >,
    pub QueryInfo: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetProtocolInfo,
            pwzUrl: LPCWSTR,
            OueryOption: QUERYOPTION,
            dwQueryFlags: DWORD,
            pBuffer: LPVOID,
            cbBuffer: DWORD,
            pcbBuf: *mut DWORD,
            dwReserved: DWORD,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IInternetProtocolInfoVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IInternetProtocolInfoVtbl>(),
        56usize,
        concat!("Size of: ", stringify!(IInternetProtocolInfoVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetProtocolInfoVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetProtocolInfoVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolInfoVtbl>())).QueryInterface as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolInfoVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolInfoVtbl>())).AddRef as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolInfoVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolInfoVtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolInfoVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolInfoVtbl>())).ParseUrl as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolInfoVtbl),
            "::",
            stringify!(ParseUrl)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolInfoVtbl>())).CombineUrl as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolInfoVtbl),
            "::",
            stringify!(CombineUrl)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolInfoVtbl>())).CompareUrl as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolInfoVtbl),
            "::",
            stringify!(CompareUrl)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetProtocolInfoVtbl>())).QueryInfo as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolInfoVtbl),
            "::",
            stringify!(QueryInfo)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetProtocolInfo {
    pub lpVtbl: *mut IInternetProtocolInfoVtbl,
}
#[test]
fn bindgen_test_layout_IInternetProtocolInfo() {
    assert_eq!(
        ::std::mem::size_of::<IInternetProtocolInfo>(),
        8usize,
        concat!("Size of: ", stringify!(IInternetProtocolInfo))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetProtocolInfo>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetProtocolInfo))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetProtocolInfo>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetProtocolInfo),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn CoInternetParseUrl(
        pwzUrl: LPCWSTR,
        ParseAction: PARSEACTION,
        dwFlags: DWORD,
        pszResult: LPWSTR,
        cchResult: DWORD,
        pcchResult: *mut DWORD,
        dwReserved: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoInternetParseIUri(
        pIUri: *mut IUri,
        ParseAction: PARSEACTION,
        dwFlags: DWORD,
        pwzResult: LPWSTR,
        cchResult: DWORD,
        pcchResult: *mut DWORD,
        dwReserved: DWORD_PTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoInternetCombineUrl(
        pwzBaseUrl: LPCWSTR,
        pwzRelativeUrl: LPCWSTR,
        dwCombineFlags: DWORD,
        pszResult: LPWSTR,
        cchResult: DWORD,
        pcchResult: *mut DWORD,
        dwReserved: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoInternetCombineUrlEx(
        pBaseUri: *mut IUri,
        pwzRelativeUrl: LPCWSTR,
        dwCombineFlags: DWORD,
        ppCombinedUri: *mut *mut IUri,
        dwReserved: DWORD_PTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoInternetCombineIUri(
        pBaseUri: *mut IUri,
        pRelativeUri: *mut IUri,
        dwCombineFlags: DWORD,
        ppCombinedUri: *mut *mut IUri,
        dwReserved: DWORD_PTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoInternetCompareUrl(pwzUrl1: LPCWSTR, pwzUrl2: LPCWSTR, dwFlags: DWORD) -> HRESULT;
}
extern "C" {
    pub fn CoInternetGetProtocolFlags(
        pwzUrl: LPCWSTR,
        pdwFlags: *mut DWORD,
        dwReserved: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoInternetQueryInfo(
        pwzUrl: LPCWSTR,
        QueryOptions: QUERYOPTION,
        dwQueryFlags: DWORD,
        pvBuffer: LPVOID,
        cbBuffer: DWORD,
        pcbBuffer: *mut DWORD,
        dwReserved: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoInternetGetSession(
        dwSessionMode: DWORD,
        ppIInternetSession: *mut *mut IInternetSession,
        dwReserved: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoInternetGetSecurityUrl(
        pwszUrl: LPCWSTR,
        ppwszSecUrl: *mut LPWSTR,
        psuAction: PSUACTION,
        dwReserved: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn AsyncInstallDistributionUnit(
        szDistUnit: LPCWSTR,
        szTYPE: LPCWSTR,
        szExt: LPCWSTR,
        dwFileVersionMS: DWORD,
        dwFileVersionLS: DWORD,
        szURL: LPCWSTR,
        pbc: *mut IBindCtx,
        pvReserved: LPVOID,
        flags: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoInternetGetSecurityUrlEx(
        pUri: *mut IUri,
        ppSecUri: *mut *mut IUri,
        psuAction: PSUACTION,
        dwReserved: DWORD_PTR,
    ) -> HRESULT;
}
pub const _tagINTERNETFEATURELIST_FEATURE_OBJECT_CACHING: _tagINTERNETFEATURELIST = 0;
pub const _tagINTERNETFEATURELIST_FEATURE_ZONE_ELEVATION: _tagINTERNETFEATURELIST = 1;
pub const _tagINTERNETFEATURELIST_FEATURE_MIME_HANDLING: _tagINTERNETFEATURELIST = 2;
pub const _tagINTERNETFEATURELIST_FEATURE_MIME_SNIFFING: _tagINTERNETFEATURELIST = 3;
pub const _tagINTERNETFEATURELIST_FEATURE_WINDOW_RESTRICTIONS: _tagINTERNETFEATURELIST = 4;
pub const _tagINTERNETFEATURELIST_FEATURE_WEBOC_POPUPMANAGEMENT: _tagINTERNETFEATURELIST = 5;
pub const _tagINTERNETFEATURELIST_FEATURE_BEHAVIORS: _tagINTERNETFEATURELIST = 6;
pub const _tagINTERNETFEATURELIST_FEATURE_DISABLE_MK_PROTOCOL: _tagINTERNETFEATURELIST = 7;
pub const _tagINTERNETFEATURELIST_FEATURE_LOCALMACHINE_LOCKDOWN: _tagINTERNETFEATURELIST = 8;
pub const _tagINTERNETFEATURELIST_FEATURE_SECURITYBAND: _tagINTERNETFEATURELIST = 9;
pub const _tagINTERNETFEATURELIST_FEATURE_RESTRICT_ACTIVEXINSTALL: _tagINTERNETFEATURELIST = 10;
pub const _tagINTERNETFEATURELIST_FEATURE_VALIDATE_NAVIGATE_URL: _tagINTERNETFEATURELIST = 11;
pub const _tagINTERNETFEATURELIST_FEATURE_RESTRICT_FILEDOWNLOAD: _tagINTERNETFEATURELIST = 12;
pub const _tagINTERNETFEATURELIST_FEATURE_ADDON_MANAGEMENT: _tagINTERNETFEATURELIST = 13;
pub const _tagINTERNETFEATURELIST_FEATURE_PROTOCOL_LOCKDOWN: _tagINTERNETFEATURELIST = 14;
pub const _tagINTERNETFEATURELIST_FEATURE_HTTP_USERNAME_PASSWORD_DISABLE: _tagINTERNETFEATURELIST =
    15;
pub const _tagINTERNETFEATURELIST_FEATURE_SAFE_BINDTOOBJECT: _tagINTERNETFEATURELIST = 16;
pub const _tagINTERNETFEATURELIST_FEATURE_UNC_SAVEDFILECHECK: _tagINTERNETFEATURELIST = 17;
pub const _tagINTERNETFEATURELIST_FEATURE_GET_URL_DOM_FILEPATH_UNENCODED: _tagINTERNETFEATURELIST =
    18;
pub const _tagINTERNETFEATURELIST_FEATURE_TABBED_BROWSING: _tagINTERNETFEATURELIST = 19;
pub const _tagINTERNETFEATURELIST_FEATURE_SSLUX: _tagINTERNETFEATURELIST = 20;
pub const _tagINTERNETFEATURELIST_FEATURE_DISABLE_NAVIGATION_SOUNDS: _tagINTERNETFEATURELIST = 21;
pub const _tagINTERNETFEATURELIST_FEATURE_DISABLE_LEGACY_COMPRESSION: _tagINTERNETFEATURELIST = 22;
pub const _tagINTERNETFEATURELIST_FEATURE_FORCE_ADDR_AND_STATUS: _tagINTERNETFEATURELIST = 23;
pub const _tagINTERNETFEATURELIST_FEATURE_XMLHTTP: _tagINTERNETFEATURELIST = 24;
pub const _tagINTERNETFEATURELIST_FEATURE_DISABLE_TELNET_PROTOCOL: _tagINTERNETFEATURELIST = 25;
pub const _tagINTERNETFEATURELIST_FEATURE_FEEDS: _tagINTERNETFEATURELIST = 26;
pub const _tagINTERNETFEATURELIST_FEATURE_BLOCK_INPUT_PROMPTS: _tagINTERNETFEATURELIST = 27;
pub const _tagINTERNETFEATURELIST_FEATURE_ENTRY_COUNT: _tagINTERNETFEATURELIST = 28;
pub type _tagINTERNETFEATURELIST = ::std::os::raw::c_int;
pub use self::_tagINTERNETFEATURELIST as INTERNETFEATURELIST;
extern "C" {
    pub fn CoInternetSetFeatureEnabled(
        FeatureEntry: INTERNETFEATURELIST,
        dwFlags: DWORD,
        fEnable: BOOL,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoInternetIsFeatureEnabled(FeatureEntry: INTERNETFEATURELIST, dwFlags: DWORD)
        -> HRESULT;
}
extern "C" {
    pub fn CoInternetIsFeatureEnabledForUrl(
        FeatureEntry: INTERNETFEATURELIST,
        dwFlags: DWORD,
        szURL: LPCWSTR,
        pSecMgr: *mut IInternetSecurityManager,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoInternetIsFeatureEnabledForIUri(
        FeatureEntry: INTERNETFEATURELIST,
        dwFlags: DWORD,
        pIUri: *mut IUri,
        pSecMgr: *mut IInternetSecurityManagerEx2,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoInternetIsFeatureZoneElevationEnabled(
        szFromURL: LPCWSTR,
        szToURL: LPCWSTR,
        pSecMgr: *mut IInternetSecurityManager,
        dwFlags: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn CopyStgMedium(pcstgmedSrc: *const STGMEDIUM, pstgmedDest: *mut STGMEDIUM) -> HRESULT;
}
extern "C" {
    pub fn CopyBindInfo(pcbiSrc: *const BINDINFO, pbiDest: *mut BINDINFO) -> HRESULT;
}
extern "C" {
    pub fn ReleaseBindInfo(pbindinfo: *mut BINDINFO);
}
extern "C" {
    pub fn IEGetUserPrivateNamespaceName() -> PWSTR;
}
extern "C" {
    pub fn CoInternetCreateSecurityManager(
        pSP: *mut IServiceProvider,
        ppSM: *mut *mut IInternetSecurityManager,
        dwReserved: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn CoInternetCreateZoneManager(
        pSP: *mut IServiceProvider,
        ppZM: *mut *mut IInternetZoneManager,
        dwReserved: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub static CLSID_InternetSecurityManager: IID;
}
extern "C" {
    pub static CLSID_InternetZoneManager: IID;
}
extern "C" {
    pub static CLSID_PersistentZoneIdentifier: IID;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0037_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0037_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IInternetSecurityMgrSite: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetSecurityMgrSiteVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityMgrSite,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetSecurityMgrSite) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetSecurityMgrSite) -> ULONG>,
    pub GetWindow: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IInternetSecurityMgrSite, phwnd: *mut HWND) -> HRESULT,
    >,
    pub EnableModeless: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IInternetSecurityMgrSite, fEnable: BOOL) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IInternetSecurityMgrSiteVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IInternetSecurityMgrSiteVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IInternetSecurityMgrSiteVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetSecurityMgrSiteVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetSecurityMgrSiteVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityMgrSiteVtbl>())).QueryInterface as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityMgrSiteVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityMgrSiteVtbl>())).AddRef as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityMgrSiteVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityMgrSiteVtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityMgrSiteVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityMgrSiteVtbl>())).GetWindow as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityMgrSiteVtbl),
            "::",
            stringify!(GetWindow)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityMgrSiteVtbl>())).EnableModeless as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityMgrSiteVtbl),
            "::",
            stringify!(EnableModeless)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetSecurityMgrSite {
    pub lpVtbl: *mut IInternetSecurityMgrSiteVtbl,
}
#[test]
fn bindgen_test_layout_IInternetSecurityMgrSite() {
    assert_eq!(
        ::std::mem::size_of::<IInternetSecurityMgrSite>(),
        8usize,
        concat!("Size of: ", stringify!(IInternetSecurityMgrSite))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetSecurityMgrSite>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetSecurityMgrSite))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetSecurityMgrSite>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityMgrSite),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0038_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0038_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub const __MIDL_IInternetSecurityManager_0001_PUAF_DEFAULT: __MIDL_IInternetSecurityManager_0001 =
    0;
pub const __MIDL_IInternetSecurityManager_0001_PUAF_NOUI: __MIDL_IInternetSecurityManager_0001 = 1;
pub const __MIDL_IInternetSecurityManager_0001_PUAF_ISFILE: __MIDL_IInternetSecurityManager_0001 =
    2;
pub const __MIDL_IInternetSecurityManager_0001_PUAF_WARN_IF_DENIED:
    __MIDL_IInternetSecurityManager_0001 = 4;
pub const __MIDL_IInternetSecurityManager_0001_PUAF_FORCEUI_FOREGROUND:
    __MIDL_IInternetSecurityManager_0001 = 8;
pub const __MIDL_IInternetSecurityManager_0001_PUAF_CHECK_TIFS:
    __MIDL_IInternetSecurityManager_0001 = 16;
pub const __MIDL_IInternetSecurityManager_0001_PUAF_DONTCHECKBOXINDIALOG:
    __MIDL_IInternetSecurityManager_0001 = 32;
pub const __MIDL_IInternetSecurityManager_0001_PUAF_TRUSTED: __MIDL_IInternetSecurityManager_0001 =
    64;
pub const __MIDL_IInternetSecurityManager_0001_PUAF_ACCEPT_WILDCARD_SCHEME:
    __MIDL_IInternetSecurityManager_0001 = 128;
pub const __MIDL_IInternetSecurityManager_0001_PUAF_ENFORCERESTRICTED:
    __MIDL_IInternetSecurityManager_0001 = 256;
pub const __MIDL_IInternetSecurityManager_0001_PUAF_NOSAVEDFILECHECK:
    __MIDL_IInternetSecurityManager_0001 = 512;
pub const __MIDL_IInternetSecurityManager_0001_PUAF_REQUIRESAVEDFILECHECK:
    __MIDL_IInternetSecurityManager_0001 = 1024;
pub const __MIDL_IInternetSecurityManager_0001_PUAF_DONT_USE_CACHE:
    __MIDL_IInternetSecurityManager_0001 = 4096;
pub const __MIDL_IInternetSecurityManager_0001_PUAF_RESERVED1:
    __MIDL_IInternetSecurityManager_0001 = 8192;
pub const __MIDL_IInternetSecurityManager_0001_PUAF_RESERVED2:
    __MIDL_IInternetSecurityManager_0001 = 16384;
pub const __MIDL_IInternetSecurityManager_0001_PUAF_LMZ_UNLOCKED:
    __MIDL_IInternetSecurityManager_0001 = 65536;
pub const __MIDL_IInternetSecurityManager_0001_PUAF_LMZ_LOCKED:
    __MIDL_IInternetSecurityManager_0001 = 131072;
pub const __MIDL_IInternetSecurityManager_0001_PUAF_DEFAULTZONEPOL:
    __MIDL_IInternetSecurityManager_0001 = 262144;
pub const __MIDL_IInternetSecurityManager_0001_PUAF_NPL_USE_LOCKED_IF_RESTRICTED:
    __MIDL_IInternetSecurityManager_0001 = 524288;
pub const __MIDL_IInternetSecurityManager_0001_PUAF_NOUIIFLOCKED:
    __MIDL_IInternetSecurityManager_0001 = 1048576;
pub const __MIDL_IInternetSecurityManager_0001_PUAF_DRAGPROTOCOLCHECK:
    __MIDL_IInternetSecurityManager_0001 = 2097152;
pub type __MIDL_IInternetSecurityManager_0001 = ::std::os::raw::c_int;
pub use self::__MIDL_IInternetSecurityManager_0001 as PUAF;
pub const __MIDL_IInternetSecurityManager_0002_PUAFOUT_DEFAULT:
    __MIDL_IInternetSecurityManager_0002 = 0;
pub const __MIDL_IInternetSecurityManager_0002_PUAFOUT_ISLOCKZONEPOLICY:
    __MIDL_IInternetSecurityManager_0002 = 1;
pub type __MIDL_IInternetSecurityManager_0002 = ::std::os::raw::c_int;
pub use self::__MIDL_IInternetSecurityManager_0002 as PUAFOUT;
pub const __MIDL_IInternetSecurityManager_0003_SZM_CREATE: __MIDL_IInternetSecurityManager_0003 = 0;
pub const __MIDL_IInternetSecurityManager_0003_SZM_DELETE: __MIDL_IInternetSecurityManager_0003 = 1;
pub type __MIDL_IInternetSecurityManager_0003 = ::std::os::raw::c_int;
pub use self::__MIDL_IInternetSecurityManager_0003 as SZM_FLAGS;
extern "C" {
    pub static IID_IInternetSecurityManager: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetSecurityManagerVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManager,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetSecurityManager) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetSecurityManager) -> ULONG>,
    pub SetSecuritySite: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManager,
            pSite: *mut IInternetSecurityMgrSite,
        ) -> HRESULT,
    >,
    pub GetSecuritySite: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManager,
            ppSite: *mut *mut IInternetSecurityMgrSite,
        ) -> HRESULT,
    >,
    pub MapUrlToZone: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManager,
            pwszUrl: LPCWSTR,
            pdwZone: *mut DWORD,
            dwFlags: DWORD,
        ) -> HRESULT,
    >,
    pub GetSecurityId: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManager,
            pwszUrl: LPCWSTR,
            pbSecurityId: *mut BYTE,
            pcbSecurityId: *mut DWORD,
            dwReserved: DWORD_PTR,
        ) -> HRESULT,
    >,
    pub ProcessUrlAction: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManager,
            pwszUrl: LPCWSTR,
            dwAction: DWORD,
            pPolicy: *mut BYTE,
            cbPolicy: DWORD,
            pContext: *mut BYTE,
            cbContext: DWORD,
            dwFlags: DWORD,
            dwReserved: DWORD,
        ) -> HRESULT,
    >,
    pub QueryCustomPolicy: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManager,
            pwszUrl: LPCWSTR,
            guidKey: *const GUID,
            ppPolicy: *mut *mut BYTE,
            pcbPolicy: *mut DWORD,
            pContext: *mut BYTE,
            cbContext: DWORD,
            dwReserved: DWORD,
        ) -> HRESULT,
    >,
    pub SetZoneMapping: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManager,
            dwZone: DWORD,
            lpszPattern: LPCWSTR,
            dwFlags: DWORD,
        ) -> HRESULT,
    >,
    pub GetZoneMappings: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManager,
            dwZone: DWORD,
            ppenumString: *mut *mut IEnumString,
            dwFlags: DWORD,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IInternetSecurityManagerVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IInternetSecurityManagerVtbl>(),
        88usize,
        concat!("Size of: ", stringify!(IInternetSecurityManagerVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetSecurityManagerVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetSecurityManagerVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerVtbl>())).QueryInterface as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerVtbl>())).AddRef as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerVtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerVtbl>())).SetSecuritySite as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerVtbl),
            "::",
            stringify!(SetSecuritySite)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerVtbl>())).GetSecuritySite as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerVtbl),
            "::",
            stringify!(GetSecuritySite)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerVtbl>())).MapUrlToZone as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerVtbl),
            "::",
            stringify!(MapUrlToZone)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerVtbl>())).GetSecurityId as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerVtbl),
            "::",
            stringify!(GetSecurityId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerVtbl>())).ProcessUrlAction as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerVtbl),
            "::",
            stringify!(ProcessUrlAction)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerVtbl>())).QueryCustomPolicy as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerVtbl),
            "::",
            stringify!(QueryCustomPolicy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerVtbl>())).SetZoneMapping as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerVtbl),
            "::",
            stringify!(SetZoneMapping)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerVtbl>())).GetZoneMappings as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerVtbl),
            "::",
            stringify!(GetZoneMappings)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetSecurityManager {
    pub lpVtbl: *mut IInternetSecurityManagerVtbl,
}
#[test]
fn bindgen_test_layout_IInternetSecurityManager() {
    assert_eq!(
        ::std::mem::size_of::<IInternetSecurityManager>(),
        8usize,
        concat!("Size of: ", stringify!(IInternetSecurityManager))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetSecurityManager>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetSecurityManager))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetSecurityManager>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManager),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0039_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0039_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IInternetSecurityManagerEx: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetSecurityManagerExVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManagerEx,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetSecurityManagerEx) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetSecurityManagerEx) -> ULONG>,
    pub SetSecuritySite: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManagerEx,
            pSite: *mut IInternetSecurityMgrSite,
        ) -> HRESULT,
    >,
    pub GetSecuritySite: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManagerEx,
            ppSite: *mut *mut IInternetSecurityMgrSite,
        ) -> HRESULT,
    >,
    pub MapUrlToZone: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManagerEx,
            pwszUrl: LPCWSTR,
            pdwZone: *mut DWORD,
            dwFlags: DWORD,
        ) -> HRESULT,
    >,
    pub GetSecurityId: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManagerEx,
            pwszUrl: LPCWSTR,
            pbSecurityId: *mut BYTE,
            pcbSecurityId: *mut DWORD,
            dwReserved: DWORD_PTR,
        ) -> HRESULT,
    >,
    pub ProcessUrlAction: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManagerEx,
            pwszUrl: LPCWSTR,
            dwAction: DWORD,
            pPolicy: *mut BYTE,
            cbPolicy: DWORD,
            pContext: *mut BYTE,
            cbContext: DWORD,
            dwFlags: DWORD,
            dwReserved: DWORD,
        ) -> HRESULT,
    >,
    pub QueryCustomPolicy: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManagerEx,
            pwszUrl: LPCWSTR,
            guidKey: *const GUID,
            ppPolicy: *mut *mut BYTE,
            pcbPolicy: *mut DWORD,
            pContext: *mut BYTE,
            cbContext: DWORD,
            dwReserved: DWORD,
        ) -> HRESULT,
    >,
    pub SetZoneMapping: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManagerEx,
            dwZone: DWORD,
            lpszPattern: LPCWSTR,
            dwFlags: DWORD,
        ) -> HRESULT,
    >,
    pub GetZoneMappings: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManagerEx,
            dwZone: DWORD,
            ppenumString: *mut *mut IEnumString,
            dwFlags: DWORD,
        ) -> HRESULT,
    >,
    pub ProcessUrlActionEx: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManagerEx,
            pwszUrl: LPCWSTR,
            dwAction: DWORD,
            pPolicy: *mut BYTE,
            cbPolicy: DWORD,
            pContext: *mut BYTE,
            cbContext: DWORD,
            dwFlags: DWORD,
            dwReserved: DWORD,
            pdwOutFlags: *mut DWORD,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IInternetSecurityManagerExVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IInternetSecurityManagerExVtbl>(),
        96usize,
        concat!("Size of: ", stringify!(IInternetSecurityManagerExVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetSecurityManagerExVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetSecurityManagerExVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerExVtbl>())).QueryInterface as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerExVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerExVtbl>())).AddRef as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerExVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerExVtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerExVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerExVtbl>())).SetSecuritySite as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerExVtbl),
            "::",
            stringify!(SetSecuritySite)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerExVtbl>())).GetSecuritySite as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerExVtbl),
            "::",
            stringify!(GetSecuritySite)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerExVtbl>())).MapUrlToZone as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerExVtbl),
            "::",
            stringify!(MapUrlToZone)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerExVtbl>())).GetSecurityId as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerExVtbl),
            "::",
            stringify!(GetSecurityId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerExVtbl>())).ProcessUrlAction as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerExVtbl),
            "::",
            stringify!(ProcessUrlAction)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerExVtbl>())).QueryCustomPolicy as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerExVtbl),
            "::",
            stringify!(QueryCustomPolicy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerExVtbl>())).SetZoneMapping as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerExVtbl),
            "::",
            stringify!(SetZoneMapping)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerExVtbl>())).GetZoneMappings as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerExVtbl),
            "::",
            stringify!(GetZoneMappings)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerExVtbl>())).ProcessUrlActionEx
                as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerExVtbl),
            "::",
            stringify!(ProcessUrlActionEx)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetSecurityManagerEx {
    pub lpVtbl: *mut IInternetSecurityManagerExVtbl,
}
#[test]
fn bindgen_test_layout_IInternetSecurityManagerEx() {
    assert_eq!(
        ::std::mem::size_of::<IInternetSecurityManagerEx>(),
        8usize,
        concat!("Size of: ", stringify!(IInternetSecurityManagerEx))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetSecurityManagerEx>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetSecurityManagerEx))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerEx>())).lpVtbl as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerEx),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0040_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0040_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IInternetSecurityManagerEx2: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetSecurityManagerEx2Vtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManagerEx2,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IInternetSecurityManagerEx2) -> ULONG,
    >,
    pub Release: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IInternetSecurityManagerEx2) -> ULONG,
    >,
    pub SetSecuritySite: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManagerEx2,
            pSite: *mut IInternetSecurityMgrSite,
        ) -> HRESULT,
    >,
    pub GetSecuritySite: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManagerEx2,
            ppSite: *mut *mut IInternetSecurityMgrSite,
        ) -> HRESULT,
    >,
    pub MapUrlToZone: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManagerEx2,
            pwszUrl: LPCWSTR,
            pdwZone: *mut DWORD,
            dwFlags: DWORD,
        ) -> HRESULT,
    >,
    pub GetSecurityId: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManagerEx2,
            pwszUrl: LPCWSTR,
            pbSecurityId: *mut BYTE,
            pcbSecurityId: *mut DWORD,
            dwReserved: DWORD_PTR,
        ) -> HRESULT,
    >,
    pub ProcessUrlAction: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManagerEx2,
            pwszUrl: LPCWSTR,
            dwAction: DWORD,
            pPolicy: *mut BYTE,
            cbPolicy: DWORD,
            pContext: *mut BYTE,
            cbContext: DWORD,
            dwFlags: DWORD,
            dwReserved: DWORD,
        ) -> HRESULT,
    >,
    pub QueryCustomPolicy: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManagerEx2,
            pwszUrl: LPCWSTR,
            guidKey: *const GUID,
            ppPolicy: *mut *mut BYTE,
            pcbPolicy: *mut DWORD,
            pContext: *mut BYTE,
            cbContext: DWORD,
            dwReserved: DWORD,
        ) -> HRESULT,
    >,
    pub SetZoneMapping: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManagerEx2,
            dwZone: DWORD,
            lpszPattern: LPCWSTR,
            dwFlags: DWORD,
        ) -> HRESULT,
    >,
    pub GetZoneMappings: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManagerEx2,
            dwZone: DWORD,
            ppenumString: *mut *mut IEnumString,
            dwFlags: DWORD,
        ) -> HRESULT,
    >,
    pub ProcessUrlActionEx: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManagerEx2,
            pwszUrl: LPCWSTR,
            dwAction: DWORD,
            pPolicy: *mut BYTE,
            cbPolicy: DWORD,
            pContext: *mut BYTE,
            cbContext: DWORD,
            dwFlags: DWORD,
            dwReserved: DWORD,
            pdwOutFlags: *mut DWORD,
        ) -> HRESULT,
    >,
    pub MapUrlToZoneEx2: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManagerEx2,
            pUri: *mut IUri,
            pdwZone: *mut DWORD,
            dwFlags: DWORD,
            ppwszMappedUrl: *mut LPWSTR,
            pdwOutFlags: *mut DWORD,
        ) -> HRESULT,
    >,
    pub ProcessUrlActionEx2: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManagerEx2,
            pUri: *mut IUri,
            dwAction: DWORD,
            pPolicy: *mut BYTE,
            cbPolicy: DWORD,
            pContext: *mut BYTE,
            cbContext: DWORD,
            dwFlags: DWORD,
            dwReserved: DWORD_PTR,
            pdwOutFlags: *mut DWORD,
        ) -> HRESULT,
    >,
    pub GetSecurityIdEx2: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManagerEx2,
            pUri: *mut IUri,
            pbSecurityId: *mut BYTE,
            pcbSecurityId: *mut DWORD,
            dwReserved: DWORD_PTR,
        ) -> HRESULT,
    >,
    pub QueryCustomPolicyEx2: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetSecurityManagerEx2,
            pUri: *mut IUri,
            guidKey: *const GUID,
            ppPolicy: *mut *mut BYTE,
            pcbPolicy: *mut DWORD,
            pContext: *mut BYTE,
            cbContext: DWORD,
            dwReserved: DWORD_PTR,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IInternetSecurityManagerEx2Vtbl() {
    assert_eq!(
        ::std::mem::size_of::<IInternetSecurityManagerEx2Vtbl>(),
        128usize,
        concat!("Size of: ", stringify!(IInternetSecurityManagerEx2Vtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetSecurityManagerEx2Vtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetSecurityManagerEx2Vtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerEx2Vtbl>())).QueryInterface as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerEx2Vtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerEx2Vtbl>())).AddRef as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerEx2Vtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerEx2Vtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerEx2Vtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerEx2Vtbl>())).SetSecuritySite as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerEx2Vtbl),
            "::",
            stringify!(SetSecuritySite)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerEx2Vtbl>())).GetSecuritySite as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerEx2Vtbl),
            "::",
            stringify!(GetSecuritySite)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerEx2Vtbl>())).MapUrlToZone as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerEx2Vtbl),
            "::",
            stringify!(MapUrlToZone)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerEx2Vtbl>())).GetSecurityId as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerEx2Vtbl),
            "::",
            stringify!(GetSecurityId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerEx2Vtbl>())).ProcessUrlAction as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerEx2Vtbl),
            "::",
            stringify!(ProcessUrlAction)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerEx2Vtbl>())).QueryCustomPolicy
                as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerEx2Vtbl),
            "::",
            stringify!(QueryCustomPolicy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerEx2Vtbl>())).SetZoneMapping as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerEx2Vtbl),
            "::",
            stringify!(SetZoneMapping)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerEx2Vtbl>())).GetZoneMappings as *const _
                as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerEx2Vtbl),
            "::",
            stringify!(GetZoneMappings)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerEx2Vtbl>())).ProcessUrlActionEx
                as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerEx2Vtbl),
            "::",
            stringify!(ProcessUrlActionEx)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerEx2Vtbl>())).MapUrlToZoneEx2 as *const _
                as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerEx2Vtbl),
            "::",
            stringify!(MapUrlToZoneEx2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerEx2Vtbl>())).ProcessUrlActionEx2
                as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerEx2Vtbl),
            "::",
            stringify!(ProcessUrlActionEx2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerEx2Vtbl>())).GetSecurityIdEx2 as *const _
                as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerEx2Vtbl),
            "::",
            stringify!(GetSecurityIdEx2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerEx2Vtbl>())).QueryCustomPolicyEx2
                as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerEx2Vtbl),
            "::",
            stringify!(QueryCustomPolicyEx2)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetSecurityManagerEx2 {
    pub lpVtbl: *mut IInternetSecurityManagerEx2Vtbl,
}
#[test]
fn bindgen_test_layout_IInternetSecurityManagerEx2() {
    assert_eq!(
        ::std::mem::size_of::<IInternetSecurityManagerEx2>(),
        8usize,
        concat!("Size of: ", stringify!(IInternetSecurityManagerEx2))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetSecurityManagerEx2>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetSecurityManagerEx2))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetSecurityManagerEx2>())).lpVtbl as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetSecurityManagerEx2),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0041_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0041_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IZoneIdentifier: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IZoneIdentifierVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IZoneIdentifier,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IZoneIdentifier) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IZoneIdentifier) -> ULONG>,
    pub GetId: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IZoneIdentifier, pdwZone: *mut DWORD) -> HRESULT,
    >,
    pub SetId: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IZoneIdentifier, dwZone: DWORD) -> HRESULT,
    >,
    pub Remove: ::std::option::Option<unsafe extern "C" fn(This: *mut IZoneIdentifier) -> HRESULT>,
}
#[test]
fn bindgen_test_layout_IZoneIdentifierVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IZoneIdentifierVtbl>(),
        48usize,
        concat!("Size of: ", stringify!(IZoneIdentifierVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IZoneIdentifierVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IZoneIdentifierVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IZoneIdentifierVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IZoneIdentifierVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IZoneIdentifierVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IZoneIdentifierVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IZoneIdentifierVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IZoneIdentifierVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IZoneIdentifierVtbl>())).GetId as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IZoneIdentifierVtbl),
            "::",
            stringify!(GetId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IZoneIdentifierVtbl>())).SetId as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IZoneIdentifierVtbl),
            "::",
            stringify!(SetId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IZoneIdentifierVtbl>())).Remove as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IZoneIdentifierVtbl),
            "::",
            stringify!(Remove)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IZoneIdentifier {
    pub lpVtbl: *mut IZoneIdentifierVtbl,
}
#[test]
fn bindgen_test_layout_IZoneIdentifier() {
    assert_eq!(
        ::std::mem::size_of::<IZoneIdentifier>(),
        8usize,
        concat!("Size of: ", stringify!(IZoneIdentifier))
    );
    assert_eq!(
        ::std::mem::align_of::<IZoneIdentifier>(),
        8usize,
        concat!("Alignment of ", stringify!(IZoneIdentifier))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IZoneIdentifier>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IZoneIdentifier),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0042_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0042_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IZoneIdentifier2: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IZoneIdentifier2Vtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IZoneIdentifier2,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IZoneIdentifier2) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IZoneIdentifier2) -> ULONG>,
    pub GetId: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IZoneIdentifier2, pdwZone: *mut DWORD) -> HRESULT,
    >,
    pub SetId: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IZoneIdentifier2, dwZone: DWORD) -> HRESULT,
    >,
    pub Remove: ::std::option::Option<unsafe extern "C" fn(This: *mut IZoneIdentifier2) -> HRESULT>,
    pub GetLastWriterPackageFamilyName: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IZoneIdentifier2,
            packageFamilyName: *mut LPWSTR,
        ) -> HRESULT,
    >,
    pub SetLastWriterPackageFamilyName: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IZoneIdentifier2, packageFamilyName: LPCWSTR) -> HRESULT,
    >,
    pub RemoveLastWriterPackageFamilyName:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IZoneIdentifier2) -> HRESULT>,
    pub GetAppZoneId: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IZoneIdentifier2, zone: *mut DWORD) -> HRESULT,
    >,
    pub SetAppZoneId: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IZoneIdentifier2, zone: DWORD) -> HRESULT,
    >,
    pub RemoveAppZoneId:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IZoneIdentifier2) -> HRESULT>,
}
#[test]
fn bindgen_test_layout_IZoneIdentifier2Vtbl() {
    assert_eq!(
        ::std::mem::size_of::<IZoneIdentifier2Vtbl>(),
        96usize,
        concat!("Size of: ", stringify!(IZoneIdentifier2Vtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IZoneIdentifier2Vtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IZoneIdentifier2Vtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IZoneIdentifier2Vtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IZoneIdentifier2Vtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IZoneIdentifier2Vtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IZoneIdentifier2Vtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IZoneIdentifier2Vtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IZoneIdentifier2Vtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IZoneIdentifier2Vtbl>())).GetId as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IZoneIdentifier2Vtbl),
            "::",
            stringify!(GetId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IZoneIdentifier2Vtbl>())).SetId as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IZoneIdentifier2Vtbl),
            "::",
            stringify!(SetId)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IZoneIdentifier2Vtbl>())).Remove as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IZoneIdentifier2Vtbl),
            "::",
            stringify!(Remove)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IZoneIdentifier2Vtbl>())).GetLastWriterPackageFamilyName
                as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IZoneIdentifier2Vtbl),
            "::",
            stringify!(GetLastWriterPackageFamilyName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IZoneIdentifier2Vtbl>())).SetLastWriterPackageFamilyName
                as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IZoneIdentifier2Vtbl),
            "::",
            stringify!(SetLastWriterPackageFamilyName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IZoneIdentifier2Vtbl>())).RemoveLastWriterPackageFamilyName
                as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IZoneIdentifier2Vtbl),
            "::",
            stringify!(RemoveLastWriterPackageFamilyName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IZoneIdentifier2Vtbl>())).GetAppZoneId as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IZoneIdentifier2Vtbl),
            "::",
            stringify!(GetAppZoneId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IZoneIdentifier2Vtbl>())).SetAppZoneId as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IZoneIdentifier2Vtbl),
            "::",
            stringify!(SetAppZoneId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IZoneIdentifier2Vtbl>())).RemoveAppZoneId as *const _ as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IZoneIdentifier2Vtbl),
            "::",
            stringify!(RemoveAppZoneId)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IZoneIdentifier2 {
    pub lpVtbl: *mut IZoneIdentifier2Vtbl,
}
#[test]
fn bindgen_test_layout_IZoneIdentifier2() {
    assert_eq!(
        ::std::mem::size_of::<IZoneIdentifier2>(),
        8usize,
        concat!("Size of: ", stringify!(IZoneIdentifier2))
    );
    assert_eq!(
        ::std::mem::align_of::<IZoneIdentifier2>(),
        8usize,
        concat!("Alignment of ", stringify!(IZoneIdentifier2))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IZoneIdentifier2>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IZoneIdentifier2),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0043_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0043_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IInternetHostSecurityManager: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetHostSecurityManagerVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetHostSecurityManager,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IInternetHostSecurityManager) -> ULONG,
    >,
    pub Release: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IInternetHostSecurityManager) -> ULONG,
    >,
    pub GetSecurityId: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetHostSecurityManager,
            pbSecurityId: *mut BYTE,
            pcbSecurityId: *mut DWORD,
            dwReserved: DWORD_PTR,
        ) -> HRESULT,
    >,
    pub ProcessUrlAction: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetHostSecurityManager,
            dwAction: DWORD,
            pPolicy: *mut BYTE,
            cbPolicy: DWORD,
            pContext: *mut BYTE,
            cbContext: DWORD,
            dwFlags: DWORD,
            dwReserved: DWORD,
        ) -> HRESULT,
    >,
    pub QueryCustomPolicy: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetHostSecurityManager,
            guidKey: *const GUID,
            ppPolicy: *mut *mut BYTE,
            pcbPolicy: *mut DWORD,
            pContext: *mut BYTE,
            cbContext: DWORD,
            dwReserved: DWORD,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IInternetHostSecurityManagerVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IInternetHostSecurityManagerVtbl>(),
        48usize,
        concat!("Size of: ", stringify!(IInternetHostSecurityManagerVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetHostSecurityManagerVtbl>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(IInternetHostSecurityManagerVtbl)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetHostSecurityManagerVtbl>())).QueryInterface as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetHostSecurityManagerVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetHostSecurityManagerVtbl>())).AddRef as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetHostSecurityManagerVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetHostSecurityManagerVtbl>())).Release as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetHostSecurityManagerVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetHostSecurityManagerVtbl>())).GetSecurityId as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetHostSecurityManagerVtbl),
            "::",
            stringify!(GetSecurityId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetHostSecurityManagerVtbl>())).ProcessUrlAction
                as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetHostSecurityManagerVtbl),
            "::",
            stringify!(ProcessUrlAction)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetHostSecurityManagerVtbl>())).QueryCustomPolicy
                as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetHostSecurityManagerVtbl),
            "::",
            stringify!(QueryCustomPolicy)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetHostSecurityManager {
    pub lpVtbl: *mut IInternetHostSecurityManagerVtbl,
}
#[test]
fn bindgen_test_layout_IInternetHostSecurityManager() {
    assert_eq!(
        ::std::mem::size_of::<IInternetHostSecurityManager>(),
        8usize,
        concat!("Size of: ", stringify!(IInternetHostSecurityManager))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetHostSecurityManager>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetHostSecurityManager))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetHostSecurityManager>())).lpVtbl as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetHostSecurityManager),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static GUID_CUSTOM_LOCALMACHINEZONEUNLOCKED: GUID;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0044_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0044_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPURLZONEMANAGER = *mut IInternetZoneManager;
pub const tagURLZONE_URLZONE_INVALID: tagURLZONE = -1;
pub const tagURLZONE_URLZONE_PREDEFINED_MIN: tagURLZONE = 0;
pub const tagURLZONE_URLZONE_LOCAL_MACHINE: tagURLZONE = 0;
pub const tagURLZONE_URLZONE_INTRANET: tagURLZONE = 1;
pub const tagURLZONE_URLZONE_TRUSTED: tagURLZONE = 2;
pub const tagURLZONE_URLZONE_INTERNET: tagURLZONE = 3;
pub const tagURLZONE_URLZONE_UNTRUSTED: tagURLZONE = 4;
pub const tagURLZONE_URLZONE_PREDEFINED_MAX: tagURLZONE = 999;
pub const tagURLZONE_URLZONE_USER_MIN: tagURLZONE = 1000;
pub const tagURLZONE_URLZONE_USER_MAX: tagURLZONE = 10000;
pub type tagURLZONE = ::std::os::raw::c_int;
pub use self::tagURLZONE as URLZONE;
pub const tagURLTEMPLATE_URLTEMPLATE_CUSTOM: tagURLTEMPLATE = 0;
pub const tagURLTEMPLATE_URLTEMPLATE_PREDEFINED_MIN: tagURLTEMPLATE = 65536;
pub const tagURLTEMPLATE_URLTEMPLATE_LOW: tagURLTEMPLATE = 65536;
pub const tagURLTEMPLATE_URLTEMPLATE_MEDLOW: tagURLTEMPLATE = 66816;
pub const tagURLTEMPLATE_URLTEMPLATE_MEDIUM: tagURLTEMPLATE = 69632;
pub const tagURLTEMPLATE_URLTEMPLATE_MEDHIGH: tagURLTEMPLATE = 70912;
pub const tagURLTEMPLATE_URLTEMPLATE_HIGH: tagURLTEMPLATE = 73728;
pub const tagURLTEMPLATE_URLTEMPLATE_PREDEFINED_MAX: tagURLTEMPLATE = 131072;
pub type tagURLTEMPLATE = ::std::os::raw::c_int;
pub use self::tagURLTEMPLATE as URLTEMPLATE;
pub const __MIDL_IInternetZoneManager_0001_MAX_ZONE_PATH: __MIDL_IInternetZoneManager_0001 = 260;
pub const __MIDL_IInternetZoneManager_0001_MAX_ZONE_DESCRIPTION: __MIDL_IInternetZoneManager_0001 =
    200;
pub type __MIDL_IInternetZoneManager_0001 = ::std::os::raw::c_int;
pub const __MIDL_IInternetZoneManager_0002_ZAFLAGS_CUSTOM_EDIT: __MIDL_IInternetZoneManager_0002 =
    1;
pub const __MIDL_IInternetZoneManager_0002_ZAFLAGS_ADD_SITES: __MIDL_IInternetZoneManager_0002 = 2;
pub const __MIDL_IInternetZoneManager_0002_ZAFLAGS_REQUIRE_VERIFICATION:
    __MIDL_IInternetZoneManager_0002 = 4;
pub const __MIDL_IInternetZoneManager_0002_ZAFLAGS_INCLUDE_PROXY_OVERRIDE:
    __MIDL_IInternetZoneManager_0002 = 8;
pub const __MIDL_IInternetZoneManager_0002_ZAFLAGS_INCLUDE_INTRANET_SITES:
    __MIDL_IInternetZoneManager_0002 = 16;
pub const __MIDL_IInternetZoneManager_0002_ZAFLAGS_NO_UI: __MIDL_IInternetZoneManager_0002 = 32;
pub const __MIDL_IInternetZoneManager_0002_ZAFLAGS_SUPPORTS_VERIFICATION:
    __MIDL_IInternetZoneManager_0002 = 64;
pub const __MIDL_IInternetZoneManager_0002_ZAFLAGS_UNC_AS_INTRANET:
    __MIDL_IInternetZoneManager_0002 = 128;
pub const __MIDL_IInternetZoneManager_0002_ZAFLAGS_DETECT_INTRANET:
    __MIDL_IInternetZoneManager_0002 = 256;
pub const __MIDL_IInternetZoneManager_0002_ZAFLAGS_USE_LOCKED_ZONES:
    __MIDL_IInternetZoneManager_0002 = 65536;
pub const __MIDL_IInternetZoneManager_0002_ZAFLAGS_VERIFY_TEMPLATE_SETTINGS:
    __MIDL_IInternetZoneManager_0002 = 131072;
pub const __MIDL_IInternetZoneManager_0002_ZAFLAGS_NO_CACHE: __MIDL_IInternetZoneManager_0002 =
    262144;
pub type __MIDL_IInternetZoneManager_0002 = ::std::os::raw::c_int;
pub use self::__MIDL_IInternetZoneManager_0002 as ZAFLAGS;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _ZONEATTRIBUTES {
    pub cbSize: ULONG,
    pub szDisplayName: [WCHAR; 260usize],
    pub szDescription: [WCHAR; 200usize],
    pub szIconPath: [WCHAR; 260usize],
    pub dwTemplateMinLevel: DWORD,
    pub dwTemplateRecommended: DWORD,
    pub dwTemplateCurrentLevel: DWORD,
    pub dwFlags: DWORD,
}
#[test]
fn bindgen_test_layout__ZONEATTRIBUTES() {
    assert_eq!(
        ::std::mem::size_of::<_ZONEATTRIBUTES>(),
        1460usize,
        concat!("Size of: ", stringify!(_ZONEATTRIBUTES))
    );
    assert_eq!(
        ::std::mem::align_of::<_ZONEATTRIBUTES>(),
        4usize,
        concat!("Alignment of ", stringify!(_ZONEATTRIBUTES))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ZONEATTRIBUTES>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ZONEATTRIBUTES),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ZONEATTRIBUTES>())).szDisplayName as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_ZONEATTRIBUTES),
            "::",
            stringify!(szDisplayName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ZONEATTRIBUTES>())).szDescription as *const _ as usize },
        524usize,
        concat!(
            "Offset of field: ",
            stringify!(_ZONEATTRIBUTES),
            "::",
            stringify!(szDescription)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ZONEATTRIBUTES>())).szIconPath as *const _ as usize },
        924usize,
        concat!(
            "Offset of field: ",
            stringify!(_ZONEATTRIBUTES),
            "::",
            stringify!(szIconPath)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ZONEATTRIBUTES>())).dwTemplateMinLevel as *const _ as usize
        },
        1444usize,
        concat!(
            "Offset of field: ",
            stringify!(_ZONEATTRIBUTES),
            "::",
            stringify!(dwTemplateMinLevel)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ZONEATTRIBUTES>())).dwTemplateRecommended as *const _ as usize
        },
        1448usize,
        concat!(
            "Offset of field: ",
            stringify!(_ZONEATTRIBUTES),
            "::",
            stringify!(dwTemplateRecommended)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ZONEATTRIBUTES>())).dwTemplateCurrentLevel as *const _ as usize
        },
        1452usize,
        concat!(
            "Offset of field: ",
            stringify!(_ZONEATTRIBUTES),
            "::",
            stringify!(dwTemplateCurrentLevel)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_ZONEATTRIBUTES>())).dwFlags as *const _ as usize },
        1456usize,
        concat!(
            "Offset of field: ",
            stringify!(_ZONEATTRIBUTES),
            "::",
            stringify!(dwFlags)
        )
    );
}
pub type ZONEATTRIBUTES = _ZONEATTRIBUTES;
pub type LPZONEATTRIBUTES = *mut _ZONEATTRIBUTES;
pub const _URLZONEREG_URLZONEREG_DEFAULT: _URLZONEREG = 0;
pub const _URLZONEREG_URLZONEREG_HKLM: _URLZONEREG = 1;
pub const _URLZONEREG_URLZONEREG_HKCU: _URLZONEREG = 2;
pub type _URLZONEREG = ::std::os::raw::c_int;
pub use self::_URLZONEREG as URLZONEREG;
extern "C" {
    pub static IID_IInternetZoneManager: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetZoneManagerVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManager,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetZoneManager) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetZoneManager) -> ULONG>,
    pub GetZoneAttributes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManager,
            dwZone: DWORD,
            pZoneAttributes: *mut ZONEATTRIBUTES,
        ) -> HRESULT,
    >,
    pub SetZoneAttributes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManager,
            dwZone: DWORD,
            pZoneAttributes: *mut ZONEATTRIBUTES,
        ) -> HRESULT,
    >,
    pub GetZoneCustomPolicy: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManager,
            dwZone: DWORD,
            guidKey: *const GUID,
            ppPolicy: *mut *mut BYTE,
            pcbPolicy: *mut DWORD,
            urlZoneReg: URLZONEREG,
        ) -> HRESULT,
    >,
    pub SetZoneCustomPolicy: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManager,
            dwZone: DWORD,
            guidKey: *const GUID,
            pPolicy: *mut BYTE,
            cbPolicy: DWORD,
            urlZoneReg: URLZONEREG,
        ) -> HRESULT,
    >,
    pub GetZoneActionPolicy: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManager,
            dwZone: DWORD,
            dwAction: DWORD,
            pPolicy: *mut BYTE,
            cbPolicy: DWORD,
            urlZoneReg: URLZONEREG,
        ) -> HRESULT,
    >,
    pub SetZoneActionPolicy: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManager,
            dwZone: DWORD,
            dwAction: DWORD,
            pPolicy: *mut BYTE,
            cbPolicy: DWORD,
            urlZoneReg: URLZONEREG,
        ) -> HRESULT,
    >,
    pub PromptAction: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManager,
            dwAction: DWORD,
            hwndParent: HWND,
            pwszUrl: LPCWSTR,
            pwszText: LPCWSTR,
            dwPromptFlags: DWORD,
        ) -> HRESULT,
    >,
    pub LogAction: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManager,
            dwAction: DWORD,
            pwszUrl: LPCWSTR,
            pwszText: LPCWSTR,
            dwLogFlags: DWORD,
        ) -> HRESULT,
    >,
    pub CreateZoneEnumerator: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManager,
            pdwEnum: *mut DWORD,
            pdwCount: *mut DWORD,
            dwFlags: DWORD,
        ) -> HRESULT,
    >,
    pub GetZoneAt: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManager,
            dwEnum: DWORD,
            dwIndex: DWORD,
            pdwZone: *mut DWORD,
        ) -> HRESULT,
    >,
    pub DestroyZoneEnumerator: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IInternetZoneManager, dwEnum: DWORD) -> HRESULT,
    >,
    pub CopyTemplatePoliciesToZone: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManager,
            dwTemplate: DWORD,
            dwZone: DWORD,
            dwReserved: DWORD,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IInternetZoneManagerVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IInternetZoneManagerVtbl>(),
        120usize,
        concat!("Size of: ", stringify!(IInternetZoneManagerVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetZoneManagerVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetZoneManagerVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetZoneManagerVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerVtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerVtbl>())).GetZoneAttributes as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerVtbl),
            "::",
            stringify!(GetZoneAttributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerVtbl>())).SetZoneAttributes as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerVtbl),
            "::",
            stringify!(SetZoneAttributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerVtbl>())).GetZoneCustomPolicy as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerVtbl),
            "::",
            stringify!(GetZoneCustomPolicy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerVtbl>())).SetZoneCustomPolicy as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerVtbl),
            "::",
            stringify!(SetZoneCustomPolicy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerVtbl>())).GetZoneActionPolicy as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerVtbl),
            "::",
            stringify!(GetZoneActionPolicy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerVtbl>())).SetZoneActionPolicy as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerVtbl),
            "::",
            stringify!(SetZoneActionPolicy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerVtbl>())).PromptAction as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerVtbl),
            "::",
            stringify!(PromptAction)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerVtbl>())).LogAction as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerVtbl),
            "::",
            stringify!(LogAction)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerVtbl>())).CreateZoneEnumerator as *const _
                as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerVtbl),
            "::",
            stringify!(CreateZoneEnumerator)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerVtbl>())).GetZoneAt as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerVtbl),
            "::",
            stringify!(GetZoneAt)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerVtbl>())).DestroyZoneEnumerator as *const _
                as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerVtbl),
            "::",
            stringify!(DestroyZoneEnumerator)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerVtbl>())).CopyTemplatePoliciesToZone
                as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerVtbl),
            "::",
            stringify!(CopyTemplatePoliciesToZone)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetZoneManager {
    pub lpVtbl: *mut IInternetZoneManagerVtbl,
}
#[test]
fn bindgen_test_layout_IInternetZoneManager() {
    assert_eq!(
        ::std::mem::size_of::<IInternetZoneManager>(),
        8usize,
        concat!("Size of: ", stringify!(IInternetZoneManager))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetZoneManager>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetZoneManager))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetZoneManager>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManager),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0045_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0045_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IInternetZoneManagerEx: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetZoneManagerExVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManagerEx,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetZoneManagerEx) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetZoneManagerEx) -> ULONG>,
    pub GetZoneAttributes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManagerEx,
            dwZone: DWORD,
            pZoneAttributes: *mut ZONEATTRIBUTES,
        ) -> HRESULT,
    >,
    pub SetZoneAttributes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManagerEx,
            dwZone: DWORD,
            pZoneAttributes: *mut ZONEATTRIBUTES,
        ) -> HRESULT,
    >,
    pub GetZoneCustomPolicy: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManagerEx,
            dwZone: DWORD,
            guidKey: *const GUID,
            ppPolicy: *mut *mut BYTE,
            pcbPolicy: *mut DWORD,
            urlZoneReg: URLZONEREG,
        ) -> HRESULT,
    >,
    pub SetZoneCustomPolicy: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManagerEx,
            dwZone: DWORD,
            guidKey: *const GUID,
            pPolicy: *mut BYTE,
            cbPolicy: DWORD,
            urlZoneReg: URLZONEREG,
        ) -> HRESULT,
    >,
    pub GetZoneActionPolicy: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManagerEx,
            dwZone: DWORD,
            dwAction: DWORD,
            pPolicy: *mut BYTE,
            cbPolicy: DWORD,
            urlZoneReg: URLZONEREG,
        ) -> HRESULT,
    >,
    pub SetZoneActionPolicy: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManagerEx,
            dwZone: DWORD,
            dwAction: DWORD,
            pPolicy: *mut BYTE,
            cbPolicy: DWORD,
            urlZoneReg: URLZONEREG,
        ) -> HRESULT,
    >,
    pub PromptAction: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManagerEx,
            dwAction: DWORD,
            hwndParent: HWND,
            pwszUrl: LPCWSTR,
            pwszText: LPCWSTR,
            dwPromptFlags: DWORD,
        ) -> HRESULT,
    >,
    pub LogAction: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManagerEx,
            dwAction: DWORD,
            pwszUrl: LPCWSTR,
            pwszText: LPCWSTR,
            dwLogFlags: DWORD,
        ) -> HRESULT,
    >,
    pub CreateZoneEnumerator: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManagerEx,
            pdwEnum: *mut DWORD,
            pdwCount: *mut DWORD,
            dwFlags: DWORD,
        ) -> HRESULT,
    >,
    pub GetZoneAt: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManagerEx,
            dwEnum: DWORD,
            dwIndex: DWORD,
            pdwZone: *mut DWORD,
        ) -> HRESULT,
    >,
    pub DestroyZoneEnumerator: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IInternetZoneManagerEx, dwEnum: DWORD) -> HRESULT,
    >,
    pub CopyTemplatePoliciesToZone: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManagerEx,
            dwTemplate: DWORD,
            dwZone: DWORD,
            dwReserved: DWORD,
        ) -> HRESULT,
    >,
    pub GetZoneActionPolicyEx: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManagerEx,
            dwZone: DWORD,
            dwAction: DWORD,
            pPolicy: *mut BYTE,
            cbPolicy: DWORD,
            urlZoneReg: URLZONEREG,
            dwFlags: DWORD,
        ) -> HRESULT,
    >,
    pub SetZoneActionPolicyEx: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManagerEx,
            dwZone: DWORD,
            dwAction: DWORD,
            pPolicy: *mut BYTE,
            cbPolicy: DWORD,
            urlZoneReg: URLZONEREG,
            dwFlags: DWORD,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IInternetZoneManagerExVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IInternetZoneManagerExVtbl>(),
        136usize,
        concat!("Size of: ", stringify!(IInternetZoneManagerExVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetZoneManagerExVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetZoneManagerExVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerExVtbl>())).QueryInterface as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerExVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerExVtbl>())).AddRef as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerExVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerExVtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerExVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerExVtbl>())).GetZoneAttributes as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerExVtbl),
            "::",
            stringify!(GetZoneAttributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerExVtbl>())).SetZoneAttributes as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerExVtbl),
            "::",
            stringify!(SetZoneAttributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerExVtbl>())).GetZoneCustomPolicy as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerExVtbl),
            "::",
            stringify!(GetZoneCustomPolicy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerExVtbl>())).SetZoneCustomPolicy as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerExVtbl),
            "::",
            stringify!(SetZoneCustomPolicy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerExVtbl>())).GetZoneActionPolicy as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerExVtbl),
            "::",
            stringify!(GetZoneActionPolicy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerExVtbl>())).SetZoneActionPolicy as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerExVtbl),
            "::",
            stringify!(SetZoneActionPolicy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerExVtbl>())).PromptAction as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerExVtbl),
            "::",
            stringify!(PromptAction)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerExVtbl>())).LogAction as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerExVtbl),
            "::",
            stringify!(LogAction)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerExVtbl>())).CreateZoneEnumerator as *const _
                as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerExVtbl),
            "::",
            stringify!(CreateZoneEnumerator)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerExVtbl>())).GetZoneAt as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerExVtbl),
            "::",
            stringify!(GetZoneAt)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerExVtbl>())).DestroyZoneEnumerator as *const _
                as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerExVtbl),
            "::",
            stringify!(DestroyZoneEnumerator)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerExVtbl>())).CopyTemplatePoliciesToZone
                as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerExVtbl),
            "::",
            stringify!(CopyTemplatePoliciesToZone)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerExVtbl>())).GetZoneActionPolicyEx as *const _
                as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerExVtbl),
            "::",
            stringify!(GetZoneActionPolicyEx)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerExVtbl>())).SetZoneActionPolicyEx as *const _
                as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerExVtbl),
            "::",
            stringify!(SetZoneActionPolicyEx)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetZoneManagerEx {
    pub lpVtbl: *mut IInternetZoneManagerExVtbl,
}
#[test]
fn bindgen_test_layout_IInternetZoneManagerEx() {
    assert_eq!(
        ::std::mem::size_of::<IInternetZoneManagerEx>(),
        8usize,
        concat!("Size of: ", stringify!(IInternetZoneManagerEx))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetZoneManagerEx>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetZoneManagerEx))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetZoneManagerEx>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerEx),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0046_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0046_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IInternetZoneManagerEx2: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetZoneManagerEx2Vtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManagerEx2,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetZoneManagerEx2) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetZoneManagerEx2) -> ULONG>,
    pub GetZoneAttributes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManagerEx2,
            dwZone: DWORD,
            pZoneAttributes: *mut ZONEATTRIBUTES,
        ) -> HRESULT,
    >,
    pub SetZoneAttributes: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManagerEx2,
            dwZone: DWORD,
            pZoneAttributes: *mut ZONEATTRIBUTES,
        ) -> HRESULT,
    >,
    pub GetZoneCustomPolicy: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManagerEx2,
            dwZone: DWORD,
            guidKey: *const GUID,
            ppPolicy: *mut *mut BYTE,
            pcbPolicy: *mut DWORD,
            urlZoneReg: URLZONEREG,
        ) -> HRESULT,
    >,
    pub SetZoneCustomPolicy: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManagerEx2,
            dwZone: DWORD,
            guidKey: *const GUID,
            pPolicy: *mut BYTE,
            cbPolicy: DWORD,
            urlZoneReg: URLZONEREG,
        ) -> HRESULT,
    >,
    pub GetZoneActionPolicy: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManagerEx2,
            dwZone: DWORD,
            dwAction: DWORD,
            pPolicy: *mut BYTE,
            cbPolicy: DWORD,
            urlZoneReg: URLZONEREG,
        ) -> HRESULT,
    >,
    pub SetZoneActionPolicy: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManagerEx2,
            dwZone: DWORD,
            dwAction: DWORD,
            pPolicy: *mut BYTE,
            cbPolicy: DWORD,
            urlZoneReg: URLZONEREG,
        ) -> HRESULT,
    >,
    pub PromptAction: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManagerEx2,
            dwAction: DWORD,
            hwndParent: HWND,
            pwszUrl: LPCWSTR,
            pwszText: LPCWSTR,
            dwPromptFlags: DWORD,
        ) -> HRESULT,
    >,
    pub LogAction: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManagerEx2,
            dwAction: DWORD,
            pwszUrl: LPCWSTR,
            pwszText: LPCWSTR,
            dwLogFlags: DWORD,
        ) -> HRESULT,
    >,
    pub CreateZoneEnumerator: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManagerEx2,
            pdwEnum: *mut DWORD,
            pdwCount: *mut DWORD,
            dwFlags: DWORD,
        ) -> HRESULT,
    >,
    pub GetZoneAt: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManagerEx2,
            dwEnum: DWORD,
            dwIndex: DWORD,
            pdwZone: *mut DWORD,
        ) -> HRESULT,
    >,
    pub DestroyZoneEnumerator: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IInternetZoneManagerEx2, dwEnum: DWORD) -> HRESULT,
    >,
    pub CopyTemplatePoliciesToZone: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManagerEx2,
            dwTemplate: DWORD,
            dwZone: DWORD,
            dwReserved: DWORD,
        ) -> HRESULT,
    >,
    pub GetZoneActionPolicyEx: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManagerEx2,
            dwZone: DWORD,
            dwAction: DWORD,
            pPolicy: *mut BYTE,
            cbPolicy: DWORD,
            urlZoneReg: URLZONEREG,
            dwFlags: DWORD,
        ) -> HRESULT,
    >,
    pub SetZoneActionPolicyEx: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManagerEx2,
            dwZone: DWORD,
            dwAction: DWORD,
            pPolicy: *mut BYTE,
            cbPolicy: DWORD,
            urlZoneReg: URLZONEREG,
            dwFlags: DWORD,
        ) -> HRESULT,
    >,
    pub GetZoneAttributesEx: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManagerEx2,
            dwZone: DWORD,
            pZoneAttributes: *mut ZONEATTRIBUTES,
            dwFlags: DWORD,
        ) -> HRESULT,
    >,
    pub GetZoneSecurityState: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManagerEx2,
            dwZoneIndex: DWORD,
            fRespectPolicy: BOOL,
            pdwState: LPDWORD,
            pfPolicyEncountered: *mut BOOL,
        ) -> HRESULT,
    >,
    pub GetIESecurityState: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IInternetZoneManagerEx2,
            fRespectPolicy: BOOL,
            pdwState: LPDWORD,
            pfPolicyEncountered: *mut BOOL,
            fNoCache: BOOL,
        ) -> HRESULT,
    >,
    pub FixUnsecureSettings:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IInternetZoneManagerEx2) -> HRESULT>,
}
#[test]
fn bindgen_test_layout_IInternetZoneManagerEx2Vtbl() {
    assert_eq!(
        ::std::mem::size_of::<IInternetZoneManagerEx2Vtbl>(),
        168usize,
        concat!("Size of: ", stringify!(IInternetZoneManagerEx2Vtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetZoneManagerEx2Vtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetZoneManagerEx2Vtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerEx2Vtbl>())).QueryInterface as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerEx2Vtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerEx2Vtbl>())).AddRef as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerEx2Vtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerEx2Vtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerEx2Vtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerEx2Vtbl>())).GetZoneAttributes as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerEx2Vtbl),
            "::",
            stringify!(GetZoneAttributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerEx2Vtbl>())).SetZoneAttributes as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerEx2Vtbl),
            "::",
            stringify!(SetZoneAttributes)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerEx2Vtbl>())).GetZoneCustomPolicy as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerEx2Vtbl),
            "::",
            stringify!(GetZoneCustomPolicy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerEx2Vtbl>())).SetZoneCustomPolicy as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerEx2Vtbl),
            "::",
            stringify!(SetZoneCustomPolicy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerEx2Vtbl>())).GetZoneActionPolicy as *const _
                as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerEx2Vtbl),
            "::",
            stringify!(GetZoneActionPolicy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerEx2Vtbl>())).SetZoneActionPolicy as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerEx2Vtbl),
            "::",
            stringify!(SetZoneActionPolicy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerEx2Vtbl>())).PromptAction as *const _
                as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerEx2Vtbl),
            "::",
            stringify!(PromptAction)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerEx2Vtbl>())).LogAction as *const _ as usize
        },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerEx2Vtbl),
            "::",
            stringify!(LogAction)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerEx2Vtbl>())).CreateZoneEnumerator as *const _
                as usize
        },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerEx2Vtbl),
            "::",
            stringify!(CreateZoneEnumerator)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerEx2Vtbl>())).GetZoneAt as *const _ as usize
        },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerEx2Vtbl),
            "::",
            stringify!(GetZoneAt)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerEx2Vtbl>())).DestroyZoneEnumerator
                as *const _ as usize
        },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerEx2Vtbl),
            "::",
            stringify!(DestroyZoneEnumerator)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerEx2Vtbl>())).CopyTemplatePoliciesToZone
                as *const _ as usize
        },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerEx2Vtbl),
            "::",
            stringify!(CopyTemplatePoliciesToZone)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerEx2Vtbl>())).GetZoneActionPolicyEx
                as *const _ as usize
        },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerEx2Vtbl),
            "::",
            stringify!(GetZoneActionPolicyEx)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerEx2Vtbl>())).SetZoneActionPolicyEx
                as *const _ as usize
        },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerEx2Vtbl),
            "::",
            stringify!(SetZoneActionPolicyEx)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerEx2Vtbl>())).GetZoneAttributesEx as *const _
                as usize
        },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerEx2Vtbl),
            "::",
            stringify!(GetZoneAttributesEx)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerEx2Vtbl>())).GetZoneSecurityState as *const _
                as usize
        },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerEx2Vtbl),
            "::",
            stringify!(GetZoneSecurityState)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerEx2Vtbl>())).GetIESecurityState as *const _
                as usize
        },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerEx2Vtbl),
            "::",
            stringify!(GetIESecurityState)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IInternetZoneManagerEx2Vtbl>())).FixUnsecureSettings as *const _
                as usize
        },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerEx2Vtbl),
            "::",
            stringify!(FixUnsecureSettings)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IInternetZoneManagerEx2 {
    pub lpVtbl: *mut IInternetZoneManagerEx2Vtbl,
}
#[test]
fn bindgen_test_layout_IInternetZoneManagerEx2() {
    assert_eq!(
        ::std::mem::size_of::<IInternetZoneManagerEx2>(),
        8usize,
        concat!("Size of: ", stringify!(IInternetZoneManagerEx2))
    );
    assert_eq!(
        ::std::mem::align_of::<IInternetZoneManagerEx2>(),
        8usize,
        concat!("Alignment of ", stringify!(IInternetZoneManagerEx2))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IInternetZoneManagerEx2>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IInternetZoneManagerEx2),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static CLSID_SoftDistExt: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _tagCODEBASEHOLD {
    pub cbSize: ULONG,
    pub szDistUnit: LPWSTR,
    pub szCodeBase: LPWSTR,
    pub dwVersionMS: DWORD,
    pub dwVersionLS: DWORD,
    pub dwStyle: DWORD,
}
#[test]
fn bindgen_test_layout__tagCODEBASEHOLD() {
    assert_eq!(
        ::std::mem::size_of::<_tagCODEBASEHOLD>(),
        40usize,
        concat!("Size of: ", stringify!(_tagCODEBASEHOLD))
    );
    assert_eq!(
        ::std::mem::align_of::<_tagCODEBASEHOLD>(),
        8usize,
        concat!("Alignment of ", stringify!(_tagCODEBASEHOLD))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagCODEBASEHOLD>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagCODEBASEHOLD),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagCODEBASEHOLD>())).szDistUnit as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagCODEBASEHOLD),
            "::",
            stringify!(szDistUnit)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagCODEBASEHOLD>())).szCodeBase as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagCODEBASEHOLD),
            "::",
            stringify!(szCodeBase)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagCODEBASEHOLD>())).dwVersionMS as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagCODEBASEHOLD),
            "::",
            stringify!(dwVersionMS)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagCODEBASEHOLD>())).dwVersionLS as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagCODEBASEHOLD),
            "::",
            stringify!(dwVersionLS)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagCODEBASEHOLD>())).dwStyle as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagCODEBASEHOLD),
            "::",
            stringify!(dwStyle)
        )
    );
}
pub type CODEBASEHOLD = _tagCODEBASEHOLD;
pub type LPCODEBASEHOLD = *mut _tagCODEBASEHOLD;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _tagSOFTDISTINFO {
    pub cbSize: ULONG,
    pub dwFlags: DWORD,
    pub dwAdState: DWORD,
    pub szTitle: LPWSTR,
    pub szAbstract: LPWSTR,
    pub szHREF: LPWSTR,
    pub dwInstalledVersionMS: DWORD,
    pub dwInstalledVersionLS: DWORD,
    pub dwUpdateVersionMS: DWORD,
    pub dwUpdateVersionLS: DWORD,
    pub dwAdvertisedVersionMS: DWORD,
    pub dwAdvertisedVersionLS: DWORD,
    pub dwReserved: DWORD,
}
#[test]
fn bindgen_test_layout__tagSOFTDISTINFO() {
    assert_eq!(
        ::std::mem::size_of::<_tagSOFTDISTINFO>(),
        72usize,
        concat!("Size of: ", stringify!(_tagSOFTDISTINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_tagSOFTDISTINFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_tagSOFTDISTINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagSOFTDISTINFO>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagSOFTDISTINFO),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagSOFTDISTINFO>())).dwFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagSOFTDISTINFO),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagSOFTDISTINFO>())).dwAdState as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagSOFTDISTINFO),
            "::",
            stringify!(dwAdState)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagSOFTDISTINFO>())).szTitle as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagSOFTDISTINFO),
            "::",
            stringify!(szTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagSOFTDISTINFO>())).szAbstract as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagSOFTDISTINFO),
            "::",
            stringify!(szAbstract)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagSOFTDISTINFO>())).szHREF as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagSOFTDISTINFO),
            "::",
            stringify!(szHREF)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_tagSOFTDISTINFO>())).dwInstalledVersionMS as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagSOFTDISTINFO),
            "::",
            stringify!(dwInstalledVersionMS)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_tagSOFTDISTINFO>())).dwInstalledVersionLS as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagSOFTDISTINFO),
            "::",
            stringify!(dwInstalledVersionLS)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_tagSOFTDISTINFO>())).dwUpdateVersionMS as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagSOFTDISTINFO),
            "::",
            stringify!(dwUpdateVersionMS)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_tagSOFTDISTINFO>())).dwUpdateVersionLS as *const _ as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagSOFTDISTINFO),
            "::",
            stringify!(dwUpdateVersionLS)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_tagSOFTDISTINFO>())).dwAdvertisedVersionMS as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagSOFTDISTINFO),
            "::",
            stringify!(dwAdvertisedVersionMS)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_tagSOFTDISTINFO>())).dwAdvertisedVersionLS as *const _ as usize
        },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagSOFTDISTINFO),
            "::",
            stringify!(dwAdvertisedVersionLS)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagSOFTDISTINFO>())).dwReserved as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagSOFTDISTINFO),
            "::",
            stringify!(dwReserved)
        )
    );
}
pub type SOFTDISTINFO = _tagSOFTDISTINFO;
pub type LPSOFTDISTINFO = *mut _tagSOFTDISTINFO;
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0047_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0047_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_ISoftDistExt: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ISoftDistExtVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ISoftDistExt,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut ISoftDistExt) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut ISoftDistExt) -> ULONG>,
    pub ProcessSoftDist: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ISoftDistExt,
            szCDFURL: LPCWSTR,
            pSoftDistElement: *mut IXMLElement,
            lpsdi: LPSOFTDISTINFO,
        ) -> HRESULT,
    >,
    pub GetFirstCodeBase: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ISoftDistExt,
            szCodeBase: *mut LPWSTR,
            dwMaxSize: LPDWORD,
        ) -> HRESULT,
    >,
    pub GetNextCodeBase: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ISoftDistExt,
            szCodeBase: *mut LPWSTR,
            dwMaxSize: LPDWORD,
        ) -> HRESULT,
    >,
    pub AsyncInstallDistributionUnit: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ISoftDistExt,
            pbc: *mut IBindCtx,
            pvReserved: LPVOID,
            flags: DWORD,
            lpcbh: LPCODEBASEHOLD,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_ISoftDistExtVtbl() {
    assert_eq!(
        ::std::mem::size_of::<ISoftDistExtVtbl>(),
        56usize,
        concat!("Size of: ", stringify!(ISoftDistExtVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<ISoftDistExtVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(ISoftDistExtVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISoftDistExtVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ISoftDistExtVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISoftDistExtVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ISoftDistExtVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISoftDistExtVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ISoftDistExtVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ISoftDistExtVtbl>())).ProcessSoftDist as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ISoftDistExtVtbl),
            "::",
            stringify!(ProcessSoftDist)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ISoftDistExtVtbl>())).GetFirstCodeBase as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ISoftDistExtVtbl),
            "::",
            stringify!(GetFirstCodeBase)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ISoftDistExtVtbl>())).GetNextCodeBase as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(ISoftDistExtVtbl),
            "::",
            stringify!(GetNextCodeBase)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ISoftDistExtVtbl>())).AsyncInstallDistributionUnit as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(ISoftDistExtVtbl),
            "::",
            stringify!(AsyncInstallDistributionUnit)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ISoftDistExt {
    pub lpVtbl: *mut ISoftDistExtVtbl,
}
#[test]
fn bindgen_test_layout_ISoftDistExt() {
    assert_eq!(
        ::std::mem::size_of::<ISoftDistExt>(),
        8usize,
        concat!("Size of: ", stringify!(ISoftDistExt))
    );
    assert_eq!(
        ::std::mem::align_of::<ISoftDistExt>(),
        8usize,
        concat!("Alignment of ", stringify!(ISoftDistExt))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ISoftDistExt>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ISoftDistExt),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn GetSoftwareUpdateInfo(szDistUnit: LPCWSTR, psdi: LPSOFTDISTINFO) -> HRESULT;
}
extern "C" {
    pub fn SetSoftwareUpdateAdvertisementState(
        szDistUnit: LPCWSTR,
        dwAdState: DWORD,
        dwAdvertisedVersionMS: DWORD,
        dwAdvertisedVersionLS: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0048_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0048_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPCATALOGFILEINFO = *mut ICatalogFileInfo;
extern "C" {
    pub static IID_ICatalogFileInfo: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ICatalogFileInfoVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICatalogFileInfo,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut ICatalogFileInfo) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut ICatalogFileInfo) -> ULONG>,
    pub GetCatalogFile: ::std::option::Option<
        unsafe extern "C" fn(This: *mut ICatalogFileInfo, ppszCatalogFile: *mut LPSTR) -> HRESULT,
    >,
    pub GetJavaTrust: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut ICatalogFileInfo,
            ppJavaTrust: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_ICatalogFileInfoVtbl() {
    assert_eq!(
        ::std::mem::size_of::<ICatalogFileInfoVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(ICatalogFileInfoVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<ICatalogFileInfoVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(ICatalogFileInfoVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICatalogFileInfoVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ICatalogFileInfoVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICatalogFileInfoVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ICatalogFileInfoVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICatalogFileInfoVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ICatalogFileInfoVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICatalogFileInfoVtbl>())).GetCatalogFile as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ICatalogFileInfoVtbl),
            "::",
            stringify!(GetCatalogFile)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<ICatalogFileInfoVtbl>())).GetJavaTrust as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ICatalogFileInfoVtbl),
            "::",
            stringify!(GetJavaTrust)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ICatalogFileInfo {
    pub lpVtbl: *mut ICatalogFileInfoVtbl,
}
#[test]
fn bindgen_test_layout_ICatalogFileInfo() {
    assert_eq!(
        ::std::mem::size_of::<ICatalogFileInfo>(),
        8usize,
        concat!("Size of: ", stringify!(ICatalogFileInfo))
    );
    assert_eq!(
        ::std::mem::align_of::<ICatalogFileInfo>(),
        8usize,
        concat!("Alignment of ", stringify!(ICatalogFileInfo))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<ICatalogFileInfo>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ICatalogFileInfo),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0049_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0049_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPDATAFILTER = *mut IDataFilter;
extern "C" {
    pub static IID_IDataFilter: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IDataFilterVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IDataFilter,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IDataFilter) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IDataFilter) -> ULONG>,
    pub DoEncode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IDataFilter,
            dwFlags: DWORD,
            lInBufferSize: LONG,
            pbInBuffer: *mut BYTE,
            lOutBufferSize: LONG,
            pbOutBuffer: *mut BYTE,
            lInBytesAvailable: LONG,
            plInBytesRead: *mut LONG,
            plOutBytesWritten: *mut LONG,
            dwReserved: DWORD,
        ) -> HRESULT,
    >,
    pub DoDecode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IDataFilter,
            dwFlags: DWORD,
            lInBufferSize: LONG,
            pbInBuffer: *mut BYTE,
            lOutBufferSize: LONG,
            pbOutBuffer: *mut BYTE,
            lInBytesAvailable: LONG,
            plInBytesRead: *mut LONG,
            plOutBytesWritten: *mut LONG,
            dwReserved: DWORD,
        ) -> HRESULT,
    >,
    pub SetEncodingLevel: ::std::option::Option<
        unsafe extern "C" fn(This: *mut IDataFilter, dwEncLevel: DWORD) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IDataFilterVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IDataFilterVtbl>(),
        48usize,
        concat!("Size of: ", stringify!(IDataFilterVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IDataFilterVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IDataFilterVtbl))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDataFilterVtbl>())).QueryInterface as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IDataFilterVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDataFilterVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IDataFilterVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDataFilterVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IDataFilterVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDataFilterVtbl>())).DoEncode as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IDataFilterVtbl),
            "::",
            stringify!(DoEncode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDataFilterVtbl>())).DoDecode as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IDataFilterVtbl),
            "::",
            stringify!(DoDecode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IDataFilterVtbl>())).SetEncodingLevel as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IDataFilterVtbl),
            "::",
            stringify!(SetEncodingLevel)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IDataFilter {
    pub lpVtbl: *mut IDataFilterVtbl,
}
#[test]
fn bindgen_test_layout_IDataFilter() {
    assert_eq!(
        ::std::mem::size_of::<IDataFilter>(),
        8usize,
        concat!("Size of: ", stringify!(IDataFilter))
    );
    assert_eq!(
        ::std::mem::align_of::<IDataFilter>(),
        8usize,
        concat!("Alignment of ", stringify!(IDataFilter))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IDataFilter>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IDataFilter),
            "::",
            stringify!(lpVtbl)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _tagPROTOCOLFILTERDATA {
    pub cbSize: DWORD,
    pub pProtocolSink: *mut IInternetProtocolSink,
    pub pProtocol: *mut IInternetProtocol,
    pub pUnk: *mut IUnknown,
    pub dwFilterFlags: DWORD,
}
#[test]
fn bindgen_test_layout__tagPROTOCOLFILTERDATA() {
    assert_eq!(
        ::std::mem::size_of::<_tagPROTOCOLFILTERDATA>(),
        40usize,
        concat!("Size of: ", stringify!(_tagPROTOCOLFILTERDATA))
    );
    assert_eq!(
        ::std::mem::align_of::<_tagPROTOCOLFILTERDATA>(),
        8usize,
        concat!("Alignment of ", stringify!(_tagPROTOCOLFILTERDATA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagPROTOCOLFILTERDATA>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagPROTOCOLFILTERDATA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_tagPROTOCOLFILTERDATA>())).pProtocolSink as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagPROTOCOLFILTERDATA),
            "::",
            stringify!(pProtocolSink)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_tagPROTOCOLFILTERDATA>())).pProtocol as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagPROTOCOLFILTERDATA),
            "::",
            stringify!(pProtocol)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagPROTOCOLFILTERDATA>())).pUnk as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagPROTOCOLFILTERDATA),
            "::",
            stringify!(pUnk)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_tagPROTOCOLFILTERDATA>())).dwFilterFlags as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagPROTOCOLFILTERDATA),
            "::",
            stringify!(dwFilterFlags)
        )
    );
}
pub type PROTOCOLFILTERDATA = _tagPROTOCOLFILTERDATA;
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0050_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0050_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPENCODINGFILTERFACTORY = *mut IEncodingFilterFactory;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _tagDATAINFO {
    pub ulTotalSize: ULONG,
    pub ulavrPacketSize: ULONG,
    pub ulConnectSpeed: ULONG,
    pub ulProcessorSpeed: ULONG,
}
#[test]
fn bindgen_test_layout__tagDATAINFO() {
    assert_eq!(
        ::std::mem::size_of::<_tagDATAINFO>(),
        16usize,
        concat!("Size of: ", stringify!(_tagDATAINFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_tagDATAINFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_tagDATAINFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagDATAINFO>())).ulTotalSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagDATAINFO),
            "::",
            stringify!(ulTotalSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagDATAINFO>())).ulavrPacketSize as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagDATAINFO),
            "::",
            stringify!(ulavrPacketSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagDATAINFO>())).ulConnectSpeed as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagDATAINFO),
            "::",
            stringify!(ulConnectSpeed)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagDATAINFO>())).ulProcessorSpeed as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagDATAINFO),
            "::",
            stringify!(ulProcessorSpeed)
        )
    );
}
pub type DATAINFO = _tagDATAINFO;
extern "C" {
    pub static IID_IEncodingFilterFactory: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IEncodingFilterFactoryVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IEncodingFilterFactory,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IEncodingFilterFactory) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IEncodingFilterFactory) -> ULONG>,
    pub FindBestFilter: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IEncodingFilterFactory,
            pwzCodeIn: LPCWSTR,
            pwzCodeOut: LPCWSTR,
            info: DATAINFO,
            ppDF: *mut *mut IDataFilter,
        ) -> HRESULT,
    >,
    pub GetDefaultFilter: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IEncodingFilterFactory,
            pwzCodeIn: LPCWSTR,
            pwzCodeOut: LPCWSTR,
            ppDF: *mut *mut IDataFilter,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IEncodingFilterFactoryVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IEncodingFilterFactoryVtbl>(),
        40usize,
        concat!("Size of: ", stringify!(IEncodingFilterFactoryVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IEncodingFilterFactoryVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IEncodingFilterFactoryVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IEncodingFilterFactoryVtbl>())).QueryInterface as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IEncodingFilterFactoryVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IEncodingFilterFactoryVtbl>())).AddRef as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IEncodingFilterFactoryVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IEncodingFilterFactoryVtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IEncodingFilterFactoryVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IEncodingFilterFactoryVtbl>())).FindBestFilter as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IEncodingFilterFactoryVtbl),
            "::",
            stringify!(FindBestFilter)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IEncodingFilterFactoryVtbl>())).GetDefaultFilter as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IEncodingFilterFactoryVtbl),
            "::",
            stringify!(GetDefaultFilter)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IEncodingFilterFactory {
    pub lpVtbl: *mut IEncodingFilterFactoryVtbl,
}
#[test]
fn bindgen_test_layout_IEncodingFilterFactory() {
    assert_eq!(
        ::std::mem::size_of::<IEncodingFilterFactory>(),
        8usize,
        concat!("Size of: ", stringify!(IEncodingFilterFactory))
    );
    assert_eq!(
        ::std::mem::align_of::<IEncodingFilterFactory>(),
        8usize,
        concat!("Alignment of ", stringify!(IEncodingFilterFactory))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IEncodingFilterFactory>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IEncodingFilterFactory),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub fn IsLoggingEnabledA(pszUrl: LPCSTR) -> BOOL;
}
extern "C" {
    pub fn IsLoggingEnabledW(pwszUrl: LPCWSTR) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _tagHIT_LOGGING_INFO {
    pub dwStructSize: DWORD,
    pub lpszLoggedUrlName: LPSTR,
    pub StartTime: SYSTEMTIME,
    pub EndTime: SYSTEMTIME,
    pub lpszExtendedInfo: LPSTR,
}
#[test]
fn bindgen_test_layout__tagHIT_LOGGING_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_tagHIT_LOGGING_INFO>(),
        56usize,
        concat!("Size of: ", stringify!(_tagHIT_LOGGING_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_tagHIT_LOGGING_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_tagHIT_LOGGING_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_tagHIT_LOGGING_INFO>())).dwStructSize as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagHIT_LOGGING_INFO),
            "::",
            stringify!(dwStructSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_tagHIT_LOGGING_INFO>())).lpszLoggedUrlName as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagHIT_LOGGING_INFO),
            "::",
            stringify!(lpszLoggedUrlName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagHIT_LOGGING_INFO>())).StartTime as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagHIT_LOGGING_INFO),
            "::",
            stringify!(StartTime)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagHIT_LOGGING_INFO>())).EndTime as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagHIT_LOGGING_INFO),
            "::",
            stringify!(EndTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_tagHIT_LOGGING_INFO>())).lpszExtendedInfo as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagHIT_LOGGING_INFO),
            "::",
            stringify!(lpszExtendedInfo)
        )
    );
}
pub type HIT_LOGGING_INFO = _tagHIT_LOGGING_INFO;
pub type LPHIT_LOGGING_INFO = *mut _tagHIT_LOGGING_INFO;
extern "C" {
    pub fn WriteHitLogging(lpLogginginfo: LPHIT_LOGGING_INFO) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CONFIRMSAFETY {
    pub clsid: CLSID,
    pub pUnk: *mut IUnknown,
    pub dwFlags: DWORD,
}
#[test]
fn bindgen_test_layout_CONFIRMSAFETY() {
    assert_eq!(
        ::std::mem::size_of::<CONFIRMSAFETY>(),
        32usize,
        concat!("Size of: ", stringify!(CONFIRMSAFETY))
    );
    assert_eq!(
        ::std::mem::align_of::<CONFIRMSAFETY>(),
        8usize,
        concat!("Alignment of ", stringify!(CONFIRMSAFETY))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<CONFIRMSAFETY>())).clsid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(CONFIRMSAFETY),
            "::",
            stringify!(clsid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<CONFIRMSAFETY>())).pUnk as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(CONFIRMSAFETY),
            "::",
            stringify!(pUnk)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<CONFIRMSAFETY>())).dwFlags as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(CONFIRMSAFETY),
            "::",
            stringify!(dwFlags)
        )
    );
}
extern "C" {
    pub static GUID_CUSTOM_CONFIRMOBJECTSAFETY: GUID;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0051_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0051_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPIWRAPPEDPROTOCOL = *mut IWrappedProtocol;
extern "C" {
    pub static IID_IWrappedProtocol: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IWrappedProtocolVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IWrappedProtocol,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IWrappedProtocol) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IWrappedProtocol) -> ULONG>,
    pub GetWrapperCode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IWrappedProtocol,
            pnCode: *mut LONG,
            dwReserved: DWORD_PTR,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IWrappedProtocolVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IWrappedProtocolVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IWrappedProtocolVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IWrappedProtocolVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IWrappedProtocolVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IWrappedProtocolVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IWrappedProtocolVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IWrappedProtocolVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IWrappedProtocolVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IWrappedProtocolVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IWrappedProtocolVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IWrappedProtocolVtbl>())).GetWrapperCode as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IWrappedProtocolVtbl),
            "::",
            stringify!(GetWrapperCode)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IWrappedProtocol {
    pub lpVtbl: *mut IWrappedProtocolVtbl,
}
#[test]
fn bindgen_test_layout_IWrappedProtocol() {
    assert_eq!(
        ::std::mem::size_of::<IWrappedProtocol>(),
        8usize,
        concat!("Size of: ", stringify!(IWrappedProtocol))
    );
    assert_eq!(
        ::std::mem::align_of::<IWrappedProtocol>(),
        8usize,
        concat!("Alignment of ", stringify!(IWrappedProtocol))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IWrappedProtocol>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IWrappedProtocol),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0052_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0052_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPGETBINDHANDLE = *mut IGetBindHandle;
pub const __MIDL_IGetBindHandle_0001_BINDHANDLETYPES_APPCACHE: __MIDL_IGetBindHandle_0001 = 0;
pub const __MIDL_IGetBindHandle_0001_BINDHANDLETYPES_DEPENDENCY: __MIDL_IGetBindHandle_0001 = 1;
pub const __MIDL_IGetBindHandle_0001_BINDHANDLETYPES_COUNT: __MIDL_IGetBindHandle_0001 = 2;
pub type __MIDL_IGetBindHandle_0001 = ::std::os::raw::c_int;
pub use self::__MIDL_IGetBindHandle_0001 as BINDHANDLETYPES;
extern "C" {
    pub static IID_IGetBindHandle: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IGetBindHandleVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IGetBindHandle,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IGetBindHandle) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IGetBindHandle) -> ULONG>,
    pub GetBindHandle: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IGetBindHandle,
            enumRequestedHandle: BINDHANDLETYPES,
            pRetHandle: *mut HANDLE,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IGetBindHandleVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IGetBindHandleVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IGetBindHandleVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IGetBindHandleVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IGetBindHandleVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IGetBindHandleVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IGetBindHandleVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IGetBindHandleVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IGetBindHandleVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IGetBindHandleVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IGetBindHandleVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IGetBindHandleVtbl>())).GetBindHandle as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IGetBindHandleVtbl),
            "::",
            stringify!(GetBindHandle)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IGetBindHandle {
    pub lpVtbl: *mut IGetBindHandleVtbl,
}
#[test]
fn bindgen_test_layout_IGetBindHandle() {
    assert_eq!(
        ::std::mem::size_of::<IGetBindHandle>(),
        8usize,
        concat!("Size of: ", stringify!(IGetBindHandle))
    );
    assert_eq!(
        ::std::mem::align_of::<IGetBindHandle>(),
        8usize,
        concat!("Alignment of ", stringify!(IGetBindHandle))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IGetBindHandle>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IGetBindHandle),
            "::",
            stringify!(lpVtbl)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _tagPROTOCOL_ARGUMENT {
    pub szMethod: LPCWSTR,
    pub szTargetUrl: LPCWSTR,
}
#[test]
fn bindgen_test_layout__tagPROTOCOL_ARGUMENT() {
    assert_eq!(
        ::std::mem::size_of::<_tagPROTOCOL_ARGUMENT>(),
        16usize,
        concat!("Size of: ", stringify!(_tagPROTOCOL_ARGUMENT))
    );
    assert_eq!(
        ::std::mem::align_of::<_tagPROTOCOL_ARGUMENT>(),
        8usize,
        concat!("Alignment of ", stringify!(_tagPROTOCOL_ARGUMENT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_tagPROTOCOL_ARGUMENT>())).szMethod as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagPROTOCOL_ARGUMENT),
            "::",
            stringify!(szMethod)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_tagPROTOCOL_ARGUMENT>())).szTargetUrl as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_tagPROTOCOL_ARGUMENT),
            "::",
            stringify!(szTargetUrl)
        )
    );
}
pub type PROTOCOL_ARGUMENT = _tagPROTOCOL_ARGUMENT;
pub type LPPROTOCOL_ARGUMENT = *mut _tagPROTOCOL_ARGUMENT;
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0053_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0053_v0_0_s_ifspec: RPC_IF_HANDLE;
}
pub type LPBINDCALLBACKREDIRECT = *mut IBindCallbackRedirect;
extern "C" {
    pub static IID_IBindCallbackRedirect: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IBindCallbackRedirectVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IBindCallbackRedirect,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IBindCallbackRedirect) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IBindCallbackRedirect) -> ULONG>,
    pub Redirect: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IBindCallbackRedirect,
            lpcUrl: LPCWSTR,
            vbCancel: *mut VARIANT_BOOL,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IBindCallbackRedirectVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IBindCallbackRedirectVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IBindCallbackRedirectVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IBindCallbackRedirectVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IBindCallbackRedirectVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindCallbackRedirectVtbl>())).QueryInterface as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindCallbackRedirectVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindCallbackRedirectVtbl>())).AddRef as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindCallbackRedirectVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindCallbackRedirectVtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindCallbackRedirectVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindCallbackRedirectVtbl>())).Redirect as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindCallbackRedirectVtbl),
            "::",
            stringify!(Redirect)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IBindCallbackRedirect {
    pub lpVtbl: *mut IBindCallbackRedirectVtbl,
}
#[test]
fn bindgen_test_layout_IBindCallbackRedirect() {
    assert_eq!(
        ::std::mem::size_of::<IBindCallbackRedirect>(),
        8usize,
        concat!("Size of: ", stringify!(IBindCallbackRedirect))
    );
    assert_eq!(
        ::std::mem::align_of::<IBindCallbackRedirect>(),
        8usize,
        concat!("Alignment of ", stringify!(IBindCallbackRedirect))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindCallbackRedirect>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindCallbackRedirect),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0054_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0054_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static IID_IBindHttpSecurity: IID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IBindHttpSecurityVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IBindHttpSecurity,
            riid: *const IID,
            ppvObject: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef: ::std::option::Option<unsafe extern "C" fn(This: *mut IBindHttpSecurity) -> ULONG>,
    pub Release: ::std::option::Option<unsafe extern "C" fn(This: *mut IBindHttpSecurity) -> ULONG>,
    pub GetIgnoreCertMask: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IBindHttpSecurity,
            pdwIgnoreCertMask: *mut DWORD,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IBindHttpSecurityVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IBindHttpSecurityVtbl>(),
        32usize,
        concat!("Size of: ", stringify!(IBindHttpSecurityVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IBindHttpSecurityVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IBindHttpSecurityVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindHttpSecurityVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindHttpSecurityVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindHttpSecurityVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindHttpSecurityVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindHttpSecurityVtbl>())).Release as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindHttpSecurityVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IBindHttpSecurityVtbl>())).GetIgnoreCertMask as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindHttpSecurityVtbl),
            "::",
            stringify!(GetIgnoreCertMask)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IBindHttpSecurity {
    pub lpVtbl: *mut IBindHttpSecurityVtbl,
}
#[test]
fn bindgen_test_layout_IBindHttpSecurity() {
    assert_eq!(
        ::std::mem::size_of::<IBindHttpSecurity>(),
        8usize,
        concat!("Size of: ", stringify!(IBindHttpSecurity))
    );
    assert_eq!(
        ::std::mem::align_of::<IBindHttpSecurity>(),
        8usize,
        concat!("Alignment of ", stringify!(IBindHttpSecurity))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IBindHttpSecurity>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IBindHttpSecurity),
            "::",
            stringify!(lpVtbl)
        )
    );
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0055_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_urlmon_0000_0055_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub fn IBinding_GetBindResult_Proxy(
        This: *mut IBinding,
        pclsidProtocol: *mut CLSID,
        pdwResult: *mut DWORD,
        pszResult: *mut LPOLESTR,
        pdwReserved: *mut DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn IBinding_GetBindResult_Stub(
        This: *mut IBinding,
        pclsidProtocol: *mut CLSID,
        pdwResult: *mut DWORD,
        pszResult: *mut LPOLESTR,
        dwReserved: DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn IBindStatusCallback_GetBindInfo_Proxy(
        This: *mut IBindStatusCallback,
        grfBINDF: *mut DWORD,
        pbindinfo: *mut BINDINFO,
    ) -> HRESULT;
}
extern "C" {
    pub fn IBindStatusCallback_GetBindInfo_Stub(
        This: *mut IBindStatusCallback,
        grfBINDF: *mut DWORD,
        pbindinfo: *mut RemBINDINFO,
        pstgmed: *mut RemSTGMEDIUM,
    ) -> HRESULT;
}
extern "C" {
    pub fn IBindStatusCallback_OnDataAvailable_Proxy(
        This: *mut IBindStatusCallback,
        grfBSCF: DWORD,
        dwSize: DWORD,
        pformatetc: *mut FORMATETC,
        pstgmed: *mut STGMEDIUM,
    ) -> HRESULT;
}
extern "C" {
    pub fn IBindStatusCallback_OnDataAvailable_Stub(
        This: *mut IBindStatusCallback,
        grfBSCF: DWORD,
        dwSize: DWORD,
        pformatetc: *mut RemFORMATETC,
        pstgmed: *mut RemSTGMEDIUM,
    ) -> HRESULT;
}
extern "C" {
    pub fn IBindStatusCallbackEx_GetBindInfoEx_Proxy(
        This: *mut IBindStatusCallbackEx,
        grfBINDF: *mut DWORD,
        pbindinfo: *mut BINDINFO,
        grfBINDF2: *mut DWORD,
        pdwReserved: *mut DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn IBindStatusCallbackEx_GetBindInfoEx_Stub(
        This: *mut IBindStatusCallbackEx,
        grfBINDF: *mut DWORD,
        pbindinfo: *mut RemBINDINFO,
        pstgmed: *mut RemSTGMEDIUM,
        grfBINDF2: *mut DWORD,
        pdwReserved: *mut DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn IWinInetInfo_QueryOption_Proxy(
        This: *mut IWinInetInfo,
        dwOption: DWORD,
        pBuffer: LPVOID,
        pcbBuf: *mut DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn IWinInetInfo_QueryOption_Stub(
        This: *mut IWinInetInfo,
        dwOption: DWORD,
        pBuffer: *mut BYTE,
        pcbBuf: *mut DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn IWinInetHttpInfo_QueryInfo_Proxy(
        This: *mut IWinInetHttpInfo,
        dwOption: DWORD,
        pBuffer: LPVOID,
        pcbBuf: *mut DWORD,
        pdwFlags: *mut DWORD,
        pdwReserved: *mut DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn IWinInetHttpInfo_QueryInfo_Stub(
        This: *mut IWinInetHttpInfo,
        dwOption: DWORD,
        pBuffer: *mut BYTE,
        pcbBuf: *mut DWORD,
        pdwFlags: *mut DWORD,
        pdwReserved: *mut DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn IBindHost_MonikerBindToStorage_Proxy(
        This: *mut IBindHost,
        pMk: *mut IMoniker,
        pBC: *mut IBindCtx,
        pBSC: *mut IBindStatusCallback,
        riid: *const IID,
        ppvObj: *mut *mut ::std::os::raw::c_void,
    ) -> HRESULT;
}
extern "C" {
    pub fn IBindHost_MonikerBindToStorage_Stub(
        This: *mut IBindHost,
        pMk: *mut IMoniker,
        pBC: *mut IBindCtx,
        pBSC: *mut IBindStatusCallback,
        riid: *const IID,
        ppvObj: *mut *mut IUnknown,
    ) -> HRESULT;
}
extern "C" {
    pub fn IBindHost_MonikerBindToObject_Proxy(
        This: *mut IBindHost,
        pMk: *mut IMoniker,
        pBC: *mut IBindCtx,
        pBSC: *mut IBindStatusCallback,
        riid: *const IID,
        ppvObj: *mut *mut ::std::os::raw::c_void,
    ) -> HRESULT;
}
extern "C" {
    pub fn IBindHost_MonikerBindToObject_Stub(
        This: *mut IBindHost,
        pMk: *mut IMoniker,
        pBC: *mut IBindCtx,
        pBSC: *mut IBindStatusCallback,
        riid: *const IID,
        ppvObj: *mut *mut IUnknown,
    ) -> HRESULT;
}
pub const PIDMSI_STATUS_VALUE_PIDMSI_STATUS_NORMAL: PIDMSI_STATUS_VALUE = 0;
pub const PIDMSI_STATUS_VALUE_PIDMSI_STATUS_NEW: PIDMSI_STATUS_VALUE = 1;
pub const PIDMSI_STATUS_VALUE_PIDMSI_STATUS_PRELIM: PIDMSI_STATUS_VALUE = 2;
pub const PIDMSI_STATUS_VALUE_PIDMSI_STATUS_DRAFT: PIDMSI_STATUS_VALUE = 3;
pub const PIDMSI_STATUS_VALUE_PIDMSI_STATUS_INPROGRESS: PIDMSI_STATUS_VALUE = 4;
pub const PIDMSI_STATUS_VALUE_PIDMSI_STATUS_EDIT: PIDMSI_STATUS_VALUE = 5;
pub const PIDMSI_STATUS_VALUE_PIDMSI_STATUS_REVIEW: PIDMSI_STATUS_VALUE = 6;
pub const PIDMSI_STATUS_VALUE_PIDMSI_STATUS_PROOF: PIDMSI_STATUS_VALUE = 7;
pub const PIDMSI_STATUS_VALUE_PIDMSI_STATUS_FINAL: PIDMSI_STATUS_VALUE = 8;
pub const PIDMSI_STATUS_VALUE_PIDMSI_STATUS_OTHER: PIDMSI_STATUS_VALUE = 32767;
pub type PIDMSI_STATUS_VALUE = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagSERIALIZEDPROPERTYVALUE {
    pub dwType: DWORD,
    pub rgb: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout_tagSERIALIZEDPROPERTYVALUE() {
    assert_eq!(
        ::std::mem::size_of::<tagSERIALIZEDPROPERTYVALUE>(),
        8usize,
        concat!("Size of: ", stringify!(tagSERIALIZEDPROPERTYVALUE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagSERIALIZEDPROPERTYVALUE>(),
        4usize,
        concat!("Alignment of ", stringify!(tagSERIALIZEDPROPERTYVALUE))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSERIALIZEDPROPERTYVALUE>())).dwType as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSERIALIZEDPROPERTYVALUE),
            "::",
            stringify!(dwType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSERIALIZEDPROPERTYVALUE>())).rgb as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSERIALIZEDPROPERTYVALUE),
            "::",
            stringify!(rgb)
        )
    );
}
pub type SERIALIZEDPROPERTYVALUE = tagSERIALIZEDPROPERTYVALUE;
extern "C" {
    pub fn StgConvertVariantToProperty(
        pvar: *const PROPVARIANT,
        CodePage: USHORT,
        pprop: *mut SERIALIZEDPROPERTYVALUE,
        pcb: *mut ULONG,
        pid: PROPID,
        fReserved: BOOLEAN,
        pcIndirect: *mut ULONG,
    ) -> *mut SERIALIZEDPROPERTYVALUE;
}
extern "C" {
    pub static mut __MIDL_itf_propidl_0000_0004_v0_0_c_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub static mut __MIDL_itf_propidl_0000_0004_v0_0_s_ifspec: RPC_IF_HANDLE;
}
extern "C" {
    pub fn CreateStdProgressIndicator(
        hwndParent: HWND,
        pszTitle: LPCOLESTR,
        pIbscCaller: *mut IBindStatusCallback,
        ppIbsc: *mut *mut IBindStatusCallback,
    ) -> HRESULT;
}
extern "C" {
    pub static IID_StdOle: IID;
}
extern "C" {
    pub fn SysAllocString(psz: *const OLECHAR) -> BSTR;
}
extern "C" {
    pub fn SysReAllocString(pbstr: *mut BSTR, psz: *const OLECHAR) -> INT;
}
extern "C" {
    pub fn SysAllocStringLen(strIn: *const OLECHAR, ui: UINT) -> BSTR;
}
extern "C" {
    pub fn SysReAllocStringLen(
        pbstr: *mut BSTR,
        psz: *const OLECHAR,
        len: ::std::os::raw::c_uint,
    ) -> INT;
}
extern "C" {
    pub fn SysAddRefString(bstrString: BSTR) -> HRESULT;
}
extern "C" {
    pub fn SysReleaseString(bstrString: BSTR);
}
extern "C" {
    pub fn SysFreeString(bstrString: BSTR);
}
extern "C" {
    pub fn SysStringLen(pbstr: BSTR) -> UINT;
}
extern "C" {
    pub fn SysStringByteLen(bstr: BSTR) -> UINT;
}
extern "C" {
    pub fn SysAllocStringByteLen(psz: LPCSTR, len: UINT) -> BSTR;
}
extern "C" {
    pub fn DosDateTimeToVariantTime(wDosDate: USHORT, wDosTime: USHORT, pvtime: *mut DOUBLE)
        -> INT;
}
extern "C" {
    pub fn VariantTimeToDosDateTime(
        vtime: DOUBLE,
        pwDosDate: *mut USHORT,
        pwDosTime: *mut USHORT,
    ) -> INT;
}
extern "C" {
    pub fn SystemTimeToVariantTime(lpSystemTime: LPSYSTEMTIME, pvtime: *mut DOUBLE) -> INT;
}
extern "C" {
    pub fn VariantTimeToSystemTime(vtime: DOUBLE, lpSystemTime: LPSYSTEMTIME) -> INT;
}
extern "C" {
    pub fn SafeArrayAllocDescriptor(cDims: UINT, ppsaOut: *mut *mut SAFEARRAY) -> HRESULT;
}
extern "C" {
    pub fn SafeArrayAllocDescriptorEx(
        vt: VARTYPE,
        cDims: UINT,
        ppsaOut: *mut *mut SAFEARRAY,
    ) -> HRESULT;
}
extern "C" {
    pub fn SafeArrayAllocData(psa: *mut SAFEARRAY) -> HRESULT;
}
extern "C" {
    pub fn SafeArrayCreate(
        vt: VARTYPE,
        cDims: UINT,
        rgsabound: *mut SAFEARRAYBOUND,
    ) -> *mut SAFEARRAY;
}
extern "C" {
    pub fn SafeArrayCreateEx(
        vt: VARTYPE,
        cDims: UINT,
        rgsabound: *mut SAFEARRAYBOUND,
        pvExtra: PVOID,
    ) -> *mut SAFEARRAY;
}
extern "C" {
    pub fn SafeArrayCopyData(psaSource: *mut SAFEARRAY, psaTarget: *mut SAFEARRAY) -> HRESULT;
}
extern "C" {
    pub fn SafeArrayReleaseDescriptor(psa: *mut SAFEARRAY);
}
extern "C" {
    pub fn SafeArrayDestroyDescriptor(psa: *mut SAFEARRAY) -> HRESULT;
}
extern "C" {
    pub fn SafeArrayReleaseData(pData: PVOID);
}
extern "C" {
    pub fn SafeArrayDestroyData(psa: *mut SAFEARRAY) -> HRESULT;
}
extern "C" {
    pub fn SafeArrayAddRef(psa: *mut SAFEARRAY, ppDataToRelease: *mut PVOID) -> HRESULT;
}
extern "C" {
    pub fn SafeArrayDestroy(psa: *mut SAFEARRAY) -> HRESULT;
}
extern "C" {
    pub fn SafeArrayRedim(psa: *mut SAFEARRAY, psaboundNew: *mut SAFEARRAYBOUND) -> HRESULT;
}
extern "C" {
    pub fn SafeArrayGetDim(psa: *mut SAFEARRAY) -> UINT;
}
extern "C" {
    pub fn SafeArrayGetElemsize(psa: *mut SAFEARRAY) -> UINT;
}
extern "C" {
    pub fn SafeArrayGetUBound(psa: *mut SAFEARRAY, nDim: UINT, plUbound: *mut LONG) -> HRESULT;
}
extern "C" {
    pub fn SafeArrayGetLBound(psa: *mut SAFEARRAY, nDim: UINT, plLbound: *mut LONG) -> HRESULT;
}
extern "C" {
    pub fn SafeArrayLock(psa: *mut SAFEARRAY) -> HRESULT;
}
extern "C" {
    pub fn SafeArrayUnlock(psa: *mut SAFEARRAY) -> HRESULT;
}
extern "C" {
    pub fn SafeArrayAccessData(
        psa: *mut SAFEARRAY,
        ppvData: *mut *mut ::std::os::raw::c_void,
    ) -> HRESULT;
}
extern "C" {
    pub fn SafeArrayUnaccessData(psa: *mut SAFEARRAY) -> HRESULT;
}
extern "C" {
    pub fn SafeArrayGetElement(
        psa: *mut SAFEARRAY,
        rgIndices: *mut LONG,
        pv: *mut ::std::os::raw::c_void,
    ) -> HRESULT;
}
extern "C" {
    pub fn SafeArrayPutElement(
        psa: *mut SAFEARRAY,
        rgIndices: *mut LONG,
        pv: *mut ::std::os::raw::c_void,
    ) -> HRESULT;
}
extern "C" {
    pub fn SafeArrayCopy(psa: *mut SAFEARRAY, ppsaOut: *mut *mut SAFEARRAY) -> HRESULT;
}
extern "C" {
    pub fn SafeArrayPtrOfIndex(
        psa: *mut SAFEARRAY,
        rgIndices: *mut LONG,
        ppvData: *mut *mut ::std::os::raw::c_void,
    ) -> HRESULT;
}
extern "C" {
    pub fn SafeArraySetRecordInfo(psa: *mut SAFEARRAY, prinfo: *mut IRecordInfo) -> HRESULT;
}
extern "C" {
    pub fn SafeArrayGetRecordInfo(psa: *mut SAFEARRAY, prinfo: *mut *mut IRecordInfo) -> HRESULT;
}
extern "C" {
    pub fn SafeArraySetIID(psa: *mut SAFEARRAY, guid: *const GUID) -> HRESULT;
}
extern "C" {
    pub fn SafeArrayGetIID(psa: *mut SAFEARRAY, pguid: *mut GUID) -> HRESULT;
}
extern "C" {
    pub fn SafeArrayGetVartype(psa: *mut SAFEARRAY, pvt: *mut VARTYPE) -> HRESULT;
}
extern "C" {
    pub fn SafeArrayCreateVector(vt: VARTYPE, lLbound: LONG, cElements: ULONG) -> *mut SAFEARRAY;
}
extern "C" {
    pub fn SafeArrayCreateVectorEx(
        vt: VARTYPE,
        lLbound: LONG,
        cElements: ULONG,
        pvExtra: PVOID,
    ) -> *mut SAFEARRAY;
}
extern "C" {
    pub fn VariantInit(pvarg: *mut VARIANTARG);
}
extern "C" {
    pub fn VariantClear(pvarg: *mut VARIANTARG) -> HRESULT;
}
extern "C" {
    pub fn VariantCopy(pvargDest: *mut VARIANTARG, pvargSrc: *const VARIANTARG) -> HRESULT;
}
extern "C" {
    pub fn VariantCopyInd(pvarDest: *mut VARIANT, pvargSrc: *const VARIANTARG) -> HRESULT;
}
extern "C" {
    pub fn VariantChangeType(
        pvargDest: *mut VARIANTARG,
        pvarSrc: *const VARIANTARG,
        wFlags: USHORT,
        vt: VARTYPE,
    ) -> HRESULT;
}
extern "C" {
    pub fn VariantChangeTypeEx(
        pvargDest: *mut VARIANTARG,
        pvarSrc: *const VARIANTARG,
        lcid: LCID,
        wFlags: USHORT,
        vt: VARTYPE,
    ) -> HRESULT;
}
extern "C" {
    pub fn VectorFromBstr(bstr: BSTR, ppsa: *mut *mut SAFEARRAY) -> HRESULT;
}
extern "C" {
    pub fn BstrFromVector(psa: *mut SAFEARRAY, pbstr: *mut BSTR) -> HRESULT;
}
extern "C" {
    pub fn VarUI1FromI2(sIn: SHORT, pbOut: *mut BYTE) -> HRESULT;
}
extern "C" {
    pub fn VarUI1FromI4(lIn: LONG, pbOut: *mut BYTE) -> HRESULT;
}
extern "C" {
    pub fn VarUI1FromI8(i64In: LONG64, pbOut: *mut BYTE) -> HRESULT;
}
extern "C" {
    pub fn VarUI1FromR4(fltIn: FLOAT, pbOut: *mut BYTE) -> HRESULT;
}
extern "C" {
    pub fn VarUI1FromR8(dblIn: DOUBLE, pbOut: *mut BYTE) -> HRESULT;
}
extern "C" {
    pub fn VarUI1FromCy(cyIn: CY, pbOut: *mut BYTE) -> HRESULT;
}
extern "C" {
    pub fn VarUI1FromDate(dateIn: DATE, pbOut: *mut BYTE) -> HRESULT;
}
extern "C" {
    pub fn VarUI1FromStr(strIn: LPCOLESTR, lcid: LCID, dwFlags: ULONG, pbOut: *mut BYTE)
        -> HRESULT;
}
extern "C" {
    pub fn VarUI1FromDisp(pdispIn: *mut IDispatch, lcid: LCID, pbOut: *mut BYTE) -> HRESULT;
}
extern "C" {
    pub fn VarUI1FromBool(boolIn: VARIANT_BOOL, pbOut: *mut BYTE) -> HRESULT;
}
extern "C" {
    pub fn VarUI1FromI1(cIn: CHAR, pbOut: *mut BYTE) -> HRESULT;
}
extern "C" {
    pub fn VarUI1FromUI2(uiIn: USHORT, pbOut: *mut BYTE) -> HRESULT;
}
extern "C" {
    pub fn VarUI1FromUI4(ulIn: ULONG, pbOut: *mut BYTE) -> HRESULT;
}
extern "C" {
    pub fn VarUI1FromUI8(ui64In: ULONG64, pbOut: *mut BYTE) -> HRESULT;
}
extern "C" {
    pub fn VarUI1FromDec(pdecIn: *const DECIMAL, pbOut: *mut BYTE) -> HRESULT;
}
extern "C" {
    pub fn VarI2FromUI1(bIn: BYTE, psOut: *mut SHORT) -> HRESULT;
}
extern "C" {
    pub fn VarI2FromI4(lIn: LONG, psOut: *mut SHORT) -> HRESULT;
}
extern "C" {
    pub fn VarI2FromI8(i64In: LONG64, psOut: *mut SHORT) -> HRESULT;
}
extern "C" {
    pub fn VarI2FromR4(fltIn: FLOAT, psOut: *mut SHORT) -> HRESULT;
}
extern "C" {
    pub fn VarI2FromR8(dblIn: DOUBLE, psOut: *mut SHORT) -> HRESULT;
}
extern "C" {
    pub fn VarI2FromCy(cyIn: CY, psOut: *mut SHORT) -> HRESULT;
}
extern "C" {
    pub fn VarI2FromDate(dateIn: DATE, psOut: *mut SHORT) -> HRESULT;
}
extern "C" {
    pub fn VarI2FromStr(strIn: LPCOLESTR, lcid: LCID, dwFlags: ULONG, psOut: *mut SHORT)
        -> HRESULT;
}
extern "C" {
    pub fn VarI2FromDisp(pdispIn: *mut IDispatch, lcid: LCID, psOut: *mut SHORT) -> HRESULT;
}
extern "C" {
    pub fn VarI2FromBool(boolIn: VARIANT_BOOL, psOut: *mut SHORT) -> HRESULT;
}
extern "C" {
    pub fn VarI2FromI1(cIn: CHAR, psOut: *mut SHORT) -> HRESULT;
}
extern "C" {
    pub fn VarI2FromUI2(uiIn: USHORT, psOut: *mut SHORT) -> HRESULT;
}
extern "C" {
    pub fn VarI2FromUI4(ulIn: ULONG, psOut: *mut SHORT) -> HRESULT;
}
extern "C" {
    pub fn VarI2FromUI8(ui64In: ULONG64, psOut: *mut SHORT) -> HRESULT;
}
extern "C" {
    pub fn VarI2FromDec(pdecIn: *const DECIMAL, psOut: *mut SHORT) -> HRESULT;
}
extern "C" {
    pub fn VarI4FromUI1(bIn: BYTE, plOut: *mut LONG) -> HRESULT;
}
extern "C" {
    pub fn VarI4FromI2(sIn: SHORT, plOut: *mut LONG) -> HRESULT;
}
extern "C" {
    pub fn VarI4FromI8(i64In: LONG64, plOut: *mut LONG) -> HRESULT;
}
extern "C" {
    pub fn VarI4FromR4(fltIn: FLOAT, plOut: *mut LONG) -> HRESULT;
}
extern "C" {
    pub fn VarI4FromR8(dblIn: DOUBLE, plOut: *mut LONG) -> HRESULT;
}
extern "C" {
    pub fn VarI4FromCy(cyIn: CY, plOut: *mut LONG) -> HRESULT;
}
extern "C" {
    pub fn VarI4FromDate(dateIn: DATE, plOut: *mut LONG) -> HRESULT;
}
extern "C" {
    pub fn VarI4FromStr(strIn: LPCOLESTR, lcid: LCID, dwFlags: ULONG, plOut: *mut LONG) -> HRESULT;
}
extern "C" {
    pub fn VarI4FromDisp(pdispIn: *mut IDispatch, lcid: LCID, plOut: *mut LONG) -> HRESULT;
}
extern "C" {
    pub fn VarI4FromBool(boolIn: VARIANT_BOOL, plOut: *mut LONG) -> HRESULT;
}
extern "C" {
    pub fn VarI4FromI1(cIn: CHAR, plOut: *mut LONG) -> HRESULT;
}
extern "C" {
    pub fn VarI4FromUI2(uiIn: USHORT, plOut: *mut LONG) -> HRESULT;
}
extern "C" {
    pub fn VarI4FromUI4(ulIn: ULONG, plOut: *mut LONG) -> HRESULT;
}
extern "C" {
    pub fn VarI4FromUI8(ui64In: ULONG64, plOut: *mut LONG) -> HRESULT;
}
extern "C" {
    pub fn VarI4FromDec(pdecIn: *const DECIMAL, plOut: *mut LONG) -> HRESULT;
}
extern "C" {
    pub fn VarI8FromUI1(bIn: BYTE, pi64Out: *mut LONG64) -> HRESULT;
}
extern "C" {
    pub fn VarI8FromI2(sIn: SHORT, pi64Out: *mut LONG64) -> HRESULT;
}
extern "C" {
    pub fn VarI8FromR4(fltIn: FLOAT, pi64Out: *mut LONG64) -> HRESULT;
}
extern "C" {
    pub fn VarI8FromR8(dblIn: DOUBLE, pi64Out: *mut LONG64) -> HRESULT;
}
extern "C" {
    pub fn VarI8FromCy(cyIn: CY, pi64Out: *mut LONG64) -> HRESULT;
}
extern "C" {
    pub fn VarI8FromDate(dateIn: DATE, pi64Out: *mut LONG64) -> HRESULT;
}
extern "C" {
    pub fn VarI8FromStr(
        strIn: LPCOLESTR,
        lcid: LCID,
        dwFlags: ULONG,
        pi64Out: *mut LONG64,
    ) -> HRESULT;
}
extern "C" {
    pub fn VarI8FromDisp(pdispIn: *mut IDispatch, lcid: LCID, pi64Out: *mut LONG64) -> HRESULT;
}
extern "C" {
    pub fn VarI8FromBool(boolIn: VARIANT_BOOL, pi64Out: *mut LONG64) -> HRESULT;
}
extern "C" {
    pub fn VarI8FromI1(cIn: CHAR, pi64Out: *mut LONG64) -> HRESULT;
}
extern "C" {
    pub fn VarI8FromUI2(uiIn: USHORT, pi64Out: *mut LONG64) -> HRESULT;
}
extern "C" {
    pub fn VarI8FromUI4(ulIn: ULONG, pi64Out: *mut LONG64) -> HRESULT;
}
extern "C" {
    pub fn VarI8FromUI8(ui64In: ULONG64, pi64Out: *mut LONG64) -> HRESULT;
}
extern "C" {
    pub fn VarI8FromDec(pdecIn: *const DECIMAL, pi64Out: *mut LONG64) -> HRESULT;
}
extern "C" {
    pub fn VarR4FromUI1(bIn: BYTE, pfltOut: *mut FLOAT) -> HRESULT;
}
extern "C" {
    pub fn VarR4FromI2(sIn: SHORT, pfltOut: *mut FLOAT) -> HRESULT;
}
extern "C" {
    pub fn VarR4FromI4(lIn: LONG, pfltOut: *mut FLOAT) -> HRESULT;
}
extern "C" {
    pub fn VarR4FromI8(i64In: LONG64, pfltOut: *mut FLOAT) -> HRESULT;
}
extern "C" {
    pub fn VarR4FromR8(dblIn: DOUBLE, pfltOut: *mut FLOAT) -> HRESULT;
}
extern "C" {
    pub fn VarR4FromCy(cyIn: CY, pfltOut: *mut FLOAT) -> HRESULT;
}
extern "C" {
    pub fn VarR4FromDate(dateIn: DATE, pfltOut: *mut FLOAT) -> HRESULT;
}
extern "C" {
    pub fn VarR4FromStr(
        strIn: LPCOLESTR,
        lcid: LCID,
        dwFlags: ULONG,
        pfltOut: *mut FLOAT,
    ) -> HRESULT;
}
extern "C" {
    pub fn VarR4FromDisp(pdispIn: *mut IDispatch, lcid: LCID, pfltOut: *mut FLOAT) -> HRESULT;
}
extern "C" {
    pub fn VarR4FromBool(boolIn: VARIANT_BOOL, pfltOut: *mut FLOAT) -> HRESULT;
}
extern "C" {
    pub fn VarR4FromI1(cIn: CHAR, pfltOut: *mut FLOAT) -> HRESULT;
}
extern "C" {
    pub fn VarR4FromUI2(uiIn: USHORT, pfltOut: *mut FLOAT) -> HRESULT;
}
extern "C" {
    pub fn VarR4FromUI4(ulIn: ULONG, pfltOut: *mut FLOAT) -> HRESULT;
}
extern "C" {
    pub fn VarR4FromUI8(ui64In: ULONG64, pfltOut: *mut FLOAT) -> HRESULT;
}
extern "C" {
    pub fn VarR4FromDec(pdecIn: *const DECIMAL, pfltOut: *mut FLOAT) -> HRESULT;
}
extern "C" {
    pub fn VarR8FromUI1(bIn: BYTE, pdblOut: *mut DOUBLE) -> HRESULT;
}
extern "C" {
    pub fn VarR8FromI2(sIn: SHORT, pdblOut: *mut DOUBLE) -> HRESULT;
}
extern "C" {
    pub fn VarR8FromI4(lIn: LONG, pdblOut: *mut DOUBLE) -> HRESULT;
}
extern "C" {
    pub fn VarR8FromI8(i64In: LONG64, pdblOut: *mut DOUBLE) -> HRESULT;
}
extern "C" {
    pub fn VarR8FromR4(fltIn: FLOAT, pdblOut: *mut DOUBLE) -> HRESULT;
}
extern "C" {
    pub fn VarR8FromCy(cyIn: CY, pdblOut: *mut DOUBLE) -> HRESULT;
}
extern "C" {
    pub fn VarR8FromDate(dateIn: DATE, pdblOut: *mut DOUBLE) -> HRESULT;
}
extern "C" {
    pub fn VarR8FromStr(
        strIn: LPCOLESTR,
        lcid: LCID,
        dwFlags: ULONG,
        pdblOut: *mut DOUBLE,
    ) -> HRESULT;
}
extern "C" {
    pub fn VarR8FromDisp(pdispIn: *mut IDispatch, lcid: LCID, pdblOut: *mut DOUBLE) -> HRESULT;
}
extern "C" {
    pub fn VarR8FromBool(boolIn: VARIANT_BOOL, pdblOut: *mut DOUBLE) -> HRESULT;
}
extern "C" {
    pub fn VarR8FromI1(cIn: CHAR, pdblOut: *mut DOUBLE) -> HRESULT;
}
extern "C" {
    pub fn VarR8FromUI2(uiIn: USHORT, pdblOut: *mut DOUBLE) -> HRESULT;
}
extern "C" {
    pub fn VarR8FromUI4(ulIn: ULONG, pdblOut: *mut DOUBLE) -> HRESULT;
}
extern "C" {
    pub fn VarR8FromUI8(ui64In: ULONG64, pdblOut: *mut DOUBLE) -> HRESULT;
}
extern "C" {
    pub fn VarR8FromDec(pdecIn: *const DECIMAL, pdblOut: *mut DOUBLE) -> HRESULT;
}
extern "C" {
    pub fn VarDateFromUI1(bIn: BYTE, pdateOut: *mut DATE) -> HRESULT;
}
extern "C" {
    pub fn VarDateFromI2(sIn: SHORT, pdateOut: *mut DATE) -> HRESULT;
}
extern "C" {
    pub fn VarDateFromI4(lIn: LONG, pdateOut: *mut DATE) -> HRESULT;
}
extern "C" {
    pub fn VarDateFromI8(i64In: LONG64, pdateOut: *mut DATE) -> HRESULT;
}
extern "C" {
    pub fn VarDateFromR4(fltIn: FLOAT, pdateOut: *mut DATE) -> HRESULT;
}
extern "C" {
    pub fn VarDateFromR8(dblIn: DOUBLE, pdateOut: *mut DATE) -> HRESULT;
}
extern "C" {
    pub fn VarDateFromCy(cyIn: CY, pdateOut: *mut DATE) -> HRESULT;
}
extern "C" {
    pub fn VarDateFromStr(
        strIn: LPCOLESTR,
        lcid: LCID,
        dwFlags: ULONG,
        pdateOut: *mut DATE,
    ) -> HRESULT;
}
extern "C" {
    pub fn VarDateFromDisp(pdispIn: *mut IDispatch, lcid: LCID, pdateOut: *mut DATE) -> HRESULT;
}
extern "C" {
    pub fn VarDateFromBool(boolIn: VARIANT_BOOL, pdateOut: *mut DATE) -> HRESULT;
}
extern "C" {
    pub fn VarDateFromI1(cIn: CHAR, pdateOut: *mut DATE) -> HRESULT;
}
extern "C" {
    pub fn VarDateFromUI2(uiIn: USHORT, pdateOut: *mut DATE) -> HRESULT;
}
extern "C" {
    pub fn VarDateFromUI4(ulIn: ULONG, pdateOut: *mut DATE) -> HRESULT;
}
extern "C" {
    pub fn VarDateFromUI8(ui64In: ULONG64, pdateOut: *mut DATE) -> HRESULT;
}
extern "C" {
    pub fn VarDateFromDec(pdecIn: *const DECIMAL, pdateOut: *mut DATE) -> HRESULT;
}
extern "C" {
    pub fn VarCyFromUI1(bIn: BYTE, pcyOut: *mut CY) -> HRESULT;
}
extern "C" {
    pub fn VarCyFromI2(sIn: SHORT, pcyOut: *mut CY) -> HRESULT;
}
extern "C" {
    pub fn VarCyFromI4(lIn: LONG, pcyOut: *mut CY) -> HRESULT;
}
extern "C" {
    pub fn VarCyFromI8(i64In: LONG64, pcyOut: *mut CY) -> HRESULT;
}
extern "C" {
    pub fn VarCyFromR4(fltIn: FLOAT, pcyOut: *mut CY) -> HRESULT;
}
extern "C" {
    pub fn VarCyFromR8(dblIn: DOUBLE, pcyOut: *mut CY) -> HRESULT;
}
extern "C" {
    pub fn VarCyFromDate(dateIn: DATE, pcyOut: *mut CY) -> HRESULT;
}
extern "C" {
    pub fn VarCyFromStr(strIn: LPCOLESTR, lcid: LCID, dwFlags: ULONG, pcyOut: *mut CY) -> HRESULT;
}
extern "C" {
    pub fn VarCyFromDisp(pdispIn: *mut IDispatch, lcid: LCID, pcyOut: *mut CY) -> HRESULT;
}
extern "C" {
    pub fn VarCyFromBool(boolIn: VARIANT_BOOL, pcyOut: *mut CY) -> HRESULT;
}
extern "C" {
    pub fn VarCyFromI1(cIn: CHAR, pcyOut: *mut CY) -> HRESULT;
}
extern "C" {
    pub fn VarCyFromUI2(uiIn: USHORT, pcyOut: *mut CY) -> HRESULT;
}
extern "C" {
    pub fn VarCyFromUI4(ulIn: ULONG, pcyOut: *mut CY) -> HRESULT;
}
extern "C" {
    pub fn VarCyFromUI8(ui64In: ULONG64, pcyOut: *mut CY) -> HRESULT;
}
extern "C" {
    pub fn VarCyFromDec(pdecIn: *const DECIMAL, pcyOut: *mut CY) -> HRESULT;
}
extern "C" {
    pub fn VarBstrFromUI1(bVal: BYTE, lcid: LCID, dwFlags: ULONG, pbstrOut: *mut BSTR) -> HRESULT;
}
extern "C" {
    pub fn VarBstrFromI2(iVal: SHORT, lcid: LCID, dwFlags: ULONG, pbstrOut: *mut BSTR) -> HRESULT;
}
extern "C" {
    pub fn VarBstrFromI4(lIn: LONG, lcid: LCID, dwFlags: ULONG, pbstrOut: *mut BSTR) -> HRESULT;
}
extern "C" {
    pub fn VarBstrFromI8(i64In: LONG64, lcid: LCID, dwFlags: ULONG, pbstrOut: *mut BSTR)
        -> HRESULT;
}
extern "C" {
    pub fn VarBstrFromR4(fltIn: FLOAT, lcid: LCID, dwFlags: ULONG, pbstrOut: *mut BSTR) -> HRESULT;
}
extern "C" {
    pub fn VarBstrFromR8(dblIn: DOUBLE, lcid: LCID, dwFlags: ULONG, pbstrOut: *mut BSTR)
        -> HRESULT;
}
extern "C" {
    pub fn VarBstrFromCy(cyIn: CY, lcid: LCID, dwFlags: ULONG, pbstrOut: *mut BSTR) -> HRESULT;
}
extern "C" {
    pub fn VarBstrFromDate(
        dateIn: DATE,
        lcid: LCID,
        dwFlags: ULONG,
        pbstrOut: *mut BSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn VarBstrFromDisp(
        pdispIn: *mut IDispatch,
        lcid: LCID,
        dwFlags: ULONG,
        pbstrOut: *mut BSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn VarBstrFromBool(
        boolIn: VARIANT_BOOL,
        lcid: LCID,
        dwFlags: ULONG,
        pbstrOut: *mut BSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn VarBstrFromI1(cIn: CHAR, lcid: LCID, dwFlags: ULONG, pbstrOut: *mut BSTR) -> HRESULT;
}
extern "C" {
    pub fn VarBstrFromUI2(uiIn: USHORT, lcid: LCID, dwFlags: ULONG, pbstrOut: *mut BSTR)
        -> HRESULT;
}
extern "C" {
    pub fn VarBstrFromUI4(ulIn: ULONG, lcid: LCID, dwFlags: ULONG, pbstrOut: *mut BSTR) -> HRESULT;
}
extern "C" {
    pub fn VarBstrFromUI8(
        ui64In: ULONG64,
        lcid: LCID,
        dwFlags: ULONG,
        pbstrOut: *mut BSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn VarBstrFromDec(
        pdecIn: *const DECIMAL,
        lcid: LCID,
        dwFlags: ULONG,
        pbstrOut: *mut BSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn VarBoolFromUI1(bIn: BYTE, pboolOut: *mut VARIANT_BOOL) -> HRESULT;
}
extern "C" {
    pub fn VarBoolFromI2(sIn: SHORT, pboolOut: *mut VARIANT_BOOL) -> HRESULT;
}
extern "C" {
    pub fn VarBoolFromI4(lIn: LONG, pboolOut: *mut VARIANT_BOOL) -> HRESULT;
}
extern "C" {
    pub fn VarBoolFromI8(i64In: LONG64, pboolOut: *mut VARIANT_BOOL) -> HRESULT;
}
extern "C" {
    pub fn VarBoolFromR4(fltIn: FLOAT, pboolOut: *mut VARIANT_BOOL) -> HRESULT;
}
extern "C" {
    pub fn VarBoolFromR8(dblIn: DOUBLE, pboolOut: *mut VARIANT_BOOL) -> HRESULT;
}
extern "C" {
    pub fn VarBoolFromDate(dateIn: DATE, pboolOut: *mut VARIANT_BOOL) -> HRESULT;
}
extern "C" {
    pub fn VarBoolFromCy(cyIn: CY, pboolOut: *mut VARIANT_BOOL) -> HRESULT;
}
extern "C" {
    pub fn VarBoolFromStr(
        strIn: LPCOLESTR,
        lcid: LCID,
        dwFlags: ULONG,
        pboolOut: *mut VARIANT_BOOL,
    ) -> HRESULT;
}
extern "C" {
    pub fn VarBoolFromDisp(
        pdispIn: *mut IDispatch,
        lcid: LCID,
        pboolOut: *mut VARIANT_BOOL,
    ) -> HRESULT;
}
extern "C" {
    pub fn VarBoolFromI1(cIn: CHAR, pboolOut: *mut VARIANT_BOOL) -> HRESULT;
}
extern "C" {
    pub fn VarBoolFromUI2(uiIn: USHORT, pboolOut: *mut VARIANT_BOOL) -> HRESULT;
}
extern "C" {
    pub fn VarBoolFromUI4(ulIn: ULONG, pboolOut: *mut VARIANT_BOOL) -> HRESULT;
}
extern "C" {
    pub fn VarBoolFromUI8(i64In: ULONG64, pboolOut: *mut VARIANT_BOOL) -> HRESULT;
}
extern "C" {
    pub fn VarBoolFromDec(pdecIn: *const DECIMAL, pboolOut: *mut VARIANT_BOOL) -> HRESULT;
}
extern "C" {
    pub fn VarI1FromUI1(bIn: BYTE, pcOut: *mut CHAR) -> HRESULT;
}
extern "C" {
    pub fn VarI1FromI2(uiIn: SHORT, pcOut: *mut CHAR) -> HRESULT;
}
extern "C" {
    pub fn VarI1FromI4(lIn: LONG, pcOut: *mut CHAR) -> HRESULT;
}
extern "C" {
    pub fn VarI1FromI8(i64In: LONG64, pcOut: *mut CHAR) -> HRESULT;
}
extern "C" {
    pub fn VarI1FromR4(fltIn: FLOAT, pcOut: *mut CHAR) -> HRESULT;
}
extern "C" {
    pub fn VarI1FromR8(dblIn: DOUBLE, pcOut: *mut CHAR) -> HRESULT;
}
extern "C" {
    pub fn VarI1FromDate(dateIn: DATE, pcOut: *mut CHAR) -> HRESULT;
}
extern "C" {
    pub fn VarI1FromCy(cyIn: CY, pcOut: *mut CHAR) -> HRESULT;
}
extern "C" {
    pub fn VarI1FromStr(strIn: LPCOLESTR, lcid: LCID, dwFlags: ULONG, pcOut: *mut CHAR) -> HRESULT;
}
extern "C" {
    pub fn VarI1FromDisp(pdispIn: *mut IDispatch, lcid: LCID, pcOut: *mut CHAR) -> HRESULT;
}
extern "C" {
    pub fn VarI1FromBool(boolIn: VARIANT_BOOL, pcOut: *mut CHAR) -> HRESULT;
}
extern "C" {
    pub fn VarI1FromUI2(uiIn: USHORT, pcOut: *mut CHAR) -> HRESULT;
}
extern "C" {
    pub fn VarI1FromUI4(ulIn: ULONG, pcOut: *mut CHAR) -> HRESULT;
}
extern "C" {
    pub fn VarI1FromUI8(i64In: ULONG64, pcOut: *mut CHAR) -> HRESULT;
}
extern "C" {
    pub fn VarI1FromDec(pdecIn: *const DECIMAL, pcOut: *mut CHAR) -> HRESULT;
}
extern "C" {
    pub fn VarUI2FromUI1(bIn: BYTE, puiOut: *mut USHORT) -> HRESULT;
}
extern "C" {
    pub fn VarUI2FromI2(uiIn: SHORT, puiOut: *mut USHORT) -> HRESULT;
}
extern "C" {
    pub fn VarUI2FromI4(lIn: LONG, puiOut: *mut USHORT) -> HRESULT;
}
extern "C" {
    pub fn VarUI2FromI8(i64In: LONG64, puiOut: *mut USHORT) -> HRESULT;
}
extern "C" {
    pub fn VarUI2FromR4(fltIn: FLOAT, puiOut: *mut USHORT) -> HRESULT;
}
extern "C" {
    pub fn VarUI2FromR8(dblIn: DOUBLE, puiOut: *mut USHORT) -> HRESULT;
}
extern "C" {
    pub fn VarUI2FromDate(dateIn: DATE, puiOut: *mut USHORT) -> HRESULT;
}
extern "C" {
    pub fn VarUI2FromCy(cyIn: CY, puiOut: *mut USHORT) -> HRESULT;
}
extern "C" {
    pub fn VarUI2FromStr(
        strIn: LPCOLESTR,
        lcid: LCID,
        dwFlags: ULONG,
        puiOut: *mut USHORT,
    ) -> HRESULT;
}
extern "C" {
    pub fn VarUI2FromDisp(pdispIn: *mut IDispatch, lcid: LCID, puiOut: *mut USHORT) -> HRESULT;
}
extern "C" {
    pub fn VarUI2FromBool(boolIn: VARIANT_BOOL, puiOut: *mut USHORT) -> HRESULT;
}
extern "C" {
    pub fn VarUI2FromI1(cIn: CHAR, puiOut: *mut USHORT) -> HRESULT;
}
extern "C" {
    pub fn VarUI2FromUI4(ulIn: ULONG, puiOut: *mut USHORT) -> HRESULT;
}
extern "C" {
    pub fn VarUI2FromUI8(i64In: ULONG64, puiOut: *mut USHORT) -> HRESULT;
}
extern "C" {
    pub fn VarUI2FromDec(pdecIn: *const DECIMAL, puiOut: *mut USHORT) -> HRESULT;
}
extern "C" {
    pub fn VarUI4FromUI1(bIn: BYTE, pulOut: *mut ULONG) -> HRESULT;
}
extern "C" {
    pub fn VarUI4FromI2(uiIn: SHORT, pulOut: *mut ULONG) -> HRESULT;
}
extern "C" {
    pub fn VarUI4FromI4(lIn: LONG, pulOut: *mut ULONG) -> HRESULT;
}
extern "C" {
    pub fn VarUI4FromI8(i64In: LONG64, plOut: *mut ULONG) -> HRESULT;
}
extern "C" {
    pub fn VarUI4FromR4(fltIn: FLOAT, pulOut: *mut ULONG) -> HRESULT;
}
extern "C" {
    pub fn VarUI4FromR8(dblIn: DOUBLE, pulOut: *mut ULONG) -> HRESULT;
}
extern "C" {
    pub fn VarUI4FromDate(dateIn: DATE, pulOut: *mut ULONG) -> HRESULT;
}
extern "C" {
    pub fn VarUI4FromCy(cyIn: CY, pulOut: *mut ULONG) -> HRESULT;
}
extern "C" {
    pub fn VarUI4FromStr(
        strIn: LPCOLESTR,
        lcid: LCID,
        dwFlags: ULONG,
        pulOut: *mut ULONG,
    ) -> HRESULT;
}
extern "C" {
    pub fn VarUI4FromDisp(pdispIn: *mut IDispatch, lcid: LCID, pulOut: *mut ULONG) -> HRESULT;
}
extern "C" {
    pub fn VarUI4FromBool(boolIn: VARIANT_BOOL, pulOut: *mut ULONG) -> HRESULT;
}
extern "C" {
    pub fn VarUI4FromI1(cIn: CHAR, pulOut: *mut ULONG) -> HRESULT;
}
extern "C" {
    pub fn VarUI4FromUI2(uiIn: USHORT, pulOut: *mut ULONG) -> HRESULT;
}
extern "C" {
    pub fn VarUI4FromUI8(ui64In: ULONG64, plOut: *mut ULONG) -> HRESULT;
}
extern "C" {
    pub fn VarUI4FromDec(pdecIn: *const DECIMAL, pulOut: *mut ULONG) -> HRESULT;
}
extern "C" {
    pub fn VarUI8FromUI1(bIn: BYTE, pi64Out: *mut ULONG64) -> HRESULT;
}
extern "C" {
    pub fn VarUI8FromI2(sIn: SHORT, pi64Out: *mut ULONG64) -> HRESULT;
}
extern "C" {
    pub fn VarUI8FromI4(lIn: LONG, pi64Out: *mut ULONG64) -> HRESULT;
}
extern "C" {
    pub fn VarUI8FromI8(ui64In: LONG64, pi64Out: *mut ULONG64) -> HRESULT;
}
extern "C" {
    pub fn VarUI8FromR4(fltIn: FLOAT, pi64Out: *mut ULONG64) -> HRESULT;
}
extern "C" {
    pub fn VarUI8FromR8(dblIn: DOUBLE, pi64Out: *mut ULONG64) -> HRESULT;
}
extern "C" {
    pub fn VarUI8FromCy(cyIn: CY, pi64Out: *mut ULONG64) -> HRESULT;
}
extern "C" {
    pub fn VarUI8FromDate(dateIn: DATE, pi64Out: *mut ULONG64) -> HRESULT;
}
extern "C" {
    pub fn VarUI8FromStr(
        strIn: LPCOLESTR,
        lcid: LCID,
        dwFlags: ULONG,
        pi64Out: *mut ULONG64,
    ) -> HRESULT;
}
extern "C" {
    pub fn VarUI8FromDisp(pdispIn: *mut IDispatch, lcid: LCID, pi64Out: *mut ULONG64) -> HRESULT;
}
extern "C" {
    pub fn VarUI8FromBool(boolIn: VARIANT_BOOL, pi64Out: *mut ULONG64) -> HRESULT;
}
extern "C" {
    pub fn VarUI8FromI1(cIn: CHAR, pi64Out: *mut ULONG64) -> HRESULT;
}
extern "C" {
    pub fn VarUI8FromUI2(uiIn: USHORT, pi64Out: *mut ULONG64) -> HRESULT;
}
extern "C" {
    pub fn VarUI8FromUI4(ulIn: ULONG, pi64Out: *mut ULONG64) -> HRESULT;
}
extern "C" {
    pub fn VarUI8FromDec(pdecIn: *const DECIMAL, pi64Out: *mut ULONG64) -> HRESULT;
}
extern "C" {
    pub fn VarDecFromUI1(bIn: BYTE, pdecOut: *mut DECIMAL) -> HRESULT;
}
extern "C" {
    pub fn VarDecFromI2(uiIn: SHORT, pdecOut: *mut DECIMAL) -> HRESULT;
}
extern "C" {
    pub fn VarDecFromI4(lIn: LONG, pdecOut: *mut DECIMAL) -> HRESULT;
}
extern "C" {
    pub fn VarDecFromI8(i64In: LONG64, pdecOut: *mut DECIMAL) -> HRESULT;
}
extern "C" {
    pub fn VarDecFromR4(fltIn: FLOAT, pdecOut: *mut DECIMAL) -> HRESULT;
}
extern "C" {
    pub fn VarDecFromR8(dblIn: DOUBLE, pdecOut: *mut DECIMAL) -> HRESULT;
}
extern "C" {
    pub fn VarDecFromDate(dateIn: DATE, pdecOut: *mut DECIMAL) -> HRESULT;
}
extern "C" {
    pub fn VarDecFromCy(cyIn: CY, pdecOut: *mut DECIMAL) -> HRESULT;
}
extern "C" {
    pub fn VarDecFromStr(
        strIn: LPCOLESTR,
        lcid: LCID,
        dwFlags: ULONG,
        pdecOut: *mut DECIMAL,
    ) -> HRESULT;
}
extern "C" {
    pub fn VarDecFromDisp(pdispIn: *mut IDispatch, lcid: LCID, pdecOut: *mut DECIMAL) -> HRESULT;
}
extern "C" {
    pub fn VarDecFromBool(boolIn: VARIANT_BOOL, pdecOut: *mut DECIMAL) -> HRESULT;
}
extern "C" {
    pub fn VarDecFromI1(cIn: CHAR, pdecOut: *mut DECIMAL) -> HRESULT;
}
extern "C" {
    pub fn VarDecFromUI2(uiIn: USHORT, pdecOut: *mut DECIMAL) -> HRESULT;
}
extern "C" {
    pub fn VarDecFromUI4(ulIn: ULONG, pdecOut: *mut DECIMAL) -> HRESULT;
}
extern "C" {
    pub fn VarDecFromUI8(ui64In: ULONG64, pdecOut: *mut DECIMAL) -> HRESULT;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct NUMPARSE {
    pub cDig: INT,
    pub dwInFlags: ULONG,
    pub dwOutFlags: ULONG,
    pub cchUsed: INT,
    pub nBaseShift: INT,
    pub nPwr10: INT,
}
#[test]
fn bindgen_test_layout_NUMPARSE() {
    assert_eq!(
        ::std::mem::size_of::<NUMPARSE>(),
        24usize,
        concat!("Size of: ", stringify!(NUMPARSE))
    );
    assert_eq!(
        ::std::mem::align_of::<NUMPARSE>(),
        4usize,
        concat!("Alignment of ", stringify!(NUMPARSE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<NUMPARSE>())).cDig as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(NUMPARSE),
            "::",
            stringify!(cDig)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<NUMPARSE>())).dwInFlags as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(NUMPARSE),
            "::",
            stringify!(dwInFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<NUMPARSE>())).dwOutFlags as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(NUMPARSE),
            "::",
            stringify!(dwOutFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<NUMPARSE>())).cchUsed as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(NUMPARSE),
            "::",
            stringify!(cchUsed)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<NUMPARSE>())).nBaseShift as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(NUMPARSE),
            "::",
            stringify!(nBaseShift)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<NUMPARSE>())).nPwr10 as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(NUMPARSE),
            "::",
            stringify!(nPwr10)
        )
    );
}
extern "C" {
    pub fn VarParseNumFromStr(
        strIn: LPCOLESTR,
        lcid: LCID,
        dwFlags: ULONG,
        pnumprs: *mut NUMPARSE,
        rgbDig: *mut BYTE,
    ) -> HRESULT;
}
extern "C" {
    pub fn VarNumFromParseNum(
        pnumprs: *mut NUMPARSE,
        rgbDig: *mut BYTE,
        dwVtBits: ULONG,
        pvar: *mut VARIANT,
    ) -> HRESULT;
}
extern "C" {
    pub fn VarAdd(pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT) -> HRESULT;
}
extern "C" {
    pub fn VarAnd(pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT) -> HRESULT;
}
extern "C" {
    pub fn VarCat(pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT) -> HRESULT;
}
extern "C" {
    pub fn VarDiv(pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT) -> HRESULT;
}
extern "C" {
    pub fn VarEqv(pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT) -> HRESULT;
}
extern "C" {
    pub fn VarIdiv(pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT) -> HRESULT;
}
extern "C" {
    pub fn VarImp(pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT) -> HRESULT;
}
extern "C" {
    pub fn VarMod(pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT) -> HRESULT;
}
extern "C" {
    pub fn VarMul(pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT) -> HRESULT;
}
extern "C" {
    pub fn VarOr(pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT) -> HRESULT;
}
extern "C" {
    pub fn VarPow(pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT) -> HRESULT;
}
extern "C" {
    pub fn VarSub(pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT) -> HRESULT;
}
extern "C" {
    pub fn VarXor(pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT) -> HRESULT;
}
extern "C" {
    pub fn VarAbs(pvarIn: LPVARIANT, pvarResult: LPVARIANT) -> HRESULT;
}
extern "C" {
    pub fn VarFix(pvarIn: LPVARIANT, pvarResult: LPVARIANT) -> HRESULT;
}
extern "C" {
    pub fn VarInt(pvarIn: LPVARIANT, pvarResult: LPVARIANT) -> HRESULT;
}
extern "C" {
    pub fn VarNeg(pvarIn: LPVARIANT, pvarResult: LPVARIANT) -> HRESULT;
}
extern "C" {
    pub fn VarNot(pvarIn: LPVARIANT, pvarResult: LPVARIANT) -> HRESULT;
}
extern "C" {
    pub fn VarRound(
        pvarIn: LPVARIANT,
        cDecimals: ::std::os::raw::c_int,
        pvarResult: LPVARIANT,
    ) -> HRESULT;
}
extern "C" {
    pub fn VarCmp(pvarLeft: LPVARIANT, pvarRight: LPVARIANT, lcid: LCID, dwFlags: ULONG)
        -> HRESULT;
}
extern "C" {
    pub fn VarDecAdd(pdecLeft: LPDECIMAL, pdecRight: LPDECIMAL, pdecResult: LPDECIMAL) -> HRESULT;
}
extern "C" {
    pub fn VarDecDiv(pdecLeft: LPDECIMAL, pdecRight: LPDECIMAL, pdecResult: LPDECIMAL) -> HRESULT;
}
extern "C" {
    pub fn VarDecMul(pdecLeft: LPDECIMAL, pdecRight: LPDECIMAL, pdecResult: LPDECIMAL) -> HRESULT;
}
extern "C" {
    pub fn VarDecSub(pdecLeft: LPDECIMAL, pdecRight: LPDECIMAL, pdecResult: LPDECIMAL) -> HRESULT;
}
extern "C" {
    pub fn VarDecAbs(pdecIn: LPDECIMAL, pdecResult: LPDECIMAL) -> HRESULT;
}
extern "C" {
    pub fn VarDecFix(pdecIn: LPDECIMAL, pdecResult: LPDECIMAL) -> HRESULT;
}
extern "C" {
    pub fn VarDecInt(pdecIn: LPDECIMAL, pdecResult: LPDECIMAL) -> HRESULT;
}
extern "C" {
    pub fn VarDecNeg(pdecIn: LPDECIMAL, pdecResult: LPDECIMAL) -> HRESULT;
}
extern "C" {
    pub fn VarDecRound(
        pdecIn: LPDECIMAL,
        cDecimals: ::std::os::raw::c_int,
        pdecResult: LPDECIMAL,
    ) -> HRESULT;
}
extern "C" {
    pub fn VarDecCmp(pdecLeft: LPDECIMAL, pdecRight: LPDECIMAL) -> HRESULT;
}
extern "C" {
    pub fn VarDecCmpR8(pdecLeft: LPDECIMAL, dblRight: f64) -> HRESULT;
}
extern "C" {
    pub fn VarCyAdd(cyLeft: CY, cyRight: CY, pcyResult: LPCY) -> HRESULT;
}
extern "C" {
    pub fn VarCyMul(cyLeft: CY, cyRight: CY, pcyResult: LPCY) -> HRESULT;
}
extern "C" {
    pub fn VarCyMulI4(cyLeft: CY, lRight: LONG, pcyResult: LPCY) -> HRESULT;
}
extern "C" {
    pub fn VarCyMulI8(cyLeft: CY, lRight: LONG64, pcyResult: LPCY) -> HRESULT;
}
extern "C" {
    pub fn VarCySub(cyLeft: CY, cyRight: CY, pcyResult: LPCY) -> HRESULT;
}
extern "C" {
    pub fn VarCyAbs(cyIn: CY, pcyResult: LPCY) -> HRESULT;
}
extern "C" {
    pub fn VarCyFix(cyIn: CY, pcyResult: LPCY) -> HRESULT;
}
extern "C" {
    pub fn VarCyInt(cyIn: CY, pcyResult: LPCY) -> HRESULT;
}
extern "C" {
    pub fn VarCyNeg(cyIn: CY, pcyResult: LPCY) -> HRESULT;
}
extern "C" {
    pub fn VarCyRound(cyIn: CY, cDecimals: ::std::os::raw::c_int, pcyResult: LPCY) -> HRESULT;
}
extern "C" {
    pub fn VarCyCmp(cyLeft: CY, cyRight: CY) -> HRESULT;
}
extern "C" {
    pub fn VarCyCmpR8(cyLeft: CY, dblRight: f64) -> HRESULT;
}
extern "C" {
    pub fn VarBstrCat(bstrLeft: BSTR, bstrRight: BSTR, pbstrResult: LPBSTR) -> HRESULT;
}
extern "C" {
    pub fn VarBstrCmp(bstrLeft: BSTR, bstrRight: BSTR, lcid: LCID, dwFlags: ULONG) -> HRESULT;
}
extern "C" {
    pub fn VarR8Pow(dblLeft: f64, dblRight: f64, pdblResult: *mut f64) -> HRESULT;
}
extern "C" {
    pub fn VarR4CmpR8(fltLeft: f32, dblRight: f64) -> HRESULT;
}
extern "C" {
    pub fn VarR8Round(
        dblIn: f64,
        cDecimals: ::std::os::raw::c_int,
        pdblResult: *mut f64,
    ) -> HRESULT;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct UDATE {
    pub st: SYSTEMTIME,
    pub wDayOfYear: USHORT,
}
#[test]
fn bindgen_test_layout_UDATE() {
    assert_eq!(
        ::std::mem::size_of::<UDATE>(),
        18usize,
        concat!("Size of: ", stringify!(UDATE))
    );
    assert_eq!(
        ::std::mem::align_of::<UDATE>(),
        2usize,
        concat!("Alignment of ", stringify!(UDATE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<UDATE>())).st as *const _ as usize },
        0usize,
        concat!("Offset of field: ", stringify!(UDATE), "::", stringify!(st))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<UDATE>())).wDayOfYear as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(UDATE),
            "::",
            stringify!(wDayOfYear)
        )
    );
}
extern "C" {
    pub fn VarDateFromUdate(pudateIn: *mut UDATE, dwFlags: ULONG, pdateOut: *mut DATE) -> HRESULT;
}
extern "C" {
    pub fn VarDateFromUdateEx(
        pudateIn: *mut UDATE,
        lcid: LCID,
        dwFlags: ULONG,
        pdateOut: *mut DATE,
    ) -> HRESULT;
}
extern "C" {
    pub fn VarUdateFromDate(dateIn: DATE, dwFlags: ULONG, pudateOut: *mut UDATE) -> HRESULT;
}
extern "C" {
    pub fn GetAltMonthNames(lcid: LCID, prgp: *mut *mut LPOLESTR) -> HRESULT;
}
extern "C" {
    pub fn VarFormat(
        pvarIn: LPVARIANT,
        pstrFormat: LPOLESTR,
        iFirstDay: ::std::os::raw::c_int,
        iFirstWeek: ::std::os::raw::c_int,
        dwFlags: ULONG,
        pbstrOut: *mut BSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn VarFormatDateTime(
        pvarIn: LPVARIANT,
        iNamedFormat: ::std::os::raw::c_int,
        dwFlags: ULONG,
        pbstrOut: *mut BSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn VarFormatNumber(
        pvarIn: LPVARIANT,
        iNumDig: ::std::os::raw::c_int,
        iIncLead: ::std::os::raw::c_int,
        iUseParens: ::std::os::raw::c_int,
        iGroup: ::std::os::raw::c_int,
        dwFlags: ULONG,
        pbstrOut: *mut BSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn VarFormatPercent(
        pvarIn: LPVARIANT,
        iNumDig: ::std::os::raw::c_int,
        iIncLead: ::std::os::raw::c_int,
        iUseParens: ::std::os::raw::c_int,
        iGroup: ::std::os::raw::c_int,
        dwFlags: ULONG,
        pbstrOut: *mut BSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn VarFormatCurrency(
        pvarIn: LPVARIANT,
        iNumDig: ::std::os::raw::c_int,
        iIncLead: ::std::os::raw::c_int,
        iUseParens: ::std::os::raw::c_int,
        iGroup: ::std::os::raw::c_int,
        dwFlags: ULONG,
        pbstrOut: *mut BSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn VarWeekdayName(
        iWeekday: ::std::os::raw::c_int,
        fAbbrev: ::std::os::raw::c_int,
        iFirstDay: ::std::os::raw::c_int,
        dwFlags: ULONG,
        pbstrOut: *mut BSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn VarMonthName(
        iMonth: ::std::os::raw::c_int,
        fAbbrev: ::std::os::raw::c_int,
        dwFlags: ULONG,
        pbstrOut: *mut BSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn VarFormatFromTokens(
        pvarIn: LPVARIANT,
        pstrFormat: LPOLESTR,
        pbTokCur: LPBYTE,
        dwFlags: ULONG,
        pbstrOut: *mut BSTR,
        lcid: LCID,
    ) -> HRESULT;
}
extern "C" {
    pub fn VarTokenizeFormatString(
        pstrFormat: LPOLESTR,
        rgbTok: LPBYTE,
        cbTok: ::std::os::raw::c_int,
        iFirstDay: ::std::os::raw::c_int,
        iFirstWeek: ::std::os::raw::c_int,
        lcid: LCID,
        pcbActual: *mut ::std::os::raw::c_int,
    ) -> HRESULT;
}
extern "C" {
    pub fn LHashValOfNameSysA(syskind: SYSKIND, lcid: LCID, szName: LPCSTR) -> ULONG;
}
extern "C" {
    pub fn LHashValOfNameSys(syskind: SYSKIND, lcid: LCID, szName: *const OLECHAR) -> ULONG;
}
extern "C" {
    pub fn LoadTypeLib(szFile: LPCOLESTR, pptlib: *mut *mut ITypeLib) -> HRESULT;
}
pub const tagREGKIND_REGKIND_DEFAULT: tagREGKIND = 0;
pub const tagREGKIND_REGKIND_REGISTER: tagREGKIND = 1;
pub const tagREGKIND_REGKIND_NONE: tagREGKIND = 2;
pub type tagREGKIND = ::std::os::raw::c_int;
pub use self::tagREGKIND as REGKIND;
extern "C" {
    pub fn LoadTypeLibEx(
        szFile: LPCOLESTR,
        regkind: REGKIND,
        pptlib: *mut *mut ITypeLib,
    ) -> HRESULT;
}
extern "C" {
    pub fn LoadRegTypeLib(
        rguid: *const GUID,
        wVerMajor: WORD,
        wVerMinor: WORD,
        lcid: LCID,
        pptlib: *mut *mut ITypeLib,
    ) -> HRESULT;
}
extern "C" {
    pub fn QueryPathOfRegTypeLib(
        guid: *const GUID,
        wMaj: USHORT,
        wMin: USHORT,
        lcid: LCID,
        lpbstrPathName: LPBSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn RegisterTypeLib(
        ptlib: *mut ITypeLib,
        szFullPath: LPCOLESTR,
        szHelpDir: LPCOLESTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn UnRegisterTypeLib(
        libID: *const GUID,
        wVerMajor: WORD,
        wVerMinor: WORD,
        lcid: LCID,
        syskind: SYSKIND,
    ) -> HRESULT;
}
extern "C" {
    pub fn RegisterTypeLibForUser(
        ptlib: *mut ITypeLib,
        szFullPath: *mut OLECHAR,
        szHelpDir: *mut OLECHAR,
    ) -> HRESULT;
}
extern "C" {
    pub fn UnRegisterTypeLibForUser(
        libID: *const GUID,
        wMajorVerNum: WORD,
        wMinorVerNum: WORD,
        lcid: LCID,
        syskind: SYSKIND,
    ) -> HRESULT;
}
extern "C" {
    pub fn CreateTypeLib(
        syskind: SYSKIND,
        szFile: LPCOLESTR,
        ppctlib: *mut *mut ICreateTypeLib,
    ) -> HRESULT;
}
extern "C" {
    pub fn CreateTypeLib2(
        syskind: SYSKIND,
        szFile: LPCOLESTR,
        ppctlib: *mut *mut ICreateTypeLib2,
    ) -> HRESULT;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagPARAMDATA {
    pub szName: *mut OLECHAR,
    pub vt: VARTYPE,
}
#[test]
fn bindgen_test_layout_tagPARAMDATA() {
    assert_eq!(
        ::std::mem::size_of::<tagPARAMDATA>(),
        16usize,
        concat!("Size of: ", stringify!(tagPARAMDATA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagPARAMDATA>(),
        8usize,
        concat!("Alignment of ", stringify!(tagPARAMDATA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPARAMDATA>())).szName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPARAMDATA),
            "::",
            stringify!(szName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPARAMDATA>())).vt as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPARAMDATA),
            "::",
            stringify!(vt)
        )
    );
}
pub type PARAMDATA = tagPARAMDATA;
pub type LPPARAMDATA = *mut tagPARAMDATA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagMETHODDATA {
    pub szName: *mut OLECHAR,
    pub ppdata: *mut PARAMDATA,
    pub dispid: DISPID,
    pub iMeth: UINT,
    pub cc: CALLCONV,
    pub cArgs: UINT,
    pub wFlags: WORD,
    pub vtReturn: VARTYPE,
}
#[test]
fn bindgen_test_layout_tagMETHODDATA() {
    assert_eq!(
        ::std::mem::size_of::<tagMETHODDATA>(),
        40usize,
        concat!("Size of: ", stringify!(tagMETHODDATA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagMETHODDATA>(),
        8usize,
        concat!("Alignment of ", stringify!(tagMETHODDATA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMETHODDATA>())).szName as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMETHODDATA),
            "::",
            stringify!(szName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMETHODDATA>())).ppdata as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMETHODDATA),
            "::",
            stringify!(ppdata)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMETHODDATA>())).dispid as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMETHODDATA),
            "::",
            stringify!(dispid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMETHODDATA>())).iMeth as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMETHODDATA),
            "::",
            stringify!(iMeth)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMETHODDATA>())).cc as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMETHODDATA),
            "::",
            stringify!(cc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMETHODDATA>())).cArgs as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMETHODDATA),
            "::",
            stringify!(cArgs)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMETHODDATA>())).wFlags as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMETHODDATA),
            "::",
            stringify!(wFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagMETHODDATA>())).vtReturn as *const _ as usize },
        34usize,
        concat!(
            "Offset of field: ",
            stringify!(tagMETHODDATA),
            "::",
            stringify!(vtReturn)
        )
    );
}
pub type METHODDATA = tagMETHODDATA;
pub type LPMETHODDATA = *mut tagMETHODDATA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagINTERFACEDATA {
    pub pmethdata: *mut METHODDATA,
    pub cMembers: UINT,
}
#[test]
fn bindgen_test_layout_tagINTERFACEDATA() {
    assert_eq!(
        ::std::mem::size_of::<tagINTERFACEDATA>(),
        16usize,
        concat!("Size of: ", stringify!(tagINTERFACEDATA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagINTERFACEDATA>(),
        8usize,
        concat!("Alignment of ", stringify!(tagINTERFACEDATA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagINTERFACEDATA>())).pmethdata as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagINTERFACEDATA),
            "::",
            stringify!(pmethdata)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagINTERFACEDATA>())).cMembers as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagINTERFACEDATA),
            "::",
            stringify!(cMembers)
        )
    );
}
pub type INTERFACEDATA = tagINTERFACEDATA;
pub type LPINTERFACEDATA = *mut tagINTERFACEDATA;
extern "C" {
    pub fn DispGetParam(
        pdispparams: *mut DISPPARAMS,
        position: UINT,
        vtTarg: VARTYPE,
        pvarResult: *mut VARIANT,
        puArgErr: *mut UINT,
    ) -> HRESULT;
}
extern "C" {
    pub fn DispGetIDsOfNames(
        ptinfo: *mut ITypeInfo,
        rgszNames: *mut LPOLESTR,
        cNames: UINT,
        rgdispid: *mut DISPID,
    ) -> HRESULT;
}
extern "C" {
    pub fn DispInvoke(
        _this: *mut ::std::os::raw::c_void,
        ptinfo: *mut ITypeInfo,
        dispidMember: DISPID,
        wFlags: WORD,
        pparams: *mut DISPPARAMS,
        pvarResult: *mut VARIANT,
        pexcepinfo: *mut EXCEPINFO,
        puArgErr: *mut UINT,
    ) -> HRESULT;
}
extern "C" {
    pub fn CreateDispTypeInfo(
        pidata: *mut INTERFACEDATA,
        lcid: LCID,
        pptinfo: *mut *mut ITypeInfo,
    ) -> HRESULT;
}
extern "C" {
    pub fn CreateStdDispatch(
        punkOuter: *mut IUnknown,
        pvThis: *mut ::std::os::raw::c_void,
        ptinfo: *mut ITypeInfo,
        ppunkStdDisp: *mut *mut IUnknown,
    ) -> HRESULT;
}
extern "C" {
    pub fn DispCallFunc(
        pvInstance: *mut ::std::os::raw::c_void,
        oVft: ULONG_PTR,
        cc: CALLCONV,
        vtReturn: VARTYPE,
        cActuals: UINT,
        prgvt: *mut VARTYPE,
        prgpvarg: *mut *mut VARIANTARG,
        pvargResult: *mut VARIANT,
    ) -> HRESULT;
}
extern "C" {
    pub fn RegisterActiveObject(
        punk: *mut IUnknown,
        rclsid: *const IID,
        dwFlags: DWORD,
        pdwRegister: *mut DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn RevokeActiveObject(
        dwRegister: DWORD,
        pvReserved: *mut ::std::os::raw::c_void,
    ) -> HRESULT;
}
extern "C" {
    pub fn GetActiveObject(
        rclsid: *const IID,
        pvReserved: *mut ::std::os::raw::c_void,
        ppunk: *mut *mut IUnknown,
    ) -> HRESULT;
}
extern "C" {
    pub fn SetErrorInfo(dwReserved: ULONG, perrinfo: *mut IErrorInfo) -> HRESULT;
}
extern "C" {
    pub fn GetErrorInfo(dwReserved: ULONG, pperrinfo: *mut *mut IErrorInfo) -> HRESULT;
}
extern "C" {
    pub fn CreateErrorInfo(pperrinfo: *mut *mut ICreateErrorInfo) -> HRESULT;
}
extern "C" {
    pub fn GetRecordInfoFromTypeInfo(
        pTypeInfo: *mut ITypeInfo,
        ppRecInfo: *mut *mut IRecordInfo,
    ) -> HRESULT;
}
extern "C" {
    pub fn GetRecordInfoFromGuids(
        rGuidTypeLib: *const GUID,
        uVerMajor: ULONG,
        uVerMinor: ULONG,
        lcid: LCID,
        rGuidTypeInfo: *const GUID,
        ppRecInfo: *mut *mut IRecordInfo,
    ) -> HRESULT;
}
extern "C" {
    pub fn OaBuildVersion() -> ULONG;
}
extern "C" {
    pub fn ClearCustData(pCustData: LPCUSTDATA);
}
extern "C" {
    pub fn OaEnablePerUserTLibRegistration();
}
extern "C" {
    pub fn OleBuildVersion() -> DWORD;
}
extern "C" {
    pub fn WriteFmtUserTypeStg(pstg: LPSTORAGE, cf: CLIPFORMAT, lpszUserType: LPOLESTR) -> HRESULT;
}
extern "C" {
    pub fn ReadFmtUserTypeStg(
        pstg: LPSTORAGE,
        pcf: *mut CLIPFORMAT,
        lplpszUserType: *mut LPOLESTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn OleInitialize(pvReserved: LPVOID) -> HRESULT;
}
extern "C" {
    pub fn OleUninitialize();
}
extern "C" {
    pub fn OleQueryLinkFromData(pSrcDataObject: LPDATAOBJECT) -> HRESULT;
}
extern "C" {
    pub fn OleQueryCreateFromData(pSrcDataObject: LPDATAOBJECT) -> HRESULT;
}
extern "C" {
    pub fn OleCreate(
        rclsid: *const IID,
        riid: *const IID,
        renderopt: DWORD,
        pFormatEtc: LPFORMATETC,
        pClientSite: LPOLECLIENTSITE,
        pStg: LPSTORAGE,
        ppvObj: *mut LPVOID,
    ) -> HRESULT;
}
extern "C" {
    pub fn OleCreateEx(
        rclsid: *const IID,
        riid: *const IID,
        dwFlags: DWORD,
        renderopt: DWORD,
        cFormats: ULONG,
        rgAdvf: *mut DWORD,
        rgFormatEtc: LPFORMATETC,
        lpAdviseSink: *mut IAdviseSink,
        rgdwConnection: *mut DWORD,
        pClientSite: LPOLECLIENTSITE,
        pStg: LPSTORAGE,
        ppvObj: *mut LPVOID,
    ) -> HRESULT;
}
extern "C" {
    pub fn OleCreateFromData(
        pSrcDataObj: LPDATAOBJECT,
        riid: *const IID,
        renderopt: DWORD,
        pFormatEtc: LPFORMATETC,
        pClientSite: LPOLECLIENTSITE,
        pStg: LPSTORAGE,
        ppvObj: *mut LPVOID,
    ) -> HRESULT;
}
extern "C" {
    pub fn OleCreateFromDataEx(
        pSrcDataObj: LPDATAOBJECT,
        riid: *const IID,
        dwFlags: DWORD,
        renderopt: DWORD,
        cFormats: ULONG,
        rgAdvf: *mut DWORD,
        rgFormatEtc: LPFORMATETC,
        lpAdviseSink: *mut IAdviseSink,
        rgdwConnection: *mut DWORD,
        pClientSite: LPOLECLIENTSITE,
        pStg: LPSTORAGE,
        ppvObj: *mut LPVOID,
    ) -> HRESULT;
}
extern "C" {
    pub fn OleCreateLinkFromData(
        pSrcDataObj: LPDATAOBJECT,
        riid: *const IID,
        renderopt: DWORD,
        pFormatEtc: LPFORMATETC,
        pClientSite: LPOLECLIENTSITE,
        pStg: LPSTORAGE,
        ppvObj: *mut LPVOID,
    ) -> HRESULT;
}
extern "C" {
    pub fn OleCreateLinkFromDataEx(
        pSrcDataObj: LPDATAOBJECT,
        riid: *const IID,
        dwFlags: DWORD,
        renderopt: DWORD,
        cFormats: ULONG,
        rgAdvf: *mut DWORD,
        rgFormatEtc: LPFORMATETC,
        lpAdviseSink: *mut IAdviseSink,
        rgdwConnection: *mut DWORD,
        pClientSite: LPOLECLIENTSITE,
        pStg: LPSTORAGE,
        ppvObj: *mut LPVOID,
    ) -> HRESULT;
}
extern "C" {
    pub fn OleCreateStaticFromData(
        pSrcDataObj: LPDATAOBJECT,
        iid: *const IID,
        renderopt: DWORD,
        pFormatEtc: LPFORMATETC,
        pClientSite: LPOLECLIENTSITE,
        pStg: LPSTORAGE,
        ppvObj: *mut LPVOID,
    ) -> HRESULT;
}
extern "C" {
    pub fn OleCreateLink(
        pmkLinkSrc: LPMONIKER,
        riid: *const IID,
        renderopt: DWORD,
        lpFormatEtc: LPFORMATETC,
        pClientSite: LPOLECLIENTSITE,
        pStg: LPSTORAGE,
        ppvObj: *mut LPVOID,
    ) -> HRESULT;
}
extern "C" {
    pub fn OleCreateLinkEx(
        pmkLinkSrc: LPMONIKER,
        riid: *const IID,
        dwFlags: DWORD,
        renderopt: DWORD,
        cFormats: ULONG,
        rgAdvf: *mut DWORD,
        rgFormatEtc: LPFORMATETC,
        lpAdviseSink: *mut IAdviseSink,
        rgdwConnection: *mut DWORD,
        pClientSite: LPOLECLIENTSITE,
        pStg: LPSTORAGE,
        ppvObj: *mut LPVOID,
    ) -> HRESULT;
}
extern "C" {
    pub fn OleCreateLinkToFile(
        lpszFileName: LPCOLESTR,
        riid: *const IID,
        renderopt: DWORD,
        lpFormatEtc: LPFORMATETC,
        pClientSite: LPOLECLIENTSITE,
        pStg: LPSTORAGE,
        ppvObj: *mut LPVOID,
    ) -> HRESULT;
}
extern "C" {
    pub fn OleCreateLinkToFileEx(
        lpszFileName: LPCOLESTR,
        riid: *const IID,
        dwFlags: DWORD,
        renderopt: DWORD,
        cFormats: ULONG,
        rgAdvf: *mut DWORD,
        rgFormatEtc: LPFORMATETC,
        lpAdviseSink: *mut IAdviseSink,
        rgdwConnection: *mut DWORD,
        pClientSite: LPOLECLIENTSITE,
        pStg: LPSTORAGE,
        ppvObj: *mut LPVOID,
    ) -> HRESULT;
}
extern "C" {
    pub fn OleCreateFromFile(
        rclsid: *const IID,
        lpszFileName: LPCOLESTR,
        riid: *const IID,
        renderopt: DWORD,
        lpFormatEtc: LPFORMATETC,
        pClientSite: LPOLECLIENTSITE,
        pStg: LPSTORAGE,
        ppvObj: *mut LPVOID,
    ) -> HRESULT;
}
extern "C" {
    pub fn OleCreateFromFileEx(
        rclsid: *const IID,
        lpszFileName: LPCOLESTR,
        riid: *const IID,
        dwFlags: DWORD,
        renderopt: DWORD,
        cFormats: ULONG,
        rgAdvf: *mut DWORD,
        rgFormatEtc: LPFORMATETC,
        lpAdviseSink: *mut IAdviseSink,
        rgdwConnection: *mut DWORD,
        pClientSite: LPOLECLIENTSITE,
        pStg: LPSTORAGE,
        ppvObj: *mut LPVOID,
    ) -> HRESULT;
}
extern "C" {
    pub fn OleLoad(
        pStg: LPSTORAGE,
        riid: *const IID,
        pClientSite: LPOLECLIENTSITE,
        ppvObj: *mut LPVOID,
    ) -> HRESULT;
}
extern "C" {
    pub fn OleSave(pPS: LPPERSISTSTORAGE, pStg: LPSTORAGE, fSameAsLoad: BOOL) -> HRESULT;
}
extern "C" {
    pub fn OleLoadFromStream(
        pStm: LPSTREAM,
        iidInterface: *const IID,
        ppvObj: *mut LPVOID,
    ) -> HRESULT;
}
extern "C" {
    pub fn OleSaveToStream(pPStm: LPPERSISTSTREAM, pStm: LPSTREAM) -> HRESULT;
}
extern "C" {
    pub fn OleSetContainedObject(pUnknown: LPUNKNOWN, fContained: BOOL) -> HRESULT;
}
extern "C" {
    pub fn OleNoteObjectVisible(pUnknown: LPUNKNOWN, fVisible: BOOL) -> HRESULT;
}
extern "C" {
    pub fn RegisterDragDrop(hwnd: HWND, pDropTarget: LPDROPTARGET) -> HRESULT;
}
extern "C" {
    pub fn RevokeDragDrop(hwnd: HWND) -> HRESULT;
}
extern "C" {
    pub fn DoDragDrop(
        pDataObj: LPDATAOBJECT,
        pDropSource: LPDROPSOURCE,
        dwOKEffects: DWORD,
        pdwEffect: LPDWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn OleSetClipboard(pDataObj: LPDATAOBJECT) -> HRESULT;
}
extern "C" {
    pub fn OleGetClipboard(ppDataObj: *mut LPDATAOBJECT) -> HRESULT;
}
extern "C" {
    pub fn OleGetClipboardWithEnterpriseInfo(
        dataObject: *mut *mut IDataObject,
        dataEnterpriseId: *mut PWSTR,
        sourceDescription: *mut PWSTR,
        targetDescription: *mut PWSTR,
        dataDescription: *mut PWSTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn OleFlushClipboard() -> HRESULT;
}
extern "C" {
    pub fn OleIsCurrentClipboard(pDataObj: LPDATAOBJECT) -> HRESULT;
}
extern "C" {
    pub fn OleCreateMenuDescriptor(
        hmenuCombined: HMENU,
        lpMenuWidths: LPOLEMENUGROUPWIDTHS,
    ) -> HOLEMENU;
}
extern "C" {
    pub fn OleSetMenuDescriptor(
        holemenu: HOLEMENU,
        hwndFrame: HWND,
        hwndActiveObject: HWND,
        lpFrame: LPOLEINPLACEFRAME,
        lpActiveObj: LPOLEINPLACEACTIVEOBJECT,
    ) -> HRESULT;
}
extern "C" {
    pub fn OleDestroyMenuDescriptor(holemenu: HOLEMENU) -> HRESULT;
}
extern "C" {
    pub fn OleTranslateAccelerator(
        lpFrame: LPOLEINPLACEFRAME,
        lpFrameInfo: LPOLEINPLACEFRAMEINFO,
        lpmsg: LPMSG,
    ) -> HRESULT;
}
extern "C" {
    pub fn OleDuplicateData(hSrc: HANDLE, cfFormat: CLIPFORMAT, uiFlags: UINT) -> HANDLE;
}
extern "C" {
    pub fn OleDraw(
        pUnknown: LPUNKNOWN,
        dwAspect: DWORD,
        hdcDraw: HDC,
        lprcBounds: LPCRECT,
    ) -> HRESULT;
}
extern "C" {
    pub fn OleRun(pUnknown: LPUNKNOWN) -> HRESULT;
}
extern "C" {
    pub fn OleIsRunning(pObject: LPOLEOBJECT) -> BOOL;
}
extern "C" {
    pub fn OleLockRunning(pUnknown: LPUNKNOWN, fLock: BOOL, fLastUnlockCloses: BOOL) -> HRESULT;
}
extern "C" {
    pub fn ReleaseStgMedium(arg1: LPSTGMEDIUM);
}
extern "C" {
    pub fn CreateOleAdviseHolder(ppOAHolder: *mut LPOLEADVISEHOLDER) -> HRESULT;
}
extern "C" {
    pub fn OleCreateDefaultHandler(
        clsid: *const IID,
        pUnkOuter: LPUNKNOWN,
        riid: *const IID,
        lplpObj: *mut LPVOID,
    ) -> HRESULT;
}
extern "C" {
    pub fn OleCreateEmbeddingHelper(
        clsid: *const IID,
        pUnkOuter: LPUNKNOWN,
        flags: DWORD,
        pCF: LPCLASSFACTORY,
        riid: *const IID,
        lplpObj: *mut LPVOID,
    ) -> HRESULT;
}
extern "C" {
    pub fn IsAccelerator(
        hAccel: HACCEL,
        cAccelEntries: ::std::os::raw::c_int,
        lpMsg: LPMSG,
        lpwCmd: *mut WORD,
    ) -> BOOL;
}
extern "C" {
    pub fn OleGetIconOfFile(lpszPath: LPOLESTR, fUseFileAsLabel: BOOL) -> HGLOBAL;
}
extern "C" {
    pub fn OleGetIconOfClass(
        rclsid: *const IID,
        lpszLabel: LPOLESTR,
        fUseTypeAsLabel: BOOL,
    ) -> HGLOBAL;
}
extern "C" {
    pub fn OleMetafilePictFromIconAndLabel(
        hIcon: HICON,
        lpszLabel: LPOLESTR,
        lpszSourceFile: LPOLESTR,
        iIconIndex: UINT,
    ) -> HGLOBAL;
}
extern "C" {
    pub fn OleRegGetUserType(
        clsid: *const IID,
        dwFormOfType: DWORD,
        pszUserType: *mut LPOLESTR,
    ) -> HRESULT;
}
extern "C" {
    pub fn OleRegGetMiscStatus(
        clsid: *const IID,
        dwAspect: DWORD,
        pdwStatus: *mut DWORD,
    ) -> HRESULT;
}
extern "C" {
    pub fn OleRegEnumFormatEtc(
        clsid: *const IID,
        dwDirection: DWORD,
        ppenum: *mut LPENUMFORMATETC,
    ) -> HRESULT;
}
extern "C" {
    pub fn OleRegEnumVerbs(clsid: *const IID, ppenum: *mut LPENUMOLEVERB) -> HRESULT;
}
pub type LPOLESTREAM = *mut _OLESTREAM;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _OLESTREAMVTBL {
    pub Get: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: LPOLESTREAM,
            arg2: *mut ::std::os::raw::c_void,
            arg3: DWORD,
        ) -> DWORD,
    >,
    pub Put: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: LPOLESTREAM,
            arg2: *const ::std::os::raw::c_void,
            arg3: DWORD,
        ) -> DWORD,
    >,
}
#[test]
fn bindgen_test_layout__OLESTREAMVTBL() {
    assert_eq!(
        ::std::mem::size_of::<_OLESTREAMVTBL>(),
        16usize,
        concat!("Size of: ", stringify!(_OLESTREAMVTBL))
    );
    assert_eq!(
        ::std::mem::align_of::<_OLESTREAMVTBL>(),
        8usize,
        concat!("Alignment of ", stringify!(_OLESTREAMVTBL))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OLESTREAMVTBL>())).Get as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OLESTREAMVTBL),
            "::",
            stringify!(Get)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OLESTREAMVTBL>())).Put as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_OLESTREAMVTBL),
            "::",
            stringify!(Put)
        )
    );
}
pub type OLESTREAMVTBL = _OLESTREAMVTBL;
pub type LPOLESTREAMVTBL = *mut OLESTREAMVTBL;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _OLESTREAM {
    pub lpstbl: LPOLESTREAMVTBL,
}
#[test]
fn bindgen_test_layout__OLESTREAM() {
    assert_eq!(
        ::std::mem::size_of::<_OLESTREAM>(),
        8usize,
        concat!("Size of: ", stringify!(_OLESTREAM))
    );
    assert_eq!(
        ::std::mem::align_of::<_OLESTREAM>(),
        8usize,
        concat!("Alignment of ", stringify!(_OLESTREAM))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OLESTREAM>())).lpstbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OLESTREAM),
            "::",
            stringify!(lpstbl)
        )
    );
}
pub type OLESTREAM = _OLESTREAM;
extern "C" {
    pub fn OleConvertOLESTREAMToIStorage(
        lpolestream: LPOLESTREAM,
        pstg: LPSTORAGE,
        ptd: *const DVTARGETDEVICE,
    ) -> HRESULT;
}
extern "C" {
    pub fn OleConvertIStorageToOLESTREAM(pstg: LPSTORAGE, lpolestream: LPOLESTREAM) -> HRESULT;
}
extern "C" {
    pub fn OleDoAutoConvert(pStg: LPSTORAGE, pClsidNew: LPCLSID) -> HRESULT;
}
extern "C" {
    pub fn OleGetAutoConvert(clsidOld: *const IID, pClsidNew: LPCLSID) -> HRESULT;
}
extern "C" {
    pub fn OleSetAutoConvert(clsidOld: *const IID, clsidNew: *const IID) -> HRESULT;
}
extern "C" {
    pub fn SetConvertStg(pStg: LPSTORAGE, fConvert: BOOL) -> HRESULT;
}
extern "C" {
    pub fn OleConvertIStorageToOLESTREAMEx(
        pstg: LPSTORAGE,
        cfFormat: CLIPFORMAT,
        lWidth: LONG,
        lHeight: LONG,
        dwSize: DWORD,
        pmedium: LPSTGMEDIUM,
        polestm: LPOLESTREAM,
    ) -> HRESULT;
}
extern "C" {
    pub fn OleConvertOLESTREAMToIStorageEx(
        polestm: LPOLESTREAM,
        pstg: LPSTORAGE,
        pcfFormat: *mut CLIPFORMAT,
        plwWidth: *mut LONG,
        plHeight: *mut LONG,
        pdwSize: *mut DWORD,
        pmedium: LPSTGMEDIUM,
    ) -> HRESULT;
}
extern "C" {
    pub static IID_IPrintDialogCallback: GUID;
}
extern "C" {
    pub static IID_IPrintDialogServices: GUID;
}
pub type LPOFNHOOKPROC = ::std::option::Option<
    unsafe extern "C" fn(arg1: HWND, arg2: UINT, arg3: WPARAM, arg4: LPARAM) -> UINT_PTR,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagOFN_NT4A {
    pub lStructSize: DWORD,
    pub hwndOwner: HWND,
    pub hInstance: HINSTANCE,
    pub lpstrFilter: LPCSTR,
    pub lpstrCustomFilter: LPSTR,
    pub nMaxCustFilter: DWORD,
    pub nFilterIndex: DWORD,
    pub lpstrFile: LPSTR,
    pub nMaxFile: DWORD,
    pub lpstrFileTitle: LPSTR,
    pub nMaxFileTitle: DWORD,
    pub lpstrInitialDir: LPCSTR,
    pub lpstrTitle: LPCSTR,
    pub Flags: DWORD,
    pub nFileOffset: WORD,
    pub nFileExtension: WORD,
    pub lpstrDefExt: LPCSTR,
    pub lCustData: LPARAM,
    pub lpfnHook: LPOFNHOOKPROC,
    pub lpTemplateName: LPCSTR,
}
#[test]
fn bindgen_test_layout_tagOFN_NT4A() {
    assert_eq!(
        ::std::mem::size_of::<tagOFN_NT4A>(),
        136usize,
        concat!("Size of: ", stringify!(tagOFN_NT4A))
    );
    assert_eq!(
        ::std::mem::align_of::<tagOFN_NT4A>(),
        8usize,
        concat!("Alignment of ", stringify!(tagOFN_NT4A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4A>())).lStructSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4A),
            "::",
            stringify!(lStructSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4A>())).hwndOwner as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4A),
            "::",
            stringify!(hwndOwner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4A>())).hInstance as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4A),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4A>())).lpstrFilter as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4A),
            "::",
            stringify!(lpstrFilter)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4A>())).lpstrCustomFilter as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4A),
            "::",
            stringify!(lpstrCustomFilter)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4A>())).nMaxCustFilter as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4A),
            "::",
            stringify!(nMaxCustFilter)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4A>())).nFilterIndex as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4A),
            "::",
            stringify!(nFilterIndex)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4A>())).lpstrFile as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4A),
            "::",
            stringify!(lpstrFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4A>())).nMaxFile as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4A),
            "::",
            stringify!(nMaxFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4A>())).lpstrFileTitle as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4A),
            "::",
            stringify!(lpstrFileTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4A>())).nMaxFileTitle as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4A),
            "::",
            stringify!(nMaxFileTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4A>())).lpstrInitialDir as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4A),
            "::",
            stringify!(lpstrInitialDir)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4A>())).lpstrTitle as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4A),
            "::",
            stringify!(lpstrTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4A>())).Flags as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4A),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4A>())).nFileOffset as *const _ as usize },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4A),
            "::",
            stringify!(nFileOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4A>())).nFileExtension as *const _ as usize },
        102usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4A),
            "::",
            stringify!(nFileExtension)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4A>())).lpstrDefExt as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4A),
            "::",
            stringify!(lpstrDefExt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4A>())).lCustData as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4A),
            "::",
            stringify!(lCustData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4A>())).lpfnHook as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4A),
            "::",
            stringify!(lpfnHook)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4A>())).lpTemplateName as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4A),
            "::",
            stringify!(lpTemplateName)
        )
    );
}
pub type OPENFILENAME_NT4A = tagOFN_NT4A;
pub type LPOPENFILENAME_NT4A = *mut tagOFN_NT4A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagOFN_NT4W {
    pub lStructSize: DWORD,
    pub hwndOwner: HWND,
    pub hInstance: HINSTANCE,
    pub lpstrFilter: LPCWSTR,
    pub lpstrCustomFilter: LPWSTR,
    pub nMaxCustFilter: DWORD,
    pub nFilterIndex: DWORD,
    pub lpstrFile: LPWSTR,
    pub nMaxFile: DWORD,
    pub lpstrFileTitle: LPWSTR,
    pub nMaxFileTitle: DWORD,
    pub lpstrInitialDir: LPCWSTR,
    pub lpstrTitle: LPCWSTR,
    pub Flags: DWORD,
    pub nFileOffset: WORD,
    pub nFileExtension: WORD,
    pub lpstrDefExt: LPCWSTR,
    pub lCustData: LPARAM,
    pub lpfnHook: LPOFNHOOKPROC,
    pub lpTemplateName: LPCWSTR,
}
#[test]
fn bindgen_test_layout_tagOFN_NT4W() {
    assert_eq!(
        ::std::mem::size_of::<tagOFN_NT4W>(),
        136usize,
        concat!("Size of: ", stringify!(tagOFN_NT4W))
    );
    assert_eq!(
        ::std::mem::align_of::<tagOFN_NT4W>(),
        8usize,
        concat!("Alignment of ", stringify!(tagOFN_NT4W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4W>())).lStructSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4W),
            "::",
            stringify!(lStructSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4W>())).hwndOwner as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4W),
            "::",
            stringify!(hwndOwner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4W>())).hInstance as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4W),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4W>())).lpstrFilter as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4W),
            "::",
            stringify!(lpstrFilter)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4W>())).lpstrCustomFilter as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4W),
            "::",
            stringify!(lpstrCustomFilter)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4W>())).nMaxCustFilter as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4W),
            "::",
            stringify!(nMaxCustFilter)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4W>())).nFilterIndex as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4W),
            "::",
            stringify!(nFilterIndex)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4W>())).lpstrFile as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4W),
            "::",
            stringify!(lpstrFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4W>())).nMaxFile as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4W),
            "::",
            stringify!(nMaxFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4W>())).lpstrFileTitle as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4W),
            "::",
            stringify!(lpstrFileTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4W>())).nMaxFileTitle as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4W),
            "::",
            stringify!(nMaxFileTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4W>())).lpstrInitialDir as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4W),
            "::",
            stringify!(lpstrInitialDir)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4W>())).lpstrTitle as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4W),
            "::",
            stringify!(lpstrTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4W>())).Flags as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4W),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4W>())).nFileOffset as *const _ as usize },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4W),
            "::",
            stringify!(nFileOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4W>())).nFileExtension as *const _ as usize },
        102usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4W),
            "::",
            stringify!(nFileExtension)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4W>())).lpstrDefExt as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4W),
            "::",
            stringify!(lpstrDefExt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4W>())).lCustData as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4W),
            "::",
            stringify!(lCustData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4W>())).lpfnHook as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4W),
            "::",
            stringify!(lpfnHook)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFN_NT4W>())).lpTemplateName as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFN_NT4W),
            "::",
            stringify!(lpTemplateName)
        )
    );
}
pub type OPENFILENAME_NT4W = tagOFN_NT4W;
pub type LPOPENFILENAME_NT4W = *mut tagOFN_NT4W;
pub type OPENFILENAME_NT4 = OPENFILENAME_NT4A;
pub type LPOPENFILENAME_NT4 = LPOPENFILENAME_NT4A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagOFNA {
    pub lStructSize: DWORD,
    pub hwndOwner: HWND,
    pub hInstance: HINSTANCE,
    pub lpstrFilter: LPCSTR,
    pub lpstrCustomFilter: LPSTR,
    pub nMaxCustFilter: DWORD,
    pub nFilterIndex: DWORD,
    pub lpstrFile: LPSTR,
    pub nMaxFile: DWORD,
    pub lpstrFileTitle: LPSTR,
    pub nMaxFileTitle: DWORD,
    pub lpstrInitialDir: LPCSTR,
    pub lpstrTitle: LPCSTR,
    pub Flags: DWORD,
    pub nFileOffset: WORD,
    pub nFileExtension: WORD,
    pub lpstrDefExt: LPCSTR,
    pub lCustData: LPARAM,
    pub lpfnHook: LPOFNHOOKPROC,
    pub lpTemplateName: LPCSTR,
    pub pvReserved: *mut ::std::os::raw::c_void,
    pub dwReserved: DWORD,
    pub FlagsEx: DWORD,
}
#[test]
fn bindgen_test_layout_tagOFNA() {
    assert_eq!(
        ::std::mem::size_of::<tagOFNA>(),
        152usize,
        concat!("Size of: ", stringify!(tagOFNA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagOFNA>(),
        8usize,
        concat!("Alignment of ", stringify!(tagOFNA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNA>())).lStructSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNA),
            "::",
            stringify!(lStructSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNA>())).hwndOwner as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNA),
            "::",
            stringify!(hwndOwner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNA>())).hInstance as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNA),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNA>())).lpstrFilter as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNA),
            "::",
            stringify!(lpstrFilter)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNA>())).lpstrCustomFilter as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNA),
            "::",
            stringify!(lpstrCustomFilter)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNA>())).nMaxCustFilter as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNA),
            "::",
            stringify!(nMaxCustFilter)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNA>())).nFilterIndex as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNA),
            "::",
            stringify!(nFilterIndex)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNA>())).lpstrFile as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNA),
            "::",
            stringify!(lpstrFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNA>())).nMaxFile as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNA),
            "::",
            stringify!(nMaxFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNA>())).lpstrFileTitle as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNA),
            "::",
            stringify!(lpstrFileTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNA>())).nMaxFileTitle as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNA),
            "::",
            stringify!(nMaxFileTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNA>())).lpstrInitialDir as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNA),
            "::",
            stringify!(lpstrInitialDir)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNA>())).lpstrTitle as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNA),
            "::",
            stringify!(lpstrTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNA>())).Flags as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNA),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNA>())).nFileOffset as *const _ as usize },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNA),
            "::",
            stringify!(nFileOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNA>())).nFileExtension as *const _ as usize },
        102usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNA),
            "::",
            stringify!(nFileExtension)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNA>())).lpstrDefExt as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNA),
            "::",
            stringify!(lpstrDefExt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNA>())).lCustData as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNA),
            "::",
            stringify!(lCustData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNA>())).lpfnHook as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNA),
            "::",
            stringify!(lpfnHook)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNA>())).lpTemplateName as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNA),
            "::",
            stringify!(lpTemplateName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNA>())).pvReserved as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNA),
            "::",
            stringify!(pvReserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNA>())).dwReserved as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNA),
            "::",
            stringify!(dwReserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNA>())).FlagsEx as *const _ as usize },
        148usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNA),
            "::",
            stringify!(FlagsEx)
        )
    );
}
pub type OPENFILENAMEA = tagOFNA;
pub type LPOPENFILENAMEA = *mut tagOFNA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagOFNW {
    pub lStructSize: DWORD,
    pub hwndOwner: HWND,
    pub hInstance: HINSTANCE,
    pub lpstrFilter: LPCWSTR,
    pub lpstrCustomFilter: LPWSTR,
    pub nMaxCustFilter: DWORD,
    pub nFilterIndex: DWORD,
    pub lpstrFile: LPWSTR,
    pub nMaxFile: DWORD,
    pub lpstrFileTitle: LPWSTR,
    pub nMaxFileTitle: DWORD,
    pub lpstrInitialDir: LPCWSTR,
    pub lpstrTitle: LPCWSTR,
    pub Flags: DWORD,
    pub nFileOffset: WORD,
    pub nFileExtension: WORD,
    pub lpstrDefExt: LPCWSTR,
    pub lCustData: LPARAM,
    pub lpfnHook: LPOFNHOOKPROC,
    pub lpTemplateName: LPCWSTR,
    pub pvReserved: *mut ::std::os::raw::c_void,
    pub dwReserved: DWORD,
    pub FlagsEx: DWORD,
}
#[test]
fn bindgen_test_layout_tagOFNW() {
    assert_eq!(
        ::std::mem::size_of::<tagOFNW>(),
        152usize,
        concat!("Size of: ", stringify!(tagOFNW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagOFNW>(),
        8usize,
        concat!("Alignment of ", stringify!(tagOFNW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNW>())).lStructSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNW),
            "::",
            stringify!(lStructSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNW>())).hwndOwner as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNW),
            "::",
            stringify!(hwndOwner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNW>())).hInstance as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNW),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNW>())).lpstrFilter as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNW),
            "::",
            stringify!(lpstrFilter)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNW>())).lpstrCustomFilter as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNW),
            "::",
            stringify!(lpstrCustomFilter)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNW>())).nMaxCustFilter as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNW),
            "::",
            stringify!(nMaxCustFilter)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNW>())).nFilterIndex as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNW),
            "::",
            stringify!(nFilterIndex)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNW>())).lpstrFile as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNW),
            "::",
            stringify!(lpstrFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNW>())).nMaxFile as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNW),
            "::",
            stringify!(nMaxFile)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNW>())).lpstrFileTitle as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNW),
            "::",
            stringify!(lpstrFileTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNW>())).nMaxFileTitle as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNW),
            "::",
            stringify!(nMaxFileTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNW>())).lpstrInitialDir as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNW),
            "::",
            stringify!(lpstrInitialDir)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNW>())).lpstrTitle as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNW),
            "::",
            stringify!(lpstrTitle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNW>())).Flags as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNW),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNW>())).nFileOffset as *const _ as usize },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNW),
            "::",
            stringify!(nFileOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNW>())).nFileExtension as *const _ as usize },
        102usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNW),
            "::",
            stringify!(nFileExtension)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNW>())).lpstrDefExt as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNW),
            "::",
            stringify!(lpstrDefExt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNW>())).lCustData as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNW),
            "::",
            stringify!(lCustData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNW>())).lpfnHook as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNW),
            "::",
            stringify!(lpfnHook)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNW>())).lpTemplateName as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNW),
            "::",
            stringify!(lpTemplateName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNW>())).pvReserved as *const _ as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNW),
            "::",
            stringify!(pvReserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNW>())).dwReserved as *const _ as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNW),
            "::",
            stringify!(dwReserved)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagOFNW>())).FlagsEx as *const _ as usize },
        148usize,
        concat!(
            "Offset of field: ",
            stringify!(tagOFNW),
            "::",
            stringify!(FlagsEx)
        )
    );
}
pub type OPENFILENAMEW = tagOFNW;
pub type LPOPENFILENAMEW = *mut tagOFNW;
pub type OPENFILENAME = OPENFILENAMEA;
pub type LPOPENFILENAME = LPOPENFILENAMEA;
extern "C" {
    pub fn GetOpenFileNameA(arg1: LPOPENFILENAMEA) -> BOOL;
}
extern "C" {
    pub fn GetOpenFileNameW(arg1: LPOPENFILENAMEW) -> BOOL;
}
extern "C" {
    pub fn GetSaveFileNameA(arg1: LPOPENFILENAMEA) -> BOOL;
}
extern "C" {
    pub fn GetSaveFileNameW(arg1: LPOPENFILENAMEW) -> BOOL;
}
extern "C" {
    pub fn GetFileTitleA(arg1: LPCSTR, Buf: LPSTR, cchSize: WORD) -> ::std::os::raw::c_short;
}
extern "C" {
    pub fn GetFileTitleW(arg1: LPCWSTR, Buf: LPWSTR, cchSize: WORD) -> ::std::os::raw::c_short;
}
pub type LPCCHOOKPROC = ::std::option::Option<
    unsafe extern "C" fn(arg1: HWND, arg2: UINT, arg3: WPARAM, arg4: LPARAM) -> UINT_PTR,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _OFNOTIFYA {
    pub hdr: NMHDR,
    pub lpOFN: LPOPENFILENAMEA,
    pub pszFile: LPSTR,
}
#[test]
fn bindgen_test_layout__OFNOTIFYA() {
    assert_eq!(
        ::std::mem::size_of::<_OFNOTIFYA>(),
        40usize,
        concat!("Size of: ", stringify!(_OFNOTIFYA))
    );
    assert_eq!(
        ::std::mem::align_of::<_OFNOTIFYA>(),
        8usize,
        concat!("Alignment of ", stringify!(_OFNOTIFYA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OFNOTIFYA>())).hdr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OFNOTIFYA),
            "::",
            stringify!(hdr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OFNOTIFYA>())).lpOFN as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_OFNOTIFYA),
            "::",
            stringify!(lpOFN)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OFNOTIFYA>())).pszFile as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_OFNOTIFYA),
            "::",
            stringify!(pszFile)
        )
    );
}
pub type OFNOTIFYA = _OFNOTIFYA;
pub type LPOFNOTIFYA = *mut _OFNOTIFYA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _OFNOTIFYW {
    pub hdr: NMHDR,
    pub lpOFN: LPOPENFILENAMEW,
    pub pszFile: LPWSTR,
}
#[test]
fn bindgen_test_layout__OFNOTIFYW() {
    assert_eq!(
        ::std::mem::size_of::<_OFNOTIFYW>(),
        40usize,
        concat!("Size of: ", stringify!(_OFNOTIFYW))
    );
    assert_eq!(
        ::std::mem::align_of::<_OFNOTIFYW>(),
        8usize,
        concat!("Alignment of ", stringify!(_OFNOTIFYW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OFNOTIFYW>())).hdr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OFNOTIFYW),
            "::",
            stringify!(hdr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OFNOTIFYW>())).lpOFN as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_OFNOTIFYW),
            "::",
            stringify!(lpOFN)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OFNOTIFYW>())).pszFile as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_OFNOTIFYW),
            "::",
            stringify!(pszFile)
        )
    );
}
pub type OFNOTIFYW = _OFNOTIFYW;
pub type LPOFNOTIFYW = *mut _OFNOTIFYW;
pub type OFNOTIFY = OFNOTIFYA;
pub type LPOFNOTIFY = LPOFNOTIFYA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _OFNOTIFYEXA {
    pub hdr: NMHDR,
    pub lpOFN: LPOPENFILENAMEA,
    pub psf: LPVOID,
    pub pidl: LPVOID,
}
#[test]
fn bindgen_test_layout__OFNOTIFYEXA() {
    assert_eq!(
        ::std::mem::size_of::<_OFNOTIFYEXA>(),
        48usize,
        concat!("Size of: ", stringify!(_OFNOTIFYEXA))
    );
    assert_eq!(
        ::std::mem::align_of::<_OFNOTIFYEXA>(),
        8usize,
        concat!("Alignment of ", stringify!(_OFNOTIFYEXA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OFNOTIFYEXA>())).hdr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OFNOTIFYEXA),
            "::",
            stringify!(hdr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OFNOTIFYEXA>())).lpOFN as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_OFNOTIFYEXA),
            "::",
            stringify!(lpOFN)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OFNOTIFYEXA>())).psf as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_OFNOTIFYEXA),
            "::",
            stringify!(psf)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OFNOTIFYEXA>())).pidl as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_OFNOTIFYEXA),
            "::",
            stringify!(pidl)
        )
    );
}
pub type OFNOTIFYEXA = _OFNOTIFYEXA;
pub type LPOFNOTIFYEXA = *mut _OFNOTIFYEXA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _OFNOTIFYEXW {
    pub hdr: NMHDR,
    pub lpOFN: LPOPENFILENAMEW,
    pub psf: LPVOID,
    pub pidl: LPVOID,
}
#[test]
fn bindgen_test_layout__OFNOTIFYEXW() {
    assert_eq!(
        ::std::mem::size_of::<_OFNOTIFYEXW>(),
        48usize,
        concat!("Size of: ", stringify!(_OFNOTIFYEXW))
    );
    assert_eq!(
        ::std::mem::align_of::<_OFNOTIFYEXW>(),
        8usize,
        concat!("Alignment of ", stringify!(_OFNOTIFYEXW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OFNOTIFYEXW>())).hdr as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_OFNOTIFYEXW),
            "::",
            stringify!(hdr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OFNOTIFYEXW>())).lpOFN as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_OFNOTIFYEXW),
            "::",
            stringify!(lpOFN)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OFNOTIFYEXW>())).psf as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_OFNOTIFYEXW),
            "::",
            stringify!(psf)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_OFNOTIFYEXW>())).pidl as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_OFNOTIFYEXW),
            "::",
            stringify!(pidl)
        )
    );
}
pub type OFNOTIFYEXW = _OFNOTIFYEXW;
pub type LPOFNOTIFYEXW = *mut _OFNOTIFYEXW;
pub type OFNOTIFYEX = OFNOTIFYEXA;
pub type LPOFNOTIFYEX = LPOFNOTIFYEXA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCHOOSECOLORA {
    pub lStructSize: DWORD,
    pub hwndOwner: HWND,
    pub hInstance: HWND,
    pub rgbResult: COLORREF,
    pub lpCustColors: *mut COLORREF,
    pub Flags: DWORD,
    pub lCustData: LPARAM,
    pub lpfnHook: LPCCHOOKPROC,
    pub lpTemplateName: LPCSTR,
}
#[test]
fn bindgen_test_layout_tagCHOOSECOLORA() {
    assert_eq!(
        ::std::mem::size_of::<tagCHOOSECOLORA>(),
        72usize,
        concat!("Size of: ", stringify!(tagCHOOSECOLORA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCHOOSECOLORA>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCHOOSECOLORA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSECOLORA>())).lStructSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSECOLORA),
            "::",
            stringify!(lStructSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSECOLORA>())).hwndOwner as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSECOLORA),
            "::",
            stringify!(hwndOwner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSECOLORA>())).hInstance as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSECOLORA),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSECOLORA>())).rgbResult as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSECOLORA),
            "::",
            stringify!(rgbResult)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSECOLORA>())).lpCustColors as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSECOLORA),
            "::",
            stringify!(lpCustColors)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSECOLORA>())).Flags as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSECOLORA),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSECOLORA>())).lCustData as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSECOLORA),
            "::",
            stringify!(lCustData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSECOLORA>())).lpfnHook as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSECOLORA),
            "::",
            stringify!(lpfnHook)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSECOLORA>())).lpTemplateName as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSECOLORA),
            "::",
            stringify!(lpTemplateName)
        )
    );
}
pub type CHOOSECOLORA = tagCHOOSECOLORA;
pub type LPCHOOSECOLORA = *mut tagCHOOSECOLORA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCHOOSECOLORW {
    pub lStructSize: DWORD,
    pub hwndOwner: HWND,
    pub hInstance: HWND,
    pub rgbResult: COLORREF,
    pub lpCustColors: *mut COLORREF,
    pub Flags: DWORD,
    pub lCustData: LPARAM,
    pub lpfnHook: LPCCHOOKPROC,
    pub lpTemplateName: LPCWSTR,
}
#[test]
fn bindgen_test_layout_tagCHOOSECOLORW() {
    assert_eq!(
        ::std::mem::size_of::<tagCHOOSECOLORW>(),
        72usize,
        concat!("Size of: ", stringify!(tagCHOOSECOLORW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCHOOSECOLORW>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCHOOSECOLORW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSECOLORW>())).lStructSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSECOLORW),
            "::",
            stringify!(lStructSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSECOLORW>())).hwndOwner as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSECOLORW),
            "::",
            stringify!(hwndOwner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSECOLORW>())).hInstance as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSECOLORW),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSECOLORW>())).rgbResult as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSECOLORW),
            "::",
            stringify!(rgbResult)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSECOLORW>())).lpCustColors as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSECOLORW),
            "::",
            stringify!(lpCustColors)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSECOLORW>())).Flags as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSECOLORW),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSECOLORW>())).lCustData as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSECOLORW),
            "::",
            stringify!(lCustData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSECOLORW>())).lpfnHook as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSECOLORW),
            "::",
            stringify!(lpfnHook)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSECOLORW>())).lpTemplateName as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSECOLORW),
            "::",
            stringify!(lpTemplateName)
        )
    );
}
pub type CHOOSECOLORW = tagCHOOSECOLORW;
pub type LPCHOOSECOLORW = *mut tagCHOOSECOLORW;
pub type CHOOSECOLOR = CHOOSECOLORA;
pub type LPCHOOSECOLOR = LPCHOOSECOLORA;
extern "C" {
    pub fn ChooseColorA(arg1: LPCHOOSECOLORA) -> BOOL;
}
extern "C" {
    pub fn ChooseColorW(arg1: LPCHOOSECOLORW) -> BOOL;
}
pub type LPFRHOOKPROC = ::std::option::Option<
    unsafe extern "C" fn(arg1: HWND, arg2: UINT, arg3: WPARAM, arg4: LPARAM) -> UINT_PTR,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagFINDREPLACEA {
    pub lStructSize: DWORD,
    pub hwndOwner: HWND,
    pub hInstance: HINSTANCE,
    pub Flags: DWORD,
    pub lpstrFindWhat: LPSTR,
    pub lpstrReplaceWith: LPSTR,
    pub wFindWhatLen: WORD,
    pub wReplaceWithLen: WORD,
    pub lCustData: LPARAM,
    pub lpfnHook: LPFRHOOKPROC,
    pub lpTemplateName: LPCSTR,
}
#[test]
fn bindgen_test_layout_tagFINDREPLACEA() {
    assert_eq!(
        ::std::mem::size_of::<tagFINDREPLACEA>(),
        80usize,
        concat!("Size of: ", stringify!(tagFINDREPLACEA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagFINDREPLACEA>(),
        8usize,
        concat!("Alignment of ", stringify!(tagFINDREPLACEA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFINDREPLACEA>())).lStructSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFINDREPLACEA),
            "::",
            stringify!(lStructSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFINDREPLACEA>())).hwndOwner as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFINDREPLACEA),
            "::",
            stringify!(hwndOwner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFINDREPLACEA>())).hInstance as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFINDREPLACEA),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFINDREPLACEA>())).Flags as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFINDREPLACEA),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFINDREPLACEA>())).lpstrFindWhat as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFINDREPLACEA),
            "::",
            stringify!(lpstrFindWhat)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagFINDREPLACEA>())).lpstrReplaceWith as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFINDREPLACEA),
            "::",
            stringify!(lpstrReplaceWith)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFINDREPLACEA>())).wFindWhatLen as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFINDREPLACEA),
            "::",
            stringify!(wFindWhatLen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFINDREPLACEA>())).wReplaceWithLen as *const _ as usize },
        50usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFINDREPLACEA),
            "::",
            stringify!(wReplaceWithLen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFINDREPLACEA>())).lCustData as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFINDREPLACEA),
            "::",
            stringify!(lCustData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFINDREPLACEA>())).lpfnHook as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFINDREPLACEA),
            "::",
            stringify!(lpfnHook)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFINDREPLACEA>())).lpTemplateName as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFINDREPLACEA),
            "::",
            stringify!(lpTemplateName)
        )
    );
}
pub type FINDREPLACEA = tagFINDREPLACEA;
pub type LPFINDREPLACEA = *mut tagFINDREPLACEA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagFINDREPLACEW {
    pub lStructSize: DWORD,
    pub hwndOwner: HWND,
    pub hInstance: HINSTANCE,
    pub Flags: DWORD,
    pub lpstrFindWhat: LPWSTR,
    pub lpstrReplaceWith: LPWSTR,
    pub wFindWhatLen: WORD,
    pub wReplaceWithLen: WORD,
    pub lCustData: LPARAM,
    pub lpfnHook: LPFRHOOKPROC,
    pub lpTemplateName: LPCWSTR,
}
#[test]
fn bindgen_test_layout_tagFINDREPLACEW() {
    assert_eq!(
        ::std::mem::size_of::<tagFINDREPLACEW>(),
        80usize,
        concat!("Size of: ", stringify!(tagFINDREPLACEW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagFINDREPLACEW>(),
        8usize,
        concat!("Alignment of ", stringify!(tagFINDREPLACEW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFINDREPLACEW>())).lStructSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFINDREPLACEW),
            "::",
            stringify!(lStructSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFINDREPLACEW>())).hwndOwner as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFINDREPLACEW),
            "::",
            stringify!(hwndOwner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFINDREPLACEW>())).hInstance as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFINDREPLACEW),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFINDREPLACEW>())).Flags as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFINDREPLACEW),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFINDREPLACEW>())).lpstrFindWhat as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFINDREPLACEW),
            "::",
            stringify!(lpstrFindWhat)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagFINDREPLACEW>())).lpstrReplaceWith as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFINDREPLACEW),
            "::",
            stringify!(lpstrReplaceWith)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFINDREPLACEW>())).wFindWhatLen as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFINDREPLACEW),
            "::",
            stringify!(wFindWhatLen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFINDREPLACEW>())).wReplaceWithLen as *const _ as usize },
        50usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFINDREPLACEW),
            "::",
            stringify!(wReplaceWithLen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFINDREPLACEW>())).lCustData as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFINDREPLACEW),
            "::",
            stringify!(lCustData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFINDREPLACEW>())).lpfnHook as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFINDREPLACEW),
            "::",
            stringify!(lpfnHook)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagFINDREPLACEW>())).lpTemplateName as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagFINDREPLACEW),
            "::",
            stringify!(lpTemplateName)
        )
    );
}
pub type FINDREPLACEW = tagFINDREPLACEW;
pub type LPFINDREPLACEW = *mut tagFINDREPLACEW;
pub type FINDREPLACE = FINDREPLACEA;
pub type LPFINDREPLACE = LPFINDREPLACEA;
extern "C" {
    pub fn FindTextA(arg1: LPFINDREPLACEA) -> HWND;
}
extern "C" {
    pub fn FindTextW(arg1: LPFINDREPLACEW) -> HWND;
}
extern "C" {
    pub fn ReplaceTextA(arg1: LPFINDREPLACEA) -> HWND;
}
extern "C" {
    pub fn ReplaceTextW(arg1: LPFINDREPLACEW) -> HWND;
}
pub type LPCFHOOKPROC = ::std::option::Option<
    unsafe extern "C" fn(arg1: HWND, arg2: UINT, arg3: WPARAM, arg4: LPARAM) -> UINT_PTR,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCHOOSEFONTA {
    pub lStructSize: DWORD,
    pub hwndOwner: HWND,
    pub hDC: HDC,
    pub lpLogFont: LPLOGFONTA,
    pub iPointSize: INT,
    pub Flags: DWORD,
    pub rgbColors: COLORREF,
    pub lCustData: LPARAM,
    pub lpfnHook: LPCFHOOKPROC,
    pub lpTemplateName: LPCSTR,
    pub hInstance: HINSTANCE,
    pub lpszStyle: LPSTR,
    pub nFontType: WORD,
    pub ___MISSING_ALIGNMENT__: WORD,
    pub nSizeMin: INT,
    pub nSizeMax: INT,
}
#[test]
fn bindgen_test_layout_tagCHOOSEFONTA() {
    assert_eq!(
        ::std::mem::size_of::<tagCHOOSEFONTA>(),
        104usize,
        concat!("Size of: ", stringify!(tagCHOOSEFONTA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCHOOSEFONTA>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCHOOSEFONTA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSEFONTA>())).lStructSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSEFONTA),
            "::",
            stringify!(lStructSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSEFONTA>())).hwndOwner as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSEFONTA),
            "::",
            stringify!(hwndOwner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSEFONTA>())).hDC as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSEFONTA),
            "::",
            stringify!(hDC)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSEFONTA>())).lpLogFont as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSEFONTA),
            "::",
            stringify!(lpLogFont)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSEFONTA>())).iPointSize as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSEFONTA),
            "::",
            stringify!(iPointSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSEFONTA>())).Flags as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSEFONTA),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSEFONTA>())).rgbColors as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSEFONTA),
            "::",
            stringify!(rgbColors)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSEFONTA>())).lCustData as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSEFONTA),
            "::",
            stringify!(lCustData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSEFONTA>())).lpfnHook as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSEFONTA),
            "::",
            stringify!(lpfnHook)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSEFONTA>())).lpTemplateName as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSEFONTA),
            "::",
            stringify!(lpTemplateName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSEFONTA>())).hInstance as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSEFONTA),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSEFONTA>())).lpszStyle as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSEFONTA),
            "::",
            stringify!(lpszStyle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSEFONTA>())).nFontType as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSEFONTA),
            "::",
            stringify!(nFontType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagCHOOSEFONTA>())).___MISSING_ALIGNMENT__ as *const _ as usize
        },
        90usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSEFONTA),
            "::",
            stringify!(___MISSING_ALIGNMENT__)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSEFONTA>())).nSizeMin as *const _ as usize },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSEFONTA),
            "::",
            stringify!(nSizeMin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSEFONTA>())).nSizeMax as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSEFONTA),
            "::",
            stringify!(nSizeMax)
        )
    );
}
pub type CHOOSEFONTA = tagCHOOSEFONTA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCHOOSEFONTW {
    pub lStructSize: DWORD,
    pub hwndOwner: HWND,
    pub hDC: HDC,
    pub lpLogFont: LPLOGFONTW,
    pub iPointSize: INT,
    pub Flags: DWORD,
    pub rgbColors: COLORREF,
    pub lCustData: LPARAM,
    pub lpfnHook: LPCFHOOKPROC,
    pub lpTemplateName: LPCWSTR,
    pub hInstance: HINSTANCE,
    pub lpszStyle: LPWSTR,
    pub nFontType: WORD,
    pub ___MISSING_ALIGNMENT__: WORD,
    pub nSizeMin: INT,
    pub nSizeMax: INT,
}
#[test]
fn bindgen_test_layout_tagCHOOSEFONTW() {
    assert_eq!(
        ::std::mem::size_of::<tagCHOOSEFONTW>(),
        104usize,
        concat!("Size of: ", stringify!(tagCHOOSEFONTW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCHOOSEFONTW>(),
        8usize,
        concat!("Alignment of ", stringify!(tagCHOOSEFONTW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSEFONTW>())).lStructSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSEFONTW),
            "::",
            stringify!(lStructSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSEFONTW>())).hwndOwner as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSEFONTW),
            "::",
            stringify!(hwndOwner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSEFONTW>())).hDC as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSEFONTW),
            "::",
            stringify!(hDC)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSEFONTW>())).lpLogFont as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSEFONTW),
            "::",
            stringify!(lpLogFont)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSEFONTW>())).iPointSize as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSEFONTW),
            "::",
            stringify!(iPointSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSEFONTW>())).Flags as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSEFONTW),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSEFONTW>())).rgbColors as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSEFONTW),
            "::",
            stringify!(rgbColors)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSEFONTW>())).lCustData as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSEFONTW),
            "::",
            stringify!(lCustData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSEFONTW>())).lpfnHook as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSEFONTW),
            "::",
            stringify!(lpfnHook)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSEFONTW>())).lpTemplateName as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSEFONTW),
            "::",
            stringify!(lpTemplateName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSEFONTW>())).hInstance as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSEFONTW),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSEFONTW>())).lpszStyle as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSEFONTW),
            "::",
            stringify!(lpszStyle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSEFONTW>())).nFontType as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSEFONTW),
            "::",
            stringify!(nFontType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagCHOOSEFONTW>())).___MISSING_ALIGNMENT__ as *const _ as usize
        },
        90usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSEFONTW),
            "::",
            stringify!(___MISSING_ALIGNMENT__)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSEFONTW>())).nSizeMin as *const _ as usize },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSEFONTW),
            "::",
            stringify!(nSizeMin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCHOOSEFONTW>())).nSizeMax as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCHOOSEFONTW),
            "::",
            stringify!(nSizeMax)
        )
    );
}
pub type CHOOSEFONTW = tagCHOOSEFONTW;
pub type CHOOSEFONT = CHOOSEFONTA;
pub type LPCHOOSEFONTA = *mut CHOOSEFONTA;
pub type LPCHOOSEFONTW = *mut CHOOSEFONTW;
pub type LPCHOOSEFONT = LPCHOOSEFONTA;
pub type PCCHOOSEFONTA = *const CHOOSEFONTA;
pub type PCCHOOSEFONTW = *const CHOOSEFONTW;
pub type PCCHOOSEFONT = PCCHOOSEFONTA;
extern "C" {
    pub fn ChooseFontA(arg1: LPCHOOSEFONTA) -> BOOL;
}
extern "C" {
    pub fn ChooseFontW(arg1: LPCHOOSEFONTW) -> BOOL;
}
pub type LPPRINTHOOKPROC = ::std::option::Option<
    unsafe extern "C" fn(arg1: HWND, arg2: UINT, arg3: WPARAM, arg4: LPARAM) -> UINT_PTR,
>;
pub type LPSETUPHOOKPROC = ::std::option::Option<
    unsafe extern "C" fn(arg1: HWND, arg2: UINT, arg3: WPARAM, arg4: LPARAM) -> UINT_PTR,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagPDA {
    pub lStructSize: DWORD,
    pub hwndOwner: HWND,
    pub hDevMode: HGLOBAL,
    pub hDevNames: HGLOBAL,
    pub hDC: HDC,
    pub Flags: DWORD,
    pub nFromPage: WORD,
    pub nToPage: WORD,
    pub nMinPage: WORD,
    pub nMaxPage: WORD,
    pub nCopies: WORD,
    pub hInstance: HINSTANCE,
    pub lCustData: LPARAM,
    pub lpfnPrintHook: LPPRINTHOOKPROC,
    pub lpfnSetupHook: LPSETUPHOOKPROC,
    pub lpPrintTemplateName: LPCSTR,
    pub lpSetupTemplateName: LPCSTR,
    pub hPrintTemplate: HGLOBAL,
    pub hSetupTemplate: HGLOBAL,
}
#[test]
fn bindgen_test_layout_tagPDA() {
    assert_eq!(
        ::std::mem::size_of::<tagPDA>(),
        120usize,
        concat!("Size of: ", stringify!(tagPDA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagPDA>(),
        8usize,
        concat!("Alignment of ", stringify!(tagPDA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDA>())).lStructSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDA),
            "::",
            stringify!(lStructSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDA>())).hwndOwner as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDA),
            "::",
            stringify!(hwndOwner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDA>())).hDevMode as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDA),
            "::",
            stringify!(hDevMode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDA>())).hDevNames as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDA),
            "::",
            stringify!(hDevNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDA>())).hDC as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDA),
            "::",
            stringify!(hDC)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDA>())).Flags as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDA),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDA>())).nFromPage as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDA),
            "::",
            stringify!(nFromPage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDA>())).nToPage as *const _ as usize },
        46usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDA),
            "::",
            stringify!(nToPage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDA>())).nMinPage as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDA),
            "::",
            stringify!(nMinPage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDA>())).nMaxPage as *const _ as usize },
        50usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDA),
            "::",
            stringify!(nMaxPage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDA>())).nCopies as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDA),
            "::",
            stringify!(nCopies)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDA>())).hInstance as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDA),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDA>())).lCustData as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDA),
            "::",
            stringify!(lCustData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDA>())).lpfnPrintHook as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDA),
            "::",
            stringify!(lpfnPrintHook)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDA>())).lpfnSetupHook as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDA),
            "::",
            stringify!(lpfnSetupHook)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDA>())).lpPrintTemplateName as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDA),
            "::",
            stringify!(lpPrintTemplateName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDA>())).lpSetupTemplateName as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDA),
            "::",
            stringify!(lpSetupTemplateName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDA>())).hPrintTemplate as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDA),
            "::",
            stringify!(hPrintTemplate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDA>())).hSetupTemplate as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDA),
            "::",
            stringify!(hSetupTemplate)
        )
    );
}
pub type PRINTDLGA = tagPDA;
pub type LPPRINTDLGA = *mut tagPDA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagPDW {
    pub lStructSize: DWORD,
    pub hwndOwner: HWND,
    pub hDevMode: HGLOBAL,
    pub hDevNames: HGLOBAL,
    pub hDC: HDC,
    pub Flags: DWORD,
    pub nFromPage: WORD,
    pub nToPage: WORD,
    pub nMinPage: WORD,
    pub nMaxPage: WORD,
    pub nCopies: WORD,
    pub hInstance: HINSTANCE,
    pub lCustData: LPARAM,
    pub lpfnPrintHook: LPPRINTHOOKPROC,
    pub lpfnSetupHook: LPSETUPHOOKPROC,
    pub lpPrintTemplateName: LPCWSTR,
    pub lpSetupTemplateName: LPCWSTR,
    pub hPrintTemplate: HGLOBAL,
    pub hSetupTemplate: HGLOBAL,
}
#[test]
fn bindgen_test_layout_tagPDW() {
    assert_eq!(
        ::std::mem::size_of::<tagPDW>(),
        120usize,
        concat!("Size of: ", stringify!(tagPDW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagPDW>(),
        8usize,
        concat!("Alignment of ", stringify!(tagPDW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDW>())).lStructSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDW),
            "::",
            stringify!(lStructSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDW>())).hwndOwner as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDW),
            "::",
            stringify!(hwndOwner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDW>())).hDevMode as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDW),
            "::",
            stringify!(hDevMode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDW>())).hDevNames as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDW),
            "::",
            stringify!(hDevNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDW>())).hDC as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDW),
            "::",
            stringify!(hDC)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDW>())).Flags as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDW),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDW>())).nFromPage as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDW),
            "::",
            stringify!(nFromPage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDW>())).nToPage as *const _ as usize },
        46usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDW),
            "::",
            stringify!(nToPage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDW>())).nMinPage as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDW),
            "::",
            stringify!(nMinPage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDW>())).nMaxPage as *const _ as usize },
        50usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDW),
            "::",
            stringify!(nMaxPage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDW>())).nCopies as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDW),
            "::",
            stringify!(nCopies)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDW>())).hInstance as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDW),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDW>())).lCustData as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDW),
            "::",
            stringify!(lCustData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDW>())).lpfnPrintHook as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDW),
            "::",
            stringify!(lpfnPrintHook)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDW>())).lpfnSetupHook as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDW),
            "::",
            stringify!(lpfnSetupHook)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDW>())).lpPrintTemplateName as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDW),
            "::",
            stringify!(lpPrintTemplateName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDW>())).lpSetupTemplateName as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDW),
            "::",
            stringify!(lpSetupTemplateName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDW>())).hPrintTemplate as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDW),
            "::",
            stringify!(hPrintTemplate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDW>())).hSetupTemplate as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDW),
            "::",
            stringify!(hSetupTemplate)
        )
    );
}
pub type PRINTDLGW = tagPDW;
pub type LPPRINTDLGW = *mut tagPDW;
pub type PRINTDLG = PRINTDLGA;
pub type LPPRINTDLG = LPPRINTDLGA;
extern "C" {
    pub fn PrintDlgA(pPD: LPPRINTDLGA) -> BOOL;
}
extern "C" {
    pub fn PrintDlgW(pPD: LPPRINTDLGW) -> BOOL;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IPrintDialogCallback {
    pub lpVtbl: *mut IPrintDialogCallbackVtbl,
}
#[test]
fn bindgen_test_layout_IPrintDialogCallback() {
    assert_eq!(
        ::std::mem::size_of::<IPrintDialogCallback>(),
        8usize,
        concat!("Size of: ", stringify!(IPrintDialogCallback))
    );
    assert_eq!(
        ::std::mem::align_of::<IPrintDialogCallback>(),
        8usize,
        concat!("Alignment of ", stringify!(IPrintDialogCallback))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPrintDialogCallback>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IPrintDialogCallback),
            "::",
            stringify!(lpVtbl)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IPrintDialogCallbackVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPrintDialogCallback,
            riid: *const IID,
            ppvObj: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IPrintDialogCallback) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IPrintDialogCallback) -> ULONG>,
    pub InitDone:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IPrintDialogCallback) -> HRESULT>,
    pub SelectionChange:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IPrintDialogCallback) -> HRESULT>,
    pub HandleMessage: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPrintDialogCallback,
            hDlg: HWND,
            uMsg: UINT,
            wParam: WPARAM,
            lParam: LPARAM,
            pResult: *mut LRESULT,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IPrintDialogCallbackVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IPrintDialogCallbackVtbl>(),
        48usize,
        concat!("Size of: ", stringify!(IPrintDialogCallbackVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IPrintDialogCallbackVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IPrintDialogCallbackVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IPrintDialogCallbackVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IPrintDialogCallbackVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPrintDialogCallbackVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IPrintDialogCallbackVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IPrintDialogCallbackVtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IPrintDialogCallbackVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IPrintDialogCallbackVtbl>())).InitDone as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IPrintDialogCallbackVtbl),
            "::",
            stringify!(InitDone)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IPrintDialogCallbackVtbl>())).SelectionChange as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IPrintDialogCallbackVtbl),
            "::",
            stringify!(SelectionChange)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IPrintDialogCallbackVtbl>())).HandleMessage as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IPrintDialogCallbackVtbl),
            "::",
            stringify!(HandleMessage)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IPrintDialogServices {
    pub lpVtbl: *mut IPrintDialogServicesVtbl,
}
#[test]
fn bindgen_test_layout_IPrintDialogServices() {
    assert_eq!(
        ::std::mem::size_of::<IPrintDialogServices>(),
        8usize,
        concat!("Size of: ", stringify!(IPrintDialogServices))
    );
    assert_eq!(
        ::std::mem::align_of::<IPrintDialogServices>(),
        8usize,
        concat!("Alignment of ", stringify!(IPrintDialogServices))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPrintDialogServices>())).lpVtbl as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IPrintDialogServices),
            "::",
            stringify!(lpVtbl)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct IPrintDialogServicesVtbl {
    pub QueryInterface: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPrintDialogServices,
            riid: *const IID,
            ppvObj: *mut *mut ::std::os::raw::c_void,
        ) -> HRESULT,
    >,
    pub AddRef:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IPrintDialogServices) -> ULONG>,
    pub Release:
        ::std::option::Option<unsafe extern "C" fn(This: *mut IPrintDialogServices) -> ULONG>,
    pub GetCurrentDevMode: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPrintDialogServices,
            pDevMode: LPDEVMODE,
            pcbSize: *mut UINT,
        ) -> HRESULT,
    >,
    pub GetCurrentPrinterName: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPrintDialogServices,
            pPrinterName: LPWSTR,
            pcchSize: *mut UINT,
        ) -> HRESULT,
    >,
    pub GetCurrentPortName: ::std::option::Option<
        unsafe extern "C" fn(
            This: *mut IPrintDialogServices,
            pPortName: LPWSTR,
            pcchSize: *mut UINT,
        ) -> HRESULT,
    >,
}
#[test]
fn bindgen_test_layout_IPrintDialogServicesVtbl() {
    assert_eq!(
        ::std::mem::size_of::<IPrintDialogServicesVtbl>(),
        48usize,
        concat!("Size of: ", stringify!(IPrintDialogServicesVtbl))
    );
    assert_eq!(
        ::std::mem::align_of::<IPrintDialogServicesVtbl>(),
        8usize,
        concat!("Alignment of ", stringify!(IPrintDialogServicesVtbl))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IPrintDialogServicesVtbl>())).QueryInterface as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(IPrintDialogServicesVtbl),
            "::",
            stringify!(QueryInterface)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<IPrintDialogServicesVtbl>())).AddRef as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(IPrintDialogServicesVtbl),
            "::",
            stringify!(AddRef)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IPrintDialogServicesVtbl>())).Release as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(IPrintDialogServicesVtbl),
            "::",
            stringify!(Release)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IPrintDialogServicesVtbl>())).GetCurrentDevMode as *const _
                as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(IPrintDialogServicesVtbl),
            "::",
            stringify!(GetCurrentDevMode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IPrintDialogServicesVtbl>())).GetCurrentPrinterName as *const _
                as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(IPrintDialogServicesVtbl),
            "::",
            stringify!(GetCurrentPrinterName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<IPrintDialogServicesVtbl>())).GetCurrentPortName as *const _
                as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(IPrintDialogServicesVtbl),
            "::",
            stringify!(GetCurrentPortName)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagPRINTPAGERANGE {
    pub nFromPage: DWORD,
    pub nToPage: DWORD,
}
#[test]
fn bindgen_test_layout_tagPRINTPAGERANGE() {
    assert_eq!(
        ::std::mem::size_of::<tagPRINTPAGERANGE>(),
        8usize,
        concat!("Size of: ", stringify!(tagPRINTPAGERANGE))
    );
    assert_eq!(
        ::std::mem::align_of::<tagPRINTPAGERANGE>(),
        4usize,
        concat!("Alignment of ", stringify!(tagPRINTPAGERANGE))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPRINTPAGERANGE>())).nFromPage as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPRINTPAGERANGE),
            "::",
            stringify!(nFromPage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPRINTPAGERANGE>())).nToPage as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPRINTPAGERANGE),
            "::",
            stringify!(nToPage)
        )
    );
}
pub type PRINTPAGERANGE = tagPRINTPAGERANGE;
pub type LPPRINTPAGERANGE = *mut PRINTPAGERANGE;
pub type PCPRINTPAGERANGE = *const PRINTPAGERANGE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagPDEXA {
    pub lStructSize: DWORD,
    pub hwndOwner: HWND,
    pub hDevMode: HGLOBAL,
    pub hDevNames: HGLOBAL,
    pub hDC: HDC,
    pub Flags: DWORD,
    pub Flags2: DWORD,
    pub ExclusionFlags: DWORD,
    pub nPageRanges: DWORD,
    pub nMaxPageRanges: DWORD,
    pub lpPageRanges: LPPRINTPAGERANGE,
    pub nMinPage: DWORD,
    pub nMaxPage: DWORD,
    pub nCopies: DWORD,
    pub hInstance: HINSTANCE,
    pub lpPrintTemplateName: LPCSTR,
    pub lpCallback: LPUNKNOWN,
    pub nPropertyPages: DWORD,
    pub lphPropertyPages: *mut HPROPSHEETPAGE,
    pub nStartPage: DWORD,
    pub dwResultAction: DWORD,
}
#[test]
fn bindgen_test_layout_tagPDEXA() {
    assert_eq!(
        ::std::mem::size_of::<tagPDEXA>(),
        136usize,
        concat!("Size of: ", stringify!(tagPDEXA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagPDEXA>(),
        8usize,
        concat!("Alignment of ", stringify!(tagPDEXA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXA>())).lStructSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXA),
            "::",
            stringify!(lStructSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXA>())).hwndOwner as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXA),
            "::",
            stringify!(hwndOwner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXA>())).hDevMode as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXA),
            "::",
            stringify!(hDevMode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXA>())).hDevNames as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXA),
            "::",
            stringify!(hDevNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXA>())).hDC as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXA),
            "::",
            stringify!(hDC)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXA>())).Flags as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXA),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXA>())).Flags2 as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXA),
            "::",
            stringify!(Flags2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXA>())).ExclusionFlags as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXA),
            "::",
            stringify!(ExclusionFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXA>())).nPageRanges as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXA),
            "::",
            stringify!(nPageRanges)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXA>())).nMaxPageRanges as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXA),
            "::",
            stringify!(nMaxPageRanges)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXA>())).lpPageRanges as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXA),
            "::",
            stringify!(lpPageRanges)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXA>())).nMinPage as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXA),
            "::",
            stringify!(nMinPage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXA>())).nMaxPage as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXA),
            "::",
            stringify!(nMaxPage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXA>())).nCopies as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXA),
            "::",
            stringify!(nCopies)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXA>())).hInstance as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXA),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXA>())).lpPrintTemplateName as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXA),
            "::",
            stringify!(lpPrintTemplateName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXA>())).lpCallback as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXA),
            "::",
            stringify!(lpCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXA>())).nPropertyPages as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXA),
            "::",
            stringify!(nPropertyPages)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXA>())).lphPropertyPages as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXA),
            "::",
            stringify!(lphPropertyPages)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXA>())).nStartPage as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXA),
            "::",
            stringify!(nStartPage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXA>())).dwResultAction as *const _ as usize },
        132usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXA),
            "::",
            stringify!(dwResultAction)
        )
    );
}
pub type PRINTDLGEXA = tagPDEXA;
pub type LPPRINTDLGEXA = *mut tagPDEXA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagPDEXW {
    pub lStructSize: DWORD,
    pub hwndOwner: HWND,
    pub hDevMode: HGLOBAL,
    pub hDevNames: HGLOBAL,
    pub hDC: HDC,
    pub Flags: DWORD,
    pub Flags2: DWORD,
    pub ExclusionFlags: DWORD,
    pub nPageRanges: DWORD,
    pub nMaxPageRanges: DWORD,
    pub lpPageRanges: LPPRINTPAGERANGE,
    pub nMinPage: DWORD,
    pub nMaxPage: DWORD,
    pub nCopies: DWORD,
    pub hInstance: HINSTANCE,
    pub lpPrintTemplateName: LPCWSTR,
    pub lpCallback: LPUNKNOWN,
    pub nPropertyPages: DWORD,
    pub lphPropertyPages: *mut HPROPSHEETPAGE,
    pub nStartPage: DWORD,
    pub dwResultAction: DWORD,
}
#[test]
fn bindgen_test_layout_tagPDEXW() {
    assert_eq!(
        ::std::mem::size_of::<tagPDEXW>(),
        136usize,
        concat!("Size of: ", stringify!(tagPDEXW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagPDEXW>(),
        8usize,
        concat!("Alignment of ", stringify!(tagPDEXW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXW>())).lStructSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXW),
            "::",
            stringify!(lStructSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXW>())).hwndOwner as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXW),
            "::",
            stringify!(hwndOwner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXW>())).hDevMode as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXW),
            "::",
            stringify!(hDevMode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXW>())).hDevNames as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXW),
            "::",
            stringify!(hDevNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXW>())).hDC as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXW),
            "::",
            stringify!(hDC)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXW>())).Flags as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXW),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXW>())).Flags2 as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXW),
            "::",
            stringify!(Flags2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXW>())).ExclusionFlags as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXW),
            "::",
            stringify!(ExclusionFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXW>())).nPageRanges as *const _ as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXW),
            "::",
            stringify!(nPageRanges)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXW>())).nMaxPageRanges as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXW),
            "::",
            stringify!(nMaxPageRanges)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXW>())).lpPageRanges as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXW),
            "::",
            stringify!(lpPageRanges)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXW>())).nMinPage as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXW),
            "::",
            stringify!(nMinPage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXW>())).nMaxPage as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXW),
            "::",
            stringify!(nMaxPage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXW>())).nCopies as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXW),
            "::",
            stringify!(nCopies)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXW>())).hInstance as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXW),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXW>())).lpPrintTemplateName as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXW),
            "::",
            stringify!(lpPrintTemplateName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXW>())).lpCallback as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXW),
            "::",
            stringify!(lpCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXW>())).nPropertyPages as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXW),
            "::",
            stringify!(nPropertyPages)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXW>())).lphPropertyPages as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXW),
            "::",
            stringify!(lphPropertyPages)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXW>())).nStartPage as *const _ as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXW),
            "::",
            stringify!(nStartPage)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPDEXW>())).dwResultAction as *const _ as usize },
        132usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPDEXW),
            "::",
            stringify!(dwResultAction)
        )
    );
}
pub type PRINTDLGEXW = tagPDEXW;
pub type LPPRINTDLGEXW = *mut tagPDEXW;
pub type PRINTDLGEX = PRINTDLGEXA;
pub type LPPRINTDLGEX = LPPRINTDLGEXA;
extern "C" {
    pub fn PrintDlgExA(pPD: LPPRINTDLGEXA) -> HRESULT;
}
extern "C" {
    pub fn PrintDlgExW(pPD: LPPRINTDLGEXW) -> HRESULT;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagDEVNAMES {
    pub wDriverOffset: WORD,
    pub wDeviceOffset: WORD,
    pub wOutputOffset: WORD,
    pub wDefault: WORD,
}
#[test]
fn bindgen_test_layout_tagDEVNAMES() {
    assert_eq!(
        ::std::mem::size_of::<tagDEVNAMES>(),
        8usize,
        concat!("Size of: ", stringify!(tagDEVNAMES))
    );
    assert_eq!(
        ::std::mem::align_of::<tagDEVNAMES>(),
        2usize,
        concat!("Alignment of ", stringify!(tagDEVNAMES))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDEVNAMES>())).wDriverOffset as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDEVNAMES),
            "::",
            stringify!(wDriverOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDEVNAMES>())).wDeviceOffset as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDEVNAMES),
            "::",
            stringify!(wDeviceOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDEVNAMES>())).wOutputOffset as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDEVNAMES),
            "::",
            stringify!(wOutputOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagDEVNAMES>())).wDefault as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(tagDEVNAMES),
            "::",
            stringify!(wDefault)
        )
    );
}
pub type DEVNAMES = tagDEVNAMES;
pub type LPDEVNAMES = *mut DEVNAMES;
pub type PCDEVNAMES = *const DEVNAMES;
extern "C" {
    pub fn CommDlgExtendedError() -> DWORD;
}
pub type LPPAGEPAINTHOOK = ::std::option::Option<
    unsafe extern "C" fn(arg1: HWND, arg2: UINT, arg3: WPARAM, arg4: LPARAM) -> UINT_PTR,
>;
pub type LPPAGESETUPHOOK = ::std::option::Option<
    unsafe extern "C" fn(arg1: HWND, arg2: UINT, arg3: WPARAM, arg4: LPARAM) -> UINT_PTR,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagPSDA {
    pub lStructSize: DWORD,
    pub hwndOwner: HWND,
    pub hDevMode: HGLOBAL,
    pub hDevNames: HGLOBAL,
    pub Flags: DWORD,
    pub ptPaperSize: POINT,
    pub rtMinMargin: RECT,
    pub rtMargin: RECT,
    pub hInstance: HINSTANCE,
    pub lCustData: LPARAM,
    pub lpfnPageSetupHook: LPPAGESETUPHOOK,
    pub lpfnPagePaintHook: LPPAGEPAINTHOOK,
    pub lpPageSetupTemplateName: LPCSTR,
    pub hPageSetupTemplate: HGLOBAL,
}
#[test]
fn bindgen_test_layout_tagPSDA() {
    assert_eq!(
        ::std::mem::size_of::<tagPSDA>(),
        128usize,
        concat!("Size of: ", stringify!(tagPSDA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagPSDA>(),
        8usize,
        concat!("Alignment of ", stringify!(tagPSDA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPSDA>())).lStructSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPSDA),
            "::",
            stringify!(lStructSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPSDA>())).hwndOwner as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPSDA),
            "::",
            stringify!(hwndOwner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPSDA>())).hDevMode as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPSDA),
            "::",
            stringify!(hDevMode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPSDA>())).hDevNames as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPSDA),
            "::",
            stringify!(hDevNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPSDA>())).Flags as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPSDA),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPSDA>())).ptPaperSize as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPSDA),
            "::",
            stringify!(ptPaperSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPSDA>())).rtMinMargin as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPSDA),
            "::",
            stringify!(rtMinMargin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPSDA>())).rtMargin as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPSDA),
            "::",
            stringify!(rtMargin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPSDA>())).hInstance as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPSDA),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPSDA>())).lCustData as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPSDA),
            "::",
            stringify!(lCustData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPSDA>())).lpfnPageSetupHook as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPSDA),
            "::",
            stringify!(lpfnPageSetupHook)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPSDA>())).lpfnPagePaintHook as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPSDA),
            "::",
            stringify!(lpfnPagePaintHook)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPSDA>())).lpPageSetupTemplateName as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPSDA),
            "::",
            stringify!(lpPageSetupTemplateName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPSDA>())).hPageSetupTemplate as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPSDA),
            "::",
            stringify!(hPageSetupTemplate)
        )
    );
}
pub type PAGESETUPDLGA = tagPSDA;
pub type LPPAGESETUPDLGA = *mut tagPSDA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagPSDW {
    pub lStructSize: DWORD,
    pub hwndOwner: HWND,
    pub hDevMode: HGLOBAL,
    pub hDevNames: HGLOBAL,
    pub Flags: DWORD,
    pub ptPaperSize: POINT,
    pub rtMinMargin: RECT,
    pub rtMargin: RECT,
    pub hInstance: HINSTANCE,
    pub lCustData: LPARAM,
    pub lpfnPageSetupHook: LPPAGESETUPHOOK,
    pub lpfnPagePaintHook: LPPAGEPAINTHOOK,
    pub lpPageSetupTemplateName: LPCWSTR,
    pub hPageSetupTemplate: HGLOBAL,
}
#[test]
fn bindgen_test_layout_tagPSDW() {
    assert_eq!(
        ::std::mem::size_of::<tagPSDW>(),
        128usize,
        concat!("Size of: ", stringify!(tagPSDW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagPSDW>(),
        8usize,
        concat!("Alignment of ", stringify!(tagPSDW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPSDW>())).lStructSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPSDW),
            "::",
            stringify!(lStructSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPSDW>())).hwndOwner as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPSDW),
            "::",
            stringify!(hwndOwner)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPSDW>())).hDevMode as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPSDW),
            "::",
            stringify!(hDevMode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPSDW>())).hDevNames as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPSDW),
            "::",
            stringify!(hDevNames)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPSDW>())).Flags as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPSDW),
            "::",
            stringify!(Flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPSDW>())).ptPaperSize as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPSDW),
            "::",
            stringify!(ptPaperSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPSDW>())).rtMinMargin as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPSDW),
            "::",
            stringify!(rtMinMargin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPSDW>())).rtMargin as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPSDW),
            "::",
            stringify!(rtMargin)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPSDW>())).hInstance as *const _ as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPSDW),
            "::",
            stringify!(hInstance)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPSDW>())).lCustData as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPSDW),
            "::",
            stringify!(lCustData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPSDW>())).lpfnPageSetupHook as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPSDW),
            "::",
            stringify!(lpfnPageSetupHook)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPSDW>())).lpfnPagePaintHook as *const _ as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPSDW),
            "::",
            stringify!(lpfnPagePaintHook)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPSDW>())).lpPageSetupTemplateName as *const _ as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPSDW),
            "::",
            stringify!(lpPageSetupTemplateName)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagPSDW>())).hPageSetupTemplate as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tagPSDW),
            "::",
            stringify!(hPageSetupTemplate)
        )
    );
}
pub type PAGESETUPDLGW = tagPSDW;
pub type LPPAGESETUPDLGW = *mut tagPSDW;
pub type PAGESETUPDLG = PAGESETUPDLGA;
pub type LPPAGESETUPDLG = LPPAGESETUPDLGA;
extern "C" {
    pub fn PageSetupDlgA(arg1: LPPAGESETUPDLGA) -> BOOL;
}
extern "C" {
    pub fn PageSetupDlgW(arg1: LPPAGESETUPDLGW) -> BOOL;
}
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) -> size_t;
}
extern "C" {
    pub fn uaw_wcsrchr(String: PCUWSTR, Character: WCHAR) -> PUWSTR;
}
pub type PUWSTR_C = *mut WCHAR;
extern "C" {
    pub static NETWORK_MANAGER_FIRST_IP_ADDRESS_ARRIVAL_GUID: GUID;
}
extern "C" {
    pub static NETWORK_MANAGER_LAST_IP_ADDRESS_REMOVAL_GUID: GUID;
}
extern "C" {
    pub static DOMAIN_JOIN_GUID: GUID;
}
extern "C" {
    pub static DOMAIN_LEAVE_GUID: GUID;
}
extern "C" {
    pub static FIREWALL_PORT_OPEN_GUID: GUID;
}
extern "C" {
    pub static FIREWALL_PORT_CLOSE_GUID: GUID;
}
extern "C" {
    pub static MACHINE_POLICY_PRESENT_GUID: GUID;
}
extern "C" {
    pub static USER_POLICY_PRESENT_GUID: GUID;
}
extern "C" {
    pub static RPC_INTERFACE_EVENT_GUID: GUID;
}
extern "C" {
    pub static NAMED_PIPE_EVENT_GUID: GUID;
}
extern "C" {
    pub static CUSTOM_SYSTEM_STATE_CHANGE_EVENT_GUID: GUID;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct SERVICE_TRIGGER_CUSTOM_STATE_ID {
    pub Data: [DWORD; 2usize],
}
#[test]
fn bindgen_test_layout_SERVICE_TRIGGER_CUSTOM_STATE_ID() {
    assert_eq!(
        ::std::mem::size_of::<SERVICE_TRIGGER_CUSTOM_STATE_ID>(),
        8usize,
        concat!("Size of: ", stringify!(SERVICE_TRIGGER_CUSTOM_STATE_ID))
    );
    assert_eq!(
        ::std::mem::align_of::<SERVICE_TRIGGER_CUSTOM_STATE_ID>(),
        4usize,
        concat!("Alignment of ", stringify!(SERVICE_TRIGGER_CUSTOM_STATE_ID))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SERVICE_TRIGGER_CUSTOM_STATE_ID>())).Data as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(SERVICE_TRIGGER_CUSTOM_STATE_ID),
            "::",
            stringify!(Data)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM {
    pub u: _SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union _SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM__bindgen_ty_1 {
    pub CustomStateId: SERVICE_TRIGGER_CUSTOM_STATE_ID,
    pub s: _SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM__bindgen_ty_1__bindgen_ty_1,
    _bindgen_union_align: [u32; 2usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM__bindgen_ty_1__bindgen_ty_1 {
    pub DataOffset: DWORD,
    pub Data: [BYTE; 1usize],
}
#[test]
fn bindgen_test_layout__SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM__bindgen_ty_1__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<
            _SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM__bindgen_ty_1__bindgen_ty_1,
        >(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<
            _SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM__bindgen_ty_1__bindgen_ty_1,
        >(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM__bindgen_ty_1__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<
                _SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM__bindgen_ty_1__bindgen_ty_1,
            >()))
            .DataOffset as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(DataOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<
                _SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM__bindgen_ty_1__bindgen_ty_1,
            >()))
            .Data as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM__bindgen_ty_1__bindgen_ty_1),
            "::",
            stringify!(Data)
        )
    );
}
#[test]
fn bindgen_test_layout__SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<_SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM__bindgen_ty_1>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM__bindgen_ty_1>()))
                .CustomStateId as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM__bindgen_ty_1),
            "::",
            stringify!(CustomStateId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM__bindgen_ty_1>()))
                .s as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM__bindgen_ty_1),
            "::",
            stringify!(s)
        )
    );
}
#[test]
fn bindgen_test_layout__SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM() {
    assert_eq!(
        ::std::mem::size_of::<_SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM>(),
        8usize,
        concat!(
            "Size of: ",
            stringify!(_SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM>())).u as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM),
            "::",
            stringify!(u)
        )
    );
}
pub type SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM =
    _SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM;
pub type LPSERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM =
    *mut _SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SERVICE_DESCRIPTIONA {
    pub lpDescription: LPSTR,
}
#[test]
fn bindgen_test_layout__SERVICE_DESCRIPTIONA() {
    assert_eq!(
        ::std::mem::size_of::<_SERVICE_DESCRIPTIONA>(),
        8usize,
        concat!("Size of: ", stringify!(_SERVICE_DESCRIPTIONA))
    );
    assert_eq!(
        ::std::mem::align_of::<_SERVICE_DESCRIPTIONA>(),
        8usize,
        concat!("Alignment of ", stringify!(_SERVICE_DESCRIPTIONA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_DESCRIPTIONA>())).lpDescription as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_DESCRIPTIONA),
            "::",
            stringify!(lpDescription)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__SERVICE_DESCRIPTIONW() {
    assert_eq!(
        ::std::mem::size_of::<_SERVICE_DESCRIPTIONW>(),
        8usize,
        concat!("Size of: ", stringify!(_SERVICE_DESCRIPTIONW))
    );
    assert_eq!(
        ::std::mem::align_of::<_SERVICE_DESCRIPTIONW>(),
        8usize,
        concat!("Alignment of ", stringify!(_SERVICE_DESCRIPTIONW))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_DESCRIPTIONW>())).lpDescription as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_DESCRIPTIONW),
            "::",
            stringify!(lpDescription)
        )
    );
}
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 const _SC_ACTION_TYPE_SC_ACTION_OWN_RESTART: _SC_ACTION_TYPE = 4;
pub type _SC_ACTION_TYPE = ::std::os::raw::c_int;
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,
}
#[test]
fn bindgen_test_layout__SC_ACTION() {
    assert_eq!(
        ::std::mem::size_of::<_SC_ACTION>(),
        8usize,
        concat!("Size of: ", stringify!(_SC_ACTION))
    );
    assert_eq!(
        ::std::mem::align_of::<_SC_ACTION>(),
        4usize,
        concat!("Alignment of ", stringify!(_SC_ACTION))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SC_ACTION>())).Type as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SC_ACTION),
            "::",
            stringify!(Type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SC_ACTION>())).Delay as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SC_ACTION),
            "::",
            stringify!(Delay)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__SERVICE_FAILURE_ACTIONSA() {
    assert_eq!(
        ::std::mem::size_of::<_SERVICE_FAILURE_ACTIONSA>(),
        40usize,
        concat!("Size of: ", stringify!(_SERVICE_FAILURE_ACTIONSA))
    );
    assert_eq!(
        ::std::mem::align_of::<_SERVICE_FAILURE_ACTIONSA>(),
        8usize,
        concat!("Alignment of ", stringify!(_SERVICE_FAILURE_ACTIONSA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_FAILURE_ACTIONSA>())).dwResetPeriod as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_FAILURE_ACTIONSA),
            "::",
            stringify!(dwResetPeriod)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_FAILURE_ACTIONSA>())).lpRebootMsg as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_FAILURE_ACTIONSA),
            "::",
            stringify!(lpRebootMsg)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_FAILURE_ACTIONSA>())).lpCommand as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_FAILURE_ACTIONSA),
            "::",
            stringify!(lpCommand)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_FAILURE_ACTIONSA>())).cActions as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_FAILURE_ACTIONSA),
            "::",
            stringify!(cActions)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_FAILURE_ACTIONSA>())).lpsaActions as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_FAILURE_ACTIONSA),
            "::",
            stringify!(lpsaActions)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__SERVICE_FAILURE_ACTIONSW() {
    assert_eq!(
        ::std::mem::size_of::<_SERVICE_FAILURE_ACTIONSW>(),
        40usize,
        concat!("Size of: ", stringify!(_SERVICE_FAILURE_ACTIONSW))
    );
    assert_eq!(
        ::std::mem::align_of::<_SERVICE_FAILURE_ACTIONSW>(),
        8usize,
        concat!("Alignment of ", stringify!(_SERVICE_FAILURE_ACTIONSW))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_FAILURE_ACTIONSW>())).dwResetPeriod as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_FAILURE_ACTIONSW),
            "::",
            stringify!(dwResetPeriod)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_FAILURE_ACTIONSW>())).lpRebootMsg as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_FAILURE_ACTIONSW),
            "::",
            stringify!(lpRebootMsg)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_FAILURE_ACTIONSW>())).lpCommand as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_FAILURE_ACTIONSW),
            "::",
            stringify!(lpCommand)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_FAILURE_ACTIONSW>())).cActions as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_FAILURE_ACTIONSW),
            "::",
            stringify!(cActions)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_FAILURE_ACTIONSW>())).lpsaActions as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_FAILURE_ACTIONSW),
            "::",
            stringify!(lpsaActions)
        )
    );
}
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 _SERVICE_DELAYED_AUTO_START_INFO {
    pub fDelayedAutostart: BOOL,
}
#[test]
fn bindgen_test_layout__SERVICE_DELAYED_AUTO_START_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_SERVICE_DELAYED_AUTO_START_INFO>(),
        4usize,
        concat!("Size of: ", stringify!(_SERVICE_DELAYED_AUTO_START_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_SERVICE_DELAYED_AUTO_START_INFO>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(_SERVICE_DELAYED_AUTO_START_INFO)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_DELAYED_AUTO_START_INFO>())).fDelayedAutostart
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_DELAYED_AUTO_START_INFO),
            "::",
            stringify!(fDelayedAutostart)
        )
    );
}
pub type SERVICE_DELAYED_AUTO_START_INFO = _SERVICE_DELAYED_AUTO_START_INFO;
pub type LPSERVICE_DELAYED_AUTO_START_INFO = *mut _SERVICE_DELAYED_AUTO_START_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SERVICE_FAILURE_ACTIONS_FLAG {
    pub fFailureActionsOnNonCrashFailures: BOOL,
}
#[test]
fn bindgen_test_layout__SERVICE_FAILURE_ACTIONS_FLAG() {
    assert_eq!(
        ::std::mem::size_of::<_SERVICE_FAILURE_ACTIONS_FLAG>(),
        4usize,
        concat!("Size of: ", stringify!(_SERVICE_FAILURE_ACTIONS_FLAG))
    );
    assert_eq!(
        ::std::mem::align_of::<_SERVICE_FAILURE_ACTIONS_FLAG>(),
        4usize,
        concat!("Alignment of ", stringify!(_SERVICE_FAILURE_ACTIONS_FLAG))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_FAILURE_ACTIONS_FLAG>()))
                .fFailureActionsOnNonCrashFailures as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_FAILURE_ACTIONS_FLAG),
            "::",
            stringify!(fFailureActionsOnNonCrashFailures)
        )
    );
}
pub type SERVICE_FAILURE_ACTIONS_FLAG = _SERVICE_FAILURE_ACTIONS_FLAG;
pub type LPSERVICE_FAILURE_ACTIONS_FLAG = *mut _SERVICE_FAILURE_ACTIONS_FLAG;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SERVICE_SID_INFO {
    pub dwServiceSidType: DWORD,
}
#[test]
fn bindgen_test_layout__SERVICE_SID_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_SERVICE_SID_INFO>(),
        4usize,
        concat!("Size of: ", stringify!(_SERVICE_SID_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_SERVICE_SID_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_SERVICE_SID_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_SID_INFO>())).dwServiceSidType as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_SID_INFO),
            "::",
            stringify!(dwServiceSidType)
        )
    );
}
pub type SERVICE_SID_INFO = _SERVICE_SID_INFO;
pub type LPSERVICE_SID_INFO = *mut _SERVICE_SID_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SERVICE_REQUIRED_PRIVILEGES_INFOA {
    pub pmszRequiredPrivileges: LPSTR,
}
#[test]
fn bindgen_test_layout__SERVICE_REQUIRED_PRIVILEGES_INFOA() {
    assert_eq!(
        ::std::mem::size_of::<_SERVICE_REQUIRED_PRIVILEGES_INFOA>(),
        8usize,
        concat!("Size of: ", stringify!(_SERVICE_REQUIRED_PRIVILEGES_INFOA))
    );
    assert_eq!(
        ::std::mem::align_of::<_SERVICE_REQUIRED_PRIVILEGES_INFOA>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_SERVICE_REQUIRED_PRIVILEGES_INFOA)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_REQUIRED_PRIVILEGES_INFOA>())).pmszRequiredPrivileges
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_REQUIRED_PRIVILEGES_INFOA),
            "::",
            stringify!(pmszRequiredPrivileges)
        )
    );
}
pub type SERVICE_REQUIRED_PRIVILEGES_INFOA = _SERVICE_REQUIRED_PRIVILEGES_INFOA;
pub type LPSERVICE_REQUIRED_PRIVILEGES_INFOA = *mut _SERVICE_REQUIRED_PRIVILEGES_INFOA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SERVICE_REQUIRED_PRIVILEGES_INFOW {
    pub pmszRequiredPrivileges: LPWSTR,
}
#[test]
fn bindgen_test_layout__SERVICE_REQUIRED_PRIVILEGES_INFOW() {
    assert_eq!(
        ::std::mem::size_of::<_SERVICE_REQUIRED_PRIVILEGES_INFOW>(),
        8usize,
        concat!("Size of: ", stringify!(_SERVICE_REQUIRED_PRIVILEGES_INFOW))
    );
    assert_eq!(
        ::std::mem::align_of::<_SERVICE_REQUIRED_PRIVILEGES_INFOW>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_SERVICE_REQUIRED_PRIVILEGES_INFOW)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_REQUIRED_PRIVILEGES_INFOW>())).pmszRequiredPrivileges
                as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_REQUIRED_PRIVILEGES_INFOW),
            "::",
            stringify!(pmszRequiredPrivileges)
        )
    );
}
pub type SERVICE_REQUIRED_PRIVILEGES_INFOW = _SERVICE_REQUIRED_PRIVILEGES_INFOW;
pub type LPSERVICE_REQUIRED_PRIVILEGES_INFOW = *mut _SERVICE_REQUIRED_PRIVILEGES_INFOW;
pub type SERVICE_REQUIRED_PRIVILEGES_INFO = SERVICE_REQUIRED_PRIVILEGES_INFOA;
pub type LPSERVICE_REQUIRED_PRIVILEGES_INFO = LPSERVICE_REQUIRED_PRIVILEGES_INFOA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SERVICE_PRESHUTDOWN_INFO {
    pub dwPreshutdownTimeout: DWORD,
}
#[test]
fn bindgen_test_layout__SERVICE_PRESHUTDOWN_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_SERVICE_PRESHUTDOWN_INFO>(),
        4usize,
        concat!("Size of: ", stringify!(_SERVICE_PRESHUTDOWN_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_SERVICE_PRESHUTDOWN_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_SERVICE_PRESHUTDOWN_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_PRESHUTDOWN_INFO>())).dwPreshutdownTimeout as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_PRESHUTDOWN_INFO),
            "::",
            stringify!(dwPreshutdownTimeout)
        )
    );
}
pub type SERVICE_PRESHUTDOWN_INFO = _SERVICE_PRESHUTDOWN_INFO;
pub type LPSERVICE_PRESHUTDOWN_INFO = *mut _SERVICE_PRESHUTDOWN_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SERVICE_TRIGGER_SPECIFIC_DATA_ITEM {
    pub dwDataType: DWORD,
    pub cbData: DWORD,
    pub pData: PBYTE,
}
#[test]
fn bindgen_test_layout__SERVICE_TRIGGER_SPECIFIC_DATA_ITEM() {
    assert_eq!(
        ::std::mem::size_of::<_SERVICE_TRIGGER_SPECIFIC_DATA_ITEM>(),
        16usize,
        concat!("Size of: ", stringify!(_SERVICE_TRIGGER_SPECIFIC_DATA_ITEM))
    );
    assert_eq!(
        ::std::mem::align_of::<_SERVICE_TRIGGER_SPECIFIC_DATA_ITEM>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_SERVICE_TRIGGER_SPECIFIC_DATA_ITEM)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_TRIGGER_SPECIFIC_DATA_ITEM>())).dwDataType as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_TRIGGER_SPECIFIC_DATA_ITEM),
            "::",
            stringify!(dwDataType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_TRIGGER_SPECIFIC_DATA_ITEM>())).cbData as *const _
                as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_TRIGGER_SPECIFIC_DATA_ITEM),
            "::",
            stringify!(cbData)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_TRIGGER_SPECIFIC_DATA_ITEM>())).pData as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_TRIGGER_SPECIFIC_DATA_ITEM),
            "::",
            stringify!(pData)
        )
    );
}
pub type SERVICE_TRIGGER_SPECIFIC_DATA_ITEM = _SERVICE_TRIGGER_SPECIFIC_DATA_ITEM;
pub type PSERVICE_TRIGGER_SPECIFIC_DATA_ITEM = *mut _SERVICE_TRIGGER_SPECIFIC_DATA_ITEM;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SERVICE_TRIGGER {
    pub dwTriggerType: DWORD,
    pub dwAction: DWORD,
    pub pTriggerSubtype: *mut GUID,
    pub cDataItems: DWORD,
    pub pDataItems: PSERVICE_TRIGGER_SPECIFIC_DATA_ITEM,
}
#[test]
fn bindgen_test_layout__SERVICE_TRIGGER() {
    assert_eq!(
        ::std::mem::size_of::<_SERVICE_TRIGGER>(),
        32usize,
        concat!("Size of: ", stringify!(_SERVICE_TRIGGER))
    );
    assert_eq!(
        ::std::mem::align_of::<_SERVICE_TRIGGER>(),
        8usize,
        concat!("Alignment of ", stringify!(_SERVICE_TRIGGER))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SERVICE_TRIGGER>())).dwTriggerType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_TRIGGER),
            "::",
            stringify!(dwTriggerType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SERVICE_TRIGGER>())).dwAction as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_TRIGGER),
            "::",
            stringify!(dwAction)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_TRIGGER>())).pTriggerSubtype as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_TRIGGER),
            "::",
            stringify!(pTriggerSubtype)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SERVICE_TRIGGER>())).cDataItems as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_TRIGGER),
            "::",
            stringify!(cDataItems)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SERVICE_TRIGGER>())).pDataItems as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_TRIGGER),
            "::",
            stringify!(pDataItems)
        )
    );
}
pub type SERVICE_TRIGGER = _SERVICE_TRIGGER;
pub type PSERVICE_TRIGGER = *mut _SERVICE_TRIGGER;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SERVICE_TRIGGER_INFO {
    pub cTriggers: DWORD,
    pub pTriggers: PSERVICE_TRIGGER,
    pub pReserved: PBYTE,
}
#[test]
fn bindgen_test_layout__SERVICE_TRIGGER_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_SERVICE_TRIGGER_INFO>(),
        24usize,
        concat!("Size of: ", stringify!(_SERVICE_TRIGGER_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_SERVICE_TRIGGER_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_SERVICE_TRIGGER_INFO))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SERVICE_TRIGGER_INFO>())).cTriggers as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_TRIGGER_INFO),
            "::",
            stringify!(cTriggers)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SERVICE_TRIGGER_INFO>())).pTriggers as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_TRIGGER_INFO),
            "::",
            stringify!(pTriggers)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SERVICE_TRIGGER_INFO>())).pReserved as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_TRIGGER_INFO),
            "::",
            stringify!(pReserved)
        )
    );
}
pub type SERVICE_TRIGGER_INFO = _SERVICE_TRIGGER_INFO;
pub type PSERVICE_TRIGGER_INFO = *mut _SERVICE_TRIGGER_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SERVICE_PREFERRED_NODE_INFO {
    pub usPreferredNode: USHORT,
    pub fDelete: BOOLEAN,
}
#[test]
fn bindgen_test_layout__SERVICE_PREFERRED_NODE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_SERVICE_PREFERRED_NODE_INFO>(),
        4usize,
        concat!("Size of: ", stringify!(_SERVICE_PREFERRED_NODE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_SERVICE_PREFERRED_NODE_INFO>(),
        2usize,
        concat!("Alignment of ", stringify!(_SERVICE_PREFERRED_NODE_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_PREFERRED_NODE_INFO>())).usPreferredNode as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_PREFERRED_NODE_INFO),
            "::",
            stringify!(usPreferredNode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_PREFERRED_NODE_INFO>())).fDelete as *const _ as usize
        },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_PREFERRED_NODE_INFO),
            "::",
            stringify!(fDelete)
        )
    );
}
pub type SERVICE_PREFERRED_NODE_INFO = _SERVICE_PREFERRED_NODE_INFO;
pub type LPSERVICE_PREFERRED_NODE_INFO = *mut _SERVICE_PREFERRED_NODE_INFO;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _SERVICE_TIMECHANGE_INFO {
    pub liNewTime: LARGE_INTEGER,
    pub liOldTime: LARGE_INTEGER,
}
#[test]
fn bindgen_test_layout__SERVICE_TIMECHANGE_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_SERVICE_TIMECHANGE_INFO>(),
        16usize,
        concat!("Size of: ", stringify!(_SERVICE_TIMECHANGE_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_SERVICE_TIMECHANGE_INFO>(),
        8usize,
        concat!("Alignment of ", stringify!(_SERVICE_TIMECHANGE_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_TIMECHANGE_INFO>())).liNewTime as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_TIMECHANGE_INFO),
            "::",
            stringify!(liNewTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_TIMECHANGE_INFO>())).liOldTime as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_TIMECHANGE_INFO),
            "::",
            stringify!(liOldTime)
        )
    );
}
pub type SERVICE_TIMECHANGE_INFO = _SERVICE_TIMECHANGE_INFO;
pub type PSERVICE_TIMECHANGE_INFO = *mut _SERVICE_TIMECHANGE_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SERVICE_LAUNCH_PROTECTED_INFO {
    pub dwLaunchProtected: DWORD,
}
#[test]
fn bindgen_test_layout__SERVICE_LAUNCH_PROTECTED_INFO() {
    assert_eq!(
        ::std::mem::size_of::<_SERVICE_LAUNCH_PROTECTED_INFO>(),
        4usize,
        concat!("Size of: ", stringify!(_SERVICE_LAUNCH_PROTECTED_INFO))
    );
    assert_eq!(
        ::std::mem::align_of::<_SERVICE_LAUNCH_PROTECTED_INFO>(),
        4usize,
        concat!("Alignment of ", stringify!(_SERVICE_LAUNCH_PROTECTED_INFO))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_LAUNCH_PROTECTED_INFO>())).dwLaunchProtected as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_LAUNCH_PROTECTED_INFO),
            "::",
            stringify!(dwLaunchProtected)
        )
    );
}
pub type SERVICE_LAUNCH_PROTECTED_INFO = _SERVICE_LAUNCH_PROTECTED_INFO;
pub type PSERVICE_LAUNCH_PROTECTED_INFO = *mut _SERVICE_LAUNCH_PROTECTED_INFO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct SC_HANDLE__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_SC_HANDLE__() {
    assert_eq!(
        ::std::mem::size_of::<SC_HANDLE__>(),
        4usize,
        concat!("Size of: ", stringify!(SC_HANDLE__))
    );
    assert_eq!(
        ::std::mem::align_of::<SC_HANDLE__>(),
        4usize,
        concat!("Alignment of ", stringify!(SC_HANDLE__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SC_HANDLE__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(SC_HANDLE__),
            "::",
            stringify!(unused)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_SERVICE_STATUS_HANDLE__() {
    assert_eq!(
        ::std::mem::size_of::<SERVICE_STATUS_HANDLE__>(),
        4usize,
        concat!("Size of: ", stringify!(SERVICE_STATUS_HANDLE__))
    );
    assert_eq!(
        ::std::mem::align_of::<SERVICE_STATUS_HANDLE__>(),
        4usize,
        concat!("Alignment of ", stringify!(SERVICE_STATUS_HANDLE__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SERVICE_STATUS_HANDLE__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(SERVICE_STATUS_HANDLE__),
            "::",
            stringify!(unused)
        )
    );
}
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 = ::std::os::raw::c_int;
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 = ::std::os::raw::c_int;
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,
}
#[test]
fn bindgen_test_layout__SERVICE_STATUS() {
    assert_eq!(
        ::std::mem::size_of::<_SERVICE_STATUS>(),
        28usize,
        concat!("Size of: ", stringify!(_SERVICE_STATUS))
    );
    assert_eq!(
        ::std::mem::align_of::<_SERVICE_STATUS>(),
        4usize,
        concat!("Alignment of ", stringify!(_SERVICE_STATUS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SERVICE_STATUS>())).dwServiceType as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_STATUS),
            "::",
            stringify!(dwServiceType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SERVICE_STATUS>())).dwCurrentState as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_STATUS),
            "::",
            stringify!(dwCurrentState)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_STATUS>())).dwControlsAccepted as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_STATUS),
            "::",
            stringify!(dwControlsAccepted)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SERVICE_STATUS>())).dwWin32ExitCode as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_STATUS),
            "::",
            stringify!(dwWin32ExitCode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_STATUS>())).dwServiceSpecificExitCode as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_STATUS),
            "::",
            stringify!(dwServiceSpecificExitCode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SERVICE_STATUS>())).dwCheckPoint as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_STATUS),
            "::",
            stringify!(dwCheckPoint)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SERVICE_STATUS>())).dwWaitHint as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_STATUS),
            "::",
            stringify!(dwWaitHint)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__SERVICE_STATUS_PROCESS() {
    assert_eq!(
        ::std::mem::size_of::<_SERVICE_STATUS_PROCESS>(),
        36usize,
        concat!("Size of: ", stringify!(_SERVICE_STATUS_PROCESS))
    );
    assert_eq!(
        ::std::mem::align_of::<_SERVICE_STATUS_PROCESS>(),
        4usize,
        concat!("Alignment of ", stringify!(_SERVICE_STATUS_PROCESS))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_STATUS_PROCESS>())).dwServiceType as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_STATUS_PROCESS),
            "::",
            stringify!(dwServiceType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_STATUS_PROCESS>())).dwCurrentState as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_STATUS_PROCESS),
            "::",
            stringify!(dwCurrentState)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_STATUS_PROCESS>())).dwControlsAccepted as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_STATUS_PROCESS),
            "::",
            stringify!(dwControlsAccepted)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_STATUS_PROCESS>())).dwWin32ExitCode as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_STATUS_PROCESS),
            "::",
            stringify!(dwWin32ExitCode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_STATUS_PROCESS>())).dwServiceSpecificExitCode
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_STATUS_PROCESS),
            "::",
            stringify!(dwServiceSpecificExitCode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_STATUS_PROCESS>())).dwCheckPoint as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_STATUS_PROCESS),
            "::",
            stringify!(dwCheckPoint)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_STATUS_PROCESS>())).dwWaitHint as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_STATUS_PROCESS),
            "::",
            stringify!(dwWaitHint)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_STATUS_PROCESS>())).dwProcessId as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_STATUS_PROCESS),
            "::",
            stringify!(dwProcessId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_STATUS_PROCESS>())).dwServiceFlags as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_STATUS_PROCESS),
            "::",
            stringify!(dwServiceFlags)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__ENUM_SERVICE_STATUSA() {
    assert_eq!(
        ::std::mem::size_of::<_ENUM_SERVICE_STATUSA>(),
        48usize,
        concat!("Size of: ", stringify!(_ENUM_SERVICE_STATUSA))
    );
    assert_eq!(
        ::std::mem::align_of::<_ENUM_SERVICE_STATUSA>(),
        8usize,
        concat!("Alignment of ", stringify!(_ENUM_SERVICE_STATUSA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENUM_SERVICE_STATUSA>())).lpServiceName as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENUM_SERVICE_STATUSA),
            "::",
            stringify!(lpServiceName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENUM_SERVICE_STATUSA>())).lpDisplayName as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENUM_SERVICE_STATUSA),
            "::",
            stringify!(lpDisplayName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENUM_SERVICE_STATUSA>())).ServiceStatus as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENUM_SERVICE_STATUSA),
            "::",
            stringify!(ServiceStatus)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__ENUM_SERVICE_STATUSW() {
    assert_eq!(
        ::std::mem::size_of::<_ENUM_SERVICE_STATUSW>(),
        48usize,
        concat!("Size of: ", stringify!(_ENUM_SERVICE_STATUSW))
    );
    assert_eq!(
        ::std::mem::align_of::<_ENUM_SERVICE_STATUSW>(),
        8usize,
        concat!("Alignment of ", stringify!(_ENUM_SERVICE_STATUSW))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENUM_SERVICE_STATUSW>())).lpServiceName as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENUM_SERVICE_STATUSW),
            "::",
            stringify!(lpServiceName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENUM_SERVICE_STATUSW>())).lpDisplayName as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENUM_SERVICE_STATUSW),
            "::",
            stringify!(lpDisplayName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENUM_SERVICE_STATUSW>())).ServiceStatus as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENUM_SERVICE_STATUSW),
            "::",
            stringify!(ServiceStatus)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__ENUM_SERVICE_STATUS_PROCESSA() {
    assert_eq!(
        ::std::mem::size_of::<_ENUM_SERVICE_STATUS_PROCESSA>(),
        56usize,
        concat!("Size of: ", stringify!(_ENUM_SERVICE_STATUS_PROCESSA))
    );
    assert_eq!(
        ::std::mem::align_of::<_ENUM_SERVICE_STATUS_PROCESSA>(),
        8usize,
        concat!("Alignment of ", stringify!(_ENUM_SERVICE_STATUS_PROCESSA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENUM_SERVICE_STATUS_PROCESSA>())).lpServiceName as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENUM_SERVICE_STATUS_PROCESSA),
            "::",
            stringify!(lpServiceName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENUM_SERVICE_STATUS_PROCESSA>())).lpDisplayName as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENUM_SERVICE_STATUS_PROCESSA),
            "::",
            stringify!(lpDisplayName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENUM_SERVICE_STATUS_PROCESSA>())).ServiceStatusProcess
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENUM_SERVICE_STATUS_PROCESSA),
            "::",
            stringify!(ServiceStatusProcess)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__ENUM_SERVICE_STATUS_PROCESSW() {
    assert_eq!(
        ::std::mem::size_of::<_ENUM_SERVICE_STATUS_PROCESSW>(),
        56usize,
        concat!("Size of: ", stringify!(_ENUM_SERVICE_STATUS_PROCESSW))
    );
    assert_eq!(
        ::std::mem::align_of::<_ENUM_SERVICE_STATUS_PROCESSW>(),
        8usize,
        concat!("Alignment of ", stringify!(_ENUM_SERVICE_STATUS_PROCESSW))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENUM_SERVICE_STATUS_PROCESSW>())).lpServiceName as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENUM_SERVICE_STATUS_PROCESSW),
            "::",
            stringify!(lpServiceName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENUM_SERVICE_STATUS_PROCESSW>())).lpDisplayName as *const _
                as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENUM_SERVICE_STATUS_PROCESSW),
            "::",
            stringify!(lpDisplayName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_ENUM_SERVICE_STATUS_PROCESSW>())).ServiceStatusProcess
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_ENUM_SERVICE_STATUS_PROCESSW),
            "::",
            stringify!(ServiceStatusProcess)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__QUERY_SERVICE_LOCK_STATUSA() {
    assert_eq!(
        ::std::mem::size_of::<_QUERY_SERVICE_LOCK_STATUSA>(),
        24usize,
        concat!("Size of: ", stringify!(_QUERY_SERVICE_LOCK_STATUSA))
    );
    assert_eq!(
        ::std::mem::align_of::<_QUERY_SERVICE_LOCK_STATUSA>(),
        8usize,
        concat!("Alignment of ", stringify!(_QUERY_SERVICE_LOCK_STATUSA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_SERVICE_LOCK_STATUSA>())).fIsLocked as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_SERVICE_LOCK_STATUSA),
            "::",
            stringify!(fIsLocked)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_SERVICE_LOCK_STATUSA>())).lpLockOwner as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_SERVICE_LOCK_STATUSA),
            "::",
            stringify!(lpLockOwner)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_SERVICE_LOCK_STATUSA>())).dwLockDuration as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_SERVICE_LOCK_STATUSA),
            "::",
            stringify!(dwLockDuration)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__QUERY_SERVICE_LOCK_STATUSW() {
    assert_eq!(
        ::std::mem::size_of::<_QUERY_SERVICE_LOCK_STATUSW>(),
        24usize,
        concat!("Size of: ", stringify!(_QUERY_SERVICE_LOCK_STATUSW))
    );
    assert_eq!(
        ::std::mem::align_of::<_QUERY_SERVICE_LOCK_STATUSW>(),
        8usize,
        concat!("Alignment of ", stringify!(_QUERY_SERVICE_LOCK_STATUSW))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_SERVICE_LOCK_STATUSW>())).fIsLocked as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_SERVICE_LOCK_STATUSW),
            "::",
            stringify!(fIsLocked)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_SERVICE_LOCK_STATUSW>())).lpLockOwner as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_SERVICE_LOCK_STATUSW),
            "::",
            stringify!(lpLockOwner)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_SERVICE_LOCK_STATUSW>())).dwLockDuration as *const _
                as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_SERVICE_LOCK_STATUSW),
            "::",
            stringify!(dwLockDuration)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__QUERY_SERVICE_CONFIGA() {
    assert_eq!(
        ::std::mem::size_of::<_QUERY_SERVICE_CONFIGA>(),
        64usize,
        concat!("Size of: ", stringify!(_QUERY_SERVICE_CONFIGA))
    );
    assert_eq!(
        ::std::mem::align_of::<_QUERY_SERVICE_CONFIGA>(),
        8usize,
        concat!("Alignment of ", stringify!(_QUERY_SERVICE_CONFIGA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_SERVICE_CONFIGA>())).dwServiceType as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_SERVICE_CONFIGA),
            "::",
            stringify!(dwServiceType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_SERVICE_CONFIGA>())).dwStartType as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_SERVICE_CONFIGA),
            "::",
            stringify!(dwStartType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_SERVICE_CONFIGA>())).dwErrorControl as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_SERVICE_CONFIGA),
            "::",
            stringify!(dwErrorControl)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_SERVICE_CONFIGA>())).lpBinaryPathName as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_SERVICE_CONFIGA),
            "::",
            stringify!(lpBinaryPathName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_SERVICE_CONFIGA>())).lpLoadOrderGroup as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_SERVICE_CONFIGA),
            "::",
            stringify!(lpLoadOrderGroup)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_QUERY_SERVICE_CONFIGA>())).dwTagId as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_SERVICE_CONFIGA),
            "::",
            stringify!(dwTagId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_SERVICE_CONFIGA>())).lpDependencies as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_SERVICE_CONFIGA),
            "::",
            stringify!(lpDependencies)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_SERVICE_CONFIGA>())).lpServiceStartName as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_SERVICE_CONFIGA),
            "::",
            stringify!(lpServiceStartName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_SERVICE_CONFIGA>())).lpDisplayName as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_SERVICE_CONFIGA),
            "::",
            stringify!(lpDisplayName)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__QUERY_SERVICE_CONFIGW() {
    assert_eq!(
        ::std::mem::size_of::<_QUERY_SERVICE_CONFIGW>(),
        64usize,
        concat!("Size of: ", stringify!(_QUERY_SERVICE_CONFIGW))
    );
    assert_eq!(
        ::std::mem::align_of::<_QUERY_SERVICE_CONFIGW>(),
        8usize,
        concat!("Alignment of ", stringify!(_QUERY_SERVICE_CONFIGW))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_SERVICE_CONFIGW>())).dwServiceType as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_SERVICE_CONFIGW),
            "::",
            stringify!(dwServiceType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_SERVICE_CONFIGW>())).dwStartType as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_SERVICE_CONFIGW),
            "::",
            stringify!(dwStartType)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_SERVICE_CONFIGW>())).dwErrorControl as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_SERVICE_CONFIGW),
            "::",
            stringify!(dwErrorControl)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_SERVICE_CONFIGW>())).lpBinaryPathName as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_SERVICE_CONFIGW),
            "::",
            stringify!(lpBinaryPathName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_SERVICE_CONFIGW>())).lpLoadOrderGroup as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_SERVICE_CONFIGW),
            "::",
            stringify!(lpLoadOrderGroup)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_QUERY_SERVICE_CONFIGW>())).dwTagId as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_SERVICE_CONFIGW),
            "::",
            stringify!(dwTagId)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_SERVICE_CONFIGW>())).lpDependencies as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_SERVICE_CONFIGW),
            "::",
            stringify!(lpDependencies)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_SERVICE_CONFIGW>())).lpServiceStartName as *const _
                as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_SERVICE_CONFIGW),
            "::",
            stringify!(lpServiceStartName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_QUERY_SERVICE_CONFIGW>())).lpDisplayName as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_QUERY_SERVICE_CONFIGW),
            "::",
            stringify!(lpDisplayName)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__SERVICE_TABLE_ENTRYA() {
    assert_eq!(
        ::std::mem::size_of::<_SERVICE_TABLE_ENTRYA>(),
        16usize,
        concat!("Size of: ", stringify!(_SERVICE_TABLE_ENTRYA))
    );
    assert_eq!(
        ::std::mem::align_of::<_SERVICE_TABLE_ENTRYA>(),
        8usize,
        concat!("Alignment of ", stringify!(_SERVICE_TABLE_ENTRYA))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_TABLE_ENTRYA>())).lpServiceName as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_TABLE_ENTRYA),
            "::",
            stringify!(lpServiceName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_TABLE_ENTRYA>())).lpServiceProc as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_TABLE_ENTRYA),
            "::",
            stringify!(lpServiceProc)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout__SERVICE_TABLE_ENTRYW() {
    assert_eq!(
        ::std::mem::size_of::<_SERVICE_TABLE_ENTRYW>(),
        16usize,
        concat!("Size of: ", stringify!(_SERVICE_TABLE_ENTRYW))
    );
    assert_eq!(
        ::std::mem::align_of::<_SERVICE_TABLE_ENTRYW>(),
        8usize,
        concat!("Alignment of ", stringify!(_SERVICE_TABLE_ENTRYW))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_TABLE_ENTRYW>())).lpServiceName as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_TABLE_ENTRYW),
            "::",
            stringify!(lpServiceName)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_TABLE_ENTRYW>())).lpServiceProc as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_TABLE_ENTRYW),
            "::",
            stringify!(lpServiceProc)
        )
    );
}
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,
>;
pub type PFN_SC_NOTIFY_CALLBACK = ::std::option::Option<unsafe extern "C" fn(pParameter: PVOID)>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SERVICE_NOTIFY_1 {
    pub dwVersion: DWORD,
    pub pfnNotifyCallback: PFN_SC_NOTIFY_CALLBACK,
    pub pContext: PVOID,
    pub dwNotificationStatus: DWORD,
    pub ServiceStatus: SERVICE_STATUS_PROCESS,
}
#[test]
fn bindgen_test_layout__SERVICE_NOTIFY_1() {
    assert_eq!(
        ::std::mem::size_of::<_SERVICE_NOTIFY_1>(),
        64usize,
        concat!("Size of: ", stringify!(_SERVICE_NOTIFY_1))
    );
    assert_eq!(
        ::std::mem::align_of::<_SERVICE_NOTIFY_1>(),
        8usize,
        concat!("Alignment of ", stringify!(_SERVICE_NOTIFY_1))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SERVICE_NOTIFY_1>())).dwVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_NOTIFY_1),
            "::",
            stringify!(dwVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_NOTIFY_1>())).pfnNotifyCallback as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_NOTIFY_1),
            "::",
            stringify!(pfnNotifyCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SERVICE_NOTIFY_1>())).pContext as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_NOTIFY_1),
            "::",
            stringify!(pContext)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_NOTIFY_1>())).dwNotificationStatus as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_NOTIFY_1),
            "::",
            stringify!(dwNotificationStatus)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SERVICE_NOTIFY_1>())).ServiceStatus as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_NOTIFY_1),
            "::",
            stringify!(ServiceStatus)
        )
    );
}
pub type SERVICE_NOTIFY_1 = _SERVICE_NOTIFY_1;
pub type PSERVICE_NOTIFY_1 = *mut _SERVICE_NOTIFY_1;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SERVICE_NOTIFY_2A {
    pub dwVersion: DWORD,
    pub pfnNotifyCallback: PFN_SC_NOTIFY_CALLBACK,
    pub pContext: PVOID,
    pub dwNotificationStatus: DWORD,
    pub ServiceStatus: SERVICE_STATUS_PROCESS,
    pub dwNotificationTriggered: DWORD,
    pub pszServiceNames: LPSTR,
}
#[test]
fn bindgen_test_layout__SERVICE_NOTIFY_2A() {
    assert_eq!(
        ::std::mem::size_of::<_SERVICE_NOTIFY_2A>(),
        80usize,
        concat!("Size of: ", stringify!(_SERVICE_NOTIFY_2A))
    );
    assert_eq!(
        ::std::mem::align_of::<_SERVICE_NOTIFY_2A>(),
        8usize,
        concat!("Alignment of ", stringify!(_SERVICE_NOTIFY_2A))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SERVICE_NOTIFY_2A>())).dwVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_NOTIFY_2A),
            "::",
            stringify!(dwVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_NOTIFY_2A>())).pfnNotifyCallback as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_NOTIFY_2A),
            "::",
            stringify!(pfnNotifyCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SERVICE_NOTIFY_2A>())).pContext as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_NOTIFY_2A),
            "::",
            stringify!(pContext)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_NOTIFY_2A>())).dwNotificationStatus as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_NOTIFY_2A),
            "::",
            stringify!(dwNotificationStatus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_NOTIFY_2A>())).ServiceStatus as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_NOTIFY_2A),
            "::",
            stringify!(ServiceStatus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_NOTIFY_2A>())).dwNotificationTriggered as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_NOTIFY_2A),
            "::",
            stringify!(dwNotificationTriggered)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_NOTIFY_2A>())).pszServiceNames as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_NOTIFY_2A),
            "::",
            stringify!(pszServiceNames)
        )
    );
}
pub type SERVICE_NOTIFY_2A = _SERVICE_NOTIFY_2A;
pub type PSERVICE_NOTIFY_2A = *mut _SERVICE_NOTIFY_2A;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SERVICE_NOTIFY_2W {
    pub dwVersion: DWORD,
    pub pfnNotifyCallback: PFN_SC_NOTIFY_CALLBACK,
    pub pContext: PVOID,
    pub dwNotificationStatus: DWORD,
    pub ServiceStatus: SERVICE_STATUS_PROCESS,
    pub dwNotificationTriggered: DWORD,
    pub pszServiceNames: LPWSTR,
}
#[test]
fn bindgen_test_layout__SERVICE_NOTIFY_2W() {
    assert_eq!(
        ::std::mem::size_of::<_SERVICE_NOTIFY_2W>(),
        80usize,
        concat!("Size of: ", stringify!(_SERVICE_NOTIFY_2W))
    );
    assert_eq!(
        ::std::mem::align_of::<_SERVICE_NOTIFY_2W>(),
        8usize,
        concat!("Alignment of ", stringify!(_SERVICE_NOTIFY_2W))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SERVICE_NOTIFY_2W>())).dwVersion as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_NOTIFY_2W),
            "::",
            stringify!(dwVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_NOTIFY_2W>())).pfnNotifyCallback as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_NOTIFY_2W),
            "::",
            stringify!(pfnNotifyCallback)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SERVICE_NOTIFY_2W>())).pContext as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_NOTIFY_2W),
            "::",
            stringify!(pContext)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_NOTIFY_2W>())).dwNotificationStatus as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_NOTIFY_2W),
            "::",
            stringify!(dwNotificationStatus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_NOTIFY_2W>())).ServiceStatus as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_NOTIFY_2W),
            "::",
            stringify!(ServiceStatus)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_NOTIFY_2W>())).dwNotificationTriggered as *const _
                as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_NOTIFY_2W),
            "::",
            stringify!(dwNotificationTriggered)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_NOTIFY_2W>())).pszServiceNames as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_NOTIFY_2W),
            "::",
            stringify!(pszServiceNames)
        )
    );
}
pub type SERVICE_NOTIFY_2W = _SERVICE_NOTIFY_2W;
pub type PSERVICE_NOTIFY_2W = *mut _SERVICE_NOTIFY_2W;
pub type SERVICE_NOTIFY_2 = SERVICE_NOTIFY_2A;
pub type PSERVICE_NOTIFY_2 = PSERVICE_NOTIFY_2A;
pub type SERVICE_NOTIFYA = SERVICE_NOTIFY_2A;
pub type PSERVICE_NOTIFYA = *mut SERVICE_NOTIFY_2A;
pub type SERVICE_NOTIFYW = SERVICE_NOTIFY_2W;
pub type PSERVICE_NOTIFYW = *mut SERVICE_NOTIFY_2W;
pub type SERVICE_NOTIFY = SERVICE_NOTIFYA;
pub type PSERVICE_NOTIFY = PSERVICE_NOTIFYA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SERVICE_CONTROL_STATUS_REASON_PARAMSA {
    pub dwReason: DWORD,
    pub pszComment: LPSTR,
    pub ServiceStatus: SERVICE_STATUS_PROCESS,
}
#[test]
fn bindgen_test_layout__SERVICE_CONTROL_STATUS_REASON_PARAMSA() {
    assert_eq!(
        ::std::mem::size_of::<_SERVICE_CONTROL_STATUS_REASON_PARAMSA>(),
        56usize,
        concat!(
            "Size of: ",
            stringify!(_SERVICE_CONTROL_STATUS_REASON_PARAMSA)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_SERVICE_CONTROL_STATUS_REASON_PARAMSA>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_SERVICE_CONTROL_STATUS_REASON_PARAMSA)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_CONTROL_STATUS_REASON_PARAMSA>())).dwReason as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_CONTROL_STATUS_REASON_PARAMSA),
            "::",
            stringify!(dwReason)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_CONTROL_STATUS_REASON_PARAMSA>())).pszComment
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_CONTROL_STATUS_REASON_PARAMSA),
            "::",
            stringify!(pszComment)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_CONTROL_STATUS_REASON_PARAMSA>())).ServiceStatus
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_CONTROL_STATUS_REASON_PARAMSA),
            "::",
            stringify!(ServiceStatus)
        )
    );
}
pub type SERVICE_CONTROL_STATUS_REASON_PARAMSA = _SERVICE_CONTROL_STATUS_REASON_PARAMSA;
pub type PSERVICE_CONTROL_STATUS_REASON_PARAMSA = *mut _SERVICE_CONTROL_STATUS_REASON_PARAMSA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SERVICE_CONTROL_STATUS_REASON_PARAMSW {
    pub dwReason: DWORD,
    pub pszComment: LPWSTR,
    pub ServiceStatus: SERVICE_STATUS_PROCESS,
}
#[test]
fn bindgen_test_layout__SERVICE_CONTROL_STATUS_REASON_PARAMSW() {
    assert_eq!(
        ::std::mem::size_of::<_SERVICE_CONTROL_STATUS_REASON_PARAMSW>(),
        56usize,
        concat!(
            "Size of: ",
            stringify!(_SERVICE_CONTROL_STATUS_REASON_PARAMSW)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<_SERVICE_CONTROL_STATUS_REASON_PARAMSW>(),
        8usize,
        concat!(
            "Alignment of ",
            stringify!(_SERVICE_CONTROL_STATUS_REASON_PARAMSW)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_CONTROL_STATUS_REASON_PARAMSW>())).dwReason as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_CONTROL_STATUS_REASON_PARAMSW),
            "::",
            stringify!(dwReason)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_CONTROL_STATUS_REASON_PARAMSW>())).pszComment
                as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_CONTROL_STATUS_REASON_PARAMSW),
            "::",
            stringify!(pszComment)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_SERVICE_CONTROL_STATUS_REASON_PARAMSW>())).ServiceStatus
                as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_CONTROL_STATUS_REASON_PARAMSW),
            "::",
            stringify!(ServiceStatus)
        )
    );
}
pub type SERVICE_CONTROL_STATUS_REASON_PARAMSW = _SERVICE_CONTROL_STATUS_REASON_PARAMSW;
pub type PSERVICE_CONTROL_STATUS_REASON_PARAMSW = *mut _SERVICE_CONTROL_STATUS_REASON_PARAMSW;
pub type SERVICE_CONTROL_STATUS_REASON_PARAMS = SERVICE_CONTROL_STATUS_REASON_PARAMSA;
pub type PSERVICE_CONTROL_STATUS_REASON_PARAMS = PSERVICE_CONTROL_STATUS_REASON_PARAMSA;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SERVICE_START_REASON {
    pub dwReason: DWORD,
}
#[test]
fn bindgen_test_layout__SERVICE_START_REASON() {
    assert_eq!(
        ::std::mem::size_of::<_SERVICE_START_REASON>(),
        4usize,
        concat!("Size of: ", stringify!(_SERVICE_START_REASON))
    );
    assert_eq!(
        ::std::mem::align_of::<_SERVICE_START_REASON>(),
        4usize,
        concat!("Alignment of ", stringify!(_SERVICE_START_REASON))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_SERVICE_START_REASON>())).dwReason as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_SERVICE_START_REASON),
            "::",
            stringify!(dwReason)
        )
    );
}
pub type SERVICE_START_REASON = _SERVICE_START_REASON;
pub type PSERVICE_START_REASON = *mut _SERVICE_START_REASON;
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,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn ChangeServiceConfig2A(hService: SC_HANDLE, dwInfoLevel: DWORD, lpInfo: LPVOID) -> BOOL;
}
extern "C" {
    pub fn ChangeServiceConfig2W(hService: SC_HANDLE, dwInfoLevel: DWORD, lpInfo: LPVOID) -> BOOL;
}
extern "C" {
    pub fn CloseServiceHandle(hSCObject: SC_HANDLE) -> BOOL;
}
extern "C" {
    pub fn ControlService(
        hService: SC_HANDLE,
        dwControl: DWORD,
        lpServiceStatus: LPSERVICE_STATUS,
    ) -> BOOL;
}
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) -> BOOL;
}
extern "C" {
    pub fn EnumDependentServicesA(
        hService: SC_HANDLE,
        dwServiceState: DWORD,
        lpServices: LPENUM_SERVICE_STATUSA,
        cbBufSize: DWORD,
        pcbBytesNeeded: LPDWORD,
        lpServicesReturned: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumDependentServicesW(
        hService: SC_HANDLE,
        dwServiceState: DWORD,
        lpServices: LPENUM_SERVICE_STATUSW,
        cbBufSize: DWORD,
        pcbBytesNeeded: LPDWORD,
        lpServicesReturned: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumServicesStatusA(
        hSCManager: SC_HANDLE,
        dwServiceType: DWORD,
        dwServiceState: DWORD,
        lpServices: LPENUM_SERVICE_STATUSA,
        cbBufSize: DWORD,
        pcbBytesNeeded: LPDWORD,
        lpServicesReturned: LPDWORD,
        lpResumeHandle: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn EnumServicesStatusW(
        hSCManager: SC_HANDLE,
        dwServiceType: DWORD,
        dwServiceState: DWORD,
        lpServices: LPENUM_SERVICE_STATUSW,
        cbBufSize: DWORD,
        pcbBytesNeeded: LPDWORD,
        lpServicesReturned: LPDWORD,
        lpResumeHandle: LPDWORD,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn GetServiceKeyNameA(
        hSCManager: SC_HANDLE,
        lpDisplayName: LPCSTR,
        lpServiceName: LPSTR,
        lpcchBuffer: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetServiceKeyNameW(
        hSCManager: SC_HANDLE,
        lpDisplayName: LPCWSTR,
        lpServiceName: LPWSTR,
        lpcchBuffer: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetServiceDisplayNameA(
        hSCManager: SC_HANDLE,
        lpServiceName: LPCSTR,
        lpDisplayName: LPSTR,
        lpcchBuffer: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn GetServiceDisplayNameW(
        hSCManager: SC_HANDLE,
        lpServiceName: LPCWSTR,
        lpDisplayName: LPWSTR,
        lpcchBuffer: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn LockServiceDatabase(hSCManager: SC_HANDLE) -> SC_LOCK;
}
extern "C" {
    pub fn NotifyBootConfigStatus(BootAcceptable: BOOL) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn QueryServiceConfigW(
        hService: SC_HANDLE,
        lpServiceConfig: LPQUERY_SERVICE_CONFIGW,
        cbBufSize: DWORD,
        pcbBytesNeeded: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn QueryServiceConfig2A(
        hService: SC_HANDLE,
        dwInfoLevel: DWORD,
        lpBuffer: LPBYTE,
        cbBufSize: DWORD,
        pcbBytesNeeded: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn QueryServiceConfig2W(
        hService: SC_HANDLE,
        dwInfoLevel: DWORD,
        lpBuffer: LPBYTE,
        cbBufSize: DWORD,
        pcbBytesNeeded: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn QueryServiceLockStatusA(
        hSCManager: SC_HANDLE,
        lpLockStatus: LPQUERY_SERVICE_LOCK_STATUSA,
        cbBufSize: DWORD,
        pcbBytesNeeded: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn QueryServiceLockStatusW(
        hSCManager: SC_HANDLE,
        lpLockStatus: LPQUERY_SERVICE_LOCK_STATUSW,
        cbBufSize: DWORD,
        pcbBytesNeeded: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn QueryServiceObjectSecurity(
        hService: SC_HANDLE,
        dwSecurityInformation: SECURITY_INFORMATION,
        lpSecurityDescriptor: PSECURITY_DESCRIPTOR,
        cbBufSize: DWORD,
        pcbBytesNeeded: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn QueryServiceStatus(hService: SC_HANDLE, lpServiceStatus: LPSERVICE_STATUS) -> BOOL;
}
extern "C" {
    pub fn QueryServiceStatusEx(
        hService: SC_HANDLE,
        InfoLevel: SC_STATUS_TYPE,
        lpBuffer: LPBYTE,
        cbBufSize: DWORD,
        pcbBytesNeeded: LPDWORD,
    ) -> BOOL;
}
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,
    ) -> BOOL;
}
extern "C" {
    pub fn SetServiceStatus(
        hServiceStatus: SERVICE_STATUS_HANDLE,
        lpServiceStatus: LPSERVICE_STATUS,
    ) -> BOOL;
}
extern "C" {
    pub fn StartServiceCtrlDispatcherA(lpServiceStartTable: *const SERVICE_TABLE_ENTRYA) -> BOOL;
}
extern "C" {
    pub fn StartServiceCtrlDispatcherW(lpServiceStartTable: *const SERVICE_TABLE_ENTRYW) -> BOOL;
}
extern "C" {
    pub fn StartServiceA(
        hService: SC_HANDLE,
        dwNumServiceArgs: DWORD,
        lpServiceArgVectors: *mut LPCSTR,
    ) -> BOOL;
}
extern "C" {
    pub fn StartServiceW(
        hService: SC_HANDLE,
        dwNumServiceArgs: DWORD,
        lpServiceArgVectors: *mut LPCWSTR,
    ) -> BOOL;
}
extern "C" {
    pub fn UnlockServiceDatabase(ScLock: SC_LOCK) -> BOOL;
}
extern "C" {
    pub fn NotifyServiceStatusChangeA(
        hService: SC_HANDLE,
        dwNotifyMask: DWORD,
        pNotifyBuffer: PSERVICE_NOTIFYA,
    ) -> DWORD;
}
extern "C" {
    pub fn NotifyServiceStatusChangeW(
        hService: SC_HANDLE,
        dwNotifyMask: DWORD,
        pNotifyBuffer: PSERVICE_NOTIFYW,
    ) -> DWORD;
}
extern "C" {
    pub fn ControlServiceExA(
        hService: SC_HANDLE,
        dwControl: DWORD,
        dwInfoLevel: DWORD,
        pControlParams: PVOID,
    ) -> BOOL;
}
extern "C" {
    pub fn ControlServiceExW(
        hService: SC_HANDLE,
        dwControl: DWORD,
        dwInfoLevel: DWORD,
        pControlParams: PVOID,
    ) -> BOOL;
}
extern "C" {
    pub fn QueryServiceDynamicInformation(
        hServiceStatus: SERVICE_STATUS_HANDLE,
        dwInfoLevel: DWORD,
        ppDynamicInfo: *mut PVOID,
    ) -> BOOL;
}
pub const _SC_EVENT_TYPE_SC_EVENT_DATABASE_CHANGE: _SC_EVENT_TYPE = 0;
pub const _SC_EVENT_TYPE_SC_EVENT_PROPERTY_CHANGE: _SC_EVENT_TYPE = 1;
pub const _SC_EVENT_TYPE_SC_EVENT_STATUS_CHANGE: _SC_EVENT_TYPE = 2;
pub type _SC_EVENT_TYPE = ::std::os::raw::c_int;
pub use self::_SC_EVENT_TYPE as SC_EVENT_TYPE;
pub type PSC_EVENT_TYPE = *mut _SC_EVENT_TYPE;
pub type PSC_NOTIFICATION_CALLBACK =
    ::std::option::Option<unsafe extern "C" fn(arg1: DWORD, arg2: PVOID)>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _SC_NOTIFICATION_REGISTRATION {
    _unused: [u8; 0],
}
pub type PSC_NOTIFICATION_REGISTRATION = *mut _SC_NOTIFICATION_REGISTRATION;
extern "C" {
    pub fn SubscribeServiceChangeNotifications(
        hService: SC_HANDLE,
        eEventType: SC_EVENT_TYPE,
        pCallback: PSC_NOTIFICATION_CALLBACK,
        pCallbackContext: PVOID,
        pSubscription: *mut PSC_NOTIFICATION_REGISTRATION,
    ) -> DWORD;
}
extern "C" {
    pub fn UnsubscribeServiceChangeNotifications(pSubscription: PSC_NOTIFICATION_REGISTRATION);
}
extern "C" {
    pub fn WaitServiceState(
        hService: SC_HANDLE,
        dwNotify: DWORD,
        dwTimeout: DWORD,
        hCancelEvent: HANDLE,
    ) -> DWORD;
}
pub const SERVICE_REGISTRY_STATE_TYPE_ServiceRegistryStateParameters: SERVICE_REGISTRY_STATE_TYPE =
    0;
pub const SERVICE_REGISTRY_STATE_TYPE_ServiceRegistryStatePersistent: SERVICE_REGISTRY_STATE_TYPE =
    1;
pub const SERVICE_REGISTRY_STATE_TYPE_MaxServiceRegistryStateType: SERVICE_REGISTRY_STATE_TYPE = 2;
pub type SERVICE_REGISTRY_STATE_TYPE = ::std::os::raw::c_int;
extern "C" {
    pub fn GetServiceRegistryStateKey(
        ServiceStatusHandle: SERVICE_STATUS_HANDLE,
        StateType: SERVICE_REGISTRY_STATE_TYPE,
        AccessMask: DWORD,
        ServiceStateKey: *mut HKEY,
    ) -> DWORD;
}
pub const SERVICE_DIRECTORY_TYPE_ServiceDirectoryPersistentState: SERVICE_DIRECTORY_TYPE = 0;
pub const SERVICE_DIRECTORY_TYPE_ServiceDirectoryTypeMax: SERVICE_DIRECTORY_TYPE = 1;
pub type SERVICE_DIRECTORY_TYPE = ::std::os::raw::c_int;
extern "C" {
    pub fn GetServiceDirectory(
        hServiceStatus: SERVICE_STATUS_HANDLE,
        eDirectoryType: SERVICE_DIRECTORY_TYPE,
        lpPathBuffer: PWCHAR,
        cchPathBufferLength: DWORD,
        lpcchRequiredBufferLength: *mut DWORD,
    ) -> DWORD;
}
#[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],
}
#[test]
fn bindgen_test_layout__MODEMDEVCAPS() {
    assert_eq!(
        ::std::mem::size_of::<_MODEMDEVCAPS>(),
        80usize,
        concat!("Size of: ", stringify!(_MODEMDEVCAPS))
    );
    assert_eq!(
        ::std::mem::align_of::<_MODEMDEVCAPS>(),
        4usize,
        concat!("Alignment of ", stringify!(_MODEMDEVCAPS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MODEMDEVCAPS>())).dwActualSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MODEMDEVCAPS),
            "::",
            stringify!(dwActualSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MODEMDEVCAPS>())).dwRequiredSize as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_MODEMDEVCAPS),
            "::",
            stringify!(dwRequiredSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MODEMDEVCAPS>())).dwDevSpecificOffset as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_MODEMDEVCAPS),
            "::",
            stringify!(dwDevSpecificOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MODEMDEVCAPS>())).dwDevSpecificSize as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_MODEMDEVCAPS),
            "::",
            stringify!(dwDevSpecificSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MODEMDEVCAPS>())).dwModemProviderVersion as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_MODEMDEVCAPS),
            "::",
            stringify!(dwModemProviderVersion)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MODEMDEVCAPS>())).dwModemManufacturerOffset as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_MODEMDEVCAPS),
            "::",
            stringify!(dwModemManufacturerOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MODEMDEVCAPS>())).dwModemManufacturerSize as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_MODEMDEVCAPS),
            "::",
            stringify!(dwModemManufacturerSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MODEMDEVCAPS>())).dwModemModelOffset as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_MODEMDEVCAPS),
            "::",
            stringify!(dwModemModelOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MODEMDEVCAPS>())).dwModemModelSize as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_MODEMDEVCAPS),
            "::",
            stringify!(dwModemModelSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MODEMDEVCAPS>())).dwModemVersionOffset as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_MODEMDEVCAPS),
            "::",
            stringify!(dwModemVersionOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MODEMDEVCAPS>())).dwModemVersionSize as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_MODEMDEVCAPS),
            "::",
            stringify!(dwModemVersionSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MODEMDEVCAPS>())).dwDialOptions as *const _ as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_MODEMDEVCAPS),
            "::",
            stringify!(dwDialOptions)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MODEMDEVCAPS>())).dwCallSetupFailTimer as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_MODEMDEVCAPS),
            "::",
            stringify!(dwCallSetupFailTimer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MODEMDEVCAPS>())).dwInactivityTimeout as *const _ as usize
        },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(_MODEMDEVCAPS),
            "::",
            stringify!(dwInactivityTimeout)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MODEMDEVCAPS>())).dwSpeakerVolume as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_MODEMDEVCAPS),
            "::",
            stringify!(dwSpeakerVolume)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MODEMDEVCAPS>())).dwSpeakerMode as *const _ as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(_MODEMDEVCAPS),
            "::",
            stringify!(dwSpeakerMode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MODEMDEVCAPS>())).dwModemOptions as *const _ as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_MODEMDEVCAPS),
            "::",
            stringify!(dwModemOptions)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MODEMDEVCAPS>())).dwMaxDTERate as *const _ as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(_MODEMDEVCAPS),
            "::",
            stringify!(dwMaxDTERate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MODEMDEVCAPS>())).dwMaxDCERate as *const _ as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_MODEMDEVCAPS),
            "::",
            stringify!(dwMaxDCERate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MODEMDEVCAPS>())).abVariablePortion as *const _ as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(_MODEMDEVCAPS),
            "::",
            stringify!(abVariablePortion)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout__MODEMSETTINGS() {
    assert_eq!(
        ::std::mem::size_of::<_MODEMSETTINGS>(),
        48usize,
        concat!("Size of: ", stringify!(_MODEMSETTINGS))
    );
    assert_eq!(
        ::std::mem::align_of::<_MODEMSETTINGS>(),
        4usize,
        concat!("Alignment of ", stringify!(_MODEMSETTINGS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MODEMSETTINGS>())).dwActualSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_MODEMSETTINGS),
            "::",
            stringify!(dwActualSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MODEMSETTINGS>())).dwRequiredSize as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(_MODEMSETTINGS),
            "::",
            stringify!(dwRequiredSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MODEMSETTINGS>())).dwDevSpecificOffset as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_MODEMSETTINGS),
            "::",
            stringify!(dwDevSpecificOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MODEMSETTINGS>())).dwDevSpecificSize as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(_MODEMSETTINGS),
            "::",
            stringify!(dwDevSpecificSize)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MODEMSETTINGS>())).dwCallSetupFailTimer as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_MODEMSETTINGS),
            "::",
            stringify!(dwCallSetupFailTimer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MODEMSETTINGS>())).dwInactivityTimeout as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(_MODEMSETTINGS),
            "::",
            stringify!(dwInactivityTimeout)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MODEMSETTINGS>())).dwSpeakerVolume as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_MODEMSETTINGS),
            "::",
            stringify!(dwSpeakerVolume)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<_MODEMSETTINGS>())).dwSpeakerMode as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(_MODEMSETTINGS),
            "::",
            stringify!(dwSpeakerMode)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MODEMSETTINGS>())).dwPreferredModemOptions as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_MODEMSETTINGS),
            "::",
            stringify!(dwPreferredModemOptions)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MODEMSETTINGS>())).dwNegotiatedModemOptions as *const _ as usize
        },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(_MODEMSETTINGS),
            "::",
            stringify!(dwNegotiatedModemOptions)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MODEMSETTINGS>())).dwNegotiatedDCERate as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_MODEMSETTINGS),
            "::",
            stringify!(dwNegotiatedDCERate)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<_MODEMSETTINGS>())).abVariablePortion as *const _ as usize
        },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(_MODEMSETTINGS),
            "::",
            stringify!(abVariablePortion)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_HIMC__() {
    assert_eq!(
        ::std::mem::size_of::<HIMC__>(),
        4usize,
        concat!("Size of: ", stringify!(HIMC__))
    );
    assert_eq!(
        ::std::mem::align_of::<HIMC__>(),
        4usize,
        concat!("Alignment of ", stringify!(HIMC__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HIMC__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HIMC__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HIMC = *mut HIMC__;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct HIMCC__ {
    pub unused: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_HIMCC__() {
    assert_eq!(
        ::std::mem::size_of::<HIMCC__>(),
        4usize,
        concat!("Size of: ", stringify!(HIMCC__))
    );
    assert_eq!(
        ::std::mem::align_of::<HIMCC__>(),
        4usize,
        concat!("Alignment of ", stringify!(HIMCC__))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<HIMCC__>())).unused as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(HIMCC__),
            "::",
            stringify!(unused)
        )
    );
}
pub type HIMCC = *mut HIMCC__;
pub type LPHKL = *mut HKL;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagCOMPOSITIONFORM {
    pub dwStyle: DWORD,
    pub ptCurrentPos: POINT,
    pub rcArea: RECT,
}
#[test]
fn bindgen_test_layout_tagCOMPOSITIONFORM() {
    assert_eq!(
        ::std::mem::size_of::<tagCOMPOSITIONFORM>(),
        28usize,
        concat!("Size of: ", stringify!(tagCOMPOSITIONFORM))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCOMPOSITIONFORM>(),
        4usize,
        concat!("Alignment of ", stringify!(tagCOMPOSITIONFORM))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOMPOSITIONFORM>())).dwStyle as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOMPOSITIONFORM),
            "::",
            stringify!(dwStyle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOMPOSITIONFORM>())).ptCurrentPos as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOMPOSITIONFORM),
            "::",
            stringify!(ptCurrentPos)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCOMPOSITIONFORM>())).rcArea as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCOMPOSITIONFORM),
            "::",
            stringify!(rcArea)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagCANDIDATEFORM() {
    assert_eq!(
        ::std::mem::size_of::<tagCANDIDATEFORM>(),
        32usize,
        concat!("Size of: ", stringify!(tagCANDIDATEFORM))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCANDIDATEFORM>(),
        4usize,
        concat!("Alignment of ", stringify!(tagCANDIDATEFORM))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCANDIDATEFORM>())).dwIndex as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCANDIDATEFORM),
            "::",
            stringify!(dwIndex)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCANDIDATEFORM>())).dwStyle as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCANDIDATEFORM),
            "::",
            stringify!(dwStyle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCANDIDATEFORM>())).ptCurrentPos as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCANDIDATEFORM),
            "::",
            stringify!(ptCurrentPos)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCANDIDATEFORM>())).rcArea as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCANDIDATEFORM),
            "::",
            stringify!(rcArea)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagCANDIDATELIST() {
    assert_eq!(
        ::std::mem::size_of::<tagCANDIDATELIST>(),
        28usize,
        concat!("Size of: ", stringify!(tagCANDIDATELIST))
    );
    assert_eq!(
        ::std::mem::align_of::<tagCANDIDATELIST>(),
        4usize,
        concat!("Alignment of ", stringify!(tagCANDIDATELIST))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCANDIDATELIST>())).dwSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCANDIDATELIST),
            "::",
            stringify!(dwSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCANDIDATELIST>())).dwStyle as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCANDIDATELIST),
            "::",
            stringify!(dwStyle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCANDIDATELIST>())).dwCount as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCANDIDATELIST),
            "::",
            stringify!(dwCount)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCANDIDATELIST>())).dwSelection as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCANDIDATELIST),
            "::",
            stringify!(dwSelection)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCANDIDATELIST>())).dwPageStart as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCANDIDATELIST),
            "::",
            stringify!(dwPageStart)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCANDIDATELIST>())).dwPageSize as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCANDIDATELIST),
            "::",
            stringify!(dwPageSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagCANDIDATELIST>())).dwOffset as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagCANDIDATELIST),
            "::",
            stringify!(dwOffset)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagREGISTERWORDA() {
    assert_eq!(
        ::std::mem::size_of::<tagREGISTERWORDA>(),
        16usize,
        concat!("Size of: ", stringify!(tagREGISTERWORDA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagREGISTERWORDA>(),
        8usize,
        concat!("Alignment of ", stringify!(tagREGISTERWORDA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagREGISTERWORDA>())).lpReading as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagREGISTERWORDA),
            "::",
            stringify!(lpReading)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagREGISTERWORDA>())).lpWord as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagREGISTERWORDA),
            "::",
            stringify!(lpWord)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagREGISTERWORDW() {
    assert_eq!(
        ::std::mem::size_of::<tagREGISTERWORDW>(),
        16usize,
        concat!("Size of: ", stringify!(tagREGISTERWORDW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagREGISTERWORDW>(),
        8usize,
        concat!("Alignment of ", stringify!(tagREGISTERWORDW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagREGISTERWORDW>())).lpReading as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagREGISTERWORDW),
            "::",
            stringify!(lpReading)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagREGISTERWORDW>())).lpWord as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagREGISTERWORDW),
            "::",
            stringify!(lpWord)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagRECONVERTSTRING() {
    assert_eq!(
        ::std::mem::size_of::<tagRECONVERTSTRING>(),
        32usize,
        concat!("Size of: ", stringify!(tagRECONVERTSTRING))
    );
    assert_eq!(
        ::std::mem::align_of::<tagRECONVERTSTRING>(),
        4usize,
        concat!("Alignment of ", stringify!(tagRECONVERTSTRING))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRECONVERTSTRING>())).dwSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRECONVERTSTRING),
            "::",
            stringify!(dwSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRECONVERTSTRING>())).dwVersion as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRECONVERTSTRING),
            "::",
            stringify!(dwVersion)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRECONVERTSTRING>())).dwStrLen as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRECONVERTSTRING),
            "::",
            stringify!(dwStrLen)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRECONVERTSTRING>())).dwStrOffset as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRECONVERTSTRING),
            "::",
            stringify!(dwStrOffset)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagRECONVERTSTRING>())).dwCompStrLen as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRECONVERTSTRING),
            "::",
            stringify!(dwCompStrLen)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRECONVERTSTRING>())).dwCompStrOffset as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRECONVERTSTRING),
            "::",
            stringify!(dwCompStrOffset)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRECONVERTSTRING>())).dwTargetStrLen as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRECONVERTSTRING),
            "::",
            stringify!(dwTargetStrLen)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagRECONVERTSTRING>())).dwTargetStrOffset as *const _ as usize
        },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(tagRECONVERTSTRING),
            "::",
            stringify!(dwTargetStrOffset)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagSTYLEBUFA() {
    assert_eq!(
        ::std::mem::size_of::<tagSTYLEBUFA>(),
        36usize,
        concat!("Size of: ", stringify!(tagSTYLEBUFA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagSTYLEBUFA>(),
        4usize,
        concat!("Alignment of ", stringify!(tagSTYLEBUFA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTYLEBUFA>())).dwStyle as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTYLEBUFA),
            "::",
            stringify!(dwStyle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTYLEBUFA>())).szDescription as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTYLEBUFA),
            "::",
            stringify!(szDescription)
        )
    );
}
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],
}
#[test]
fn bindgen_test_layout_tagSTYLEBUFW() {
    assert_eq!(
        ::std::mem::size_of::<tagSTYLEBUFW>(),
        68usize,
        concat!("Size of: ", stringify!(tagSTYLEBUFW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagSTYLEBUFW>(),
        4usize,
        concat!("Alignment of ", stringify!(tagSTYLEBUFW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTYLEBUFW>())).dwStyle as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTYLEBUFW),
            "::",
            stringify!(dwStyle)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSTYLEBUFW>())).szDescription as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSTYLEBUFW),
            "::",
            stringify!(szDescription)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagIMEMENUITEMINFOA() {
    assert_eq!(
        ::std::mem::size_of::<tagIMEMENUITEMINFOA>(),
        128usize,
        concat!("Size of: ", stringify!(tagIMEMENUITEMINFOA))
    );
    assert_eq!(
        ::std::mem::align_of::<tagIMEMENUITEMINFOA>(),
        8usize,
        concat!("Alignment of ", stringify!(tagIMEMENUITEMINFOA))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagIMEMENUITEMINFOA>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagIMEMENUITEMINFOA),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagIMEMENUITEMINFOA>())).fType as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagIMEMENUITEMINFOA),
            "::",
            stringify!(fType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagIMEMENUITEMINFOA>())).fState as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagIMEMENUITEMINFOA),
            "::",
            stringify!(fState)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagIMEMENUITEMINFOA>())).wID as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagIMEMENUITEMINFOA),
            "::",
            stringify!(wID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagIMEMENUITEMINFOA>())).hbmpChecked as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagIMEMENUITEMINFOA),
            "::",
            stringify!(hbmpChecked)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagIMEMENUITEMINFOA>())).hbmpUnchecked as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagIMEMENUITEMINFOA),
            "::",
            stringify!(hbmpUnchecked)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagIMEMENUITEMINFOA>())).dwItemData as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagIMEMENUITEMINFOA),
            "::",
            stringify!(dwItemData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagIMEMENUITEMINFOA>())).szString as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagIMEMENUITEMINFOA),
            "::",
            stringify!(szString)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagIMEMENUITEMINFOA>())).hbmpItem as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(tagIMEMENUITEMINFOA),
            "::",
            stringify!(hbmpItem)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagIMEMENUITEMINFOW() {
    assert_eq!(
        ::std::mem::size_of::<tagIMEMENUITEMINFOW>(),
        208usize,
        concat!("Size of: ", stringify!(tagIMEMENUITEMINFOW))
    );
    assert_eq!(
        ::std::mem::align_of::<tagIMEMENUITEMINFOW>(),
        8usize,
        concat!("Alignment of ", stringify!(tagIMEMENUITEMINFOW))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagIMEMENUITEMINFOW>())).cbSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagIMEMENUITEMINFOW),
            "::",
            stringify!(cbSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagIMEMENUITEMINFOW>())).fType as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagIMEMENUITEMINFOW),
            "::",
            stringify!(fType)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagIMEMENUITEMINFOW>())).fState as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagIMEMENUITEMINFOW),
            "::",
            stringify!(fState)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagIMEMENUITEMINFOW>())).wID as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagIMEMENUITEMINFOW),
            "::",
            stringify!(wID)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagIMEMENUITEMINFOW>())).hbmpChecked as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagIMEMENUITEMINFOW),
            "::",
            stringify!(hbmpChecked)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagIMEMENUITEMINFOW>())).hbmpUnchecked as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(tagIMEMENUITEMINFOW),
            "::",
            stringify!(hbmpUnchecked)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagIMEMENUITEMINFOW>())).dwItemData as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagIMEMENUITEMINFOW),
            "::",
            stringify!(dwItemData)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagIMEMENUITEMINFOW>())).szString as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(tagIMEMENUITEMINFOW),
            "::",
            stringify!(szString)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagIMEMENUITEMINFOW>())).hbmpItem as *const _ as usize },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(tagIMEMENUITEMINFOW),
            "::",
            stringify!(hbmpItem)
        )
    );
}
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,
}
#[test]
fn bindgen_test_layout_tagIMECHARPOSITION() {
    assert_eq!(
        ::std::mem::size_of::<tagIMECHARPOSITION>(),
        36usize,
        concat!("Size of: ", stringify!(tagIMECHARPOSITION))
    );
    assert_eq!(
        ::std::mem::align_of::<tagIMECHARPOSITION>(),
        4usize,
        concat!("Alignment of ", stringify!(tagIMECHARPOSITION))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagIMECHARPOSITION>())).dwSize as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagIMECHARPOSITION),
            "::",
            stringify!(dwSize)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagIMECHARPOSITION>())).dwCharPos as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagIMECHARPOSITION),
            "::",
            stringify!(dwCharPos)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagIMECHARPOSITION>())).pt as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagIMECHARPOSITION),
            "::",
            stringify!(pt)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagIMECHARPOSITION>())).cLineHeight as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagIMECHARPOSITION),
            "::",
            stringify!(cLineHeight)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagIMECHARPOSITION>())).rcDocument as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(tagIMECHARPOSITION),
            "::",
            stringify!(rcDocument)
        )
    );
}
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) -> BOOL>;
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, lpszDescription: LPSTR, uBufLen: UINT) -> UINT;
}
extern "C" {
    pub fn ImmGetDescriptionW(arg1: HKL, lpszDescription: LPWSTR, uBufLen: UINT) -> UINT;
}
extern "C" {
    pub fn ImmGetIMEFileNameA(arg1: HKL, lpszFileName: LPSTR, uBufLen: UINT) -> UINT;
}
extern "C" {
    pub fn ImmGetIMEFileNameW(arg1: HKL, lpszFileName: LPWSTR, uBufLen: UINT) -> UINT;
}
extern "C" {
    pub fn ImmGetProperty(arg1: HKL, arg2: DWORD) -> DWORD;
}
extern "C" {
    pub fn ImmIsIME(arg1: HKL) -> BOOL;
}
extern "C" {
    pub fn ImmSimulateHotKey(arg1: HWND, arg2: DWORD) -> BOOL;
}
extern "C" {
    pub fn ImmCreateContext() -> HIMC;
}
extern "C" {
    pub fn ImmDestroyContext(arg1: HIMC) -> BOOL;
}
extern "C" {
    pub fn ImmGetContext(arg1: HWND) -> HIMC;
}
extern "C" {
    pub fn ImmReleaseContext(arg1: HWND, arg2: HIMC) -> BOOL;
}
extern "C" {
    pub fn ImmAssociateContext(arg1: HWND, arg2: HIMC) -> HIMC;
}
extern "C" {
    pub fn ImmAssociateContextEx(arg1: HWND, arg2: HIMC, arg3: DWORD) -> BOOL;
}
extern "C" {
    pub fn ImmGetCompositionStringA(
        arg1: HIMC,
        arg2: DWORD,
        lpBuf: LPVOID,
        dwBufLen: DWORD,
    ) -> LONG;
}
extern "C" {
    pub fn ImmGetCompositionStringW(
        arg1: HIMC,
        arg2: DWORD,
        lpBuf: LPVOID,
        dwBufLen: DWORD,
    ) -> LONG;
}
extern "C" {
    pub fn ImmSetCompositionStringA(
        arg1: HIMC,
        dwIndex: DWORD,
        lpComp: LPVOID,
        dwCompLen: DWORD,
        lpRead: LPVOID,
        dwReadLen: DWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn ImmSetCompositionStringW(
        arg1: HIMC,
        dwIndex: DWORD,
        lpComp: LPVOID,
        dwCompLen: DWORD,
        lpRead: LPVOID,
        dwReadLen: DWORD,
    ) -> BOOL;
}
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,
        lpCandList: LPCANDIDATELIST,
        dwBufLen: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn ImmGetCandidateListW(
        arg1: HIMC,
        deIndex: DWORD,
        lpCandList: LPCANDIDATELIST,
        dwBufLen: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn ImmGetGuideLineA(arg1: HIMC, dwIndex: DWORD, lpBuf: LPSTR, dwBufLen: DWORD) -> DWORD;
}
extern "C" {
    pub fn ImmGetGuideLineW(arg1: HIMC, dwIndex: DWORD, lpBuf: LPWSTR, dwBufLen: DWORD) -> DWORD;
}
extern "C" {
    pub fn ImmGetConversionStatus(
        arg1: HIMC,
        lpfdwConversion: LPDWORD,
        lpfdwSentence: LPDWORD,
    ) -> BOOL;
}
extern "C" {
    pub fn ImmSetConversionStatus(arg1: HIMC, arg2: DWORD, arg3: DWORD) -> BOOL;
}
extern "C" {
    pub fn ImmGetOpenStatus(arg1: HIMC) -> BOOL;
}
extern "C" {
    pub fn ImmSetOpenStatus(arg1: HIMC, arg2: BOOL) -> BOOL;
}
extern "C" {
    pub fn ImmGetCompositionFontA(arg1: HIMC, lplf: LPLOGFONTA) -> BOOL;
}
extern "C" {
    pub fn ImmGetCompositionFontW(arg1: HIMC, lplf: LPLOGFONTW) -> BOOL;
}
extern "C" {
    pub fn ImmSetCompositionFontA(arg1: HIMC, lplf: LPLOGFONTA) -> BOOL;
}
extern "C" {
    pub fn ImmSetCompositionFontW(arg1: HIMC, lplf: LPLOGFONTW) -> BOOL;
}
extern "C" {
    pub fn ImmConfigureIMEA(arg1: HKL, arg2: HWND, arg3: DWORD, arg4: LPVOID) -> BOOL;
}
extern "C" {
    pub fn ImmConfigureIMEW(arg1: HKL, arg2: HWND, arg3: DWORD, arg4: LPVOID) -> BOOL;
}
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,
        lpSrc: LPCSTR,
        lpDst: LPCANDIDATELIST,
        dwBufLen: DWORD,
        uFlag: UINT,
    ) -> DWORD;
}
extern "C" {
    pub fn ImmGetConversionListW(
        arg1: HKL,
        arg2: HIMC,
        lpSrc: LPCWSTR,
        lpDst: LPCANDIDATELIST,
        dwBufLen: DWORD,
        uFlag: UINT,
    ) -> DWORD;
}
extern "C" {
    pub fn ImmNotifyIME(arg1: HIMC, dwAction: DWORD, dwIndex: DWORD, dwValue: DWORD) -> BOOL;
}
extern "C" {
    pub fn ImmGetStatusWindowPos(arg1: HIMC, lpptPos: LPPOINT) -> BOOL;
}
extern "C" {
    pub fn ImmSetStatusWindowPos(arg1: HIMC, lpptPos: LPPOINT) -> BOOL;
}
extern "C" {
    pub fn ImmGetCompositionWindow(arg1: HIMC, lpCompForm: LPCOMPOSITIONFORM) -> BOOL;
}
extern "C" {
    pub fn ImmSetCompositionWindow(arg1: HIMC, lpCompForm: LPCOMPOSITIONFORM) -> BOOL;
}
extern "C" {
    pub fn ImmGetCandidateWindow(arg1: HIMC, arg2: DWORD, lpCandidate: LPCANDIDATEFORM) -> BOOL;
}
extern "C" {
    pub fn ImmSetCandidateWindow(arg1: HIMC, lpCandidate: LPCANDIDATEFORM) -> BOOL;
}
extern "C" {
    pub fn ImmIsUIMessageA(arg1: HWND, arg2: UINT, arg3: WPARAM, arg4: LPARAM) -> BOOL;
}
extern "C" {
    pub fn ImmIsUIMessageW(arg1: HWND, arg2: UINT, arg3: WPARAM, arg4: LPARAM) -> BOOL;
}
extern "C" {
    pub fn ImmGetVirtualKey(arg1: HWND) -> UINT;
}
pub type REGISTERWORDENUMPROCA = ::std::option::Option<
    unsafe extern "C" fn(
        lpszReading: LPCSTR,
        arg1: DWORD,
        lpszString: LPCSTR,
        arg2: LPVOID,
    ) -> ::std::os::raw::c_int,
>;
pub type REGISTERWORDENUMPROCW = ::std::option::Option<
    unsafe extern "C" fn(
        lpszReading: LPCWSTR,
        arg1: DWORD,
        lpszString: LPCWSTR,
        arg2: LPVOID,
    ) -> ::std::os::raw::c_int,
>;
extern "C" {
    pub fn ImmRegisterWordA(
        arg1: HKL,
        lpszReading: LPCSTR,
        arg2: DWORD,
        lpszRegister: LPCSTR,
    ) -> BOOL;
}
extern "C" {
    pub fn ImmRegisterWordW(
        arg1: HKL,
        lpszReading: LPCWSTR,
        arg2: DWORD,
        lpszRegister: LPCWSTR,
    ) -> BOOL;
}
extern "C" {
    pub fn ImmUnregisterWordA(
        arg1: HKL,
        lpszReading: LPCSTR,
        arg2: DWORD,
        lpszUnregister: LPCSTR,
    ) -> BOOL;
}
extern "C" {
    pub fn ImmUnregisterWordW(
        arg1: HKL,
        lpszReading: LPCWSTR,
        arg2: DWORD,
        lpszUnregister: LPCWSTR,
    ) -> BOOL;
}
extern "C" {
    pub fn ImmGetRegisterWordStyleA(arg1: HKL, nItem: UINT, lpStyleBuf: LPSTYLEBUFA) -> UINT;
}
extern "C" {
    pub fn ImmGetRegisterWordStyleW(arg1: HKL, nItem: UINT, lpStyleBuf: 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) -> BOOL;
}
extern "C" {
    pub fn ImmEnumInputContext(idThread: DWORD, lpfn: IMCENUMPROC, lParam: LPARAM) -> BOOL;
}
extern "C" {
    pub fn ImmGetImeMenuItemsA(
        arg1: HIMC,
        arg2: DWORD,
        arg3: DWORD,
        lpImeParentMenu: LPIMEMENUITEMINFOA,
        lpImeMenu: LPIMEMENUITEMINFOA,
        dwSize: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn ImmGetImeMenuItemsW(
        arg1: HIMC,
        arg2: DWORD,
        arg3: DWORD,
        lpImeParentMenu: LPIMEMENUITEMINFOW,
        lpImeMenu: LPIMEMENUITEMINFOW,
        dwSize: DWORD,
    ) -> DWORD;
}
extern "C" {
    pub fn ImmDisableTextFrameService(idThread: DWORD) -> BOOL;
}
extern "C" {
    pub fn ImmDisableLegacyIME() -> BOOL;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct sqlca {
    pub sqlcaid: [::std::os::raw::c_char; 8usize],
    pub sqlcabc: sqlint32,
    pub sqlcode: sqlint32,
    pub sqlerrml: ::std::os::raw::c_short,
    pub sqlerrmc: [::std::os::raw::c_char; 70usize],
    pub sqlerrp: [::std::os::raw::c_char; 8usize],
    pub sqlerrd: [sqlint32; 6usize],
    pub sqlwarn: [::std::os::raw::c_char; 11usize],
    pub sqlstate: [::std::os::raw::c_char; 5usize],
}
#[test]
fn bindgen_test_layout_sqlca() {
    assert_eq!(
        ::std::mem::size_of::<sqlca>(),
        136usize,
        concat!("Size of: ", stringify!(sqlca))
    );
    assert_eq!(
        ::std::mem::align_of::<sqlca>(),
        4usize,
        concat!("Alignment of ", stringify!(sqlca))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sqlca>())).sqlcaid as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlca),
            "::",
            stringify!(sqlcaid)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sqlca>())).sqlcabc as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlca),
            "::",
            stringify!(sqlcabc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sqlca>())).sqlcode as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlca),
            "::",
            stringify!(sqlcode)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sqlca>())).sqlerrml as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlca),
            "::",
            stringify!(sqlerrml)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sqlca>())).sqlerrmc as *const _ as usize },
        18usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlca),
            "::",
            stringify!(sqlerrmc)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sqlca>())).sqlerrp as *const _ as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlca),
            "::",
            stringify!(sqlerrp)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sqlca>())).sqlerrd as *const _ as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlca),
            "::",
            stringify!(sqlerrd)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sqlca>())).sqlwarn as *const _ as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlca),
            "::",
            stringify!(sqlwarn)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<sqlca>())).sqlstate as *const _ as usize },
        131usize,
        concat!(
            "Offset of field: ",
            stringify!(sqlca),
            "::",
            stringify!(sqlstate)
        )
    );
}
pub type SCHAR = ::std::os::raw::c_schar;
pub type SWORD = ::std::os::raw::c_short;
pub type SSHORT = ::std::os::raw::c_short;
pub type SDWORD = ::std::os::raw::c_long;
pub type UDWORD = ::std::os::raw::c_ulong;
pub type SLONG = ::std::os::raw::c_long;
pub type SDOUBLE = f64;
pub type SFLOAT = f32;
pub type SQLDATE = ::std::os::raw::c_uchar;
pub type SQLTIME = ::std::os::raw::c_uchar;
pub type SQLTIMESTAMP = ::std::os::raw::c_uchar;
pub type SQLDECIMAL = ::std::os::raw::c_uchar;
pub type SQLNUMERIC = ::std::os::raw::c_uchar;
pub type LDOUBLE = f64;
pub type PTR = *mut ::std::os::raw::c_void;
pub type HENV = *mut ::std::os::raw::c_void;
pub type HDBC = *mut ::std::os::raw::c_void;
pub type HSTMT = *mut ::std::os::raw::c_void;
pub type RETCODE = ::std::os::raw::c_short;
pub type SQLCHAR = UCHAR;
pub type SQLVARCHAR = UCHAR;
pub type SQLSCHAR = SCHAR;
pub type SQLINTEGER = SDWORD;
pub type SQLSMALLINT = SWORD;
pub type SQLDOUBLE = SDOUBLE;
pub type SQLFLOAT = SDOUBLE;
pub type SQLREAL = SFLOAT;
pub type SQLRETURN = SQLSMALLINT;
pub type SQLUINTEGER = UDWORD;
pub type SQLUSMALLINT = UWORD;
pub type SQLPOINTER = PTR;
pub type SQLDBCHAR = ::std::os::raw::c_ushort;
pub type SQLWCHAR = ::std::os::raw::c_ushort;
pub type SQLTCHAR = SQLCHAR;
pub type SQLHANDLE = *mut ::std::os::raw::c_void;
pub type SQLHENV = SQLHANDLE;
pub type SQLHDBC = SQLHANDLE;
pub type SQLHSTMT = SQLHANDLE;
pub type SQLHWND = HWND;
pub type SQLHDESC = SQLHANDLE;
pub type SQLBIGINT = ::std::os::raw::c_longlong;
pub type SQLUBIGINT = ::std::os::raw::c_ulonglong;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct DATE_STRUCT {
    pub year: SQLSMALLINT,
    pub month: SQLUSMALLINT,
    pub day: SQLUSMALLINT,
}
#[test]
fn bindgen_test_layout_DATE_STRUCT() {
    assert_eq!(
        ::std::mem::size_of::<DATE_STRUCT>(),
        6usize,
        concat!("Size of: ", stringify!(DATE_STRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<DATE_STRUCT>(),
        2usize,
        concat!("Alignment of ", stringify!(DATE_STRUCT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DATE_STRUCT>())).year as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(DATE_STRUCT),
            "::",
            stringify!(year)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DATE_STRUCT>())).month as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(DATE_STRUCT),
            "::",
            stringify!(month)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<DATE_STRUCT>())).day as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(DATE_STRUCT),
            "::",
            stringify!(day)
        )
    );
}
pub type SQL_DATE_STRUCT = DATE_STRUCT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TIME_STRUCT {
    pub hour: SQLUSMALLINT,
    pub minute: SQLUSMALLINT,
    pub second: SQLUSMALLINT,
}
#[test]
fn bindgen_test_layout_TIME_STRUCT() {
    assert_eq!(
        ::std::mem::size_of::<TIME_STRUCT>(),
        6usize,
        concat!("Size of: ", stringify!(TIME_STRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<TIME_STRUCT>(),
        2usize,
        concat!("Alignment of ", stringify!(TIME_STRUCT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TIME_STRUCT>())).hour as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(TIME_STRUCT),
            "::",
            stringify!(hour)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TIME_STRUCT>())).minute as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(TIME_STRUCT),
            "::",
            stringify!(minute)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TIME_STRUCT>())).second as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(TIME_STRUCT),
            "::",
            stringify!(second)
        )
    );
}
pub type SQL_TIME_STRUCT = TIME_STRUCT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TIMESTAMP_STRUCT {
    pub year: SQLSMALLINT,
    pub month: SQLUSMALLINT,
    pub day: SQLUSMALLINT,
    pub hour: SQLUSMALLINT,
    pub minute: SQLUSMALLINT,
    pub second: SQLUSMALLINT,
    pub fraction: SQLUINTEGER,
}
#[test]
fn bindgen_test_layout_TIMESTAMP_STRUCT() {
    assert_eq!(
        ::std::mem::size_of::<TIMESTAMP_STRUCT>(),
        16usize,
        concat!("Size of: ", stringify!(TIMESTAMP_STRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<TIMESTAMP_STRUCT>(),
        4usize,
        concat!("Alignment of ", stringify!(TIMESTAMP_STRUCT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TIMESTAMP_STRUCT>())).year as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(TIMESTAMP_STRUCT),
            "::",
            stringify!(year)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TIMESTAMP_STRUCT>())).month as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(TIMESTAMP_STRUCT),
            "::",
            stringify!(month)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TIMESTAMP_STRUCT>())).day as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(TIMESTAMP_STRUCT),
            "::",
            stringify!(day)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TIMESTAMP_STRUCT>())).hour as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(TIMESTAMP_STRUCT),
            "::",
            stringify!(hour)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TIMESTAMP_STRUCT>())).minute as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(TIMESTAMP_STRUCT),
            "::",
            stringify!(minute)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TIMESTAMP_STRUCT>())).second as *const _ as usize },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(TIMESTAMP_STRUCT),
            "::",
            stringify!(second)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TIMESTAMP_STRUCT>())).fraction as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(TIMESTAMP_STRUCT),
            "::",
            stringify!(fraction)
        )
    );
}
pub type SQL_TIMESTAMP_STRUCT = TIMESTAMP_STRUCT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TIMESTAMP_STRUCT_EXT {
    pub year: SQLSMALLINT,
    pub month: SQLUSMALLINT,
    pub day: SQLUSMALLINT,
    pub hour: SQLUSMALLINT,
    pub minute: SQLUSMALLINT,
    pub second: SQLUSMALLINT,
    pub fraction: SQLUINTEGER,
    pub fraction2: SQLUINTEGER,
}
#[test]
fn bindgen_test_layout_TIMESTAMP_STRUCT_EXT() {
    assert_eq!(
        ::std::mem::size_of::<TIMESTAMP_STRUCT_EXT>(),
        20usize,
        concat!("Size of: ", stringify!(TIMESTAMP_STRUCT_EXT))
    );
    assert_eq!(
        ::std::mem::align_of::<TIMESTAMP_STRUCT_EXT>(),
        4usize,
        concat!("Alignment of ", stringify!(TIMESTAMP_STRUCT_EXT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TIMESTAMP_STRUCT_EXT>())).year as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(TIMESTAMP_STRUCT_EXT),
            "::",
            stringify!(year)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TIMESTAMP_STRUCT_EXT>())).month as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(TIMESTAMP_STRUCT_EXT),
            "::",
            stringify!(month)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TIMESTAMP_STRUCT_EXT>())).day as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(TIMESTAMP_STRUCT_EXT),
            "::",
            stringify!(day)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TIMESTAMP_STRUCT_EXT>())).hour as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(TIMESTAMP_STRUCT_EXT),
            "::",
            stringify!(hour)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TIMESTAMP_STRUCT_EXT>())).minute as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(TIMESTAMP_STRUCT_EXT),
            "::",
            stringify!(minute)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TIMESTAMP_STRUCT_EXT>())).second as *const _ as usize },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(TIMESTAMP_STRUCT_EXT),
            "::",
            stringify!(second)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TIMESTAMP_STRUCT_EXT>())).fraction as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(TIMESTAMP_STRUCT_EXT),
            "::",
            stringify!(fraction)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TIMESTAMP_STRUCT_EXT>())).fraction2 as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(TIMESTAMP_STRUCT_EXT),
            "::",
            stringify!(fraction2)
        )
    );
}
pub type SQL_TIMESTAMP_STRUCT_EXT = TIMESTAMP_STRUCT_EXT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct TIMESTAMP_STRUCT_EXT_TZ {
    pub year: SQLSMALLINT,
    pub month: SQLUSMALLINT,
    pub day: SQLUSMALLINT,
    pub hour: SQLUSMALLINT,
    pub minute: SQLUSMALLINT,
    pub second: SQLUSMALLINT,
    pub fraction: SQLUINTEGER,
    pub fraction2: SQLUINTEGER,
    pub timezone_hour: SQLSMALLINT,
    pub timezone_minute: SQLSMALLINT,
}
#[test]
fn bindgen_test_layout_TIMESTAMP_STRUCT_EXT_TZ() {
    assert_eq!(
        ::std::mem::size_of::<TIMESTAMP_STRUCT_EXT_TZ>(),
        24usize,
        concat!("Size of: ", stringify!(TIMESTAMP_STRUCT_EXT_TZ))
    );
    assert_eq!(
        ::std::mem::align_of::<TIMESTAMP_STRUCT_EXT_TZ>(),
        4usize,
        concat!("Alignment of ", stringify!(TIMESTAMP_STRUCT_EXT_TZ))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TIMESTAMP_STRUCT_EXT_TZ>())).year as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(TIMESTAMP_STRUCT_EXT_TZ),
            "::",
            stringify!(year)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TIMESTAMP_STRUCT_EXT_TZ>())).month as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(TIMESTAMP_STRUCT_EXT_TZ),
            "::",
            stringify!(month)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TIMESTAMP_STRUCT_EXT_TZ>())).day as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(TIMESTAMP_STRUCT_EXT_TZ),
            "::",
            stringify!(day)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TIMESTAMP_STRUCT_EXT_TZ>())).hour as *const _ as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(TIMESTAMP_STRUCT_EXT_TZ),
            "::",
            stringify!(hour)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TIMESTAMP_STRUCT_EXT_TZ>())).minute as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(TIMESTAMP_STRUCT_EXT_TZ),
            "::",
            stringify!(minute)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<TIMESTAMP_STRUCT_EXT_TZ>())).second as *const _ as usize },
        10usize,
        concat!(
            "Offset of field: ",
            stringify!(TIMESTAMP_STRUCT_EXT_TZ),
            "::",
            stringify!(second)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<TIMESTAMP_STRUCT_EXT_TZ>())).fraction as *const _ as usize
        },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(TIMESTAMP_STRUCT_EXT_TZ),
            "::",
            stringify!(fraction)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<TIMESTAMP_STRUCT_EXT_TZ>())).fraction2 as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(TIMESTAMP_STRUCT_EXT_TZ),
            "::",
            stringify!(fraction2)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<TIMESTAMP_STRUCT_EXT_TZ>())).timezone_hour as *const _ as usize
        },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(TIMESTAMP_STRUCT_EXT_TZ),
            "::",
            stringify!(timezone_hour)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<TIMESTAMP_STRUCT_EXT_TZ>())).timezone_minute as *const _ as usize
        },
        22usize,
        concat!(
            "Offset of field: ",
            stringify!(TIMESTAMP_STRUCT_EXT_TZ),
            "::",
            stringify!(timezone_minute)
        )
    );
}
pub type SQL_TIMESTAMP_STRUCT_EXT_TZ = TIMESTAMP_STRUCT_EXT_TZ;
pub const SQLINTERVAL_SQL_IS_YEAR: SQLINTERVAL = 1;
pub const SQLINTERVAL_SQL_IS_MONTH: SQLINTERVAL = 2;
pub const SQLINTERVAL_SQL_IS_DAY: SQLINTERVAL = 3;
pub const SQLINTERVAL_SQL_IS_HOUR: SQLINTERVAL = 4;
pub const SQLINTERVAL_SQL_IS_MINUTE: SQLINTERVAL = 5;
pub const SQLINTERVAL_SQL_IS_SECOND: SQLINTERVAL = 6;
pub const SQLINTERVAL_SQL_IS_YEAR_TO_MONTH: SQLINTERVAL = 7;
pub const SQLINTERVAL_SQL_IS_DAY_TO_HOUR: SQLINTERVAL = 8;
pub const SQLINTERVAL_SQL_IS_DAY_TO_MINUTE: SQLINTERVAL = 9;
pub const SQLINTERVAL_SQL_IS_DAY_TO_SECOND: SQLINTERVAL = 10;
pub const SQLINTERVAL_SQL_IS_HOUR_TO_MINUTE: SQLINTERVAL = 11;
pub const SQLINTERVAL_SQL_IS_HOUR_TO_SECOND: SQLINTERVAL = 12;
pub const SQLINTERVAL_SQL_IS_MINUTE_TO_SECOND: SQLINTERVAL = 13;
pub type SQLINTERVAL = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagSQL_YEAR_MONTH {
    pub year: SQLUINTEGER,
    pub month: SQLUINTEGER,
}
#[test]
fn bindgen_test_layout_tagSQL_YEAR_MONTH() {
    assert_eq!(
        ::std::mem::size_of::<tagSQL_YEAR_MONTH>(),
        8usize,
        concat!("Size of: ", stringify!(tagSQL_YEAR_MONTH))
    );
    assert_eq!(
        ::std::mem::align_of::<tagSQL_YEAR_MONTH>(),
        4usize,
        concat!("Alignment of ", stringify!(tagSQL_YEAR_MONTH))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSQL_YEAR_MONTH>())).year as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSQL_YEAR_MONTH),
            "::",
            stringify!(year)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSQL_YEAR_MONTH>())).month as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSQL_YEAR_MONTH),
            "::",
            stringify!(month)
        )
    );
}
pub type SQL_YEAR_MONTH_STRUCT = tagSQL_YEAR_MONTH;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagSQL_DAY_SECOND {
    pub day: SQLUINTEGER,
    pub hour: SQLUINTEGER,
    pub minute: SQLUINTEGER,
    pub second: SQLUINTEGER,
    pub fraction: SQLUINTEGER,
}
#[test]
fn bindgen_test_layout_tagSQL_DAY_SECOND() {
    assert_eq!(
        ::std::mem::size_of::<tagSQL_DAY_SECOND>(),
        20usize,
        concat!("Size of: ", stringify!(tagSQL_DAY_SECOND))
    );
    assert_eq!(
        ::std::mem::align_of::<tagSQL_DAY_SECOND>(),
        4usize,
        concat!("Alignment of ", stringify!(tagSQL_DAY_SECOND))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSQL_DAY_SECOND>())).day as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSQL_DAY_SECOND),
            "::",
            stringify!(day)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSQL_DAY_SECOND>())).hour as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSQL_DAY_SECOND),
            "::",
            stringify!(hour)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSQL_DAY_SECOND>())).minute as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSQL_DAY_SECOND),
            "::",
            stringify!(minute)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSQL_DAY_SECOND>())).second as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSQL_DAY_SECOND),
            "::",
            stringify!(second)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSQL_DAY_SECOND>())).fraction as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSQL_DAY_SECOND),
            "::",
            stringify!(fraction)
        )
    );
}
pub type SQL_DAY_SECOND_STRUCT = tagSQL_DAY_SECOND;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagSQL_INTERVAL_STRUCT {
    pub interval_type: SQLINTERVAL,
    pub interval_sign: SQLSMALLINT,
    pub intval: tagSQL_INTERVAL_STRUCT__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tagSQL_INTERVAL_STRUCT__bindgen_ty_1 {
    pub year_month: SQL_YEAR_MONTH_STRUCT,
    pub day_second: SQL_DAY_SECOND_STRUCT,
    _bindgen_union_align: [u32; 5usize],
}
#[test]
fn bindgen_test_layout_tagSQL_INTERVAL_STRUCT__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagSQL_INTERVAL_STRUCT__bindgen_ty_1>(),
        20usize,
        concat!(
            "Size of: ",
            stringify!(tagSQL_INTERVAL_STRUCT__bindgen_ty_1)
        )
    );
    assert_eq!(
        ::std::mem::align_of::<tagSQL_INTERVAL_STRUCT__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(tagSQL_INTERVAL_STRUCT__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSQL_INTERVAL_STRUCT__bindgen_ty_1>())).year_month as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSQL_INTERVAL_STRUCT__bindgen_ty_1),
            "::",
            stringify!(year_month)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSQL_INTERVAL_STRUCT__bindgen_ty_1>())).day_second as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSQL_INTERVAL_STRUCT__bindgen_ty_1),
            "::",
            stringify!(day_second)
        )
    );
}
#[test]
fn bindgen_test_layout_tagSQL_INTERVAL_STRUCT() {
    assert_eq!(
        ::std::mem::size_of::<tagSQL_INTERVAL_STRUCT>(),
        28usize,
        concat!("Size of: ", stringify!(tagSQL_INTERVAL_STRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagSQL_INTERVAL_STRUCT>(),
        4usize,
        concat!("Alignment of ", stringify!(tagSQL_INTERVAL_STRUCT))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSQL_INTERVAL_STRUCT>())).interval_type as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSQL_INTERVAL_STRUCT),
            "::",
            stringify!(interval_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagSQL_INTERVAL_STRUCT>())).interval_sign as *const _ as usize
        },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSQL_INTERVAL_STRUCT),
            "::",
            stringify!(interval_sign)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSQL_INTERVAL_STRUCT>())).intval as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSQL_INTERVAL_STRUCT),
            "::",
            stringify!(intval)
        )
    );
}
pub type SQL_INTERVAL_STRUCT = tagSQL_INTERVAL_STRUCT;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct tagSQL_NUMERIC_STRUCT {
    pub precision: SQLCHAR,
    pub scale: SQLSCHAR,
    pub sign: SQLCHAR,
    pub val: [SQLCHAR; 16usize],
}
#[test]
fn bindgen_test_layout_tagSQL_NUMERIC_STRUCT() {
    assert_eq!(
        ::std::mem::size_of::<tagSQL_NUMERIC_STRUCT>(),
        19usize,
        concat!("Size of: ", stringify!(tagSQL_NUMERIC_STRUCT))
    );
    assert_eq!(
        ::std::mem::align_of::<tagSQL_NUMERIC_STRUCT>(),
        1usize,
        concat!("Alignment of ", stringify!(tagSQL_NUMERIC_STRUCT))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSQL_NUMERIC_STRUCT>())).precision as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSQL_NUMERIC_STRUCT),
            "::",
            stringify!(precision)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSQL_NUMERIC_STRUCT>())).scale as *const _ as usize },
        1usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSQL_NUMERIC_STRUCT),
            "::",
            stringify!(scale)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSQL_NUMERIC_STRUCT>())).sign as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSQL_NUMERIC_STRUCT),
            "::",
            stringify!(sign)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagSQL_NUMERIC_STRUCT>())).val as *const _ as usize },
        3usize,
        concat!(
            "Offset of field: ",
            stringify!(tagSQL_NUMERIC_STRUCT),
            "::",
            stringify!(val)
        )
    );
}
pub type SQL_NUMERIC_STRUCT = tagSQL_NUMERIC_STRUCT;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct SQLDECIMAL64 {
    pub udec64: SQLDECIMAL64__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union SQLDECIMAL64__bindgen_ty_1 {
    pub dummy: SQLDOUBLE,
    pub dec64: [SQLCHAR; 8usize],
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout_SQLDECIMAL64__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<SQLDECIMAL64__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(SQLDECIMAL64__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<SQLDECIMAL64__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(SQLDECIMAL64__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SQLDECIMAL64__bindgen_ty_1>())).dummy as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(SQLDECIMAL64__bindgen_ty_1),
            "::",
            stringify!(dummy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SQLDECIMAL64__bindgen_ty_1>())).dec64 as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(SQLDECIMAL64__bindgen_ty_1),
            "::",
            stringify!(dec64)
        )
    );
}
#[test]
fn bindgen_test_layout_SQLDECIMAL64() {
    assert_eq!(
        ::std::mem::size_of::<SQLDECIMAL64>(),
        8usize,
        concat!("Size of: ", stringify!(SQLDECIMAL64))
    );
    assert_eq!(
        ::std::mem::align_of::<SQLDECIMAL64>(),
        8usize,
        concat!("Alignment of ", stringify!(SQLDECIMAL64))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SQLDECIMAL64>())).udec64 as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(SQLDECIMAL64),
            "::",
            stringify!(udec64)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct SQLDECIMAL128 {
    pub udec128: SQLDECIMAL128__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union SQLDECIMAL128__bindgen_ty_1 {
    pub dummy: SQLDOUBLE,
    pub dec128: [SQLCHAR; 16usize],
    _bindgen_union_align: [u64; 2usize],
}
#[test]
fn bindgen_test_layout_SQLDECIMAL128__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<SQLDECIMAL128__bindgen_ty_1>(),
        16usize,
        concat!("Size of: ", stringify!(SQLDECIMAL128__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<SQLDECIMAL128__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(SQLDECIMAL128__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SQLDECIMAL128__bindgen_ty_1>())).dummy as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(SQLDECIMAL128__bindgen_ty_1),
            "::",
            stringify!(dummy)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SQLDECIMAL128__bindgen_ty_1>())).dec128 as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(SQLDECIMAL128__bindgen_ty_1),
            "::",
            stringify!(dec128)
        )
    );
}
#[test]
fn bindgen_test_layout_SQLDECIMAL128() {
    assert_eq!(
        ::std::mem::size_of::<SQLDECIMAL128>(),
        16usize,
        concat!("Size of: ", stringify!(SQLDECIMAL128))
    );
    assert_eq!(
        ::std::mem::align_of::<SQLDECIMAL128>(),
        8usize,
        concat!("Alignment of ", stringify!(SQLDECIMAL128))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SQLDECIMAL128>())).udec128 as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(SQLDECIMAL128),
            "::",
            stringify!(udec128)
        )
    );
}
extern "C" {
    pub fn SQLAllocConnect(henv: SQLHENV, phdbc: *mut SQLHDBC) -> SQLRETURN;
}
extern "C" {
    pub fn SQLAllocEnv(phenv: *mut SQLHENV) -> SQLRETURN;
}
extern "C" {
    pub fn SQLAllocStmt(hdbc: SQLHDBC, phstmt: *mut SQLHSTMT) -> SQLRETURN;
}
extern "C" {
    pub fn SQLAllocHandle(
        fHandleType: SQLSMALLINT,
        hInput: SQLHANDLE,
        phOutput: *mut SQLHANDLE,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLBindCol(
        hstmt: SQLHSTMT,
        icol: SQLUSMALLINT,
        fCType: SQLSMALLINT,
        rgbValue: SQLPOINTER,
        cbValueMax: SQLINTEGER,
        pcbValue: *mut SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLCancel(hstmt: SQLHSTMT) -> SQLRETURN;
}
extern "C" {
    pub fn SQLColAttribute(
        hstmt: SQLHSTMT,
        icol: SQLUSMALLINT,
        fDescType: SQLUSMALLINT,
        rgbDesc: SQLPOINTER,
        cbDescMax: SQLSMALLINT,
        pcbDesc: *mut SQLSMALLINT,
        pfDesc: SQLPOINTER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLConnect(
        hdbc: SQLHDBC,
        szDSN: *mut SQLCHAR,
        cbDSN: SQLSMALLINT,
        szUID: *mut SQLCHAR,
        cbUID: SQLSMALLINT,
        szAuthStr: *mut SQLCHAR,
        cbAuthStr: SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLDescribeCol(
        hstmt: SQLHSTMT,
        icol: SQLUSMALLINT,
        szColName: *mut SQLCHAR,
        cbColNameMax: SQLSMALLINT,
        pcbColName: *mut SQLSMALLINT,
        pfSqlType: *mut SQLSMALLINT,
        pcbColDef: *mut SQLUINTEGER,
        pibScale: *mut SQLSMALLINT,
        pfNullable: *mut SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLDisconnect(hdbc: SQLHDBC) -> SQLRETURN;
}
extern "C" {
    pub fn SQLError(
        henv: SQLHENV,
        hdbc: SQLHDBC,
        hstmt: SQLHSTMT,
        szSqlState: *mut SQLCHAR,
        pfNativeError: *mut SQLINTEGER,
        szErrorMsg: *mut SQLCHAR,
        cbErrorMsgMax: SQLSMALLINT,
        pcbErrorMsg: *mut SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLExecDirect(
        hstmt: SQLHSTMT,
        szSqlStr: *mut SQLCHAR,
        cbSqlStr: SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLExecute(hstmt: SQLHSTMT) -> SQLRETURN;
}
extern "C" {
    pub fn SQLFetch(hstmt: SQLHSTMT) -> SQLRETURN;
}
extern "C" {
    pub fn SQLFreeConnect(hdbc: SQLHDBC) -> SQLRETURN;
}
extern "C" {
    pub fn SQLFreeEnv(henv: SQLHENV) -> SQLRETURN;
}
extern "C" {
    pub fn SQLFreeStmt(hstmt: SQLHSTMT, fOption: SQLUSMALLINT) -> SQLRETURN;
}
extern "C" {
    pub fn SQLCloseCursor(hStmt: SQLHSTMT) -> SQLRETURN;
}
extern "C" {
    pub fn SQLGetCursorName(
        hstmt: SQLHSTMT,
        szCursor: *mut SQLCHAR,
        cbCursorMax: SQLSMALLINT,
        pcbCursor: *mut SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLGetData(
        hstmt: SQLHSTMT,
        icol: SQLUSMALLINT,
        fCType: SQLSMALLINT,
        rgbValue: SQLPOINTER,
        cbValueMax: SQLINTEGER,
        pcbValue: *mut SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLNumResultCols(hstmt: SQLHSTMT, pccol: *mut SQLSMALLINT) -> SQLRETURN;
}
extern "C" {
    pub fn SQLPrepare(hstmt: SQLHSTMT, szSqlStr: *mut SQLCHAR, cbSqlStr: SQLINTEGER) -> SQLRETURN;
}
extern "C" {
    pub fn SQLRowCount(hstmt: SQLHSTMT, pcrow: *mut SQLINTEGER) -> SQLRETURN;
}
extern "C" {
    pub fn SQLSetCursorName(
        hstmt: SQLHSTMT,
        szCursor: *mut SQLCHAR,
        cbCursor: SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLSetParam(
        hstmt: SQLHSTMT,
        ipar: SQLUSMALLINT,
        fCType: SQLSMALLINT,
        fSqlType: SQLSMALLINT,
        cbParamDef: SQLUINTEGER,
        ibScale: SQLSMALLINT,
        rgbValue: SQLPOINTER,
        pcbValue: *mut SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLTransact(henv: SQLHENV, hdbc: SQLHDBC, fType: SQLUSMALLINT) -> SQLRETURN;
}
extern "C" {
    pub fn SQLEndTran(
        fHandleType: SQLSMALLINT,
        hHandle: SQLHANDLE,
        fType: SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLFreeHandle(fHandleType: SQLSMALLINT, hHandle: SQLHANDLE) -> SQLRETURN;
}
extern "C" {
    pub fn SQLGetDiagRec(
        fHandleType: SQLSMALLINT,
        hHandle: SQLHANDLE,
        iRecNumber: SQLSMALLINT,
        pszSqlState: *mut SQLCHAR,
        pfNativeError: *mut SQLINTEGER,
        pszErrorMsg: *mut SQLCHAR,
        cbErrorMsgMax: SQLSMALLINT,
        pcbErrorMsg: *mut SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLGetDiagField(
        fHandleType: SQLSMALLINT,
        hHandle: SQLHANDLE,
        iRecNumber: SQLSMALLINT,
        fDiagIdentifier: SQLSMALLINT,
        pDiagInfo: SQLPOINTER,
        cbDiagInfoMax: SQLSMALLINT,
        pcbDiagInfo: *mut SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLCopyDesc(hDescSource: SQLHDESC, hDescTarget: SQLHDESC) -> SQLRETURN;
}
extern "C" {
    pub fn SQLCreateDb(
        hDbc: SQLHDBC,
        szDB: *mut SQLCHAR,
        cbDB: SQLINTEGER,
        szCodeset: *mut SQLCHAR,
        cbCodeset: SQLINTEGER,
        szMode: *mut SQLCHAR,
        cbMode: SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLDropDb(hDbc: SQLHDBC, szDB: *mut SQLCHAR, cbDB: SQLINTEGER) -> SQLRETURN;
}
extern "C" {
    pub fn SQLCreatePkg(
        hDbc: SQLHDBC,
        szBindFileName: *mut SQLCHAR,
        cbBindFileName: SQLINTEGER,
        szBindOpts: *mut SQLCHAR,
        cbBindOpts: SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLGetDescField(
        DescriptorHandle: SQLHDESC,
        RecNumber: SQLSMALLINT,
        FieldIdentifier: SQLSMALLINT,
        Value: SQLPOINTER,
        BufferLength: SQLINTEGER,
        StringLength: *mut SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLGetDescRec(
        DescriptorHandle: SQLHDESC,
        RecNumber: SQLSMALLINT,
        Name: *mut SQLCHAR,
        BufferLength: SQLSMALLINT,
        StringLength: *mut SQLSMALLINT,
        Type: *mut SQLSMALLINT,
        SubType: *mut SQLSMALLINT,
        Length: *mut SQLINTEGER,
        Precision: *mut SQLSMALLINT,
        Scale: *mut SQLSMALLINT,
        Nullable: *mut SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLSetDescField(
        DescriptorHandle: SQLHDESC,
        RecNumber: SQLSMALLINT,
        FieldIdentifier: SQLSMALLINT,
        Value: SQLPOINTER,
        BufferLength: SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLSetDescRec(
        DescriptorHandle: SQLHDESC,
        RecNumber: SQLSMALLINT,
        Type: SQLSMALLINT,
        SubType: SQLSMALLINT,
        Length: SQLINTEGER,
        Precision: SQLSMALLINT,
        Scale: SQLSMALLINT,
        Data: SQLPOINTER,
        StringLength: *mut SQLINTEGER,
        Indicator: *mut SQLINTEGER,
    ) -> SQLRETURN;
}
pub type SQLSTATE = [SQLTCHAR; 6usize];
extern "C" {
    pub fn SQLDriverConnect(
        hdbc: SQLHDBC,
        hwnd: SQLHWND,
        szConnStrIn: *mut SQLCHAR,
        cchConnStrIn: SQLSMALLINT,
        szConnStrOut: *mut SQLCHAR,
        cchConnStrOutMax: SQLSMALLINT,
        pcchConnStrOut: *mut SQLSMALLINT,
        fDriverCompletion: SQLUSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLBrowseConnect(
        hdbc: SQLHDBC,
        szConnStrIn: *mut SQLCHAR,
        cchConnStrIn: SQLSMALLINT,
        szConnStrOut: *mut SQLCHAR,
        cchConnStrOutMax: SQLSMALLINT,
        pcchConnStrOut: *mut SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLBulkOperations(StatementHandle: SQLHSTMT, Operation: SQLSMALLINT) -> SQLRETURN;
}
extern "C" {
    pub fn SQLColAttributes(
        hstmt: SQLHSTMT,
        icol: SQLUSMALLINT,
        fDescType: SQLUSMALLINT,
        rgbDesc: SQLPOINTER,
        cbDescMax: SQLSMALLINT,
        pcbDesc: *mut SQLSMALLINT,
        pfDesc: *mut SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLColumnPrivileges(
        hstmt: SQLHSTMT,
        szCatalogName: *mut SQLCHAR,
        cchCatalogName: SQLSMALLINT,
        szSchemaName: *mut SQLCHAR,
        cchSchemaName: SQLSMALLINT,
        szTableName: *mut SQLCHAR,
        cchTableName: SQLSMALLINT,
        szColumnName: *mut SQLCHAR,
        cchColumnName: SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLDescribeParam(
        hstmt: SQLHSTMT,
        ipar: SQLUSMALLINT,
        pfSqlType: *mut SQLSMALLINT,
        pcbParamDef: *mut SQLUINTEGER,
        pibScale: *mut SQLSMALLINT,
        pfNullable: *mut SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLExtendedFetch(
        hstmt: SQLHSTMT,
        fFetchType: SQLUSMALLINT,
        irow: SQLINTEGER,
        pcrow: *mut SQLUINTEGER,
        rgfRowStatus: *mut SQLUSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLForeignKeys(
        hstmt: SQLHSTMT,
        szPkCatalogName: *mut SQLCHAR,
        cchPkCatalogName: SQLSMALLINT,
        szPkSchemaName: *mut SQLCHAR,
        cchPkSchemaName: SQLSMALLINT,
        szPkTableName: *mut SQLCHAR,
        cchPkTableName: SQLSMALLINT,
        szFkCatalogName: *mut SQLCHAR,
        cchFkCatalogName: SQLSMALLINT,
        szFkSchemaName: *mut SQLCHAR,
        cchFkSchemaName: SQLSMALLINT,
        szFkTableName: *mut SQLCHAR,
        cchFkTableName: SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLMoreResults(hstmt: SQLHSTMT) -> SQLRETURN;
}
extern "C" {
    pub fn SQLNativeSql(
        hdbc: SQLHDBC,
        szSqlStrIn: *mut SQLCHAR,
        cchSqlStrIn: SQLINTEGER,
        szSqlStr: *mut SQLCHAR,
        cchSqlStrMax: SQLINTEGER,
        pcbSqlStr: *mut SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLNumParams(hstmt: SQLHSTMT, pcpar: *mut SQLSMALLINT) -> SQLRETURN;
}
extern "C" {
    pub fn SQLParamOptions(
        hstmt: SQLHSTMT,
        crow: SQLUINTEGER,
        pirow: *mut SQLUINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLPrimaryKeys(
        hstmt: SQLHSTMT,
        szCatalogName: *mut SQLCHAR,
        cchCatalogName: SQLSMALLINT,
        szSchemaName: *mut SQLCHAR,
        cchSchemaName: SQLSMALLINT,
        szTableName: *mut SQLCHAR,
        cchTableName: SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLProcedureColumns(
        hstmt: SQLHSTMT,
        szCatalogName: *mut SQLCHAR,
        cchCatalogName: SQLSMALLINT,
        szSchemaName: *mut SQLCHAR,
        cchSchemaName: SQLSMALLINT,
        szProcName: *mut SQLCHAR,
        cchProcName: SQLSMALLINT,
        szColumnName: *mut SQLCHAR,
        cchColumnName: SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLProcedures(
        hstmt: SQLHSTMT,
        szCatalogName: *mut SQLCHAR,
        cchCatalogName: SQLSMALLINT,
        szSchemaName: *mut SQLCHAR,
        cchSchemaName: SQLSMALLINT,
        szProcName: *mut SQLCHAR,
        cchProcName: SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLSetPos(
        hstmt: SQLHSTMT,
        irow: SQLUSMALLINT,
        fOption: SQLUSMALLINT,
        fLock: SQLUSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLTablePrivileges(
        hstmt: SQLHSTMT,
        szCatalogName: *mut SQLCHAR,
        cchCatalogName: SQLSMALLINT,
        szSchemaName: *mut SQLCHAR,
        cchSchemaName: SQLSMALLINT,
        szTableName: *mut SQLCHAR,
        cchTableName: SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLDrivers(
        henv: SQLHENV,
        fDirection: SQLUSMALLINT,
        szDriverDesc: *mut SQLCHAR,
        cchDriverDescMax: SQLSMALLINT,
        pcchDriverDesc: *mut SQLSMALLINT,
        szDriverAttributes: *mut SQLCHAR,
        cchDrvrAttrMax: SQLSMALLINT,
        pcchDrvrAttr: *mut SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLBindParameter(
        hstmt: SQLHSTMT,
        ipar: SQLUSMALLINT,
        fParamType: SQLSMALLINT,
        fCType: SQLSMALLINT,
        fSqlType: SQLSMALLINT,
        cbColDef: SQLUINTEGER,
        ibScale: SQLSMALLINT,
        rgbValue: SQLPOINTER,
        cbValueMax: SQLINTEGER,
        pcbValue: *mut SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLAllocHandleStd(
        fHandleType: SQLSMALLINT,
        hInput: SQLHANDLE,
        phOutput: *mut SQLHANDLE,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLSetScrollOptions(
        hstmt: SQLHSTMT,
        fConcurrency: SQLUSMALLINT,
        crowKeyset: SQLINTEGER,
        crowRowset: SQLUSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn TraceOpenLogFile(
        szFileName: LPWSTR,
        lpwszOutputMsg: LPWSTR,
        cbOutputMsg: DWORD,
    ) -> RETCODE;
}
extern "C" {
    pub fn TraceCloseLogFile() -> RETCODE;
}
extern "C" {
    pub fn TraceReturn(arg1: RETCODE, arg2: RETCODE);
}
extern "C" {
    pub fn TraceVersion() -> DWORD;
}
extern "C" {
    pub fn TraceVSControl(arg1: DWORD) -> RETCODE;
}
extern "C" {
    pub fn ODBCSetTryWaitValue(dwValue: DWORD) -> BOOL;
}
extern "C" {
    pub fn ODBCGetTryWaitValue() -> DWORD;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct tagODBC_VS_ARGS {
    pub pguidEvent: *const GUID,
    pub dwFlags: DWORD,
    pub __bindgen_anon_1: tagODBC_VS_ARGS__bindgen_ty_1,
    pub __bindgen_anon_2: tagODBC_VS_ARGS__bindgen_ty_2,
    pub RetCode: RETCODE,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tagODBC_VS_ARGS__bindgen_ty_1 {
    pub wszArg: *mut WCHAR,
    pub szArg: *mut CHAR,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout_tagODBC_VS_ARGS__bindgen_ty_1() {
    assert_eq!(
        ::std::mem::size_of::<tagODBC_VS_ARGS__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(tagODBC_VS_ARGS__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<tagODBC_VS_ARGS__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(tagODBC_VS_ARGS__bindgen_ty_1))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagODBC_VS_ARGS__bindgen_ty_1>())).wszArg as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagODBC_VS_ARGS__bindgen_ty_1),
            "::",
            stringify!(wszArg)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagODBC_VS_ARGS__bindgen_ty_1>())).szArg as *const _ as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagODBC_VS_ARGS__bindgen_ty_1),
            "::",
            stringify!(szArg)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union tagODBC_VS_ARGS__bindgen_ty_2 {
    pub wszCorrelation: *mut WCHAR,
    pub szCorrelation: *mut CHAR,
    _bindgen_union_align: u64,
}
#[test]
fn bindgen_test_layout_tagODBC_VS_ARGS__bindgen_ty_2() {
    assert_eq!(
        ::std::mem::size_of::<tagODBC_VS_ARGS__bindgen_ty_2>(),
        8usize,
        concat!("Size of: ", stringify!(tagODBC_VS_ARGS__bindgen_ty_2))
    );
    assert_eq!(
        ::std::mem::align_of::<tagODBC_VS_ARGS__bindgen_ty_2>(),
        8usize,
        concat!("Alignment of ", stringify!(tagODBC_VS_ARGS__bindgen_ty_2))
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagODBC_VS_ARGS__bindgen_ty_2>())).wszCorrelation as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagODBC_VS_ARGS__bindgen_ty_2),
            "::",
            stringify!(wszCorrelation)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<tagODBC_VS_ARGS__bindgen_ty_2>())).szCorrelation as *const _
                as usize
        },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagODBC_VS_ARGS__bindgen_ty_2),
            "::",
            stringify!(szCorrelation)
        )
    );
}
#[test]
fn bindgen_test_layout_tagODBC_VS_ARGS() {
    assert_eq!(
        ::std::mem::size_of::<tagODBC_VS_ARGS>(),
        40usize,
        concat!("Size of: ", stringify!(tagODBC_VS_ARGS))
    );
    assert_eq!(
        ::std::mem::align_of::<tagODBC_VS_ARGS>(),
        8usize,
        concat!("Alignment of ", stringify!(tagODBC_VS_ARGS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagODBC_VS_ARGS>())).pguidEvent as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(tagODBC_VS_ARGS),
            "::",
            stringify!(pguidEvent)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagODBC_VS_ARGS>())).dwFlags as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(tagODBC_VS_ARGS),
            "::",
            stringify!(dwFlags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<tagODBC_VS_ARGS>())).RetCode as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(tagODBC_VS_ARGS),
            "::",
            stringify!(RetCode)
        )
    );
}
pub type ODBC_VS_ARGS = tagODBC_VS_ARGS;
pub type PODBC_VS_ARGS = *mut tagODBC_VS_ARGS;
extern "C" {
    pub fn FireVSDebugEvent(arg1: PODBC_VS_ARGS);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct SQL_NET_STATS {
    pub iNetStatsLength: SQLINTEGER,
    pub uiNetStatsServerTime: SQLUBIGINT,
    pub uiNetStatsNetworkTime: SQLUBIGINT,
    pub uiNetStatsBytesSent: SQLUBIGINT,
    pub uiNetStatsBytesReceived: SQLUBIGINT,
    pub uiNetStatsRoundTrips: SQLUBIGINT,
}
#[test]
fn bindgen_test_layout_SQL_NET_STATS() {
    assert_eq!(
        ::std::mem::size_of::<SQL_NET_STATS>(),
        48usize,
        concat!("Size of: ", stringify!(SQL_NET_STATS))
    );
    assert_eq!(
        ::std::mem::align_of::<SQL_NET_STATS>(),
        8usize,
        concat!("Alignment of ", stringify!(SQL_NET_STATS))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<SQL_NET_STATS>())).iNetStatsLength as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(SQL_NET_STATS),
            "::",
            stringify!(iNetStatsLength)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SQL_NET_STATS>())).uiNetStatsServerTime as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(SQL_NET_STATS),
            "::",
            stringify!(uiNetStatsServerTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SQL_NET_STATS>())).uiNetStatsNetworkTime as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(SQL_NET_STATS),
            "::",
            stringify!(uiNetStatsNetworkTime)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SQL_NET_STATS>())).uiNetStatsBytesSent as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(SQL_NET_STATS),
            "::",
            stringify!(uiNetStatsBytesSent)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SQL_NET_STATS>())).uiNetStatsBytesReceived as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(SQL_NET_STATS),
            "::",
            stringify!(uiNetStatsBytesReceived)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<SQL_NET_STATS>())).uiNetStatsRoundTrips as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(SQL_NET_STATS),
            "::",
            stringify!(uiNetStatsRoundTrips)
        )
    );
}
extern "C" {
    pub fn SQLColumns(
        hstmt: SQLHSTMT,
        szCatalogName: *mut SQLCHAR,
        cbCatalogName: SQLSMALLINT,
        szSchemaName: *mut SQLCHAR,
        cbSchemaName: SQLSMALLINT,
        szTableName: *mut SQLCHAR,
        cbTableName: SQLSMALLINT,
        szColumnName: *mut SQLCHAR,
        cbColumnName: SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLDataSources(
        henv: SQLHENV,
        fDirection: SQLUSMALLINT,
        szDSN: *mut SQLCHAR,
        cbDSNMax: SQLSMALLINT,
        pcbDSN: *mut SQLSMALLINT,
        szDescription: *mut SQLCHAR,
        cbDescriptionMax: SQLSMALLINT,
        pcbDescription: *mut SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLFetchScroll(
        StatementHandle: SQLHSTMT,
        FetchOrientation: SQLSMALLINT,
        FetchOffset: SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLGetConnectAttr(
        ConnectionHandle: SQLHDBC,
        Attribute: SQLINTEGER,
        Value: SQLPOINTER,
        BufferLength: SQLINTEGER,
        StringLength: *mut SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLGetConnectOption(
        hdbc: SQLHDBC,
        fOption: SQLUSMALLINT,
        pvParam: SQLPOINTER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLGetFunctions(
        hdbc: SQLHDBC,
        fFunction: SQLUSMALLINT,
        pfExists: *mut SQLUSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLGetInfo(
        hdbc: SQLHDBC,
        fInfoType: SQLUSMALLINT,
        rgbInfoValue: SQLPOINTER,
        cbInfoValueMax: SQLSMALLINT,
        pcbInfoValue: *mut SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLGetStmtAttr(
        StatementHandle: SQLHSTMT,
        Attribute: SQLINTEGER,
        Value: SQLPOINTER,
        BufferLength: SQLINTEGER,
        StringLength: *mut SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLGetStmtOption(
        hstmt: SQLHSTMT,
        fOption: SQLUSMALLINT,
        pvParam: SQLPOINTER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLGetTypeInfo(hstmt: SQLHSTMT, fSqlType: SQLSMALLINT) -> SQLRETURN;
}
extern "C" {
    pub fn SQLParamData(hstmt: SQLHSTMT, prgbValue: *mut SQLPOINTER) -> SQLRETURN;
}
extern "C" {
    pub fn SQLPutData(hstmt: SQLHSTMT, rgbValue: SQLPOINTER, cbValue: SQLINTEGER) -> SQLRETURN;
}
extern "C" {
    pub fn SQLSetConnectAttr(
        hdbc: SQLHDBC,
        fOption: SQLINTEGER,
        pvParam: SQLPOINTER,
        fStrLen: SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLSetConnectOption(
        hdbc: SQLHDBC,
        fOption: SQLUSMALLINT,
        vParam: SQLUINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLSetStmtAttr(
        hstmt: SQLHSTMT,
        fOption: SQLINTEGER,
        pvParam: SQLPOINTER,
        fStrLen: SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLSetStmtOption(
        hstmt: SQLHSTMT,
        fOption: SQLUSMALLINT,
        vParam: SQLUINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLSpecialColumns(
        hstmt: SQLHSTMT,
        fColType: SQLUSMALLINT,
        szCatalogName: *mut SQLCHAR,
        cbCatalogName: SQLSMALLINT,
        szSchemaName: *mut SQLCHAR,
        cbSchemaName: SQLSMALLINT,
        szTableName: *mut SQLCHAR,
        cbTableName: SQLSMALLINT,
        fScope: SQLUSMALLINT,
        fNullable: SQLUSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLStatistics(
        hstmt: SQLHSTMT,
        szCatalogName: *mut SQLCHAR,
        cbCatalogName: SQLSMALLINT,
        szSchemaName: *mut SQLCHAR,
        cbSchemaName: SQLSMALLINT,
        szTableName: *mut SQLCHAR,
        cbTableName: SQLSMALLINT,
        fUnique: SQLUSMALLINT,
        fAccuracy: SQLUSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLTables(
        hstmt: SQLHSTMT,
        szCatalogName: *mut SQLCHAR,
        cbCatalogName: SQLSMALLINT,
        szSchemaName: *mut SQLCHAR,
        cbSchemaName: SQLSMALLINT,
        szTableName: *mut SQLCHAR,
        cbTableName: SQLSMALLINT,
        szTableType: *mut SQLCHAR,
        cbTableType: SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLNextResult(hstmtSource: SQLHSTMT, hstmtTarget: SQLHSTMT) -> SQLRETURN;
}
extern "C" {
    pub fn SQLColAttributeW(
        hstmt: SQLHSTMT,
        iCol: SQLUSMALLINT,
        iField: SQLUSMALLINT,
        pCharAttr: SQLPOINTER,
        cbCharAttrMax: SQLSMALLINT,
        pcbCharAttr: *mut SQLSMALLINT,
        pNumAttr: SQLPOINTER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLColAttributesW(
        hstmt: SQLHSTMT,
        icol: SQLUSMALLINT,
        fDescType: SQLUSMALLINT,
        rgbDesc: SQLPOINTER,
        cbDescMax: SQLSMALLINT,
        pcbDesc: *mut SQLSMALLINT,
        pfDesc: *mut SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLConnectW(
        hdbc: SQLHDBC,
        szDSN: *mut SQLWCHAR,
        cbDSN: SQLSMALLINT,
        szUID: *mut SQLWCHAR,
        cbUID: SQLSMALLINT,
        szAuthStr: *mut SQLWCHAR,
        cbAuthStr: SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLConnectWInt(
        hdbc: SQLHDBC,
        szDSN: *mut SQLWCHAR,
        cbDSN: SQLSMALLINT,
        szUID: *mut SQLWCHAR,
        cbUID: SQLSMALLINT,
        szAuthStr: *mut SQLWCHAR,
        cbAuthStr: SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLDescribeColW(
        hstmt: SQLHSTMT,
        icol: SQLUSMALLINT,
        szColName: *mut SQLWCHAR,
        cbColNameMax: SQLSMALLINT,
        pcbColName: *mut SQLSMALLINT,
        pfSqlType: *mut SQLSMALLINT,
        pcbColDef: *mut SQLUINTEGER,
        pibScale: *mut SQLSMALLINT,
        pfNullable: *mut SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLErrorW(
        henv: SQLHENV,
        hdbc: SQLHDBC,
        hstmt: SQLHSTMT,
        szSqlState: *mut SQLWCHAR,
        pfNativeError: *mut SQLINTEGER,
        szErrorMsg: *mut SQLWCHAR,
        cbErrorMsgMax: SQLSMALLINT,
        pcbErrorMsg: *mut SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLExecDirectW(
        hstmt: SQLHSTMT,
        szSqlStr: *mut SQLWCHAR,
        cbSqlStr: SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLGetConnectAttrW(
        hdbc: SQLHDBC,
        fAttribute: SQLINTEGER,
        rgbValue: SQLPOINTER,
        cbValueMax: SQLINTEGER,
        pcbValue: *mut SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLGetCursorNameW(
        hstmt: SQLHSTMT,
        szCursor: *mut SQLWCHAR,
        cbCursorMax: SQLSMALLINT,
        pcbCursor: *mut SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLSetDescFieldW(
        DescriptorHandle: SQLHDESC,
        RecNumber: SQLSMALLINT,
        FieldIdentifier: SQLSMALLINT,
        Value: SQLPOINTER,
        BufferLength: SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLGetDescFieldW(
        hdesc: SQLHDESC,
        iRecord: SQLSMALLINT,
        iField: SQLSMALLINT,
        rgbValue: SQLPOINTER,
        cbValueMax: SQLINTEGER,
        pcbValue: *mut SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLGetDescRecW(
        hdesc: SQLHDESC,
        iRecord: SQLSMALLINT,
        szName: *mut SQLWCHAR,
        cbNameMax: SQLSMALLINT,
        pcbName: *mut SQLSMALLINT,
        pfType: *mut SQLSMALLINT,
        pfSubType: *mut SQLSMALLINT,
        pLength: *mut SQLINTEGER,
        pPrecision: *mut SQLSMALLINT,
        pScale: *mut SQLSMALLINT,
        pNullable: *mut SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLGetDiagFieldW(
        fHandleType: SQLSMALLINT,
        handle: SQLHANDLE,
        iRecord: SQLSMALLINT,
        fDiagField: SQLSMALLINT,
        rgbDiagInfo: SQLPOINTER,
        cbDiagInfoMax: SQLSMALLINT,
        pcbDiagInfo: *mut SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLGetDiagRecW(
        fHandleType: SQLSMALLINT,
        handle: SQLHANDLE,
        iRecord: SQLSMALLINT,
        szSqlState: *mut SQLWCHAR,
        pfNativeError: *mut SQLINTEGER,
        szErrorMsg: *mut SQLWCHAR,
        cbErrorMsgMax: SQLSMALLINT,
        pcbErrorMsg: *mut SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLGetEnvAttrW(
        hEnv: SQLHENV,
        fAttribute: SQLINTEGER,
        pParam: SQLPOINTER,
        cbParamMax: SQLINTEGER,
        pcbParam: *mut SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLPrepareW(hstmt: SQLHSTMT, szSqlStr: *mut SQLWCHAR, cbSqlStr: SQLINTEGER)
        -> SQLRETURN;
}
extern "C" {
    pub fn SQLExtendedPrepareW(
        hStmt: SQLHSTMT,
        pszSqlStrIn: *mut SQLWCHAR,
        cbSqlStr: SQLINTEGER,
        cPars: SQLINTEGER,
        sStmtType: SQLSMALLINT,
        cStmtAttrs: SQLINTEGER,
        piStmtAttr: *mut SQLINTEGER,
        pvParams: *mut SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLSetConnectAttrW(
        hdbc: SQLHDBC,
        fAttribute: SQLINTEGER,
        rgbValue: SQLPOINTER,
        cbValue: SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLSetCursorNameW(
        hstmt: SQLHSTMT,
        szCursor: *mut SQLWCHAR,
        cbCursor: SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLSetEnvAttrW(
        hEnv: SQLHENV,
        fAttribute: SQLINTEGER,
        pParam: SQLPOINTER,
        cbParam: SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLColumnsW(
        hstmt: SQLHSTMT,
        szCatalogName: *mut SQLWCHAR,
        cbCatalogName: SQLSMALLINT,
        szSchemaName: *mut SQLWCHAR,
        cbSchemaName: SQLSMALLINT,
        szTableName: *mut SQLWCHAR,
        cbTableName: SQLSMALLINT,
        szColumnName: *mut SQLWCHAR,
        cbColumnName: SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLGetInfoW(
        hdbc: SQLHDBC,
        fInfoType: SQLUSMALLINT,
        rgbInfoValue: SQLPOINTER,
        cbInfoValueMax: SQLSMALLINT,
        pcbInfoValue: *mut SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLGetConnectOptionW(
        hDbc: SQLHDBC,
        fOptionIn: SQLUSMALLINT,
        pvParam: SQLPOINTER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLSetConnectOptionW(
        hDbc: SQLHDBC,
        fOptionIn: SQLUSMALLINT,
        vParam: SQLUINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLGetTypeInfoW(hstmt: SQLHSTMT, fSqlType: SQLSMALLINT) -> SQLRETURN;
}
extern "C" {
    pub fn SQLSpecialColumnsW(
        hstmt: SQLHSTMT,
        fColType: SQLUSMALLINT,
        szCatalogName: *mut SQLWCHAR,
        cbCatalogName: SQLSMALLINT,
        szSchemaName: *mut SQLWCHAR,
        cbSchemaName: SQLSMALLINT,
        szTableName: *mut SQLWCHAR,
        cbTableName: SQLSMALLINT,
        fScope: SQLUSMALLINT,
        fNullable: SQLUSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLStatisticsW(
        hstmt: SQLHSTMT,
        szCatalogName: *mut SQLWCHAR,
        cbCatalogName: SQLSMALLINT,
        szSchemaName: *mut SQLWCHAR,
        cbSchemaName: SQLSMALLINT,
        szTableName: *mut SQLWCHAR,
        cbTableName: SQLSMALLINT,
        fUnique: SQLUSMALLINT,
        fAccuracy: SQLUSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLTablesW(
        hstmt: SQLHSTMT,
        szCatalogName: *mut SQLWCHAR,
        cbCatalogName: SQLSMALLINT,
        szSchemaName: *mut SQLWCHAR,
        cbSchemaName: SQLSMALLINT,
        szTableName: *mut SQLWCHAR,
        cbTableName: SQLSMALLINT,
        szTableType: *mut SQLWCHAR,
        cbTableType: SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLDataSourcesW(
        henv: SQLHENV,
        fDirection: SQLUSMALLINT,
        szDSN: *mut SQLWCHAR,
        cbDSNMax: SQLSMALLINT,
        pcbDSN: *mut SQLSMALLINT,
        szDescription: *mut SQLWCHAR,
        cbDescriptionMax: SQLSMALLINT,
        pcbDescription: *mut SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLDriverConnectW(
        hdbc: SQLHDBC,
        hwnd: SQLHWND,
        szConnStrIn: *mut SQLWCHAR,
        cbConnStrIn: SQLSMALLINT,
        szConnStrOut: *mut SQLWCHAR,
        cbConnStrOutMax: SQLSMALLINT,
        pcbConnStrOut: *mut SQLSMALLINT,
        fDriverCompletion: SQLUSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLBrowseConnectW(
        hdbc: SQLHDBC,
        szConnStrIn: *mut SQLWCHAR,
        cbConnStrIn: SQLSMALLINT,
        szConnStrOut: *mut SQLWCHAR,
        cbConnStrOutMax: SQLSMALLINT,
        pcbConnStrOut: *mut SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLColumnPrivilegesW(
        hstmt: SQLHSTMT,
        szCatalogName: *mut SQLWCHAR,
        cbCatalogName: SQLSMALLINT,
        szSchemaName: *mut SQLWCHAR,
        cbSchemaName: SQLSMALLINT,
        szTableName: *mut SQLWCHAR,
        cbTableName: SQLSMALLINT,
        szColumnName: *mut SQLWCHAR,
        cbColumnName: SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLGetStmtAttrW(
        hstmt: SQLHSTMT,
        fAttribute: SQLINTEGER,
        rgbValue: SQLPOINTER,
        cbValueMax: SQLINTEGER,
        pcbValue: *mut SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLSetStmtAttrW(
        hstmt: SQLHSTMT,
        fAttribute: SQLINTEGER,
        rgbValue: SQLPOINTER,
        cbValueMax: SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLForeignKeysW(
        hstmt: SQLHSTMT,
        szPkCatalogName: *mut SQLWCHAR,
        cbPkCatalogName: SQLSMALLINT,
        szPkSchemaName: *mut SQLWCHAR,
        cbPkSchemaName: SQLSMALLINT,
        szPkTableName: *mut SQLWCHAR,
        cbPkTableName: SQLSMALLINT,
        szFkCatalogName: *mut SQLWCHAR,
        cbFkCatalogName: SQLSMALLINT,
        szFkSchemaName: *mut SQLWCHAR,
        cbFkSchemaName: SQLSMALLINT,
        szFkTableName: *mut SQLWCHAR,
        cbFkTableName: SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLNativeSqlW(
        hdbc: SQLHDBC,
        szSqlStrIn: *mut SQLWCHAR,
        cbSqlStrIn: SQLINTEGER,
        szSqlStr: *mut SQLWCHAR,
        cbSqlStrMax: SQLINTEGER,
        pcbSqlStr: *mut SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLPrimaryKeysW(
        hstmt: SQLHSTMT,
        szCatalogName: *mut SQLWCHAR,
        cbCatalogName: SQLSMALLINT,
        szSchemaName: *mut SQLWCHAR,
        cbSchemaName: SQLSMALLINT,
        szTableName: *mut SQLWCHAR,
        cbTableName: SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLProcedureColumnsW(
        hstmt: SQLHSTMT,
        szCatalogName: *mut SQLWCHAR,
        cbCatalogName: SQLSMALLINT,
        szSchemaName: *mut SQLWCHAR,
        cbSchemaName: SQLSMALLINT,
        szProcName: *mut SQLWCHAR,
        cbProcName: SQLSMALLINT,
        szColumnName: *mut SQLWCHAR,
        cbColumnName: SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLProceduresW(
        hstmt: SQLHSTMT,
        szCatalogName: *mut SQLWCHAR,
        cbCatalogName: SQLSMALLINT,
        szSchemaName: *mut SQLWCHAR,
        cbSchemaName: SQLSMALLINT,
        szProcName: *mut SQLWCHAR,
        cbProcName: SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLExtendedProcedureColumnsW(
        hstmt: SQLHSTMT,
        szCatalogName: *mut SQLWCHAR,
        cbCatalogName: SQLSMALLINT,
        szSchemaName: *mut SQLWCHAR,
        cbSchemaName: SQLSMALLINT,
        szProcName: *mut SQLWCHAR,
        cbProcName: SQLSMALLINT,
        szColumnName: *mut SQLWCHAR,
        cbColumnName: SQLSMALLINT,
        szModuleName: *mut SQLWCHAR,
        cbModuleName: SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLExtendedProceduresW(
        hstmt: SQLHSTMT,
        szCatalogName: *mut SQLWCHAR,
        cbCatalogName: SQLSMALLINT,
        szSchemaName: *mut SQLWCHAR,
        cbSchemaName: SQLSMALLINT,
        szProcName: *mut SQLWCHAR,
        cbProcName: SQLSMALLINT,
        szModuleName: *mut SQLWCHAR,
        cbModuleName: SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLTablePrivilegesW(
        hstmt: SQLHSTMT,
        szCatalogName: *mut SQLWCHAR,
        cbCatalogName: SQLSMALLINT,
        szSchemaName: *mut SQLWCHAR,
        cbSchemaName: SQLSMALLINT,
        szTableName: *mut SQLWCHAR,
        cbTableName: SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLCreateDbW(
        hDbc: SQLHDBC,
        pszDBW: *mut SQLWCHAR,
        cbDB: SQLINTEGER,
        pszCodeSetW: *mut SQLWCHAR,
        cbCodeSet: SQLINTEGER,
        pszModeW: *mut SQLWCHAR,
        cbMode: SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLDropDbW(hDbc: SQLHDBC, pszDBW: *mut SQLWCHAR, cbDB: SQLINTEGER) -> SQLRETURN;
}
extern "C" {
    pub fn SQLCreatePkgW(
        hDbc: SQLHDBC,
        szBindFileNameIn: *mut SQLWCHAR,
        cbBindFileNameIn: SQLINTEGER,
        szBindOpts: *mut SQLWCHAR,
        cbBindOpts: SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLDropPkgW(
        hDbc: SQLHDBC,
        szCollection: *mut SQLWCHAR,
        cbCollection: SQLINTEGER,
        szPackage: *mut SQLWCHAR,
        cbPackage: SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLBindFileToCol(
        hstmt: SQLHSTMT,
        icol: SQLUSMALLINT,
        FileName: *mut SQLCHAR,
        FileNameLength: *mut SQLSMALLINT,
        FileOptions: *mut SQLUINTEGER,
        MaxFileNameLength: SQLSMALLINT,
        StringLength: *mut SQLINTEGER,
        IndicatorValue: *mut SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLBindFileToParam(
        hstmt: SQLHSTMT,
        ipar: SQLUSMALLINT,
        fSqlType: SQLSMALLINT,
        FileName: *mut SQLCHAR,
        FileNameLength: *mut SQLSMALLINT,
        FileOptions: *mut SQLUINTEGER,
        MaxFileNameLength: SQLSMALLINT,
        IndicatorValue: *mut SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLGetLength(
        hstmt: SQLHSTMT,
        LocatorCType: SQLSMALLINT,
        Locator: SQLINTEGER,
        StringLength: *mut SQLINTEGER,
        IndicatorValue: *mut SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLGetPosition(
        hstmt: SQLHSTMT,
        LocatorCType: SQLSMALLINT,
        SourceLocator: SQLINTEGER,
        SearchLocator: SQLINTEGER,
        SearchLiteral: *mut SQLCHAR,
        SearchLiteralLength: SQLINTEGER,
        FromPosition: SQLUINTEGER,
        LocatedAt: *mut SQLUINTEGER,
        IndicatorValue: *mut SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLGetSQLCA(
        henv: SQLHENV,
        hdbc: SQLHDBC,
        hstmt: SQLHSTMT,
        pSqlca: *mut sqlca,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLGetSubString(
        hstmt: SQLHSTMT,
        LocatorCType: SQLSMALLINT,
        SourceLocator: SQLINTEGER,
        FromPosition: SQLUINTEGER,
        ForLength: SQLUINTEGER,
        TargetCType: SQLSMALLINT,
        rgbValue: SQLPOINTER,
        cbValueMax: SQLINTEGER,
        StringLength: *mut SQLINTEGER,
        IndicatorValue: *mut SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLSetColAttributes(
        hstmt: SQLHSTMT,
        icol: SQLUSMALLINT,
        pszColName: *mut SQLCHAR,
        cbColName: SQLSMALLINT,
        fSQLType: SQLSMALLINT,
        cbColDef: SQLUINTEGER,
        ibScale: SQLSMALLINT,
        fNullable: SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLExtendedProcedures(
        hstmt: SQLHSTMT,
        szCatalogName: *mut SQLCHAR,
        cbCatalogName: SQLSMALLINT,
        szSchemaName: *mut SQLCHAR,
        cbSchemaName: SQLSMALLINT,
        szProcName: *mut SQLCHAR,
        cbProcName: SQLSMALLINT,
        szModuleName: *mut SQLCHAR,
        cbModuleName: SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLExtendedProcedureColumns(
        hstmt: SQLHSTMT,
        szCatalogName: *mut SQLCHAR,
        cbCatalogName: SQLSMALLINT,
        szSchemaName: *mut SQLCHAR,
        cbSchemaName: SQLSMALLINT,
        szProcName: *mut SQLCHAR,
        cbProcName: SQLSMALLINT,
        szColumnName: *mut SQLCHAR,
        cbColumnName: SQLSMALLINT,
        szModuleName: *mut SQLCHAR,
        cbModuleName: SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLReloadConfig(
        config_property: SQLINTEGER,
        DiagInfoString: *mut SQLCHAR,
        BufferLength: SQLSMALLINT,
        StringLengthPtr: *mut SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLReloadConfigW(
        config_property: SQLINTEGER,
        DiagInfoString: *mut SQLWCHAR,
        BufferLength: SQLSMALLINT,
        StringLengthPtr: *mut SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLGetPositionW(
        hStmt: SQLHSTMT,
        fCType: SQLSMALLINT,
        iLocatorIn: SQLINTEGER,
        iPatternLocator: SQLINTEGER,
        pszPatternLiteral: *mut SQLWCHAR,
        cbPatternLiteral: SQLINTEGER,
        iStartSearchAtIn: SQLUINTEGER,
        piLocatedAtIn: *mut SQLUINTEGER,
        piIndicatorValue: *mut SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLSetConnection(hdbc: SQLHDBC) -> SQLRETURN;
}
extern "C" {
    pub fn SQLGetEnvAttr(
        henv: SQLHENV,
        Attribute: SQLINTEGER,
        Value: SQLPOINTER,
        BufferLength: SQLINTEGER,
        StringLength: *mut SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLSetEnvAttr(
        henv: SQLHENV,
        Attribute: SQLINTEGER,
        Value: SQLPOINTER,
        StringLength: SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLBindParam(
        StatementHandle: SQLHSTMT,
        ParameterNumber: SQLUSMALLINT,
        ValueType: SQLSMALLINT,
        ParameterType: SQLSMALLINT,
        LengthPrecision: SQLUINTEGER,
        ParameterScale: SQLSMALLINT,
        ParameterValue: SQLPOINTER,
        StrLen_or_Ind: *mut SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLBuildDataLink(
        hStmt: SQLHSTMT,
        pszLinkType: *mut SQLCHAR,
        cbLinkType: SQLINTEGER,
        pszDataLocation: *mut SQLCHAR,
        cbDataLocation: SQLINTEGER,
        pszComment: *mut SQLCHAR,
        cbComment: SQLINTEGER,
        pDataLink: *mut SQLCHAR,
        cbDataLinkMax: SQLINTEGER,
        pcbDataLink: *mut SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLGetDataLinkAttr(
        hStmt: SQLHSTMT,
        fAttrType: SQLSMALLINT,
        pDataLink: *mut SQLCHAR,
        cbDataLink: SQLINTEGER,
        pAttribute: SQLPOINTER,
        cbAttributeMax: SQLINTEGER,
        pcbAttribute: *mut SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLExtendedPrepare(
        hstmt: SQLHSTMT,
        pszSqlStmt: *mut SQLCHAR,
        cbSqlStmt: SQLINTEGER,
        cPars: SQLINTEGER,
        sStmtType: SQLSMALLINT,
        cStmtAttrs: SQLINTEGER,
        piStmtAttr: *mut SQLINTEGER,
        pvParams: *mut SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLExtendedBind(
        hstmt: SQLHSTMT,
        fBindCol: SQLSMALLINT,
        cRecords: SQLSMALLINT,
        pfCType: *mut SQLSMALLINT,
        rgbValue: *mut SQLPOINTER,
        cbValueMax: *mut SQLINTEGER,
        puiPrecisionCType: *mut SQLUINTEGER,
        psScaleCType: *mut SQLSMALLINT,
        pcbValue: *mut *mut SQLINTEGER,
        piIndicatorPtr: *mut *mut SQLINTEGER,
        pfParamType: *mut SQLSMALLINT,
        pfSQLType: *mut SQLSMALLINT,
        pcbColDef: *mut SQLUINTEGER,
        pibScale: *mut SQLSMALLINT,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLExtendedDescribe(
        hStmt: SQLHANDLE,
        fDescribeCol: SQLSMALLINT,
        iNumRecordsAllocated: SQLUSMALLINT,
        pusNumRecords: *mut SQLUSMALLINT,
        pNames: *mut SQLCHAR,
        sNameMaxByteLen: SQLSMALLINT,
        psNameCharLen: *mut SQLSMALLINT,
        psSQLType: *mut SQLSMALLINT,
        pcbColDef: *mut SQLUINTEGER,
        pcbDisplaySize: *mut SQLUINTEGER,
        psScale: *mut SQLSMALLINT,
        psNullable: *mut SQLSMALLINT,
        psParamType: *mut SQLSMALLINT,
        piCardinality: *mut SQLINTEGER,
    ) -> SQLRETURN;
}
extern "C" {
    pub fn SQLDropPkg(
        hDbc: SQLHDBC,
        szCollection: *mut SQLCHAR,
        cbCollection: SQLINTEGER,
        szPackage: *mut SQLCHAR,
        cbPackage: SQLINTEGER,
    ) -> SQLRETURN;
}
pub type __builtin_va_list = *mut ::std::os::raw::c_char;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __crt_locale_data {
    pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __crt_multibyte_data {
    pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _ACTIVATION_CONTEXT {
    pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct NET_ADDRESS_INFO_ {
    pub _address: u8,
}